about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/alttab/default.nix1
-rw-r--r--pkgs/tools/X11/arandr/default.nix10
-rw-r--r--pkgs/tools/X11/autocutsel/default.nix1
-rw-r--r--pkgs/tools/X11/bgs/default.nix1
-rw-r--r--pkgs/tools/X11/ckbcomp/default.nix5
-rw-r--r--pkgs/tools/X11/devour/default.nix1
-rw-r--r--pkgs/tools/X11/dex/default.nix1
-rw-r--r--pkgs/tools/X11/dispad/default.nix1
-rw-r--r--pkgs/tools/X11/ffcast/default.nix5
-rw-r--r--pkgs/tools/X11/find-cursor/default.nix1
-rw-r--r--pkgs/tools/X11/go-sct/default.nix3
-rw-r--r--pkgs/tools/X11/gobble/default.nix1
-rw-r--r--pkgs/tools/X11/grobi/default.nix1
-rw-r--r--pkgs/tools/X11/hsetroot/default.nix2
-rw-r--r--pkgs/tools/X11/icon-slicer/default.nix1
-rw-r--r--pkgs/tools/X11/imwheel/default.nix1
-rw-r--r--pkgs/tools/X11/inputplug/default.nix1
-rw-r--r--pkgs/tools/X11/kdocker/default.nix1
-rw-r--r--pkgs/tools/X11/keynav/default.nix1
-rw-r--r--pkgs/tools/X11/ksuperkey/default.nix1
-rw-r--r--pkgs/tools/X11/nitrogen/default.nix1
-rw-r--r--pkgs/tools/X11/obconf/default.nix1
-rw-r--r--pkgs/tools/X11/opentabletdriver/default.nix33
-rw-r--r--pkgs/tools/X11/opentabletdriver/deps.nix3
-rw-r--r--pkgs/tools/X11/opentabletdriver/remove-git-from-generate-rules.patch22
-rw-r--r--pkgs/tools/X11/paperview/default.nix1
-rw-r--r--pkgs/tools/X11/pmenu/default.nix1
-rw-r--r--pkgs/tools/X11/ratmen/default.nix1
-rw-r--r--pkgs/tools/X11/run-scaled/default.nix1
-rw-r--r--pkgs/tools/X11/sbs/default.nix1
-rw-r--r--pkgs/tools/X11/screen-message/default.nix12
-rw-r--r--pkgs/tools/X11/setroot/default.nix1
-rw-r--r--pkgs/tools/X11/smart-wallpaper/default.nix1
-rw-r--r--pkgs/tools/X11/srandrd/default.nix5
-rw-r--r--pkgs/tools/X11/sselp/default.nix1
-rw-r--r--pkgs/tools/X11/sx/default.nix39
-rw-r--r--pkgs/tools/X11/sxhkd/default.nix52
-rw-r--r--pkgs/tools/X11/vdpauinfo/default.nix1
-rw-r--r--pkgs/tools/X11/wayv/default.nix1
-rw-r--r--pkgs/tools/X11/wmctrl/default.nix1
-rw-r--r--pkgs/tools/X11/x11vnc/default.nix1
-rw-r--r--pkgs/tools/X11/x2vnc/default.nix1
-rw-r--r--pkgs/tools/X11/x2x/default.nix1
-rw-r--r--pkgs/tools/X11/xannotate/default.nix1
-rw-r--r--pkgs/tools/X11/xbanish/default.nix1
-rw-r--r--pkgs/tools/X11/xbindkeys-config/default.nix1
-rw-r--r--pkgs/tools/X11/xborders/default.nix1
-rw-r--r--pkgs/tools/X11/xbrightness/default.nix1
-rw-r--r--pkgs/tools/X11/xcalib/default.nix1
-rw-r--r--pkgs/tools/X11/xcape/default.nix1
-rw-r--r--pkgs/tools/X11/xchainkeys/default.nix1
-rw-r--r--pkgs/tools/X11/xcwd/default.nix25
-rw-r--r--pkgs/tools/X11/xdg-utils/default.nix5
-rw-r--r--pkgs/tools/X11/xdotool/default.nix1
-rw-r--r--pkgs/tools/X11/xgeometry-select/default.nix1
-rw-r--r--pkgs/tools/X11/xidlehook/default.nix1
-rw-r--r--pkgs/tools/X11/xinput_calibrator/default.nix1
-rw-r--r--pkgs/tools/X11/xkb-switch-i3/default.nix1
-rw-r--r--pkgs/tools/X11/xkb-switch/default.nix1
-rw-r--r--pkgs/tools/X11/xkbset/default.nix1
-rw-r--r--pkgs/tools/X11/xkbvalidate/default.nix1
-rw-r--r--pkgs/tools/X11/xlayoutdisplay/default.nix13
-rw-r--r--pkgs/tools/X11/xlogo/default.nix1
-rw-r--r--pkgs/tools/X11/xmcp/default.nix1
-rw-r--r--pkgs/tools/X11/xmousepasteblock/default.nix1
-rw-r--r--pkgs/tools/X11/xnee/default.nix114
-rw-r--r--pkgs/tools/X11/xnotify/default.nix1
-rw-r--r--pkgs/tools/X11/xob/default.nix1
-rw-r--r--pkgs/tools/X11/xosview/default.nix39
-rw-r--r--pkgs/tools/X11/xosview2/default.nix42
-rw-r--r--pkgs/tools/X11/xplugd/default.nix1
-rw-r--r--pkgs/tools/X11/xpointerbarrier/default.nix1
-rw-r--r--pkgs/tools/X11/xprintidle-ng/default.nix9
-rw-r--r--pkgs/tools/X11/xprintidle-ng/fix-config_h-includes-should-be-first.patch62
-rw-r--r--pkgs/tools/X11/xprintidle/default.nix1
-rw-r--r--pkgs/tools/X11/xprompt/default.nix1
-rw-r--r--pkgs/tools/X11/xrectsel/default.nix1
-rw-r--r--pkgs/tools/X11/xrestop/default.nix1
-rw-r--r--pkgs/tools/X11/xsecurelock/default.nix4
-rw-r--r--pkgs/tools/X11/xssstate/default.nix24
-rw-r--r--pkgs/tools/X11/xtrace/default.nix1
-rw-r--r--pkgs/tools/X11/xtruss/default.nix1
-rw-r--r--pkgs/tools/X11/xvkbd/default.nix1
-rw-r--r--pkgs/tools/X11/xwallpaper/default.nix1
-rw-r--r--pkgs/tools/X11/xwinmosaic/default.nix1
-rw-r--r--pkgs/tools/X11/xwinwrap/default.nix1
-rw-r--r--pkgs/tools/X11/xzoom/default.nix1
-rw-r--r--pkgs/tools/admin/acme-sh/default.nix4
-rw-r--r--pkgs/tools/admin/afterburn/default.nix8
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix6
-rw-r--r--pkgs/tools/admin/ansible/lint.nix9
-rw-r--r--pkgs/tools/admin/aws-assume-role/default.nix2
-rw-r--r--pkgs/tools/admin/aws-encryption-sdk-cli/default.nix26
-rw-r--r--pkgs/tools/admin/aws-env/default.nix4
-rw-r--r--pkgs/tools/admin/aws-google-auth/default.nix19
-rw-r--r--pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix8
-rw-r--r--pkgs/tools/admin/aws-mfa/default.nix2
-rw-r--r--pkgs/tools/admin/aws-sso-cli/default.nix11
-rw-r--r--pkgs/tools/admin/aws-sso-creds/default.nix6
-rw-r--r--pkgs/tools/admin/awscli/default.nix34
-rw-r--r--pkgs/tools/admin/awscli2/default.nix44
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix109
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix513
-rw-r--r--pkgs/tools/admin/balena-cli/default.nix14
-rw-r--r--pkgs/tools/admin/berglas/default.nix6
-rw-r--r--pkgs/tools/admin/cdist/default.nix2
-rw-r--r--pkgs/tools/admin/cf-vault/default.nix6
-rw-r--r--pkgs/tools/admin/chamber/default.nix6
-rw-r--r--pkgs/tools/admin/chkservice/default.nix56
-rw-r--r--pkgs/tools/admin/cjdns-tools/default.nix2
-rw-r--r--pkgs/tools/admin/colmena/default.nix2
-rw-r--r--pkgs/tools/admin/copilot-cli/default.nix11
-rw-r--r--pkgs/tools/admin/credhub-cli/default.nix4
-rw-r--r--pkgs/tools/admin/docker-credential-helpers/default.nix4
-rw-r--r--pkgs/tools/admin/drawterm/default.nix14
-rw-r--r--pkgs/tools/admin/ejson2env/default.nix2
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--pkgs/tools/admin/fastlane/Gemfile.lock75
-rw-r--r--pkgs/tools/admin/fastlane/gemset.nix124
-rw-r--r--pkgs/tools/admin/fbvnc/default.nix26
-rw-r--r--pkgs/tools/admin/fioctl/default.nix6
-rw-r--r--pkgs/tools/admin/fits-cloudctl/default.nix6
-rw-r--r--pkgs/tools/admin/gam/default.nix4
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/components.json868
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/data.nix22
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix3
-rw-r--r--pkgs/tools/admin/granted/default.nix8
-rw-r--r--pkgs/tools/admin/hop-cli/default.nix9
-rw-r--r--pkgs/tools/admin/iredis/default.nix15
-rw-r--r--pkgs/tools/admin/kics/default.nix6
-rw-r--r--pkgs/tools/admin/lxd/default.nix9
-rw-r--r--pkgs/tools/admin/lxd/package.json104
-rw-r--r--pkgs/tools/admin/lxd/ui.nix51
-rw-r--r--pkgs/tools/admin/manta/default.nix7
-rw-r--r--pkgs/tools/admin/meshcentral/default.nix10
-rw-r--r--pkgs/tools/admin/meshcentral/package.json143
-rwxr-xr-xpkgs/tools/admin/meshcentral/update.sh2
-rw-r--r--pkgs/tools/admin/meshcentral/yarn.lock3556
-rw-r--r--pkgs/tools/admin/oci-cli/default.nix5
-rw-r--r--pkgs/tools/admin/ossutil/default.nix6
-rw-r--r--pkgs/tools/admin/oxidized/default.nix4
-rw-r--r--pkgs/tools/admin/pbm/default.nix2
-rw-r--r--pkgs/tools/admin/pgadmin/default.nix25
-rw-r--r--pkgs/tools/admin/pgadmin/expose-setup.py.patch78
-rwxr-xr-xpkgs/tools/admin/pgadmin/update.sh2
-rw-r--r--pkgs/tools/admin/pgadmin/yarn.lock4371
-rw-r--r--pkgs/tools/admin/procs/default.nix6
-rw-r--r--pkgs/tools/admin/pulumi-bin/data.nix546
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix23
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix2
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix9
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix26
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-random.nix6
-rw-r--r--pkgs/tools/admin/pulumi/default.nix27
-rw-r--r--pkgs/tools/admin/qovery-cli/default.nix12
-rw-r--r--pkgs/tools/admin/rset/default.nix5
-rw-r--r--pkgs/tools/admin/salt/default.nix4
-rw-r--r--pkgs/tools/admin/scaleway-cli/default.nix38
-rw-r--r--pkgs/tools/admin/scalr-cli/default.nix8
-rw-r--r--pkgs/tools/admin/simplotask/default.nix6
-rw-r--r--pkgs/tools/admin/stripe-cli/default.nix4
-rw-r--r--pkgs/tools/admin/syft/default.nix6
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix2
-rw-r--r--pkgs/tools/admin/trinsic-cli/default.nix4
-rw-r--r--pkgs/tools/admin/triton/default.nix6
-rw-r--r--pkgs/tools/admin/trivy/default.nix23
-rw-r--r--pkgs/tools/admin/try/default.nix2
-rw-r--r--pkgs/tools/admin/turbovnc/default.nix4
-rw-r--r--pkgs/tools/admin/wander/default.nix6
-rw-r--r--pkgs/tools/admin/winbox/default.nix6
-rw-r--r--pkgs/tools/archivers/afio/default.nix1
-rw-r--r--pkgs/tools/archivers/arc_unpacker/default.nix1
-rw-r--r--pkgs/tools/archivers/cabextract/default.nix1
-rw-r--r--pkgs/tools/archivers/cpio/default.nix8
-rw-r--r--pkgs/tools/archivers/cromfs/default.nix2
-rw-r--r--pkgs/tools/archivers/ctrtool/default.nix1
-rw-r--r--pkgs/tools/archivers/dumpnar/default.nix3
-rw-r--r--pkgs/tools/archivers/fsarchiver/default.nix1
-rw-r--r--pkgs/tools/archivers/gbl/default.nix1
-rw-r--r--pkgs/tools/archivers/innoextract/default.nix1
-rw-r--r--pkgs/tools/archivers/lha/default.nix1
-rw-r--r--pkgs/tools/archivers/maxcso/default.nix1
-rw-r--r--pkgs/tools/archivers/ndstool/default.nix1
-rw-r--r--[-rwxr-xr-x]pkgs/tools/archivers/payload-dumper-go/default.nix0
-rw-r--r--pkgs/tools/archivers/payload_dumper/default.nix1
-rw-r--r--pkgs/tools/archivers/peazip/default.nix4
-rw-r--r--pkgs/tools/archivers/pxattr/default.nix1
-rw-r--r--pkgs/tools/archivers/quickbms/default.nix1
-rw-r--r--pkgs/tools/archivers/rar/default.nix35
-rwxr-xr-xpkgs/tools/archivers/rar/update.sh78
-rw-r--r--pkgs/tools/archivers/rpmextract/default.nix1
-rw-r--r--pkgs/tools/archivers/runzip/default.nix1
-rw-r--r--pkgs/tools/archivers/sharutils/default.nix3
-rw-r--r--pkgs/tools/archivers/tarlz/default.nix28
-rw-r--r--pkgs/tools/archivers/unar/default.nix14
-rw-r--r--pkgs/tools/archivers/undmg/default.nix1
-rw-r--r--pkgs/tools/archivers/unrar/default.nix1
-rw-r--r--pkgs/tools/archivers/unshield/default.nix1
-rw-r--r--pkgs/tools/archivers/unzip/default.nix2
-rw-r--r--pkgs/tools/archivers/unzoo/default.nix1
-rw-r--r--pkgs/tools/archivers/xarchive/default.nix1
-rw-r--r--pkgs/tools/archivers/xarchiver/default.nix5
-rw-r--r--pkgs/tools/archivers/zarchive/default.nix1
-rw-r--r--pkgs/tools/archivers/zpaq/default.nix3
-rw-r--r--pkgs/tools/audio/abcm2ps/default.nix19
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/accuraterip-checksum/default.nix1
-rw-r--r--pkgs/tools/audio/acousticbrainz-client/default.nix1
-rw-r--r--pkgs/tools/audio/asap/default.nix4
-rw-r--r--pkgs/tools/audio/audiowaveform/default.nix5
-rw-r--r--pkgs/tools/audio/bark/default.nix1
-rw-r--r--pkgs/tools/audio/beets/builtin-plugins.nix96
-rw-r--r--pkgs/tools/audio/beets/common.nix92
-rw-r--r--pkgs/tools/audio/beets/default.nix37
-rw-r--r--pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch13
-rw-r--r--pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch46
-rw-r--r--pkgs/tools/audio/beets/plugins/copyartifacts.nix10
-rw-r--r--pkgs/tools/audio/botamusique/default.nix5
-rw-r--r--pkgs/tools/audio/catnip-gtk4/default.nix1
-rw-r--r--pkgs/tools/audio/catnip/default.nix1
-rw-r--r--pkgs/tools/audio/dl-librescore/default.nix6
-rw-r--r--pkgs/tools/audio/dsp/default.nix1
-rw-r--r--pkgs/tools/audio/essentia-extractor/default.nix1
-rw-r--r--pkgs/tools/audio/fmtoy/default.nix72
-rw-r--r--pkgs/tools/audio/goxlr-utility/default.nix6
-rw-r--r--pkgs/tools/audio/gvolicon/default.nix1
-rw-r--r--pkgs/tools/audio/headset-charge-indicator/default.nix1
-rw-r--r--pkgs/tools/audio/headsetcontrol/default.nix1
-rw-r--r--pkgs/tools/audio/kaldi/default.nix6
-rw-r--r--pkgs/tools/audio/linuxwave/default.nix1
-rw-r--r--pkgs/tools/audio/liquidsoap/full.nix93
-rw-r--r--pkgs/tools/audio/mictray/default.nix1
-rw-r--r--pkgs/tools/audio/midimonster/default.nix1
-rw-r--r--pkgs/tools/audio/mp3cat/default.nix1
-rw-r--r--pkgs/tools/audio/mpd-discord-rpc/default.nix1
-rw-r--r--pkgs/tools/audio/mpd-mpris/default.nix1
-rw-r--r--pkgs/tools/audio/mpd-notification/default.nix1
-rw-r--r--pkgs/tools/audio/mpd-sima/default.nix1
-rw-r--r--pkgs/tools/audio/mpdas/default.nix1
-rw-r--r--pkgs/tools/audio/mpdcron/fix-canonicalize-conflict-with-glibc.patch22
-rw-r--r--pkgs/tools/audio/mpdcron/gemset.nix13
-rw-r--r--pkgs/tools/audio/mpdris2/default.nix1
-rw-r--r--pkgs/tools/audio/nanotts/default.nix1
-rw-r--r--pkgs/tools/audio/openai-whisper-cpp/default.nix73
-rw-r--r--pkgs/tools/audio/openai-whisper-cpp/download-models.patch27
-rw-r--r--pkgs/tools/audio/pasystray/default.nix1
-rw-r--r--pkgs/tools/audio/patray/default.nix5
-rw-r--r--pkgs/tools/audio/picotts/default.nix1
-rw-r--r--pkgs/tools/audio/piper/default.nix16
-rw-r--r--pkgs/tools/audio/piper/fix-compilation-with-newer-onnxruntime.patch18
-rw-r--r--pkgs/tools/audio/pnmixer/default.nix1
-rw-r--r--pkgs/tools/audio/pw-volume/default.nix1
-rw-r--r--pkgs/tools/audio/soco-cli/default.nix42
-rw-r--r--pkgs/tools/audio/spotdl/default.nix15
-rw-r--r--pkgs/tools/audio/stt/default.nix1
-rw-r--r--pkgs/tools/audio/tidal-dl/default.nix1
-rw-r--r--pkgs/tools/audio/tts/default.nix12
-rw-r--r--pkgs/tools/audio/unflac/default.nix7
-rw-r--r--pkgs/tools/audio/video2midi/default.nix13
-rw-r--r--pkgs/tools/audio/volctl/default.nix1
-rw-r--r--pkgs/tools/audio/volumeicon/default.nix1
-rw-r--r--pkgs/tools/audio/whisper-ctranslate2/default.nix5
-rw-r--r--pkgs/tools/audio/wyoming/faster-whisper-entrypoint.patch32
-rw-r--r--pkgs/tools/audio/wyoming/faster-whisper.nix34
-rw-r--r--pkgs/tools/audio/wyoming/openwakeword.nix34
-rw-r--r--pkgs/tools/audio/wyoming/piper-entrypoint.patch32
-rw-r--r--pkgs/tools/audio/wyoming/piper.nix41
-rw-r--r--pkgs/tools/audio/yabridge/default.nix29
-rw-r--r--pkgs/tools/audio/yabridge/hardcode-dependencies.patch8
-rw-r--r--pkgs/tools/audio/yabridgectl/Cargo.lock509
-rw-r--r--pkgs/tools/audio/yabridgectl/chainloader-from-nix-profiles.patch8
-rw-r--r--pkgs/tools/audio/yabridgectl/default.nix2
-rw-r--r--pkgs/tools/audio/yabridgectl/remove-dependency-verification.patch6
-rw-r--r--pkgs/tools/backup/autorestic/default.nix4
-rw-r--r--pkgs/tools/backup/awsbck/default.nix11
-rw-r--r--pkgs/tools/backup/bdsync/default.nix1
-rw-r--r--pkgs/tools/backup/borgbackup/default.nix29
-rw-r--r--pkgs/tools/backup/bup/default.nix6
-rw-r--r--pkgs/tools/backup/conserve/default.nix7
-rw-r--r--pkgs/tools/backup/dar/default.nix13
-rw-r--r--pkgs/tools/backup/duplicacy/default.nix6
-rw-r--r--pkgs/tools/backup/duplicity/default.nix2
-rw-r--r--pkgs/tools/backup/gphotos-sync/default.nix26
-rw-r--r--pkgs/tools/backup/grab-site/default.nix59
-rw-r--r--pkgs/tools/backup/gyb/default.nix4
-rw-r--r--pkgs/tools/backup/kopia/default.nix6
-rw-r--r--pkgs/tools/backup/monolith/default.nix9
-rw-r--r--pkgs/tools/backup/partclone/default.nix4
-rw-r--r--pkgs/tools/backup/pgbackrest/default.nix4
-rw-r--r--pkgs/tools/backup/restic/default.nix7
-rw-r--r--pkgs/tools/backup/rustic-rs/default.nix20
-rw-r--r--pkgs/tools/backup/s3ql/default.nix2
-rw-r--r--pkgs/tools/backup/sigtop/default.nix8
-rw-r--r--pkgs/tools/backup/tarsnapper/default.nix35
-rw-r--r--pkgs/tools/backup/tarsnapper/remove-argparse.patch10
-rw-r--r--pkgs/tools/backup/zfs-replicate/default.nix33
-rw-r--r--pkgs/tools/backup/zrepl/default.nix1
-rw-r--r--pkgs/tools/bluetooth/bluetuith/default.nix26
-rw-r--r--pkgs/tools/bluetooth/bluez-alsa/default.nix66
-rw-r--r--pkgs/tools/bluetooth/bluez-tools/default.nix26
-rw-r--r--pkgs/tools/bootloaders/refind/default.nix11
-rw-r--r--pkgs/tools/cd-dvd/bchunk/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/bootiso/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/brasero/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/ccd2iso/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/cdi2iso/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/cdrkit/default.nix7
-rw-r--r--pkgs/tools/cd-dvd/cue2pops/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/dvd-vr/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/dvdisaster/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/iat/default.nix3
-rw-r--r--pkgs/tools/cd-dvd/isolyzer/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/lsdvd/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/mdf2iso/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/mkcue/default.nix3
-rw-r--r--pkgs/tools/cd-dvd/nrg2iso/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/sacd/default.nix4
-rw-r--r--pkgs/tools/cd-dvd/srt-to-vtt-cl/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/uif2iso/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/unetbootin/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/ventoy/000-nixos-sanitization.patch301
-rw-r--r--pkgs/tools/cd-dvd/ventoy/default.nix210
-rw-r--r--pkgs/tools/cd-dvd/vobcopy/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/vobsub2srt/default.nix1
-rw-r--r--pkgs/tools/compression/advancecomp/default.nix4
-rw-r--r--pkgs/tools/compression/brotli/default.nix1
-rw-r--r--pkgs/tools/compression/bsc/default.nix1
-rw-r--r--pkgs/tools/compression/bzip2/default.nix11
-rw-r--r--pkgs/tools/compression/bzip3/default.nix4
-rw-r--r--pkgs/tools/compression/crabz/default.nix1
-rw-r--r--pkgs/tools/compression/dejsonlz4/default.nix1
-rw-r--r--pkgs/tools/compression/dtrx/default.nix1
-rw-r--r--pkgs/tools/compression/efficient-compression-tool/default.nix6
-rw-r--r--pkgs/tools/compression/flips/default.nix1
-rw-r--r--pkgs/tools/compression/hacpack/default.nix1
-rw-r--r--pkgs/tools/compression/hactool/default.nix1
-rw-r--r--pkgs/tools/compression/heatshrink/default.nix20
-rw-r--r--pkgs/tools/compression/imagelol/default.nix1
-rw-r--r--pkgs/tools/compression/lbzip2/default.nix13
-rw-r--r--pkgs/tools/compression/lzbench/default.nix1
-rw-r--r--pkgs/tools/compression/lzfse/default.nix1
-rw-r--r--pkgs/tools/compression/lzip/default.nix1
-rw-r--r--pkgs/tools/compression/lziprecover/default.nix5
-rw-r--r--pkgs/tools/compression/lzop/default.nix1
-rw-r--r--pkgs/tools/compression/mozlz4a/default.nix1
-rw-r--r--pkgs/tools/compression/nx2elf/default.nix1
-rw-r--r--pkgs/tools/compression/offzip/default.nix1
-rw-r--r--pkgs/tools/compression/orz/default.nix1
-rw-r--r--pkgs/tools/compression/ouch/default.nix17
-rw-r--r--pkgs/tools/compression/pbzx/default.nix1
-rw-r--r--pkgs/tools/compression/pixz/default.nix1
-rw-r--r--pkgs/tools/compression/plzip/default.nix1
-rw-r--r--pkgs/tools/compression/rzip/default.nix3
-rw-r--r--pkgs/tools/compression/unzrip/default.nix1
-rw-r--r--pkgs/tools/compression/upx/default.nix27
-rw-r--r--pkgs/tools/compression/xar/default.nix3
-rw-r--r--pkgs/tools/compression/xz/default.nix6
-rw-r--r--pkgs/tools/compression/zfp/default.nix7
-rw-r--r--pkgs/tools/compression/zstd/default.nix7
-rw-r--r--pkgs/tools/compression/zsync/default.nix2
-rw-r--r--pkgs/tools/filesystems/9pfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/android-file-transfer/default.nix4
-rw-r--r--pkgs/tools/filesystems/bashmount/default.nix1
-rw-r--r--pkgs/tools/filesystems/bcache-tools/default.nix4
-rw-r--r--pkgs/tools/filesystems/bcachefs-tools/Cargo.lock621
-rw-r--r--pkgs/tools/filesystems/bcachefs-tools/default.nix62
-rw-r--r--pkgs/tools/filesystems/bees/default.nix4
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/blobfuse/default.nix42
-rw-r--r--pkgs/tools/filesystems/blobfuse/install-adls.patch14
-rw-r--r--pkgs/tools/filesystems/bonnie/default.nix24
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix12
-rw-r--r--pkgs/tools/filesystems/btrfs-snap/default.nix2
-rw-r--r--pkgs/tools/filesystems/ceph-csi/default.nix4
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix83
-rw-r--r--pkgs/tools/filesystems/ceph/python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch44
-rw-r--r--pkgs/tools/filesystems/convoy/default.nix26
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix9
-rw-r--r--pkgs/tools/filesystems/davfs2/isdir.patch30
-rw-r--r--pkgs/tools/filesystems/dduper/default.nix7
-rw-r--r--pkgs/tools/filesystems/dupe-krill/default.nix3
-rw-r--r--pkgs/tools/filesystems/duperemove/default.nix33
-rw-r--r--pkgs/tools/filesystems/dwarfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/dysk/default.nix7
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix8
-rw-r--r--pkgs/tools/filesystems/eiciel/default.nix1
-rw-r--r--pkgs/tools/filesystems/encfs/default.nix11
-rw-r--r--pkgs/tools/filesystems/envfs/default.nix8
-rw-r--r--pkgs/tools/filesystems/erofs-utils/default.nix20
-rw-r--r--pkgs/tools/filesystems/exfatprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/ext4magic/default.nix1
-rw-r--r--pkgs/tools/filesystems/extundelete/default.nix1
-rw-r--r--pkgs/tools/filesystems/f2fs-tools/default.nix7
-rw-r--r--pkgs/tools/filesystems/fatresize/default.nix1
-rw-r--r--pkgs/tools/filesystems/fatsort/default.nix1
-rw-r--r--pkgs/tools/filesystems/file-rename/default.nix1
-rw-r--r--pkgs/tools/filesystems/fuse-7z-ng/default.nix1
-rw-r--r--pkgs/tools/filesystems/fuse-archive/default.nix1
-rw-r--r--pkgs/tools/filesystems/fuse-ext2/darwin-no-installer.patch31
-rw-r--r--pkgs/tools/filesystems/fuse-ext2/default.nix46
-rw-r--r--pkgs/tools/filesystems/fuse-ext2/remove-impure-paths.patch35
-rw-r--r--pkgs/tools/filesystems/fuse-overlayfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/fuseiso/default.nix1
-rw-r--r--pkgs/tools/filesystems/fwanalyzer/default.nix1
-rw-r--r--pkgs/tools/filesystems/garage/default.nix71
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix6
-rw-r--r--pkgs/tools/filesystems/genext2fs/default.nix1
-rw-r--r--pkgs/tools/filesystems/genimage/default.nix5
-rw-r--r--pkgs/tools/filesystems/genromfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/gitfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/go-mtpfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/goofys/default.nix3
-rw-r--r--pkgs/tools/filesystems/gpart/default.nix1
-rw-r--r--pkgs/tools/filesystems/grive2/default.nix1
-rw-r--r--pkgs/tools/filesystems/httm/default.nix1
-rw-r--r--pkgs/tools/filesystems/httpdirfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/idsk/default.nix35
-rw-r--r--pkgs/tools/filesystems/ifuse/default.nix1
-rw-r--r--pkgs/tools/filesystems/ioztat/default.nix1
-rw-r--r--pkgs/tools/filesystems/jefferson/default.nix1
-rw-r--r--pkgs/tools/filesystems/jmtpfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/juicefs/default.nix6
-rw-r--r--pkgs/tools/filesystems/kdiskmark/default.nix1
-rw-r--r--pkgs/tools/filesystems/kio-fuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/littlefs-fuse/default.nix26
-rw-r--r--pkgs/tools/filesystems/mergerfs/default.nix6
-rw-r--r--pkgs/tools/filesystems/mergerfs/tools.nix8
-rw-r--r--pkgs/tools/filesystems/mhddfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/mkspiffs/default.nix12
-rw-r--r--pkgs/tools/filesystems/mount-zip/default.nix5
-rw-r--r--pkgs/tools/filesystems/mp3fs/default.nix1
-rw-r--r--pkgs/tools/filesystems/mtdutils/default.nix8
-rw-r--r--pkgs/tools/filesystems/mtpfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/netatalk/default.nix4
-rw-r--r--pkgs/tools/filesystems/rdfind/default.nix15
-rw-r--r--pkgs/tools/filesystems/rmfuse/default.nix17
-rw-r--r--pkgs/tools/filesystems/rmount/default.nix1
-rw-r--r--pkgs/tools/filesystems/rnm/default.nix1
-rw-r--r--pkgs/tools/filesystems/romdirfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/s3backer/default.nix1
-rw-r--r--pkgs/tools/filesystems/sandboxfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/sasquatch/default.nix1
-rw-r--r--pkgs/tools/filesystems/sdat2img/default.nix1
-rw-r--r--pkgs/tools/filesystems/securefs/default.nix1
-rw-r--r--pkgs/tools/filesystems/sftpman/default.nix1
-rw-r--r--pkgs/tools/filesystems/simple-mtpfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/smbnetfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/snapraid/default.nix7
-rw-r--r--pkgs/tools/filesystems/squashfuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/ssdfs-utils/default.nix6
-rw-r--r--pkgs/tools/filesystems/stratis-cli/default.nix19
-rw-r--r--pkgs/tools/filesystems/stratisd/Cargo.lock364
-rw-r--r--pkgs/tools/filesystems/stratisd/default.nix24
-rw-r--r--pkgs/tools/filesystems/stuffbin/default.nix4
-rw-r--r--pkgs/tools/filesystems/svnfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/tar2ext4/default.nix5
-rw-r--r--pkgs/tools/filesystems/u3-tool/default.nix1
-rw-r--r--pkgs/tools/filesystems/ubidump/default.nix1
-rw-r--r--pkgs/tools/filesystems/unionfs-fuse/default.nix2
-rw-r--r--pkgs/tools/filesystems/wdfs/default.nix1
-rw-r--r--pkgs/tools/filesystems/wipefreespace/default.nix5
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix2
-rw-r--r--pkgs/tools/filesystems/yandex-disk/default.nix1
-rw-r--r--pkgs/tools/filesystems/zerofree/default.nix1
-rw-r--r--pkgs/tools/filesystems/zfstools/default.nix9
-rw-r--r--pkgs/tools/filesystems/zkfuse/default.nix1
-rw-r--r--pkgs/tools/filesystems/zpool-auto-expand-partitions/Cargo.lock753
-rw-r--r--pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix12
-rw-r--r--pkgs/tools/filesystems/zpool-iostat-viz/default.nix1
-rw-r--r--pkgs/tools/games/ajour/default.nix6
-rw-r--r--pkgs/tools/games/er-patcher/default.nix4
-rw-r--r--pkgs/tools/games/gamemode/default.nix50
-rw-r--r--pkgs/tools/games/gamemode/no-install-systemd-sysusers.patch16
-rw-r--r--pkgs/tools/games/gamemode/preload-nix-workaround.patch2
-rw-r--r--pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch43
-rw-r--r--pkgs/tools/games/jpsxdec/default.nix88
-rw-r--r--pkgs/tools/games/minecraft/fabric-installer/default.nix4
-rw-r--r--pkgs/tools/games/minecraft/mcaselector/default.nix4
-rw-r--r--pkgs/tools/games/minecraft/optifine/versions.json24
-rw-r--r--pkgs/tools/games/mymcplus/default.nix2
-rw-r--r--pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch31
-rw-r--r--pkgs/tools/games/pocket-updater-utility/default.nix59
-rw-r--r--pkgs/tools/games/pocket-updater-utility/deps.nix9
-rw-r--r--pkgs/tools/games/scarab/default.nix4
-rw-r--r--pkgs/tools/games/slipstream/default.nix2
-rw-r--r--pkgs/tools/games/trigger-control/default.nix69
-rw-r--r--pkgs/tools/graphics/aaphoto/default.nix1
-rw-r--r--pkgs/tools/graphics/adriconf/default.nix18
-rw-r--r--pkgs/tools/graphics/argyllcms/default.nix24
-rw-r--r--pkgs/tools/graphics/astc-encoder/default.nix4
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--pkgs/tools/graphics/blockhash/default.nix5
-rw-r--r--pkgs/tools/graphics/blur-effect/default.nix1
-rw-r--r--pkgs/tools/graphics/briss/default.nix1
-rw-r--r--pkgs/tools/graphics/cfdg/default.nix1
-rw-r--r--pkgs/tools/graphics/cgif/default.nix2
-rw-r--r--pkgs/tools/graphics/cuneiform/default.nix20
-rw-r--r--pkgs/tools/graphics/didder/default.nix33
-rw-r--r--pkgs/tools/graphics/dippi/default.nix4
-rw-r--r--pkgs/tools/graphics/ditaa/default.nix1
-rw-r--r--pkgs/tools/graphics/dnglab/default.nix1
-rw-r--r--pkgs/tools/graphics/dpic/default.nix1
-rw-r--r--pkgs/tools/graphics/editres/default.nix1
-rw-r--r--pkgs/tools/graphics/enblend-enfuse/default.nix4
-rw-r--r--pkgs/tools/graphics/epstool/default.nix1
-rw-r--r--pkgs/tools/graphics/escrotum/default.nix4
-rw-r--r--pkgs/tools/graphics/esshader/default.nix1
-rw-r--r--pkgs/tools/graphics/exif/default.nix1
-rw-r--r--pkgs/tools/graphics/facedetect/default.nix1
-rw-r--r--pkgs/tools/graphics/fbv/default.nix1
-rw-r--r--pkgs/tools/graphics/feedgnuplot/default.nix1
-rw-r--r--pkgs/tools/graphics/fgallery/default.nix1
-rw-r--r--pkgs/tools/graphics/fim/default.nix4
-rw-r--r--pkgs/tools/graphics/gfxreconstruct/default.nix4
-rw-r--r--pkgs/tools/graphics/ggobi/default.nix1
-rw-r--r--pkgs/tools/graphics/gifski/Cargo.lock125
-rw-r--r--pkgs/tools/graphics/gifski/default.nix12
-rw-r--r--pkgs/tools/graphics/gmic-qt/default.nix6
-rw-r--r--pkgs/tools/graphics/gnuplot/default.nix9
-rw-r--r--pkgs/tools/graphics/goverlay/default.nix1
-rw-r--r--pkgs/tools/graphics/graph-cli/default.nix16
-rw-r--r--pkgs/tools/graphics/graph-easy/default.nix1
-rw-r--r--pkgs/tools/graphics/graphviz/default.nix4
-rw-r--r--pkgs/tools/graphics/gromit-mpx/default.nix5
-rw-r--r--pkgs/tools/graphics/guff/default.nix1
-rw-r--r--pkgs/tools/graphics/ibniz/default.nix1
-rw-r--r--pkgs/tools/graphics/imgur-screenshot/default.nix1
-rw-r--r--pkgs/tools/graphics/imgurbash2/default.nix1
-rw-r--r--pkgs/tools/graphics/jhead/default.nix1
-rw-r--r--pkgs/tools/graphics/jpegexiforient/default.nix1
-rw-r--r--pkgs/tools/graphics/leela/default.nix1
-rw-r--r--pkgs/tools/graphics/logstalgia/default.nix1
-rw-r--r--pkgs/tools/graphics/lsix/default.nix17
-rw-r--r--pkgs/tools/graphics/mangohud/default.nix6
-rw-r--r--pkgs/tools/graphics/maskromtool/default.nix4
-rw-r--r--pkgs/tools/graphics/mscgen/default.nix1
-rw-r--r--pkgs/tools/graphics/netpbm/default.nix10
-rw-r--r--pkgs/tools/graphics/nifskope/default.nix1
-rw-r--r--pkgs/tools/graphics/nip2/default.nix1
-rw-r--r--pkgs/tools/graphics/optipng/default.nix11
-rw-r--r--pkgs/tools/graphics/oxipng/default.nix13
-rw-r--r--pkgs/tools/graphics/pdf2svg/default.nix1
-rw-r--r--pkgs/tools/graphics/pdftag/default.nix1
-rw-r--r--pkgs/tools/graphics/pdftoipe/default.nix1
-rw-r--r--pkgs/tools/graphics/perceptualdiff/default.nix1
-rw-r--r--pkgs/tools/graphics/piglit/default.nix1
-rw-r--r--pkgs/tools/graphics/pikchr/default.nix7
-rw-r--r--pkgs/tools/graphics/pixel2svg/default.nix1
-rw-r--r--pkgs/tools/graphics/pngcheck/default.nix1
-rw-r--r--pkgs/tools/graphics/pngcrush/default.nix1
-rw-r--r--pkgs/tools/graphics/pngloss/default.nix1
-rw-r--r--pkgs/tools/graphics/pngout/default.nix1
-rw-r--r--pkgs/tools/graphics/pngquant/add-Cargo.lock.patch428
-rw-r--r--pkgs/tools/graphics/pngquant/default.nix26
-rw-r--r--pkgs/tools/graphics/pngtoico/default.nix10
-rw-r--r--pkgs/tools/graphics/povray/default.nix1
-rw-r--r--pkgs/tools/graphics/pstoedit/default.nix1
-rw-r--r--pkgs/tools/graphics/qrcode/default.nix9
-rw-r--r--pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch6
-rw-r--r--pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix11
-rw-r--r--pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch14
-rw-r--r--pkgs/tools/graphics/resvg/default.nix7
-rw-r--r--pkgs/tools/graphics/s2png/default.nix1
-rw-r--r--pkgs/tools/graphics/sanjuuni/default.nix1
-rw-r--r--pkgs/tools/graphics/scrot/default.nix2
-rw-r--r--pkgs/tools/graphics/shot-scraper/default.nix5
-rw-r--r--pkgs/tools/graphics/shotgun/default.nix1
-rw-r--r--pkgs/tools/graphics/smartcrop/default.nix1
-rw-r--r--pkgs/tools/graphics/sng/default.nix1
-rw-r--r--pkgs/tools/graphics/spirv-cross/default.nix7
-rw-r--r--pkgs/tools/graphics/steghide/default.nix1
-rw-r--r--pkgs/tools/graphics/stegsolve/default.nix1
-rw-r--r--pkgs/tools/graphics/svg2pdf/default.nix13
-rw-r--r--pkgs/tools/graphics/svgbob/default.nix1
-rw-r--r--pkgs/tools/graphics/svgcleaner/default.nix1
-rw-r--r--pkgs/tools/graphics/textplots/default.nix7
-rw-r--r--pkgs/tools/graphics/texture-synthesis/default.nix1
-rw-r--r--pkgs/tools/graphics/timg/default.nix10
-rw-r--r--pkgs/tools/graphics/twilight/default.nix1
-rw-r--r--pkgs/tools/graphics/ueberzugpp/default.nix4
-rw-r--r--pkgs/tools/graphics/unpaper/default.nix1
-rw-r--r--pkgs/tools/graphics/vips/default.nix43
-rw-r--r--pkgs/tools/graphics/viu/default.nix1
-rw-r--r--pkgs/tools/graphics/vkbasalt-cli/default.nix1
-rw-r--r--pkgs/tools/graphics/vkdisplayinfo/default.nix1
-rw-r--r--pkgs/tools/graphics/vkmark/default.nix1
-rw-r--r--pkgs/tools/graphics/vulkan-caps-viewer/default.nix4
-rw-r--r--pkgs/tools/graphics/vulkan-cts/default.nix17
-rw-r--r--pkgs/tools/graphics/vulkan-cts/sources.nix38
-rw-r--r--pkgs/tools/graphics/vulkan-extension-layer/default.nix10
-rw-r--r--pkgs/tools/graphics/vulkan-helper/default.nix9
-rw-r--r--pkgs/tools/graphics/vulkan-tools-lunarg/default.nix44
-rw-r--r--pkgs/tools/graphics/vulkan-tools-lunarg/gtest.patch34
-rw-r--r--pkgs/tools/graphics/vulkan-tools/default.nix36
-rw-r--r--pkgs/tools/graphics/vulkan-tools/use-nix-moltenvk.patch123
-rw-r--r--pkgs/tools/graphics/waifu2x-converter-cpp/default.nix5
-rw-r--r--pkgs/tools/graphics/wdisplays/default.nix16
-rw-r--r--pkgs/tools/graphics/wgpu-utils/default.nix2
-rw-r--r--pkgs/tools/graphics/xcolor/default.nix3
-rw-r--r--pkgs/tools/graphics/xcur2png/default.nix1
-rw-r--r--pkgs/tools/graphics/yaxg/default.nix1
-rw-r--r--pkgs/tools/graphics/zbar/default.nix14
-rw-r--r--pkgs/tools/inputmethods/emote/default.nix4
-rw-r--r--pkgs/tools/inputmethods/evscript/Cargo.lock596
-rw-r--r--pkgs/tools/inputmethods/evscript/default.nix13
-rw-r--r--pkgs/tools/inputmethods/evsieve/default.nix31
-rw-r--r--pkgs/tools/inputmethods/fcitx5/default.nix10
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-anthy.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix47
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix8
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix6
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix8
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-unikey.nix4
-rw-r--r--pkgs/tools/inputmethods/footswitch/default.nix35
-rw-r--r--pkgs/tools/inputmethods/fusuma/Gemfile6
-rw-r--r--pkgs/tools/inputmethods/fusuma/Gemfile.lock25
-rw-r--r--pkgs/tools/inputmethods/fusuma/default.nix2
-rw-r--r--pkgs/tools/inputmethods/fusuma/gemset.nix35
-rw-r--r--pkgs/tools/inputmethods/gebaar-libinput/default.nix10
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix6
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix74
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix8
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix111
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix8
-rw-r--r--pkgs/tools/inputmethods/input-remapper/default.nix10
-rw-r--r--pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix6
-rw-r--r--pkgs/tools/inputmethods/keyd/default.nix11
-rw-r--r--pkgs/tools/inputmethods/keymapper/default.nix4
-rw-r--r--pkgs/tools/inputmethods/libinput-gestures/default.nix4
-rw-r--r--pkgs/tools/inputmethods/lisgd/default.nix4
-rw-r--r--pkgs/tools/inputmethods/m17n-db/default.nix4
-rw-r--r--pkgs/tools/inputmethods/m17n-lib/default.nix4
-rw-r--r--pkgs/tools/inputmethods/remote-touchpad/default.nix8
-rw-r--r--pkgs/tools/inputmethods/triggerhappy/default.nix2
-rw-r--r--pkgs/tools/llm/gorilla-cli/default.nix1
-rw-r--r--pkgs/tools/llm/heygpt/default.nix10
-rw-r--r--pkgs/tools/llm/open-interpreter/default.nix58
-rw-r--r--pkgs/tools/llm/shell_gpt/default.nix4
-rw-r--r--pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix2
-rw-r--r--pkgs/tools/misc/aaa/default.nix1
-rw-r--r--pkgs/tools/misc/abduco/default.nix1
-rw-r--r--pkgs/tools/misc/adafruit-ampy/default.nix1
-rw-r--r--pkgs/tools/misc/addic7ed-cli/default.nix1
-rw-r--r--pkgs/tools/misc/addlicense/default.nix11
-rw-r--r--pkgs/tools/misc/adrgen/default.nix1
-rw-r--r--pkgs/tools/misc/afetch/default.nix1
-rw-r--r--pkgs/tools/misc/agedu/default.nix1
-rw-r--r--pkgs/tools/misc/aichat/default.nix10
-rw-r--r--pkgs/tools/misc/alarm-clock-applet/default.nix1
-rw-r--r--pkgs/tools/misc/altserver-linux/default.nix2
-rw-r--r--pkgs/tools/misc/android-tools/default.nix24
-rw-r--r--pkgs/tools/misc/antimicrox/default.nix1
-rw-r--r--pkgs/tools/misc/aoc-cli/default.nix1
-rw-r--r--pkgs/tools/misc/apkeep/default.nix1
-rw-r--r--pkgs/tools/misc/apparix/default.nix1
-rw-r--r--pkgs/tools/misc/apt-offline/default.nix40
-rw-r--r--pkgs/tools/misc/aptly/default.nix1
-rw-r--r--pkgs/tools/misc/aquosctl/default.nix1
-rw-r--r--pkgs/tools/misc/archi/default.nix49
-rwxr-xr-xpkgs/tools/misc/archi/update.sh25
-rw-r--r--pkgs/tools/misc/as-tree/default.nix1
-rw-r--r--pkgs/tools/misc/asciinema-agg/default.nix1
-rw-r--r--pkgs/tools/misc/asciinema-scenario/default.nix1
-rw-r--r--pkgs/tools/misc/asciinema/default.nix6
-rw-r--r--pkgs/tools/misc/asdf-vm/default.nix4
-rw-r--r--pkgs/tools/misc/askalono/default.nix1
-rw-r--r--pkgs/tools/misc/atuin/default.nix14
-rw-r--r--pkgs/tools/misc/audible-cli/default.nix55
-rw-r--r--pkgs/tools/misc/automirror/default.nix1
-rw-r--r--pkgs/tools/misc/autorandr/default.nix2
-rw-r--r--pkgs/tools/misc/autorevision/default.nix1
-rw-r--r--pkgs/tools/misc/bandwidth/default.nix1
-rw-r--r--pkgs/tools/misc/barman/default.nix4
-rw-r--r--pkgs/tools/misc/bartib/default.nix1
-rw-r--r--pkgs/tools/misc/bash_unit/default.nix1
-rw-r--r--pkgs/tools/misc/bashcards/default.nix1
-rw-r--r--pkgs/tools/misc/bbe/default.nix1
-rw-r--r--pkgs/tools/misc/bcunit/default.nix2
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix5
-rw-r--r--pkgs/tools/misc/bdf2sfd/default.nix1
-rw-r--r--pkgs/tools/misc/bdfresize/default.nix1
-rw-r--r--pkgs/tools/misc/beats/default.nix1
-rw-r--r--pkgs/tools/misc/betterdiscord-installer/default.nix1
-rw-r--r--pkgs/tools/misc/bfetch/default.nix3
-rw-r--r--pkgs/tools/misc/bibtool/default.nix1
-rw-r--r--pkgs/tools/misc/bibutils/default.nix9
-rw-r--r--pkgs/tools/misc/birdfont/default.nix4
-rw-r--r--pkgs/tools/misc/birdfont/xmlbird.nix4
-rw-r--r--pkgs/tools/misc/bitwise/default.nix1
-rw-r--r--pkgs/tools/misc/bkt/default.nix6
-rw-r--r--pkgs/tools/misc/bkyml/default.nix2
-rw-r--r--pkgs/tools/misc/blacken-docs/default.nix1
-rw-r--r--pkgs/tools/misc/blahaj/default.nix5
-rw-r--r--pkgs/tools/misc/blflash/default.nix5
-rw-r--r--pkgs/tools/misc/blink1-tool/default.nix1
-rw-r--r--pkgs/tools/misc/bmap-tools/default.nix1
-rw-r--r--pkgs/tools/misc/bmon/default.nix1
-rw-r--r--pkgs/tools/misc/bogofilter/default.nix22
-rw-r--r--pkgs/tools/misc/boltbrowser/default.nix1
-rw-r--r--pkgs/tools/misc/bootspec/default.nix12
-rw-r--r--pkgs/tools/misc/boxxy/default.nix7
-rw-r--r--pkgs/tools/misc/brltty/default.nix4
-rw-r--r--pkgs/tools/misc/broot/default.nix12
-rw-r--r--pkgs/tools/misc/bsp-layout/default.nix1
-rw-r--r--pkgs/tools/misc/btdu/default.nix1
-rw-r--r--pkgs/tools/misc/btrfs-assistant/default.nix4
-rw-r--r--pkgs/tools/misc/buildtorrent/default.nix1
-rw-r--r--pkgs/tools/misc/calamares/default.nix1
-rw-r--r--pkgs/tools/misc/capture/default.nix1
-rw-r--r--pkgs/tools/misc/castty/default.nix1
-rw-r--r--pkgs/tools/misc/cc2538-bsl/default.nix24
-rw-r--r--pkgs/tools/misc/ccal/default.nix5
-rw-r--r--pkgs/tools/misc/cf-terraforming/default.nix7
-rw-r--r--pkgs/tools/misc/cfonts/default.nix1
-rw-r--r--pkgs/tools/misc/chafa/default.nix5
-rw-r--r--pkgs/tools/misc/changelogger/default.nix5
-rw-r--r--pkgs/tools/misc/charasay/default.nix7
-rw-r--r--pkgs/tools/misc/chatgpt-cli/default.nix12
-rw-r--r--pkgs/tools/misc/checkpwn/default.nix1
-rw-r--r--pkgs/tools/misc/chef-cli/default.nix1
-rw-r--r--pkgs/tools/misc/chelf/default.nix1
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix7
-rw-r--r--pkgs/tools/misc/cicero-tui/default.nix1
-rw-r--r--pkgs/tools/misc/citron/default.nix1
-rw-r--r--pkgs/tools/misc/ckb-next/default.nix12
-rw-r--r--pkgs/tools/misc/clac/default.nix1
-rw-r--r--pkgs/tools/misc/claws/default.nix1
-rw-r--r--pkgs/tools/misc/clematis/default.nix3
-rw-r--r--pkgs/tools/misc/clickclack/default.nix1
-rw-r--r--pkgs/tools/misc/clini/default.nix1
-rw-r--r--pkgs/tools/misc/clipboard-jh/default.nix4
-rw-r--r--pkgs/tools/misc/clipbuzz/default.nix1
-rw-r--r--pkgs/tools/misc/clipnotify/default.nix1
-rw-r--r--pkgs/tools/misc/clipster/default.nix1
-rw-r--r--pkgs/tools/misc/cloc/default.nix1
-rw-r--r--pkgs/tools/misc/clolcat/default.nix1
-rw-r--r--pkgs/tools/misc/cloud-sql-proxy/default.nix32
-rw-r--r--pkgs/tools/misc/clpeak/default.nix1
-rw-r--r--pkgs/tools/misc/cod/default.nix1
-rw-r--r--pkgs/tools/misc/code-minimap/default.nix1
-rw-r--r--pkgs/tools/misc/codebraid/default.nix9
-rw-r--r--pkgs/tools/misc/codemov/default.nix1
-rw-r--r--pkgs/tools/misc/codevis/default.nix1
-rw-r--r--pkgs/tools/misc/coinlive/default.nix1
-rw-r--r--pkgs/tools/misc/colord-gtk/default.nix1
-rw-r--r--pkgs/tools/misc/colord/default.nix4
-rw-r--r--pkgs/tools/misc/colorless/default.nix1
-rw-r--r--pkgs/tools/misc/colorz/default.nix1
-rw-r--r--pkgs/tools/misc/compdb/default.nix1
-rw-r--r--pkgs/tools/misc/complete-alias/default.nix1
-rw-r--r--pkgs/tools/misc/completely/default.nix1
-rw-r--r--pkgs/tools/misc/contacts/default.nix5
-rw-r--r--pkgs/tools/misc/convbin/default.nix1
-rw-r--r--pkgs/tools/misc/convfont/default.nix1
-rw-r--r--pkgs/tools/misc/convimg/default.nix5
-rw-r--r--pkgs/tools/misc/convmv/default.nix1
-rw-r--r--pkgs/tools/misc/copier/default.nix7
-rw-r--r--pkgs/tools/misc/coreboot-configurator/default.nix1
-rw-r--r--pkgs/tools/misc/coreutils/default.nix12
-rw-r--r--pkgs/tools/misc/cp437/default.nix1
-rw-r--r--pkgs/tools/misc/cpufetch/default.nix1
-rw-r--r--pkgs/tools/misc/cpuminer/default.nix1
-rw-r--r--pkgs/tools/misc/crex/default.nix1
-rw-r--r--pkgs/tools/misc/crudini/default.nix2
-rw-r--r--pkgs/tools/misc/crypto-tracker/default.nix1
-rw-r--r--pkgs/tools/misc/csv2latex/default.nix1
-rw-r--r--pkgs/tools/misc/csv2parquet/default.nix1
-rw-r--r--pkgs/tools/misc/csvs-to-sqlite/default.nix1
-rw-r--r--pkgs/tools/misc/cutecom/default.nix1
-rw-r--r--pkgs/tools/misc/cyberchef/default.nix2
-rw-r--r--pkgs/tools/misc/cyclonedx-python/default.nix57
-rw-r--r--pkgs/tools/misc/czkawka/default.nix75
-rw-r--r--pkgs/tools/misc/dabet/default.nix1
-rw-r--r--pkgs/tools/misc/daktilo/default.nix66
-rw-r--r--pkgs/tools/misc/dashing/default.nix1
-rw-r--r--pkgs/tools/misc/datefmt/default.nix1
-rw-r--r--pkgs/tools/misc/dbus-map/default.nix1
-rw-r--r--pkgs/tools/misc/ddate/default.nix1
-rw-r--r--pkgs/tools/misc/ddccontrol/default.nix13
-rw-r--r--pkgs/tools/misc/ddcutil/default.nix12
-rw-r--r--pkgs/tools/misc/debian-devscripts/default.nix2
-rw-r--r--pkgs/tools/misc/debootstrap/default.nix1
-rw-r--r--pkgs/tools/misc/desktop-file-utils/default.nix20
-rw-r--r--pkgs/tools/misc/detox/default.nix22
-rw-r--r--pkgs/tools/misc/dgoss/default.nix1
-rw-r--r--pkgs/tools/misc/dialogbox/default.nix1
-rw-r--r--pkgs/tools/misc/didu/default.nix1
-rw-r--r--pkgs/tools/misc/diffoci/default.nix29
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix29
-rw-r--r--pkgs/tools/misc/diffoscope/fix-test_fit.patch58
-rw-r--r--pkgs/tools/misc/dijo/default.nix1
-rw-r--r--pkgs/tools/misc/direnv/default.nix8
-rw-r--r--pkgs/tools/misc/discocss/default.nix1
-rw-r--r--pkgs/tools/misc/disfetch/default.nix1
-rw-r--r--pkgs/tools/misc/diskonaut/default.nix1
-rw-r--r--pkgs/tools/misc/diskscan/default.nix1
-rw-r--r--pkgs/tools/misc/diskus/default.nix1
-rw-r--r--pkgs/tools/misc/djenrandom/default.nix1
-rw-r--r--pkgs/tools/misc/docbook2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/docker-sync/default.nix1
-rw-r--r--pkgs/tools/misc/docui/default.nix1
-rw-r--r--pkgs/tools/misc/doitlive/default.nix11
-rw-r--r--pkgs/tools/misc/domine/default.nix4
-rw-r--r--pkgs/tools/misc/domine/pubspec.lock157
-rw-r--r--pkgs/tools/misc/domine/pubspec.lock.json197
-rw-r--r--pkgs/tools/misc/dooit/default.nix18
-rw-r--r--pkgs/tools/misc/dotacat/default.nix1
-rw-r--r--pkgs/tools/misc/dotter/default.nix7
-rw-r--r--pkgs/tools/misc/dtach/default.nix1
-rw-r--r--pkgs/tools/misc/dtool/default.nix1
-rw-r--r--pkgs/tools/misc/dua/default.nix7
-rw-r--r--pkgs/tools/misc/duc/default.nix1
-rw-r--r--pkgs/tools/misc/duf/default.nix1
-rw-r--r--pkgs/tools/misc/dumptorrent/default.nix1
-rw-r--r--pkgs/tools/misc/dupd/default.nix1
-rw-r--r--pkgs/tools/misc/dust/default.nix6
-rw-r--r--pkgs/tools/misc/dutree/default.nix1
-rw-r--r--pkgs/tools/misc/dwarf2json/default.nix1
-rw-r--r--pkgs/tools/misc/dwt1-shell-color-scripts/default.nix1
-rw-r--r--pkgs/tools/misc/dynamic-colors/default.nix1
-rw-r--r--pkgs/tools/misc/easeprobe/default.nix1
-rw-r--r--pkgs/tools/misc/edid-decode/default.nix1
-rw-r--r--pkgs/tools/misc/edid-generator/default.nix60
-rw-r--r--pkgs/tools/misc/edir/default.nix5
-rw-r--r--pkgs/tools/misc/elfcat/default.nix5
-rw-r--r--pkgs/tools/misc/empty/default.nix1
-rw-r--r--pkgs/tools/misc/emv/default.nix1
-rw-r--r--pkgs/tools/misc/encpipe/default.nix1
-rw-r--r--pkgs/tools/misc/enjarify/default.nix1
-rw-r--r--pkgs/tools/misc/ent/default.nix1
-rw-r--r--pkgs/tools/misc/entr/default.nix5
-rw-r--r--pkgs/tools/misc/enumer/default.nix7
-rw-r--r--pkgs/tools/misc/envchain/default.nix3
-rw-r--r--pkgs/tools/misc/envsubst/default.nix1
-rw-r--r--pkgs/tools/misc/esphome/dashboard.nix4
-rw-r--r--pkgs/tools/misc/esphome/default.nix55
-rw-r--r--pkgs/tools/misc/esptool-ck/default.nix1
-rw-r--r--pkgs/tools/misc/esptool/3.nix73
-rw-r--r--pkgs/tools/misc/etcher/default.nix2
-rw-r--r--pkgs/tools/misc/ethtool/default.nix1
-rw-r--r--pkgs/tools/misc/ets/default.nix1
-rw-r--r--pkgs/tools/misc/eva/default.nix1
-rw-r--r--pkgs/tools/misc/evhz/default.nix1
-rw-r--r--pkgs/tools/misc/expect/default.nix15
-rw-r--r--pkgs/tools/misc/expect/fix-darwin-clang16.patch31
-rw-r--r--pkgs/tools/misc/f2/default.nix1
-rw-r--r--pkgs/tools/misc/faketty/default.nix7
-rw-r--r--pkgs/tools/misc/fastfetch/default.nix30
-rw-r--r--pkgs/tools/misc/fclones/default.nix7
-rw-r--r--pkgs/tools/misc/fcp/default.nix1
-rw-r--r--pkgs/tools/misc/fd/default.nix10
-rw-r--r--pkgs/tools/misc/fdupes/default.nix1
-rw-r--r--pkgs/tools/misc/fedifetcher/default.nix6
-rw-r--r--pkgs/tools/misc/fend/default.nix29
-rw-r--r--pkgs/tools/misc/fetch-scm/default.nix1
-rw-r--r--pkgs/tools/misc/fetchutils/default.nix2
-rw-r--r--pkgs/tools/misc/ffsend/default.nix1
-rw-r--r--pkgs/tools/misc/figlet/default.nix5
-rw-r--r--pkgs/tools/misc/file/default.nix15
-rw-r--r--pkgs/tools/misc/filebench/default.nix1
-rw-r--r--pkgs/tools/misc/fileschanged/default.nix1
-rw-r--r--pkgs/tools/misc/findup/default.nix3
-rw-r--r--pkgs/tools/misc/flashrom-stable/default.nix7
-rw-r--r--pkgs/tools/misc/flashrom/default.nix1
-rw-r--r--pkgs/tools/misc/flitter/default.nix1
-rw-r--r--pkgs/tools/misc/flowgger/default.nix1
-rw-r--r--pkgs/tools/misc/fltrdr/default.nix1
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix30
-rw-r--r--pkgs/tools/misc/fluentd/Gemfile.lock6
-rw-r--r--pkgs/tools/misc/fluentd/gemset.nix33
-rw-r--r--pkgs/tools/misc/font-config-info/default.nix1
-rw-r--r--pkgs/tools/misc/fontfor/default.nix7
-rw-r--r--pkgs/tools/misc/fpart/default.nix4
-rw-r--r--pkgs/tools/misc/fpp/default.nix1
-rw-r--r--pkgs/tools/misc/fre/default.nix9
-rw-r--r--pkgs/tools/misc/freshfetch/default.nix1
-rw-r--r--pkgs/tools/misc/fselect/default.nix7
-rw-r--r--pkgs/tools/misc/fsmark/default.nix1
-rw-r--r--pkgs/tools/misc/fsmon/default.nix1
-rw-r--r--pkgs/tools/misc/fsql/default.nix7
-rw-r--r--pkgs/tools/misc/fsrx/default.nix1
-rw-r--r--pkgs/tools/misc/fuc/default.nix6
-rw-r--r--pkgs/tools/misc/fw/default.nix9
-rw-r--r--pkgs/tools/misc/fx-cast-bridge/default.nix7
-rw-r--r--pkgs/tools/misc/fzf/default.nix15
-rw-r--r--pkgs/tools/misc/fzy/default.nix1
-rw-r--r--pkgs/tools/misc/g203-led/default.nix1
-rw-r--r--pkgs/tools/misc/g933-utils/default.nix1
-rw-r--r--pkgs/tools/misc/gay/default.nix1
-rw-r--r--pkgs/tools/misc/gazelle-origin/default.nix1
-rw-r--r--pkgs/tools/misc/gbdfed/default.nix1
-rw-r--r--pkgs/tools/misc/geteltorito/default.nix1
-rw-r--r--pkgs/tools/misc/getopt/default.nix1
-rw-r--r--pkgs/tools/misc/gh-actions-cache/default.nix12
-rw-r--r--pkgs/tools/misc/gh-cal/default.nix1
-rw-r--r--pkgs/tools/misc/gh-dash/default.nix7
-rw-r--r--pkgs/tools/misc/gh-eco/default.nix1
-rw-r--r--pkgs/tools/misc/gh-markdown-preview/default.nix1
-rw-r--r--pkgs/tools/misc/gh-ost/default.nix21
-rw-r--r--pkgs/tools/misc/ghostie/default.nix1
-rw-r--r--pkgs/tools/misc/gibo/default.nix1
-rw-r--r--pkgs/tools/misc/gif-for-cli/default.nix1
-rw-r--r--pkgs/tools/misc/gigalixir/default.nix1
-rw-r--r--pkgs/tools/misc/github-backup/default.nix11
-rw-r--r--pkgs/tools/misc/github-copilot-cli/default.nix7
-rw-r--r--pkgs/tools/misc/github-copilot-cli/package-lock.json1024
-rw-r--r--pkgs/tools/misc/glasgow/0001-Relax-Amaranth-git-dependency.patch28
-rw-r--r--pkgs/tools/misc/glasgow/default.nix1
-rw-r--r--pkgs/tools/misc/go-ios/default.nix7
-rw-r--r--pkgs/tools/misc/goaccess/default.nix5
-rw-r--r--pkgs/tools/misc/godu/default.nix1
-rw-r--r--pkgs/tools/misc/gomi/default.nix1
-rw-r--r--pkgs/tools/misc/google-cloud-bigtable-tool/default.nix37
-rw-r--r--pkgs/tools/misc/google-cloud-sql-proxy/default.nix40
-rw-r--r--pkgs/tools/misc/goose/default.nix1
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix7
-rw-r--r--pkgs/tools/misc/goss/default.nix40
-rw-r--r--pkgs/tools/misc/gosu/default.nix6
-rw-r--r--pkgs/tools/misc/gotify-desktop/default.nix7
-rw-r--r--pkgs/tools/misc/gparted/default.nix1
-rw-r--r--pkgs/tools/misc/gpick/default.nix1
-rw-r--r--pkgs/tools/misc/grafterm/default.nix1
-rw-r--r--pkgs/tools/misc/grass-sass/default.nix1
-rw-r--r--pkgs/tools/misc/graylog/3.3.nix9
-rw-r--r--pkgs/tools/misc/graylog/4.0.nix9
-rw-r--r--pkgs/tools/misc/graylog/4.3.nix9
-rw-r--r--pkgs/tools/misc/graylog/5.1.nix4
-rw-r--r--pkgs/tools/misc/graylog/plugins.nix6
-rw-r--r--pkgs/tools/misc/grc/default.nix7
-rw-r--r--pkgs/tools/misc/grit/default.nix1
-rw-r--r--pkgs/tools/misc/grizzly/default.nix7
-rw-r--r--pkgs/tools/misc/grub/default.nix16
-rw-r--r--pkgs/tools/misc/gti/default.nix5
-rw-r--r--pkgs/tools/misc/gtklp/default.nix57
-rw-r--r--pkgs/tools/misc/gtklp/patches/autoconf.patch23
-rw-r--r--pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch22
-rw-r--r--pkgs/tools/misc/gwe/default.nix6
-rw-r--r--pkgs/tools/misc/hackertyper/default.nix1
-rw-r--r--pkgs/tools/misc/hacksaw/default.nix1
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix1
-rw-r--r--pkgs/tools/misc/halp/default.nix4
-rw-r--r--pkgs/tools/misc/handlr-regex/default.nix38
-rw-r--r--pkgs/tools/misc/handlr/default.nix1
-rw-r--r--pkgs/tools/misc/hashpump/default.nix1
-rw-r--r--pkgs/tools/misc/haste-client/default.nix1
-rw-r--r--pkgs/tools/misc/hdaps-gl/default.nix1
-rw-r--r--pkgs/tools/misc/hddtemp/default.nix1
-rw-r--r--pkgs/tools/misc/hdf4/default.nix7
-rw-r--r--pkgs/tools/misc/hdf5/1.10.nix10
-rw-r--r--pkgs/tools/misc/hdf5/bin-mv.patch30
-rw-r--r--pkgs/tools/misc/hdf5/default.nix43
-rw-r--r--pkgs/tools/misc/hdf5/hdf5-more-determinism.patch15
-rw-r--r--pkgs/tools/misc/hdfview/default.nix1
-rw-r--r--pkgs/tools/misc/hebcal/default.nix1
-rw-r--r--pkgs/tools/misc/heimdall/default.nix1
-rw-r--r--pkgs/tools/misc/hex/default.nix6
-rw-r--r--pkgs/tools/misc/hexd/default.nix1
-rw-r--r--pkgs/tools/misc/hexdiff/default.nix1
-rw-r--r--pkgs/tools/misc/hexyl/default.nix7
-rw-r--r--pkgs/tools/misc/hhpc/default.nix1
-rw-r--r--pkgs/tools/misc/hid-listen/default.nix1
-rw-r--r--pkgs/tools/misc/hidrd/default.nix1
-rw-r--r--pkgs/tools/misc/homesick/default.nix1
-rw-r--r--pkgs/tools/misc/hpcg/default.nix1
-rw-r--r--pkgs/tools/misc/hpl/default.nix1
-rw-r--r--pkgs/tools/misc/hsd/default.nix6
-rw-r--r--pkgs/tools/misc/html-proofer/default.nix1
-rw-r--r--pkgs/tools/misc/hueadm/default.nix1
-rw-r--r--pkgs/tools/misc/hunt/default.nix1
-rw-r--r--pkgs/tools/misc/hwatch/default.nix1
-rw-r--r--pkgs/tools/misc/hyfetch/default.nix4
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix1
-rw-r--r--pkgs/tools/misc/i3nator/default.nix1
-rw-r--r--pkgs/tools/misc/iay/default.nix1
-rw-r--r--pkgs/tools/misc/ibus-theme-tools/default.nix1
-rw-r--r--pkgs/tools/misc/ical2orgpy/default.nix1
-rw-r--r--pkgs/tools/misc/ictree/default.nix1
-rw-r--r--pkgs/tools/misc/ideviceinstaller/default.nix6
-rw-r--r--pkgs/tools/misc/idevicerestore/default.nix1
-rw-r--r--pkgs/tools/misc/idutils/default.nix9
-rw-r--r--pkgs/tools/misc/ikill/default.nix1
-rw-r--r--pkgs/tools/misc/ili2c/default.nix64
-rw-r--r--pkgs/tools/misc/ili2c/dont-use-build-timestamp.patch29
-rw-r--r--pkgs/tools/misc/immich-cli/default.nix22
-rw-r--r--pkgs/tools/misc/infracost/default.nix7
-rw-r--r--pkgs/tools/misc/ink/default.nix1
-rw-r--r--pkgs/tools/misc/inklingreader/default.nix1
-rw-r--r--pkgs/tools/misc/inspec/default.nix1
-rw-r--r--pkgs/tools/misc/instaloader/default.nix10
-rw-r--r--pkgs/tools/misc/interactsh/default.nix6
-rw-r--r--pkgs/tools/misc/invoice/default.nix1
-rw-r--r--pkgs/tools/misc/iotools/default.nix1
-rw-r--r--pkgs/tools/misc/ipad_charge/default.nix1
-rw-r--r--pkgs/tools/misc/ipbt/default.nix1
-rw-r--r--pkgs/tools/misc/ipxe/default.nix9
-rw-r--r--pkgs/tools/misc/ised/default.nix1
-rw-r--r--pkgs/tools/misc/isoimagewriter/default.nix3
-rw-r--r--pkgs/tools/misc/ix/default.nix1
-rw-r--r--pkgs/tools/misc/jdiskreport/default.nix1
-rw-r--r--pkgs/tools/misc/jdupes/default.nix32
-rw-r--r--pkgs/tools/misc/jfrog-cli/default.nix6
-rw-r--r--pkgs/tools/misc/journaldriver/default.nix1
-rw-r--r--pkgs/tools/misc/jsonwatch/default.nix1
-rw-r--r--pkgs/tools/misc/jstest-gtk/default.nix1
-rw-r--r--pkgs/tools/misc/jugglinglab/default.nix77
-rw-r--r--pkgs/tools/misc/jugglinglab/fix-default-maven-plugin-versions.patch70
-rw-r--r--pkgs/tools/misc/kak-lsp/0001-Use-full-Perl-path.patch37
-rw-r--r--pkgs/tools/misc/kak-lsp/default.nix20
-rw-r--r--pkgs/tools/misc/kalker/default.nix1
-rw-r--r--pkgs/tools/misc/kargo/default.nix1
-rw-r--r--pkgs/tools/misc/kb/default.nix1
-rw-r--r--pkgs/tools/misc/kcollectd/default.nix1
-rw-r--r--pkgs/tools/misc/keychain/default.nix1
-rw-r--r--pkgs/tools/misc/keymapviz/default.nix1
-rw-r--r--pkgs/tools/misc/kicli/default.nix1
-rw-r--r--pkgs/tools/misc/killport/default.nix7
-rw-r--r--pkgs/tools/misc/kitty-img/default.nix1
-rw-r--r--pkgs/tools/misc/krapslog/default.nix7
-rw-r--r--pkgs/tools/misc/kronometer/default.nix1
-rw-r--r--pkgs/tools/misc/ksnip/default.nix1
-rw-r--r--pkgs/tools/misc/kt/default.nix1
-rw-r--r--pkgs/tools/misc/lavat/default.nix5
-rw-r--r--pkgs/tools/misc/lazycli/default.nix1
-rw-r--r--pkgs/tools/misc/lazydocker/default.nix5
-rw-r--r--pkgs/tools/misc/lcdf-typetools/default.nix4
-rw-r--r--pkgs/tools/misc/ldapvi/default.nix1
-rw-r--r--pkgs/tools/misc/ldmtool/default.nix1
-rw-r--r--pkgs/tools/misc/leanify/default.nix1
-rw-r--r--pkgs/tools/misc/ledit/default.nix1
-rw-r--r--pkgs/tools/misc/lektor/default.nix2
-rw-r--r--pkgs/tools/misc/lemmeknow/default.nix1
-rw-r--r--pkgs/tools/misc/lemmy-help/default.nix1
-rw-r--r--pkgs/tools/misc/lerpn/default.nix1
-rw-r--r--pkgs/tools/misc/lesspipe/default.nix8
-rw-r--r--pkgs/tools/misc/libbitcoin/fix-gcc11-compilation.patch12
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin-client.nix9
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix9
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin-network.nix9
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix9
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin.nix6
-rw-r--r--pkgs/tools/misc/libcpuid/default.nix34
-rw-r--r--pkgs/tools/misc/libgen-cli/default.nix7
-rw-r--r--pkgs/tools/misc/librespeed-cli/default.nix1
-rw-r--r--pkgs/tools/misc/lice/default.nix1
-rw-r--r--pkgs/tools/misc/license-generator/default.nix1
-rw-r--r--pkgs/tools/misc/lighthouse-steamvr/default.nix1
-rw-r--r--pkgs/tools/misc/limitcpu/default.nix1
-rw-r--r--pkgs/tools/misc/lineselect/default.nix1
-rw-r--r--pkgs/tools/misc/lipl/default.nix1
-rw-r--r--pkgs/tools/misc/livedl/default.nix1
-rw-r--r--pkgs/tools/misc/lnav/default.nix1
-rw-r--r--pkgs/tools/misc/lnch/default.nix1
-rw-r--r--pkgs/tools/misc/loadlibrary/default.nix1
-rw-r--r--pkgs/tools/misc/locate-dominating-file/default.nix1
-rw-r--r--pkgs/tools/misc/logstash/7.x.nix14
-rw-r--r--pkgs/tools/misc/logtop/default.nix1
-rw-r--r--pkgs/tools/misc/lolcat/default.nix1
-rw-r--r--pkgs/tools/misc/lorri/default.nix1
-rw-r--r--pkgs/tools/misc/lottieconverter/default.nix1
-rw-r--r--pkgs/tools/misc/lrzsz/default.nix2
-rw-r--r--pkgs/tools/misc/lsd/default.nix1
-rw-r--r--pkgs/tools/misc/ltunify/default.nix1
-rw-r--r--pkgs/tools/misc/lwc/default.nix1
-rw-r--r--pkgs/tools/misc/macchina/default.nix1
-rw-r--r--pkgs/tools/misc/mailman-rss/default.nix1
-rw-r--r--pkgs/tools/misc/makebootfat/default.nix1
-rw-r--r--pkgs/tools/misc/maker-panel/default.nix2
-rw-r--r--pkgs/tools/misc/man-db/default.nix31
-rw-r--r--pkgs/tools/misc/mandown/default.nix1
-rw-r--r--pkgs/tools/misc/manga-cli/default.nix1
-rw-r--r--pkgs/tools/misc/mapcidr/default.nix7
-rw-r--r--pkgs/tools/misc/markdown-anki-decks/default.nix1
-rw-r--r--pkgs/tools/misc/marlin-calc/default.nix1
-rw-r--r--pkgs/tools/misc/massren/default.nix1
-rw-r--r--pkgs/tools/misc/mastotool/default.nix1
-rw-r--r--pkgs/tools/misc/mathpix-snipping-tool/default.nix3
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix5
-rw-r--r--pkgs/tools/misc/mcfly/default.nix7
-rw-r--r--pkgs/tools/misc/mcrypt/default.nix4
-rw-r--r--pkgs/tools/misc/mdbtools/default.nix2
-rw-r--r--pkgs/tools/misc/mdr/default.nix1
-rw-r--r--pkgs/tools/misc/mdslides/default.nix1
-rw-r--r--pkgs/tools/misc/me_cleaner/default.nix1
-rw-r--r--pkgs/tools/misc/megacli/default.nix1
-rw-r--r--pkgs/tools/misc/melody/default.nix1
-rw-r--r--pkgs/tools/misc/memtest86+/default.nix4
-rw-r--r--pkgs/tools/misc/mermaid-filter/default.nix7
-rw-r--r--pkgs/tools/misc/mimeo/default.nix1
-rw-r--r--pkgs/tools/misc/minicom/default.nix19
-rw-r--r--pkgs/tools/misc/minipro/default.nix1
-rw-r--r--pkgs/tools/misc/miniserve/default.nix10
-rw-r--r--pkgs/tools/misc/ministat/default.nix1
-rw-r--r--pkgs/tools/misc/mise/default.nix (renamed from pkgs/tools/misc/rtx/default.nix)39
-rw-r--r--pkgs/tools/misc/mktorrent/default.nix1
-rw-r--r--pkgs/tools/misc/mloader/default.nix1
-rw-r--r--pkgs/tools/misc/mmake/default.nix1
-rw-r--r--pkgs/tools/misc/mmctl/0001-module-replace-public.patch8
-rw-r--r--pkgs/tools/misc/mmctl/default.nix26
-rw-r--r--pkgs/tools/misc/mmv/default.nix7
-rw-r--r--pkgs/tools/misc/mnc/default.nix1
-rw-r--r--pkgs/tools/misc/moar/default.nix6
-rw-r--r--pkgs/tools/misc/mods/default.nix9
-rw-r--r--pkgs/tools/misc/mommy/default.nix71
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix5
-rw-r--r--pkgs/tools/misc/mongodb-tools/default.nix4
-rw-r--r--pkgs/tools/misc/mons/default.nix1
-rw-r--r--pkgs/tools/misc/moon-phases/default.nix1
-rw-r--r--pkgs/tools/misc/moreutils/default.nix10
-rw-r--r--pkgs/tools/misc/moserial/default.nix1
-rw-r--r--pkgs/tools/misc/most/default.nix10
-rw-r--r--pkgs/tools/misc/most/parallel-make.patch18
-rw-r--r--pkgs/tools/misc/mpdscribble/default.nix1
-rw-r--r--pkgs/tools/misc/mpremote/default.nix8
-rw-r--r--pkgs/tools/misc/mprime/default.nix1
-rw-r--r--pkgs/tools/misc/mprocs/default.nix1
-rw-r--r--pkgs/tools/misc/ms-sys/default.nix1
-rw-r--r--pkgs/tools/misc/mslink/default.nix1
-rw-r--r--pkgs/tools/misc/mstflint/default.nix94
-rw-r--r--pkgs/tools/misc/mtm/default.nix1
-rw-r--r--pkgs/tools/misc/multitail/default.nix9
-rw-r--r--pkgs/tools/misc/multitime/default.nix1
-rw-r--r--pkgs/tools/misc/mutagen-compose/default.nix7
-rw-r--r--pkgs/tools/misc/mvebu64boot/default.nix1
-rw-r--r--pkgs/tools/misc/mysqltuner/default.nix1
-rw-r--r--pkgs/tools/misc/nanoemoji/default.nix2
-rw-r--r--pkgs/tools/misc/natls/default.nix1
-rw-r--r--pkgs/tools/misc/nautilus-open-any-terminal/default.nix8
-rw-r--r--pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch22
-rw-r--r--pkgs/tools/misc/nb/default.nix5
-rw-r--r--pkgs/tools/misc/nbench/default.nix1
-rw-r--r--pkgs/tools/misc/nbqa/default.nix12
-rw-r--r--pkgs/tools/misc/netbootxyz-efi/default.nix4
-rw-r--r--pkgs/tools/misc/nginx-config-formatter/default.nix1
-rw-r--r--pkgs/tools/misc/nitch/default.nix31
-rw-r--r--pkgs/tools/misc/nix-direnv/default.nix38
-rw-r--r--pkgs/tools/misc/nncp/default.nix77
-rw-r--r--pkgs/tools/misc/nomino/default.nix7
-rw-r--r--pkgs/tools/misc/noteshrink/default.nix1
-rw-r--r--pkgs/tools/misc/noti/default.nix1
-rw-r--r--pkgs/tools/misc/notify-desktop/default.nix1
-rw-r--r--pkgs/tools/misc/notify/default.nix1
-rw-r--r--pkgs/tools/misc/ntfy-sh/default.nix10
-rw-r--r--pkgs/tools/misc/ntfy/default.nix19
-rw-r--r--pkgs/tools/misc/nux/default.nix1
-rw-r--r--pkgs/tools/misc/nvfancontrol/default.nix1
-rw-r--r--pkgs/tools/misc/nvimpager/default.nix1
-rw-r--r--pkgs/tools/misc/nyancat/default.nix1
-rw-r--r--pkgs/tools/misc/ocs-url/default.nix1
-rw-r--r--pkgs/tools/misc/octofetch/default.nix1
-rw-r--r--pkgs/tools/misc/octosql/default.nix1
-rw-r--r--pkgs/tools/misc/odyssey/default.nix1
-rw-r--r--pkgs/tools/misc/ollama/default.nix39
-rw-r--r--pkgs/tools/misc/ollama/disable-gqa.patch15
-rw-r--r--pkgs/tools/misc/ollama/set-llamacpp-path.patch23
-rw-r--r--pkgs/tools/misc/ondir/default.nix1
-rw-r--r--pkgs/tools/misc/onefetch/default.nix7
-rw-r--r--pkgs/tools/misc/onefetch/zstd-pkg-config.patch14
-rw-r--r--pkgs/tools/misc/open-pdf-sign/default.nix5
-rw-r--r--pkgs/tools/misc/opencorsairlink/default.nix1
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/contrib.nix9
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/default.nix24
-rw-r--r--pkgs/tools/misc/opentsdb/default.nix1
-rw-r--r--pkgs/tools/misc/org-stats/default.nix1
-rw-r--r--pkgs/tools/misc/os-prober/default.nix4
-rw-r--r--pkgs/tools/misc/oscclip/default.nix2
-rw-r--r--pkgs/tools/misc/osinfo-db-tools/default.nix17
-rw-r--r--pkgs/tools/misc/osm2pgsql/default.nix8
-rw-r--r--pkgs/tools/misc/ostree/default.nix4
-rw-r--r--pkgs/tools/misc/otel-cli/default.nix7
-rw-r--r--pkgs/tools/misc/otfcc/default.nix2
-rw-r--r--pkgs/tools/misc/owofetch/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-acro/default.nix11
-rw-r--r--pkgs/tools/misc/pandoc-drawio-filter/default.nix5
-rw-r--r--pkgs/tools/misc/pandoc-eqnos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-fignos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-imagine/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-include/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-katex/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-plantuml-filter/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-secnos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-tablenos/default.nix1
-rw-r--r--pkgs/tools/misc/panicparse/default.nix7
-rw-r--r--pkgs/tools/misc/panoply/default.nix5
-rw-r--r--pkgs/tools/misc/paperlike-go/default.nix3
-rw-r--r--pkgs/tools/misc/paps/default.nix1
-rw-r--r--pkgs/tools/misc/parallel/default.nix8
-rw-r--r--pkgs/tools/misc/parcellite/default.nix1
-rw-r--r--pkgs/tools/misc/parquet-tools/default.nix1
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix103
-rw-r--r--pkgs/tools/misc/past-time/default.nix1
-rw-r--r--pkgs/tools/misc/pastebinit/default.nix59
-rw-r--r--pkgs/tools/misc/pastebinit/use-drv-etc.patch13
-rw-r--r--pkgs/tools/misc/pazi/default.nix3
-rw-r--r--pkgs/tools/misc/pb/default.nix6
-rw-r--r--pkgs/tools/misc/pb_cli/default.nix1
-rw-r--r--pkgs/tools/misc/pcp/default.nix1
-rw-r--r--pkgs/tools/misc/pdd/default.nix1
-rw-r--r--pkgs/tools/misc/pdf-parser/default.nix1
-rw-r--r--pkgs/tools/misc/peep/default.nix1
-rw-r--r--pkgs/tools/misc/peruse/default.nix35
-rw-r--r--pkgs/tools/misc/pferd/default.nix1
-rw-r--r--pkgs/tools/misc/pfetch-rs/default.nix7
-rw-r--r--pkgs/tools/misc/pfetch/default.nix1
-rw-r--r--pkgs/tools/misc/pfsshell/default.nix1
-rw-r--r--pkgs/tools/misc/pg_flame/default.nix1
-rw-r--r--pkgs/tools/misc/pg_top/default.nix1
-rw-r--r--pkgs/tools/misc/pgbadger/default.nix12
-rw-r--r--pkgs/tools/misc/pgcenter/default.nix1
-rw-r--r--pkgs/tools/misc/pgmetrics/default.nix1
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/default.nix1
-rw-r--r--pkgs/tools/misc/phrase-cli/default.nix6
-rw-r--r--pkgs/tools/misc/pick/default.nix1
-rw-r--r--pkgs/tools/misc/picocom/default.nix1
-rw-r--r--pkgs/tools/misc/pipe-rename/default.nix6
-rw-r--r--pkgs/tools/misc/pipectl/default.nix1
-rw-r--r--pkgs/tools/misc/pipelight/default.nix3
-rw-r--r--pkgs/tools/misc/pipreqs/default.nix1
-rw-r--r--pkgs/tools/misc/pistol/default.nix1
-rw-r--r--pkgs/tools/misc/piston-cli/default.nix1
-rw-r--r--pkgs/tools/misc/pixd/default.nix1
-rw-r--r--pkgs/tools/misc/pk2cmd/default.nix1
-rw-r--r--pkgs/tools/misc/pkgdiff/default.nix1
-rw-r--r--pkgs/tools/misc/pkgtop/default.nix5
-rw-r--r--pkgs/tools/misc/plantuml-server/default.nix12
-rw-r--r--pkgs/tools/misc/plantuml/default.nix7
-rw-r--r--pkgs/tools/misc/plantuml/plantuml-c4.nix8
-rw-r--r--pkgs/tools/misc/plocate/default.nix4
-rw-r--r--pkgs/tools/misc/plowshare/default.nix2
-rw-r--r--pkgs/tools/misc/pls/default.nix44
-rw-r--r--pkgs/tools/misc/pmbootstrap/default.nix21
-rw-r--r--pkgs/tools/misc/pod2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/pokeget-rs/default.nix6
-rw-r--r--pkgs/tools/misc/poop/default.nix1
-rw-r--r--pkgs/tools/misc/portal/default.nix1
-rw-r--r--pkgs/tools/misc/pouf/default.nix3
-rw-r--r--pkgs/tools/misc/poweralertd/default.nix1
-rw-r--r--pkgs/tools/misc/powerline-rs/default.nix1
-rw-r--r--pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix1
-rw-r--r--pkgs/tools/misc/pre-commit/default.nix12
-rw-r--r--pkgs/tools/misc/pre-commit/pygrep-pythonpath.patch13
-rw-r--r--pkgs/tools/misc/precice-config-visualizer/default.nix1
-rw-r--r--pkgs/tools/misc/present-cli/default.nix1
-rw-r--r--pkgs/tools/misc/pridecat/default.nix1
-rw-r--r--pkgs/tools/misc/pridefetch/default.nix1
-rw-r--r--pkgs/tools/misc/procyon/default.nix1
-rw-r--r--pkgs/tools/misc/profetch/default.nix1
-rw-r--r--pkgs/tools/misc/profile-cleaner/default.nix1
-rw-r--r--pkgs/tools/misc/profile-sync-daemon/default.nix4
-rw-r--r--pkgs/tools/misc/progress/default.nix5
-rw-r--r--pkgs/tools/misc/promexplorer/default.nix22
-rw-r--r--pkgs/tools/misc/promql-cli/default.nix1
-rw-r--r--pkgs/tools/misc/proximity-sort/default.nix1
-rw-r--r--pkgs/tools/misc/pspg/default.nix5
-rw-r--r--pkgs/tools/misc/psql2csv/default.nix1
-rw-r--r--pkgs/tools/misc/psrecord/default.nix1
-rw-r--r--pkgs/tools/misc/pubs/default.nix30
-rw-r--r--pkgs/tools/misc/pv/default.nix5
-rw-r--r--pkgs/tools/misc/pws/default.nix1
-rw-r--r--pkgs/tools/misc/q-text-as-data/default.nix1
-rw-r--r--pkgs/tools/misc/qdl/default.nix26
-rw-r--r--pkgs/tools/misc/qflipper/default.nix4
-rw-r--r--pkgs/tools/misc/qjoypad/default.nix1
-rw-r--r--pkgs/tools/misc/qmake2cmake/default.nix4
-rw-r--r--pkgs/tools/misc/qmk/default.nix3
-rw-r--r--pkgs/tools/misc/qmk_hid/default.nix13
-rw-r--r--pkgs/tools/misc/qrscan/default.nix6
-rw-r--r--pkgs/tools/misc/qt5ct/default.nix3
-rw-r--r--pkgs/tools/misc/qt6ct/default.nix1
-rw-r--r--pkgs/tools/misc/quich/default.nix1
-rw-r--r--pkgs/tools/misc/radeon-profile/default.nix1
-rw-r--r--pkgs/tools/misc/ramfetch/default.nix1
-rw-r--r--pkgs/tools/misc/rargs/default.nix1
-rw-r--r--pkgs/tools/misc/rates/default.nix1
-rw-r--r--pkgs/tools/misc/rauc/default.nix5
-rw-r--r--pkgs/tools/misc/remind/default.nix4
-rw-r--r--pkgs/tools/misc/remote-exec/default.nix4
-rw-r--r--pkgs/tools/misc/rename/default.nix1
-rw-r--r--pkgs/tools/misc/rfc/default.nix1
-rw-r--r--pkgs/tools/misc/riemann-c-client/default.nix30
-rw-r--r--pkgs/tools/misc/rig/default.nix1
-rw-r--r--pkgs/tools/misc/ripdrag/default.nix7
-rw-r--r--pkgs/tools/misc/ristate/default.nix1
-rw-r--r--pkgs/tools/misc/rkvm/default.nix47
-rw-r--r--pkgs/tools/misc/rlwrap/default.nix5
-rw-r--r--pkgs/tools/misc/rmate-sh/default.nix1
-rw-r--r--pkgs/tools/misc/rmlint/default.nix1
-rw-r--r--pkgs/tools/misc/rmw/default.nix1
-rw-r--r--pkgs/tools/misc/rot8/default.nix2
-rw-r--r--pkgs/tools/misc/roundup/default.nix1
-rw-r--r--pkgs/tools/misc/rpcsvc-proto/default.nix1
-rw-r--r--pkgs/tools/misc/rpi-imager/default.nix41
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix1
-rw-r--r--pkgs/tools/misc/rrdtool/default.nix31
-rw-r--r--pkgs/tools/misc/rshim-user-space/default.nix17
-rw-r--r--pkgs/tools/misc/rtz/default.nix1
-rw-r--r--pkgs/tools/misc/rust-motd/default.nix1
-rw-r--r--pkgs/tools/misc/rw/default.nix1
-rw-r--r--pkgs/tools/misc/sacad/default.nix6
-rw-r--r--pkgs/tools/misc/sagoin/default.nix1
-rw-r--r--pkgs/tools/misc/sanctity/default.nix1
-rw-r--r--pkgs/tools/misc/savepagenow/default.nix1
-rw-r--r--pkgs/tools/misc/scdl/default.nix1
-rw-r--r--pkgs/tools/misc/scfbuild/default.nix1
-rw-r--r--pkgs/tools/misc/screenfetch/default.nix1
-rw-r--r--pkgs/tools/misc/scrub/default.nix1
-rw-r--r--pkgs/tools/misc/sd-mux-ctrl/default.nix1
-rw-r--r--pkgs/tools/misc/sdate/default.nix1
-rw-r--r--pkgs/tools/misc/seaborn-data/default.nix2
-rw-r--r--pkgs/tools/misc/see/default.nix3
-rw-r--r--pkgs/tools/misc/semiphemeral/default.nix5
-rw-r--r--pkgs/tools/misc/sensible-utils/default.nix2
-rw-r--r--pkgs/tools/misc/serverspec/default.nix1
-rw-r--r--pkgs/tools/misc/setconf/default.nix1
-rw-r--r--pkgs/tools/misc/sfeed/default.nix4
-rw-r--r--pkgs/tools/misc/sfz/default.nix1
-rw-r--r--pkgs/tools/misc/shadowenv/default.nix1
-rw-r--r--pkgs/tools/misc/shallot/default.nix1
-rw-r--r--pkgs/tools/misc/sharedown/default.nix15
-rw-r--r--pkgs/tools/misc/sheldon/default.nix1
-rw-r--r--pkgs/tools/misc/shell-hist/default.nix1
-rw-r--r--pkgs/tools/misc/shelldap/default.nix1
-rw-r--r--pkgs/tools/misc/shellspec/default.nix1
-rw-r--r--pkgs/tools/misc/shim/default.nix6
-rw-r--r--pkgs/tools/misc/shunit2/default.nix1
-rw-r--r--pkgs/tools/misc/silicon/Cargo.lock1621
-rw-r--r--pkgs/tools/misc/silicon/default.nix64
-rw-r--r--pkgs/tools/misc/sixpair/default.nix1
-rw-r--r--pkgs/tools/misc/sl/default.nix1
-rw-r--r--pkgs/tools/misc/slop/default.nix1
-rw-r--r--pkgs/tools/misc/sloth/default.nix1
-rw-r--r--pkgs/tools/misc/slsnif/default.nix1
-rw-r--r--pkgs/tools/misc/smc/default.nix1
-rw-r--r--pkgs/tools/misc/smenu/default.nix1
-rw-r--r--pkgs/tools/misc/smug/default.nix1
-rw-r--r--pkgs/tools/misc/snapper/default.nix10
-rw-r--r--pkgs/tools/misc/snore/default.nix1
-rw-r--r--pkgs/tools/misc/sonota/default.nix1
-rw-r--r--pkgs/tools/misc/spacer/default.nix1
-rw-r--r--pkgs/tools/misc/spigot/default.nix42
-rw-r--r--pkgs/tools/misc/sqlite3-to-mysql/default.nix13
-rw-r--r--pkgs/tools/misc/srisum/default.nix1
-rw-r--r--pkgs/tools/misc/sshx/default.nix79
-rw-r--r--pkgs/tools/misc/star-history/default.nix11
-rw-r--r--[-rwxr-xr-x]pkgs/tools/misc/starfetch/default.nix1
-rw-r--r--pkgs/tools/misc/starship/default.nix13
-rw-r--r--pkgs/tools/misc/staruml/default.nix1
-rw-r--r--pkgs/tools/misc/statserial/default.nix1
-rw-r--r--pkgs/tools/misc/steampipe/default.nix11
-rw-r--r--pkgs/tools/misc/subberthehut/default.nix1
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix9
-rw-r--r--pkgs/tools/misc/svu/default.nix5
-rw-r--r--pkgs/tools/misc/swaglyrics/default.nix1
-rw-r--r--pkgs/tools/misc/systrayhelper/default.nix1
-rw-r--r--pkgs/tools/misc/sysz/default.nix1
-rw-r--r--[-rwxr-xr-x]pkgs/tools/misc/szyszka/default.nix1
-rw-r--r--pkgs/tools/misc/t/default.nix1
-rw-r--r--pkgs/tools/misc/t1utils/default.nix9
-rw-r--r--pkgs/tools/misc/tab-rs/default.nix3
-rw-r--r--pkgs/tools/misc/tagref/default.nix4
-rw-r--r--pkgs/tools/misc/tailer/default.nix1
-rw-r--r--pkgs/tools/misc/tailspin/default.nix10
-rw-r--r--pkgs/tools/misc/taoup/default.nix4
-rw-r--r--pkgs/tools/misc/tbls/default.nix35
-rw-r--r--pkgs/tools/misc/tcat/default.nix1
-rw-r--r--pkgs/tools/misc/td/default.nix1
-rw-r--r--pkgs/tools/misc/tdfgo/default.nix3
-rw-r--r--pkgs/tools/misc/tea/default.nix1
-rw-r--r--pkgs/tools/misc/teamocil/default.nix1
-rw-r--r--pkgs/tools/misc/tensorman/default.nix1
-rw-r--r--pkgs/tools/misc/tere/default.nix1
-rw-r--r--pkgs/tools/misc/termplay/default.nix1
-rw-r--r--pkgs/tools/misc/termtosvg/default.nix1
-rw-r--r--pkgs/tools/misc/tewisay/default.nix1
-rw-r--r--pkgs/tools/misc/texi2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/tfk8s/default.nix1
-rw-r--r--pkgs/tools/misc/tgpt/default.nix5
-rw-r--r--pkgs/tools/misc/time-decode/default.nix1
-rw-r--r--pkgs/tools/misc/timelimit/default.nix1
-rw-r--r--pkgs/tools/misc/timer/default.nix7
-rw-r--r--pkgs/tools/misc/timetagger_cli/default.nix1
-rw-r--r--pkgs/tools/misc/timidity/default.nix2
-rw-r--r--pkgs/tools/misc/timidity/timidity.cfg3
-rw-r--r--pkgs/tools/misc/tio/default.nix1
-rw-r--r--pkgs/tools/misc/tldr/default.nix5
-rw-r--r--pkgs/tools/misc/tmate/default.nix1
-rw-r--r--pkgs/tools/misc/tmpwatch/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-cssh/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-mem-cpu-load/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-sessionizer/default.nix26
-rw-r--r--pkgs/tools/misc/tmux/default.nix2
-rw-r--r--pkgs/tools/misc/tmuxinator/default.nix1
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix7
-rw-r--r--pkgs/tools/misc/toastify/default.nix7
-rw-r--r--pkgs/tools/misc/toilet/default.nix1
-rw-r--r--pkgs/tools/misc/topgrade/default.nix7
-rw-r--r--pkgs/tools/misc/topicctl/default.nix7
-rw-r--r--pkgs/tools/misc/torrenttools/default.nix1
-rw-r--r--pkgs/tools/misc/traefik-certs-dumper/default.nix7
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix4
-rw-r--r--pkgs/tools/misc/triehash/default.nix1
-rw-r--r--pkgs/tools/misc/trillian/default.nix8
-rw-r--r--pkgs/tools/misc/ttchat/default.nix1
-rw-r--r--pkgs/tools/misc/ttmkfdir/default.nix1
-rw-r--r--pkgs/tools/misc/tty-clock/default.nix1
-rw-r--r--pkgs/tools/misc/ttygif/default.nix1
-rw-r--r--pkgs/tools/misc/ttylog/default.nix1
-rw-r--r--pkgs/tools/misc/ttyplot/default.nix23
-rw-r--r--pkgs/tools/misc/turbo/default.nix37
-rw-r--r--pkgs/tools/misc/tvnamer/default.nix5
-rw-r--r--pkgs/tools/misc/twitch-dl/default.nix5
-rw-r--r--pkgs/tools/misc/twm/default.nix9
-rw-r--r--pkgs/tools/misc/twspace-crawler/default.nix1
-rw-r--r--pkgs/tools/misc/twurl/default.nix1
-rw-r--r--pkgs/tools/misc/txtw/default.nix1
-rw-r--r--pkgs/tools/misc/tydra/default.nix1
-rw-r--r--pkgs/tools/misc/tz/default.nix5
-rw-r--r--pkgs/tools/misc/ugs/default.nix7
-rw-r--r--pkgs/tools/misc/uhubctl/default.nix1
-rw-r--r--pkgs/tools/misc/umlet/default.nix1
-rw-r--r--pkgs/tools/misc/unclutter-xfixes/default.nix2
-rw-r--r--pkgs/tools/misc/unclutter/default.nix1
-rw-r--r--pkgs/tools/misc/undocker/default.nix1
-rw-r--r--pkgs/tools/misc/unparam/default.nix1
-rw-r--r--pkgs/tools/misc/up/default.nix1
-rw-r--r--pkgs/tools/misc/url-parser/default.nix7
-rw-r--r--pkgs/tools/misc/urlencode/default.nix1
-rw-r--r--pkgs/tools/misc/usbimager/default.nix5
-rw-r--r--pkgs/tools/misc/usbmuxd/default.nix1
-rw-r--r--pkgs/tools/misc/usbmuxd2/default.nix39
-rw-r--r--pkgs/tools/misc/usbview/default.nix9
-rw-r--r--pkgs/tools/misc/uutils-coreutils/default.nix6
-rw-r--r--pkgs/tools/misc/uwufetch/default.nix1
-rw-r--r--pkgs/tools/misc/uwuify/default.nix1
-rw-r--r--pkgs/tools/misc/valeronoi/default.nix5
-rw-r--r--pkgs/tools/misc/vcs_query/default.nix1
-rw-r--r--pkgs/tools/misc/vector/Cargo.lock4165
-rw-r--r--pkgs/tools/misc/vector/default.nix17
-rw-r--r--pkgs/tools/misc/vector/vector-pr19518.patch25
-rw-r--r--pkgs/tools/misc/veikk-linux-driver-gui/default.nix1
-rw-r--r--pkgs/tools/misc/via/default.nix1
-rw-r--r--pkgs/tools/misc/viddy/default.nix7
-rw-r--r--pkgs/tools/misc/vimer/default.nix1
-rw-r--r--pkgs/tools/misc/vimv-rs/default.nix6
-rw-r--r--pkgs/tools/misc/vimwiki-markdown/default.nix5
-rw-r--r--pkgs/tools/misc/vivid/default.nix1
-rw-r--r--pkgs/tools/misc/vix/default.nix1
-rw-r--r--pkgs/tools/misc/vmtouch/default.nix1
-rw-r--r--pkgs/tools/misc/void/default.nix1
-rw-r--r--pkgs/tools/misc/vorbisgain/default.nix1
-rw-r--r--pkgs/tools/misc/vrc-get/default.nix12
-rw-r--r--pkgs/tools/misc/vsh/default.nix1
-rw-r--r--pkgs/tools/misc/vtm/default.nix23
-rw-r--r--pkgs/tools/misc/vttest/default.nix5
-rw-r--r--pkgs/tools/misc/wagyu/default.nix1
-rw-r--r--pkgs/tools/misc/wakapi/default.nix10
-rw-r--r--pkgs/tools/misc/wasm-tools/default.nix9
-rw-r--r--pkgs/tools/misc/watchexec/default.nix7
-rw-r--r--pkgs/tools/misc/wayback-machine-archiver/default.nix1
-rw-r--r--pkgs/tools/misc/waylevel/default.nix1
-rw-r--r--pkgs/tools/misc/webcat/default.nix1
-rw-r--r--pkgs/tools/misc/websocat/default.nix1
-rw-r--r--pkgs/tools/misc/wemux/default.nix1
-rw-r--r--pkgs/tools/misc/whatsapp-chat-exporter/default.nix4
-rw-r--r--pkgs/tools/misc/wimboot/default.nix2
-rw-r--r--pkgs/tools/misc/wit-bindgen/default.nix6
-rw-r--r--pkgs/tools/misc/wlc/default.nix3
-rw-r--r--pkgs/tools/misc/woeusb-ng/default.nix2
-rw-r--r--pkgs/tools/misc/woeusb/default.nix1
-rw-r--r--pkgs/tools/misc/woof/default.nix1
-rw-r--r--pkgs/tools/misc/wootility/default.nix1
-rw-r--r--pkgs/tools/misc/wsl-open/default.nix1
-rw-r--r--pkgs/tools/misc/wwcd/default.nix1
-rw-r--r--pkgs/tools/misc/wyrd/default.nix1
-rw-r--r--pkgs/tools/misc/x11idle/default.nix1
-rw-r--r--pkgs/tools/misc/xcd/default.nix1
-rw-r--r--pkgs/tools/misc/xcp/default.nix7
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix1
-rw-r--r--pkgs/tools/misc/xdg-ninja/default.nix3
-rw-r--r--pkgs/tools/misc/xdiskusage/default.nix1
-rw-r--r--pkgs/tools/misc/xdo/default.nix1
-rw-r--r--pkgs/tools/misc/xdxf2slob/default.nix1
-rw-r--r--pkgs/tools/misc/xflux/default.nix1
-rw-r--r--pkgs/tools/misc/xfstests/default.nix10
-rw-r--r--pkgs/tools/misc/xiccd/default.nix1
-rw-r--r--pkgs/tools/misc/xilinx-bootgen/default.nix5
-rw-r--r--pkgs/tools/misc/xjobs/default.nix1
-rw-r--r--pkgs/tools/misc/xmonad-log/default.nix1
-rw-r--r--pkgs/tools/misc/xq/default.nix7
-rw-r--r--pkgs/tools/misc/xstow/default.nix22
-rw-r--r--pkgs/tools/misc/xtitle/default.nix1
-rw-r--r--pkgs/tools/misc/xvfb-run/default.nix2
-rw-r--r--pkgs/tools/misc/xxv/default.nix1
-rw-r--r--pkgs/tools/misc/yafetch/default.nix1
-rw-r--r--pkgs/tools/misc/yai/default.nix1
-rw-r--r--pkgs/tools/misc/yajsv/default.nix1
-rw-r--r--pkgs/tools/misc/yank/default.nix1
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix1
-rw-r--r--pkgs/tools/misc/you-get/default.nix1
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix1
-rw-r--r--pkgs/tools/misc/yt-dlp/default.nix4
-rw-r--r--pkgs/tools/misc/ytarchive/default.nix11
-rw-r--r--pkgs/tools/misc/ytcast/default.nix5
-rw-r--r--pkgs/tools/misc/ytfzf/default.nix1
-rw-r--r--pkgs/tools/misc/ytmdl/default.nix5
-rw-r--r--pkgs/tools/misc/yubico-piv-tool/default.nix50
-rw-r--r--pkgs/tools/misc/yubikey-manager-qt/default.nix8
-rw-r--r--pkgs/tools/misc/yubikey-manager/4.nix71
-rw-r--r--pkgs/tools/misc/yubikey-manager/default.nix8
-rw-r--r--pkgs/tools/misc/yubikey-manager/remove-pyopenssl-tests.patch41
-rw-r--r--pkgs/tools/misc/yubikey-personalization-gui/default.nix1
-rw-r--r--pkgs/tools/misc/yutto/default.nix5
-rw-r--r--pkgs/tools/misc/zabbixctl/default.nix1
-rw-r--r--pkgs/tools/misc/zalgo/default.nix1
-rw-r--r--pkgs/tools/misc/zellij/default.nix8
-rw-r--r--pkgs/tools/misc/zf/default.nix1
-rw-r--r--pkgs/tools/misc/zitadel-tools/default.nix18
-rw-r--r--pkgs/tools/misc/zotero-translation-server/default.nix1
-rw-r--r--pkgs/tools/misc/zoxide/default.nix10
-rw-r--r--pkgs/tools/misc/zsh-history-to-fish/default.nix1
-rw-r--r--pkgs/tools/misc/zthrottle/default.nix3
-rw-r--r--pkgs/tools/networking/aardvark-dns/default.nix14
-rw-r--r--pkgs/tools/networking/airgeddon/default.nix2
-rw-r--r--pkgs/tools/networking/aria2/default.nix6
-rw-r--r--pkgs/tools/networking/arping/default.nix4
-rw-r--r--pkgs/tools/networking/bacnet-stack/default.nix4
-rw-r--r--pkgs/tools/networking/bandwhich/Cargo.lock925
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix4
-rw-r--r--pkgs/tools/networking/boundary/default.nix10
-rw-r--r--pkgs/tools/networking/brook/default.nix6
-rw-r--r--pkgs/tools/networking/bsd-finger/default.nix1
-rw-r--r--pkgs/tools/networking/burpsuite/default.nix39
-rw-r--r--pkgs/tools/networking/bwm-ng/default.nix2
-rw-r--r--pkgs/tools/networking/cfspeedtest/default.nix6
-rw-r--r--pkgs/tools/networking/chrony/default.nix4
-rw-r--r--pkgs/tools/networking/clash/default.nix49
-rw-r--r--pkgs/tools/networking/configurable-http-proxy/default.nix1
-rw-r--r--pkgs/tools/networking/containerlab/default.nix8
-rw-r--r--pkgs/tools/networking/corkscrew/default.nix19
-rw-r--r--pkgs/tools/networking/crackle/default.nix2
-rw-r--r--pkgs/tools/networking/croc/default.nix6
-rw-r--r--pkgs/tools/networking/curl-impersonate/default.nix1
-rw-r--r--pkgs/tools/networking/curl/7.79.1-darwin-no-systemconfiguration.patch53
-rw-r--r--pkgs/tools/networking/curl/default.nix25
-rw-r--r--pkgs/tools/networking/curlie/default.nix4
-rw-r--r--pkgs/tools/networking/dae/default.nix6
-rw-r--r--pkgs/tools/networking/davix/default.nix4
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-agent.nix22
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-process-agent.nix2
-rw-r--r--pkgs/tools/networking/ddclient/default.nix53
-rw-r--r--pkgs/tools/networking/ddns-go/default.nix6
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix18
-rw-r--r--pkgs/tools/networking/dirb/default.nix3
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix5
-rw-r--r--pkgs/tools/networking/dnsperf/default.nix4
-rw-r--r--pkgs/tools/networking/dnstwist/default.nix12
-rw-r--r--pkgs/tools/networking/dogdns/default.nix2
-rw-r--r--pkgs/tools/networking/doggo/default.nix53
-rw-r--r--pkgs/tools/networking/dq/default.nix4
-rw-r--r--pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch12
-rw-r--r--pkgs/tools/networking/easyrsa/default.nix4
-rw-r--r--pkgs/tools/networking/edgedb/Cargo.lock313
-rw-r--r--pkgs/tools/networking/edgedb/default.nix12
-rw-r--r--pkgs/tools/networking/fast-ssh/default.nix10
-rw-r--r--pkgs/tools/networking/findomain/Cargo.lock313
-rw-r--r--pkgs/tools/networking/findomain/default.nix6
-rw-r--r--pkgs/tools/networking/flannel/default.nix6
-rw-r--r--pkgs/tools/networking/frp/default.nix6
-rw-r--r--pkgs/tools/networking/gen6dns/default.nix4
-rw-r--r--pkgs/tools/networking/globalping-cli/default.nix6
-rw-r--r--pkgs/tools/networking/gobgp/default.nix6
-rw-r--r--pkgs/tools/networking/godns/default.nix6
-rw-r--r--pkgs/tools/networking/goflow2/default.nix6
-rw-r--r--pkgs/tools/networking/goimapnotify/default.nix4
-rw-r--r--pkgs/tools/networking/gost/default.nix15
-rw-r--r--pkgs/tools/networking/gping/default.nix6
-rw-r--r--pkgs/tools/networking/grpc_cli/default.nix6
-rw-r--r--pkgs/tools/networking/grpcui/default.nix6
-rw-r--r--pkgs/tools/networking/grpcurl/default.nix6
-rw-r--r--pkgs/tools/networking/gsocket/default.nix4
-rw-r--r--pkgs/tools/networking/gvpe/default.nix2
-rw-r--r--pkgs/tools/networking/haproxy/default.nix56
-rw-r--r--pkgs/tools/networking/hblock/default.nix4
-rw-r--r--pkgs/tools/networking/hp2p/default.nix11
-rw-r--r--pkgs/tools/networking/hp2p/python3.patch120
-rw-r--r--pkgs/tools/networking/hping/default.nix7
-rw-r--r--pkgs/tools/networking/httptunnel/default.nix22
-rw-r--r--pkgs/tools/networking/hurl/default.nix9
-rw-r--r--pkgs/tools/networking/hysteria/default.nix25
-rw-r--r--pkgs/tools/networking/i2p/default.nix6
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/inadyn/default.nix4
-rw-r--r--pkgs/tools/networking/inetutils/default.nix27
-rw-r--r--pkgs/tools/networking/innernet/default.nix6
-rw-r--r--pkgs/tools/networking/iperf/3.nix4
-rw-r--r--pkgs/tools/networking/iperf3d/default.nix2
-rw-r--r--[-rwxr-xr-x]pkgs/tools/networking/ipfetch/default.nix1
-rw-r--r--pkgs/tools/networking/ipinfo/default.nix4
-rw-r--r--pkgs/tools/networking/juicity/default.nix4
-rw-r--r--pkgs/tools/networking/kail/default.nix6
-rw-r--r--pkgs/tools/networking/kapp/default.nix4
-rw-r--r--pkgs/tools/networking/kea/default.nix16
-rw-r--r--pkgs/tools/networking/keepalived/default.nix1
-rw-r--r--pkgs/tools/networking/lftp/default.nix5
-rw-r--r--pkgs/tools/networking/libreswan/default.nix9
-rw-r--r--pkgs/tools/networking/ligolo-ng/default.nix25
-rw-r--r--pkgs/tools/networking/linkchecker/default.nix2
-rw-r--r--pkgs/tools/networking/linux-router/default.nix4
-rw-r--r--pkgs/tools/networking/lldpd/default.nix4
-rw-r--r--pkgs/tools/networking/logmein-hamachi/default.nix2
-rw-r--r--pkgs/tools/networking/lychee/default.nix2
-rw-r--r--pkgs/tools/networking/magic-wormhole-rs/default.nix6
-rw-r--r--pkgs/tools/networking/mailsend/default.nix17
-rw-r--r--pkgs/tools/networking/mailutils/default.nix1
-rw-r--r--pkgs/tools/networking/maubot/allow-building-plugins-from-nix-store.patch13
-rw-r--r--pkgs/tools/networking/maubot/default.nix63
-rw-r--r--pkgs/tools/networking/maubot/plugins/default.nix68
-rw-r--r--pkgs/tools/networking/maubot/plugins/generated.json2225
-rw-r--r--pkgs/tools/networking/maubot/plugins/generated.nix74
-rwxr-xr-xpkgs/tools/networking/maubot/plugins/update.py200
-rw-r--r--pkgs/tools/networking/maubot/wrapper.nix70
-rw-r--r--pkgs/tools/networking/mdk4/default.nix2
-rw-r--r--pkgs/tools/networking/minio-client/default.nix6
-rw-r--r--pkgs/tools/networking/miniupnpc/default.nix4
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix65
-rw-r--r--pkgs/tools/networking/mmsd/default.nix7
-rw-r--r--pkgs/tools/networking/mockoon/default.nix4
-rw-r--r--pkgs/tools/networking/modemmanager/default.nix4
-rw-r--r--pkgs/tools/networking/mozillavpn/default.nix12
-rw-r--r--pkgs/tools/networking/mu/default.nix4
-rw-r--r--pkgs/tools/networking/mubeng/default.nix4
-rw-r--r--pkgs/tools/networking/muffet/default.nix6
-rw-r--r--pkgs/tools/networking/nbd/default.nix49
-rw-r--r--pkgs/tools/networking/nebula/default.nix6
-rw-r--r--pkgs/tools/networking/netassert/default.nix6
-rw-r--r--pkgs/tools/networking/netbird/default.nix11
-rw-r--r--pkgs/tools/networking/nethoscope/default.nix4
-rw-r--r--pkgs/tools/networking/netifd/default.nix49
-rw-r--r--pkgs/tools/networking/networkmanager/applet/default.nix8
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix9
-rw-r--r--pkgs/tools/networking/networkmanager/fix-install-paths.patch4
-rw-r--r--pkgs/tools/networking/networkmanager/fix-paths.patch65
-rw-r--r--pkgs/tools/networking/nexttrace/default.nix16
-rw-r--r--pkgs/tools/networking/ngrep/default.nix10
-rw-r--r--pkgs/tools/networking/ngrok/versions.json36
-rw-r--r--pkgs/tools/networking/nikto/default.nix16
-rw-r--r--pkgs/tools/networking/nikto/nix-wrapper-fix.patch (renamed from pkgs/tools/networking/nikto/NIKTODIR-nix-wrapper-fix.patch)24
-rw-r--r--pkgs/tools/networking/nqptp/default.nix23
-rw-r--r--pkgs/tools/networking/nqptp/remove-setcap.patch13
-rw-r--r--pkgs/tools/networking/ntpd-rs/default.nix32
-rw-r--r--pkgs/tools/networking/ockam/default.nix9
-rw-r--r--pkgs/tools/networking/ocserv/default.nix4
-rw-r--r--pkgs/tools/networking/octodns/default.nix64
-rw-r--r--pkgs/tools/networking/octodns/providers/bind/default.nix49
-rw-r--r--pkgs/tools/networking/octodns/providers/gandi/default.nix49
-rw-r--r--pkgs/tools/networking/octodns/providers/hetzner/default.nix50
-rw-r--r--pkgs/tools/networking/octodns/providers/powerdns/default.nix51
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix9
-rw-r--r--pkgs/tools/networking/ofono/default.nix11
-rw-r--r--pkgs/tools/networking/oha/default.nix6
-rw-r--r--pkgs/tools/networking/onetun/default.nix6
-rw-r--r--pkgs/tools/networking/ooniprobe-cli/default.nix6
-rw-r--r--pkgs/tools/networking/openapi-generator-cli/default.nix21
-rw-r--r--pkgs/tools/networking/openapi-generator-cli/unstable.nix42
-rw-r--r--pkgs/tools/networking/opendrop/default.nix41
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix4
-rw-r--r--pkgs/tools/networking/opensnitch/daemon.nix4
-rw-r--r--pkgs/tools/networking/opensnitch/ui.nix9
-rw-r--r--pkgs/tools/networking/openssh/common.nix5
-rw-r--r--pkgs/tools/networking/openssh/default.nix6
-rw-r--r--pkgs/tools/networking/openvpn/auth-ldap-fix-conftest.patch36
-rw-r--r--pkgs/tools/networking/openvpn/default.nix99
-rw-r--r--pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix4
-rw-r--r--pkgs/tools/networking/openvpn3/default.nix8
-rw-r--r--pkgs/tools/networking/oui/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/tahoe-lafs/default.nix2
-rw-r--r--pkgs/tools/networking/pacparser/default.nix4
-rw-r--r--pkgs/tools/networking/pacproxy/default.nix26
-rw-r--r--pkgs/tools/networking/pdsh/default.nix4
-rw-r--r--pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch45
-rw-r--r--pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch41
-rw-r--r--pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch29
-rw-r--r--pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch34
-rw-r--r--pkgs/tools/networking/persepolis/default.nix33
-rw-r--r--pkgs/tools/networking/pgrok/build-deps/package.json2
-rw-r--r--pkgs/tools/networking/pgrok/default.nix6
-rw-r--r--pkgs/tools/networking/photon/destdir.patch20
-rw-r--r--pkgs/tools/networking/picosnitch/default.nix4
-rw-r--r--pkgs/tools/networking/pmacct/default.nix2
-rw-r--r--pkgs/tools/networking/prettyping/default.nix1
-rw-r--r--pkgs/tools/networking/q/default.nix6
-rw-r--r--pkgs/tools/networking/quicktun/default.nix19
-rw-r--r--pkgs/tools/networking/rabtap/default.nix6
-rw-r--r--pkgs/tools/networking/rathole/default.nix6
-rw-r--r--pkgs/tools/networking/ratman/default.nix6
-rw-r--r--pkgs/tools/networking/redfang/default.nix2
-rw-r--r--pkgs/tools/networking/redli/default.nix4
-rw-r--r--pkgs/tools/networking/redsocks/default.nix2
-rw-r--r--pkgs/tools/networking/requestly/default.nix4
-rw-r--r--pkgs/tools/networking/restish/default.nix6
-rw-r--r--pkgs/tools/networking/ripmime/default.nix6
-rw-r--r--pkgs/tools/networking/rosenpass/default.nix72
-rw-r--r--pkgs/tools/networking/rosenpass/tools.nix30
-rw-r--r--pkgs/tools/networking/routedns/default.nix6
-rw-r--r--pkgs/tools/networking/s3cmd/default.nix4
-rw-r--r--pkgs/tools/networking/saldl/default.nix9
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--pkgs/tools/networking/sing-box/default.nix8
-rw-r--r--pkgs/tools/networking/sish/default.nix6
-rw-r--r--pkgs/tools/networking/sleep-on-lan/default.nix2
-rw-r--r--pkgs/tools/networking/snabb/default.nix4
-rw-r--r--pkgs/tools/networking/sniffglue/default.nix23
-rw-r--r--pkgs/tools/networking/snowflake/default.nix6
-rw-r--r--pkgs/tools/networking/socat/default.nix6
-rw-r--r--pkgs/tools/networking/sockdump/default.nix6
-rw-r--r--pkgs/tools/networking/speedtest-go/default.nix4
-rw-r--r--pkgs/tools/networking/ssh-askpass-fullscreen/default.nix32
-rw-r--r--pkgs/tools/networking/ssl-proxy/default.nix4
-rw-r--r--pkgs/tools/networking/ssl-proxy/go120-compatibility.patch18
-rw-r--r--pkgs/tools/networking/stevenblack-blocklist/default.nix6
-rw-r--r--pkgs/tools/networking/strongswan/default.nix4
-rw-r--r--pkgs/tools/networking/stunnel/default.nix4
-rw-r--r--pkgs/tools/networking/subfinder/default.nix6
-rw-r--r--pkgs/tools/networking/subnetcalc/default.nix35
-rw-r--r--pkgs/tools/networking/swagger-codegen/default.nix4
-rw-r--r--pkgs/tools/networking/swagger-codegen3/default.nix12
-rw-r--r--pkgs/tools/networking/swaks/default.nix4
-rw-r--r--pkgs/tools/networking/tayga/default.nix2
-rw-r--r--pkgs/tools/networking/tcpdump/default.nix4
-rw-r--r--pkgs/tools/networking/telepresence2/default.nix6
-rw-r--r--pkgs/tools/networking/termscp/Cargo.lock.patch13
-rw-r--r--pkgs/tools/networking/termscp/default.nix6
-rw-r--r--pkgs/tools/networking/tgt/default.nix4
-rw-r--r--pkgs/tools/networking/tinyproxy/default.nix1
-rw-r--r--pkgs/tools/networking/tinyssh/default.nix6
-rw-r--r--pkgs/tools/networking/tracebox/default.nix7
-rw-r--r--pkgs/tools/networking/traceroute/default.nix4
-rw-r--r--pkgs/tools/networking/tridactyl-native/default.nix29
-rw-r--r--pkgs/tools/networking/trippy/default.nix6
-rw-r--r--pkgs/tools/networking/trurl/default.nix11
-rw-r--r--pkgs/tools/networking/tun2socks/default.nix6
-rw-r--r--pkgs/tools/networking/tunwg/default.nix6
-rw-r--r--pkgs/tools/networking/unbound/default.nix28
-rw-r--r--pkgs/tools/networking/uqmi/default.nix9
-rw-r--r--pkgs/tools/networking/urlwatch/default.nix2
-rw-r--r--pkgs/tools/networking/uwimap/clang-fix.patch306
-rw-r--r--pkgs/tools/networking/uwimap/default.nix13
-rw-r--r--pkgs/tools/networking/v2ray/default.nix8
-rw-r--r--pkgs/tools/networking/v2raya/default.nix13
-rw-r--r--pkgs/tools/networking/v2raya/package.json4
-rw-r--r--pkgs/tools/networking/veilid/Cargo.lock1139
-rw-r--r--pkgs/tools/networking/veilid/default.nix5
-rw-r--r--pkgs/tools/networking/voms/default.nix15
-rw-r--r--pkgs/tools/networking/vopono/default.nix6
-rw-r--r--pkgs/tools/networking/vpn-slice/default.nix22
-rw-r--r--pkgs/tools/networking/wakelan/default.nix3
-rw-r--r--pkgs/tools/networking/wavemon/default.nix4
-rw-r--r--pkgs/tools/networking/wg-friendly-peer-names/default.nix6
-rw-r--r--pkgs/tools/networking/wget2/default.nix13
-rw-r--r--pkgs/tools/networking/whois/default.nix14
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix6
-rw-r--r--pkgs/tools/networking/wiremock/default.nix31
-rw-r--r--pkgs/tools/networking/wireproxy/default.nix12
-rw-r--r--pkgs/tools/networking/wol/default.nix1
-rw-r--r--pkgs/tools/networking/wtfis/000-pyproject-remove-versions.diff29
-rw-r--r--pkgs/tools/networking/wtfis/default.nix40
-rw-r--r--pkgs/tools/networking/xdp-tools/default.nix4
-rw-r--r--pkgs/tools/networking/xh/default.nix10
-rw-r--r--pkgs/tools/networking/xray/default.nix8
-rw-r--r--pkgs/tools/networking/xrootd/default.nix23
-rw-r--r--pkgs/tools/networking/xrootd/fetchxrd.nix4
-rw-r--r--pkgs/tools/networking/yggdrasil/change-runtime-dir.patch12
-rw-r--r--pkgs/tools/networking/yggdrasil/default.nix38
-rw-r--r--pkgs/tools/networking/ytcc/default.nix15
-rw-r--r--pkgs/tools/networking/zap/default.nix4
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix4
-rw-r--r--pkgs/tools/networking/zrok/default.nix31
-rw-r--r--pkgs/tools/nix/alejandra/default.nix4
-rw-r--r--pkgs/tools/nix/devour-flake/default.nix27
-rw-r--r--pkgs/tools/nix/fh/default.nix8
-rw-r--r--pkgs/tools/nix/manix/default.nix32
-rw-r--r--pkgs/tools/nix/nar-serve/default.nix2
-rw-r--r--pkgs/tools/nix/nix-output-monitor/generated-package.nix153
-rwxr-xr-xpkgs/tools/nix/nix-output-monitor/update.sh8
-rw-r--r--pkgs/tools/nix/nixci/default.nix17
-rw-r--r--pkgs/tools/nix/nixdoc/default.nix11
-rw-r--r--pkgs/tools/nix/nixos-option/default.nix1
-rw-r--r--pkgs/tools/nix/nixos-render-docs/default.nix9
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py4
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py47
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/md.py4
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py93
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/tests/test_auto_id_prefix.py92
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py24
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py6
-rw-r--r--pkgs/tools/nix/nixpkgs-hammering/default.nix9
-rw-r--r--pkgs/tools/package-management/akku/default.nix1
-rw-r--r--pkgs/tools/package-management/apk-tools/default.nix1
-rw-r--r--pkgs/tools/package-management/apkg/default.nix1
-rw-r--r--pkgs/tools/package-management/apt-dater/default.nix6
-rw-r--r--pkgs/tools/package-management/apt/default.nix87
-rw-r--r--pkgs/tools/package-management/apx/default.nix48
-rw-r--r--pkgs/tools/package-management/auditwheel/default.nix59
-rw-r--r--pkgs/tools/package-management/ciel/default.nix5
-rw-r--r--pkgs/tools/package-management/clib/default.nix4
-rw-r--r--pkgs/tools/package-management/comma/default.nix1
-rw-r--r--pkgs/tools/package-management/conda/default.nix6
-rw-r--r--pkgs/tools/package-management/deploy-rs/default.nix8
-rw-r--r--pkgs/tools/package-management/disnix/DisnixWebService/default.nix23
-rw-r--r--pkgs/tools/package-management/dnf5/default.nix45
-rw-r--r--pkgs/tools/package-management/dpkg/default.nix4
-rw-r--r--pkgs/tools/package-management/elm-github-install/default.nix1
-rw-r--r--pkgs/tools/package-management/emplace/default.nix7
-rw-r--r--pkgs/tools/package-management/fortran-fpm/default.nix5
-rw-r--r--pkgs/tools/package-management/fpm/default.nix1
-rw-r--r--pkgs/tools/package-management/fusesoc/default.nix1
-rw-r--r--pkgs/tools/package-management/gx/default.nix1
-rw-r--r--pkgs/tools/package-management/harmonia/default.nix18
-rw-r--r--pkgs/tools/package-management/holo-build/default.nix1
-rw-r--r--pkgs/tools/package-management/home-manager/default.nix7
-rw-r--r--pkgs/tools/package-management/libcomps/default.nix65
-rw-r--r--pkgs/tools/package-management/libcomps/fix-python-install-dir.patch13
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix38
-rw-r--r--pkgs/tools/package-management/libdnf/fix-python-install-dir.patch12
-rw-r--r--pkgs/tools/package-management/licensee/Gemfile.lock28
-rw-r--r--pkgs/tools/package-management/licensee/default.nix1
-rw-r--r--pkgs/tools/package-management/licensee/gemset.nix52
-rw-r--r--pkgs/tools/package-management/microdnf/default.nix1
-rw-r--r--pkgs/tools/package-management/micromamba/default.nix5
-rw-r--r--pkgs/tools/package-management/morph/default.nix1
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix7
-rw-r--r--pkgs/tools/package-management/niff/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix7
-rw-r--r--pkgs/tools/package-management/nix-du/default.nix12
-rw-r--r--pkgs/tools/package-management/nix-eval-jobs/default.nix5
-rw-r--r--pkgs/tools/package-management/nix-pin/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-prefetch/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-serve/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-simple-deploy/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-template/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-top/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-universal-prefetch/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-update-source/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-update/default.nix1
-rw-r--r--pkgs/tools/package-management/nix/common.nix47
-rw-r--r--pkgs/tools/package-management/nix/default.nix96
-rw-r--r--pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch14
-rw-r--r--pkgs/tools/package-management/nixops/default.nix90
-rw-r--r--pkgs/tools/package-management/nixops/deps.nix20
-rw-r--r--pkgs/tools/package-management/nixops/nixops-dns.nix25
-rw-r--r--pkgs/tools/package-management/nixops/optional-virtd.patch24
-rw-r--r--pkgs/tools/package-management/nixops/python-env/poetry.lock644
-rw-r--r--pkgs/tools/package-management/nixops/python-env/pyproject.toml24
-rw-r--r--pkgs/tools/package-management/nixops/python-env/shell.nix8
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix4
-rw-r--r--pkgs/tools/package-management/npm-check-updates/default.nix6
-rw-r--r--pkgs/tools/package-management/opkg/default.nix9
-rw-r--r--pkgs/tools/package-management/packagekit/default.nix11
-rw-r--r--pkgs/tools/package-management/packagekit/qt.nix8
-rw-r--r--pkgs/tools/package-management/pacman/default.nix3
-rw-r--r--pkgs/tools/package-management/pacup/default.nix1
-rw-r--r--pkgs/tools/package-management/pdm/default.nix17
-rw-r--r--pkgs/tools/package-management/pkg/default.nix5
-rw-r--r--pkgs/tools/package-management/poetry/default.nix30
-rw-r--r--pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix6
-rw-r--r--pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix4
-rw-r--r--pkgs/tools/package-management/poetry/unwrapped.nix21
-rw-r--r--pkgs/tools/package-management/poetry2conda/default.nix1
-rw-r--r--pkgs/tools/package-management/protontricks/default.nix23
-rw-r--r--pkgs/tools/package-management/protontricks/steam-run.patch433
-rw-r--r--pkgs/tools/package-management/repro-get/default.nix1
-rw-r--r--pkgs/tools/package-management/reuse/default.nix40
-rw-r--r--pkgs/tools/package-management/rpm/default.nix36
-rw-r--r--pkgs/tools/package-management/smlpkg/default.nix1
-rw-r--r--pkgs/tools/package-management/xbps/default.nix17
-rw-r--r--pkgs/tools/package-management/yarn-lock-converter/default.nix1
-rw-r--r--pkgs/tools/package-management/zkg/default.nix42
-rw-r--r--pkgs/tools/security/aespipe/default.nix4
-rw-r--r--pkgs/tools/security/afl/qemu.nix4
-rw-r--r--pkgs/tools/security/aflplusplus/default.nix4
-rw-r--r--pkgs/tools/security/aflplusplus/qemu-no-etc-install.patch13
-rw-r--r--pkgs/tools/security/age-plugin-tpm/default.nix16
-rw-r--r--pkgs/tools/security/age/default.nix5
-rw-r--r--pkgs/tools/security/agebox/default.nix1
-rw-r--r--pkgs/tools/security/aide/default.nix11
-rw-r--r--pkgs/tools/security/alterx/default.nix6
-rw-r--r--pkgs/tools/security/amoco/default.nix2
-rw-r--r--pkgs/tools/security/apkleaks/default.nix1
-rw-r--r--pkgs/tools/security/argocd-vault-plugin/default.nix27
-rw-r--r--pkgs/tools/security/arti/default.nix6
-rw-r--r--pkgs/tools/security/arubaotp-seed-extractor/default.nix2
-rw-r--r--pkgs/tools/security/asnmap/default.nix6
-rw-r--r--pkgs/tools/security/aws-iam-authenticator/default.nix25
-rw-r--r--pkgs/tools/security/b2sum/default.nix5
-rw-r--r--pkgs/tools/security/baboossh/default.nix5
-rw-r--r--pkgs/tools/security/bao/default.nix1
-rw-r--r--pkgs/tools/security/bettercap/default.nix1
-rw-r--r--pkgs/tools/security/bitwarden/cli.nix14
-rw-r--r--pkgs/tools/security/bitwarden/default.nix71
-rw-r--r--pkgs/tools/security/bitwarden/electron-27.patch69
-rw-r--r--pkgs/tools/security/bkcrack/default.nix6
-rw-r--r--pkgs/tools/security/bloodhound-py/default.nix31
-rw-r--r--pkgs/tools/security/boofuzz/default.nix14
-rw-r--r--pkgs/tools/security/browserpass/default.nix3
-rw-r--r--pkgs/tools/security/buttercup-desktop/default.nix4
-rw-r--r--pkgs/tools/security/ccid/default.nix61
-rw-r--r--pkgs/tools/security/cdxgen/default.nix6
-rw-r--r--pkgs/tools/security/certinfo/default.nix29
-rw-r--r--pkgs/tools/security/certmgr/default.nix43
-rw-r--r--pkgs/tools/security/cfripper/default.nix4
-rw-r--r--pkgs/tools/security/chain-bench/default.nix6
-rw-r--r--pkgs/tools/security/chainsaw/default.nix11
-rw-r--r--pkgs/tools/security/cherrybomb/default.nix16
-rw-r--r--pkgs/tools/security/chkrootkit/default.nix8
-rw-r--r--pkgs/tools/security/cie-middleware-linux/default.nix15
-rw-r--r--pkgs/tools/security/clamav/default.nix4
-rw-r--r--pkgs/tools/security/clevis/default.nix15
-rw-r--r--pkgs/tools/security/clevis/tang-timeout.patch13
-rw-r--r--pkgs/tools/security/cloudfox/default.nix11
-rw-r--r--pkgs/tools/security/cloudhunter/default.nix4
-rw-r--r--pkgs/tools/security/cloudlist/default.nix13
-rw-r--r--pkgs/tools/security/cmospwd/default.nix4
-rw-r--r--pkgs/tools/security/cnquery/default.nix31
-rw-r--r--pkgs/tools/security/cnspec/default.nix10
-rw-r--r--pkgs/tools/security/coercer/default.nix10
-rw-r--r--pkgs/tools/security/commix/default.nix18
-rw-r--r--pkgs/tools/security/cosign/default.nix7
-rw-r--r--pkgs/tools/security/cowpatty/default.nix13
-rw-r--r--pkgs/tools/security/coze/default.nix2
-rw-r--r--pkgs/tools/security/crackmapexec/default.nix2
-rw-r--r--pkgs/tools/security/crackql/default.nix11
-rw-r--r--pkgs/tools/security/creds/default.nix6
-rw-r--r--pkgs/tools/security/crowdsec/default.nix6
-rw-r--r--pkgs/tools/security/cryptomator/default.nix39
-rw-r--r--pkgs/tools/security/ctmg/default.nix1
-rw-r--r--pkgs/tools/security/cyclonedx-gomod/default.nix7
-rw-r--r--pkgs/tools/security/dalfox/default.nix14
-rw-r--r--pkgs/tools/security/deepsecrets/default.nix10
-rw-r--r--pkgs/tools/security/der-ascii/default.nix4
-rw-r--r--pkgs/tools/security/dismember/default.nix1
-rw-r--r--pkgs/tools/security/dnsx/default.nix6
-rw-r--r--pkgs/tools/security/donkey/default.nix2
-rw-r--r--pkgs/tools/security/doppler/default.nix4
-rw-r--r--pkgs/tools/security/earlybird/default.nix10
-rw-r--r--pkgs/tools/security/earlybird/fix-go.mod-dependency.patch13
-rw-r--r--pkgs/tools/security/echidna/default.nix49
-rw-r--r--pkgs/tools/security/efitools/default.nix7
-rw-r--r--pkgs/tools/security/eid-mw/default.nix4
-rw-r--r--pkgs/tools/security/enc/default.nix6
-rw-r--r--pkgs/tools/security/enpass/data.json6
-rw-r--r--pkgs/tools/security/enum4linux-ng/default.nix4
-rw-r--r--pkgs/tools/security/erosmb/default.nix1
-rw-r--r--pkgs/tools/security/evil-winrm/default.nix26
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix7
-rw-r--r--pkgs/tools/security/faraday-agent-dispatcher/default.nix12
-rw-r--r--pkgs/tools/security/faraday-cli/default.nix10
-rw-r--r--pkgs/tools/security/feroxbuster/default.nix7
-rw-r--r--pkgs/tools/security/ffuf/default.nix27
-rw-r--r--pkgs/tools/security/fingerprintx/default.nix4
-rw-r--r--pkgs/tools/security/flare-floss/default.nix17
-rw-r--r--pkgs/tools/security/fscan/default.nix8
-rw-r--r--pkgs/tools/security/fulcio/default.nix6
-rw-r--r--pkgs/tools/security/fwknop/default.nix8
-rw-r--r--pkgs/tools/security/gallia/default.nix16
-rw-r--r--pkgs/tools/security/gau/default.nix6
-rw-r--r--pkgs/tools/security/gen-oath-safe/default.nix1
-rw-r--r--pkgs/tools/security/ggshield/default.nix7
-rw-r--r--pkgs/tools/security/ghauri/default.nix4
-rw-r--r--pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch227
-rw-r--r--pkgs/tools/security/ghidra/build.nix43
-rw-r--r--pkgs/tools/security/ghidra/default.nix6
-rw-r--r--pkgs/tools/security/gitleaks/default.nix6
-rw-r--r--pkgs/tools/security/gnupg/22.nix3
-rw-r--r--pkgs/tools/security/gnupg/24-revert-rfc4880bis-defaults.patch200
-rw-r--r--pkgs/tools/security/gnupg/24.nix5
-rw-r--r--pkgs/tools/security/gnupg/gpgkey2ssh-20.patch14
-rw-r--r--pkgs/tools/security/go-dork/default.nix1
-rw-r--r--pkgs/tools/security/go-exploitdb/default.nix6
-rw-r--r--pkgs/tools/security/gopass/default.nix6
-rw-r--r--pkgs/tools/security/gopass/git-credential.nix6
-rw-r--r--pkgs/tools/security/gopass/hibp.nix6
-rw-r--r--pkgs/tools/security/gopass/jsonapi.nix6
-rw-r--r--pkgs/tools/security/gopass/summon.nix6
-rw-r--r--pkgs/tools/security/gotestwaf/default.nix8
-rw-r--r--pkgs/tools/security/gotrue/supabase.nix6
-rw-r--r--pkgs/tools/security/goverview/default.nix10
-rw-r--r--pkgs/tools/security/govulncheck/default.nix15
-rw-r--r--pkgs/tools/security/govulncheck/version.patch15
-rw-r--r--pkgs/tools/security/gowitness/default.nix21
-rw-r--r--pkgs/tools/security/gpg-tui/default.nix6
-rw-r--r--pkgs/tools/security/graphw00f/default.nix4
-rw-r--r--pkgs/tools/security/grype/default.nix10
-rw-r--r--pkgs/tools/security/hash-identifier/default.nix3
-rw-r--r--pkgs/tools/security/hash-slinger/default.nix2
-rw-r--r--pkgs/tools/security/hashcat/default.nix6
-rw-r--r--pkgs/tools/security/hcxdumptool/default.nix5
-rw-r--r--pkgs/tools/security/hcxtools/default.nix4
-rw-r--r--pkgs/tools/security/hfinger/default.nix6
-rw-r--r--pkgs/tools/security/himitsu/default.nix4
-rw-r--r--pkgs/tools/security/honggfuzz/default.nix14
-rw-r--r--pkgs/tools/security/httpx/default.nix6
-rw-r--r--pkgs/tools/security/iaito/default.nix2
-rw-r--r--pkgs/tools/security/ibm-sw-tpm2/default.nix34
-rw-r--r--pkgs/tools/security/ic-keysmith/default.nix1
-rw-r--r--pkgs/tools/security/ioc-scan/default.nix4
-rw-r--r--pkgs/tools/security/ioccheck/default.nix28
-rw-r--r--pkgs/tools/security/isolate/default.nix4
-rw-r--r--pkgs/tools/security/jadx/default.nix7
-rw-r--r--pkgs/tools/security/jd-cli/default.nix2
-rw-r--r--pkgs/tools/security/joomscan/default.nix38
-rw-r--r--pkgs/tools/security/jwt-hack/default.nix1
-rw-r--r--pkgs/tools/security/jwx/default.nix6
-rw-r--r--pkgs/tools/security/katana/default.nix17
-rw-r--r--pkgs/tools/security/keepwn/default.nix13
-rw-r--r--pkgs/tools/security/kepler/default.nix1
-rw-r--r--pkgs/tools/security/kestrel/default.nix6
-rw-r--r--pkgs/tools/security/keybase/default.nix6
-rw-r--r--pkgs/tools/security/keybase/gui.nix6
-rw-r--r--pkgs/tools/security/kube-bench/default.nix6
-rw-r--r--pkgs/tools/security/kube-hunter/default.nix3
-rw-r--r--pkgs/tools/security/kubeaudit/default.nix4
-rw-r--r--pkgs/tools/security/kubeclarity/default.nix6
-rw-r--r--pkgs/tools/security/kubernetes-polaris/default.nix4
-rw-r--r--pkgs/tools/security/kubesec/default.nix6
-rw-r--r--pkgs/tools/security/kubestroyer/default.nix1
-rw-r--r--pkgs/tools/security/ldapnomnom/default.nix12
-rw-r--r--pkgs/tools/security/ldeep/default.nix4
-rw-r--r--pkgs/tools/security/lethe/default.nix1
-rw-r--r--pkgs/tools/security/libmodsecurity/default.nix5
-rw-r--r--pkgs/tools/security/lmp/default.nix1
-rw-r--r--pkgs/tools/security/log4jcheck/default.nix1
-rw-r--r--pkgs/tools/security/log4shell-detector/default.nix1
-rw-r--r--pkgs/tools/security/logkeys/default.nix2
-rw-r--r--pkgs/tools/security/logmap/default.nix1
-rw-r--r--pkgs/tools/security/mantra/default.nix1
-rw-r--r--pkgs/tools/security/mbox/default.nix39
-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.lock200
-rw-r--r--pkgs/tools/security/metasploit/default.nix15
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix301
-rwxr-xr-xpkgs/tools/security/metasploit/update.sh3
-rw-r--r--pkgs/tools/security/minisign/default.nix1
-rw-r--r--pkgs/tools/security/mitmproxy2swagger/default.nix9
-rw-r--r--pkgs/tools/security/mkp224o/default.nix4
-rw-r--r--pkgs/tools/security/mkpasswd/default.nix2
-rw-r--r--pkgs/tools/security/mktemp/default.nix18
-rw-r--r--pkgs/tools/security/mongoaudit/default.nix1
-rw-r--r--pkgs/tools/security/naabu/default.nix11
-rw-r--r--pkgs/tools/security/netexec/default.nix106
-rw-r--r--pkgs/tools/security/nitrokey-app/default.nix19
-rw-r--r--pkgs/tools/security/nitrokey-app2/default.nix44
-rw-r--r--pkgs/tools/security/nmap-formatter/default.nix6
-rw-r--r--pkgs/tools/security/nmap/default.nix4
-rw-r--r--pkgs/tools/security/notation/default.nix7
-rw-r--r--pkgs/tools/security/nsjail/default.nix8
-rw-r--r--pkgs/tools/security/nuclei/default.nix15
-rw-r--r--pkgs/tools/security/oath-toolkit/default.nix5
-rw-r--r--pkgs/tools/security/oauth2c/default.nix6
-rw-r--r--pkgs/tools/security/onesixtyone/default.nix1
-rw-r--r--pkgs/tools/security/onioncircuits/default.nix2
-rw-r--r--pkgs/tools/security/onlykey-agent/default.nix10
-rw-r--r--pkgs/tools/security/onlykey-cli/default.nix6
-rw-r--r--pkgs/tools/security/onlykey/default.nix31
-rw-r--r--pkgs/tools/security/openpgp-card-tools/default.nix8
-rw-r--r--pkgs/tools/security/opensc/default.nix12
-rw-r--r--pkgs/tools/security/ospd-openvas/default.nix4
-rw-r--r--pkgs/tools/security/ossec/agent.nix69
-rw-r--r--pkgs/tools/security/ossec/default.nix45
-rw-r--r--pkgs/tools/security/ossec/no-root.patch403
-rw-r--r--pkgs/tools/security/ossec/server.nix70
-rw-r--r--pkgs/tools/security/osv-scanner/default.nix8
-rw-r--r--pkgs/tools/security/otpauth/default.nix7
-rw-r--r--pkgs/tools/security/paperkey/default.nix2
-rw-r--r--pkgs/tools/security/parsero/default.nix1
-rw-r--r--pkgs/tools/security/pass/extensions/audit/default.nix4
-rw-r--r--pkgs/tools/security/pass/extensions/default.nix1
-rw-r--r--pkgs/tools/security/pass/extensions/file.nix23
-rw-r--r--pkgs/tools/security/pass/rofi-pass.nix6
-rw-r--r--pkgs/tools/security/pass/wofi-pass.nix65
-rw-r--r--pkgs/tools/security/pass2csv/default.nix4
-rw-r--r--pkgs/tools/security/passage/default.nix22
-rw-r--r--pkgs/tools/security/passff-host/default.nix4
-rw-r--r--pkgs/tools/security/pcsc-tools/default.nix96
-rw-r--r--pkgs/tools/security/pcsclite/default.nix68
-rw-r--r--pkgs/tools/security/pcsclite/no-dropdir-literals.patch47
-rw-r--r--pkgs/tools/security/pcsctools/default.nix57
-rw-r--r--pkgs/tools/security/pgpdump/default.nix4
-rw-r--r--pkgs/tools/security/pinentry-bemenu/default.nix5
-rw-r--r--pkgs/tools/security/pinentry-rofi/default.nix5
-rw-r--r--pkgs/tools/security/pinentry/mac.nix1
-rw-r--r--pkgs/tools/security/pretender/default.nix6
-rw-r--r--pkgs/tools/security/proxmark3/default.nix4
-rw-r--r--pkgs/tools/security/prs/default.nix1
-rw-r--r--pkgs/tools/security/psudohash/default.nix15
-rw-r--r--pkgs/tools/security/pynitrokey/default.nix82
-rw-r--r--pkgs/tools/security/qdigidoc/default.nix6
-rw-r--r--pkgs/tools/security/quark-engine/default.nix6
-rw-r--r--pkgs/tools/security/quill/default.nix2
-rw-r--r--pkgs/tools/security/rblake2sum/default.nix1
-rw-r--r--pkgs/tools/security/rblake3sum/default.nix29
-rw-r--r--pkgs/tools/security/rbw/default.nix14
-rw-r--r--pkgs/tools/security/rekor/default.nix6
-rw-r--r--pkgs/tools/security/responder/default.nix4
-rw-r--r--pkgs/tools/security/ronin/Gemfile.lock93
-rw-r--r--pkgs/tools/security/ronin/gemset.nix195
-rw-r--r--pkgs/tools/security/routersploit/default.nix1
-rw-r--r--pkgs/tools/security/rucredstash/default.nix1
-rw-r--r--pkgs/tools/security/saml2aws/default.nix6
-rw-r--r--pkgs/tools/security/sbctl/default.nix6
-rw-r--r--pkgs/tools/security/scrypt/default.nix4
-rw-r--r--pkgs/tools/security/secp256k1/default.nix4
-rw-r--r--pkgs/tools/security/sedutil/default.nix11
-rw-r--r--pkgs/tools/security/sequoia-chameleon-gnupg/default.nix9
-rw-r--r--pkgs/tools/security/sequoia-sq/default.nix8
-rw-r--r--pkgs/tools/security/sequoia-sqop/default.nix6
-rw-r--r--pkgs/tools/security/shellz/default.nix1
-rw-r--r--pkgs/tools/security/sherlock/default.nix70
-rw-r--r--pkgs/tools/security/sigma-cli/default.nix18
-rw-r--r--pkgs/tools/security/silenthound/default.nix1
-rw-r--r--pkgs/tools/security/slowhttptest/default.nix1
-rw-r--r--pkgs/tools/security/slsa-verifier/default.nix7
-rw-r--r--pkgs/tools/security/smbmap/default.nix4
-rw-r--r--pkgs/tools/security/smbscan/default.nix1
-rw-r--r--pkgs/tools/security/sn0int/default.nix13
-rw-r--r--pkgs/tools/security/snallygaster/default.nix2
-rw-r--r--pkgs/tools/security/solo2-cli/default.nix2
-rw-r--r--pkgs/tools/security/sops/default.nix1
-rw-r--r--pkgs/tools/security/spire/default.nix6
-rw-r--r--pkgs/tools/security/srm/default.nix17
-rw-r--r--pkgs/tools/security/srm/fix-output-in-verbose-mode.patch57
-rw-r--r--pkgs/tools/security/ssb/default.nix26
-rw-r--r--pkgs/tools/security/ssh-audit/default.nix9
-rw-r--r--pkgs/tools/security/ssh-to-pgp/default.nix6
-rw-r--r--pkgs/tools/security/sshocker/default.nix6
-rw-r--r--pkgs/tools/security/sslscan/default.nix4
-rw-r--r--pkgs/tools/security/sss-cli/default.nix27
-rw-r--r--pkgs/tools/security/sss-cli/fix-cargo-lock.patch21
-rw-r--r--pkgs/tools/security/stacs/default.nix2
-rw-r--r--pkgs/tools/security/steamguard-cli/default.nix28
-rw-r--r--pkgs/tools/security/stegseek/default.nix1
-rw-r--r--pkgs/tools/security/step-ca/default.nix17
-rw-r--r--pkgs/tools/security/step-cli/default.nix6
-rw-r--r--pkgs/tools/security/step-kms-plugin/default.nix6
-rw-r--r--pkgs/tools/security/stoken/default.nix2
-rw-r--r--pkgs/tools/security/stricat/default.nix1
-rw-r--r--pkgs/tools/security/sudo-rs/default.nix2
-rw-r--r--pkgs/tools/security/sudo/default.nix41
-rw-r--r--pkgs/tools/security/swtpm/default.nix7
-rw-r--r--pkgs/tools/security/sx-go/default.nix1
-rw-r--r--pkgs/tools/security/tell-me-your-secrets/default.nix3
-rw-r--r--pkgs/tools/security/terrascan/default.nix6
-rw-r--r--pkgs/tools/security/tessen/default.nix1
-rw-r--r--pkgs/tools/security/theharvester/default.nix22
-rw-r--r--pkgs/tools/security/threatest/default.nix6
-rw-r--r--pkgs/tools/security/tlsx/default.nix15
-rw-r--r--pkgs/tools/security/tor/default.nix11
-rw-r--r--pkgs/tools/security/tpm2-tools/default.nix4
-rw-r--r--pkgs/tools/security/truecrack/default.nix2
-rw-r--r--pkgs/tools/security/trueseeing/default.nix20
-rw-r--r--pkgs/tools/security/trufflehog/default.nix6
-rw-r--r--pkgs/tools/security/trustymail/default.nix4
-rw-r--r--pkgs/tools/security/uncover/default.nix6
-rw-r--r--pkgs/tools/security/vals/default.nix6
-rw-r--r--pkgs/tools/security/vault-ssh-plus/default.nix6
-rw-r--r--pkgs/tools/security/vault/default.nix8
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix14
-rw-r--r--pkgs/tools/security/vaultwarden/Cargo.lock3832
-rw-r--r--pkgs/tools/security/vaultwarden/default.nix16
-rw-r--r--pkgs/tools/security/vaultwarden/update.nix31
-rw-r--r--pkgs/tools/security/vaultwarden/webvault.nix12
-rw-r--r--pkgs/tools/security/volatility/default.nix25
-rw-r--r--pkgs/tools/security/webanalyze/default.nix7
-rw-r--r--pkgs/tools/security/websploit/default.nix29
-rw-r--r--pkgs/tools/security/witness/default.nix36
-rw-r--r--pkgs/tools/security/wpscan/Gemfile.lock48
-rw-r--r--pkgs/tools/security/wpscan/gemset.nix64
-rw-r--r--pkgs/tools/security/xcrawl3r/default.nix1
-rw-r--r--pkgs/tools/security/xsubfind3r/default.nix6
-rw-r--r--pkgs/tools/security/yara/default.nix4
-rw-r--r--pkgs/tools/security/yatas/default.nix1
-rw-r--r--pkgs/tools/security/yersinia/default.nix25
-rw-r--r--pkgs/tools/security/yubihsm-connector/default.nix3
-rw-r--r--pkgs/tools/security/yubihsm-shell/default.nix4
-rw-r--r--pkgs/tools/security/yubikey-touch-detector/default.nix2
-rw-r--r--pkgs/tools/security/zeekscript/default.nix6
-rw-r--r--pkgs/tools/security/zlint/default.nix6
-rw-r--r--pkgs/tools/security/zsteg/Gemfile.lock22
-rw-r--r--pkgs/tools/security/zsteg/default.nix5
-rw-r--r--pkgs/tools/security/zsteg/gemset.nix49
-rw-r--r--pkgs/tools/system/actkbd/default.nix1
-rw-r--r--pkgs/tools/system/amdgpu_top/Cargo.lock2022
-rw-r--r--pkgs/tools/system/amdgpu_top/default.nix8
-rw-r--r--pkgs/tools/system/at/default.nix36
-rw-r--r--pkgs/tools/system/at/install.patch54
-rw-r--r--pkgs/tools/system/augeas/bootstrap.diff15
-rw-r--r--pkgs/tools/system/augeas/default.nix56
-rw-r--r--pkgs/tools/system/automatic-timezoned/default.nix7
-rw-r--r--pkgs/tools/system/awstats/default.nix1
-rw-r--r--pkgs/tools/system/bar/default.nix1
-rw-r--r--pkgs/tools/system/bfs/default.nix9
-rw-r--r--pkgs/tools/system/btop/default.nix16
-rw-r--r--pkgs/tools/system/chase/default.nix1
-rw-r--r--pkgs/tools/system/clinfo/default.nix1
-rw-r--r--pkgs/tools/system/collectd/default.nix5
-rw-r--r--pkgs/tools/system/colorls/default.nix1
-rw-r--r--pkgs/tools/system/confd/default.nix1
-rw-r--r--pkgs/tools/system/consul-template/default.nix7
-rw-r--r--pkgs/tools/system/ctop/default.nix1
-rw-r--r--pkgs/tools/system/daemon/default.nix1
-rw-r--r--pkgs/tools/system/daemonize/default.nix1
-rw-r--r--pkgs/tools/system/datefudge/default.nix5
-rw-r--r--pkgs/tools/system/dcfldd/default.nix1
-rw-r--r--pkgs/tools/system/ddh/default.nix1
-rw-r--r--pkgs/tools/system/ddrescue/default.nix4
-rw-r--r--pkgs/tools/system/ddrescueview/default.nix1
-rw-r--r--pkgs/tools/system/dell-command-configure/default.nix108
-rwxr-xr-xpkgs/tools/system/dell-command-configure/wrapper-lib.c23
-rw-r--r--pkgs/tools/system/dfc/default.nix1
-rw-r--r--pkgs/tools/system/dfrs/default.nix1
-rw-r--r--pkgs/tools/system/disk-filltest/default.nix38
-rw-r--r--pkgs/tools/system/dog/default.nix1
-rw-r--r--pkgs/tools/system/dool/default.nix5
-rw-r--r--pkgs/tools/system/efivar/default.nix7
-rw-r--r--pkgs/tools/system/envconsul/default.nix1
-rw-r--r--pkgs/tools/system/epilys-bb/default.nix1
-rw-r--r--pkgs/tools/system/facter/default.nix1
-rw-r--r--pkgs/tools/system/fakechroot/default.nix5
-rw-r--r--pkgs/tools/system/fakeroot/default.nix2
-rw-r--r--pkgs/tools/system/fancy-motd/default.nix2
-rw-r--r--pkgs/tools/system/fdisk/default.nix49
-rw-r--r--pkgs/tools/system/fio/default.nix4
-rw-r--r--pkgs/tools/system/foreman/default.nix1
-rw-r--r--pkgs/tools/system/foremost/default.nix1
-rw-r--r--pkgs/tools/system/gdmap/default.nix1
-rw-r--r--pkgs/tools/system/gdu/default.nix1
-rw-r--r--pkgs/tools/system/gkraken/default.nix1
-rw-r--r--pkgs/tools/system/go-audit/default.nix1
-rw-r--r--pkgs/tools/system/gohai/default.nix1
-rw-r--r--pkgs/tools/system/gopsuinfo/default.nix1
-rw-r--r--pkgs/tools/system/gotop/default.nix1
-rw-r--r--pkgs/tools/system/gptman/default.nix7
-rw-r--r--pkgs/tools/system/gt5/default.nix1
-rw-r--r--pkgs/tools/system/gtop/default.nix7
-rw-r--r--pkgs/tools/system/hardinfo/default.nix1
-rw-r--r--pkgs/tools/system/hddfancontrol/default.nix1
-rw-r--r--pkgs/tools/system/hiera-eyaml/default.nix1
-rw-r--r--pkgs/tools/system/honcho/default.nix1
-rw-r--r--pkgs/tools/system/hostctl/default.nix1
-rw-r--r--pkgs/tools/system/htop/default.nix4
-rw-r--r--pkgs/tools/system/hw-probe/default.nix1
-rw-r--r--pkgs/tools/system/idle3tools/default.nix1
-rw-r--r--pkgs/tools/system/illum/default.nix1
-rw-r--r--pkgs/tools/system/inxi/default.nix1
-rw-r--r--pkgs/tools/system/ioping/default.nix1
-rw-r--r--pkgs/tools/system/java-service-wrapper/default.nix28
-rw-r--r--pkgs/tools/system/jobber/default.nix1
-rw-r--r--pkgs/tools/system/journalwatch/default.nix2
-rw-r--r--pkgs/tools/system/jsvc/default.nix3
-rw-r--r--pkgs/tools/system/jump/default.nix1
-rw-r--r--pkgs/tools/system/kanata/default.nix21
-rw-r--r--pkgs/tools/system/kmon/default.nix9
-rw-r--r--pkgs/tools/system/lact/default.nix11
-rw-r--r--pkgs/tools/system/lact/pci-ids.patch10
-rw-r--r--pkgs/tools/system/localtime/default.nix1
-rw-r--r--pkgs/tools/system/logrotate/default.nix1
-rw-r--r--pkgs/tools/system/lr/default.nix1
-rw-r--r--pkgs/tools/system/lshw/default.nix51
-rw-r--r--pkgs/tools/system/mediawriter/default.nix5
-rw-r--r--pkgs/tools/system/memtester/default.nix1
-rw-r--r--pkgs/tools/system/minijail/default.nix1
-rw-r--r--pkgs/tools/system/minijail/tools.nix2
-rw-r--r--pkgs/tools/system/mlc/default.nix1
-rw-r--r--pkgs/tools/system/monit/default.nix1
-rw-r--r--pkgs/tools/system/mq-cli/default.nix1
-rw-r--r--pkgs/tools/system/nats-top/default.nix1
-rw-r--r--pkgs/tools/system/netdata/default.nix25
-rw-r--r--pkgs/tools/system/netdata/go.d.plugin.nix6
-rw-r--r--pkgs/tools/system/netdata/no-files-in-etc-and-var.patch75
-rw-r--r--pkgs/tools/system/nkeys/default.nix6
-rw-r--r--pkgs/tools/system/nsc/default.nix8
-rw-r--r--pkgs/tools/system/nvitop/default.nix5
-rw-r--r--pkgs/tools/system/opencl-info/default.nix1
-rw-r--r--pkgs/tools/system/openseachest/default.nix4
-rw-r--r--pkgs/tools/system/osquery/Use-locale.h-instead-of-removed-xlocale.h-header.patch31
-rw-r--r--pkgs/tools/system/osquery/default.nix12
-rw-r--r--pkgs/tools/system/pcstat/default.nix1
-rw-r--r--pkgs/tools/system/procodile/default.nix1
-rw-r--r--pkgs/tools/system/ps_mem/default.nix1
-rw-r--r--pkgs/tools/system/psensor/default.nix24
-rw-r--r--pkgs/tools/system/psstop/default.nix1
-rw-r--r--pkgs/tools/system/r10k/default.nix1
-rw-r--r--pkgs/tools/system/retry/default.nix1
-rw-r--r--pkgs/tools/system/rofi-systemd/default.nix1
-rw-r--r--pkgs/tools/system/rsyslog/default.nix4
-rw-r--r--pkgs/tools/system/runitor/default.nix1
-rw-r--r--pkgs/tools/system/rwc/default.nix5
-rw-r--r--pkgs/tools/system/s-tui/default.nix1
-rw-r--r--pkgs/tools/system/s0ix-selftest-tool/default.nix1
-rw-r--r--pkgs/tools/system/safe-rm/default.nix1
-rw-r--r--pkgs/tools/system/safecopy/default.nix1
-rw-r--r--pkgs/tools/system/setserial/default.nix1
-rw-r--r--pkgs/tools/system/skeema/default.nix5
-rw-r--r--pkgs/tools/system/smartmontools/default.nix6
-rw-r--r--pkgs/tools/system/snooze/default.nix1
-rw-r--r--pkgs/tools/system/stacer/default.nix1
-rw-r--r--pkgs/tools/system/stress-ng/default.nix5
-rw-r--r--pkgs/tools/system/stress/default.nix1
-rw-r--r--pkgs/tools/system/stressapptest/default.nix1
-rw-r--r--pkgs/tools/system/supercronic/default.nix39
-rw-r--r--pkgs/tools/system/symlinks/default.nix1
-rw-r--r--pkgs/tools/system/syslog-ng/default.nix65
-rw-r--r--pkgs/tools/system/systemd-journal2gelf/default.nix1
-rw-r--r--pkgs/tools/system/systeroid/default.nix2
-rw-r--r--pkgs/tools/system/thermald/default.nix1
-rw-r--r--pkgs/tools/system/thinkfan/default.nix1
-rw-r--r--pkgs/tools/system/tm/default.nix1
-rw-r--r--pkgs/tools/system/tp-auto-kbbl/default.nix1
-rw-r--r--pkgs/tools/system/tree/default.nix2
-rw-r--r--pkgs/tools/system/ts/default.nix1
-rw-r--r--pkgs/tools/system/ttop/default.nix35
-rw-r--r--pkgs/tools/system/tuptime/default.nix5
-rw-r--r--pkgs/tools/system/ufiformat/default.nix1
-rw-r--r--pkgs/tools/system/undaemonize/default.nix1
-rw-r--r--pkgs/tools/system/vbetool/default.nix1
-rw-r--r--pkgs/tools/system/which/default.nix9
-rw-r--r--pkgs/tools/system/wsysmon/default.nix1
-rw-r--r--pkgs/tools/system/xe/default.nix1
-rw-r--r--pkgs/tools/system/yeshup/default.nix1
-rw-r--r--pkgs/tools/system/zenith/Cargo.lock1057
-rw-r--r--pkgs/tools/system/zenith/default.nix8
-rw-r--r--pkgs/tools/system/zfxtop/default.nix1
-rw-r--r--pkgs/tools/system/zps/default.nix5
-rw-r--r--pkgs/tools/system/zram-generator/Cargo.lock199
-rw-r--r--pkgs/tools/system/zram-generator/default.nix3
-rw-r--r--pkgs/tools/system/zx/default.nix1
-rw-r--r--pkgs/tools/text/amber/default.nix6
-rw-r--r--pkgs/tools/text/ascii/default.nix4
-rw-r--r--pkgs/tools/text/autocorrect/Cargo.lock733
-rw-r--r--pkgs/tools/text/autocorrect/default.nix8
-rw-r--r--pkgs/tools/text/boxes/default.nix6
-rw-r--r--pkgs/tools/text/chroma/default.nix1
-rw-r--r--pkgs/tools/text/colordiff/default.nix1
-rw-r--r--pkgs/tools/text/comrak/default.nix6
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/text/csvkit/default.nix13
-rw-r--r--pkgs/tools/text/d2/default.nix6
-rw-r--r--pkgs/tools/text/diffsitter/default.nix6
-rw-r--r--pkgs/tools/text/diffstat/default.nix4
-rw-r--r--pkgs/tools/text/difftastic/Cargo.lock287
-rw-r--r--pkgs/tools/text/difftastic/default.nix15
-rw-r--r--pkgs/tools/text/diffutils/default.nix2
-rw-r--r--pkgs/tools/text/dos2unix/default.nix4
-rw-r--r--pkgs/tools/text/dt/default.nix4
-rw-r--r--pkgs/tools/text/enscript/0001-use-system-getopt.patch68
-rw-r--r--pkgs/tools/text/enscript/default.nix20
-rw-r--r--pkgs/tools/text/epub2txt2/default.nix2
-rw-r--r--pkgs/tools/text/fanficfare/default.nix12
-rw-r--r--pkgs/tools/text/fastmod/default.nix6
-rw-r--r--pkgs/tools/text/frawk/default.nix6
-rw-r--r--pkgs/tools/text/frogmouth/default.nix15
-rw-r--r--pkgs/tools/text/gawk/fix-typos-corrected-in-libharu-2.4.4.patch62
-rw-r--r--pkgs/tools/text/gawk/gawkextlib.nix20
-rw-r--r--pkgs/tools/text/groff/site.tmac21
-rw-r--r--pkgs/tools/text/gtranslator/default.nix31
-rw-r--r--pkgs/tools/text/gtree/default.nix6
-rw-r--r--pkgs/tools/text/highlight/default.nix4
-rw-r--r--pkgs/tools/text/html2text/default.nix3
-rw-r--r--pkgs/tools/text/igrep/default.nix2
-rw-r--r--pkgs/tools/text/invoice2data/default.nix5
-rw-r--r--pkgs/tools/text/ispell/default.nix4
-rw-r--r--pkgs/tools/text/kdiff3/default.nix6
-rw-r--r--pkgs/tools/text/l2md/default.nix7
-rw-r--r--pkgs/tools/text/languagetool/default.nix4
-rw-r--r--pkgs/tools/text/markdownlint-cli/default.nix6
-rw-r--r--pkgs/tools/text/mawk/default.nix4
-rw-r--r--pkgs/tools/text/mdbook-admonish/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-footnote/default.nix28
-rw-r--r--pkgs/tools/text/mdbook-graphviz/default.nix2
-rw-r--r--pkgs/tools/text/mdbook-i18n-helpers/default.nix9
-rw-r--r--pkgs/tools/text/mdbook-katex/default.nix8
-rw-r--r--pkgs/tools/text/mdbook-linkcheck/default.nix2
-rw-r--r--pkgs/tools/text/mdbook-mermaid/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-open-on-gh/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-pagetoc/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-pdf/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-toc/default.nix6
-rw-r--r--pkgs/tools/text/mdbook/default.nix17
-rw-r--r--pkgs/tools/text/mdcat/default.nix7
-rw-r--r--pkgs/tools/text/mdhtml/default.nix28
-rw-r--r--pkgs/tools/text/mecab/base.nix8
-rw-r--r--pkgs/tools/text/mecab/default.nix9
-rw-r--r--pkgs/tools/text/mecab/nodic.nix4
-rw-r--r--pkgs/tools/text/miller/default.nix13
-rw-r--r--pkgs/tools/text/nerdfix/default.nix6
-rw-r--r--pkgs/tools/text/nltk_data/default.nix5
-rw-r--r--pkgs/tools/text/opencc/default.nix4
-rw-r--r--pkgs/tools/text/ov/default.nix6
-rw-r--r--pkgs/tools/text/percollate/default.nix8
-rw-r--r--pkgs/tools/text/platinum-searcher/default.nix4
-rw-r--r--pkgs/tools/text/poedit/default.nix4
-rw-r--r--pkgs/tools/text/pomsky/Cargo.lock973
-rw-r--r--pkgs/tools/text/pomsky/default.nix21
-rw-r--r--pkgs/tools/text/qgrep/default.nix45
-rw-r--r--pkgs/tools/text/repgrep/default.nix14
-rw-r--r--pkgs/tools/text/reveal-md/default.nix6
-rw-r--r--pkgs/tools/text/riffdiff/default.nix6
-rw-r--r--pkgs/tools/text/ripgrep-all/Cargo.lock (renamed from pkgs/tools/security/chainsaw/Cargo.lock)2169
-rw-r--r--pkgs/tools/text/ripgrep-all/default.nix68
-rw-r--r--pkgs/tools/text/ripgrep/default.nix33
-rw-r--r--pkgs/tools/text/rsbkb/default.nix6
-rw-r--r--pkgs/tools/text/ruby-zoom/default.nix2
-rw-r--r--pkgs/tools/text/runiq/default.nix12
-rw-r--r--pkgs/tools/text/scraper/default.nix6
-rw-r--r--pkgs/tools/text/sd/default.nix21
-rw-r--r--pkgs/tools/text/sgml/linuxdoc-tools/default.nix4
-rw-r--r--pkgs/tools/text/sift/default.nix2
-rw-r--r--pkgs/tools/text/source-highlight/default.nix16
-rw-r--r--pkgs/tools/text/tab/default.nix4
-rw-r--r--pkgs/tools/text/tesh/default.nix19
-rw-r--r--pkgs/tools/text/to-html/default.nix2
-rw-r--r--pkgs/tools/text/transifex-client/default.nix49
-rw-r--r--pkgs/tools/text/tuc/default.nix6
-rw-r--r--pkgs/tools/text/ugrep/default.nix10
-rw-r--r--pkgs/tools/text/vale/default.nix6
-rw-r--r--pkgs/tools/text/vgrep/default.nix4
-rw-r--r--pkgs/tools/text/xml/rxp/default.nix3
-rw-r--r--pkgs/tools/text/xml/xmlstarlet/default.nix39
-rw-r--r--pkgs/tools/text/xml/xmlstarlet/fix-incompatible-function-pointer.patch11
-rw-r--r--pkgs/tools/text/xml/xq/default.nix10
-rw-r--r--pkgs/tools/text/yx/default.nix22
-rw-r--r--pkgs/tools/text/zim-tools/default.nix4
-rw-r--r--pkgs/tools/typesetting/asciidoc/default.nix11
-rw-r--r--pkgs/tools/typesetting/asciidoctorj/default.nix5
-rw-r--r--pkgs/tools/typesetting/biber-ms/default.nix6
-rw-r--r--pkgs/tools/typesetting/biber/default.nix6
-rw-r--r--pkgs/tools/typesetting/biblatex-check/default.nix1
-rw-r--r--pkgs/tools/typesetting/coq2html/default.nix1
-rw-r--r--pkgs/tools/typesetting/djvu2pdf/default.nix1
-rw-r--r--pkgs/tools/typesetting/docbook2odf/default.nix1
-rw-r--r--pkgs/tools/typesetting/fop/default.nix1
-rw-r--r--pkgs/tools/typesetting/git-latexdiff/default.nix1
-rw-r--r--pkgs/tools/typesetting/halibut/default.nix1
-rw-r--r--pkgs/tools/typesetting/hayagriva/default.nix16
-rw-r--r--pkgs/tools/typesetting/htmldoc/default.nix1
-rw-r--r--pkgs/tools/typesetting/kramdown-asciidoc/default.nix1
-rw-r--r--pkgs/tools/typesetting/lowdown/default.nix6
-rw-r--r--pkgs/tools/typesetting/mmark/default.nix1
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix1
-rw-r--r--pkgs/tools/typesetting/pdf2odt/default.nix60
-rw-r--r--pkgs/tools/typesetting/pdf2odt/use_mktemp.patch19
-rw-r--r--pkgs/tools/typesetting/pdfchain/default.nix1
-rw-r--r--pkgs/tools/typesetting/pdfgrep/default.nix1
-rw-r--r--pkgs/tools/typesetting/pdfsandwich/default.nix1
-rw-r--r--pkgs/tools/typesetting/pdftk/default.nix1
-rw-r--r--pkgs/tools/typesetting/psutils/default.nix5
-rw-r--r--pkgs/tools/typesetting/pulldown-cmark/default.nix15
-rw-r--r--pkgs/tools/typesetting/rfc-bibtex/default.nix1
-rw-r--r--pkgs/tools/typesetting/rubber/default.nix1
-rw-r--r--pkgs/tools/typesetting/satysfi/default.nix26
-rw-r--r--pkgs/tools/typesetting/sile/default.nix5
-rw-r--r--pkgs/tools/typesetting/skribilo/default.nix4
-rw-r--r--pkgs/tools/typesetting/soupault/default.nix4
-rw-r--r--pkgs/tools/typesetting/sshlatex/default.nix1
-rw-r--r--pkgs/tools/typesetting/tectonic/biber.nix54
-rw-r--r--pkgs/tools/typesetting/tectonic/default.nix22
-rw-r--r--pkgs/tools/typesetting/tectonic/tests.nix87
-rw-r--r--pkgs/tools/typesetting/tectonic/wrapper.nix58
-rw-r--r--pkgs/tools/typesetting/tex/advi/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/auctex/default.nix9
-rw-r--r--pkgs/tools/typesetting/tex/blahtexml/default.nix14
-rw-r--r--pkgs/tools/typesetting/tex/catdvi/default.nix10
-rw-r--r--pkgs/tools/typesetting/tex/dblatex/default.nix16
-rw-r--r--pkgs/tools/typesetting/tex/mftrace/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/UPGRADING.md7
-rw-r--r--pkgs/tools/typesetting/tex/texlive/bin.nix125
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-tex-env.nix (renamed from pkgs/tools/typesetting/tex/texlive/combine.nix)280
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix262
-rw-r--r--pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix42
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix199
-rw-r--r--pkgs/tools/typesetting/tex/texlive/fix-implicit-int.patch22
-rw-r--r--pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix1596
-rw-r--r--pkgs/tools/typesetting/tex/texlive/generate-fixed-hashes.nix29
-rw-r--r--pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh8
-rw-r--r--pkgs/tools/typesetting/tex/texlive/tl2nix.sed1
-rw-r--r--pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix60
-rw-r--r--pkgs/tools/typesetting/tex/texlive/tlpdb.nix7835
-rw-r--r--pkgs/tools/typesetting/tikzit/default.nix1
-rw-r--r--pkgs/tools/typesetting/typst-live/default.nix6
-rw-r--r--pkgs/tools/typesetting/typst/Cargo.lock3729
-rw-r--r--pkgs/tools/typesetting/typst/default.nix56
-rw-r--r--pkgs/tools/typesetting/typstfmt/Cargo.lock258
-rw-r--r--pkgs/tools/typesetting/typstfmt/default.nix5
-rw-r--r--pkgs/tools/typesetting/xmlroff/default.nix1
-rw-r--r--pkgs/tools/video/bento4/default.nix4
-rw-r--r--pkgs/tools/video/blackmagic-desktop-video/default.nix2
-rw-r--r--pkgs/tools/video/dvgrab/default.nix1
-rw-r--r--pkgs/tools/video/go2rtc/default.nix7
-rw-r--r--pkgs/tools/video/gopro/default.nix1
-rw-r--r--pkgs/tools/video/harvid/default.nix1
-rw-r--r--pkgs/tools/video/lux/default.nix25
-rw-r--r--pkgs/tools/video/mjpegtools/c++-17-fixes.patch44
-rw-r--r--pkgs/tools/video/mjpegtools/default.nix4
-rw-r--r--pkgs/tools/video/play-with-mpv/default.nix1
-rw-r--r--pkgs/tools/video/rav1e/default.nix37
-rw-r--r--pkgs/tools/video/recyclarr/default.nix11
-rw-r--r--pkgs/tools/video/replay-sorcery/default.nix1
-rw-r--r--pkgs/tools/video/svt-av1/default.nix4
-rw-r--r--pkgs/tools/video/swfmill/default.nix6
-rw-r--r--pkgs/tools/video/vcsi/default.nix19
-rw-r--r--pkgs/tools/video/vncrec/default.nix1
-rw-r--r--pkgs/tools/video/wtwitch/default.nix1
-rw-r--r--pkgs/tools/video/yamdi/default.nix1
-rw-r--r--pkgs/tools/video/yaydl/default.nix1
-rw-r--r--pkgs/tools/virtualization/alpine-make-vm-image/default.nix11
-rw-r--r--pkgs/tools/virtualization/amazon-ecs-cli/default.nix1
-rw-r--r--pkgs/tools/virtualization/awsebcli/default.nix1
-rw-r--r--pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch8
-rw-r--r--pkgs/tools/virtualization/cloud-init/default.nix4
-rw-r--r--pkgs/tools/virtualization/cri-tools/default.nix4
-rw-r--r--pkgs/tools/virtualization/distrobuilder/default.nix40
-rw-r--r--pkgs/tools/virtualization/distrobuilder/generator.nix19
-rw-r--r--pkgs/tools/virtualization/distrobuilder/nixos-generator.patch113
-rw-r--r--pkgs/tools/virtualization/dockstarter/default.nix2
-rw-r--r--pkgs/tools/virtualization/extra-container/default.nix1
-rw-r--r--pkgs/tools/virtualization/govc/default.nix7
-rw-r--r--pkgs/tools/virtualization/guestfs-tools/default.nix2
-rw-r--r--pkgs/tools/virtualization/jumppad/default.nix7
-rw-r--r--pkgs/tools/virtualization/kubevirt/default.nix5
-rw-r--r--pkgs/tools/virtualization/linode-cli/default.nix27
-rw-r--r--pkgs/tools/virtualization/linode-cli/remove-update-check.patch24
-rwxr-xr-xpkgs/tools/virtualization/linode-cli/update.sh6
-rw-r--r--pkgs/tools/virtualization/lxd-image-server/default.nix1
-rw-r--r--pkgs/tools/virtualization/marathonctl/default.nix1
-rw-r--r--pkgs/tools/virtualization/mininet/default.nix51
-rw-r--r--pkgs/tools/virtualization/mkosi/default.nix62
-rw-r--r--pkgs/tools/virtualization/multipass/cmake_no_fetch.patch2
-rw-r--r--pkgs/tools/virtualization/multipass/cmake_warning.patch14
-rw-r--r--pkgs/tools/virtualization/multipass/default.nix23
-rw-r--r--pkgs/tools/virtualization/nixos-shell/default.nix1
-rw-r--r--pkgs/tools/virtualization/onmetal-image/default.nix1
-rw-r--r--pkgs/tools/virtualization/ovftool/default.nix23
-rw-r--r--pkgs/tools/virtualization/reg/default.nix1
-rw-r--r--pkgs/tools/virtualization/supermin/default.nix1
-rw-r--r--pkgs/tools/virtualization/udocker/default.nix1
-rw-r--r--pkgs/tools/virtualization/uefi-run/default.nix1
-rw-r--r--pkgs/tools/virtualization/vpsfree-client/default.nix1
-rw-r--r--pkgs/tools/virtualization/xe-guest-utilities/default.nix7
-rw-r--r--pkgs/tools/virtualization/xen-guest-agent/default.nix40
-rw-r--r--pkgs/tools/virtualization/xva-img/default.nix3
-rw-r--r--pkgs/tools/wayland/aw-watcher-window-wayland/Cargo.lock1689
-rw-r--r--pkgs/tools/wayland/aw-watcher-window-wayland/default.nix40
-rw-r--r--pkgs/tools/wayland/chayang/default.nix3
-rw-r--r--pkgs/tools/wayland/clapboard/default.nix1
-rw-r--r--pkgs/tools/wayland/clipman/default.nix5
-rw-r--r--pkgs/tools/wayland/gnome-randr/default.nix1
-rw-r--r--pkgs/tools/wayland/hyprland-per-window-layout/default.nix7
-rw-r--r--pkgs/tools/wayland/kanshi/default.nix4
-rw-r--r--pkgs/tools/wayland/mpvpaper/default.nix6
-rw-r--r--pkgs/tools/wayland/proycon-wayout/default.nix3
-rw-r--r--pkgs/tools/wayland/shikane/default.nix1
-rw-r--r--pkgs/tools/wayland/slurp/default.nix6
-rw-r--r--pkgs/tools/wayland/sov/default.nix32
-rw-r--r--pkgs/tools/wayland/swaycwd/default.nix33
-rw-r--r--pkgs/tools/wayland/swayimg/default.nix78
-rw-r--r--pkgs/tools/wayland/swaykbdd/default.nix5
-rw-r--r--pkgs/tools/wayland/swayr/default.nix6
-rw-r--r--pkgs/tools/wayland/swayrbar/default.nix7
-rw-r--r--pkgs/tools/wayland/swaysome/default.nix7
-rw-r--r--pkgs/tools/wayland/swww/default.nix10
-rw-r--r--pkgs/tools/wayland/way-displays/default.nix1
-rw-r--r--pkgs/tools/wayland/wayland-proxy-virtwl/default.nix11
-rw-r--r--pkgs/tools/wayland/waylogout/default.nix1
-rw-r--r--pkgs/tools/wayland/waynergy/default.nix2
-rw-r--r--pkgs/tools/wayland/wayout/default.nix1
-rw-r--r--pkgs/tools/wayland/wdomirror/default.nix1
-rw-r--r--pkgs/tools/wayland/wev/default.nix2
-rw-r--r--pkgs/tools/wayland/wl-clip-persist/default.nix2
-rw-r--r--pkgs/tools/wayland/wl-color-picker/default.nix1
-rw-r--r--pkgs/tools/wayland/wl-gammactl/default.nix7
-rw-r--r--pkgs/tools/wayland/wl-gammactl/dont-need-wlroots.diff20
-rw-r--r--pkgs/tools/wayland/wl-mirror/default.nix6
-rw-r--r--pkgs/tools/wayland/wlay/default.nix1
-rw-r--r--pkgs/tools/wayland/wleave/default.nix6
-rw-r--r--pkgs/tools/wayland/wlprop/default.nix1
-rw-r--r--pkgs/tools/wayland/wlr-randr/default.nix5
-rw-r--r--pkgs/tools/wayland/wlr-which-key/default.nix1
-rw-r--r--pkgs/tools/wayland/wlrctl/default.nix1
-rw-r--r--pkgs/tools/wayland/wlsunset/default.nix1
-rw-r--r--pkgs/tools/wayland/wluma/Cargo.lock181
-rw-r--r--pkgs/tools/wayland/wluma/default.nix5
-rw-r--r--pkgs/tools/wayland/wob/default.nix8
-rw-r--r--pkgs/tools/wayland/wpaperd/default.nix1
-rw-r--r--pkgs/tools/wayland/wshowkeys/default.nix1
-rw-r--r--pkgs/tools/wayland/xwaylandvideobridge/default.nix47
2607 files changed, 42815 insertions, 39335 deletions
diff --git a/pkgs/tools/X11/alttab/default.nix b/pkgs/tools/X11/alttab/default.nix
index 7e675c250175f..99619bd88d2c4 100644
--- a/pkgs/tools/X11/alttab/default.nix
+++ b/pkgs/tools/X11/alttab/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = [ ];
+    mainProgram = "alttab";
   };
 }
diff --git a/pkgs/tools/X11/arandr/default.nix b/pkgs/tools/X11/arandr/default.nix
index 6c4c89e888875..1421b2a028dae 100644
--- a/pkgs/tools/X11/arandr/default.nix
+++ b/pkgs/tools/X11/arandr/default.nix
@@ -13,11 +13,11 @@ let
 in
 buildPythonApplication rec {
   pname = "arandr";
-  version = "0.1.10";
+  version = "0.1.11";
 
   src = fetchurl {
     url = "https://christian.amsuess.com/tools/arandr/files/${pname}-${version}.tar.gz";
-    sha256 = "135q0llvm077jil2fr92ssw3p095m4r8jfj0lc5rr3m71n4srj6v";
+    hash = "sha256-5Mu+Npi7gSs5V3CHAXS+AJS7rrOREFqBH5X0LrGCrgI=";
   };
 
   preBuild = ''
@@ -31,10 +31,10 @@ buildPythonApplication rec {
   nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
   propagatedBuildInputs = [ xrandr pygobject3 ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://christian.amsuess.com/tools/arandr/";
     description = "A simple visual front end for XRandR";
-    license = lib.licenses.gpl3;
-    maintainers = [ lib.maintainers.domenkozar ];
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ gepbird ];
   };
 }
diff --git a/pkgs/tools/X11/autocutsel/default.nix b/pkgs/tools/X11/autocutsel/default.nix
index 61a80bcbcdd61..e1b9a3c1c73a5 100644
--- a/pkgs/tools/X11/autocutsel/default.nix
+++ b/pkgs/tools/X11/autocutsel/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     description = "Tracks changes in the server's cutbuffer and CLIPBOARD selection";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; all;
+    mainProgram = "autocutsel";
   };
 }
diff --git a/pkgs/tools/X11/bgs/default.nix b/pkgs/tools/X11/bgs/default.nix
index f0150e9315515..b50f15a1929cb 100644
--- a/pkgs/tools/X11/bgs/default.nix
+++ b/pkgs/tools/X11/bgs/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "bgs";
   };
 }
diff --git a/pkgs/tools/X11/ckbcomp/default.nix b/pkgs/tools/X11/ckbcomp/default.nix
index c5f44792c3b12..1b50b2456d0ae 100644
--- a/pkgs/tools/X11/ckbcomp/default.nix
+++ b/pkgs/tools/X11/ckbcomp/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ckbcomp";
-  version = "1.222";
+  version = "1.223";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "installer-team";
     repo = "console-setup";
     rev = version;
-    sha256 = "sha256-2HviEt/PJS3QFgGPa8WsUeDhotGaHRLs51LlSimfTYQ=";
+    sha256 = "sha256-B0wUMyYNpPddrE4feUaHoeTtoJdE+IS7nY8gOvPBYSU=";
   };
 
   buildInputs = [ perl ];
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ dezgeg ];
     platforms = platforms.unix;
+    mainProgram = "ckbcomp";
   };
 }
diff --git a/pkgs/tools/X11/devour/default.nix b/pkgs/tools/X11/devour/default.nix
index 016ffa6215dbd..861eaf905f9d1 100644
--- a/pkgs/tools/X11/devour/default.nix
+++ b/pkgs/tools/X11/devour/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ mazurel ];
     platforms = platforms.unix;
+    mainProgram = "devour";
   };
 }
diff --git a/pkgs/tools/X11/dex/default.nix b/pkgs/tools/X11/dex/default.nix
index 5e0ef6002ce06..c194e1543f292 100644
--- a/pkgs/tools/X11/dex/default.nix
+++ b/pkgs/tools/X11/dex/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nickcao ];
+    mainProgram = "dex";
   };
 }
diff --git a/pkgs/tools/X11/dispad/default.nix b/pkgs/tools/X11/dispad/default.nix
index fbb7b117d2982..11d46bf24cb64 100644
--- a/pkgs/tools/X11/dispad/default.nix
+++ b/pkgs/tools/X11/dispad/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ zimbatm ];
     platforms = platforms.linux;
+    mainProgram = "dispad";
   };
 }
diff --git a/pkgs/tools/X11/ffcast/default.nix b/pkgs/tools/X11/ffcast/default.nix
index 9723ef69b8507..c70ef9da2e3ce 100644
--- a/pkgs/tools/X11/ffcast/default.nix
+++ b/pkgs/tools/X11/ffcast/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ffcast";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "ropery";
     repo = "FFcast";
     rev = version;
-    sha256 = "047y32bixhc8ksr98vwpgd0k1xxgsv2vs0n3kc2xdac4krc9454h";
+    sha256 = "sha256-kxqwDGEguFTFHkQzXctXqxslt0+bYnfUdQ8C/8+eTXo=";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper perl /*for pod2man*/ ];
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.linux;
+    mainProgram = "ffcast";
   };
 }
diff --git a/pkgs/tools/X11/find-cursor/default.nix b/pkgs/tools/X11/find-cursor/default.nix
index 44a7c7662152c..3b9862a47dea2 100644
--- a/pkgs/tools/X11/find-cursor/default.nix
+++ b/pkgs/tools/X11/find-cursor/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.yanganto ];
+    mainProgram = "find-cursor";
   };
 }
diff --git a/pkgs/tools/X11/go-sct/default.nix b/pkgs/tools/X11/go-sct/default.nix
index 585e28971b491..5e464d43f81cb 100644
--- a/pkgs/tools/X11/go-sct/default.nix
+++ b/pkgs/tools/X11/go-sct/default.nix
@@ -8,7 +8,7 @@ buildGoModule rec {
     owner = "d4l3k";
     repo = "go-sct";
     rev = "4ae88a6bf50e0b917541ddbcec1ff10ab77a0b15";
-    sha256 = "sha256-/0ilM1g3CNaseqV9i+cKWyzxvWnj+TFqazt+aYDtNVs=";
+    hash = "sha256-/0ilM1g3CNaseqV9i+cKWyzxvWnj+TFqazt+aYDtNVs=";
   };
 
   postPatch = ''
@@ -27,6 +27,7 @@ buildGoModule rec {
     homepage = "https://github.com/d4l3k/go-sct";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    platforms = platforms.linux;
     mainProgram = "sct";
   };
 }
diff --git a/pkgs/tools/X11/gobble/default.nix b/pkgs/tools/X11/gobble/default.nix
index 46b1b2c4b482e..b61cf78f99212 100644
--- a/pkgs/tools/X11/gobble/default.nix
+++ b/pkgs/tools/X11/gobble/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ vuimuich ];
     platforms = lib.platforms.linux;
+    mainProgram = "gobble";
   };
 }
diff --git a/pkgs/tools/X11/grobi/default.nix b/pkgs/tools/X11/grobi/default.nix
index 08b0379729705..cea5fad51e555 100644
--- a/pkgs/tools/X11/grobi/default.nix
+++ b/pkgs/tools/X11/grobi/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "Automatically configure monitors/outputs for Xorg via RANDR";
     license = with licenses; [ bsd2 ];
     platforms   = platforms.linux;
+    mainProgram = "grobi";
   };
 }
diff --git a/pkgs/tools/X11/hsetroot/default.nix b/pkgs/tools/X11/hsetroot/default.nix
index 95ccd9586d9c7..a3ebc33f56ba4 100644
--- a/pkgs/tools/X11/hsetroot/default.nix
+++ b/pkgs/tools/X11/hsetroot/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     description = "Allows you to compose wallpapers ('root pixmaps') for X";
     homepage = "https://github.com/himdel/hsetroot";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ henrytill shamilton ];
+    maintainers = with maintainers; [ shamilton ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/X11/icon-slicer/default.nix b/pkgs/tools/X11/icon-slicer/default.nix
index 37b309c54b76b..514b39496ffa4 100644
--- a/pkgs/tools/X11/icon-slicer/default.nix
+++ b/pkgs/tools/X11/icon-slicer/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ zaninime ];
     platforms = platforms.linux;
+    mainProgram = "icon-slicer";
   };
 }
diff --git a/pkgs/tools/X11/imwheel/default.nix b/pkgs/tools/X11/imwheel/default.nix
index 79fbe65af1f22..bab363583a6ca 100644
--- a/pkgs/tools/X11/imwheel/default.nix
+++ b/pkgs/tools/X11/imwheel/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ jhillyerd ];
     platforms = platforms.linux;
     license = licenses.gpl2;
+    mainProgram = "imwheel";
   };
 }
diff --git a/pkgs/tools/X11/inputplug/default.nix b/pkgs/tools/X11/inputplug/default.nix
index e6bf334cf4c0a..80d97190a0cee 100644
--- a/pkgs/tools/X11/inputplug/default.nix
+++ b/pkgs/tools/X11/inputplug/default.nix
@@ -34,6 +34,7 @@ rustPlatform.buildRustPackage rec {
     # `daemon(3)` is deprecated on macOS and `pidfile-rs` needs updating
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ jecaro ];
+    mainProgram = "inputplug";
   };
 }
 
diff --git a/pkgs/tools/X11/kdocker/default.nix b/pkgs/tools/X11/kdocker/default.nix
index 21a11f8fa31a1..e8c08e4c3832b 100644
--- a/pkgs/tools/X11/kdocker/default.nix
+++ b/pkgs/tools/X11/kdocker/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ hexclover ];
     platforms = platforms.linux;
+    mainProgram = "kdocker";
   };
 })
diff --git a/pkgs/tools/X11/keynav/default.nix b/pkgs/tools/X11/keynav/default.nix
index 4a2a0e8b59044..63732f478cbaa 100644
--- a/pkgs/tools/X11/keynav/default.nix
+++ b/pkgs/tools/X11/keynav/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.linux;
+    mainProgram = "keynav";
   };
 }
diff --git a/pkgs/tools/X11/ksuperkey/default.nix b/pkgs/tools/X11/ksuperkey/default.nix
index 8b77ae550300f..733022948dbda 100644
--- a/pkgs/tools/X11/ksuperkey/default.nix
+++ b/pkgs/tools/X11/ksuperkey/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "ksuperkey";
   };
 }
diff --git a/pkgs/tools/X11/nitrogen/default.nix b/pkgs/tools/X11/nitrogen/default.nix
index deefddf23cea3..6097948a7cd3c 100644
--- a/pkgs/tools/X11/nitrogen/default.nix
+++ b/pkgs/tools/X11/nitrogen/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.auntie ];
+    mainProgram = "nitrogen";
   };
 }
diff --git a/pkgs/tools/X11/obconf/default.nix b/pkgs/tools/X11/obconf/default.nix
index efd8b60419bee..f4f9fd433fdea 100644
--- a/pkgs/tools/X11/obconf/default.nix
+++ b/pkgs/tools/X11/obconf/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.sfrijters ];
     platforms = lib.platforms.linux;
+    mainProgram = "obconf";
   };
 }
diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix
index 82d9a6d65a31e..9f39fb7fb5c0a 100644
--- a/pkgs/tools/X11/opentabletdriver/default.nix
+++ b/pkgs/tools/X11/opentabletdriver/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildDotnetModule
 , fetchFromGitHub
-, fetchurl
 , gtk3
 , libX11
 , libXrandr
@@ -13,24 +12,24 @@
 , makeDesktopItem
 , nixosTests
 , wrapGAppsHook
-, dpkg
+, jq
+, coreutils
 }:
 
 buildDotnetModule rec {
   pname = "OpenTabletDriver";
-  version = "0.6.3.0";
+  version = "0.6.4.0";
 
   src = fetchFromGitHub {
     owner = "OpenTabletDriver";
     repo = "OpenTabletDriver";
     rev = "v${version}";
-    hash = "sha256-v41qYNBgOXcFnDOJpQYitql1IZP3p8b3may5Pr04dbg=";
+    hash = "sha256-zK+feU96JOXjmkTndM9VyUid3z+MZFxJGH+MXaB6kzk=";
   };
 
-  debPkg = fetchurl {
-    url = "https://github.com/OpenTabletDriver/OpenTabletDriver/releases/download/v${version}/OpenTabletDriver.deb";
-    hash = "sha256-zWSJlkn7K/meTycWNTinC0hp0JubF22dJNOJeEIfGtI=";
-  };
+  patches = [
+    ./remove-git-from-generate-rules.patch
+  ];
 
   dotnetInstallFlags = [ "--framework=net6.0" ];
 
@@ -42,7 +41,8 @@ buildDotnetModule rec {
   nativeBuildInputs = [
     copyDesktopItems
     wrapGAppsHook
-    dpkg
+    # Dependency of generate-rules.sh
+    jq
   ];
 
   runtimeDeps = [
@@ -76,8 +76,14 @@ buildDotnetModule rec {
     "OpenTabletDriver.Tests.ConfigurationTest.Configurations_DeviceIdentifier_IsNotConflicting"
     # Depends on processor load
     "OpenTabletDriver.Tests.TimerTests.TimerAccuracy"
+    # Can't find Configurations directory
+    "OpenTabletDriver.Tests.ConfigurationTest.Configurations_Verify_Configs_With_Schema"
   ];
 
+  preBuild = ''
+    patchShebangs generate-rules.sh
+  '';
+
   postFixup = ''
     # Give a more "*nix" name to the binaries
     mv $out/bin/OpenTabletDriver.Console $out/bin/otd
@@ -86,9 +92,10 @@ buildDotnetModule rec {
 
     install -Dm644 $src/OpenTabletDriver.UX/Assets/otd.png -t $out/share/pixmaps
 
-    # TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead
-    dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/99-opentabletdriver.rules
-    install -Dm644 ./usr/lib/udev/rules.d/99-opentabletdriver.rules -t $out/lib/udev/rules.d
+    mkdir -p $out/lib/udev/rules.d
+    ./generate-rules.sh \
+      | sed 's@/usr/bin/env rm@${lib.getExe' coreutils "rm"}@' \
+      > $out/lib/udev/rules.d/70-opentabletdriver.rules
   '';
 
   desktopItems = [
@@ -113,7 +120,7 @@ buildDotnetModule rec {
     description = "Open source, cross-platform, user-mode tablet driver";
     homepage = "https://github.com/OpenTabletDriver/OpenTabletDriver";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ thiagokokada ];
+    maintainers = with maintainers; [ gepbird thiagokokada ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     mainProgram = "otd";
   };
diff --git a/pkgs/tools/X11/opentabletdriver/deps.nix b/pkgs/tools/X11/opentabletdriver/deps.nix
index fe821bf70a9c0..76674680d09cd 100644
--- a/pkgs/tools/X11/opentabletdriver/deps.nix
+++ b/pkgs/tools/X11/opentabletdriver/deps.nix
@@ -40,7 +40,9 @@
   (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
   (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 = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "Newtonsoft.Json.Schema"; version = "3.0.15"; sha256 = "1nmc9zxpcyyf3f2ypxw6vnjwlw5sxjv13r65p2dy8xrx8jkgaslp"; })
   (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
   (fetchNuGet { pname = "Octokit"; version = "0.50.0"; sha256 = "1ignj5i6a1c19qqrw00wlr9fdjmwrxkxz7gdxj0x653w84gbv7qq"; })
   (fetchNuGet { pname = "PangoSharp"; version = "3.24.24.34"; sha256 = "1r0h14cklglfpv1lhv93cxmzi2w7d5s03gzpq3j5dmrz43flg9zw"; })
@@ -109,6 +111,7 @@
   (fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta4.22272.1"; sha256 = "1iy5hwwgvx911g3yq65p4zsgpy08w4qz9j3h0igcf7yci44vw8yd"; })
   (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
   (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.7.0"; sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
   (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
   (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
   (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
diff --git a/pkgs/tools/X11/opentabletdriver/remove-git-from-generate-rules.patch b/pkgs/tools/X11/opentabletdriver/remove-git-from-generate-rules.patch
new file mode 100644
index 0000000000000..6881cc7773702
--- /dev/null
+++ b/pkgs/tools/X11/opentabletdriver/remove-git-from-generate-rules.patch
@@ -0,0 +1,22 @@
+diff --git a/generate-rules.sh b/generate-rules.sh
+index ce6c3f3d..a0266612 100755
+--- a/generate-rules.sh
++++ b/generate-rules.sh
+@@ -8,7 +8,7 @@ print_help() {
+   echo "  -h, --help                              Print this help message"
+ }
+ 
+-for c in git jq tr awk sed; do
++for c in jq tr awk sed; do
+   command -v $c > /dev/null
+   if [[ $? > 0 ]]; then
+     echo "Error: Command $c not found in \$PATH." >&2
+@@ -23,7 +23,7 @@ tohex() {
+ shopt -s globstar
+ set -eu
+ 
+-OTD_CONFIGURATIONS="${OTD_CONFIGURATIONS:="$(git rev-parse --show-toplevel)/OpenTabletDriver.Configurations/Configurations"}"
++OTD_CONFIGURATIONS="${OTD_CONFIGURATIONS:="$src/OpenTabletDriver.Configurations/Configurations"}"
+ 
+ while [ $# -gt 0 ]; do
+   case "$1" in
diff --git a/pkgs/tools/X11/paperview/default.nix b/pkgs/tools/X11/paperview/default.nix
index 790eaed53ab5a..30f04702708aa 100644
--- a/pkgs/tools/X11/paperview/default.nix
+++ b/pkgs/tools/X11/paperview/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ _3JlOy-PYCCKUi ];
+    mainProgram = "paperview";
   };
 }
diff --git a/pkgs/tools/X11/pmenu/default.nix b/pkgs/tools/X11/pmenu/default.nix
index c5f6274d988e5..278a181f5c92a 100644
--- a/pkgs/tools/X11/pmenu/default.nix
+++ b/pkgs/tools/X11/pmenu/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     maintainers = [ lib.maintainers.azahi ];
     platforms = lib.platforms.unix;
+    mainProgram = "pmenu";
   };
 })
diff --git a/pkgs/tools/X11/ratmen/default.nix b/pkgs/tools/X11/ratmen/default.nix
index 8a07b41ac3716..0fe85a9ae452d 100644
--- a/pkgs/tools/X11/ratmen/default.nix
+++ b/pkgs/tools/X11/ratmen/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     homepage = "http://www.update.uu.se/~zrajm/programs/";
     downloadPage = "http://www.update.uu.se/~zrajm/programs/ratmen/";
+    mainProgram = "ratmen";
   };
 }
diff --git a/pkgs/tools/X11/run-scaled/default.nix b/pkgs/tools/X11/run-scaled/default.nix
index d62b38bdf2872..b9cdc20f78aa5 100644
--- a/pkgs/tools/X11/run-scaled/default.nix
+++ b/pkgs/tools/X11/run-scaled/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     maintainers = [ maintainers.snaar ];
     license = licenses.bsd3;
     platforms = platforms.unix;
+    mainProgram = "run_scaled";
   };
 }
diff --git a/pkgs/tools/X11/sbs/default.nix b/pkgs/tools/X11/sbs/default.nix
index 02a25ba467fb2..8f16729cd2562 100644
--- a/pkgs/tools/X11/sbs/default.nix
+++ b/pkgs/tools/X11/sbs/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ onur-ozkan ];
+    mainProgram = "sbs";
   };
 }
diff --git a/pkgs/tools/X11/screen-message/default.nix b/pkgs/tools/X11/screen-message/default.nix
index 3701684af8d8d..c049c3841ea61 100644
--- a/pkgs/tools/X11/screen-message/default.nix
+++ b/pkgs/tools/X11/screen-message/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, gtk3 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk3 }:
 
 stdenv.mkDerivation rec {
   pname = "screen-message";
-  version = "0.26";
+  version = "0.28";
 
-  src = fetchurl {
-    url = "mirror://debian/pool/main/s/screen-message/screen-message_${version}.orig.tar.gz";
-    sha256 = "sha256-vBKnuXOEQZDACmlNP9wjJ3NbIdixIx7I72a6Nj6pjzc=";
+  src = fetchFromGitHub {
+    owner = "nomeata";
+    repo = "screen-message";
+    rev = version;
+    hash = "sha256-KHJL1N72Hc1B1m0olxoZxBHIpq/d/T3m2VdS5XC9+tk=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/X11/setroot/default.nix b/pkgs/tools/X11/setroot/default.nix
index bc7b468caaf8a..2c7729eab3ad3 100644
--- a/pkgs/tools/X11/setroot/default.nix
+++ b/pkgs/tools/X11/setroot/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.vyp ];
     platforms = platforms.unix;
+    mainProgram = "setroot";
   };
 }
diff --git a/pkgs/tools/X11/smart-wallpaper/default.nix b/pkgs/tools/X11/smart-wallpaper/default.nix
index f992838935c7d..8f41bb7a78afa 100644
--- a/pkgs/tools/X11/smart-wallpaper/default.nix
+++ b/pkgs/tools/X11/smart-wallpaper/default.nix
@@ -34,5 +34,6 @@ stdenvNoCC.mkDerivation {
     license = licenses.bsd2;
     maintainers = with maintainers; [ baitinq ];
     platforms = platforms.linux;
+    mainProgram = "smart-wallpaper";
   };
 }
diff --git a/pkgs/tools/X11/srandrd/default.nix b/pkgs/tools/X11/srandrd/default.nix
index 4c79e11765cb2..0d51bf4785ecb 100644
--- a/pkgs/tools/X11/srandrd/default.nix
+++ b/pkgs/tools/X11/srandrd/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "srandrd";
-  version = "0.6.0";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "jceb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07r1ck2ijj30n19ylndgw75ly9k3815kj9inpxblfnjpwbbw6ic0";
+    sha256 = "sha256-Wf+tVqDaNAiH6UHN8fFv2wM+LEch6wKlZOkqWEqLLkw=";
   };
 
   buildInputs = [ libX11 libXrandr libXinerama ];
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.utdemir ];
+    mainProgram = "srandrd";
   };
 
 }
diff --git a/pkgs/tools/X11/sselp/default.nix b/pkgs/tools/X11/sselp/default.nix
index d22884270dd45..de083a32028d7 100644
--- a/pkgs/tools/X11/sselp/default.nix
+++ b/pkgs/tools/X11/sselp/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [lib.maintainers.magnetophon ];
     platforms = lib.platforms.linux;
+    mainProgram = "sselp";
   };
 }
diff --git a/pkgs/tools/X11/sx/default.nix b/pkgs/tools/X11/sx/default.nix
deleted file mode 100644
index f48e59c753eb2..0000000000000
--- a/pkgs/tools/X11/sx/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib
-, stdenvNoCC
-, fetchFromGitHub
-, patsh
-, xorg
-}:
-
-stdenvNoCC.mkDerivation rec {
-  pname = "sx";
-  version = "2.1.7";
-
-  src = fetchFromGitHub {
-    owner = "earnestly";
-    repo = pname;
-    rev = version;
-    sha256 = "0xv15m30nhcknasqiybj5wwf7l91q4a4jf6xind8x5x00c6br6nl";
-  };
-
-  makeFlags = [ "PREFIX=$(out)" ];
-
-  nativeBuildInputs = [ patsh ];
-
-  buildInputs = [
-    xorg.xauth
-    xorg.xorgserver
-  ];
-
-  postInstall = ''
-    patsh -f $out/bin/sx -s ${builtins.storeDir}
-  '';
-
-  meta = with lib; {
-    description = "Simple alternative to both xinit and startx for starting a Xorg server";
-    homepage = "https://github.com/earnestly/sx";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ figsoda thiagokokada ];
-  };
-}
diff --git a/pkgs/tools/X11/sxhkd/default.nix b/pkgs/tools/X11/sxhkd/default.nix
deleted file mode 100644
index ab15c38168e27..0000000000000
--- a/pkgs/tools/X11/sxhkd/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, asciidoc
-, libxcb
-, xcbutil
-, xcbutilkeysyms
-, xcbutilwm
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "sxhkd";
-  version = "0.6.2";
-
-  src = fetchFromGitHub {
-    owner = "baskerville";
-    repo = "sxhkd";
-    rev = finalAttrs.version;
-    hash = "sha256-OelMqenk0tiWMLraekS/ggGf6IsXP7Sz7bv75NvnNvI=";
-  };
-
-  patches = [
-    (fetchpatch {
-      # Fixes an issue with overlapping chords when using multiple keyboard layouts.
-      name = "sxhkd-mod5.patch";
-      url = "https://github.com/baskerville/sxhkd/pull/307/commits/35e64f1d7b54c97ccc02e84e278012dae9bc3941.patch";
-      hash = "sha256-bvXWEEITbHC/h0nXQx99SXjvkI/KO36XXNSa1O8KSY0=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    asciidoc
-  ];
-
-  buildInputs = [
-    libxcb
-    xcbutil
-    xcbutilkeysyms
-    xcbutilwm
-  ];
-
-  makeFlags = [ "PREFIX=$(out)" ];
-
-  meta = with lib; {
-    description = "Simple X hotkey daemon";
-    homepage = "https://github.com/baskerville/sxhkd";
-    license = licenses.bsd2;
-    maintainers = with maintainers; [ vyp AndersonTorres ncfavier ];
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/tools/X11/vdpauinfo/default.nix b/pkgs/tools/X11/vdpauinfo/default.nix
index a5fc87aaf6f2b..0ca3354433dce 100644
--- a/pkgs/tools/X11/vdpauinfo/default.nix
+++ b/pkgs/tools/X11/vdpauinfo/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit; # expat version
     platforms = platforms.unix;
     maintainers = with maintainers; [ vcunat ];
+    mainProgram = "vdpauinfo";
   };
 }
diff --git a/pkgs/tools/X11/wayv/default.nix b/pkgs/tools/X11/wayv/default.nix
index 2bdeff6a57904..eae930de1dd9b 100644
--- a/pkgs/tools/X11/wayv/default.nix
+++ b/pkgs/tools/X11/wayv/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
     homepage = "https://github.com/mikemb/wayV";
+    mainProgram = "wayv";
   };
 }
diff --git a/pkgs/tools/X11/wmctrl/default.nix b/pkgs/tools/X11/wmctrl/default.nix
index 19a464aff72af..08a3e9c365f40 100644
--- a/pkgs/tools/X11/wmctrl/default.nix
+++ b/pkgs/tools/X11/wmctrl/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     platforms = with lib.platforms; all;
     maintainers = [ lib.maintainers.Anton-Latukha ];
+    mainProgram = "wmctrl";
   };
 
 }
diff --git a/pkgs/tools/X11/x11vnc/default.nix b/pkgs/tools/X11/x11vnc/default.nix
index e9e9e4b4daba4..8c48951b2d42a 100644
--- a/pkgs/tools/X11/x11vnc/default.nix
+++ b/pkgs/tools/X11/x11vnc/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl2;
     maintainers = with maintainers; [ OPNA2608 ];
+    mainProgram = "x11vnc";
   };
 }
diff --git a/pkgs/tools/X11/x2vnc/default.nix b/pkgs/tools/X11/x2vnc/default.nix
index ed4a83fc8de08..8c9648e71d37b 100644
--- a/pkgs/tools/X11/x2vnc/default.nix
+++ b/pkgs/tools/X11/x2vnc/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     description = "A program to control a remote VNC server";
     platforms = platforms.unix;
     license = licenses.gpl2;
+    mainProgram = "x2vnc";
   };
 }
diff --git a/pkgs/tools/X11/x2x/default.nix b/pkgs/tools/X11/x2x/default.nix
index 3a766d63ba97e..061f1d190318a 100644
--- a/pkgs/tools/X11/x2x/default.nix
+++ b/pkgs/tools/X11/x2x/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/dottedmag/x2x";
     license = licenses.bsd3;
     platforms = platforms.linux;
+    mainProgram = "x2x";
   };
 }
diff --git a/pkgs/tools/X11/xannotate/default.nix b/pkgs/tools/X11/xannotate/default.nix
index fe6d5cae6ee1d..148bbcfe7af49 100644
--- a/pkgs/tools/X11/xannotate/default.nix
+++ b/pkgs/tools/X11/xannotate/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
     homepage = "https://github.com/blais/xannotate";
+    mainProgram = "xannotate";
   };
 }
diff --git a/pkgs/tools/X11/xbanish/default.nix b/pkgs/tools/X11/xbanish/default.nix
index 9aa7e4f5b0235..9a8780324b84e 100644
--- a/pkgs/tools/X11/xbanish/default.nix
+++ b/pkgs/tools/X11/xbanish/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     maintainers = [lib.maintainers.choochootrain];
     platforms = lib.platforms.linux;
+    mainProgram = "xbanish";
   };
 }
diff --git a/pkgs/tools/X11/xbindkeys-config/default.nix b/pkgs/tools/X11/xbindkeys-config/default.nix
index e9d6d42b06892..8a5c07ef96ecd 100644
--- a/pkgs/tools/X11/xbindkeys-config/default.nix
+++ b/pkgs/tools/X11/xbindkeys-config/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [benley];
     platforms = with lib.platforms; linux;
+    mainProgram = "xbindkeys-config";
   };
 
   patches = [ ./xbindkeys-config-patch1.patch ];
diff --git a/pkgs/tools/X11/xborders/default.nix b/pkgs/tools/X11/xborders/default.nix
index f9e78034c3c04..379f976acf451 100644
--- a/pkgs/tools/X11/xborders/default.nix
+++ b/pkgs/tools/X11/xborders/default.nix
@@ -53,5 +53,6 @@ python3Packages.buildPythonPackage rec {
     license = licenses.unlicense;
     maintainers = with maintainers; [ elnudev ];
     platforms = platforms.linux;
+    mainProgram = "xborders";
   };
 }
diff --git a/pkgs/tools/X11/xbrightness/default.nix b/pkgs/tools/X11/xbrightness/default.nix
index 1445c60ccb19e..c022371c01d98 100644
--- a/pkgs/tools/X11/xbrightness/default.nix
+++ b/pkgs/tools/X11/xbrightness/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "http://shallowsky.com/software";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
+    mainProgram = "xbrightness";
   };
 }
diff --git a/pkgs/tools/X11/xcalib/default.nix b/pkgs/tools/X11/xcalib/default.nix
index 09d5cde88fe6d..4960aff0f7b0c 100644
--- a/pkgs/tools/X11/xcalib/default.nix
+++ b/pkgs/tools/X11/xcalib/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [];
     platforms = platforms.linux;
+    mainProgram = "xcalib";
   };
 }
diff --git a/pkgs/tools/X11/xcape/default.nix b/pkgs/tools/X11/xcape/default.nix
index f8d4376017bda..c62e29cedc154 100644
--- a/pkgs/tools/X11/xcape/default.nix
+++ b/pkgs/tools/X11/xcape/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3 ;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
+    mainProgram = "xcape";
   };
 }
diff --git a/pkgs/tools/X11/xchainkeys/default.nix b/pkgs/tools/X11/xchainkeys/default.nix
index 5c154f8a1116d..7a251b30a47b9 100644
--- a/pkgs/tools/X11/xchainkeys/default.nix
+++ b/pkgs/tools/X11/xchainkeys/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     description = "A standalone X11 program to create chained key bindings";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.unix;
+    mainProgram = "xchainkeys";
   };
 }
diff --git a/pkgs/tools/X11/xcwd/default.nix b/pkgs/tools/X11/xcwd/default.nix
index 6dbd8606485a7..897c4af95edc8 100644
--- a/pkgs/tools/X11/xcwd/default.nix
+++ b/pkgs/tools/X11/xcwd/default.nix
@@ -1,31 +1,32 @@
 { lib, stdenv, fetchFromGitHub, libX11 }:
 
-stdenv.mkDerivation rec {
-  version = "1.0";
+stdenv.mkDerivation (finalAttrs: {
   pname = "xcwd";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner   = "schischi";
     repo    = "xcwd";
-    rev     = "v${version}";
-    sha256  = "sha256-M6/1H6hI50Cvx40RTKzZXoUui0FGZfwe1IwdaxMJIQo=";
+    rev     = "v${finalAttrs.version}";
+    hash    = "sha256-M6/1H6hI50Cvx40RTKzZXoUui0FGZfwe1IwdaxMJIQo=";
   };
 
   buildInputs = [ libX11 ];
 
   makeFlags = [ "prefix=$(out)" ];
 
-  installPhase = ''
-    install -D xcwd "$out/bin/xcwd"
+  preInstall = ''
+    mkdir -p $out/bin
   '';
 
-  meta = with lib; {
+  meta = {
     description = ''
-      A simple tool which print the current working directory of the currently focused window
+      A simple tool which prints the current working directory of the currently focused window
     '';
     homepage = "https://github.com/schischi/xcwd";
-    maintainers = [ maintainers.grburst ];
-    license = licenses.bsd3;
-    platforms = platforms.linux;
+    license = lib.licenses.bsd3;
+    mainProgram = "xcwd";
+    maintainers = [ lib.maintainers.grburst ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/tools/X11/xdg-utils/default.nix b/pkgs/tools/X11/xdg-utils/default.nix
index ed8b1363d5f8c..3be7b2fd0ee60 100644
--- a/pkgs/tools/X11/xdg-utils/default.nix
+++ b/pkgs/tools/X11/xdg-utils/default.nix
@@ -69,7 +69,8 @@ stdenv.mkDerivation rec {
 
     substituteInPlace $out/bin/xdg-open \
       --replace "/usr/bin/printf" "${coreutils}/bin/printf" \
-      --replace "gdbus" "${glib}/bin/gdbus"
+      --replace "gdbus" "${glib}/bin/gdbus" \
+      --replace "mimeopen" "${perlPackages.FileMimeInfo}/bin/mimeopen"
 
     substituteInPlace $out/bin/xdg-mime \
       --replace "/usr/bin/file" "${file}/bin/file"
@@ -84,7 +85,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.freedesktop.org/wiki/Software/xdg-utils/";
     description = "A set of command line tools that assist applications with a variety of desktop integration tasks";
-    license = if mimiSupport then licenses.gpl2 else licenses.free;
+    license = if mimiSupport then licenses.gpl2 else licenses.mit;
     maintainers = [ maintainers.eelco ];
     platforms = platforms.all;
   };
diff --git a/pkgs/tools/X11/xdotool/default.nix b/pkgs/tools/X11/xdotool/default.nix
index 736c05c7c7db8..bcb48ac44fac7 100644
--- a/pkgs/tools/X11/xdotool/default.nix
+++ b/pkgs/tools/X11/xdotool/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
+    mainProgram = "xdotool";
   };
 }
diff --git a/pkgs/tools/X11/xgeometry-select/default.nix b/pkgs/tools/X11/xgeometry-select/default.nix
index 9f9b50feab909..005bf302cc342 100644
--- a/pkgs/tools/X11/xgeometry-select/default.nix
+++ b/pkgs/tools/X11/xgeometry-select/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://bbs.archlinux.org/viewtopic.php?pid=660837";
     maintainers = with maintainers; [ obadz ];
     platforms   = platforms.linux;
+    mainProgram = "xgeometry-select";
   };
 }
diff --git a/pkgs/tools/X11/xidlehook/default.nix b/pkgs/tools/X11/xidlehook/default.nix
index bb86014257b8b..c23acbedafdfc 100644
--- a/pkgs/tools/X11/xidlehook/default.nix
+++ b/pkgs/tools/X11/xidlehook/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
     badPlatforms = platforms.darwin;
+    mainProgram = "xidlehook";
   };
 }
diff --git a/pkgs/tools/X11/xinput_calibrator/default.nix b/pkgs/tools/X11/xinput_calibrator/default.nix
index 25b419ade4e37..d8afb3e4a8966 100644
--- a/pkgs/tools/X11/xinput_calibrator/default.nix
+++ b/pkgs/tools/X11/xinput_calibrator/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.flosse ];
     platforms = lib.platforms.linux;
+    mainProgram = "xinput_calibrator";
   };
 }
diff --git a/pkgs/tools/X11/xkb-switch-i3/default.nix b/pkgs/tools/X11/xkb-switch-i3/default.nix
index 6333c1abc740b..975eeb9866141 100644
--- a/pkgs/tools/X11/xkb-switch-i3/default.nix
+++ b/pkgs/tools/X11/xkb-switch-i3/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ewok ];
     platforms = platforms.linux;
+    mainProgram = "xkb-switch";
   };
 }
diff --git a/pkgs/tools/X11/xkb-switch/default.nix b/pkgs/tools/X11/xkb-switch/default.nix
index e2f15d969edd6..7db5925322346 100644
--- a/pkgs/tools/X11/xkb-switch/default.nix
+++ b/pkgs/tools/X11/xkb-switch/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ smironov ];
     platforms = platforms.linux;
+    mainProgram = "xkb-switch";
   };
 }
diff --git a/pkgs/tools/X11/xkbset/default.nix b/pkgs/tools/X11/xkbset/default.nix
index 645770f7e015a..9c4bc81744fa5 100644
--- a/pkgs/tools/X11/xkbset/default.nix
+++ b/pkgs/tools/X11/xkbset/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ drets ];
     platforms = platforms.linux;
     license = licenses.bsd3;
+    mainProgram = "xkbset";
   };
 }
diff --git a/pkgs/tools/X11/xkbvalidate/default.nix b/pkgs/tools/X11/xkbvalidate/default.nix
index 92a47aa65638b..b39e697f77414 100644
--- a/pkgs/tools/X11/xkbvalidate/default.nix
+++ b/pkgs/tools/X11/xkbvalidate/default.nix
@@ -7,6 +7,7 @@ runCommandCC "xkbvalidate" {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.aszlig ];
+    mainProgram = "xkbvalidate";
   };
 } ''
   mkdir -p "$out/bin"
diff --git a/pkgs/tools/X11/xlayoutdisplay/default.nix b/pkgs/tools/X11/xlayoutdisplay/default.nix
index 593b40a2ade79..5ab9ca0b86ff1 100644
--- a/pkgs/tools/X11/xlayoutdisplay/default.nix
+++ b/pkgs/tools/X11/xlayoutdisplay/default.nix
@@ -1,27 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, xorg, boost, gtest }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, xorg, boost, gtest }:
 
 stdenv.mkDerivation rec {
   pname = "xlayoutdisplay";
-  version = "1.3.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "alex-courtis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8K9SoZToJTk/sL4PC4Fcsu9XzGLYfNIZlbIyxc9jf84=";
+    hash = "sha256-A37jFhVTW/3QNEf776Oi3ViRK+ebOPRTsEQqdmNhA7E=";
   };
 
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = with xorg; [ libX11 libXrandr libXcursor boost ];
   nativeCheckInputs = [ gtest ];
 
   doCheck = true;
   checkTarget = "gtest";
 
-  # Fixup reference to hardcoded boost path, dynamically link as seems fine and we don't have static for this
-  postPatch = ''
-    substituteInPlace config.mk --replace '/usr/lib/libboost_program_options.a' '-lboost_program_options'
-  '';
-
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
   enableParallelBuilding = true;
 
@@ -31,5 +27,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ dtzWill ];
     license = licenses.asl20;
     platforms = platforms.linux;
+    mainProgram = "xlayoutdisplay";
   };
 }
diff --git a/pkgs/tools/X11/xlogo/default.nix b/pkgs/tools/X11/xlogo/default.nix
index 8c30b34eca754..7b8e9bf52212b 100644
--- a/pkgs/tools/X11/xlogo/default.nix
+++ b/pkgs/tools/X11/xlogo/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raboof ];
     platforms = platforms.unix;
     license = licenses.mit;
+    mainProgram = "xlogo";
   };
 }
diff --git a/pkgs/tools/X11/xmcp/default.nix b/pkgs/tools/X11/xmcp/default.nix
index 178861d637246..228d502c4b7c2 100644
--- a/pkgs/tools/X11/xmcp/default.nix
+++ b/pkgs/tools/X11/xmcp/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.linux;
+    mainProgram = "xmcp";
   };
 }
diff --git a/pkgs/tools/X11/xmousepasteblock/default.nix b/pkgs/tools/X11/xmousepasteblock/default.nix
index ec6a5b0b8e11f..121ec93b2242c 100644
--- a/pkgs/tools/X11/xmousepasteblock/default.nix
+++ b/pkgs/tools/X11/xmousepasteblock/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/milaq/XMousePasteBlock";
     license = lib.licenses.gpl2;
     maintainers = [ maintainers.petercommand ];
+    mainProgram = "xmousepasteblock";
   };
 }
diff --git a/pkgs/tools/X11/xnee/default.nix b/pkgs/tools/X11/xnee/default.nix
index c16da204f2f4f..b6fe79c7b9cf9 100644
--- a/pkgs/tools/X11/xnee/default.nix
+++ b/pkgs/tools/X11/xnee/default.nix
@@ -1,13 +1,25 @@
-{ fetchurl, fetchpatch, lib, stdenv, libX11, xorgproto, libXext, libXtst
-, gtk2, libXi, pkg-config, texinfo }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, pkg-config
+, gtk2
+, libX11
+, libXext
+, libXi
+, libXtst
+, texinfo
+, xorgproto
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   version = "3.19";
   pname = "xnee";
 
   src = fetchurl {
-    url = "mirror://gnu/xnee/${pname}-${version}.tar.gz";
-    sha256 = "04n2lac0vgpv8zsn7nmb50hf3qb56pmj90dmwnivg09gyrf1x92j";
+    url = "mirror://gnu/xnee/xnee-${finalAttrs.version}.tar.gz";
+    hash = "sha256-UqQeXPYvgbej5bWBJOs1ZeHhICir2mP1R/u+DZiiwhI=";
   };
 
   patches = [
@@ -16,57 +28,73 @@ stdenv.mkDerivation rec {
     (fetchpatch {
       name = "fno-common.patch";
       url = "https://savannah.gnu.org/bugs/download.php?file_id=49534";
-      sha256 = "04j2cjy2yaiigg31a6k01vw0fq19yj3zpriikkjcz9q4ab4m5gh2";
+      hash = "sha256-Ar5SyVIEp8/knDHm+4f0KWAH+A5gGhXGezEqL7xkQhI=";
     })
   ];
 
-  postPatch =
-    '' for i in `find cnee/test -name \*.sh`
-       do
-         sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g ; s|/usr/bin/env bash|${stdenv.shell}|g'
-       done
+  postPatch = ''
+    for i in `find cnee/test -name \*.sh`; 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=""'
+  '';
 
-       # 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=""'
-    '';
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs =
-    [ libX11 xorgproto libXext libXtst gtk2
-      libXi
-      texinfo
-    ];
+  buildInputs = [
+    gtk2
+    libX11
+    libXext
+    libXi
+    libXtst
+    texinfo
+    xorgproto
+  ];
 
-  configureFlags =
+  configureFlags = [
+    "--disable-gnome-applet"
     # Do a static build because `libxnee' doesn't get installed anyway.
-    [ "--disable-gnome-applet" "--enable-static" ];
+    "--enable-static"
+  ];
+
+  makeFlags = [
+    # `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
+    # lacks libXi.
+    "LDFLAGS=-lXi"
+  ];
 
-  # `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
-  # lacks libXi.
-  makeFlags = [ "LDFLAGS=-lXi" ];
+  # error: call to undeclared function 'xnee_check_key';
+  # ISO C99 and later do not support implicit function declarations
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
+  };
 
   # XXX: Actually tests require an X server.
   doCheck = true;
 
   meta = {
     description = "X11 event recording and replay tool";
-
-    longDescription =
-      '' Xnee is a suite of programs that can record, replay and distribute
-         user actions under the X11 environment.  Think of it as a robot that
-         can imitate the job you just did.  Xnee can be used to automate
-         tests, demonstrate programs, distribute actions, record & replay
-         "macros", retype a file.
-      '';
-
-    license = lib.licenses.gpl3Plus;
-
+    longDescription = ''
+      Xnee is a suite of programs that can record, replay and distribute
+      user actions under the X11 environment.  Think of it as a robot that
+      can imitate the job you just did.  Xnee can be used to automate
+      tests, demonstrate programs, distribute actions, record & replay
+      "macros", retype a file.
+    '';
     homepage = "https://www.gnu.org/software/xnee/";
-
-    maintainers = with lib.maintainers; [ ];
-    platforms = lib.platforms.gnu ++ lib.platforms.linux;  # arbitrary choice
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ wegank ];
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/tools/X11/xnotify/default.nix b/pkgs/tools/X11/xnotify/default.nix
index e5c6c31e7dbb0..cdd7d54b52945 100644
--- a/pkgs/tools/X11/xnotify/default.nix
+++ b/pkgs/tools/X11/xnotify/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.unix;
+    mainProgram = "xnotify";
   };
 }
diff --git a/pkgs/tools/X11/xob/default.nix b/pkgs/tools/X11/xob/default.nix
index 71e50248df979..e6e2fc2730208 100644
--- a/pkgs/tools/X11/xob/default.nix
+++ b/pkgs/tools/X11/xob/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ florentc ];
+    mainProgram = "xob";
   };
 }
diff --git a/pkgs/tools/X11/xosview/default.nix b/pkgs/tools/X11/xosview/default.nix
deleted file mode 100644
index 3b09b150a0fc2..0000000000000
--- a/pkgs/tools/X11/xosview/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, libX11
-, libXpm
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "xosview";
-  version = "1.24";
-
-  src = fetchFromGitHub {
-    owner = "hills";
-    repo = finalAttrs.pname;
-    rev = finalAttrs.version;
-    hash = "sha256-9Pr7voJiCH7oBziMFRHCWxoyuGdndcdRD2POjiNT7yw=";
-  };
-
-  dontConfigure = true;
-
-  buildInputs = [
-    libX11
-    libXpm
-  ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "PLATFORM=linux"
-  ];
-
-  meta = with lib; {
-    homepage = "http://www.pogo.org.uk/~mark/xosview/";
-    description = "A classic system monitoring tool";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = with platforms; linux;
-  };
-})
-# TODO: generalize to other platforms
diff --git a/pkgs/tools/X11/xosview2/default.nix b/pkgs/tools/X11/xosview2/default.nix
deleted file mode 100644
index bd4234bae1904..0000000000000
--- a/pkgs/tools/X11/xosview2/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, libX11
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "xosview2";
-  version = "2.3.2";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/xosview/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    hash = "sha256-ex1GDBgx9Zzx5tOkZ2IRYskmBh/bUYpRTXHWRoE30vA=";
-  };
-
-  buildInputs = [ libX11 ];
-
-  meta = with lib; {
-    homepage = "https://xosview.sourceforge.net/index.html";
-    description = "Lightweight graphical operating system monitor";
-    longDescription = ''
-      xosview is a lightweight program that gathers information from your
-      operating system and displays it in graphical form. It attempts to show
-      you in a quick glance an overview of how your system resources are being
-      utilized.
-
-      It can be configured to be nothing more than a small strip showing a
-      couple of parameters on a desktop task bar. Or it can display dozens of
-      meters and rolling graphical charts over your entire screen.
-
-      Since xosview renders all graphics with core X11 drawing methods, you can
-      run it on one machine and display it on another. This works even if your
-      other host is an operating system not running an X server inside a
-      virtual machine running on a physically different host. If you can
-      connect to it on a network, then you can popup an xosview instance and
-      monitor what is going on.
-    '';
-    license = with licenses; [ gpl2 bsdOriginal ];
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.all;
-  };
-})
diff --git a/pkgs/tools/X11/xplugd/default.nix b/pkgs/tools/X11/xplugd/default.nix
index aa07c7f37b1b4..f5b81571ef2db 100644
--- a/pkgs/tools/X11/xplugd/default.nix
+++ b/pkgs/tools/X11/xplugd/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ akho ];
+    mainProgram = "xplugd";
   };
 }
diff --git a/pkgs/tools/X11/xpointerbarrier/default.nix b/pkgs/tools/X11/xpointerbarrier/default.nix
index 33271090678fc..8621e76443659 100644
--- a/pkgs/tools/X11/xpointerbarrier/default.nix
+++ b/pkgs/tools/X11/xpointerbarrier/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres xzfc ];
     platforms = platforms.linux;
+    mainProgram = "xpointerbarrier";
   };
 })
diff --git a/pkgs/tools/X11/xprintidle-ng/default.nix b/pkgs/tools/X11/xprintidle-ng/default.nix
index fdb3b7c58a567..ebe3d2a619926 100644
--- a/pkgs/tools/X11/xprintidle-ng/default.nix
+++ b/pkgs/tools/X11/xprintidle-ng/default.nix
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
     sha256 = "0a5024vimpfrpj6w60j1ad8qvjkrmxiy8w1yijxfwk917ag9rkpq";
   };
 
+  patches = [
+    ./fix-config_h-includes-should-be-first.patch
+  ];
+
   postPatch = ''
     substituteInPlace configure.ac \
       --replace "AC_PREREQ([2.62])" "AC_PREREQ([2.64])"
@@ -59,9 +63,10 @@ stdenv.mkDerivation rec {
   meta = {
     inherit version;
     description = "A command-line tool to print idle time from libXss";
-    homepage = "http://taktoa.me/xprintidle-ng/";
-    license = lib.licenses.gpl2;
+    homepage = "https://github.com/taktoa/xprintidle-ng";
+    license = lib.licenses.gpl2Only;
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux;
+    mainProgram = "xprintidle-ng";
   };
 }
diff --git a/pkgs/tools/X11/xprintidle-ng/fix-config_h-includes-should-be-first.patch b/pkgs/tools/X11/xprintidle-ng/fix-config_h-includes-should-be-first.patch
new file mode 100644
index 0000000000000..01b4b5d63bddd
--- /dev/null
+++ b/pkgs/tools/X11/xprintidle-ng/fix-config_h-includes-should-be-first.patch
@@ -0,0 +1,62 @@
+Fixes the config.h include error during build:
+
+```console
+In file included from src/xprintidle-ng.c:36:
+lib/time.h:28:3: error: #error "Please include config.h first."
+    28 |  #error "Please include config.h first."
+      |   ^~~~~
+```
+
+Introduced since gnulib upgrade:
+* https://github.com/coreutils/gnulib/commit/8ad7bc6
+* https://lists.gnu.org/archive/html/bug-gnulib/2023-04/msg00088.html
+* https://www.gnu.org/software/gnulib/manual/html_node/Source-changes.html
+
+The last version of gnulib now checks that config.h is the first include
+in every compilation unit.
+
+This is not the case with the xprintidle-ng source code, so this patch
+moves these `config.h` inclusions to be first.
+
+---
+ src/time-format.c   | 2 +-
+ src/xprintidle-ng.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/time-format.c b/src/time-format.c
+index 3a46749..4c0a4d2 100644
+--- a/src/time-format.c
++++ b/src/time-format.c
+@@ -18,10 +18,10 @@
+ //     51 Franklin Street, Fifth Floor
+ //     Boston, MA 02110-1301, USA.
+
++#include <config.h>
+ #include <stdbool.h>
+ #include <signal.h>
+ #include <time.h>
+-#include <config.h>
+ #include "system.h"
+ #include "xalloc.h"
+
+diff --git a/src/xprintidle-ng.c b/src/xprintidle-ng.c
+index 5156adf..ca69b2d 100644
+--- a/src/xprintidle-ng.c
++++ b/src/xprintidle-ng.c
+@@ -28,13 +28,13 @@
+ // Eivind Magnus Hvidevold <hvidevold@gmail.com>.
+ // kpowersave is licensed under the GNU GPL, version 2 _only_.
+
++#include <config.h>
+ #include <X11/Xlib.h>
+ #include <X11/extensions/dpms.h>
+ #include <X11/extensions/scrnsaver.h>
+ #include <stdbool.h>
+ #include <signal.h>
+ #include <time.h>
+-#include <config.h>
+ #include "system.h"
+ #include "errno.h"
+ #include "error.h"
+--
+2.42.0
diff --git a/pkgs/tools/X11/xprintidle/default.nix b/pkgs/tools/X11/xprintidle/default.nix
index 400306db6efdb..4a0d371a7fd61 100644
--- a/pkgs/tools/X11/xprintidle/default.nix
+++ b/pkgs/tools/X11/xprintidle/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.linux;
+    mainProgram = "xprintidle";
   };
 }
diff --git a/pkgs/tools/X11/xprompt/default.nix b/pkgs/tools/X11/xprompt/default.nix
index 191b0316fa807..15f7b337c8795 100644
--- a/pkgs/tools/X11/xprompt/default.nix
+++ b/pkgs/tools/X11/xprompt/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.unix;
+    mainProgram = "xprompt";
   };
 }
diff --git a/pkgs/tools/X11/xrectsel/default.nix b/pkgs/tools/X11/xrectsel/default.nix
index 8b37a6792424b..7eef352aea53a 100644
--- a/pkgs/tools/X11/xrectsel/default.nix
+++ b/pkgs/tools/X11/xrectsel/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.linux;
+    mainProgram = "xrectsel";
   };
 }
diff --git a/pkgs/tools/X11/xrestop/default.nix b/pkgs/tools/X11/xrestop/default.nix
index dd3766160c013..2837d2a83d736 100644
--- a/pkgs/tools/X11/xrestop/default.nix
+++ b/pkgs/tools/X11/xrestop/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ qyliss ];
     platforms = platforms.unix;
     license = licenses.gpl2Plus;
+    mainProgram = "xrestop";
   };
 }
diff --git a/pkgs/tools/X11/xsecurelock/default.nix b/pkgs/tools/X11/xsecurelock/default.nix
index 25cd8cc24cedf..c011aa8aa4991 100644
--- a/pkgs/tools/X11/xsecurelock/default.nix
+++ b/pkgs/tools/X11/xsecurelock/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xsecurelock";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "xsecurelock";
     rev = "v${version}";
-    sha256 = "sha256-sK3KrtZzrV2jkQveZnSHDR5I4v7baL/sARje2mDpIMI=";
+    sha256 = "sha256-OPasi5zmvmcWnVCj/dU2KprzNmar51zDElD23750yk4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/X11/xssstate/default.nix b/pkgs/tools/X11/xssstate/default.nix
index a1ce545a5f133..53fd1138c29dd 100644
--- a/pkgs/tools/X11/xssstate/default.nix
+++ b/pkgs/tools/X11/xssstate/default.nix
@@ -4,29 +4,31 @@
 , libX11
 , libXScrnSaver
 }:
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xssstate";
-  #
-  # Use the date of the last commit, since there were bug fixes after the 1.1
-  # release.
-  #
-  version = "unstable-2022-09-24";
+  version = "1.1-unstable-2022-09-24";
+
   src = fetchgit {
     url = "https://git.suckless.org/xssstate/";
     rev = "5d8e9b49ce2970f786f1e5aa12bbaae83900453f";
     hash = "sha256-Aor12tU1I/qNZCdBhZcvNK1FWFh0HYK8CEI29X5yoeA=";
   };
 
-  makeFlags = [ "VERSION=${version}" ];
-
-  installFlags = [ "PREFIX=$(out)" ];
+  buildInputs = [
+    libX11
+    libXScrnSaver
+  ];
 
-  buildInputs = [ libX11 libXScrnSaver ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "VERSION=${finalAttrs.version}"
+  ];
 
   meta = with lib; {
     description = "A simple tool to retrieve the X screensaver state";
     license = licenses.mit;
     maintainers = with maintainers; [ onemoresuza ];
     platforms = platforms.linux;
+    mainProgram = "xssstate";
   };
-}
+})
diff --git a/pkgs/tools/X11/xtrace/default.nix b/pkgs/tools/X11/xtrace/default.nix
index dfd834e67b808..de1ea88266e2d 100644
--- a/pkgs/tools/X11/xtrace/default.nix
+++ b/pkgs/tools/X11/xtrace/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ viric ];
     platforms = with platforms; linux;
+    mainProgram = "xtrace";
   };
 }
diff --git a/pkgs/tools/X11/xtruss/default.nix b/pkgs/tools/X11/xtruss/default.nix
index 9e2ee94efa4ac..790312335ab21 100644
--- a/pkgs/tools/X11/xtruss/default.nix
+++ b/pkgs/tools/X11/xtruss/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.chiark.greenend.org.uk/~sgtatham/xtruss";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "xtruss";
   };
 }
diff --git a/pkgs/tools/X11/xvkbd/default.nix b/pkgs/tools/X11/xvkbd/default.nix
index 32355205d59a9..7ed6b355a7993 100644
--- a/pkgs/tools/X11/xvkbd/default.nix
+++ b/pkgs/tools/X11/xvkbd/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.bennofs ];
     platforms = platforms.linux;
+    mainProgram = "xvkbd";
   };
 }
diff --git a/pkgs/tools/X11/xwallpaper/default.nix b/pkgs/tools/X11/xwallpaper/default.nix
index 051a3a0d0fe73..df93e10fe1943 100644
--- a/pkgs/tools/X11/xwallpaper/default.nix
+++ b/pkgs/tools/X11/xwallpaper/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ ivar ];
     platforms = platforms.linux;
+    mainProgram = "xwallpaper";
   };
 }
diff --git a/pkgs/tools/X11/xwinmosaic/default.nix b/pkgs/tools/X11/xwinmosaic/default.nix
index 51ba815f1de45..1189fd8f86aa4 100644
--- a/pkgs/tools/X11/xwinmosaic/default.nix
+++ b/pkgs/tools/X11/xwinmosaic/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd2 ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
+    mainProgram = "xwinmosaic";
   };
 }
diff --git a/pkgs/tools/X11/xwinwrap/default.nix b/pkgs/tools/X11/xwinwrap/default.nix
index e5bc5743c28db..d36d2c51de5e0 100644
--- a/pkgs/tools/X11/xwinwrap/default.nix
+++ b/pkgs/tools/X11/xwinwrap/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     homepage = "https://shantanugoel.com/2008/09/03/shantz-xwinwrap/";
     maintainers = with maintainers; [ infinisil ];
     platforms = platforms.linux;
+    mainProgram = "xwinwrap";
   };
 }
diff --git a/pkgs/tools/X11/xzoom/default.nix b/pkgs/tools/X11/xzoom/default.nix
index 7ba6bbee223d7..0e368651000dc 100644
--- a/pkgs/tools/X11/xzoom/default.nix
+++ b/pkgs/tools/X11/xzoom/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.free ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
+    mainProgram = "xzoom";
   };
 }
diff --git a/pkgs/tools/admin/acme-sh/default.nix b/pkgs/tools/admin/acme-sh/default.nix
index 63515281351bc..ead37f84f0342 100644
--- a/pkgs/tools/admin/acme-sh/default.nix
+++ b/pkgs/tools/admin/acme-sh/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "acme.sh";
-  version = "3.0.6";
+  version = "3.0.7";
 
   src = fetchFromGitHub {
     owner = "acmesh-official";
     repo = "acme.sh";
     rev = "refs/tags/${version}";
-    hash = "sha256-4Chqdr4a9+T+/o1vCPY5xMREoYl0HxY3OlGRD86ulGs=";
+    hash = "sha256-ymj97aWWOLen7YEfG72N2nyxlwuB/Su4+pgpWUuckgc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/admin/afterburn/default.nix b/pkgs/tools/admin/afterburn/default.nix
index c3d3cf09107ba..ddb8d0c9bfd49 100644
--- a/pkgs/tools/admin/afterburn/default.nix
+++ b/pkgs/tools/admin/afterburn/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "afterburn";
-  version = "5.4.3";
+  version = "5.5.1";
 
   src = fetchFromGitHub {
     owner = "coreos";
     repo = "afterburn";
     rev = "v${version}";
-    sha256 = "sha256-IxAmamWJjM8DAEihH3lYgOLKOcSRvh48GSIX797Nhjo=";
+    sha256 = "sha256-3+FlW/y8EScJKaFvxa/hOlDF18kEtz2XyMdrDZgcMXs=";
   };
 
-  cargoHash = "sha256-vQTxqAnnfjg4zFSOPLIcchRjqv0HJ3L2jBSNubpO9DM=";
+  cargoHash = "sha256-DTFvaXPr21qvx1FA1phueRxTgcrfhGgb9Vktah372Uo=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ];
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/coreos/ignition";
-    description = "This is a small utility, typically used in conjunction with Ignition, which reads metadata from a given cloud-provider and applies it to the system.";
+    description = "A one-shot cloud provider agent";
     license = licenses.asl20;
     maintainers = [ maintainers.arianvp ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index 2ea53b75d83b2..e45faef00cbe1 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.183";
+  version = "3.0.198";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-L00vQTuY4m5vGqu09FyOdM/XOIMyLZG/BSj8dktEa40=";
+    sha256 = "sha256-kIFB1wFVZTFr4tqSiBvgwqGLVq2UmG58vAqhug8giE0=";
   };
 
-  vendorHash = "sha256-S8Nthnr3wASvRyZS5UTHILPnUA+FeZJEwIvT0O39U3I=";
+  vendorHash = "sha256-NoismcBQtVv7QOIGOqRsmau9zY+MkCAl46ll2y0hbW4=";
 
   subPackages = [ "main" ];
 
diff --git a/pkgs/tools/admin/ansible/lint.nix b/pkgs/tools/admin/ansible/lint.nix
index bbdde0e60f720..24d595e4b51a7 100644
--- a/pkgs/tools/admin/ansible/lint.nix
+++ b/pkgs/tools/admin/ansible/lint.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ansible-lint";
-  version = "6.20.0";
+  version = "6.22.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7BO/LrZUd/Rkq468YiNVKr/mjLP2WD3JEdhGAP0ZGts=";
+    hash = "sha256-L0Cf6Y762mHan4q3zfNKW2feQ+EzjO4GGfXVH0+LFd0=";
   };
 
   postPatch = ''
@@ -23,6 +23,11 @@ python3.pkgs.buildPythonApplication rec {
   nativeBuildInputs = with python3.pkgs; [
     setuptools
     setuptools-scm
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "ruamel.yaml"
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/admin/aws-assume-role/default.nix b/pkgs/tools/admin/aws-assume-role/default.nix
index 7a09c8d2571c1..29dcac28c1e2f 100644
--- a/pkgs/tools/admin/aws-assume-role/default.nix
+++ b/pkgs/tools/admin/aws-assume-role/default.nix
@@ -23,7 +23,7 @@ buildGoPackage rec {
   '';
 
   meta = with lib; {
-    description = "Easily assume AWS roles in your terminal.";
+    description = "Easily assume AWS roles in your terminal";
     homepage = "https://github.com/remind101/assume-role";
     license = licenses.bsd2;
     mainProgram = "assume-role";
diff --git a/pkgs/tools/admin/aws-encryption-sdk-cli/default.nix b/pkgs/tools/admin/aws-encryption-sdk-cli/default.nix
index 526730e72228e..2bc331cc18741 100644
--- a/pkgs/tools/admin/aws-encryption-sdk-cli/default.nix
+++ b/pkgs/tools/admin/aws-encryption-sdk-cli/default.nix
@@ -1,12 +1,29 @@
 { lib
-, python3Packages
+, python3
 , fetchPypi
 , nix-update-script
 , testers
 , aws-encryption-sdk-cli
 }:
 
-python3Packages.buildPythonApplication rec {
+let
+  localPython = python3.override {
+    self = localPython;
+    packageOverrides = final: prev: {
+      urllib3 = prev.urllib3.overridePythonAttrs (prev: rec {
+        pyproject = true;
+        version = "1.26.18";
+        nativeBuildInputs = with final; [ setuptools ];
+        src = prev.src.override {
+          inherit version;
+          hash = "sha256-+OzBu6VmdBNFfFKauVW/jGe0XbeZ0VkGYmFxnjKFgKA=";
+        };
+      });
+    };
+  };
+in
+
+localPython.pkgs.buildPythonApplication rec {
   pname = "aws-encryption-sdk-cli";
   version = "4.1.0";
 
@@ -15,15 +32,16 @@ python3Packages.buildPythonApplication rec {
     hash = "sha256-OCbt0OkDVfpzUIogbsKzaPAle2L6l6N3cmZoS2hEaSM=";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = with localPython.pkgs; [
     attrs
     aws-encryption-sdk
     base64io
+    urllib3
   ];
 
   doCheck = true;
 
-  nativeCheckInputs = with python3Packages; [
+  nativeCheckInputs = with localPython.pkgs; [
     mock
     pytest-mock
     pytestCheckHook
diff --git a/pkgs/tools/admin/aws-env/default.nix b/pkgs/tools/admin/aws-env/default.nix
index dff3752079765..3ec84e80bb947 100644
--- a/pkgs/tools/admin/aws-env/default.nix
+++ b/pkgs/tools/admin/aws-env/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "aws-env";
-  version = "0.4";
+  version = "0.5";
   rev = "v${version}";
 
   goPackagePath = "github.com/Droplr/aws-env";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "Droplr";
     repo = pname;
     inherit rev;
-    sha256 = "0pw1qz1nn0ig90p8d8c1qcwsdz0m9w63ib07carhh86gw55425j7";
+    sha256 = "sha256-dzXgQW5noWT7u276tlwhvgvu2J8VYrOdW9vidZ3W3t0=";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/admin/aws-google-auth/default.nix b/pkgs/tools/admin/aws-google-auth/default.nix
index efbbe49a5b8d0..545e22f6b58a3 100644
--- a/pkgs/tools/admin/aws-google-auth/default.nix
+++ b/pkgs/tools/admin/aws-google-auth/default.nix
@@ -15,6 +15,9 @@
 , tzlocal
 , nose
 , mock
+, setuptools
+, aws-google-auth
+, testers
 , withU2F ? false, python-u2flib-host
 }:
 
@@ -22,6 +25,8 @@ buildPythonApplication rec {
   pname = "aws-google-auth";
   version = "0.0.38";
 
+  pyproject = true;
+
   # Pypi doesn't ship the tests, so we fetch directly from GitHub
   # https://github.com/cevoaustralia/aws-google-auth/issues/120
   src = fetchFromGitHub {
@@ -31,6 +36,10 @@ buildPythonApplication rec {
     sha256 = "sha256-/Xe4RDA9sBEsBBV1VP91VX0VfO8alK8L70m9WrB7qu4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     beautifulsoup4
     boto3
@@ -55,6 +64,16 @@ buildPythonApplication rec {
     export HOME=$TMPDIR
   '';
 
+  # with pyproject the tests aren't attempted
+  # without pyproject the tests try to access internet
+  doCheck = false;
+
+  pythonImportsCheck = [ "aws_google_auth" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = aws-google-auth;
+  };
+
   meta = with lib; {
     description = "Acquire AWS STS (temporary) credentials via Google Apps SAML Single Sign On";
     homepage = "https://github.com/cevoaustralia/aws-google-auth";
diff --git a/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix b/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix
index 79873296237c1..01d5b9479aa7e 100644
--- a/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix
+++ b/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix
@@ -2,22 +2,22 @@
 
 buildGoModule rec {
   pname = "aws-lambda-runtime-interface-emulator";
-  version = "1.12";
+  version = "1.15";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-lambda-runtime-interface-emulator";
     rev = "v${version}";
-    sha256 = "sha256-4uUyrPLDmmPv2Z6M3czwKe8BXe5BWJbfgf5FC/74pog=";
+    sha256 = "sha256-ogsWAAm/rEol+UFBqgMSowb78BbQKeGyeJ7UVp/p4js=";
   };
 
-  vendorHash = "sha256-0b4yjyPnE7xPmW5N1Zu/tH50gHj46TnHkycNFDzIjy8=";
+  vendorHash = "sha256-8HRYGpMNZuPBzhp73lGvbJgA5WivMNrBa2wUw/+LX5M=";
 
   # disabled because I lack the skill
   doCheck = false;
 
   meta = with lib; {
-    description = "To locally test their Lambda function packaged as a container image.";
+    description = "Locally test Lambda functions packaged as container images";
     homepage = "https://github.com/aws/aws-lambda-runtime-interface-emulator";
     license = licenses.asl20;
     maintainers = with maintainers; [ teto ];
diff --git a/pkgs/tools/admin/aws-mfa/default.nix b/pkgs/tools/admin/aws-mfa/default.nix
index 666161f1d363e..53b3a8d4a4743 100644
--- a/pkgs/tools/admin/aws-mfa/default.nix
+++ b/pkgs/tools/admin/aws-mfa/default.nix
@@ -41,6 +41,6 @@ buildPythonApplication rec {
     description = "Manage AWS MFA Security Credentials";
     homepage = "https://github.com/broamski/aws-mfa";
     license = licenses.mit;
-    maintainers = [ maintainers.srapenne ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/tools/admin/aws-sso-cli/default.nix b/pkgs/tools/admin/aws-sso-cli/default.nix
index 94d993bd2c6af..998da596c0688 100644
--- a/pkgs/tools/admin/aws-sso-cli/default.nix
+++ b/pkgs/tools/admin/aws-sso-cli/default.nix
@@ -6,15 +6,15 @@
 }:
 buildGoModule rec {
   pname = "aws-sso-cli";
-  version = "1.13.1";
+  version = "1.14.3";
 
   src = fetchFromGitHub {
     owner = "synfinatic";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QwixApaGUzTmvc9TfFk8bdMU7dxyaeUo5aWucV4tH1c=";
+    hash = "sha256-6UP+5niKAdO4DgdEnTdpbUnr2BLKwAgHcEZqkgzCcqs=";
   };
-  vendorHash = "sha256-/6DCrjOqjbz+olRp7rs8ui4uUrcor0zAc0yOIz+ZcEo=";
+  vendorHash = "sha256-TU5kJ0LIqHcfEQEkk69xWJZk30VD9XwlJ5b83w1mHKk=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -28,6 +28,11 @@ buildGoModule rec {
       --suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
   '';
 
+  checkFlags = [
+    # requires network access
+    "-skip=TestAWSConsoleUrl|TestAWSFederatedUrl"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/synfinatic/aws-sso-cli";
     description = "AWS SSO CLI is a secure replacement for using the aws configure sso wizard";
diff --git a/pkgs/tools/admin/aws-sso-creds/default.nix b/pkgs/tools/admin/aws-sso-creds/default.nix
index d4ca59da71376..caa1b05c1b1dd 100644
--- a/pkgs/tools/admin/aws-sso-creds/default.nix
+++ b/pkgs/tools/admin/aws-sso-creds/default.nix
@@ -6,15 +6,15 @@
 }:
 buildGoModule rec {
   pname = "aws-sso-creds";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "jaxxstorm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-V50t1L4+LZnMaET3LTp1nt7frNpu95KjgbQ5Onqt5sI=";
+    sha256 = "sha256-/zvXVDVlnDcgYpnumN7owN2fHexvQu5D4LvNmuQNS+w=";
   };
-  vendorHash = "sha256-0jXZpdiSHMn94MT3mPNtbfV7owluWhy1iAvQIBdebdE=";
+  vendorHash = "sha256-mJj5ilH4crlL5jesvg0y3RZaMgqlrenWgJApxUw6jEk=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index e65cac675dbdb..73c86278df703 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -3,25 +3,20 @@
 , fetchPypi
 , groff
 , less
+, nix-update-script
+, testers
+, awscli
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "awscli";
-  version = "1.29.9"; # N.B: if you change this, change botocore and boto3 to a matching version too
+  version = "1.31.6"; # N.B: if you change this, change botocore and boto3 to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8SmOu79FZESL1Hd15wdd1m1Uewswqaum2y8LOZAl9P8=";
+    hash = "sha256-PINiNkP2vopPgc9bH0x7mifeUt7gdXi3/i2Ye96RANg=";
   };
 
-  # https://github.com/aws/aws-cli/issues/4837
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "docutils>=0.10,<0.17" "docutils>=0.10" \
-      --replace "colorama>=0.2.5,<0.4.5" "colorama>=0.2.5,<0.5" \
-      --replace "rsa>=3.1.2,<4.8" "rsa<5,>=3.1.2"
-  '';
-
   propagatedBuildInputs = with python3.pkgs; [
     botocore
     bcdoc
@@ -44,10 +39,6 @@ python3.pkgs.buildPythonApplication rec {
     rm $out/bin/aws.cmd
   '';
 
-  passthru = {
-    python = python3; # for aws_shell
-  };
-
   doInstallCheck = true;
 
   installCheckPhase = ''
@@ -59,12 +50,25 @@ python3.pkgs.buildPythonApplication rec {
     runHook postInstallCheck
   '';
 
+  passthru = {
+    python = python3; # for aws_shell
+    updateScript = nix-update-script {
+      # Excludes 1.x versions from the Github tags list
+      extraArgs = [ "--version-regex" "^(1\.(.*))" ];
+    };
+    tests.version = testers.testVersion {
+      package = awscli;
+      command = "aws --version";
+      inherit version;
+    };
+  };
+
   meta = with lib; {
     homepage = "https://aws.amazon.com/cli/";
     changelog = "https://github.com/aws/aws-cli/blob/${version}/CHANGELOG.rst";
     description = "Unified tool to manage your AWS services";
     license = licenses.asl20;
     mainProgram = "aws";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ anthonyroussel ];
   };
 }
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
index 78aacae846830..feeb438df681d 100644
--- a/pkgs/tools/admin/awscli2/default.nix
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -1,8 +1,10 @@
 { lib
+, stdenv
 , python3
 , groff
 , less
 , fetchFromGitHub
+, installShellFiles
 , nix-update-script
 , testers
 , awscli2
@@ -11,33 +13,51 @@
 let
   py = python3 // {
     pkgs = python3.pkgs.overrideScope (final: prev: {
+      sphinx = prev.sphinx.overridePythonAttrs (prev: {
+        disabledTests = prev.disabledTests ++ [
+          "test_check_link_response_only" # fails on hydra https://hydra.nixos.org/build/242624087/nixlog/1
+        ];
+      });
       ruamel-yaml = prev.ruamel-yaml.overridePythonAttrs (prev: {
         src = prev.src.override {
           version = "0.17.21";
           hash = "sha256-i3zml6LyEnUqNcGsQURx3BbEJMlXO+SSa1b/P10jt68=";
         };
       });
+      urllib3 = prev.urllib3.overridePythonAttrs (prev: rec {
+        pyproject = true;
+        version = "1.26.18";
+        nativeBuildInputs = with final; [
+          setuptools
+        ];
+        src = prev.src.override {
+          inherit version;
+          hash = "sha256-+OzBu6VmdBNFfFKauVW/jGe0XbeZ0VkGYmFxnjKFgKA=";
+        };
+      });
     });
   };
 
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.13.25"; # N.B: if you change this, check if overrides are still up-to-date
-  format = "pyproject";
+  version = "2.15.12"; # N.B: if you change this, check if overrides are still up-to-date
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = "refs/tags/${version}";
-    hash = "sha256-8Euc2yOWv0TRz4SgjRAMdTogGQNE4J/XtadPNe5kKKI=";
+    hash = "sha256-1qvtImffj35+J9mPVLCgJE3porpF4DnlsRBW0ihzg10=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace 'cryptography>=3.3.2,<40.0.2' 'cryptography>=3.3.2' \
       --replace 'flit_core>=3.7.1,<3.8.1' 'flit_core>=3.7.1' \
-      --replace 'awscrt>=0.16.4,<=0.16.16' 'awscrt>=0.16.4'
+      --replace 'awscrt==0.19.18' 'awscrt>=0.19' \
+      --replace 'docutils>=0.10,<0.20' 'docutils>=0.10' \
+      --replace 'prompt-toolkit>=3.0.24,<3.0.39' 'prompt-toolkit>=3.0.24'
 
     substituteInPlace requirements-base.txt \
       --replace "wheel==0.38.4" "wheel>=0.38.4" \
@@ -50,6 +70,7 @@ with py.pkgs; buildPythonApplication rec {
   '';
 
   nativeBuildInputs = [
+    installShellFiles
     flit-core
   ];
 
@@ -78,15 +99,10 @@ with py.pkgs; buildPythonApplication rec {
   ];
 
   postInstall = ''
-    mkdir -p $out/${python3.sitePackages}/awscli/data
-    ${python3.interpreter} scripts/gen-ac-index --index-location $out/${python3.sitePackages}/awscli/data/ac.index
-
-    mkdir -p $out/share/bash-completion/completions
-    echo "complete -C $out/bin/aws_completer aws" > $out/share/bash-completion/completions/aws
-
-    mkdir -p $out/share/zsh/site-functions
-    mv $out/bin/aws_zsh_completer.sh $out/share/zsh/site-functions
-
+    installShellCompletion --cmd aws \
+      --bash <(echo "complete -C $out/bin/aws_completer aws") \
+      --zsh $out/bin/aws_zsh_completer.sh
+  '' + lib.optionalString (!stdenv.hostPlatform.isWindows) ''
     rm $out/bin/aws.cmd
   '';
 
@@ -127,7 +143,7 @@ with py.pkgs; buildPythonApplication rec {
 
   meta = with lib; {
     description = "Unified tool to manage your AWS services";
-    homepage = "https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html";
+    homepage = "https://aws.amazon.com/cli/";
     changelog = "https://github.com/aws/aws-cli/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
     maintainers = with maintainers; [ bhipple davegallant bryanasdev000 devusb anthonyroussel ];
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 4205071c4a32e..0c447be4e7f21 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,26 +1,22 @@
 { lib
-, stdenv
-, python3
-, fetchPypi
+, callPackage
 , fetchFromGitHub
 , installShellFiles
 }:
 
 let
-  version = "2.53.0";
+  version = "2.55.0";
 
   src = fetchFromGitHub {
     name = "azure-cli-${version}-src";
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    hash = "sha256-5c2Z0EJnKyLqWiz8/BEFAdy5A0+sBbai7UQ2KPL1jr8=";
+    hash = "sha256-+4ju+KOQ9LG1nzYnHOZ4mvXf6SazcrIgw/Q2mvetPMc=";
   };
 
   # put packages that needs to be overridden in the py package scope
-  py = import ./python-packages.nix {
-    inherit stdenv src version python3 fetchPypi;
-  };
+  py = callPackage ./python-packages.nix { inherit src version; };
 in
 
 py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
@@ -29,45 +25,35 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
 
   sourceRoot = "${src.name}/src/azure-cli";
 
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace "chardet~=3.0.4" "chardet" \
-      --replace "javaproperties~=0.5.1" "javaproperties" \
-      --replace "scp~=0.13.2" "scp" \
-      --replace "fabric~=2.4" "fabric"
-
-    # remove namespace hacks
-    # remove urllib3 because it was added as 'urllib3[secure]', which doesn't get handled well
-    sed -i setup.py \
-      -e '/urllib3/d'
-  '';
-
   nativeBuildInputs = [
     installShellFiles
   ];
 
   propagatedBuildInputs = with py.pkgs; [
+    antlr4-python3-runtime
+    applicationinsights
+    argcomplete
+    asn1crypto
     azure-appconfiguration
     azure-batch
     azure-cli-core
     azure-cli-telemetry
+    azure-common
+    azure-core
     azure-cosmos
     azure-data-tables
     azure-datalake-store
-    azure-functions-devops-build
     azure-graphrbac
-    azure-identity
-    azure-keyvault
     azure-keyvault-administration
-    azure-keyvault-keys
     azure-keyvault-certificates
+    azure-keyvault-keys
     azure-keyvault-secrets
     azure-loganalytics
     azure-mgmt-advisor
     azure-mgmt-apimanagement
-    azure-mgmt-applicationinsights
     azure-mgmt-appconfiguration
     azure-mgmt-appcontainers
+    azure-mgmt-applicationinsights
     azure-mgmt-authorization
     azure-mgmt-batch
     azure-mgmt-batchai
@@ -80,12 +66,12 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-containerinstance
     azure-mgmt-containerregistry
     azure-mgmt-containerservice
+    azure-mgmt-core
     azure-mgmt-cosmosdb
     azure-mgmt-databoxedge
-    azure-mgmt-datalake-analytics
+    azure-mgmt-datalake-nspkg
     azure-mgmt-datalake-store
     azure-mgmt-datamigration
-    azure-mgmt-deploymentmanager
     azure-mgmt-devtestlabs
     azure-mgmt-dns
     azure-mgmt-eventgrid
@@ -99,14 +85,13 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-keyvault
     azure-mgmt-kusto
     azure-mgmt-loganalytics
-    azure-mgmt-managedservices
     azure-mgmt-managementgroups
+    azure-mgmt-managedservices
     azure-mgmt-maps
     azure-mgmt-marketplaceordering
     azure-mgmt-media
     azure-mgmt-monitor
     azure-mgmt-msi
-    azure-mgmt-network
     azure-mgmt-netapp
     azure-mgmt-policyinsights
     azure-mgmt-privatedns
@@ -116,7 +101,6 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-redhatopenshift
     azure-mgmt-redis
     azure-mgmt-relay
-    azure-mgmt-reservations
     azure-mgmt-resource
     azure-mgmt-search
     azure-mgmt-security
@@ -124,51 +108,68 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-servicefabric
     azure-mgmt-servicefabricmanagedclusters
     azure-mgmt-servicelinker
-    azure-mgmt-signalr
     azure-mgmt-sql
+    azure-mgmt-signalr
     azure-mgmt-sqlvirtualmachine
     azure-mgmt-storage
     azure-mgmt-synapse
     azure-mgmt-trafficmanager
     azure-mgmt-web
     azure-multiapi-storage
-    azure-storage-blob
+    azure-nspkg
     azure-storage-common
+    azure-storage-blob
     azure-synapse-accesscontrol
     azure-synapse-artifacts
     azure-synapse-managedprivateendpoints
     azure-synapse-spark
+    bcrypt
+    certifi
+    cffi
     chardet
     colorama
     cryptography
     distro
     fabric
-    jsmin
+    humanfriendly
+    idna
+    invoke
+    isodate
+    javaproperties
+    jinja2
+    jmespath
+    jsondiff
     knack
-    mock
+    markupsafe
+    msal-extensions
+    msal
+    msrest
+    msrestazure
+    oauthlib
+    packaging
     paramiko
-    pydocumentdb
+    pbr
+    pkginfo
+    portalocker
+    psutil
+    pycomposefile
+    pycparser
     pygithub
-    pygments
+    pyjwt
     pynacl
     pyopenssl
-    pytz
-    pyyaml
-    psutil
+    python-dateutil
+    requests-oauthlib
     requests
     scp
     semver
     six
     sshtunnel
+    tabulate
     urllib3
-    vsts-cd-manager
+    wcwidth
     websocket-client
     xmltodict
-    javaproperties
-    jsondiff
-    # urllib3[secure]
-    # shell completion
-    argcomplete
   ];
 
   postInstall = ''
@@ -189,10 +190,12 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
       --set PYTHONPATH $PYTHONPATH
   '';
 
-  # almost the entire test suite requires an azure account setup and networking
-  # ensure that the azure namespaces are setup correctly and that azure.cli can be accessed
-  checkPhase = ''
-    HOME=$TMPDIR $out/bin/az --help > /dev/null
+  doInstallCheck = true;
+  installCheckPhase = ''
+    export HOME=$TMPDIR
+
+    $out/bin/az --version
+    $out/bin/az self-test
   '';
 
   # ensure these namespaces are able to be accessed
@@ -202,7 +205,6 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     "azure.cli.telemetry"
     "azure.cosmos"
     "azure.datalake.store"
-    "azure_functions_devops_build"
     "azure.graphrbac"
     "azure.keyvault"
     "azure.loganalytics"
@@ -224,10 +226,8 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     "azure.mgmt.containerregistry"
     "azure.mgmt.containerservice"
     "azure.mgmt.cosmosdb"
-    "azure.mgmt.datalake.analytics"
     "azure.mgmt.datalake.store"
     "azure.mgmt.datamigration"
-    "azure.mgmt.deploymentmanager"
     "azure.mgmt.devtestlabs"
     "azure.mgmt.dns"
     "azure.mgmt.eventgrid"
@@ -247,7 +247,6 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     "azure.mgmt.media"
     "azure.mgmt.monitor"
     "azure.mgmt.msi"
-    "azure.mgmt.network"
     "azure.mgmt.netapp"
     "azure.mgmt.policyinsights"
     "azure.mgmt.privatedns"
@@ -256,7 +255,6 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     "azure.mgmt.recoveryservicesbackup"
     "azure.mgmt.redis"
     "azure.mgmt.relay"
-    "azure.mgmt.reservations"
     "azure.mgmt.resource"
     "azure.mgmt.search"
     "azure.mgmt.security"
@@ -290,4 +288,3 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     platforms = platforms.all;
   };
 })
-
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index d13dd28230104..176871f6fd505 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -1,6 +1,7 @@
 { stdenv
 , python3
 , fetchPypi
+, fetchpatch
 , src
 , version
 }:
@@ -9,8 +10,7 @@ let
   buildAzureCliPackage = with py.pkgs; buildPythonPackage;
 
   overrideAzureMgmtPackage = package: version: extension: hash:
-    # check to make sure overriding is even necessary
-    package.overridePythonAttrs (oldAttrs: rec {
+    package.overridePythonAttrs (oldAttrs: {
       inherit version;
 
       src = fetchPypi {
@@ -31,38 +31,25 @@ let
         sourceRoot = "${src.name}/src/azure-cli-core";
 
         propagatedBuildInputs = with self; [
-          adal
-          antlr4-python3-runtime
           argcomplete
-          azure-common
           azure-cli-telemetry
-          azure-data-tables
-          azure-mgmt-appcontainers
+          azure-common
           azure-mgmt-core
-          azure-mgmt-resource
-          colorama
           cryptography
           distro
           humanfriendly
           jmespath
           knack
-          msal
           msal-extensions
-          msrest
+          msal
           msrestazure
+          packaging
           paramiko
           pkginfo
           psutil
-          pygments
           pyjwt
-          pymysql
           pyopenssl
-          pyperclip
-          pysocks
-          pyyaml
           requests
-          six
-          tabulate
         ];
 
         nativeCheckInputs = with self; [ pytest ];
@@ -71,8 +58,8 @@ let
 
         # ignore tests that does network call, or assume powershell
         checkPhase = ''
-          rm azure/{,cli/}__init__.py
           python -c 'import azure.common; print(azure.common)'
+
           PYTHONPATH=$PWD:${src}/src/azure-cli-testsdk:$PYTHONPATH HOME=$TMPDIR pytest \
             azure/cli/core/tests \
             --ignore=azure/cli/core/tests/test_profile.py \
@@ -88,18 +75,17 @@ let
 
       azure-cli-telemetry = buildAzureCliPackage {
         pname = "azure-cli-telemetry";
-        version = "1.0.8"; # might be wrong, but doesn't really matter
+        version = "1.1.0";
         inherit src;
 
         sourceRoot = "${src.name}/src/azure-cli-telemetry";
 
-        propagatedBuildInputs = with super; [
+        propagatedBuildInputs = with self; [
           applicationinsights
-          knack
           portalocker
         ];
 
-        nativeCheckInputs = [ py.pkgs.pytest ];
+        nativeCheckInputs = with self; [ pytest ];
         # ignore flaky test
         checkPhase = ''
           cd azure
@@ -108,169 +94,104 @@ let
       };
 
       antlr4-python3-runtime = super.antlr4-python3-runtime.override (_: {
-        antlr4 = super.pkgs.antlr4_9;
-      });
-
-      azure-batch = overrideAzureMgmtPackage super.azure-batch "14.0.0" "zip"
-        "sha256-FlsembhvghAkxProX7NIadQHqg67DKS5b7JthZwmyTQ=";
-
-      azure-data-tables = (overrideAzureMgmtPackage super.azure-data-tables "12.4.0" "zip"
-        "sha256-3V/I3pHi+JCO+kxkyn9jz4OzBoqbpCYpjeO1QTnpZlw=").overridePythonAttrs (attrs: {
+        antlr4 = super.pkgs.antlr4_12;
+      });
+      azure-mgmt-advisor = overrideAzureMgmtPackage super.azure-mgmt-advisor "9.0.0" "zip" "sha256-/ECLNzFf6EeBtRkST4yxuKwQsvQkHkOdDT4l/WyhjXs=";
+      azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "4.0.0" "zip" "sha256-AiTjLJ28g80xnrRFLfPUevJgeaxLpuGmvkd3+FskNiw=";
+      azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "4.0.0" "zip" "sha256-abhavAmuZPxyl1vUNDEXDYx+tdFmdUuYqsXzhF3lfcQ=";
+      azure-mgmt-billing = overrideAzureMgmtPackage super.azure-mgmt-billing "6.0.0" "zip" "sha256-1PXFpBiKRW/h6zK2xF9VyiBpx0vkHrdpIYQLOfL1wH8=";
+      azure-mgmt-botservice = overrideAzureMgmtPackage super.azure-mgmt-botservice "2.0.0b3" "zip" "sha256-XZGQOeMw8usyQ1tl8j57fZ3uqLshomHY9jO/rbpQOvM=";
+      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "13.5.0" "zip" "sha256-RK8LGbH4J+nN6gnGBUweZgkqUcMrwe9aVtvZtAvFeBU=";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "30.3.0" "tar.gz" "sha256-5Sl4Y0D4YqpqIYp61qW+trn7VYM8XKoIUcwzFNBJO2M=";
+      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "10.1.0" "zip" "sha256-eNQ3rbKFdPRIyDjtXwH5ztN4GWCYBh3rWdn3AxcEwX4=";
+      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "10.1.0" "zip" "sha256-VrX9YfYNvlA8+eNqHCp35BAeQZzQKakZs7ZZKwT8oYc=";
+      azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.3.2" "zip" "sha256-B/Sv6COlXXBLBI1h7f3BMYwFHtWfJEAyEmNQvpXp1QE=";
+      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "9.3.0" "tar.gz" "sha256-02DisUN2/auBDhPgE9aUvEvYwoQUQC4NYGD/PQZOl/Y=";
+      azure-mgmt-databoxedge = overrideAzureMgmtPackage super.azure-mgmt-databoxedge "1.0.0" "zip" "sha256-BAkAYrwejwDC9FMVo7zrD7OzR57BR01xuINC4TSZsIc=";
+      azure-mgmt-datalake-nspkg = overrideAzureMgmtPackage super.azure-mgmt-datalake-nspkg "3.0.1" "zip" "sha256-3rGSukIviz7Ccs5OiHNnlvIW8o6lsD8oMx14S3o/SIA=";
+      azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "10.0.0" "zip" "sha256-XO5w+X/joJPDy3DCoZDC35Nrdy6UoJ73496x7Rd8nzI=";
+      azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip" "sha256-QHwtrLM1E/++nKS+Wt216dS64Mt++mE8P31THve/jeg=";
+      azure-mgmt-extendedlocation = overrideAzureMgmtPackage super.azure-mgmt-extendedlocation "1.0.0b2" "zip" "sha256-mjfH35T81JQ97jVgElWmZ8P5MwXVxZQv/QJKNLS3T8A=";
+      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "9.0.0" "zip" "sha256-QevcacDR+B0l3TBDjBT/9DMfZmOfVYBbkYuWSer/54o=";
+      azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "1.2.0" "zip" "sha256-XmGIzw+yGYgdaNGZJClFRl531BGsQUH+HESUXGVK6TI=";
+      azure-mgmt-iothubprovisioningservices = overrideAzureMgmtPackage super.azure-mgmt-iothubprovisioningservices "1.1.0" "zip" "sha256-04OoJuff93L62G6IozpmHpEaUbHHHD6nKlkMHVoJvJ4=";
+      azure-mgmt-managementgroups = overrideAzureMgmtPackage super.azure-mgmt-managementgroups "1.0.0" "zip" "sha256-urm9UyocNFV/Wwq5lQ5DHj8Au5boo85m3w9s4q4ZzXM=";
+      azure-mgmt-maps = overrideAzureMgmtPackage super.azure-mgmt-maps "2.0.0" "zip" "sha256-OE4X92potwCk+YhHiUXDqXIXEcBAByWv38tjz4ToXw4=";
+      azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "1.1.0" "zip" "sha256-aLOB9SpN9ENdrK1al+HFmsTJgfZn3MqPnQRFNBfWCtg=";
+      azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "5.0.0" "zip" "sha256-eL9KJowxTF7hZJQQQCNJZ7l+rKPFM8wP5vEigt3ZFGE=";
+      azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "7.0.0" "zip" "sha256-ctRsmmJ4PsTqthm+nRt4/+u9qhZNQG/TA/FjA/NyVrI=";
+      azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip" "sha256-tg8W5D97KRWCxfV7rhsIMJbYMD6dmVjiwpInpVzCfEU=";
+      azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "2.5.0" "tar.gz" "sha256-XxowjEhYx5uD/4vY5hGSCSvcarmdbdc5Y2GLHciEurU=";
+      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "7.0.0" "tar.gz" "sha256-GuW6x8JGdBedywum4fDAQ8rwbVU9UgQWgHrFqJ6Uz9A=";
+      azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.4.0" "tar.gz" "sha256-BL2a2L2AwJWvs0V+VpSGaS8//AWMy5m6rdAPDJPbrEo=";
+      azure-mgmt-redis = overrideAzureMgmtPackage super.azure-mgmt-redis "14.1.0" "zip" "sha256-LO92Wc2+VvsEKiOjVSHXw2o3D69NQlL58m+YqWl6+ig=";
+      azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "9.0.0" "zip" "sha256-Gc+qoTa1EE4/YmJvUSqVG+zZ50wfohvWOe/fLJ/vgb0=";
+      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "5.0.0" "zip" "sha256-OLA+/oLCNEzqID/alebQC3rCJ4L6HAtYXNDqLI/z5wI=";
+      azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "8.2.0" "zip" "sha256-i+kgjxQdmnifaNuNIZdU/3gGn9j5OQ6fdkS7laO+nsI=";
+      azure-mgmt-servicefabricmanagedclusters = overrideAzureMgmtPackage super.azure-mgmt-servicefabricmanagedclusters "1.0.0" "zip" "sha256-EJyjolHrt92zWg+IKWFKTapwZaFrwTtSyEIu5/mZXOg=";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "21.1.0" "tar.gz" "sha256-1tPA6RfJiLye0Eckd9PvP5CIYAnrHZenEZRPg3VjAWI=";
+      azure-mgmt-trafficmanager = overrideAzureMgmtPackage super.azure-mgmt-trafficmanager "1.0.0" "zip" "sha256-R0F2HoA0bE7dTLPycTaOqYBj+ATQFeJFwv4EjtK1lqg=";
+      azure-synapse-managedprivateendpoints = overrideAzureMgmtPackage super.azure-synapse-managedprivateendpoints "0.4.0" "zip" "sha256-kA6urM/9zQEBKySKfQSQCMkoB7dJ7dHJB0ypJIVUwX4=";
+
+      azure-synapse-spark = overrideAzureMgmtPackage super.azure-synapse-spark "0.2.0" "zip" "sha256-OQ5brhweEIrtN2iP4I5NacdC9t3YUiGIVhhqSs3FMuI=";
+
+      azure-mgmt-appcontainers = overrideAzureMgmtPackage super.azure-mgmt-appcontainers "2.0.0" "zip"
+        "sha256-ccdIdvdgTYPWEZCWqkLc8lEuMuAEERvl5B1huJyBkvU=";
+
+      azure-mgmt-batch = (overrideAzureMgmtPackage super.azure-mgmt-batch "17.0.0" "zip"
+        "sha256-hkM4WVLuwxj4qgXsY8Ya7zu7/v37gKdP0Xbf2EqrsWo=").overridePythonAttrs (attrs: {
         propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
       });
 
-      azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "4.0.0" "zip"
-        "sha256-AiTjLJ28g80xnrRFLfPUevJgeaxLpuGmvkd3+FskNiw=";
-
-      azure-mgmt-appcontainers = (overrideAzureMgmtPackage super.azure-mgmt-appcontainers "2.0.0" "zip"
-        "sha256-ccdIdvdgTYPWEZCWqkLc8lEuMuAEERvl5B1huJyBkvU=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
-      });
-
-      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "17.0.0" "zip"
-        "sha256-hkM4WVLuwxj4qgXsY8Ya7zu7/v37gKdP0Xbf2EqrsWo=";
-
       azure-mgmt-batchai = overrideAzureMgmtPackage super.azure-mgmt-batchai "7.0.0b1" "zip"
         "sha256-mT6vvjWbq0RWQidugR229E8JeVEiobPD3XA/nDM3I6Y=";
 
-      azure-mgmt-billing = overrideAzureMgmtPackage super.azure-mgmt-billing "6.0.0" "zip"
-        "sha256-1PXFpBiKRW/h6zK2xF9VyiBpx0vkHrdpIYQLOfL1wH8=";
-
-      azure-mgmt-botservice = overrideAzureMgmtPackage super.azure-mgmt-botservice "2.0.0b3" "zip"
-        "sha256-XZGQOeMw8usyQ1tl8j57fZ3uqLshomHY9jO/rbpQOvM=";
-
-      azure-mgmt-extendedlocation = overrideAzureMgmtPackage super.azure-mgmt-extendedlocation "1.0.0b2" "zip"
-        "sha256-mjfH35T81JQ97jVgElWmZ8P5MwXVxZQv/QJKNLS3T8A=";
-
       azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.1.0b4" "zip"
         "sha512-NW2BNj45lKzBmPXWMuBnVEDG2C6xzo9J/QjcC5fczvyhKBIkhugJVOWdPUsSzyGeQYKdqpRWPOl0yBG/eblHQA==";
 
-      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.2.0b10" "zip"
-        "sha256-sM8oZdhv+5WCd4RnMtEmCikTBmzGsap5heKzSbHbRPI=";
-
-      azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "2.4.0" "zip"
-        "sha256-2JeOvtNxx6Z3AY4GI9fBRKbMcYVHsbrhk8C+5t5eelk=";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "12.0.0" "zip"
+        "sha256-t8PuIYkjS0r1Gs4pJJJ8X9cz8950imQtbVBABnyMnd0=";
 
-      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "6.0.0" "zip"
-        "sha256-lIEYi/jvF9pYbnH+clUzfU0fExlY+dZojIyZRtTLQh8=";
+      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.2.0b11" "tar.gz"
+        "sha256-A7SwklqAhz4Ey9ar1YWythtVZyQ2Y2RUsa27iMc2mxU=";
 
       azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "3.0.0" "zip"
         "sha256-FJhuVgqNjdRIegP4vUISrAtHvvVle5VQFVITPm4HLEw=";
 
-      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "13.5.0" "zip"
-        "sha512-bUFY0+JipVihatMib0Giv7THnv4rRAbT36PhP+5tcsVlBVLmCYqjyp0iWnTfSbvRiljKOjbm3w+xeC0gL/IE7w==";
-
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "30.0.0" "zip"
-        "sha256-cyD7r8OSdwsD7QK2h2AYXmCUVS7ZjX/V6nchClpRPHg=";
-
-      azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
-        "sha256-moWonzDyJNJhdJviC0YWoOuJSFhvfw8gVzuOoy8mUYk=";
-
-      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "10.1.0" "zip"
-        "sha256-eNQ3rbKFdPRIyDjtXwH5ztN4GWCYBh3rWdn3AxcEwX4=";
-
-      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "25.0.0" "zip"
-        "sha256-je7O92bklsbIlfsTUF2TXUqztAZxn8ep4ezCUHeLuhE=";
-
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "9.2.0" "zip"
-        "sha256-PAaBkR77Ho2YI5I+lmazR/8vxEZWpbvM427yRu1ET0k=";
-
-      azure-mgmt-databoxedge = overrideAzureMgmtPackage super.azure-mgmt-databoxedge "1.0.0" "zip"
-        "sha256-BAkAYrwejwDC9FMVo7zrD7OzR57BR01xuINC4TSZsIc=";
-
-      azure-mgmt-deploymentmanager = overrideAzureMgmtPackage super.azure-mgmt-deploymentmanager "0.2.0" "zip"
-        "sha256-RuNCInmT/JrKsd2kLy61ZrUiqMlFq50O6lYna0b21zA=";
-
       azure-mgmt-eventgrid = overrideAzureMgmtPackage super.azure-mgmt-eventgrid "10.2.0b2" "zip"
         "sha256-QcHY1wCwQyVOEdUi06/wEa4dqJH5Ccd33gJ1Sju0qZA=";
 
-      azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "1.2.0" "zip"
-        "sha256-XmGIzw+yGYgdaNGZJClFRl531BGsQUH+HESUXGVK6TI=";
-
-      azure-mgmt-iothub = (overrideAzureMgmtPackage super.azure-mgmt-iothub "2.3.0" "zip"
-        "sha256-ml+koj52l5o0toAcnsGtsw0tGnO5F/LKq56ovzdmx/A=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
-      });
-
-      azure-mgmt-iothubprovisioningservices = overrideAzureMgmtPackage super.azure-mgmt-iothubprovisioningservices "1.1.0" "zip"
-        "sha256-04OoJuff93L62G6IozpmHpEaUbHHHD6nKlkMHVoJvJ4=";
+      azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "3.0.0" "tar.gz"
+        "sha256-2vIfyYxoo1PsYWMYwOYr4EyNaJmWC+jCy/mRZzrItyI=";
 
       azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "10.0.0b1" "zip"
         "sha256-1CiZuTXYhIb74eGQZUJHHzovYNnnVd3Ydu1UCy2Bu00=";
 
-      azure-mgmt-kusto = overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
-        "sha256-nri3eB/UQQ7p4gfNDDmDuvnlhBS1tKGISdCYVuNrrN4=";
+      azure-mgmt-kusto = (overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
+        "sha256-nri3eB/UQQ7p4gfNDDmDuvnlhBS1tKGISdCYVuNrrN4=").overridePythonAttrs (attrs: {
+        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest self.msrestazure ];
+      });
 
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
-        "sha256-WVScTEBo8mRmsQl7V0qOUJn7LNbIvgoAOVsG07KeJ40=r";
-
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "10.1.0" "zip"
-        "sha256-eJiWTOCk2C79Jotku9bKlu3vU6H8004hWrX+h76MjQM=";
-
-      azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip"
-        "sha256-QHwtrLM1E/++nKS+Wt216dS64Mt++mE8P31THve/jeg=";
+        "sha256-WVScTEBo8mRmsQl7V0qOUJn7LNbIvgoAOVsG07KeJ40=";
 
       azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "13.0.0b4" "zip"
         "sha256-Jm1t7v5vyFjNNM/evVaEI9sXJKNwJk6XAXuJSRSnKHk=";
 
-      azure-mgmt-network = (overrideAzureMgmtPackage super.azure-mgmt-network "21.0.1" "zip"
-        "sha256-7PduPg0JK4f/3q/b5pq58TjqVk+Iu+vxa+aJKDnScy8=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
-      });
-
-      azure-mgmt-maps = (overrideAzureMgmtPackage super.azure-mgmt-maps "2.0.0" "zip"
-        "sha256-OE4X92potwCk+YhHiUXDqXIXEcBAByWv38tjz4ToXw4=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
-      });
-
-      azure-mgmt-managedservices = overrideAzureMgmtPackage super.azure-mgmt-managedservices "1.0.0" "zip"
-        "sha256-/tg5n8Z3Oq2jfB0ElqRvWUENd8lJTQyllnxTHDN2rRk=";
-
-      azure-mgmt-managementgroups = overrideAzureMgmtPackage super.azure-mgmt-managementgroups "1.0.0" "zip"
-        "sha256-urm9UyocNFV/Wwq5lQ5DHj8Au5boo85m3w9s4q4ZzXM=";
-
-      azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "1.1.0" "zip"
-        "sha256-aLOB9SpN9ENdrK1al+HFmsTJgfZn3MqPnQRFNBfWCtg=";
-
       azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "9.0.0" "zip"
         "sha256-TI7l8sSQ2QUgPqiE3Cu/F67Wna+KHbQS3fuIjOb95ZM=";
 
-      azure-mgmt-msi = super.azure-mgmt-msi.overridePythonAttrs (old: rec {
-        version = "7.0.0";
-        src = old.src.override {
-          inherit version;
-          hash = "sha256-ctRsmmJ4PsTqthm+nRt4/+u9qhZNQG/TA/FjA/NyVrI=";
-        };
-      });
-
-      azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip"
-        "sha256-tg8W5D97KRWCxfV7rhsIMJbYMD6dmVjiwpInpVzCfEU=";
-
       azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "7.0.0" "zip"
         "sha256-WvyNgfiliEt6qawqy8Le8eifhxusMkoZbf6YcyY1SBA=";
 
-      azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.2.0" "zip"
-        "sha256-ZU4mKTzny9tsKDrFSU+lll5v6oDivYJlXDriWJLAYec=";
-
-      azure-mgmt-redis = (overrideAzureMgmtPackage super.azure-mgmt-redis "14.1.0" "zip"
-        "sha256-LO92Wc2+VvsEKiOjVSHXw2o3D69NQlL58m+YqWl6+ig=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
-      });
-
-      azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "2.0.0" "zip"
-        "sha256-5vXdXiRubnzPk4uTFeNHR6rwiHSGbeUREX9eW1pqC3E=";
-
-      azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "9.0.0" "zip"
-        "sha256-Gc+qoTa1EE4/YmJvUSqVG+zZ50wfohvWOe/fLJ/vgb0=";
-
-      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "5.0.0" "zip"
-        "sha512-wMI55Ou96rzUEZIeTDmMfR4KIz3tG98z6A6teJanGPyNgte9tGa0/+2ge0yX10iwRKZyZZPNTReCkcd+IOkS+A==";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "10.1.0" "zip"
+        "sha256-eJiWTOCk2C79Jotku9bKlu3vU6H8004hWrX+h76MjQM=";
 
-      azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "1.1.0" "zip"
-        "sha256-lUNIDyP5W+8aIX7manfMqaO2IJJm/+2O+Buv+Bh4EZE=";
+      azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "2.0.0b2" "tar.gz"
+        "sha256-05PUV8ouAKq/xhGxVEWIzDop0a7WDTV5mGVSC4sv9P4=";
 
-      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "4.0.0b10" "zip"
-        "sha256-QHvbO6Toh5QflMIaNYmxXBy0Dmw++RVdim3HEDtLBrQ=";
+      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "4.0.0b12" "tar.gz"
+        "sha256-LJx9cdtqpoHl1pPGYodoA50y8NP4ftbXhY7zohsCPH8=";
 
       azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b5" "zip"
         "sha256-ZFgJflgynRSxo+B+Vso4eX1JheWlDQjfJ9QmupXypMc=";
@@ -278,296 +199,34 @@ let
       azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.1.0b5" "zip"
         "sha256-5E6Yf1GgNyNVjd+SeFDbhDxnOA6fOAG6oojxtCP4m+k=";
 
-      azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "10.0.0" "zip"
-        "sha256-XO5w+X/joJPDy3DCoZDC35Nrdy6UoJ73496x7Rd8nzI=";
-
-      azure-mgmt-relay = overrideAzureMgmtPackage super.azure-mgmt-relay "0.1.0" "zip"
-        "sha256-2fmHzymYuKNU8zGypxCCwEkZPx4c00WBLhS5uCE2Wss=";
-
       azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "10.1.0" "zip"
         "sha256-MZqhSBkwypvEefhoEWEPsBUFidWYD7qAX6edcBDDSSA=";
 
-      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "10.2.2" "zip"
-        "sha256-LG6oMTZepgT87KdJrwCpc4ZYEclUsEAHUitZrxFCkL4=";
-
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "12.0.0" "zip"
-        "sha256-t8PuIYkjS0r1Gs4pJJJ8X9cz8950imQtbVBABnyMnd0=";
-
-      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "10.1.0" "zip"
-        "sha256-VrX9YfYNvlA8+eNqHCp35BAeQZzQKakZs7ZZKwT8oYc=";
-
-      azure-mgmt-monitor = (overrideAzureMgmtPackage super.azure-mgmt-monitor "6.0.2" "tar.gz"
-        "sha256-X/v1AOSZq3kSsbptJs7yZIDZrkEVMgGbt41yViGW4Hs=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
-      });
-
-      azure-mgmt-advisor = overrideAzureMgmtPackage super.azure-mgmt-advisor "9.0.0" "zip"
-        "sha256-/ECLNzFf6EeBtRkST4yxuKwQsvQkHkOdDT4l/WyhjXs=";
+      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "10.3.0" "tar.gz"
+        "sha256-GDtBZM8YaLjqfv6qmO2tfSpOFKm9l3woGLErdRUM0qI=";
 
       azure-mgmt-applicationinsights = overrideAzureMgmtPackage super.azure-mgmt-applicationinsights "1.0.0" "zip"
         "sha256-woeix9703hn5LAwxugKGf6xvW433G129qxkoi7RV/Fs=";
 
-      azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "3.0.0" "zip"
-        "sha256-Cl1/aDvzNyI2uEHNvUZ39rCO185BuZnD5kTUKGJSBX0=";
-
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "21.0.0" "zip"
-        "sha256-brE+7s+JGVsrX0e+Bnnj8niI79e9ITLux+vLznXLE3c=";
-
-      azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "8.2.0" "zip"
-        "sha256-i+kgjxQdmnifaNuNIZdU/3gGn9j5OQ6fdkS7laO+nsI=";
-
-      azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
-        "sha256-3jXhF5EoMsGp6TEJqNJMq5T1VwOpCHsuscWwZVs7GRM=";
+      azure-mgmt-servicefabric = (overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
+        "sha256-3jXhF5EoMsGp6TEJqNJMq5T1VwOpCHsuscWwZVs7GRM=").overridePythonAttrs (attrs: {
+        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
+      });
 
       azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.2.0b1" "zip"
         "sha256-RK1Q51Q0wAG55oKrFmv65/2AUKl+gRdp27t/EcuMONk=";
 
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "9.0.0" "zip"
-        "sha256-QevcacDR+B0l3TBDjBT/9DMfZmOfVYBbkYuWSer/54o=";
-
-      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "1.2.0" "tar.gz"
-        "sha256-CQuoWHeh0EMitTRsvifotrTwpWd/Q9LWWD7jZ2w9r8I=";
-
-      azure-appconfiguration = super.azure-appconfiguration.overrideAttrs (oldAttrs: rec {
-        version = "1.1.1";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-uDzSy2PZMiXehOJ6u/wFkhL43id2b0xY3Tq7g53/C+Q=";
-          extension = "zip";
-        };
-      });
-
-      azure-graphrbac = super.azure-graphrbac.overrideAttrs (oldAttrs: rec {
-        version = "0.60.0";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-0Lti2L+OGWuQPzlxukr6RI5P4U6DlOv83ZQdhNYuyv4=";
-          extension = "zip";
-        };
-      });
-
-      azure-storage-common = super.azure-storage-common.overrideAttrs (oldAttrs: rec {
-        version = "1.4.2";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-Tsh8dTfUV+yVJS4ORkd+LBzPM3dP/v0F2FRGgssK5AE=";
-        };
-      });
-
-      azure-synapse-artifacts = super.azure-synapse-artifacts.overrideAttrs (oldAttrs: rec {
-        version = "0.15.0";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-XxryuN5HVuY9h6ioSEv9nwzkK6wYLupvFOCJqX82eWE=";
-          extension = "zip";
-        };
-        propagatedBuildInputs = with super; oldAttrs.propagatedBuildInputs ++ [
-          azure-mgmt-core
-        ];
-      });
-
-      azure-synapse-accesscontrol = super.azure-synapse-accesscontrol.overrideAttrs (oldAttrs: rec {
-        version = "0.5.0";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-g14ySiByqPgkJGRH8EnIRJO9Q6H2usS5FOeMCQiUuwQ=";
-          extension = "zip";
-        };
-      });
-
-      azure-synapse-managedprivateendpoints = super.azure-synapse-managedprivateendpoints.overrideAttrs (oldAttrs: rec {
-        version = "0.4.0";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-kA6urM/9zQEBKySKfQSQCMkoB7dJ7dHJB0ypJIVUwX4=";
-          extension = "zip";
-        };
-      });
-
-      azure-synapse-spark = super.azure-synapse-spark.overrideAttrs (oldAttrs: rec {
-        version = "0.2.0";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-OQ5brhweEIrtN2iP4I5NacdC9t3YUiGIVhhqSs3FMuI=";
-          extension = "zip";
-        };
-      });
-
-      azure-keyvault = super.azure-keyvault.overrideAttrs (oldAttrs: rec {
-        version = "1.1.0";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          extension = "zip";
-          hash = "sha256-N6jl83brWjBPzQZtQUtdk7mH5o+SErDEHvo31Cmq3Uk=";
-        };
-
-        propagatedBuildInputs = with self; [
-          azure-common
-          azure-nspkg
-          msrest
-          msrestazure
-          cryptography
-        ];
-        pythonNamespaces = [ "azure" ];
-        pythonImportsCheck = [ ];
-      });
-
-      azure-keyvault-administration = super.azure-keyvault-administration.overridePythonAttrs (oldAttrs: rec {
-        version = "4.3.0";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          extension = "zip";
-          hash = "sha256-PuKjui0OP0ODNErjbjJ90hOgee97JDrVT2sh+MufxWY=";
-        };
-      });
-
-      azure-keyvault-keys = super.azure-keyvault-keys.overridePythonAttrs (oldAttrs: rec {
-        version = "4.8.0b2";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          extension = "zip";
-          hash = "sha256-VUwQJAwpZIQ8fzBUjUX0ui2yaVkDK7p0fwmnz373XbY=";
-        };
-      });
-
+      azure-storage-common = overrideAzureMgmtPackage super.azure-storage-common "1.4.2" "tar.gz"
+        "sha256-Tsh8dTfUV+yVJS4ORkd+LBzPM3dP/v0F2FRGgssK5AE=";
 
-      # part of azure.mgmt.datalake namespace
-      azure-mgmt-datalake-analytics = super.azure-mgmt-datalake-analytics.overrideAttrs (oldAttrs: rec {
-        version = "0.2.1";
+      azure-keyvault-keys = overrideAzureMgmtPackage super.azure-keyvault-keys "4.9.0b3" "tar.gz"
+        "sha256-qoseyf6WqBEG8vPc1hF17K46AWk8Ba8V9KRed4lOlGo=";
 
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-THlg0JT1hH2aRWwYuKPI5gxCjjCAo5BfHJQ9gbpjUaQ=";
-          extension = "zip";
-        };
+      azure-mgmt-datalake-store = overrideAzureMgmtPackage super.azure-mgmt-datalake-store "0.5.0" "zip"
+        "sha256-k3bTVJVmHRn4rMVgT2ewvFlJOxg1u8SA+aGVL5ABekw=";
 
-        preBuild = ''
-          rm azure_bdist_wheel.py
-          substituteInPlace setup.cfg \
-            --replace "azure-namespace-package = azure-mgmt-datalake-nspkg" ""
-        '';
-      });
-
-      azure-mgmt-datalake-store = super.azure-mgmt-datalake-store.overrideAttrs (oldAttrs: rec {
-        version = "0.5.0";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-k3bTVJVmHRn4rMVgT2ewvFlJOxg1u8SA+aGVL5ABekw=";
-          extension = "zip";
-        };
-
-        preBuild = ''
-          rm azure_bdist_wheel.py
-          substituteInPlace setup.cfg \
-            --replace "azure-namespace-package = azure-mgmt-datalake-nspkg" ""
-        '';
-      });
-
-      adal = super.adal.overridePythonAttrs (oldAttrs: rec {
-        version = "1.2.7";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-109FuBMXRU2W6YL9HFDm+1yZrCIjcorqh2RDOjn1ZvE=";
-        };
-
-        # sdist doesn't provide tests
-        doCheck = false;
-      });
-
-      msal = super.msal.overridePythonAttrs (oldAttrs: rec {
-        version = "1.24.0b1";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-ze5CqX+m8XH4NUECL2SgNT9EXV4wS/0DgO5XMDHo/Uo=";
-        };
-      });
-
-      semver = super.semver.overridePythonAttrs (oldAttrs: rec {
-        version = "2.13.0";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-+g/ici7hw/V+rEeIIMOlri9iSvgmTL35AAyYD/f3Xj8=";
-        };
-      });
-
-      jsondiff = super.jsondiff.overridePythonAttrs (oldAttrs: rec {
-        version = "2.0.0";
-
-        src = oldAttrs.src.override {
-          inherit version;
-          hash = "sha256-J5WETvB17IorjThcTVn16kiwjnGA/OPLJ4e+DbALH7Q=";
-        };
-      });
-
-      knack = super.knack.overridePythonAttrs (oldAttrs: rec {
-        version = "0.11.0";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-62VoAB6RELGzIJQUMcUQM9EEzJjNoiVKXCsJulaf1JQ=";
-        };
-      });
-
-      argcomplete = super.argcomplete.overridePythonAttrs (oldAttrs: rec {
-        version = "3.1.1";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-bExWPxTwFECq/6Pq4TRBxdsjV7Xuxjmr58CxUzRiff8=";
-        };
-      });
-
-      sshtunnel = super.sshtunnel.overridePythonAttrs (oldAttrs: rec {
-        name = "sshtunnel-${version}";
-        version = "0.1.5";
-
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-yBP9zajoHDk2/+rEfLac+y0fXnetDeZWxtq1au69kkk=";
-        };
-      });
-
-      websocket-client = super.websocket-client.overridePythonAttrs (oldAttrs: rec {
-        version = "1.3.1";
-
-        src = oldAttrs.src.override {
-          inherit version;
-          hash = "sha256-YninUGU5VBgoP4h958O+r7OqaNraXKy+SyFOjSbaSZs=";
-        };
-      });
-
-      azure-mgmt-resource = super.azure-mgmt-resource.overridePythonAttrs (oldAttrs: rec {
-        version = "23.1.0b2";
-
-        src = oldAttrs.src.override {
-          inherit version;
-          hash = "sha256-kMmiKVwjPgmsTIxxxDRNXE41jSTJkemnKhO+P/OcPZI=";
-        };
-      });
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "23.1.0b2" "zip"
+        "sha256-kMmiKVwjPgmsTIxxxDRNXE41jSTJkemnKhO+P/OcPZI=";
     };
   };
 in
diff --git a/pkgs/tools/admin/balena-cli/default.nix b/pkgs/tools/admin/balena-cli/default.nix
index bb674a83f3221..4ab5dadb1eccd 100644
--- a/pkgs/tools/admin/balena-cli/default.nix
+++ b/pkgs/tools/admin/balena-cli/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , buildNpmPackage
+, overrideSDK
 , fetchFromGitHub
 , testers
 , balena-cli
@@ -10,18 +11,23 @@
 , darwin
 }:
 
-buildNpmPackage rec {
+let
+  # Fix for: https://github.com/NixOS/nixpkgs/issues/272156
+  buildNpmPackage' = buildNpmPackage.override {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+  };
+in buildNpmPackage' rec {
   pname = "balena-cli";
-  version = "17.0.0";
+  version = "17.5.1";
 
   src = fetchFromGitHub {
     owner = "balena-io";
     repo = "balena-cli";
     rev = "v${version}";
-    hash = "sha256-sNpxjSumiP+4fX6b3j+HEl/lr4pvudrhfTzr2TYastE=";
+    hash = "sha256-DapVJAXfTdGjtVBIKuc+xKZ6yWw1eC2pxTwt5O0QrWk=";
   };
 
-  npmDepsHash = "sha256-q2Yc6e5dEiP2Q4tFIeqj4mswM1/pX1pdGeoagyiupvs=";
+  npmDepsHash = "sha256-yAcUGOSrQ+AB2b0eDKCMhZRP/LEKcmJmO5xNhVJcqX4=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/tools/admin/berglas/default.nix b/pkgs/tools/admin/berglas/default.nix
index 75a4bc591e7b1..150b5535f1ce9 100644
--- a/pkgs/tools/admin/berglas/default.nix
+++ b/pkgs/tools/admin/berglas/default.nix
@@ -27,16 +27,16 @@ in
 
 buildGoModule rec {
   pname = "berglas";
-  version = "1.0.3";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4hbRX0kKMWixcu5SWjrM5lVvhLMOaeBdG4GH5NVAh70=";
+    sha256 = "sha256-Jf6yPVydM7UnG1yiLEFe+7FMkWANIQebZ3QAwg6/OQs=";
   };
 
-  vendorHash = "sha256-qcFS07gma7GVxhdrYca0E6rcczNcZmU8JcjjcpEaxp0=";
+  vendorHash = "sha256-3WDBl/GqCgRFMmh6TQvtHhACCRzf9sdIO8fel8CAMP0=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/admin/cdist/default.nix b/pkgs/tools/admin/cdist/default.nix
index 115800fcf2c5c..8467605727c93 100644
--- a/pkgs/tools/admin/cdist/default.nix
+++ b/pkgs/tools/admin/cdist/default.nix
@@ -2,6 +2,7 @@
 , buildPythonApplication
 , fetchFromGitea
 , pythonImportsCheckHook
+, six
 , sphinxHook
 , sphinx-rtd-theme
 }:
@@ -21,6 +22,7 @@ buildPythonApplication rec {
 
   nativeBuildInputs = [
     pythonImportsCheckHook
+    six
     sphinxHook
     sphinx-rtd-theme
   ];
diff --git a/pkgs/tools/admin/cf-vault/default.nix b/pkgs/tools/admin/cf-vault/default.nix
index 5823d0cbc788d..a9e1e0316d60b 100644
--- a/pkgs/tools/admin/cf-vault/default.nix
+++ b/pkgs/tools/admin/cf-vault/default.nix
@@ -1,16 +1,16 @@
 {buildGoModule, fetchFromGitHub, lib}:
 buildGoModule rec {
   pname = "cf-vault";
-  version = "0.0.15";
+  version = "0.0.18";
 
   src = fetchFromGitHub {
     owner = "jacobbednarz";
     repo = pname;
     rev = version;
-    sha256 = "sha256-+6+I69LRCoU35lTrM8cZnzJsHB9SIr6OQKaiRFo7aW4=";
+    sha256 = "sha256-vp9ufjNZabY/ck2lIT+QpD6IgaVj1BkBRTjPxkb6IjQ=";
   };
 
-  vendorHash = "sha256-oNLGHV0NFYAU1pHQWeCmegonkEtMtGts0uWZWPnLVuY=";
+  vendorHash = "sha256-7qFB1Y1AnqMgdu186tAXCdoYOhCMz8pIh6sY02LbIgs=";
 
   meta = with lib; {
     description = ''
diff --git a/pkgs/tools/admin/chamber/default.nix b/pkgs/tools/admin/chamber/default.nix
index 7f716e3b1fbe1..efc49bfde1aaa 100644
--- a/pkgs/tools/admin/chamber/default.nix
+++ b/pkgs/tools/admin/chamber/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "chamber";
-  version = "2.13.3";
+  version = "2.13.6";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Pte2fOIuezFJ1Hz5MgjRDTIAMJ5r+LO1hKHc3sLu0W4=";
+    sha256 = "sha256-jaD93q8s2uLb8jIvUBAnT76brDos46Wk06UKXAgHQGs=";
   };
 
   CGO_ENABLED = 0;
 
-  vendorHash = "sha256-McicBVC2niLvP902monJwPMOrQKSum10zeHNcO32/M8=";
+  vendorHash = "sha256-BkTC6sqitc1OHdQFlA2BtqxHI31ubBj2GRszs3YlWsA=";
 
   ldflags = [ "-s" "-w" "-X main.Version=v${version}" ];
 
diff --git a/pkgs/tools/admin/chkservice/default.nix b/pkgs/tools/admin/chkservice/default.nix
deleted file mode 100644
index 9e2965a0db2a0..0000000000000
--- a/pkgs/tools/admin/chkservice/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, ninja
-, pkg-config
-, systemd
-, ncurses
-}:
-
-stdenv.mkDerivation rec {
-  pname = "chkservice";
-  version = "0.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxenko";
-    repo = "chkservice";
-    rev = version;
-    hash = "sha256-ZllO6Ag+OgAkQp6jSv000NUEskXFuhMcCo83A4Wp2zU=";
-  };
-
-  patches = [
-    # Pull fix pending upstream inclusion for gcc-11 support:
-    #   https://github.com/linuxenko/chkservice/pull/38
-    (fetchpatch {
-      name = "gcc-11.patch";
-      url = "https://github.com/linuxenko/chkservice/commit/26b12a7918c8a3bc449c92b458e6cd5c2d7b2e05.patch";
-      hash = "sha256-LaJLlqRyn1eoahbW2X+hDSt8iV4lhNRn0j0kLHB+RhM=";
-    })
-  ];
-
-  # Tools needed during build time
-  nativeBuildInputs = [
-    cmake
-    # Makes the build faster, adds less than half a megabyte to the build
-    # dependencies
-    ninja
-    pkg-config
-  ];
-
-  buildInputs = [
-    systemd
-    ncurses
-  ];
-
-  hardeningDisable = [ "format" ];
-
-  meta = {
-    description = "chkservice is a tool for managing systemd units in terminal.";
-    platforms = lib.platforms.all;
-    maintainers = with lib.maintainers; [ infinisil ];
-    license = lib.licenses.gpl3Plus;
-    homepage = "https://github.com/linuxenko/chkservice";
-  };
-}
diff --git a/pkgs/tools/admin/cjdns-tools/default.nix b/pkgs/tools/admin/cjdns-tools/default.nix
index 2468d329548c4..7b314e1aa1315 100644
--- a/pkgs/tools/admin/cjdns-tools/default.nix
+++ b/pkgs/tools/admin/cjdns-tools/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/cjdelisle/cjdns";
     description = "Tools for cjdns managment";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ mkg20001 ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/colmena/default.nix b/pkgs/tools/admin/colmena/default.nix
index ceb544753b21a..6cb763c88d1eb 100644
--- a/pkgs/tools/admin/colmena/default.nix
+++ b/pkgs/tools/admin/colmena/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   passthru = {
     # We guarantee CLI and Nix API stability for the same minor version
-    apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version));
+    apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitVersion version));
 
     tests.version = testers.testVersion { package = colmena; };
   };
diff --git a/pkgs/tools/admin/copilot-cli/default.nix b/pkgs/tools/admin/copilot-cli/default.nix
index 7c56d6952b982..ed75736224cd1 100644
--- a/pkgs/tools/admin/copilot-cli/default.nix
+++ b/pkgs/tools/admin/copilot-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "copilot-cli";
-  version = "1.30.1";
+  version = "1.33.1";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ldSF+M6gYKJ6EDJ4jKpPS+XTyybynsRhibNtLG1+DlE=";
+    hash = "sha256-/xuS5tJBV67gXGHQ93FpMXMLXnhAgnicQnKx/pnwyAM=";
   };
 
-  vendorHash = "sha256-/2uUiFL2wL+gAzqY2S3sqytPLKB5+QkYXCBNLqSJSWU=";
+  vendorHash = "sha256-ekAuvvLxk9cwIuElosc6QbsW7+3f/mO8vsA74DA82D0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [
     "-s"
     "-w"
-    "-X github.com/aws/copilot-cli/internal/pkg/version.Version=${version}"
+    "-X github.com/aws/copilot-cli/internal/pkg/version.Version=v${version}"
     "-X github.com/aws/copilot-cli/internal/pkg/cli.binaryS3BucketPath=https://ecs-cli-v2-release.s3.amazonaws.com"
   ];
 
@@ -35,10 +35,11 @@ buildGoModule rec {
   passthru.tests.version = testers.testVersion {
     package = copilot-cli;
     command = "copilot version";
+    version = "v${version}";
   };
 
   meta = with lib; {
-    description = "Build, Release and Operate Containerized Applications on AWS.";
+    description = "Build, Release and Operate Containerized Applications on AWS";
     homepage = "https://github.com/aws/copilot-cli";
     changelog = "https://github.com/aws/copilot-cli/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/admin/credhub-cli/default.nix b/pkgs/tools/admin/credhub-cli/default.nix
index 9483d59846d6c..f53258574808d 100644
--- a/pkgs/tools/admin/credhub-cli/default.nix
+++ b/pkgs/tools/admin/credhub-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "credhub-cli";
-  version = "2.9.19";
+  version = "2.9.25";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry-incubator";
     repo = "credhub-cli";
     rev = version;
-    sha256 = "sha256-7Bmw3rJbb+Ae6gvVROz7hADDrGr8eiZX6g+ZpWSd99k=";
+    sha256 = "sha256-QGsnNQvER5IaWY4Zh9sFa7eOeLnDdNDrLLpwgBALGm8=";
   };
 
   # these tests require network access that we're not going to give them
diff --git a/pkgs/tools/admin/docker-credential-helpers/default.nix b/pkgs/tools/admin/docker-credential-helpers/default.nix
index 151da67fe91fb..ba5aa38860ef1 100644
--- a/pkgs/tools/admin/docker-credential-helpers/default.nix
+++ b/pkgs/tools/admin/docker-credential-helpers/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-credential-helpers";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3zWlYW+2LA/JK/lv/OTzMlF2HlQPID0WYks0dQrP3GY=";
+    sha256 = "sha256-Q1SdDfTT0W+eG/F5HX+pk4B06IG5ZoeZxe36l71gMc8=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/admin/drawterm/default.nix b/pkgs/tools/admin/drawterm/default.nix
index b5b6a1fb32f3f..e0c33457e1684 100644
--- a/pkgs/tools/admin/drawterm/default.nix
+++ b/pkgs/tools/admin/drawterm/default.nix
@@ -14,17 +14,18 @@
 , wlr-protocols
 , pulseaudio
 , config
+, nixosTests
 }:
 
 stdenv.mkDerivation {
   pname = "drawterm";
-  version = "unstable-2023-08-22";
+  version = "unstable-2023-12-23";
 
   src = fetchFrom9Front {
     owner = "plan9front";
     repo = "drawterm";
-    rev = "c91c6fac9d725716ca6ecc3002053f941137f24f";
-    hash = "sha256-oGcKRx1tP2jeshHhaCHPRKmwKQ3WPYK1tHGGt1/3oDU=";
+    rev = "f9ae0c837bf8351037689f1985c1a52c1570ba30";
+    hash = "sha256-wJWMdD9OmGybIwgBNJ8LxxV21L4SaV22OxAILsDWG3U=";
   };
 
   enableParallelBuilding = true;
@@ -56,10 +57,13 @@ stdenv.mkDerivation {
     installManPage drawterm.1
   '';
 
-  passthru.updateScript = unstableGitUpdater { shallowClone = false; };
+  passthru = {
+    updateScript = unstableGitUpdater { shallowClone = false; };
+    tests = nixosTests.drawterm;
+  };
 
   meta = with lib; {
-    description = "Connect to Plan 9 CPU servers from other operating systems.";
+    description = "Connect to Plan 9 CPU servers from other operating systems";
     homepage = "https://drawterm.9front.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ luc65r moody ];
diff --git a/pkgs/tools/admin/ejson2env/default.nix b/pkgs/tools/admin/ejson2env/default.nix
index a7d516644c3df..26a1b737d8b69 100644
--- a/pkgs/tools/admin/ejson2env/default.nix
+++ b/pkgs/tools/admin/ejson2env/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A tool to simplify storing secrets that should be accessible in the shell environment in your git repo.";
+    description = "Decrypt EJSON secrets and export them as environment variables";
     homepage = "https://github.com/Shopify/ejson2env";
     maintainers = with maintainers; [ viraptor ];
     license = licenses.mit;
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index 9a1edeef22d51..f400d7f537c74 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "exoscale-cli";
-  version = "1.74.2";
+  version = "1.75.0";
 
   src = fetchFromGitHub {
     owner = "exoscale";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-Xssc8T4y8ZaFqOukAJkrKPSUBM0uTlGkI3M92XNLalk=";
+    sha256 = "sha256-9BGcP35nTEHccDKLIBNgZbU2xjtFAKtEHLRt8kTlgv0=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/admin/fastlane/Gemfile.lock b/pkgs/tools/admin/fastlane/Gemfile.lock
index 779d6d32de72b..9f2cbafb8949a 100644
--- a/pkgs/tools/admin/fastlane/Gemfile.lock
+++ b/pkgs/tools/admin/fastlane/Gemfile.lock
@@ -3,25 +3,25 @@ GEM
   specs:
     CFPropertyList (3.0.6)
       rexml
-    addressable (2.8.5)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     artifactory (3.0.15)
     atomos (0.1.3)
-    aws-eventstream (1.2.0)
-    aws-partitions (1.824.0)
-    aws-sdk-core (3.181.1)
-      aws-eventstream (~> 1, >= 1.0.2)
+    aws-eventstream (1.3.0)
+    aws-partitions (1.877.0)
+    aws-sdk-core (3.190.1)
+      aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
-      aws-sigv4 (~> 1.5)
+      aws-sigv4 (~> 1.8)
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-kms (1.71.0)
-      aws-sdk-core (~> 3, >= 3.177.0)
+    aws-sdk-kms (1.76.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.134.0)
-      aws-sdk-core (~> 3, >= 3.181.0)
+    aws-sdk-s3 (1.142.0)
+      aws-sdk-core (~> 3, >= 3.189.0)
       aws-sdk-kms (~> 1)
-      aws-sigv4 (~> 1.6)
-    aws-sigv4 (1.6.0)
+      aws-sigv4 (~> 1.8)
+    aws-sigv4 (1.8.0)
       aws-eventstream (~> 1, >= 1.0.2)
     babosa (1.0.4)
     claide (1.1.0)
@@ -32,11 +32,10 @@ GEM
     declarative (0.0.20)
     digest-crc (0.6.5)
       rake (>= 12.0.0, < 14.0.0)
-    domain_name (0.5.20190701)
-      unf (>= 0.0.5, < 1.0.0)
+    domain_name (0.6.20231109)
     dotenv (2.8.1)
     emoji_regex (3.2.3)
-    excon (0.103.0)
+    excon (0.109.0)
     faraday (1.10.3)
       faraday-em_http (~> 1.0)
       faraday-em_synchrony (~> 1.0)
@@ -65,8 +64,8 @@ GEM
     faraday-retry (1.0.3)
     faraday_middleware (1.2.0)
       faraday (~> 1.0)
-    fastimage (2.2.7)
-    fastlane (2.216.0)
+    fastimage (2.3.0)
+    fastlane (2.219.0)
       CFPropertyList (>= 2.3, < 4.0.0)
       addressable (>= 2.8, < 3.0.0)
       artifactory (~> 3.0)
@@ -85,6 +84,7 @@ GEM
       gh_inspector (>= 1.1.2, < 2.0.0)
       google-apis-androidpublisher_v3 (~> 0.3)
       google-apis-playcustomapp_v1 (~> 0.1)
+      google-cloud-env (>= 1.6.0, < 2.0.0)
       google-cloud-storage (~> 1.31)
       highline (~> 2.0)
       http-cookie (~> 1.0.5)
@@ -93,7 +93,7 @@ GEM
       mini_magick (>= 4.9.4, < 5.0.0)
       multipart-post (>= 2.0.0, < 3.0.0)
       naturally (~> 2.2)
-      optparse (~> 0.1.1)
+      optparse (>= 0.1.1)
       plist (>= 3.1.0, < 4.0.0)
       rubyzip (>= 2.0.0, < 3.0.0)
       security (= 0.1.3)
@@ -107,9 +107,9 @@ GEM
       xcpretty (~> 0.3.0)
       xcpretty-travis-formatter (>= 0.0.3)
     gh_inspector (1.1.3)
-    google-apis-androidpublisher_v3 (0.49.0)
+    google-apis-androidpublisher_v3 (0.54.0)
       google-apis-core (>= 0.11.0, < 2.a)
-    google-apis-core (0.11.1)
+    google-apis-core (0.11.2)
       addressable (~> 2.5, >= 2.5.1)
       googleauth (>= 0.16.2, < 2.a)
       httpclient (>= 2.8.1, < 3.a)
@@ -122,23 +122,23 @@ GEM
       google-apis-core (>= 0.11.0, < 2.a)
     google-apis-playcustomapp_v1 (0.13.0)
       google-apis-core (>= 0.11.0, < 2.a)
-    google-apis-storage_v1 (0.19.0)
-      google-apis-core (>= 0.9.0, < 2.a)
-    google-cloud-core (1.6.0)
-      google-cloud-env (~> 1.0)
+    google-apis-storage_v1 (0.29.0)
+      google-apis-core (>= 0.11.0, < 2.a)
+    google-cloud-core (1.6.1)
+      google-cloud-env (>= 1.0, < 3.a)
       google-cloud-errors (~> 1.0)
     google-cloud-env (1.6.0)
       faraday (>= 0.17.3, < 3.0)
     google-cloud-errors (1.3.1)
-    google-cloud-storage (1.44.0)
+    google-cloud-storage (1.45.0)
       addressable (~> 2.8)
       digest-crc (~> 0.4)
       google-apis-iamcredentials_v1 (~> 0.1)
-      google-apis-storage_v1 (~> 0.19.0)
+      google-apis-storage_v1 (~> 0.29.0)
       google-cloud-core (~> 1.6)
       googleauth (>= 0.16.2, < 2.a)
       mini_mime (~> 1.0)
-    googleauth (1.8.0)
+    googleauth (1.8.1)
       faraday (>= 0.17.3, < 3.a)
       jwt (>= 1.4, < 3.0)
       multi_json (~> 1.11)
@@ -149,7 +149,7 @@ GEM
       domain_name (~> 0.5)
     httpclient (2.8.3)
     jmespath (1.6.2)
-    json (2.6.3)
+    json (2.7.1)
     jwt (2.7.1)
     mini_magick (4.12.0)
     mini_mime (1.1.5)
@@ -157,11 +157,11 @@ GEM
     multipart-post (2.3.0)
     nanaimo (0.3.0)
     naturally (2.2.1)
-    optparse (0.1.1)
+    optparse (0.4.0)
     os (1.1.4)
-    plist (3.7.0)
-    public_suffix (5.0.3)
-    rake (13.0.6)
+    plist (3.7.1)
+    public_suffix (5.0.4)
+    rake (13.1.0)
     representable (3.2.0)
       declarative (< 0.1.0)
       trailblazer-option (>= 0.1.1, < 0.2.0)
@@ -185,17 +185,14 @@ GEM
       unicode-display_width (>= 1.1.1, < 3)
     trailblazer-option (0.1.2)
     tty-cursor (0.7.1)
-    tty-screen (0.8.1)
+    tty-screen (0.8.2)
     tty-spinner (0.9.3)
       tty-cursor (~> 0.7)
     uber (0.1.0)
-    unf (0.1.4)
-      unf_ext
-    unf_ext (0.0.8.2)
-    unicode-display_width (2.4.2)
+    unicode-display_width (2.5.0)
     webrick (1.8.1)
     word_wrap (1.0.0)
-    xcodeproj (1.22.0)
+    xcodeproj (1.23.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
@@ -214,4 +211,4 @@ DEPENDENCIES
   fastlane
 
 BUNDLED WITH
-   2.4.19
+   2.4.22
diff --git a/pkgs/tools/admin/fastlane/gemset.nix b/pkgs/tools/admin/fastlane/gemset.nix
index a28442fd04cee..1afc21c27a166 100644
--- a/pkgs/tools/admin/fastlane/gemset.nix
+++ b/pkgs/tools/admin/fastlane/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.5";
+    version = "2.8.6";
   };
   artifactory = {
     groups = ["default"];
@@ -35,20 +35,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
+      sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03dy04n302202rn97cy2r65ybx7ik0s2qqg8s4w3jgi4nvhyy8b4";
+      sha256 = "1zcwrlg4in3gzvsiynpzp9fzlr5grrhc2881xcgfs01ppmxysllm";
       type = "gem";
     };
-    version = "1.824.0";
+    version = "1.877.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -56,10 +56,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qnwh40d45pqm77dayvh1zdlb5xjbbj7hv29s8nhxj7c3qkl4bpb";
+      sha256 = "1ansagfl5irx1y6b9xf4xpi9j6q6k5pbd2aw80hn0p4m3ycafamh";
       type = "gem";
     };
-    version = "3.181.1";
+    version = "3.190.1";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -67,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zr5w2cjd895abyn7y5gifhq37bxcinssvdx2l1qmlkllbdxbwq0";
+      sha256 = "0jfgw9a9c8xyjhkmgpd9rpi95h9i0rhbqszn8iqkbfm9rc9m1xz7";
       type = "gem";
     };
-    version = "1.71.0";
+    version = "1.76.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -78,10 +78,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fbz259as60xnf563z9byp8blq5fsc81h92h3wicai4bmz45w4r5";
+      sha256 = "1sfpipfdmixpc0madfx1yvpwpv52fdhxfx4bmvrjxzb6ra78ikbr";
       type = "gem";
     };
-    version = "1.134.0";
+    version = "1.142.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -89,10 +89,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z889c4c1w7wsjm3szg64ay5j51kjl4pdf94nlr1yks2rlanm7na";
+      sha256 = "1g3w27wzjy4si6kp49w10as6ml6g6zl3xrfqs5ikpfciidv9kpc4";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.8.0";
   };
   babosa = {
     groups = ["default"];
@@ -178,15 +178,14 @@
     version = "0.6.5";
   };
   domain_name = {
-    dependencies = ["unf"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+      sha256 = "1gpciaifmxql8h01ci12qq08dnqrdlzkkz6fmia9v9yc3r9a29si";
       type = "gem";
     };
-    version = "0.5.20190701";
+    version = "0.6.20231109";
   };
   dotenv = {
     groups = ["default"];
@@ -213,10 +212,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15la3ni3fwl8aj8mifn3hkryfjg6z09j4cc8j24rq6kwknlry5ff";
+      sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x";
       type = "gem";
     };
-    version = "0.103.0";
+    version = "0.109.0";
   };
   faraday = {
     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"];
@@ -357,21 +356,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pd7pamzhdz2w0fbcvsfn2nyslznvphnwj16zw35g2b28zd2xyzx";
+      sha256 = "104kn1lj55hifcpiw1x7x9slskvqmfanylcz3nj8acjgmri0av72";
       type = "gem";
     };
-    version = "2.2.7";
+    version = "2.3.0";
   };
   fastlane = {
-    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" "http-cookie" "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"];
+    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-env" "google-cloud-storage" "highline" "http-cookie" "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 = "05mqlcnblhs1dp4433skziqissl92frwcbf4bbq1ihvywlbpayfb";
+      sha256 = "0g3rg730nf7fr4pjy7fpw19iwxng871mb1d85639fn1bmhma6j7v";
       type = "gem";
     };
-    version = "2.216.0";
+    version = "2.219.0";
   };
   gh_inspector = {
     groups = ["default"];
@@ -389,10 +388,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15wdy5r6rhnj9744fvibkm1npgz3nm7wfcaann1laz45mh499f2g";
+      sha256 = "046j100lrh5dhb8p3gr38fyqrw8vcif97pqb55ysipy874lafw49";
       type = "gem";
     };
-    version = "0.49.0";
+    version = "0.54.0";
   };
   google-apis-core = {
     dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "webrick"];
@@ -400,10 +399,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z4p7fyqlnydjgprawmhc7q6yjfzdjjvhn0hh0j6a9rq9wii2xli";
+      sha256 = "1cly6ycryjhk15d60v3nqvhqpjk9f0nznnslbdnin90f5r54sbpd";
       type = "gem";
     };
-    version = "0.11.1";
+    version = "0.11.2";
   };
   google-apis-iamcredentials_v1 = {
     dependencies = ["google-apis-core"];
@@ -433,10 +432,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17qamcjnf22zvw1g169g8a2gkzdsxx4ij3a4ganihyrcf9r62asj";
+      sha256 = "1k432qgxf41c4m6d68rascm0gyj18r7ypmrnyzmxh7k7nh543awx";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.29.0";
   };
   google-cloud-core = {
     dependencies = ["google-cloud-env" "google-cloud-errors"];
@@ -444,10 +443,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0amp8vd16pzbdrfbp7k0k38rqxpwd88bkyp35l3x719hbb6l85za";
+      sha256 = "00wfvdvdv9m4l5ydn6xp65n68mgmpqr3n09hzvxs7gp8fly3j17v";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.6.1";
   };
   google-cloud-env = {
     dependencies = ["faraday"];
@@ -476,10 +475,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1skhlpcykxxzw3050cwngdyc3n746wfx443w1w9chxwjbh2ix6i9";
+      sha256 = "0033bi8qwm0ksxsv5zhz4nzwsiaapq3xk79z8f8rx3v09vdap07j";
       type = "gem";
     };
-    version = "1.44.0";
+    version = "1.45.0";
   };
   googleauth = {
     dependencies = ["faraday" "jwt" "multi_json" "os" "signet"];
@@ -487,10 +486,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06yg24bdh0daxz3bz7ap90b14j3blli7ywg5q05a5kghs9xa26y1";
+      sha256 = "1ry9v23kndgx2pxq9v31l68k9lnnrcz1w4v75bkxq88jmbddljl1";
       type = "gem";
     };
-    version = "1.8.0";
+    version = "1.8.1";
   };
   highline = {
     groups = ["default"];
@@ -538,10 +537,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
+      sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq";
       type = "gem";
     };
-    version = "2.6.3";
+    version = "2.7.1";
   };
   jwt = {
     groups = ["default"];
@@ -618,10 +617,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j9l5a1zszvrlggp1ldx82i4kkqx34g4g3amwp488s499w5l1cvj";
+      sha256 = "1pmsn1g1q5fpkjrc4h1wlw6lxlqp165sdcd951xyl47n6k0az17m";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.4.0";
   };
   os = {
     groups = ["default"];
@@ -638,30 +637,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wzhnbzraz60paxhm48c50fp9xi7cqka4gfhxmiq43mhgh5ajg3h";
+      sha256 = "0b643i5b7b7galvlb2fc414ifmb78b5lsq47gnvhzl8m27dl559z";
       type = "gem";
     };
-    version = "3.7.0";
+    version = "3.7.1";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
+      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.4";
   };
   rake = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.1.0";
   };
   representable = {
     dependencies = ["declarative" "trailblazer-option" "uber"];
@@ -802,10 +801,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
+      sha256 = "0l4vh6g333jxm9lakilkva2gn17j6gb052626r1pdbmy2lhnb460";
       type = "gem";
     };
-    version = "0.8.1";
+    version = "0.8.2";
   };
   tty-spinner = {
     dependencies = ["tty-cursor"];
@@ -828,36 +827,15 @@
     };
     version = "0.1.0";
   };
-  unf = {
-    dependencies = ["unf_ext"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
-      type = "gem";
-    };
-    version = "0.1.4";
-  };
-  unf_ext = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
-      type = "gem";
-    };
-    version = "0.0.8.2";
-  };
   unicode-display_width = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
+      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.0";
   };
   webrick = {
     groups = ["default"];
@@ -885,10 +863,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s7hxaqd1fi4rlmm2jbrglyvka1r95frlxan61vfcnd8n6pxynpi";
+      sha256 = "176ndahc5fssyx04q176vy6wngs1av4vrsdrkdpjij700hqll8hn";
       type = "gem";
     };
-    version = "1.22.0";
+    version = "1.23.0";
   };
   xcpretty = {
     dependencies = ["rouge"];
diff --git a/pkgs/tools/admin/fbvnc/default.nix b/pkgs/tools/admin/fbvnc/default.nix
index 2bd46f27ab0f4..0157f391d66bb 100644
--- a/pkgs/tools/admin/fbvnc/default.nix
+++ b/pkgs/tools/admin/fbvnc/default.nix
@@ -1,30 +1,38 @@
-{lib, stdenv, fetchFromGitHub}:
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
 stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
   pname = "fbvnc";
   version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "zohead";
     repo = pname;
-    sha256 = "0lkr4j1wsa05av2g9w99rr9w4j4k7a21vp36x0a3h50y8bmgwgm1";
     rev = "783204ff6c92afec33d6d36f7e74f1fcf2b1b601";
+    hash = "sha256-oT7+6kIeFDgU6GbcHYQ6k0jCU84p8fTEVgUozYMkeVI=";
   };
 
-  buildInputs = [];
+  makeFlags = [
+    "CC:=$(CC)"
+  ];
 
   installPhase = ''
-    mkdir -p "$out/bin"
-    cp fbvnc "$out/bin"
-    mkdir -p "$out/share/doc/${pname}"
-    cp README* "$out/share/doc/${pname}"
+    runHook preInstall
+
+    install -Dm555 fbvnc     -t "$out/bin"
+    install -Dm444 README.md -t "$out/share/doc/fbvnc"
+
+    runHook postInstall
   '';
 
   meta = {
     description = "Framebuffer VNC client";
     license = lib.licenses.bsd3;
-    maintainers = [lib.maintainers.raskin];
+    maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux;
     homepage = "https://github.com/zohead/fbvnc/";
+    mainProgram = "fbvnc";
   };
 }
diff --git a/pkgs/tools/admin/fioctl/default.nix b/pkgs/tools/admin/fioctl/default.nix
index f9e517e091d8f..e6207b4402529 100644
--- a/pkgs/tools/admin/fioctl/default.nix
+++ b/pkgs/tools/admin/fioctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fioctl";
-  version = "0.35";
+  version = "0.40";
 
   src = fetchFromGitHub {
     owner = "foundriesio";
     repo = "fioctl";
     rev = "v${version}";
-    sha256 = "sha256-4lAoUmbNsC0d+yaB+DqHVqz3UMI08rhXIm7rgueeXik=";
+    sha256 = "sha256-G1CHm5z2D7l3NDmUMhubJsrXYUHb6FJ70EsYQShhsDE=";
   };
 
-  vendorHash = "sha256-hSllpWjiYOBbANCX7usdAAF1HNAJ79ELK92qEyn8G1c=";
+  vendorHash = "sha256-j0tdFvOEp9VGx8OCfUruCzwVSB8thcenpvVNn7Rf0dA=";
 
   ldflags = [
     "-s" "-w"
diff --git a/pkgs/tools/admin/fits-cloudctl/default.nix b/pkgs/tools/admin/fits-cloudctl/default.nix
index 6ec8819e3bc94..c6aa0a2a7080b 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.11.13";
+  version = "0.12.13";
 
   src = fetchFromGitHub {
     owner = "fi-ts";
     repo = "cloudctl";
     rev = "v${version}";
-    sha256 = "sha256-S4XouqqIBalXqfznrJ8F2TxU9h+gqObnjRXEQnj67LQ=";
+    sha256 = "sha256-Vb7jBgk052WBnlUgS5lVooi/bY49rRqCWbOO4cPkPx4=";
   };
 
-  vendorHash = "sha256-Y1F+7bJwsUb09xTSRSdfa6bOPMFCkNBaNurrfB9IPCA=";
+  vendorHash = "sha256-NR5Jw4zCYRg6xc9priCVNH+9wOVWx3bmstc3nkQDmv8=";
 
   meta = with lib; {
     description = "Command-line client for FI-TS Finance Cloud Native services";
diff --git a/pkgs/tools/admin/gam/default.nix b/pkgs/tools/admin/gam/default.nix
index 6ea2b6c3da370..6cf340150ffbd 100644
--- a/pkgs/tools/admin/gam/default.nix
+++ b/pkgs/tools/admin/gam/default.nix
@@ -52,8 +52,8 @@ python3.pkgs.buildPythonApplication rec {
     runHook preInstall
     mkdir -p $out/bin
     cp gam.py $out/bin/gam
-    mkdir -p $out/lib/${python3.libPrefix}/site-packages
-    cp -r gam $out/lib/${python3.libPrefix}/site-packages
+    mkdir -p $out/${python3.sitePackages}
+    cp -r gam $out/${python3.sitePackages}
     runHook postInstall
   '';
 
diff --git a/pkgs/tools/admin/google-cloud-sdk/components.json b/pkgs/tools/admin/google-cloud-sdk/components.json
index 1c10e5dccaec3..eba193fd516ee 100644
--- a/pkgs/tools/admin/google-cloud-sdk/components.json
+++ b/pkgs/tools/admin/google-cloud-sdk/components.json
@@ -5,7 +5,7 @@
         "checksum": "5a65179c291bc480696ca323d2f8c4874985458303eff8f233e16cdca4e88e6f",
         "contents_checksum": "038c999c7a7d70d5133eab7dc5868c4c3d0358431dad250f9833306af63016c8",
         "size": 800,
-        "source": "components/google-cloud-sdk-alpha-20230913232318.tar.gz",
+        "source": "components/google-cloud-sdk-alpha-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -22,8 +22,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2023.09.13"
+        "build_number": 20231025210228,
+        "version_string": "2023.10.25"
       }
     },
     {
@@ -258,15 +258,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.2.39"
+        "version_string": "0.2.42"
       }
     },
     {
       "data": {
-        "checksum": "6c9c19b295b58635ece35aff414fe5effba058ab1b79a0ddcf0a4050fcd07724",
-        "contents_checksum": "0070a20c6c7d70c1bd95122cc2433ca1d10d9d04b586ddf2bef062366ff1c553",
-        "size": 69713997,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-arm-20230811080439.tar.gz",
+        "checksum": "47cc151c673943cbfee58321453f85b32d673b3e453724fff31374a8605992b6",
+        "contents_checksum": "3ff8b9ef0510722872095c6d027b78f45dce430eadf07fc219b7f435c503dcf1",
+        "size": 70015524,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-arm-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -290,16 +290,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.2.39"
+        "build_number": 20231023224440,
+        "version_string": "0.2.42"
       }
     },
     {
       "data": {
-        "checksum": "1040e5510117e0759085bb099d661462b7ae8dfe48ec919a56e5261d127be25f",
-        "contents_checksum": "9be893eceb503735424483a74cf5fc9eb6f255975ceff37b9088129a2437a583",
-        "size": 53541169,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-x86-20200717144158.tar.gz",
+        "checksum": "e99a7d19c60cbab6f5ce8578133e1c30c545e89b6f768b457abd2d84722f9c4d",
+        "contents_checksum": "348b94e8d769713049f005663b17056668dc4e3429e682a6956dd7f624fccbbf",
+        "size": 72896092,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-x86-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -323,16 +323,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20200717144158,
-        "version_string": "0.2.4"
+        "build_number": 20231023224440,
+        "version_string": "0.2.42"
       }
     },
     {
       "data": {
-        "checksum": "68f89760d225e7d6ba00b8426008e9cec2c4e9f1148437f27030f4d5b963b350",
-        "contents_checksum": "034002c97e36fa79e64e8c6eeebb45c440a2949d1eca9c6e1e27fe1fd29bded0",
-        "size": 72519881,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-x86_64-20230811080439.tar.gz",
+        "checksum": "f9e5e6e59e910787542ed59cd7a31f27774e7795989457689bb974238ea58312",
+        "contents_checksum": "348b94e8d769713049f005663b17056668dc4e3429e682a6956dd7f624fccbbf",
+        "size": 72896095,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -356,16 +356,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.2.39"
+        "build_number": 20231023224440,
+        "version_string": "0.2.42"
       }
     },
     {
       "data": {
-        "checksum": "b9fe6d9d6fd57590029f97dd94317b778f2a8dfd397bf498d7ad819d85cba0d4",
-        "contents_checksum": "730ff23fe21ff5025226aeac4a0b9ee89fe812b4cffd42577aa3825edef47692",
-        "size": 66370717,
-        "source": "components/google-cloud-sdk-anthoscli-linux-arm-20230811080439.tar.gz",
+        "checksum": "768b260e7477339405cd191e43b5bcdc96150af0f309b58c24e48827237542be",
+        "contents_checksum": "d3d2363c63df31848603536b8af09769ce6bb8a0fefbeaefd0336b2362d0ef31",
+        "size": 67245549,
+        "source": "components/google-cloud-sdk-anthoscli-linux-arm-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -389,16 +389,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.2.39"
+        "build_number": 20231023224440,
+        "version_string": "0.2.42"
       }
     },
     {
       "data": {
-        "checksum": "212d4c7f6c479a9694b9d0b71f9b70abc099064361189c05820b9ed7a53e33ee",
-        "contents_checksum": "8af47e00a414f1497aecf06ed2857848beaf39b00f689b14ebaf331155f2f108",
-        "size": 67584318,
-        "source": "components/google-cloud-sdk-anthoscli-linux-x86-20230811080439.tar.gz",
+        "checksum": "390124c5fec46fb6800ca03dd9caf7f75259a6bc28d5841dcc972900cec9a9ba",
+        "contents_checksum": "bf1c54e0b66c498b1d086940dee6ddd11aaa7ed745c65d03cd98f10ef1c49e83",
+        "size": 65298977,
+        "source": "components/google-cloud-sdk-anthoscli-linux-x86-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -422,16 +422,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.2.39"
+        "build_number": 20231023224440,
+        "version_string": "0.2.42"
       }
     },
     {
       "data": {
-        "checksum": "6a11c8d6cb6499df68d4a941ed5b65465a48e854c41c4ec93151e1e503e52b19",
-        "contents_checksum": "fd772027ab6f5b8a6ef8c4e1490cd815a040c7bb1a4b5934daa2283b6c65326b",
-        "size": 71743762,
-        "source": "components/google-cloud-sdk-anthoscli-linux-x86_64-20230811080439.tar.gz",
+        "checksum": "091730628a45921ef9f34db8b9fbc9568007b0a2a771c60ca786fbc45728b884",
+        "contents_checksum": "b30074343ee0a19121bf1163fccf5223b9e6125e744c00eef5c20977bcd3320a",
+        "size": 71982294,
+        "source": "components/google-cloud-sdk-anthoscli-linux-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -455,16 +455,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.2.39"
+        "build_number": 20231023224440,
+        "version_string": "0.2.42"
       }
     },
     {
       "data": {
-        "checksum": "d5da2425be0789881adc1e73320668ef3fa76fa2cc7ea3d3eeccf6eec9bee886",
-        "contents_checksum": "9e1016c61c5da178fe941a9d2781bf4d885f848ec4d446e1549d91660003e27b",
-        "size": 69424923,
-        "source": "components/google-cloud-sdk-anthoscli-windows-x86-20230811080439.tar.gz",
+        "checksum": "d6f16a6a028d3247de10be2cd63d523b954c4f76347d6a5c88a301c4cd35ddcb",
+        "contents_checksum": "2ad1786533a5cee19cddf36074f51726748422801d4417cb3793baff40ca9b0d",
+        "size": 67251009,
+        "source": "components/google-cloud-sdk-anthoscli-windows-x86-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -488,16 +488,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.2.39"
+        "build_number": 20231023224440,
+        "version_string": "0.2.42"
       }
     },
     {
       "data": {
-        "checksum": "1c5fecef505498f91590cdf84d157e86dc268d3c5142661871b8a411235f64a9",
-        "contents_checksum": "f498e7bdcecc49f2ea9ad3b64a4ab5da1ac8440dd31a7a933cca6a9fd876f09a",
-        "size": 71860994,
-        "source": "components/google-cloud-sdk-anthoscli-windows-x86_64-20230811080439.tar.gz",
+        "checksum": "de36bc756712c520d88572641ccd4810acb6d9342b055291a517e32eda2d9e25",
+        "contents_checksum": "686ac57e568ce4ae5b4ad352c3cc32643762e48d8c6009dae47eebb0fff7ae0d",
+        "size": 72608049,
+        "source": "components/google-cloud-sdk-anthoscli-windows-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -521,8 +521,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.2.39"
+        "build_number": 20231023224440,
+        "version_string": "0.2.42"
       }
     },
     {
@@ -1020,10 +1020,10 @@
     },
     {
       "data": {
-        "checksum": "dfd70f98b0499ffb58073f49ffe1ed4cbf4cc7ce7ea84dd4725d24095f0a5612",
-        "contents_checksum": "41f8f2f2fd2d7e5669f40b929ee6ca67cd89c522eb52e7fd49c9894322346ad0",
-        "size": 68235380,
-        "source": "components/google-cloud-sdk-app-engine-java-20230822145232.tar.gz",
+        "checksum": "38175db1182e07654ddef6ff8794d3ddf0d830c180920392342ea4ceff027a58",
+        "contents_checksum": "2fb9f245011b3b51c4173522e015f899dd2d6a4bc54ea12bff941c9265aba2e5",
+        "size": 129915384,
+        "source": "components/google-cloud-sdk-app-engine-java-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1041,8 +1041,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230822145232,
-        "version_string": "2.0.17"
+        "build_number": 20231023224440,
+        "version_string": "2.0.21"
       }
     },
     {
@@ -1142,10 +1142,10 @@
     },
     {
       "data": {
-        "checksum": "3d9e4e52e403d93571280e57a7043d06a1d6bdf2d148b4680939698e2a061f57",
-        "contents_checksum": "82f8dec8fd96c0faa5f0714b22c967bfe0e6fa461a8ccd4933cbd92e0b881925",
-        "size": 8902100,
-        "source": "components/google-cloud-sdk-app-engine-python-20230626165516.tar.gz",
+        "checksum": "07c19454806ac60603f18bc9e7eeb56ae6eba1477e25a91fd95682c4011c6207",
+        "contents_checksum": "71ff9043af9fa982b8dbbc1f8f122d9f981cb5fe168356f4a7f13bf58ae23e25",
+        "size": 8748068,
+        "source": "components/google-cloud-sdk-app-engine-python-20231016163610.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1164,16 +1164,16 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230626165516,
-        "version_string": "1.9.105"
+        "build_number": 20231016163610,
+        "version_string": "1.9.107"
       }
     },
     {
       "data": {
-        "checksum": "271b756ecef2be78c223e7ed34237d2db6f1449d5946cfccf500db58c0e1d0de",
-        "contents_checksum": "afd7dbfe3c0505517cbf411b41a3fa257af853216fa25df8d2105383e6d819bd",
-        "size": 28667619,
-        "source": "components/google-cloud-sdk-app-engine-python-extras-20230626165516.tar.gz",
+        "checksum": "44a183b079e30fc932dbd7ca5b497baa6fa7d080ad78c500da99de6ef9e1a132",
+        "contents_checksum": "49a80207105a59c3948dd43fda0e28a6f9621265df127c7a3aa9707862ab7bfe",
+        "size": 33004574,
+        "source": "components/google-cloud-sdk-app-engine-python-extras-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1191,8 +1191,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230626165516,
-        "version_string": "1.9.101"
+        "build_number": 20231002150006,
+        "version_string": "1.9.102"
       }
     },
     {
@@ -1432,7 +1432,7 @@
         "checksum": "707d412854a14450b4fddee199d258e75946fe51b44eb2980c8cd7e274c15760",
         "contents_checksum": "0b4e9d8e6394dc841aece07ca4da91920a460cbd7ec22495be4a2b4f46635b4d",
         "size": 797,
-        "source": "components/google-cloud-sdk-beta-20230913232318.tar.gz",
+        "source": "components/google-cloud-sdk-beta-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1449,8 +1449,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2023.09.13"
+        "build_number": 20231025210228,
+        "version_string": "2023.10.25"
       }
     },
     {
@@ -1493,10 +1493,10 @@
     },
     {
       "data": {
-        "checksum": "a35e41c8aee406c280389cbe6a550556f6c1a0421ab9bcb2c894c29bb9d65787",
-        "contents_checksum": "930007d6d8032253a89e675cb0aeda7a6fbc46222134db70e41807c1c30528a4",
-        "size": 7015509,
-        "source": "components/google-cloud-sdk-bigtable-darwin-arm-20230714124024.tar.gz",
+        "checksum": "5af8d24eb8da1c8229c414e9950bcdc453a9e316742541eefe830afaca8a158e",
+        "contents_checksum": "e08ae70a70d4da56bae3d13b09b898b865557461f01e7690fd25f82b91890910",
+        "size": 7097728,
+        "source": "components/google-cloud-sdk-bigtable-darwin-arm-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1521,7 +1521,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
+        "build_number": 20231006153333,
         "version_string": ""
       }
     },
@@ -1561,10 +1561,10 @@
     },
     {
       "data": {
-        "checksum": "1e977db8d695c41a268eac0f3c92f3c937fe79ae6f6dd3a886b9a2890b7d099f",
-        "contents_checksum": "83072bb22bfb489885e8e4cab0a26d45e697c2325a3359edc83a24f92559476a",
-        "size": 7252387,
-        "source": "components/google-cloud-sdk-bigtable-darwin-x86_64-20230714124024.tar.gz",
+        "checksum": "aa2d0f3e322a7912fac2b012fc1c368eaa129905372b82560488ec9b803494d5",
+        "contents_checksum": "7c84152ea5f2da5f06f9b55b035534d9bd2270c9959ae162c3cb5f8d392d6801",
+        "size": 7333846,
+        "source": "components/google-cloud-sdk-bigtable-darwin-x86_64-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1589,16 +1589,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
+        "build_number": 20231006153333,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "1ee3905b685a1ac4a901bf4169b6ce4588cdd4f39022d886ffaf510e385b565f",
-        "contents_checksum": "622d316c1310f17ae17c9baeeb348ae42d879e043079a0560c5d052c2ee05e61",
-        "size": 6884139,
-        "source": "components/google-cloud-sdk-bigtable-linux-arm-20230714124024.tar.gz",
+        "checksum": "52ea181edb2b8b69fa3ebea25467238facc828dc79d1b22c2aafb79385e0f4e6",
+        "contents_checksum": "0dc475dc09c285508b6ba21ab40ebabf9151a9e5ecaf05a3754b3283a00df42a",
+        "size": 7011804,
+        "source": "components/google-cloud-sdk-bigtable-linux-arm-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1623,16 +1623,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
+        "build_number": 20231006153333,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "0584548d7dfd42ed0741189a6401b152ec45477c3ad115030cfa686080007dab",
-        "contents_checksum": "b72692c84a64003e44640526b14922cdc3921e0dee7c61ac177af3a089b59fb8",
-        "size": 7284298,
-        "source": "components/google-cloud-sdk-bigtable-linux-x86-20230714124024.tar.gz",
+        "checksum": "972efb72c12e9fb15777d2f0b0ee49d34793bd088147eda1599826b261c54f8d",
+        "contents_checksum": "ea6f11df05804197e9a0f3ad1d52db162b23769aab97b2913248dc42044e2803",
+        "size": 7255397,
+        "source": "components/google-cloud-sdk-bigtable-linux-x86-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1657,16 +1657,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
+        "build_number": 20231006153333,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "fe8a4153e422519d566434baf63f8848392b18e37e8ea316a9c39eb0b1dcc275",
-        "contents_checksum": "b95feb3f3aeb74bf87912351a8f9f87226310b62a3696dc5254a3a9c7f160203",
-        "size": 7371483,
-        "source": "components/google-cloud-sdk-bigtable-linux-x86_64-20230714124024.tar.gz",
+        "checksum": "e62748c75c268a9648b26920838b281e50511b7f430dff0eca124f3f5763699e",
+        "contents_checksum": "19b5048d20242fc730b4544fe0b5ac800c30b02059efb4b26588eb31d1fc482a",
+        "size": 7454541,
+        "source": "components/google-cloud-sdk-bigtable-linux-x86_64-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1691,16 +1691,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
+        "build_number": 20231006153333,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "71167c3a50569dd3ec38c30e2cb710447516e9629d423c8ce8dba94e73e04fdc",
-        "contents_checksum": "f8c0020a128341d38a1f396d29d8d7a9c9b0d82377a46f44762e5147f00e9ba3",
-        "size": 7311053,
-        "source": "components/google-cloud-sdk-bigtable-windows-x86-20230714124024.tar.gz",
+        "checksum": "e031eb7a2735c0bd2db4d82d8da081a264cbaddc58ed9b84e2b1564994e54643",
+        "contents_checksum": "7751a9071bb5830f7f3f9dc9a229a268405a1ba76d5bdd19483a8c66089c72eb",
+        "size": 7288454,
+        "source": "components/google-cloud-sdk-bigtable-windows-x86-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1725,16 +1725,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
+        "build_number": 20231006153333,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "2fa8a1b4ec904525688d25913ad62422d819259cd45a58dc65721d51b1e64641",
-        "contents_checksum": "f9f218a7c20fb4c451bedfbed361293d026fa79f012895d63d22ae05f1cf20f8",
-        "size": 7334819,
-        "source": "components/google-cloud-sdk-bigtable-windows-x86_64-20230714124024.tar.gz",
+        "checksum": "1f24acd6a6c63ed1c283e7b7bfbda31bc08a86b1241e5ad4f08858df7678d669",
+        "contents_checksum": "f640127893c4339c4f04791834143af3fe3931ac91877dd73dcb4ee3cecf6d01",
+        "size": 7451653,
+        "source": "components/google-cloud-sdk-bigtable-windows-x86_64-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1759,7 +1759,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
+        "build_number": 20231006153333,
         "version_string": ""
       }
     },
@@ -1793,10 +1793,10 @@
     },
     {
       "data": {
-        "checksum": "69c23ad5967f796b8b568220dcef351f125989cf28635425ed454729d6e5ec45",
-        "contents_checksum": "6fe6634311749c1081100758f5506aa479afbe28db0989da99a122d577f76080",
-        "size": 1947,
-        "source": "components/google-cloud-sdk-bq-nix-20230913232318.tar.gz",
+        "checksum": "b6a10d752554fb9cf518d697999f49806d1009455c78cc3c6fc67f6d97edf1b9",
+        "contents_checksum": "da65662d83df53b15ff35bdedace8671669280b875620876181ac0e9665cbc04",
+        "size": 2019,
+        "source": "components/google-cloud-sdk-bq-nix-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1821,7 +1821,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
+        "build_number": 20231025210228,
         "version_string": "2.0.98"
       }
     },
@@ -1991,7 +1991,7 @@
         "core"
       ],
       "details": {
-        "description": "Provides stand-alone Python 3.9.16 installation for UNIX.",
+        "description": "Provides stand-alone Python 3.9.17 installation for UNIX.",
         "display_name": "Bundled Python 3.9"
       },
       "id": "bundled-python3-unix",
@@ -2009,15 +2009,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "3.9.16"
+        "version_string": "3.9.17"
       }
     },
     {
       "data": {
-        "checksum": "103f22feccd078b1f2ce97032347567f60292fd6c2908bd03b50fc87604ceec4",
-        "contents_checksum": "d180face4e75defdab3f52ee344af5dc842b09df39680f43d558a5670ca770db",
-        "size": 66719069,
-        "source": "components/google-cloud-sdk-bundled-python3-unix-linux-x86_64-20230707144938.tar.gz",
+        "checksum": "ad591cffcb3cb00ea73e1e8fa13d76d4ebeded14bb7d4d54f4dbd90cff79911c",
+        "contents_checksum": "d2c4025b7acd5008a935cbd1a71c399d28cb5723065576b1b31f917f10bb0479",
+        "size": 65481810,
+        "source": "components/google-cloud-sdk-bundled-python3-unix-linux-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2025,7 +2025,7 @@
         "core"
       ],
       "details": {
-        "description": "Provides stand-alone Python 3.9.16 installation for UNIX.",
+        "description": "Provides stand-alone Python 3.9.17 installation for UNIX.",
         "display_name": "Bundled Python 3.9"
       },
       "id": "bundled-python3-unix-linux-x86_64",
@@ -2042,16 +2042,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230707144938,
-        "version_string": "3.9.16"
+        "build_number": 20231023224440,
+        "version_string": "3.9.17"
       }
     },
     {
       "data": {
-        "checksum": "b3395d1c218922c972ec46eb1477f47222dc005f006fc796a4ac4cca5dabce04",
-        "contents_checksum": "252af0b48981ddc06abc1f34c7eb0e51a29ef6ef33dd31a27024bdf8aa4f8a53",
-        "size": 8899825,
-        "source": "components/google-cloud-sdk-bundled-python3-windows-x86-20230626165516.tar.gz",
+        "checksum": "f893470fa6f4cabc0bbbd73275b563b9c97682fd199514440c9027b6c5b94b54",
+        "contents_checksum": "c486cae0284bb1138814cf54bb930441fd39d9ff791366a564d27d6bfac7a789",
+        "size": 20778243,
+        "source": "components/google-cloud-sdk-bundled-python3-windows-x86-20231016163610.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2076,16 +2076,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230626165516,
+        "build_number": 20231016163610,
         "version_string": "3.9.12"
       }
     },
     {
       "data": {
-        "checksum": "2250c30f2799db96a3240e89280150940884e759d05e38b7a9b72a176234d8aa",
-        "contents_checksum": "4ad346402c3961f786283f93934305fdd98103ffc75207e6c51c0541850b200c",
-        "size": 22689398,
-        "source": "components/google-cloud-sdk-bundled-python3-windows-x86_64-20230626165516.tar.gz",
+        "checksum": "cabdb1da4996629632a90399276a75058e46be4a6b92019960c4bdb62efcc4ea",
+        "contents_checksum": "3bb2ec678153e5bd214be0439970173d86729baaa33f06176bd2ec8435d4304d",
+        "size": 22193214,
+        "source": "components/google-cloud-sdk-bundled-python3-windows-x86_64-20231016163610.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2110,7 +2110,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230626165516,
+        "build_number": 20231016163610,
         "version_string": "3.9.12"
       }
     },
@@ -2148,15 +2148,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.16.1"
+        "version_string": "0.16.2"
       }
     },
     {
       "data": {
-        "checksum": "d268c4c11ded5035be03a674ac738507254a304794c5df84065c1104f0463b6b",
-        "contents_checksum": "4358f15359a475b615261666791f922a16f27d1ffe6a93b6ac810bcf84c7d59f",
-        "size": 11367560,
-        "source": "components/google-cloud-sdk-cbt-darwin-arm-20230714124024.tar.gz",
+        "checksum": "4cec674242be0d7a3de6d830325ef93d0b554eeab10431eaf0706199434d937c",
+        "contents_checksum": "c08a0d1bafbfc51f2aac4555268f1e1dba13f8222454ee8315a7855a114c7216",
+        "size": 16254518,
+        "source": "components/google-cloud-sdk-cbt-darwin-arm-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2180,8 +2180,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
-        "version_string": "0.16.1"
+        "build_number": 20231006153333,
+        "version_string": "0.16.2"
       }
     },
     {
@@ -2219,10 +2219,10 @@
     },
     {
       "data": {
-        "checksum": "6d621cb6bd199b0ba0541ab25bf5e8f53107ed45390fde2e77e807ae8f907aa6",
-        "contents_checksum": "7f706cdbe7438a25f69934ef7cd36f37bc86c83d3c6a99d554d9c48ba51a232a",
-        "size": 11758658,
-        "source": "components/google-cloud-sdk-cbt-darwin-x86_64-20230714124024.tar.gz",
+        "checksum": "cab9647842e2c6702f739bcf7f4a390098a245f58798035914d47b2e023f5003",
+        "contents_checksum": "5437ed3b7499b97a8dc71d81f1446b429ca635676fdaada94e5089d181f851f1",
+        "size": 16717237,
+        "source": "components/google-cloud-sdk-cbt-darwin-x86_64-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2246,16 +2246,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
-        "version_string": "0.16.1"
+        "build_number": 20231006153333,
+        "version_string": "0.16.2"
       }
     },
     {
       "data": {
-        "checksum": "fb83da9e71c0fff61e6cc794c8a789a3f7625778f50c6fbcdf67a708138e51fe",
-        "contents_checksum": "f28fe3a5e01caf380632750786b8cf8e22f7018ee08f17ecbf3001b8bf9ecb32",
-        "size": 11136132,
-        "source": "components/google-cloud-sdk-cbt-linux-arm-20230714124024.tar.gz",
+        "checksum": "50481ebc4a0a82e068b9d11e8af938c81dceae23f39a5d7eff888c5d9d29d379",
+        "contents_checksum": "f1a58b3ed33e5728def81f61e7e28b46239f0a2a0201fc9685d808d11df38f3b",
+        "size": 15863768,
+        "source": "components/google-cloud-sdk-cbt-linux-arm-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2279,16 +2279,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
-        "version_string": "0.16.1"
+        "build_number": 20231006153333,
+        "version_string": "0.16.2"
       }
     },
     {
       "data": {
-        "checksum": "7cce7bb82ed260234db4db703bd6a4bd5ace166a50f63a33999aa42394bec424",
-        "contents_checksum": "e8973fa448bb02a25f135bf0cbcedf158450271d6a68cff36f7ebbcff460404a",
-        "size": 11659751,
-        "source": "components/google-cloud-sdk-cbt-linux-x86-20230714124024.tar.gz",
+        "checksum": "5a5539eab4133fade3206d5f7b546e8d51a5af18c0ac3f0b6ada98249847fa1e",
+        "contents_checksum": "961c6d25d74bae5b5c00b4e0d48393702c529ac0b1de2b85056f07d63933eb8d",
+        "size": 16051931,
+        "source": "components/google-cloud-sdk-cbt-linux-x86-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2312,16 +2312,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
-        "version_string": "0.16.1"
+        "build_number": 20231006153333,
+        "version_string": "0.16.2"
       }
     },
     {
       "data": {
-        "checksum": "d4f4cb28f6b8330601fe3e09436e79582b631a042999c5589f322aa2d8af48e7",
-        "contents_checksum": "e61bd51a58b99e8cd27f572cc4dada4a30b02e8386678b617e44817cc40356c2",
-        "size": 11949090,
-        "source": "components/google-cloud-sdk-cbt-linux-x86_64-20230714124024.tar.gz",
+        "checksum": "74d5a97a01d246acda0897004a5ece95f9c9ced8aa3c89f0e8cf742edd4284b3",
+        "contents_checksum": "5fdf279f55e77702b62280f58d19f5eb0adcd5d81e20f76cc7759de07a224ca3",
+        "size": 16868331,
+        "source": "components/google-cloud-sdk-cbt-linux-x86_64-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2345,16 +2345,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
-        "version_string": "0.16.1"
+        "build_number": 20231006153333,
+        "version_string": "0.16.2"
       }
     },
     {
       "data": {
-        "checksum": "b842d826582178802d5fd6554790595c90b7827c772b7dfe7947b72e0d89f65d",
-        "contents_checksum": "0c6eb856b972e3fd8cc754428b77e1164f11ba8d019c8cf872e965102781b83e",
-        "size": 11755662,
-        "source": "components/google-cloud-sdk-cbt-windows-x86-20230714124024.tar.gz",
+        "checksum": "97b355f30dd40324f7724eb8a1e269d857316796a6d42fdcf3805fce9cefa402",
+        "contents_checksum": "e824180249e02e5d9c8805faa2cbbc1a237bac7fe53925d6290943234e42cf8c",
+        "size": 16305542,
+        "source": "components/google-cloud-sdk-cbt-windows-x86-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2378,16 +2378,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
-        "version_string": "0.16.1"
+        "build_number": 20231006153333,
+        "version_string": "0.16.2"
       }
     },
     {
       "data": {
-        "checksum": "469d6731b46bc01777e69fa2c9522dcf5b125061d2ef69d0e5b1bfcf72caf004",
-        "contents_checksum": "bac89e5c038c0042aa598bd6f51147eada4a060da268d45d4af92a5bfc6239d2",
-        "size": 11919012,
-        "source": "components/google-cloud-sdk-cbt-windows-x86_64-20230714124024.tar.gz",
+        "checksum": "fc7d710003577bf740e4d8dd5f6ad3929620a7f088c1de321a41ff229acb6084",
+        "contents_checksum": "038673c9ff153e08f9e4cb6af1c7963483796d3f6654e746cb5bf414ff4a63ee",
+        "size": 16944208,
+        "source": "components/google-cloud-sdk-cbt-windows-x86_64-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2411,8 +2411,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
-        "version_string": "0.16.1"
+        "build_number": 20231006153333,
+        "version_string": "0.16.2"
       }
     },
     {
@@ -2572,10 +2572,10 @@
     },
     {
       "data": {
-        "checksum": "06725fd7f6569432e58535d7afb888a823371001d3c91ebad8faf84bdefa817b",
-        "contents_checksum": "52b85660ea488891fa720a8caf8e8695b8231aca89e6a45f3b3676667396cc35",
-        "size": 44545576,
-        "source": "components/google-cloud-sdk-cloud-firestore-emulator-20230616150314.tar.gz",
+        "checksum": "1822e13b021d42edf1ee3d648b00be30960a57d3c74de708a14dd9758bb8f466",
+        "contents_checksum": "16cc1f413795a2197704184256179a5c65eb11b66d8af59f209bfbda798df11b",
+        "size": 44883913,
+        "source": "components/google-cloud-sdk-cloud-firestore-emulator-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2592,8 +2592,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230616150314,
-        "version_string": "1.18.1"
+        "build_number": 20230915145114,
+        "version_string": "1.18.2"
       }
     },
     {
@@ -2626,15 +2626,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.4.0"
+        "version_string": "0.5.0"
       }
     },
     {
       "data": {
-        "checksum": "d41b5b96ea7690595813a23194af46ebcea7e66a65c09636d05df5b709b9ba19",
-        "contents_checksum": "d7c74ad1c5e11488a3d817d70a8b05f7bf9926dfe9aabedc8e1d1f4ff7d2998a",
-        "size": 11997608,
-        "source": "components/google-cloud-sdk-cloud-run-proxy-darwin-arm-20230526134617.tar.gz",
+        "checksum": "3902d4e218ff13cc8d598d58df4cb6bd3492a94d25f6e9a4b982f41f029b0bbc",
+        "contents_checksum": "adc46a36ff0d63f4211d4640e4b25ef1685ed100b12a2780ea4e8ce88441a4a2",
+        "size": 11892176,
+        "source": "components/google-cloud-sdk-cloud-run-proxy-darwin-arm-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2658,16 +2658,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230526134617,
-        "version_string": "0.4.0"
+        "build_number": 20231002150006,
+        "version_string": "0.5.0"
       }
     },
     {
       "data": {
-        "checksum": "4611d4c7c977729ed6a6e1d0ec913e49dc10413276df20a20262036e0dc779e4",
-        "contents_checksum": "4194b5f06c95f2ff081b17781456edf92408970e8d053a1c4853c1fa5f9a0750",
-        "size": 12354577,
-        "source": "components/google-cloud-sdk-cloud-run-proxy-darwin-x86_64-20230526134617.tar.gz",
+        "checksum": "ffe39e2e14e5e02607af5d2dc4522f49db3ee93bc37d237aac26621f3ce81080",
+        "contents_checksum": "2f749a0c99c92b3941dc02d2dfde512c49e0d7c219fdc43d1942332266abad36",
+        "size": 12269065,
+        "source": "components/google-cloud-sdk-cloud-run-proxy-darwin-x86_64-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2691,16 +2691,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230526134617,
-        "version_string": "0.4.0"
+        "build_number": 20231002150006,
+        "version_string": "0.5.0"
       }
     },
     {
       "data": {
-        "checksum": "f66232a39ff89c2e3a61214588392dc5834da54320d3d0d284a85291aeb451b2",
-        "contents_checksum": "e9fb09a47f31dfc8023fe6f92b7574851104822808cdf77315662abef24024c0",
-        "size": 11871678,
-        "source": "components/google-cloud-sdk-cloud-run-proxy-linux-arm-20230526134617.tar.gz",
+        "checksum": "1eb797baa16aa3b984f671e1e806aae3379aaf58ac12aeb2f6e9567164525c83",
+        "contents_checksum": "0a691b80220517b2e5a4ae4501dcff1bebcdedb5903d18ca593774b72c5ed928",
+        "size": 11807002,
+        "source": "components/google-cloud-sdk-cloud-run-proxy-linux-arm-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2724,16 +2724,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230526134617,
-        "version_string": "0.4.0"
+        "build_number": 20231002150006,
+        "version_string": "0.5.0"
       }
     },
     {
       "data": {
-        "checksum": "ed57d6387c29c0fdb0d66346a50715625e8a44d6dd7ccebbfe649d108e0eafe9",
-        "contents_checksum": "d3c6097c6d4db5505daebeb2b77290468670305be01300d3f7161a8728235d94",
-        "size": 14022178,
-        "source": "components/google-cloud-sdk-cloud-run-proxy-linux-x86_64-20230526134617.tar.gz",
+        "checksum": "771d5923d4f99d6c4534b59b7981b0fad1cbeb1d6d1d86d0fcf4903f2fd6ef1f",
+        "contents_checksum": "7dcff6a313740b3148e3b1c7940f913ed6037d03ec8e7b595f184b92e87a8840",
+        "size": 13963201,
+        "source": "components/google-cloud-sdk-cloud-run-proxy-linux-x86_64-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2757,16 +2757,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230526134617,
-        "version_string": "0.4.0"
+        "build_number": 20231002150006,
+        "version_string": "0.5.0"
       }
     },
     {
       "data": {
-        "checksum": "b929e9ee1748ed6cdc03158c1fe50376e7b965b36c0b954ff3950f7f169a4868",
-        "contents_checksum": "db29c260ff7bc1db902eb8821451a20f2df2efdf52b5476c14d415faad19c481",
-        "size": 12550598,
-        "source": "components/google-cloud-sdk-cloud-run-proxy-windows-x86_64-20230526134617.tar.gz",
+        "checksum": "26af0634948d3d45dec133ce4fe28182e7598253488f09f147cf6429b0b3080d",
+        "contents_checksum": "46561d11fbfa6ee88fd2ffdca1823c77ab526c47e94661f35da48f0abc4bb372",
+        "size": 12475234,
+        "source": "components/google-cloud-sdk-cloud-run-proxy-windows-x86_64-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2790,8 +2790,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230526134617,
-        "version_string": "0.4.0"
+        "build_number": 20231002150006,
+        "version_string": "0.5.0"
       }
     },
     {
@@ -2818,15 +2818,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.5.9"
+        "version_string": "1.5.10"
       }
     },
     {
       "data": {
-        "checksum": "d6cb352fe5f3c1651fefa7116f337f8d83576b4525a6fc8971d4799195cad644",
-        "contents_checksum": "c3a2aaac42475c78d6ee9b133e0b54f735d84f2e2d425c4b6042cddbd9130e43",
-        "size": 33058208,
-        "source": "components/google-cloud-sdk-cloud-spanner-emulator-linux-x86_64-20230901141909.tar.gz",
+        "checksum": "7460e9a21137063a8f9f8143f6da86d39d3fde425a956240b695924d45bf3e2f",
+        "contents_checksum": "3617a6b7497fc5cc13cb5764e374816940474072d2db432342c1bf0f6844f1c5",
+        "size": 36939704,
+        "source": "components/google-cloud-sdk-cloud-spanner-emulator-linux-x86_64-20230922151743.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2851,8 +2851,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.5.9"
+        "build_number": 20230922151743,
+        "version_string": "1.5.10"
       }
     },
     {
@@ -3322,10 +3322,10 @@
     },
     {
       "data": {
-        "checksum": "71affe00c517b7244f99d8ebb40b7fc201a5de8a715e5d0ae46b1314af5659e0",
-        "contents_checksum": "303f5283b0d634c44a293619f08d35aae3aa4c5443dc999c20131b38ec49d813",
-        "size": 22776383,
-        "source": "components/google-cloud-sdk-core-20230913232318.tar.gz",
+        "checksum": "8197db59e523d340b2da73594807ac5a2c0a09d2899fa5adb71cc6dbdb64c63e",
+        "contents_checksum": "a788f4961a718e4bc4717a5149874353b83ba4ad01f6587725d48bc2e689a07d",
+        "size": 23032301,
+        "source": "components/google-cloud-sdk-core-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3346,16 +3346,16 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2023.09.13"
+        "build_number": 20231025210228,
+        "version_string": "2023.10.25"
       }
     },
     {
       "data": {
-        "checksum": "47b8211d132463492d38a8010faf5d076208e6b3e2d98128da277858bbe60f70",
-        "contents_checksum": "3650bc34c52406df038cd0b4833d3f0f331a28be5d3f6a5d525f107f27e0e511",
-        "size": 2324,
-        "source": "components/google-cloud-sdk-core-nix-20230913232318.tar.gz",
+        "checksum": "0d68f826ada61d2ab98721bbab6c94132a1c210080fdd85c750073e009ae6d39",
+        "contents_checksum": "3e23fcf9fd07d22bf46bca03f951e715a328cb8420e09f34ce2e7f5ef401b982",
+        "size": 2402,
+        "source": "components/google-cloud-sdk-core-nix-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3382,16 +3382,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2023.09.13"
+        "build_number": 20231025210228,
+        "version_string": "2023.10.25"
       }
     },
     {
       "data": {
-        "checksum": "dad57f6cae8735bb195e3fa6b5163e7ff6a23a0da9d15f134ad1da5bce577956",
-        "contents_checksum": "4cf8b253ef5723f93895cd9241a7e4e6c31f9973f387f512c7ff94f9435d9be6",
-        "size": 3199,
-        "source": "components/google-cloud-sdk-core-win-20230106151201.tar.gz",
+        "checksum": "0af3f8e9ba07b24f3821758107b18d273edf7fa7703ff4d659b9732e84a73a37",
+        "contents_checksum": "2ac264344fcf75702a4770bfcba3e6f47573351303cbba558bcde7f8c32cc731",
+        "size": 3200,
+        "source": "components/google-cloud-sdk-core-win-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3415,8 +3415,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230106151201,
-        "version_string": "2023.01.06"
+        "build_number": 20230915145114,
+        "version_string": "2023.09.15"
       }
     },
     {
@@ -3907,10 +3907,10 @@
     },
     {
       "data": {
-        "checksum": "467d9055543574a29dc6ec29a04ee451fa29bb16c4ff05e5f52d109a2e95a2eb",
-        "contents_checksum": "1bc60befc4644930ef06ab113ecdfe5bf1a5bc8c3f2f0060d75bb7a7fa2fc8e2",
-        "size": 1243682,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-darwin-arm-20230901141909.tar.gz",
+        "checksum": "535ce4686c07b3bac76f7b107828d4059bf598c92aefac1ebb55d911d90cbc4c",
+        "contents_checksum": "e3b7aacbdc4d8a5adbf88bee4ac738d9e51755b994a700135dbfd8a758a054c2",
+        "size": 1243996,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-darwin-arm-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3934,16 +3934,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
+        "build_number": 20231023224440,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "488d6cad8a6afef06fd65fa0a215106d1f85e5ee45ceaf42425ddf2c2a1edad6",
-        "contents_checksum": "243e3cc4226e27d6d33e78b2a8e3df269a203286394a253e6eb23e4c6ae68632",
-        "size": 1284679,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-darwin-x86_64-20230901141909.tar.gz",
+        "checksum": "00972aba9c56aa0bc4916798ab672cc1e6806e76b00783e15b5c5bbc4e804900",
+        "contents_checksum": "2db99100afdae388afbf96ba0440977d1ab0e9b1fdaa997fac07c5d2c9d6040e",
+        "size": 1284906,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-darwin-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3967,16 +3967,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
+        "build_number": 20231023224440,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "9f1ad3673a407be0318a52fe3fd95e08687e00396afb0415f1f66e37ae5e6572",
-        "contents_checksum": "f413af6acb2eef1ac3cd0283bc0ad19bcb4de3032e3d28b768c3be4c09ca10ac",
-        "size": 1215760,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-arm-20230901141909.tar.gz",
+        "checksum": "d978d88831992d75a8d1c506c661e3caa702b65acb13bb881f7d2847360836ab",
+        "contents_checksum": "bc5cd52ce1950d6ac8b24d8f8a00c4bbf7f6af82a908fbe2be630b75ecfc35da",
+        "size": 1217581,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-arm-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4000,16 +4000,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
+        "build_number": 20231023224440,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "0e59d495794bc4f74f35b4fb0b80bc875285a2a087657cc3bc5d9d402002c170",
-        "contents_checksum": "60fa0ec3c67be6e5ca3a67abf1f1b165b05cad17687324828a5c83aa472075f1",
-        "size": 1236402,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-x86-20230901141909.tar.gz",
+        "checksum": "5abf460069b1f95004805a1f3469061dc340dda0a44fe89fa969e9693cfdd1c1",
+        "contents_checksum": "6a50901818b7cd1a27b2229b350f1869edea9c6aa3bf62a526679b81e967e5f0",
+        "size": 1236281,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-x86-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4033,16 +4033,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
+        "build_number": 20231023224440,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "245d6045703306380b8600cb8f4af83a66274446d63797a4e57e6b467170e5a3",
-        "contents_checksum": "44e519f2189745eb9a9268361b2cdae8533333a291a5372c44d1eedbc6ee6744",
-        "size": 1288915,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-x86_64-20230901141909.tar.gz",
+        "checksum": "ec15e4bb7d1a361ae7d931c79626b7a27ded310f118208b5b80e6d54b4f7c793",
+        "contents_checksum": "3d6e552b35cbf9a7cb8e34026d14de0422241344032487ff418514503c133ad4",
+        "size": 1289207,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4066,16 +4066,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
+        "build_number": 20231023224440,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "07949bd0e346aafe389fa1825f54c0a0d9c8d3371a7ef33d33123837988c6118",
-        "contents_checksum": "6f8d198fc502a73b5b4b36b7dbc826611521d8b223d0cfe5ef568348e1007b10",
-        "size": 1267859,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-windows-x86-20230901141909.tar.gz",
+        "checksum": "98febf85b26c1a33eb215b2af9f3c8bee847ee71c84be463b26b6d0a763f6400",
+        "contents_checksum": "2e7b929903bc28273be12f0c28dbd68c51315a66600c9751e749ff448d89696f",
+        "size": 1268435,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-windows-x86-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4099,16 +4099,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
+        "build_number": 20231023224440,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "ccf7c11ef2aea6aa0009fcad2db2e1a8dd81c61b54f3f3ea5059ee9e59f9f3ce",
-        "contents_checksum": "438a33dacd54f38ff6ed00ca7ab7f2c8af26d496ca1709ae54d6b1e51a717a6c",
-        "size": 1321565,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-windows-x86_64-20230901141909.tar.gz",
+        "checksum": "a5ed8bb33c67304f57f1ab4c1922f0396565e868dd938b49ce9434a87992a5b8",
+        "contents_checksum": "0c794abb07a045e2c0110bbda9e4033410bb8b7a3d9ddcd329777626ab36d2b3",
+        "size": 1322057,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-windows-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4132,16 +4132,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
+        "build_number": 20231023224440,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "8062e6600adb95bbb4e40b2862932ac981f396974c09b42ef77b3a6fc9bbf5db",
-        "contents_checksum": "b783ea64726b9b2746d89ff89bfaf098dc3cf272d3b0b6687444f2c3e7a839cf",
-        "size": 11660857,
-        "source": "components/google-cloud-sdk-gcloud-deps-20230707144938.tar.gz",
+        "checksum": "e6ff194b0ebb57cfca1c65a600e852bd5760a7257afb6240a0ed470ff0965fe0",
+        "contents_checksum": "25b6e403e06e65b9205d1258a1b9e09e5e84efb20007e5f940b90af41e3e7873",
+        "size": 12282466,
+        "source": "components/google-cloud-sdk-gcloud-deps-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4164,8 +4164,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230707144938,
-        "version_string": "2023.07.07"
+        "build_number": 20231025210228,
+        "version_string": "2023.10.25"
       }
     },
     {
@@ -4401,10 +4401,10 @@
     },
     {
       "data": {
-        "checksum": "62257719f22fc6cf2073c5c2f69ca701619b7e42fc5f4fa057fefc0ccc5c931a",
-        "contents_checksum": "37f0e75619d403d1513402f1269bb53dacd8a730fa603372b4a08f27d1645708",
-        "size": 6345856,
-        "source": "components/google-cloud-sdk-gcloud-man-pages-nix-20230913232318.tar.gz",
+        "checksum": "a437611fe8ca14e5fbeada917374b7cd2f7d56ad2212e51b80fcb9e7b036a21a",
+        "contents_checksum": "4272d2b5be6e3778aaddfdd6a9d555b6dcf31d27428ed7d4aea76e68dfe5f839",
+        "size": 6464999,
+        "source": "components/google-cloud-sdk-gcloud-man-pages-nix-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4429,7 +4429,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
+        "build_number": 20231023224440,
         "version_string": ""
       }
     },
@@ -4466,15 +4466,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.5.5"
+        "version_string": "0.5.6"
       }
     },
     {
       "data": {
-        "checksum": "bab3f0cd545b31abac6261077954bd5905a7cf259a818840996018bd6c0d11ec",
-        "contents_checksum": "fc81a044e880eaf9fead02231085f63bc972e8a69e3460f89a43a6413199cf01",
-        "size": 7725934,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-darwin-arm-20230811080439.tar.gz",
+        "checksum": "748941d0f1088368cddbff04350c1156eb6c0b941fb4a8281f90e715de91600c",
+        "contents_checksum": "2e92b76de260589610789902d43950f9c23035d9492e9acde1ab81c2ce1b6f86",
+        "size": 7760852,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-darwin-arm-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4498,16 +4498,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.5.5"
+        "build_number": 20230915145114,
+        "version_string": "0.5.6"
       }
     },
     {
       "data": {
-        "checksum": "bfd1096a5cde8dbc2d0855a0ec9d43aad78435bb8a0848508a15b27f822bcb73",
-        "contents_checksum": "c61ada98109ac205f0f8df472f6c9600e5f04c79966dcd18faa032beecf0f581",
-        "size": 8102248,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-darwin-x86_64-20230811080439.tar.gz",
+        "checksum": "87e8b9fa1ab657e6f9059b3e73987cdbcafcd0a54a7c0695933a1a630e8c40b6",
+        "contents_checksum": "e93346a6bed20405a41737b6894e5555fe6e65ff84e0c4dfef1c1ca8fbc8759a",
+        "size": 8135789,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-darwin-x86_64-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4531,16 +4531,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.5.5"
+        "build_number": 20230915145114,
+        "version_string": "0.5.6"
       }
     },
     {
       "data": {
-        "checksum": "bcba2a7122f04b5c13310423ac01004f022f120ca41c26ae1bea631b5a1c0ddb",
-        "contents_checksum": "99ee9b34f0272446d3f43daeea0e6bb456df4a0f853d45797ae2283bb1be904f",
-        "size": 7637527,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-arm-20230811080439.tar.gz",
+        "checksum": "ba39fbdeae5f44a54a83a730d8df93a0b9ce7e18369dabe6f87b023b06b27632",
+        "contents_checksum": "4fe1de8207994103e77bad7d93ebcc9bffde9cb4fa03fd6d658f009454863ba6",
+        "size": 7669387,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-arm-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4564,16 +4564,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.5.5"
+        "build_number": 20230915145114,
+        "version_string": "0.5.6"
       }
     },
     {
       "data": {
-        "checksum": "4683c5e88a85f8fb1da0636510121b660b9a05904cae72da7040d36c43147f16",
-        "contents_checksum": "b7ad73e6ee729be5a121958270136c97c9f9aa4fd8183e700f98bff877325936",
-        "size": 8151596,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-x86-20230811080439.tar.gz",
+        "checksum": "dde5954dc3e5aeb70dd031d1f9dc06ca91fbfef353786dc7aeaf08fe47b8349e",
+        "contents_checksum": "23d71fc214901822027f64f6096b3a6559d963432c189b3bacc7ecf5bf36aef6",
+        "size": 8185793,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-x86-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4597,16 +4597,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.5.5"
+        "build_number": 20230915145114,
+        "version_string": "0.5.6"
       }
     },
     {
       "data": {
-        "checksum": "78610133591f203702d85972496c5171fa87accdd5a9e7100fe57b8cf6f6fd20",
-        "contents_checksum": "0cf0c81264d321bc616afd7f9bde6aaabf235754bc5e196ee9f6f0d98266cdf9",
-        "size": 8262835,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-x86_64-20230811080439.tar.gz",
+        "checksum": "d8d9359bbbb0b8e2761bda8a315a50ad1580450d32e4b31d43da1805c408ec9a",
+        "contents_checksum": "08767b975276ca0651442a13bb7319c3c065dca875cf416a27251cf2093d576a",
+        "size": 8298454,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-x86_64-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4630,16 +4630,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.5.5"
+        "build_number": 20230915145114,
+        "version_string": "0.5.6"
       }
     },
     {
       "data": {
-        "checksum": "8a54b240c23a83e3938b971669047720664c780efc154873d76f1676096fb6fe",
-        "contents_checksum": "a4d0712ed4600d69f0c47e3ee88158a880997bef9d69a5949816ab827fe33430",
-        "size": 8254195,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-windows-x86-20230811080439.tar.gz",
+        "checksum": "4e53ce9e76364f936a3730aa26d8396fc905443093bfcba5107e50d999767a28",
+        "contents_checksum": "e13da874c2f1330b78675428fbf7aead7c0f4a4bb8152c911906659d1e7923bb",
+        "size": 8294371,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-windows-x86-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4663,16 +4663,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.5.5"
+        "build_number": 20230915145114,
+        "version_string": "0.5.6"
       }
     },
     {
       "data": {
-        "checksum": "3c70264979ffa7857e6e1b43f54adc72b8ac05fc0420f3208210eefab1faeeb0",
-        "contents_checksum": "b3f80769ff02bd55e86f55ab306a3415152c15f6f6fb4ff03eb43df0a43f8f76",
-        "size": 8411577,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-windows-x86_64-20230811080439.tar.gz",
+        "checksum": "72c35b4ec450e1e30e301e681c322bb2ddd8c9158b60f6d7a6c86f5d1d082396",
+        "contents_checksum": "1a1de077982ffdcb3762e47dea8d515cfe301ec2fab336aa2d3f968a142cff56",
+        "size": 8448839,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-windows-x86_64-20230915145114.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4696,16 +4696,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230811080439,
-        "version_string": "0.5.5"
+        "build_number": 20230915145114,
+        "version_string": "0.5.6"
       }
     },
     {
       "data": {
-        "checksum": "51a43ddfdf4e5b6bc8c4355c8cf2583c09495c546536fa3fd44cb0c6a2acb6aa",
-        "contents_checksum": "687332f3ffdbc2982cdf650f78d172646c2048f63a909715ddf7f907c2a83581",
-        "size": 11823782,
-        "source": "components/google-cloud-sdk-gsutil-20230707144938.tar.gz",
+        "checksum": "b4fc023adfe1710bf0ed63ee39aacbaddf090f97deb9435a6e9a955b72904985",
+        "contents_checksum": "c995625b17def8c1cdabb251bbd61259dc4b3aabc2d15f0dde5259726581dbe7",
+        "size": 11833901,
+        "source": "components/google-cloud-sdk-gsutil-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4724,16 +4724,16 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230707144938,
-        "version_string": "5.25"
+        "build_number": 20231025210228,
+        "version_string": "5.27"
       }
     },
     {
       "data": {
-        "checksum": "90c1d15fcc22ac26aab3fe6ce009b2f8feb9a4b2af4a7ff29593f9c3655e8719",
-        "contents_checksum": "95771fbf06cef5db72c8f52662e6f5707140d72a0eff4b32ed9488605a860f2a",
-        "size": 1962,
-        "source": "components/google-cloud-sdk-gsutil-nix-20230913232318.tar.gz",
+        "checksum": "140a65cc728b7d7f0e0018c85f30ea6e7a0cae5e59af15fa51a6f1156f598ec8",
+        "contents_checksum": "865d885b3c86680b0f5581236d54916c71c2672b13e32c2c5b1d213429291bdf",
+        "size": 2035,
+        "source": "components/google-cloud-sdk-gsutil-nix-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4758,16 +4758,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "5.25"
+        "build_number": 20231025210228,
+        "version_string": "5.27"
       }
     },
     {
       "data": {
-        "checksum": "7a4ad3529975de9195284f0a39143822e7849abcc3a978c278acb4645a85befa",
-        "contents_checksum": "339ff21beaf5500373e5e45c3c60407fb9b4bc6515408f9d4e95ecc6db4eba03",
-        "size": 4048,
-        "source": "components/google-cloud-sdk-gsutil-win-20230913232318.tar.gz",
+        "checksum": "f44dc54214254bc4c977ac3635113b9299fc7077e2ff2ba649718b0b2b9754ee",
+        "contents_checksum": "d7ff72a9837188a8f602ba4833ea0f38bb0a55ac160121c59dba0b72fae4064e",
+        "size": 4125,
+        "source": "components/google-cloud-sdk-gsutil-win-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4789,8 +4789,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "5.25"
+        "build_number": 20231025210228,
+        "version_string": "5.27"
       }
     },
     {
@@ -4880,15 +4880,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.0.0-beta.43"
+        "version_string": "1.0.0-beta.45"
       }
     },
     {
       "data": {
-        "checksum": "ffbde2072e467345830bed0dda86ec70ff7d40efc5e2b9594993321b36972fe4",
-        "contents_checksum": "22ef21025037c117ce224207ef739b036b8c3035c160c68349181cbbcb9f52ff",
-        "size": 15291366,
-        "source": "components/google-cloud-sdk-kpt-darwin-arm-20230901141909.tar.gz",
+        "checksum": "165e0d01221c66f8a02ca770a613af9e10ca84c301908cee016c4b9f62228c90",
+        "contents_checksum": "d69220663dd3189ef2d75698793f173994662ab4a1331f832cce561122dd3347",
+        "size": 15098362,
+        "source": "components/google-cloud-sdk-kpt-darwin-arm-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4912,16 +4912,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.0.0-beta.43"
+        "build_number": 20231006153333,
+        "version_string": "1.0.0-beta.45"
       }
     },
     {
       "data": {
-        "checksum": "e2108883bdedcefc84bd4ea393e87c5d83b4c42f62253ff383919021121c6839",
-        "contents_checksum": "65df48ee9f465ca6e6fc986df92932efa5b842cdd530eb1e84072f44f974f5f9",
-        "size": 16021339,
-        "source": "components/google-cloud-sdk-kpt-darwin-x86_64-20230901141909.tar.gz",
+        "checksum": "8a507cc40d952611f0d3d7ef881cd2564be93a09d91a01c8d9af13a8477eebe8",
+        "contents_checksum": "bba9c09fe778ebccbeb4c2d77f7fa1a008fc134eebc024d3cfa74ad8737de55d",
+        "size": 15865808,
+        "source": "components/google-cloud-sdk-kpt-darwin-x86_64-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4945,16 +4945,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.0.0-beta.43"
+        "build_number": 20231006153333,
+        "version_string": "1.0.0-beta.45"
       }
     },
     {
       "data": {
-        "checksum": "8351946591e298682814cc0a6726c73e79ece25e831fbb207d9f964156c9957e",
-        "contents_checksum": "ccbfbbee4def13de178aad9dfa44eee44ac7147c791fbcaf1950a51d254f63ce",
-        "size": 13672291,
-        "source": "components/google-cloud-sdk-kpt-linux-arm-20230901141909.tar.gz",
+        "checksum": "00242648b8722bdecbbc422dfe5e947a711d14aeb9adb575cb664e07b61a16c0",
+        "contents_checksum": "b7acebf0b9a28366a0a7ee8f283bb01baa7ba9ab0c85a31d994604c9ee62e587",
+        "size": 13639470,
+        "source": "components/google-cloud-sdk-kpt-linux-arm-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4978,16 +4978,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.0.0-beta.43"
+        "build_number": 20231006153333,
+        "version_string": "1.0.0-beta.45"
       }
     },
     {
       "data": {
-        "checksum": "f5736a46e17cf225f10899fb3ffc77f530f138b378023ab5635664fceefbb6b9",
-        "contents_checksum": "962ef60195fdf21f0be80755e643c74be99aef8fbb3e6df3d2fe41d2a4685f54",
-        "size": 15262416,
-        "source": "components/google-cloud-sdk-kpt-linux-x86_64-20230901141909.tar.gz",
+        "checksum": "d429dbc12345c454e5494e3312bdff83d39ad5793a05423c4ae5fc07a8128aba",
+        "contents_checksum": "2d9bc0d3ace7952ca0e3e37df2545c0d30734162edd151f7759a75a186134604",
+        "size": 15103896,
+        "source": "components/google-cloud-sdk-kpt-linux-x86_64-20231006153333.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5011,8 +5011,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.0.0-beta.43"
+        "build_number": 20231006153333,
+        "version_string": "1.0.0-beta.45"
       }
     },
     {
@@ -6235,15 +6235,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.16.0-rc.2"
+        "version_string": "1.16.2-rc.2"
       }
     },
     {
       "data": {
-        "checksum": "4c61e344e93450748298b42ad7322ec91fc19968233cba4ce396aec957a0d389",
-        "contents_checksum": "c8a236fdc75e02e51f4df9944fba64142d65beff2947dd193f46cd4410b77469",
-        "size": 29348197,
-        "source": "components/google-cloud-sdk-nomos-darwin-x86_64-20230901141909.tar.gz",
+        "checksum": "e985978e6f21b67b026ac23882b40fde32fce195c3618c845dce6e05e145359f",
+        "contents_checksum": "21fb7c2de16364b3e011aa4364c7b724cd7aacdfa21610ad891c1b8c3a388e02",
+        "size": 29892791,
+        "source": "components/google-cloud-sdk-nomos-darwin-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6267,16 +6267,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.16.0-rc.2"
+        "build_number": 20231023224440,
+        "version_string": "1.16.2-rc.2"
       }
     },
     {
       "data": {
-        "checksum": "4133276f79021f120f771563a1fbac4577752692a52fc9041aca25c45ffa0264",
-        "contents_checksum": "5f217d14bcb7efb94f509aa05e0e78f0b4679d5660dce82ee7853af2739e40d1",
-        "size": 30031806,
-        "source": "components/google-cloud-sdk-nomos-linux-x86_64-20230901141909.tar.gz",
+        "checksum": "413f599d671855ce7bd0002a35b0f6793041282463342206246e42c01fd9c9b8",
+        "contents_checksum": "ef98a3d5add19c22799e9fe9031487e542f779b31fa604db671775dcd592b739",
+        "size": 30473701,
+        "source": "components/google-cloud-sdk-nomos-linux-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6300,8 +6300,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.16.0-rc.2"
+        "build_number": 20231023224440,
+        "version_string": "1.16.2-rc.2"
       }
     },
     {
@@ -6581,10 +6581,10 @@
     },
     {
       "data": {
-        "checksum": "59b34e74c69740814cf35ff34724e4a4890a06719f017be818d6bee201e5ef95",
-        "contents_checksum": "255c9553769dcf10d63f3cdaa6a8a0a9b1b9c634dbe68d0c0f5a9bfce9f861a3",
-        "size": 64127564,
-        "source": "components/google-cloud-sdk-pubsub-emulator-20230728162818.tar.gz",
+        "checksum": "28574de6bc04f41d2ffc96e94fb00243ae6ec5e6c19524de7c833afd082a0a20",
+        "contents_checksum": "ec18cbdb02d4f8c9f3abe177bd0f9255eedc1e1d7739121a4ed7a29ce9ff36f4",
+        "size": 65097027,
+        "source": "components/google-cloud-sdk-pubsub-emulator-20231016163610.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6601,8 +6601,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230728162818,
-        "version_string": "0.8.6"
+        "build_number": 20231016163610,
+        "version_string": "0.8.10"
       }
     },
     {
@@ -6636,15 +6636,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "2.7.0"
+        "version_string": "2.7.1"
       }
     },
     {
       "data": {
-        "checksum": "605c6501abdf75e2925eb73cd04767473bb641904c023f3d478050d4890dd97e",
-        "contents_checksum": "e482ee4870c60c16bb943878b2c866406c7f292351bacabd4ac7e24adf961e0f",
-        "size": 23587940,
-        "source": "components/google-cloud-sdk-skaffold-darwin-arm-20230913232318.tar.gz",
+        "checksum": "d82de49ad5de08e99bd6e77ec3dca58b7a48b6d440fffd24a136bc01d3f15c63",
+        "contents_checksum": "f919555748e2d8c1af435e9a62af9633d5146a251e152d0f077d6f3a5a90d5c5",
+        "size": 24334283,
+        "source": "components/google-cloud-sdk-skaffold-darwin-arm-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6669,16 +6669,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2.7.0"
+        "build_number": 20231002150006,
+        "version_string": "2.7.1"
       }
     },
     {
       "data": {
-        "checksum": "fca11d239902f21eca2c848d6890348ab11735a731caa825a7213c091a1d9a09",
-        "contents_checksum": "c288f23d050990544470ba5ca77e181eb14ec0a886e6d9dcb1311f8fd6fc7fe4",
-        "size": 25624859,
-        "source": "components/google-cloud-sdk-skaffold-darwin-x86_64-20230913232318.tar.gz",
+        "checksum": "80f62a636612be395d304441b70cb94eb2137a21c5f27363a746fd70f3670565",
+        "contents_checksum": "e446714207056f4c0a70739472eca48de9a4063c6260a1609c55291a0756f75a",
+        "size": 26431910,
+        "source": "components/google-cloud-sdk-skaffold-darwin-x86_64-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6703,16 +6703,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2.7.0"
+        "build_number": 20231002150006,
+        "version_string": "2.7.1"
       }
     },
     {
       "data": {
-        "checksum": "630cb3dfaa8dbf06c853ee07782674be6389e1007592e0f6a44feb619b8e40ca",
-        "contents_checksum": "be2c6e663ecb45790d2d3b9c52a729265d1f0f4106068c78560cc9a77b8a66ba",
-        "size": 21657598,
-        "source": "components/google-cloud-sdk-skaffold-linux-arm-20230913232318.tar.gz",
+        "checksum": "6fd3ecbea23c64ccb1a7a43ba949df0108d5dcb279b8cd1d55a35f54b53bb674",
+        "contents_checksum": "d38419a04db49b0f30f761ae709c9fa902552871d0aa5522d1777643cc963579",
+        "size": 22351847,
+        "source": "components/google-cloud-sdk-skaffold-linux-arm-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6737,16 +6737,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2.7.0"
+        "build_number": 20231002150006,
+        "version_string": "2.7.1"
       }
     },
     {
       "data": {
-        "checksum": "63a65c505897d393000f789ab59ab13a51b8efb9db062097150e32a22fa85c31",
-        "contents_checksum": "73996dd7c5396964494ca45605906ee4e94f61e17a939ee91928f1c2cad8a4ec",
-        "size": 23697439,
-        "source": "components/google-cloud-sdk-skaffold-linux-x86_64-20230913232318.tar.gz",
+        "checksum": "6ed058de92dfa76751028437b05c76ce17030fc19d4ff7fde5f0d5c915b94110",
+        "contents_checksum": "c86e65478b18bc05b803e0d4d2c4cf5387b05bd99def05b7017dd74fd478bebc",
+        "size": 24456326,
+        "source": "components/google-cloud-sdk-skaffold-linux-x86_64-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6771,16 +6771,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2.7.0"
+        "build_number": 20231002150006,
+        "version_string": "2.7.1"
       }
     },
     {
       "data": {
-        "checksum": "f2c263738ce72925f2bb9be94a2f46a913765653d418f33489e97362b75b6d91",
-        "contents_checksum": "464d83d20aa1b0c6fc2dcefb7b473ae59bfa84153c441b1174bcaf4ea2dd237d",
-        "size": 24158418,
-        "source": "components/google-cloud-sdk-skaffold-windows-x86_64-20230913232318.tar.gz",
+        "checksum": "c81abe9107f9b03476de18df93b7272bfe4942629e5202eea60611b0294f5883",
+        "contents_checksum": "027478d2605b71896dfffeb11c85da30e6fa3e6164b55701c5186137047e2771",
+        "size": 24939189,
+        "source": "components/google-cloud-sdk-skaffold-windows-x86_64-20231002150006.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6805,8 +6805,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2.7.0"
+        "build_number": 20231002150006,
+        "version_string": "2.7.1"
       }
     },
     {
@@ -6832,15 +6832,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "3.1.1"
+        "version_string": "3.1.3"
       }
     },
     {
       "data": {
-        "checksum": "351181fc612520f83a95aa2056d9fb77af708396525831d430613293a3eb44d4",
-        "contents_checksum": "3ca0009d4be5928013704f2bcc7cac15d40c128fee34161f9e865a696fef948b",
-        "size": 21914533,
-        "source": "components/google-cloud-sdk-spanner-migration-tool-linux-x86_64-20230822145232.tar.gz",
+        "checksum": "f329d03249adcbd72707b0c723b3229bc3957bc2865ae0c2c13a90339ffed4f0",
+        "contents_checksum": "280d4a1fac4f797c9ca31c3a60ac377f32633678e92c45cb3d9c52d9ed697b52",
+        "size": 23033348,
+        "source": "components/google-cloud-sdk-spanner-migration-tool-linux-x86_64-20231023224440.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6864,8 +6864,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230822145232,
-        "version_string": "3.1.1"
+        "build_number": 20231023224440,
+        "version_string": "3.1.3"
       }
     },
     {
@@ -7121,10 +7121,10 @@
     },
     {
       "data": {
-        "checksum": "5c433f56d8ae4bcf2f76cc6dcc92e983cece28215938fa9a07847f79205ad7d1",
-        "contents_checksum": "e8b398acb9b87974b4725e2ca277f8c899fd5a5f0453a0426dfc4531cd7c3e20",
-        "size": 38409664,
-        "source": "components/google-cloud-sdk-tests-20230913232318.tar.gz",
+        "checksum": "5f1b1acfd653d1c7906dca110f939cf3e3389778ae0d4328c722348e69c3ba58",
+        "contents_checksum": "7fa3155ffbfc1c7b90d78a1eabb7e722f274149645f0e3979a5493aad1fd9df1",
+        "size": 50896581,
+        "source": "components/google-cloud-sdk-tests-20231025210228.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -7141,8 +7141,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2023.09.13"
+        "build_number": 20231025210228,
+        "version_string": "2023.10.25"
       }
     }
   ],
@@ -7161,11 +7161,11 @@
   ],
   "post_processing_command": "components post-process",
   "release_notes_url": "RELEASE_NOTES",
-  "revision": 20230913232318,
+  "revision": 20231025210228,
   "schema_version": {
     "no_update": false,
     "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz",
     "version": 3
   },
-  "version": "446.0.1"
+  "version": "452.0.1"
 }
diff --git a/pkgs/tools/admin/google-cloud-sdk/data.nix b/pkgs/tools/admin/google-cloud-sdk/data.nix
index 681904e57cba8..13ba8b8dd6f0f 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 = "446.0.1";
+  version = "452.0.1";
   googleCloudSdkPkgs = {
     x86_64-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-446.0.1-linux-x86_64.tar.gz";
-        sha256 = "0d0x0l7g6r3ix9rsxyzw8lf0lmg50cgmrqprrw7vhkpaglxb9lf6";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-linux-x86_64.tar.gz";
+        sha256 = "0dj0hzhfvw1p74ja079jmhrhzrbsivgfm0509rxf9xvh1a0kb8zx";
       };
     x86_64-darwin =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-446.0.1-darwin-x86_64.tar.gz";
-        sha256 = "0jnm2md88zcymw3jx07kaszc515hz91l73vfxxf2gdh5cn55k3qr";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-darwin-x86_64.tar.gz";
+        sha256 = "0gxz12sblc3slw9rhy0i7x8k61sakr0gwipx75h3cghf72hsx0cn";
       };
     aarch64-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-446.0.1-linux-arm.tar.gz";
-        sha256 = "13lg232gm3dxnagc76y6h5ini7bx6h6mbp7zrjj7yv523x4pxv0l";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-linux-arm.tar.gz";
+        sha256 = "1jcacwqxa5ylffpfp5mr509imay24ddsv43l04fygzahv2sv8a2d";
       };
     aarch64-darwin =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-446.0.1-darwin-arm.tar.gz";
-        sha256 = "15kg43harh96idya93xmlpr9blm6x2nicy18gipy2xa853hknq0i";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-darwin-arm.tar.gz";
+        sha256 = "1mpydxqkmfrnqiifgplvc5ghn6rs4981p4pw5zgxip7khw64dfap";
       };
     i686-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-446.0.1-linux-x86.tar.gz";
-        sha256 = "1blm2nf293yd6a16yd29z0xi5gvqh6h0j5734q5fy0ljxfq1xabg";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-linux-x86.tar.gz";
+        sha256 = "1whijjp2bn24j78rlfpp01y832fnlgj557v6fim9l78zcavgnahz";
       };
   };
 }
diff --git a/pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix b/pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix
index c71f23c978bbf..b65b5700c6070 100644
--- a/pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix
@@ -32,6 +32,7 @@ runCommand "google-cloud-sdk-${google-cloud-sdk.version}"
   passAsFile = [ "comps" ];
 
   doInstallCheck = true;
+  disallowedRequisites = [ google-cloud-sdk ];
   installCheckPhase =
     let
       compNames = builtins.map (drv: drv.name) comps_;
@@ -57,5 +58,5 @@ runCommand "google-cloud-sdk-${google-cloud-sdk.version}"
     done
 
     # Replace references to the original google-cloud-sdk with this one
-    find $out/google-cloud-sdk/bin/ -type f -exec sed -i -e "s#${google-cloud-sdk}#$out#" {} \;
+    find $out/google-cloud-sdk -type f -exec sed -i -e "s#${google-cloud-sdk}#$out#" {} \;
   ''
diff --git a/pkgs/tools/admin/granted/default.nix b/pkgs/tools/admin/granted/default.nix
index 7fa7a3b748809..79fc6358ed295 100644
--- a/pkgs/tools/admin/granted/default.nix
+++ b/pkgs/tools/admin/granted/default.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.17.1";
+  version = "0.20.7";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+XdbHCa7XtngX1v/uH0p7EbQVcZY+vT2ox9saDOKYE0=";
+    sha256 = "sha256-AGpR587vz1t5z/J09n4/XvFPgbwb66wRTfSVOTCWeSU=";
   };
 
-  vendorHash = "sha256-vHOGnflLC85hrONPPAAuuaPxNkv3t5T616nAnDEZbAY=";
+  vendorHash = "sha256-yw/hl82RQPjZB0SsVr4OPDUsFH2TY6i4RpVE7wd4fwk=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -57,7 +57,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The easiest way to access your cloud.";
+    description = "The easiest way to access your cloud";
     homepage = "https://github.com/common-fate/granted";
     changelog = "https://github.com/common-fate/granted/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/admin/hop-cli/default.nix b/pkgs/tools/admin/hop-cli/default.nix
index 4d9734874e2c9..35afd0546fe15 100644
--- a/pkgs/tools/admin/hop-cli/default.nix
+++ b/pkgs/tools/admin/hop-cli/default.nix
@@ -6,20 +6,21 @@
 , stdenv
 , CoreServices
 , Security
+, SystemConfiguration
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "hop-cli";
-  version = "0.2.54";
+  version = "0.2.61";
 
   src = fetchFromGitHub {
     owner = "hopinc";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-0BIPN4+XYZgUdxygpKpWZq6VkWWNCFD8v5egXOYfC64=";
+    hash = "sha256-omKLUe4JxF3SN4FHbO6YpIRt97f8wWY3oy7VHfvONRc=";
   };
 
-  cargoHash = "sha256-KE7AAyArRang/EZrpgv+vlNZaAP/Y2pCltiPMgZ5vFA=";
+  cargoHash = "sha256-yZKTVF810v27CnjwocEE2KYtrXggdEFPbKH5/4MMMhQ=";
 
   nativeBuildInputs = [
     pkg-config
@@ -28,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [
     openssl
   ] ++ lib.optionals stdenv.isDarwin [
-    CoreServices Security
+    CoreServices Security SystemConfiguration
   ];
 
   OPENSSL_NO_VENDOR = 1;
diff --git a/pkgs/tools/admin/iredis/default.nix b/pkgs/tools/admin/iredis/default.nix
index bc38b606b2e70..95f8a98ed4a49 100644
--- a/pkgs/tools/admin/iredis/default.nix
+++ b/pkgs/tools/admin/iredis/default.nix
@@ -6,26 +6,18 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "iredis";
-  version = "1.13.2";
-  format = "pyproject";
+  version = "1.14.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "laixintao";
     repo = "iredis";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dGOB7emhuP+V0pHlSdS1L1OC4jO3jtf5RFOy0UFYiuY=";
+    hash = "sha256-5TMO1c29ahAQDbAJZb3u2oY0Z8M+6b8hwbNfqMsuPzM=";
   };
 
-  pythonRelaxDeps = [
-    "configobj"
-    "wcwidth"
-    "click"
-    "packaging"
-  ];
-
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -65,5 +57,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://iredis.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "iredis";
   };
 }
diff --git a/pkgs/tools/admin/kics/default.nix b/pkgs/tools/admin/kics/default.nix
index 205a8f42b997c..d7c4cb79e7416 100644
--- a/pkgs/tools/admin/kics/default.nix
+++ b/pkgs/tools/admin/kics/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "kics";
-  version = "1.7.8";
+  version = "1.7.12";
 
   src = fetchFromGitHub {
     owner = "Checkmarx";
     repo = "kics";
     rev = "v${version}";
-    hash = "sha256-T4b4PO4NcpsosiyRa/78WJ4yYvc1Ez7t7KIbZzSlQAo=";
+    hash = "sha256-Yf4IvhXwhLD+Cae9bp6iCzlmnw9XQ7G2yOLqRTcK7ac=";
   };
 
-  vendorHash = "sha256-gJu3B30IPp8A/xgtE5fzThQAtnFbbzr8ZwucAsObBxs=";
+  vendorHash = "sha256-psyFivwS9d6+7S+1T7vonhofxHc0y2btXgc5HSu94Dg=";
 
   subPackages = [ "cmd/console" ];
 
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index cc5550395febe..65dd2c70daa24 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -18,11 +18,11 @@
 
 buildGoModule rec {
   pname = "lxd-unwrapped";
-  version = "5.18";
+  version = "5.20";
 
   src = fetchurl {
     url = "https://github.com/canonical/lxd/releases/download/lxd-${version}/lxd-${version}.tar.gz";
-    hash = "sha256-4F4q+jnypE4I2/5D65UT3NRpdJertSRni8JvHkpTFVI=";
+    hash = "sha256-L5WLdX9M3mTQ81eNoL2p7lllo6cOwJVu3fgofRKQFn8=";
   };
 
   vendorHash = null;
@@ -76,6 +76,7 @@ buildGoModule rec {
   '';
 
   passthru.tests.lxd = nixosTests.lxd;
+  passthru.tests.lxd-to-incus = nixosTests.incus.lxd-to-incus;
   passthru.ui = callPackage ./ui.nix { };
   passthru.updateScript = gitUpdater {
     url = "https://github.com/canonical/lxd.git";
@@ -86,8 +87,8 @@ buildGoModule rec {
     description = "Daemon based on liblxc offering a REST API to manage containers";
     homepage = "https://ubuntu.com/lxd";
     changelog = "https://github.com/canonical/lxd/releases/tag/lxd-${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ marsam adamcstephens ];
+    license = with licenses; [ asl20 agpl3 ];
+    maintainers = teams.lxc.members;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/lxd/package.json b/pkgs/tools/admin/lxd/package.json
deleted file mode 100644
index e30b269605ee5..0000000000000
--- a/pkgs/tools/admin/lxd/package.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
-  "name": "lxd-ui",
-  "version": "0.0.1",
-  "author": "Canonical Webteam",
-  "license": "LGPL-3.0-only",
-  "scripts": {
-    "clean": "rm -rf node_modules yarn-error.log *.log build/ .jekyll-metadata .bundle playwright-report test-results haproxy-local.cfg",
-    "build-html": "cp build/ui/index.html build/index.html",
-    "build": "npx vite build && yarn build-html",
-    "format-js-eslint": "eslint 'src/**/*.{json,jsx,tsx,ts}' 'tests/**/*.ts' --fix",
-    "format-js-prettier": "prettier 'src/**/*.{json,jsx,tsx,ts}' 'tests/**/*.ts' --write",
-    "format-js": "yarn format-js-eslint && yarn format-js-prettier",
-    "lint-scss": "stylelint 'src/**/*.scss'",
-    "lint-js-eslint": "eslint 'src/**/*.{json,tsx,ts}' 'tests/**/*.ts' .eslintrc.js babel.config.js",
-    "lint-js-prettier": "prettier 'src/**/*.{json,tsx,ts}' 'tests/**/*.ts' .eslintrc.js babel.config.js --check",
-    "lint-js": "yarn lint-js-eslint && yarn lint-js-prettier",
-    "hooks-add": "husky install",
-    "hooks-remove": "husky uninstall",
-    "start": "concurrently --kill-others --raw 'vite | grep -v localhost' 'yarn serve'",
-    "serve": "./entrypoint",
-    "test-js": "react-scripts test src/ --watchAll=false"},
-  "dependencies": {
-    "@canonical/react-components": "0.47.0",
-    "@monaco-editor/react": "^4.4.6",
-    "@tanstack/react-query": "^4.14.5",
-    "@use-it/event-listener": "^0.1.7",
-    "axios": "1.3.2",
-    "cytoscape": "3.23.0",
-    "cytoscape-popper": "2.0.0",
-    "formik": "2.2.9",
-    "js-yaml": "4.1.0",
-    "lodash.isequal": "4.5.0",
-    "node-forge": "1.3.1",
-    "parse-prometheus-text-format": "1.1.1",
-    "react": "18.2.0",
-    "react-cytoscapejs": "2.0.0",
-    "react-dom": "18.2.0",
-    "react-router-dom": "6.6.1",
-    "react-scripts": "5.0.1",
-    "react-useportal": "^1.0.17",
-    "serve": "14.1.2",
-    "vanilla-framework": "4.3.0",
-    "xterm-addon-fit": "0.6.0",
-    "xterm-for-react": "1.0.4",
-    "yup": "0.32.11"
-  },
-  "devDependencies": {
-    "@babel/core": "7.20.7",
-    "@babel/eslint-parser": "7.19.1",
-    "@babel/preset-env": "7.20.2",
-    "@babel/preset-react": "7.18.6",
-    "@babel/preset-typescript": "7.18.6",
-    "@playwright/test": "^1.29.1",
-    "@types/cytoscape-popper": "2.0.0",
-    "@types/node-forge": "1.3.1",
-    "@types/react": "18.0.26",
-    "@types/react-cytoscapejs": "1.2.2",
-    "@types/react-dom": "18.0.10",
-    "@types/react-router-dom": "5.3.3",
-    "@types/websocket": "1.0.5",
-    "@typescript-eslint/eslint-plugin": "5.48.0",
-    "@typescript-eslint/parser": "5.48.0",
-    "@vitejs/plugin-react": "^3.1.0",
-    "autoprefixer": "10.4.13",
-    "babel-loader": "9.1.0",
-    "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
-    "concurrently": "7.6.0",
-    "css-loader": "6.7.3",
-    "eslint": "8.31.0",
-    "eslint-config-prettier": "8.6.0",
-    "eslint-plugin-prettier": "4.2.1",
-    "eslint-plugin-react": "7.31.11",
-    "husky": "8.0.0",
-    "lint-staged": "13.1.1",
-    "monaco-editor": "0.36.1",
-    "postcss": "8.4.20",
-    "postcss-cli": "10.1.0",
-    "prettier": "2.8.1",
-    "sass": "1.57.1",
-    "sass-loader": "13.2.0",
-    "style-loader": "3.3.1",
-    "stylelint": "15.10.1",
-    "stylelint-config-prettier": "9.0.4",
-    "stylelint-config-standard-scss": "6.1.0",
-    "stylelint-order": "5.0.0",
-    "stylelint-prettier": "2.0.0",
-    "stylelint-scss": "4.3.0",
-    "ts-loader": "9.4.2",
-    "typescript": "4.9.4",
-    "vite": "^4.1.0",
-    "vite-tsconfig-paths": "4.0.5"
-  },
-  "lint-staged": {
-    "src/**/*.{json,jsx,ts,tsx}": [
-      "eslint",
-      "prettier --check"
-    ],
-    "tests/**/*.{json,jsx,ts,tsx}": [
-      "eslint",
-      "prettier --check"
-    ],
-    "src/**/*.scss": "stylelint"
-  }
-}
diff --git a/pkgs/tools/admin/lxd/ui.nix b/pkgs/tools/admin/lxd/ui.nix
index b0582ef999691..d2110d4c4d7cf 100644
--- a/pkgs/tools/admin/lxd/ui.nix
+++ b/pkgs/tools/admin/lxd/ui.nix
@@ -1,41 +1,70 @@
-{ mkYarnPackage
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchYarnDeps
-, lib
+, nodejs
+, prefetch-yarn-deps
+, yarn
+, nixosTests
 }:
 
-mkYarnPackage rec {
+stdenv.mkDerivation rec {
   pname = "lxd-ui";
-  version = "0.2";
+  version = "0.5";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "lxd-ui";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-DygWNktangFlAqinBm6wWsRLGmX6yjhmRJ2iU0yjcgk=";
+    hash = "sha256-52MRf7bk8Un9wqz00+JjDmuJgPKYhgAhIbMbcAuf8W8=";
   };
 
-  packageJSON = ./package.json;
   offlineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    sha256 = "sha256-B1SVCViX1LEFoBLMdFk9qaoayku7Y+zU5c4JEJkLmwE=";
+    hash = "sha256-WWnNjwzhN57PzTPmLWWzPoj66VFUnuzW1hTjKlVV8II=";
   };
 
+  nativeBuildInputs = [
+    nodejs
+    prefetch-yarn-deps
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
   buildPhase = ''
+    runHook preBuild
+
     yarn --offline build
+
+    runHook postBuild
   '';
 
   installPhase = ''
-    cp -rv deps/lxd-ui/build/ui/ $out
+    runHook preInstall
+
+    cp -r build/ui/ $out
+
+    runHook postInstall
   '';
 
-  doDist = false;
+  passthru.tests.default = nixosTests.lxd.ui;
 
   meta = {
-    description = "Web user interface for LXD.";
+    description = "Web user interface for LXD";
     homepage = "https://github.com/canonical/lxd-ui";
     license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [ jnsgruk ];
+    maintainers = lib.teams.lxc.members;
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/manta/default.nix b/pkgs/tools/admin/manta/default.nix
index f768305d20a1d..ef0d92150360b 100644
--- a/pkgs/tools/admin/manta/default.nix
+++ b/pkgs/tools/admin/manta/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "manta";
-  version = "5.4.1";
+  version = "5.4.2";
 
   src = fetchFromGitHub {
     owner = "TritonDataCenter";
     repo = "node-manta";
     rev = "v${version}";
-    hash = "sha256-C6O5yTCBABMsz2scot8v3IwPbdYvJyZbcPOLfeDXCoo=";
+    hash = "sha256-Uj3fNzeERiO++sW2uyAbtfN/1Ed6uRVBBvCecncq/QY=";
   };
 
-  npmDepsHash = "sha256-4Zz9sSUXE2dXdkIka2z5bQ2pNmCXXCBS2Sr0JHQOBQw=";
+  npmDepsHash = "sha256-Xk/K90K+X73ZTV6u2GJij8815GdBn6igXmpWLaCfKF4=";
 
   dontBuild = true;
 
@@ -50,6 +50,7 @@ buildNpmPackage rec {
   meta = with lib; {
     description = "Manta Object-Storage Client CLIs and Node.js SDK";
     homepage = "https://github.com/TritonDataCenter/node-manta";
+    changelog = "https://github.com/TritonDataCenter/node-manta/blob/v${version}/CHANGES.md";
     license = licenses.mit;
     maintainers = with maintainers; [ teutat3s ];
     mainProgram = "mls";
diff --git a/pkgs/tools/admin/meshcentral/default.nix b/pkgs/tools/admin/meshcentral/default.nix
index 46286926bb4e8..745eb1048079f 100644
--- a/pkgs/tools/admin/meshcentral/default.nix
+++ b/pkgs/tools/admin/meshcentral/default.nix
@@ -7,11 +7,11 @@
 }:
 
 yarn2nix-moretea.mkYarnPackage {
-  version = "1.1.6";
+  version = "1.1.20";
 
   src = fetchzip {
-    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.6.tgz";
-    sha256 = "03f2jyjrxmmr28949m3niwb437akyp6kg6h1m2jkaxfg5yj4hs4v";
+    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.20.tgz";
+    sha256 = "1iykx1lrsd09z3jbykspjgibsbpcgrw5b60dmpzcc1i4fr0zpnz9";
   };
 
   patches = [ ./fix-js-include-paths.patch ];
@@ -21,7 +21,7 @@ yarn2nix-moretea.mkYarnPackage {
 
   offlineCache = fetchYarnDeps {
     yarnLock = ./yarn.lock;
-    hash = "sha256-aKWa6pvIi2JkOtpiWH19KZoncPuSIgvDk/j7PvXp2nw=";
+    hash = "sha256-zLbD0UhCRQNTka1WUjDuZLseS1PMURQSPFEa0SvwS7E=";
   };
 
   # Tarball has CRLF line endings. This makes patching difficult, so let's convert them.
@@ -45,7 +45,7 @@ yarn2nix-moretea.mkYarnPackage {
   meta = with lib; {
     description = "Computer management web app";
     homepage = "https://meshcentral.com/";
-    maintainers = [ maintainers.lheckemann ];
+    maintainers = with maintainers; [ ma27 ];
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/tools/admin/meshcentral/package.json b/pkgs/tools/admin/meshcentral/package.json
index 1f618dd5686a4..c7e328c6289c5 100644
--- a/pkgs/tools/admin/meshcentral/package.json
+++ b/pkgs/tools/admin/meshcentral/package.json
@@ -1,6 +1,6 @@
 {
   "name": "meshcentral",
-  "version": "1.1.6",
+  "version": "1.1.20",
   "keywords": [
     "Remote Device Management",
     "Remote Device Monitoring",
@@ -37,24 +37,25 @@
     "sample-config-advanced.json"
   ],
   "dependencies": {
-    "archiver": "^5.3.1",
-    "body-parser": "^1.19.0",
-    "cbor": "~5.2.0",
-    "compression": "^1.7.4",
-    "cookie-session": "^2.0.0",
-    "express": "^4.17.0",
-    "express-handlebars": "^5.3.5",
-    "express-ws": "^4.0.0",
-    "ipcheck": "^0.1.0",
-    "minimist": "^1.2.5",
-    "multiparty": "^4.2.1",
-    "@yetzt/nedb": "^1.8.0",
-    "node-forge": "^1.0.0",
-    "ws": "^5.2.3",
-    "yauzl": "^2.10.0"
+    "archiver": "5.3.2",
+    "body-parser": "1.20.2",
+    "cbor": "5.2.0",
+    "compression": "1.7.4",
+    "cookie-session": "2.0.0",
+    "express": "4.18.2",
+    "express-handlebars": "5.3.5",
+    "express-ws": "4.0.0",
+    "ipcheck": "0.1.0",
+    "minimist": "1.2.8",
+    "multiparty": "4.2.3",
+    "@yetzt/nedb": "1.8.0",
+    "node-forge": "1.3.1",
+    "ua-parser-js": "1.0.37",
+    "ws": "8.14.2",
+    "yauzl": "2.10.0"
   },
   "engines": {
-    "node": ">=10.0.0"
+    "node": ">=11.0.0"
   },
   "repository": {
     "type": "git",
@@ -62,7 +63,7 @@
   },
   "readme": "readme.md",
   "optionalDependencies": {
-    "passport": "0.5.3",
+    "passport": "*",
     "passport-twitter": "*",
     "passport-google-oauth20": "*",
     "passport-github2": "*",
@@ -71,70 +72,72 @@
     "jwt-simple": "*",
     "@mstrhakr/passport-openidconnect": "*",
     "openid-client": "*",
+    "connect-flash": "*",
     "passport-saml": "*",
-    "ws": "5.2.3",
+    "archiver": "5.3.2",
+    "body-parser": "1.20.2",
     "cbor": "5.2.0",
-    "@yetzt/nedb": "*",
-    "https": "*",
-    "yauzl": "*",
-    "ipcheck": "*",
-    "express": "*",
-    "archiver": "5.3.1",
-    "multiparty": "*",
-    "node-forge": "*",
-    "express-ws": "4.0.0",
-    "compression": "*",
-    "body-parser": "*",
+    "compression": "1.7.4",
     "cookie-session": "2.0.0",
-    "express-handlebars": "*",
-    "node-windows": "0.1.4",
-    "loadavg-windows": "*",
-    "node-sspi": "*",
-    "ldapauth-fork": "*",
-    "ssh2": "*",
-    "svg-captcha": "*",
-    "image-size": "*",
+    "express": "4.18.2",
+    "express-handlebars": "5.3.5",
+    "express-ws": "4.0.0",
+    "ipcheck": "0.1.0",
+    "minimist": "1.2.8",
+    "multiparty": "4.2.3",
+    "@yetzt/nedb": "*",
+    "node-forge": "1.3.1",
+    "ua-parser-js": "1.0.37",
+    "ws": "8.14.2",
+    "yauzl": "2.10.0",
+    "node-windows": "0.1.14",
+    "loadavg-windows": "1.1.1",
+    "node-sspi": "0.2.10",
+    "ldapauth-fork": "5.0.5",
+    "ssh2": "1.15.0",
+    "svg-captcha": "1.4.0",
+    "image-size": "1.0.2",
     "acme-client": "4.2.5",
     "aedes": "0.39.0",
-    "mysql": "*",
-    "@mysql/xdevapi": "*",
+    "mysql2": "3.6.2",
+    "@mysql/xdevapi": "8.0.33",
     "mongodb": "4.13.0",
-    "saslprep": "*",
+    "saslprep": "1.0.3",
     "pg": "8.7.1",
     "pgtools": "0.3.2",
-    "mariadb": "*",
-    "acebase": "*",
-    "sqlite3": "*",
-    "node-vault": "*",
-    "semver": "*",
-    "https-proxy-agent": "*",
-    "mongojs": "*",
-    "nodemailer": "*",
+    "mariadb": "3.2.2",
+    "acebase": "1.29.5",
+    "sqlite3": "5.1.6",
+    "node-vault": "0.10.2",
+    "semver": "7.5.4",
+    "https-proxy-agent": "7.0.2",
+    "mongojs": "3.1.0",
+    "nodemailer": "6.9.8",
     "@sendgrid/mail": "*",
-    "jsdom": "*",
-    "esprima": "*",
-    "minify-js": "*",
-    "html-minifier": "*",
-    "@crowdsec/express-bouncer": "*",
-    "archiver-zip-encrypted": "*",
-    "googleapis": "*",
-    "webdav": "*",
+    "jsdom": "22.1.0",
+    "esprima": "4.0.1",
+    "minify-js": "0.0.4",
+    "html-minifier": "4.0.0",
+    "@crowdsec/express-bouncer": "0.1.0",
+    "archiver-zip-encrypted": "1.0.11",
+    "googleapis": "128.0.0",
+    "webdav": "4.11.3",
     "wildleek": "2.0.0",
-    "yubikeyotp": "*",
+    "yubikeyotp": "0.2.0",
     "otplib": "10.2.3",
-    "twilio": "*",
-    "plivo": "*",
-    "telnyx": "*",
-    "telegram": "*",
-    "input": "*",
+    "twilio": "4.19.0",
+    "plivo": "4.58.0",
+    "telnyx": "1.25.5",
+    "telegram": "2.19.8",
+    "input": "1.0.1",
     "discord.js": "14.6.0",
-    "@xmpp/client": "*",
-    "node-pushover": "*",
-    "zulip": "*",
-    "web-push": "*",
+    "@xmpp/client": "0.13.1",
+    "node-pushover": "1.0.0",
+    "zulip": "0.1.0",
+    "web-push": "3.6.6",
     "node-xcs": "0.1.7",
-    "modern-syslog": "*",
-    "syslog": "*",
-    "heapdump": "*"
+    "modern-syslog": "1.2.0",
+    "syslog": "0.1.1-1",
+    "heapdump": "0.3.15"
   }
 }
diff --git a/pkgs/tools/admin/meshcentral/update.sh b/pkgs/tools/admin/meshcentral/update.sh
index e51ce647b4150..950fa617ce81c 100755
--- a/pkgs/tools/admin/meshcentral/update.sh
+++ b/pkgs/tools/admin/meshcentral/update.sh
@@ -47,7 +47,7 @@ update-source-version meshcentral "$version" "$hash" "$tarball"
 new_yarn_hash=$(prefetch-yarn-deps "$expr_dir/yarn.lock")
 new_yarn_hash=$(nix-hash --type sha256 --to-sri "$new_yarn_hash")
 old_yarn_hash=$(nix-instantiate --eval -A meshcentral.offlineCache.outputHash | tr -d '"')
-sed -i "$expr_dir/default.nix" -re "s|\"$old_yarn_hash\"|\"$new_yarn_hash\"|"
+sed -i "$expr_dir/default.nix" -e "s|\"$old_yarn_hash\"|\"$new_yarn_hash\"|"
 
 # Only clean up if everything worked
 cd /
diff --git a/pkgs/tools/admin/meshcentral/yarn.lock b/pkgs/tools/admin/meshcentral/yarn.lock
index a013906a78529..b64e2e5b20f5d 100644
--- a/pkgs/tools/admin/meshcentral/yarn.lock
+++ b/pkgs/tools/admin/meshcentral/yarn.lock
@@ -65,686 +65,429 @@
     "@aws-sdk/util-utf8-browser" "^3.0.0"
     tslib "^1.11.1"
 
-"@aws-sdk/abort-controller@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.347.0.tgz#8f1dc9f7e2030b3eabe2f05722d3d99e783e295f"
-  integrity sha512-P/2qE6ntYEmYG4Ez535nJWZbXqgbkJx8CMz7ChEuEg3Gp3dvVYEKg+iEUEvlqQ2U5dWP5J3ehw5po9t86IsVPQ==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/client-cognito-identity@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.353.0.tgz#ae259cc66baaedf706172697728ef7b91ab7ec0d"
-  integrity sha512-N+dr4UALHjWIHfW1UgguinSjDqubIUWL2IkzMse6qCnhHRsLQrThGCw1ElKw4avKSSqERkGM3cVlQu3Si+8/Xw==
+"@aws-sdk/client-cognito-identity@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.501.0.tgz#232543d91b1d236cfeac7c0168c56eddff1aafd3"
+  integrity sha512-ynWW9VVT7CTMQBh8l7WFt2SNekg3667gwjQmeGN8+DDMDqt2Z+L52717S0AN1pQDUMbh/DuKKPk+Sr30HBK3vA==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/client-sts" "3.353.0"
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/credential-provider-node" "3.353.0"
-    "@aws-sdk/fetch-http-handler" "3.353.0"
-    "@aws-sdk/hash-node" "3.347.0"
-    "@aws-sdk/invalid-dependency" "3.347.0"
-    "@aws-sdk/middleware-content-length" "3.347.0"
-    "@aws-sdk/middleware-endpoint" "3.347.0"
-    "@aws-sdk/middleware-host-header" "3.347.0"
-    "@aws-sdk/middleware-logger" "3.347.0"
-    "@aws-sdk/middleware-recursion-detection" "3.347.0"
-    "@aws-sdk/middleware-retry" "3.353.0"
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/middleware-signing" "3.353.0"
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/middleware-user-agent" "3.352.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/node-http-handler" "3.350.0"
-    "@aws-sdk/smithy-client" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
-    "@aws-sdk/util-body-length-browser" "3.310.0"
-    "@aws-sdk/util-body-length-node" "3.310.0"
-    "@aws-sdk/util-defaults-mode-browser" "3.353.0"
-    "@aws-sdk/util-defaults-mode-node" "3.353.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    "@aws-sdk/util-user-agent-browser" "3.347.0"
-    "@aws-sdk/util-user-agent-node" "3.353.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    "@smithy/protocol-http" "^1.0.1"
-    "@smithy/types" "^1.0.0"
+    "@aws-sdk/client-sts" "3.501.0"
+    "@aws-sdk/core" "3.496.0"
+    "@aws-sdk/credential-provider-node" "3.501.0"
+    "@aws-sdk/middleware-host-header" "3.496.0"
+    "@aws-sdk/middleware-logger" "3.496.0"
+    "@aws-sdk/middleware-recursion-detection" "3.496.0"
+    "@aws-sdk/middleware-signing" "3.496.0"
+    "@aws-sdk/middleware-user-agent" "3.496.0"
+    "@aws-sdk/region-config-resolver" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@aws-sdk/util-user-agent-browser" "3.496.0"
+    "@aws-sdk/util-user-agent-node" "3.496.0"
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/core" "^1.3.1"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/hash-node" "^2.1.1"
+    "@smithy/invalid-dependency" "^2.1.1"
+    "@smithy/middleware-content-length" "^2.1.1"
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-body-length-browser" "^2.1.1"
+    "@smithy/util-body-length-node" "^2.2.1"
+    "@smithy/util-defaults-mode-browser" "^2.1.1"
+    "@smithy/util-defaults-mode-node" "^2.1.1"
+    "@smithy/util-endpoints" "^1.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/client-sso-oidc@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.353.0.tgz#afa0154bac752f1b9ffbc6dc3fcc61fd94338f84"
-  integrity sha512-V9g3oIjj3yEadHosyN+rmxtNXSMqqaHguBD1MuWwsW3AQRlkmInPzg052cKzl6Xm7FrpnZaKnadQPWSl/ZVa7w==
+"@aws-sdk/client-sso@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.496.0.tgz#765cbfb3afcbe7bc8f2430e40afd4d542a0d58fb"
+  integrity sha512-fuaMuxKg7CMUsP9l3kxYWCOxFsBjdA0xj5nlikaDm1661/gB4KkAiGqRY8LsQkpNXvXU8Nj+f7oCFADFyGYzyw==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/fetch-http-handler" "3.353.0"
-    "@aws-sdk/hash-node" "3.347.0"
-    "@aws-sdk/invalid-dependency" "3.347.0"
-    "@aws-sdk/middleware-content-length" "3.347.0"
-    "@aws-sdk/middleware-endpoint" "3.347.0"
-    "@aws-sdk/middleware-host-header" "3.347.0"
-    "@aws-sdk/middleware-logger" "3.347.0"
-    "@aws-sdk/middleware-recursion-detection" "3.347.0"
-    "@aws-sdk/middleware-retry" "3.353.0"
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/middleware-user-agent" "3.352.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/node-http-handler" "3.350.0"
-    "@aws-sdk/smithy-client" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
-    "@aws-sdk/util-body-length-browser" "3.310.0"
-    "@aws-sdk/util-body-length-node" "3.310.0"
-    "@aws-sdk/util-defaults-mode-browser" "3.353.0"
-    "@aws-sdk/util-defaults-mode-node" "3.353.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    "@aws-sdk/util-user-agent-browser" "3.347.0"
-    "@aws-sdk/util-user-agent-node" "3.353.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    "@smithy/protocol-http" "^1.0.1"
-    "@smithy/types" "^1.0.0"
+    "@aws-sdk/core" "3.496.0"
+    "@aws-sdk/middleware-host-header" "3.496.0"
+    "@aws-sdk/middleware-logger" "3.496.0"
+    "@aws-sdk/middleware-recursion-detection" "3.496.0"
+    "@aws-sdk/middleware-user-agent" "3.496.0"
+    "@aws-sdk/region-config-resolver" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@aws-sdk/util-user-agent-browser" "3.496.0"
+    "@aws-sdk/util-user-agent-node" "3.496.0"
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/core" "^1.3.1"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/hash-node" "^2.1.1"
+    "@smithy/invalid-dependency" "^2.1.1"
+    "@smithy/middleware-content-length" "^2.1.1"
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-body-length-browser" "^2.1.1"
+    "@smithy/util-body-length-node" "^2.2.1"
+    "@smithy/util-defaults-mode-browser" "^2.1.1"
+    "@smithy/util-defaults-mode-node" "^2.1.1"
+    "@smithy/util-endpoints" "^1.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/client-sso@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.353.0.tgz#fbf75fac1f06f22f09a797aa2541ff44b92aa68c"
-  integrity sha512-/dP5jLvZYskk6eVxI/5uaC1AVEbE7B2yuQ+9O3Z9plPIlZXyZxzXHf06s4gwsS4hAc7TDs3DaB+AnfMVLOPHbQ==
+"@aws-sdk/client-sts@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.501.0.tgz#f3ab15d11517f28f1fdd3bd2b0c4dcf15a88b5aa"
+  integrity sha512-Uwc/xuxsA46dZS5s+4U703LBNDrGpWF7RB4XYEEMD21BLfGuqntxLLQux8xxKt3Pcur0CsXNja5jXt3uLnE5MA==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/fetch-http-handler" "3.353.0"
-    "@aws-sdk/hash-node" "3.347.0"
-    "@aws-sdk/invalid-dependency" "3.347.0"
-    "@aws-sdk/middleware-content-length" "3.347.0"
-    "@aws-sdk/middleware-endpoint" "3.347.0"
-    "@aws-sdk/middleware-host-header" "3.347.0"
-    "@aws-sdk/middleware-logger" "3.347.0"
-    "@aws-sdk/middleware-recursion-detection" "3.347.0"
-    "@aws-sdk/middleware-retry" "3.353.0"
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/middleware-user-agent" "3.352.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/node-http-handler" "3.350.0"
-    "@aws-sdk/smithy-client" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
-    "@aws-sdk/util-body-length-browser" "3.310.0"
-    "@aws-sdk/util-body-length-node" "3.310.0"
-    "@aws-sdk/util-defaults-mode-browser" "3.353.0"
-    "@aws-sdk/util-defaults-mode-node" "3.353.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    "@aws-sdk/util-user-agent-browser" "3.347.0"
-    "@aws-sdk/util-user-agent-node" "3.353.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    "@smithy/protocol-http" "^1.0.1"
-    "@smithy/types" "^1.0.0"
+    "@aws-sdk/core" "3.496.0"
+    "@aws-sdk/credential-provider-node" "3.501.0"
+    "@aws-sdk/middleware-host-header" "3.496.0"
+    "@aws-sdk/middleware-logger" "3.496.0"
+    "@aws-sdk/middleware-recursion-detection" "3.496.0"
+    "@aws-sdk/middleware-user-agent" "3.496.0"
+    "@aws-sdk/region-config-resolver" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@aws-sdk/util-user-agent-browser" "3.496.0"
+    "@aws-sdk/util-user-agent-node" "3.496.0"
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/core" "^1.3.1"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/hash-node" "^2.1.1"
+    "@smithy/invalid-dependency" "^2.1.1"
+    "@smithy/middleware-content-length" "^2.1.1"
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-body-length-browser" "^2.1.1"
+    "@smithy/util-body-length-node" "^2.2.1"
+    "@smithy/util-defaults-mode-browser" "^2.1.1"
+    "@smithy/util-defaults-mode-node" "^2.1.1"
+    "@smithy/util-endpoints" "^1.1.1"
+    "@smithy/util-middleware" "^2.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
+    fast-xml-parser "4.2.5"
     tslib "^2.5.0"
 
-"@aws-sdk/client-sts@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.353.0.tgz#4c731c382a3c394096f869bf62fe52dc29e7ac70"
-  integrity sha512-jOnh242TtxG6st60AxLSav0MTgYlJn4c8ZDxk4Wk4+n5bypnXRrqgVXob99lyVnCRfP3OsDl1eilcVp94EXzVw==
+"@aws-sdk/core@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.496.0.tgz#ec1394753b6b2f6e38aea593e30b2db5c7390969"
+  integrity sha512-yT+ug7Cw/3eJi7x2es0+46x12+cIJm5Xv+GPWsrTFD1TKgqO/VPEgfDtHFagDNbFmjNQA65Ygc/kEdIX9ICX/A==
   dependencies:
-    "@aws-crypto/sha256-browser" "3.0.0"
-    "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/credential-provider-node" "3.353.0"
-    "@aws-sdk/fetch-http-handler" "3.353.0"
-    "@aws-sdk/hash-node" "3.347.0"
-    "@aws-sdk/invalid-dependency" "3.347.0"
-    "@aws-sdk/middleware-content-length" "3.347.0"
-    "@aws-sdk/middleware-endpoint" "3.347.0"
-    "@aws-sdk/middleware-host-header" "3.347.0"
-    "@aws-sdk/middleware-logger" "3.347.0"
-    "@aws-sdk/middleware-recursion-detection" "3.347.0"
-    "@aws-sdk/middleware-retry" "3.353.0"
-    "@aws-sdk/middleware-sdk-sts" "3.353.0"
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/middleware-signing" "3.353.0"
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/middleware-user-agent" "3.352.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/node-http-handler" "3.350.0"
-    "@aws-sdk/smithy-client" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
-    "@aws-sdk/util-body-length-browser" "3.310.0"
-    "@aws-sdk/util-body-length-node" "3.310.0"
-    "@aws-sdk/util-defaults-mode-browser" "3.353.0"
-    "@aws-sdk/util-defaults-mode-node" "3.353.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    "@aws-sdk/util-user-agent-browser" "3.347.0"
-    "@aws-sdk/util-user-agent-node" "3.353.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    "@smithy/protocol-http" "^1.0.1"
-    "@smithy/types" "^1.0.0"
-    fast-xml-parser "4.2.4"
+    "@smithy/core" "^1.3.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/signature-v4" "^2.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/config-resolver@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.353.0.tgz#0cd40ac60f87af417754fd2f05758369415b0723"
-  integrity sha512-rJJ1ebb8E4vfdGWym6jql1vodV+NUEATI1QqlwxQ0AZ8MGPIsT3uR52VyX7gp+yIrLZBJZdGYVNwrWSJgZ3B3w==
+"@aws-sdk/credential-provider-cognito-identity@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.501.0.tgz#9df440eea01125130226fdd1619f5b728f4db9c0"
+  integrity sha512-U9fjzliKzMiPx/EWLNLCEoF5wWhVtlluTEc4/WhNtSryV2PyihqIAK8nK4+MFaXB4xOrlRnpYMd7oqm03wMGyw==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-config-provider" "3.310.0"
-    "@aws-sdk/util-middleware" "3.347.0"
+    "@aws-sdk/client-cognito-identity" "3.501.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-cognito-identity@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.353.0.tgz#22917cd6b2eb8d30bd1a28c659aacb769d379b01"
-  integrity sha512-vHjl3a2y6KYCIckRXPYVUMCjNEZ4fcQP1q6URfUELUbj9E7ZDjOLXkYx/t5gJSod13kygMliMezLmLhGIheykg==
+"@aws-sdk/credential-provider-env@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.496.0.tgz#5055bd2e3a169e5c10b37c40e0f356046947e707"
+  integrity sha512-lukQMJ8SWWP5RqkRNOHi/H+WMhRvSWa3Fc5Jf/VP6xHiPLfF1XafcvthtV91e0VwPCiseI+HqChrcGq8pvnxHw==
   dependencies:
-    "@aws-sdk/client-cognito-identity" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-env@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.353.0.tgz#ef8c72978af09f4582cf98325f7f328e8f41574d"
-  integrity sha512-Y4VsNS8O1FAD5J7S5itOhnOghQ5LIXlZ44t35nF8cbcF+JPvY3ToKzYpjYN1jM7DXKqU4shtqgYpzSqxlvEgKQ==
-  dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+"@aws-sdk/credential-provider-http@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.496.0.tgz#7ff281bc0c80a041c69f0062e82b6def2e2a7de5"
+  integrity sha512-iphFlFX0qDFsE24XmFlcKmsR4uyNaqQrK+Y18mwSZMs1yWtL4Sck0rcTXU/cU2W3/xisjh7xFXK5L5aowjMZOg==
+  dependencies:
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-stream" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-imds@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.353.0.tgz#6f1f9ade03c49d5c13b921dfa259334aaefb7e96"
-  integrity sha512-n70yvXBN7E6NX7vA/wLTqyVayu/QKYsPvVn8Y+0A/j5oXXlVY+hQvjjEaNo0Zq1U8Z0L/kj3mutDpe57nTLKSg==
-  dependencies:
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
+"@aws-sdk/credential-provider-ini@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.501.0.tgz#66f56d56858267460614260b6bfd70cd18ba868b"
+  integrity sha512-6UXnwLtYIr298ljveumCVXsH+x7csGscK5ylY+veRFy514NqyloRdJt8JY26hhh5SF9MYnkW+JyWSJ2Ls3tOjQ==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.496.0"
+    "@aws-sdk/credential-provider-process" "3.496.0"
+    "@aws-sdk/credential-provider-sso" "3.501.0"
+    "@aws-sdk/credential-provider-web-identity" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/credential-provider-imds" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-ini@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.353.0.tgz#9bc70918885b2806083e9363af8376c9c456c6dc"
-  integrity sha512-qiA9dUAWmH3DLkVDNnR1VW7GTfGa5EazXSeIqXPM3qyf9Dqr4RPRyle8/BJXnAQXR01VEA+ZOmvp1fjs7uKiqw==
-  dependencies:
-    "@aws-sdk/credential-provider-env" "3.353.0"
-    "@aws-sdk/credential-provider-imds" "3.353.0"
-    "@aws-sdk/credential-provider-process" "3.353.0"
-    "@aws-sdk/credential-provider-sso" "3.353.0"
-    "@aws-sdk/credential-provider-web-identity" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
+"@aws-sdk/credential-provider-node@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.501.0.tgz#6cb96dc5c1bfaf8dcb580063beeed9ef9db33961"
+  integrity sha512-NM62D8gYrQ1nyLYwW4k48B2/lMHDzHDcQccS1wJakr6bg5sdtG06CumwlVcY+LAa0o1xRnhHmh/yiwj/nN4avw==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.496.0"
+    "@aws-sdk/credential-provider-ini" "3.501.0"
+    "@aws-sdk/credential-provider-process" "3.496.0"
+    "@aws-sdk/credential-provider-sso" "3.501.0"
+    "@aws-sdk/credential-provider-web-identity" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/credential-provider-imds" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-node@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.353.0.tgz#edb117679040989f0f70111f1ec1af53319471f5"
-  integrity sha512-OIyZ7OG1OQJ1aQGAu78hggSkK4jiWO1/Sm6wj5wvwylbST8NnR+dHjikZGFB3hoYt1uEe2O2LeGW67bI54VIEQ==
-  dependencies:
-    "@aws-sdk/credential-provider-env" "3.353.0"
-    "@aws-sdk/credential-provider-imds" "3.353.0"
-    "@aws-sdk/credential-provider-ini" "3.353.0"
-    "@aws-sdk/credential-provider-process" "3.353.0"
-    "@aws-sdk/credential-provider-sso" "3.353.0"
-    "@aws-sdk/credential-provider-web-identity" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/credential-provider-process@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.353.0.tgz#c5c27b2e6fdada7040c4ba5f2b12dd593ceb1baf"
-  integrity sha512-IBkuxj3pCdmnTzIcRXhq+5sp1hsWACQLi9fHLK+mDEgaiaO+u2r3Th5tV3rJUfNhZY4qa62QNGsHwsVstVxGvw==
+"@aws-sdk/credential-provider-process@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.496.0.tgz#1d623bed61229767f389feab560e3a3117bf2d26"
+  integrity sha512-/YZscCTGOKVmGr916Th4XF8Sz6JDtZ/n2loHG9exok9iy/qIbACsTRNLP9zexPxhPoue/oZqecY5xbVljfY34A==
   dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-sso@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.353.0.tgz#ce4916d00363635ee8284c812753d4040118c8f3"
-  integrity sha512-S16tpQ7Zra2O3PNCV4a89wn8wVEgv8oRwjF7p87AM902fXEuag4VHIhaI/TgANQT737JDA/ZCFL2XSilCbHxYQ==
-  dependencies:
-    "@aws-sdk/client-sso" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/token-providers" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+"@aws-sdk/credential-provider-sso@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.501.0.tgz#a96b859b59d3825f54158de8c692d69bd6edf5e6"
+  integrity sha512-y90dlvvZ55PwecODFdMx0NiNlJJfm7X6S61PKdLNCMRcu1YK+eWn0CmPHGHobBUQ4SEYhnFLcHSsf+VMim6BtQ==
+  dependencies:
+    "@aws-sdk/client-sso" "3.496.0"
+    "@aws-sdk/token-providers" "3.501.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-web-identity@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.353.0.tgz#d551528b5aff1dea6a3fa4b37c97bd424b9576e0"
-  integrity sha512-l3TdZB6tEDhLIl0oLIIy1njlxogpyIXSMW9fpuHBt7LDUwfBdCwVPE6+JpGXra6tJAfRQSv5l0lYx5osSLq98g==
+"@aws-sdk/credential-provider-web-identity@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.496.0.tgz#7ad6d755445d1616a80dfa286a78c84dc1c3f14b"
+  integrity sha512-IbP+qLlvJSpNPj+zW6TtFuLRTK5Tf0hW+2pom4vFyi5YSH4pn8UOC136UdewX8vhXGS9BJQ5zBDMasIyl5VeGQ==
   dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
 "@aws-sdk/credential-providers@^3.186.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.353.0.tgz#b3f9afb8eca8b880462106c8b3893098026c3fd8"
-  integrity sha512-WAZP2vodrAjzHf79OpCuZ18cysgBDZWWItkcvuie+nyVsb6EHLgssT3aL1sZZWiBKiaQ+sCyYJwHSbg2i04nJw==
-  dependencies:
-    "@aws-sdk/client-cognito-identity" "3.353.0"
-    "@aws-sdk/client-sso" "3.353.0"
-    "@aws-sdk/client-sts" "3.353.0"
-    "@aws-sdk/credential-provider-cognito-identity" "3.353.0"
-    "@aws-sdk/credential-provider-env" "3.353.0"
-    "@aws-sdk/credential-provider-imds" "3.353.0"
-    "@aws-sdk/credential-provider-ini" "3.353.0"
-    "@aws-sdk/credential-provider-node" "3.353.0"
-    "@aws-sdk/credential-provider-process" "3.353.0"
-    "@aws-sdk/credential-provider-sso" "3.353.0"
-    "@aws-sdk/credential-provider-web-identity" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.501.0.tgz#15321a2028e9ee36d5333da222386abb81e24553"
+  integrity sha512-nyfGzzYKcAny2kUyQjVDhSzfFTwkfZjGyJZ79WaLkNcCsVSsHBbptPRmRV2b4N0EoHTCfGqkbB02as4av/OQrw==
+  dependencies:
+    "@aws-sdk/client-cognito-identity" "3.501.0"
+    "@aws-sdk/client-sso" "3.496.0"
+    "@aws-sdk/client-sts" "3.501.0"
+    "@aws-sdk/credential-provider-cognito-identity" "3.501.0"
+    "@aws-sdk/credential-provider-env" "3.496.0"
+    "@aws-sdk/credential-provider-http" "3.496.0"
+    "@aws-sdk/credential-provider-ini" "3.501.0"
+    "@aws-sdk/credential-provider-node" "3.501.0"
+    "@aws-sdk/credential-provider-process" "3.496.0"
+    "@aws-sdk/credential-provider-sso" "3.501.0"
+    "@aws-sdk/credential-provider-web-identity" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/credential-provider-imds" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/eventstream-codec@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.347.0.tgz#4ba2c87a2f6e4bb10a833910a4427d16ceec09f0"
-  integrity sha512-61q+SyspjsaQ4sdgjizMyRgVph2CiW4aAtfpoH69EJFJfTxTR/OqnZ9Jx/3YiYi0ksrvDenJddYodfWWJqD8/w==
+"@aws-sdk/middleware-host-header@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.496.0.tgz#e17de11d553548872566c72669c5ea2e7164722b"
+  integrity sha512-jUdPpSJeqCYXf6hSjfwsfHway7peIV8Vz51w/BN91bF4vB/bYwAC5o9/iJiK/EoByp5asxA8fg9wFOyGjzdbLg==
   dependencies:
-    "@aws-crypto/crc32" "3.0.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-hex-encoding" "3.310.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/fetch-http-handler@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.353.0.tgz#0fe801aaf0ceeb21e878803b0e397464f1890537"
-  integrity sha512-8ic2+4E6jzfDevd++QS1rOR05QFkAhEFbi5Ja3/Zzp7TkWIS8wv5wwMATjNkbbdsXYuB5Lhl/OsjfZmIv5aqRw==
+"@aws-sdk/middleware-logger@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.496.0.tgz#96f867ae50144eb6bae91a427e315a0f0eb783b0"
+  integrity sha512-EwMVSY6iBMeGbVnvwdaFl/ClMS/YWtxCAo+bcEtgk8ltRuo7qgbJem8Km/fvWC1vdWvIbe4ArdJ8iGzq62ffAw==
   dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/querystring-builder" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/hash-node@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.347.0.tgz#575b31227306c03b491b814178a72b0b79625ed5"
-  integrity sha512-96+ml/4EaUaVpzBdOLGOxdoXOjkPgkoJp/0i1fxOJEvl8wdAQSwc3IugVK9wZkCxy2DlENtgOe6DfIOhfffm/g==
+"@aws-sdk/middleware-recursion-detection@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.496.0.tgz#c14e1bbe609e4af3ec9037c2379e2b64d660e4dd"
+  integrity sha512-+IuOcFsfqg2WAnaEzH6KhVbicqCxtOq9w3DH2jwTpddRlCx2Kqf6wCzg8luhHRGyjBZdsbIS+OXwyMevoppawA==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-buffer-from" "3.310.0"
-    "@aws-sdk/util-utf8" "3.310.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/invalid-dependency@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.347.0.tgz#2e5994cdd51dc3fe0310ce355e1ab115b66b7cb5"
-  integrity sha512-8imQcwLwqZ/wTJXZqzXT9pGLIksTRckhGLZaXT60tiBOPKuerTsus2L59UstLs5LP8TKaVZKFFSsjRIn9dQdmQ==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/is-array-buffer@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz#f87a79f1b858c88744f07e8d8d0a791df204017e"
-  integrity sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-content-length@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.347.0.tgz#ee6063ebb0215355b7a7dacd0a3bbe2e1a8d108f"
-  integrity sha512-i4qtWTDImMaDUtwKQPbaZpXsReiwiBomM1cWymCU4bhz81HL01oIxOxOBuiM+3NlDoCSPr3KI6txZSz/8cqXCQ==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-endpoint@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.347.0.tgz#d577265e79cdc0241d863e2582820010ea942736"
-  integrity sha512-unF0c6dMaUL1ffU+37Ugty43DgMnzPWXr/Jup/8GbK5fzzWT5NQq6dj9KHPubMbWeEjQbmczvhv25JuJdK8gNQ==
-  dependencies:
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-middleware" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-host-header@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.347.0.tgz#6166c137044672b2229e6ee0ce8a3e59fd8c49c4"
-  integrity sha512-kpKmR9OvMlnReqp5sKcJkozbj1wmlblbVSbnQAIkzeQj2xD5dnVR3Nn2ogQKxSmU1Fv7dEroBtrruJ1o3fY38A==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-logger@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.347.0.tgz#d75a6bbda38c85200219f4ef88e7696d72f94100"
-  integrity sha512-NYC+Id5UCkVn+3P1t/YtmHt75uED06vwaKyxDy0UmB2K66PZLVtwWbLpVWrhbroaw1bvUHYcRyQ9NIfnVcXQjA==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-recursion-detection@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.347.0.tgz#00faf00d9346cb88dafdfddfd33e956ba563bf99"
-  integrity sha512-qfnSvkFKCAMjMHR31NdsT0gv5Sq/ZHTUD4yQsSLpbVQ6iYAS834lrzXt41iyEHt57Y514uG7F/Xfvude3u4icQ==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-retry@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.353.0.tgz#606604c3b23f4ddcaacf7c71f329b7a1d517fbb8"
-  integrity sha512-v81NEzDGGvnpvFUy388razpicn7STwBA5gItlr3Ukz8ZWWudfQarTBr0nfVyODXb+76du2LwzEQOd6YtfoOZ+w==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/service-error-classification" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-middleware" "3.347.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    tslib "^2.5.0"
-    uuid "^8.3.2"
-
-"@aws-sdk/middleware-sdk-sts@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.353.0.tgz#5d2fd703f346e1df8c85f536033920bec8671b84"
-  integrity sha512-GDpjznRBjvCvBfyLEhWb/FSmsnFR+nhBQC0N7d8pqWRqI084sy2ZRyQ6hNDWnImi6AvOabTBSfDm6cB5RexDow==
-  dependencies:
-    "@aws-sdk/middleware-signing" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-serde@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.347.0.tgz#f20a63290e16d631a8aa7d9eb331b139bf2531ac"
-  integrity sha512-x5Foi7jRbVJXDu9bHfyCbhYDH5pKK+31MmsSJ3k8rY8keXLBxm2XEEg/AIoV9/TUF9EeVvZ7F1/RmMpJnWQsEg==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-signing@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.353.0.tgz#085cbbb0b32e1f2475333e1dea6af4c9e97fc0e9"
-  integrity sha512-9WHgnIDavv7FRiDL1M7EVzGiTqqLjcCUW3ZX3oLJJvG4MuWpcStl9KmpnHs8RLabvGj6DSkeZRhh6ZC1r1M1gQ==
-  dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/signature-v4" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-middleware" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-stack@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.347.0.tgz#de8f94349273e1b30e19b6e8ace95a7982a24579"
-  integrity sha512-Izidg4rqtYMcKuvn2UzgEpPLSmyd8ub9+LQ2oIzG3mpIzCBITq7wp40jN1iNkMg+X6KEnX9vdMJIYZsPYMCYuQ==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-user-agent@3.352.0":
-  version "3.352.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.352.0.tgz#ca32fc2296e9b4565c2878ff44c2756a952f42b4"
-  integrity sha512-QGqblMTsVDqeomy22KPm9LUW8PHZXBA2Hjk9Hcw8U1uFS8IKYJrewInG3ae2+9FAcTyug4LFWDf8CRr9YH2B3Q==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
+"@aws-sdk/middleware-signing@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.496.0.tgz#265cb5a9d7825c111c53bb555e5cb2619f804dd1"
+  integrity sha512-Oq73Brs4IConvWnRlh8jM1V7LHoTw9SVQklu/QW2FPlNrB3B8fuTdWHHYIWv7ybw1bykXoCY99v865Mmq/Or/g==
+  dependencies:
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/signature-v4" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-middleware" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/node-config-provider@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.353.0.tgz#c8a002a0ed0f652d44834db115c5ebd70feaad42"
-  integrity sha512-4j0dFHAIa0NwQOPZ/PgkyfCWRaaLhilGbL/cOHkndtUdV54WtG+9+21pKNtakfxncF0irtZvVOv/CW/5x909ZQ==
+"@aws-sdk/middleware-user-agent@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.496.0.tgz#82b49fd8613ae5a9ceafc9117c34271615d0f002"
+  integrity sha512-+iMtRxFk0GmFWNUF4ilxylOQd9PZdR4ZC9jkcPIh1PZlvKtpCyFywKlk5RRZKklSoJ/CttcqwhMvOXTNbWm/0w==
   dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/node-http-handler@3.350.0":
-  version "3.350.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.350.0.tgz#c3d3af4e24e7dc823bdb04c73dcae4d12d8a6221"
-  integrity sha512-oD96GAlmpzYilCdC8wwyURM5lNfNHZCjm/kxBkQulHKa2kRbIrnD9GfDqdCkWA5cTpjh1NzGLT4D6e6UFDjt9w==
+"@aws-sdk/region-config-resolver@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.496.0.tgz#133c8a4a6d5e7672077ba124751f40b2d6efc3ed"
+  integrity sha512-URrNVOPHPgEDm6QFu6lDC2cUFs+Jx23mA3jEwCvoKlXiEY/ZoWjH8wlX3OMUlLrF1qoUTuD03jjrJzF6zoCgug==
   dependencies:
-    "@aws-sdk/abort-controller" "3.347.0"
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/querystring-builder" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-config-provider" "^2.2.1"
+    "@smithy/util-middleware" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/property-provider@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.353.0.tgz#a877ca6d4a165773609eb776483ffb8606f03b7e"
-  integrity sha512-Iu6J59hncaew7eBKroTcLjZ8cgrom0IWyZZ09rsow3rZDHVtw7LQSrUyuqsSbKGY9eRtL7Wa6ZtYHnXFiAE2kg==
+"@aws-sdk/token-providers@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.501.0.tgz#33fc8130ffecfa99b88a54ebaa74ff3225f79875"
+  integrity sha512-MvLPhNxlStmQqVm2crGLUqYWvK/AbMmI9j4FbEfJ15oG/I+730zjSJQEy2MvdiqbJRDPZ/tRCL89bUedOrmi0g==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/protocol-http@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.347.0.tgz#9f61f4e0d892dc0a1e02211963827f386bc447b9"
-  integrity sha512-2YdBhc02Wvy03YjhGwUxF0UQgrPWEy8Iq75pfS42N+/0B/+eWX1aQgfjFxIpLg7YSjT5eKtYOQGlYd4MFTgj9g==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/querystring-builder@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.347.0.tgz#9a6bb16441f32fa05c25dc7e57d4692858824574"
-  integrity sha512-phtKTe6FXoV02MoPkIVV6owXI8Mwr5IBN3bPoxhcPvJG2AjEmnetSIrhb8kwc4oNhlwfZwH6Jo5ARW/VEWbZtg==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-uri-escape" "3.310.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/querystring-parser@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.347.0.tgz#c85213a835c0f02580e013d168d1ee2f6fee65a1"
-  integrity sha512-5VXOhfZz78T2W7SuXf2avfjKglx1VZgZgp9Zfhrt/Rq+MTu2D+PZc5zmJHhYigD7x83jLSLogpuInQpFMA9LgA==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/service-error-classification@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.347.0.tgz#c5a242d953eae0ff0290c776d93b3f5ebd85d2e2"
-  integrity sha512-xZ3MqSY81Oy2gh5g0fCtooAbahqh9VhsF8vcKjVX8+XPbGC8y+kej82+MsMg4gYL8gRFB9u4hgYbNgIS6JTAvg==
-
-"@aws-sdk/shared-ini-file-loader@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.347.0.tgz#f44baf03f632f1a2f4188368ff0770852c0ac035"
-  integrity sha512-Xw+zAZQVLb+xMNHChXQ29tzzLqm3AEHsD8JJnlkeFjeMnWQtXdUfOARl5s8NzAppcKQNlVe2gPzjaKjoy2jz1Q==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/signature-v4@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.347.0.tgz#0f5eb4ec260eb0fe2fe5e3ee6cb011076f3582fa"
-  integrity sha512-58Uq1do+VsTHYkP11dTK+DF53fguoNNJL9rHRWhzP+OcYv3/mBMLoS2WPz/x9FO5mBg4ESFsug0I6mXbd36tjw==
-  dependencies:
-    "@aws-sdk/eventstream-codec" "3.347.0"
-    "@aws-sdk/is-array-buffer" "3.310.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-hex-encoding" "3.310.0"
-    "@aws-sdk/util-middleware" "3.347.0"
-    "@aws-sdk/util-uri-escape" "3.310.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/smithy-client@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.347.0.tgz#ec11b292917f6269eecc124dae723ac6e1203f8f"
-  integrity sha512-PaGTDsJLGK0sTjA6YdYQzILRlPRN3uVFyqeBUkfltXssvUzkm8z2t1lz2H4VyJLAhwnG5ZuZTNEV/2mcWrU7JQ==
-  dependencies:
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/token-providers@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.353.0.tgz#e7dfc4232d2eb252a1af660c24599909a3a95dfc"
-  integrity sha512-tGW36o1tVRf1FtT8HvQ7oCHuoV24XMsEnfErTZik19BZrfakDBeFvZUZ67av6/TBonHdbpBb7dDCJ+nqoG7XCg==
-  dependencies:
-    "@aws-sdk/client-sso-oidc" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/types@3.347.0", "@aws-sdk/types@^3.222.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.347.0.tgz#4affe91de36ef227f6375d64a6efda8d4ececd5d"
-  integrity sha512-GkCMy79mdjU9OTIe5KT58fI/6uqdf8UmMdWqVHmFJ+UpEzOci7L/uw4sOXWo7xpPzLs6cJ7s5ouGZW4GRPmHFA==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/url-parser@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.347.0.tgz#b3c31fc9ffb1ac5586ab088f9b109386e6b4c7a8"
-  integrity sha512-lhrnVjxdV7hl+yCnJfDZOaVLSqKjxN20MIOiijRiqaWGLGEAiSqBreMhL89X1WKCifxAs4zZf9YB9SbdziRpAA==
-  dependencies:
-    "@aws-sdk/querystring-parser" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-base64@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz#d0fd49aff358c5a6e771d0001c63b1f97acbe34c"
-  integrity sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==
-  dependencies:
-    "@aws-sdk/util-buffer-from" "3.310.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-body-length-browser@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz#3fca9d2f73c058edf1907e4a1d99a392fdd23eca"
-  integrity sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-body-length-node@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz#4846ae72834ab0636f29f89fc1878520f6543fed"
-  integrity sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-buffer-from@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz#7a72cb965984d3c6a7e256ae6cf1621f52e54a57"
-  integrity sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==
-  dependencies:
-    "@aws-sdk/is-array-buffer" "3.310.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-config-provider@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz#ff21f73d4774cfd7bd16ae56f905828600dda95f"
-  integrity sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-defaults-mode-browser@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.353.0.tgz#b90b8b354bfb582a9cc7b87b67ce1508d57176ea"
-  integrity sha512-ushvOQKJIH7S6E//xMDPyf2/Bbu0K2A0GJRB88qQV6VKRBo4PEbeHTb6BbzPhYVX0IbY3uR/X7+Xwk4FeEkMWg==
-  dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
-    bowser "^2.11.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-defaults-mode-node@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.353.0.tgz#7d42f237f394f6606e41883ab7b1c41048e8cadd"
-  integrity sha512-wUmv1qr19kjjLwKoc/hVTrZCGTVNssnMWdq7cu6dQoz06kOpYrxLpdQEsj71Lh0+XYFBYUU5c3NRMasnFnl1DQ==
-  dependencies:
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/credential-provider-imds" "3.353.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-crypto/sha256-browser" "3.0.0"
+    "@aws-crypto/sha256-js" "3.0.0"
+    "@aws-sdk/middleware-host-header" "3.496.0"
+    "@aws-sdk/middleware-logger" "3.496.0"
+    "@aws-sdk/middleware-recursion-detection" "3.496.0"
+    "@aws-sdk/middleware-user-agent" "3.496.0"
+    "@aws-sdk/region-config-resolver" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@aws-sdk/util-user-agent-browser" "3.496.0"
+    "@aws-sdk/util-user-agent-node" "3.496.0"
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/hash-node" "^2.1.1"
+    "@smithy/invalid-dependency" "^2.1.1"
+    "@smithy/middleware-content-length" "^2.1.1"
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-body-length-browser" "^2.1.1"
+    "@smithy/util-body-length-node" "^2.2.1"
+    "@smithy/util-defaults-mode-browser" "^2.1.1"
+    "@smithy/util-defaults-mode-node" "^2.1.1"
+    "@smithy/util-endpoints" "^1.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/util-endpoints@3.352.0":
-  version "3.352.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.352.0.tgz#89c10e00a257f88fb72c4d3b362fbfbeb00513cf"
-  integrity sha512-PjWMPdoIUWfBPgAWLyOrWFbdSS/3DJtc0OmFb/JrE8C8rKFYl+VGW5f1p0cVdRWiDR0xCGr0s67p8itAakVqjw==
+"@aws-sdk/types@3.496.0", "@aws-sdk/types@^3.222.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.496.0.tgz#cdde44a94a57cf8f97cf05e4d0bdce2f56ce4eeb"
+  integrity sha512-umkGadK4QuNQaMoDICMm7NKRI/mYSXiyPjcn3d53BhsuArYU/52CebGQKdt4At7SwwsiVJZw9RNBHyN5Mm0HVw==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/util-hex-encoding@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz#19294c78986c90ae33f04491487863dc1d33bd87"
-  integrity sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==
+"@aws-sdk/util-endpoints@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.496.0.tgz#5ce7d3efd7ab67db556e2c199e73826c44d22ecd"
+  integrity sha512-1QzOiWHi383ZwqSi/R2KgKCd7M+6DxkxI5acqLPm8mvDRDP2jRjrnVaC0g9/tlttWousGEemDUWStwrD2mVYSw==
   dependencies:
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-endpoints" "^1.1.1"
     tslib "^2.5.0"
 
 "@aws-sdk/util-locate-window@^3.0.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40"
-  integrity sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-middleware@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.347.0.tgz#464b2e416486776fa39c926e7f04c2a0d822e8b5"
-  integrity sha512-8owqUA3ePufeYTUvlzdJ7Z0miLorTwx+rNol5lourGQZ9JXsVMo23+yGA7nOlFuXSGkoKpMOtn6S0BT2bcfeiw==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-retry@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.347.0.tgz#9a24ebcd6c34888eee0ffb81c1529ea51a5cdecc"
-  integrity sha512-NxnQA0/FHFxriQAeEgBonA43Q9/VPFQa8cfJDuT2A1YZruMasgjcltoZszi1dvoIRWSZsFTW42eY2gdOd0nffQ==
-  dependencies:
-    "@aws-sdk/service-error-classification" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-uri-escape@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz#9f942f09a715d8278875013a416295746b6085ba"
-  integrity sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==
+  version "3.495.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz#9034fd8db77991b28ed20e067acdd53e8b8f824b"
+  integrity sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==
   dependencies:
     tslib "^2.5.0"
 
-"@aws-sdk/util-user-agent-browser@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.347.0.tgz#90bedd2031561b9d45aef54991eeca49ec8d950b"
-  integrity sha512-ydxtsKVtQefgbk1Dku1q7pMkjDYThauG9/8mQkZUAVik55OUZw71Zzr3XO8J8RKvQG8lmhPXuAQ0FKAyycc0RA==
+"@aws-sdk/util-user-agent-browser@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.496.0.tgz#494b086dd8b07acdd6be65034c51545e5bcee37b"
+  integrity sha512-4j2spN+h0I0qfSMsGvJXTfQBu1e18rPdekKvzsGJxhaAE1tNgUfUT4nbvc5uVn0sNjZmirskmJ3kfbzVOrqIFg==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/types" "^2.9.1"
     bowser "^2.11.0"
     tslib "^2.5.0"
 
-"@aws-sdk/util-user-agent-node@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.353.0.tgz#8ed12d7234bb161c201833304db0f9441c309c9a"
-  integrity sha512-wAviGE0NFqGnaBi6JdjCjp/3DA4AprXQayg9fGphRmP6ncOHNHGonPj/60l+Itu+m78V2CbIS76jqCdUtyAZEQ==
+"@aws-sdk/util-user-agent-node@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.496.0.tgz#db14e02cf82af556c826570efc7db1e57de3262d"
+  integrity sha512-h0Ax0jlDc7UIo3KoSI4C4tVLBFoiAdx3+DhTVfgLS7x93d41dMlziPoBX2RgdcFn37qnzw6AQKTVTMwDbRCGpg==
   dependencies:
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
 "@aws-sdk/util-utf8-browser@^3.0.0":
@@ -754,22 +497,14 @@
   dependencies:
     tslib "^2.3.1"
 
-"@aws-sdk/util-utf8@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz#4a7b9dcebb88e830d3811aeb21e9a6df4273afb4"
-  integrity sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==
-  dependencies:
-    "@aws-sdk/util-buffer-from" "3.310.0"
-    tslib "^2.5.0"
-
 "@babel/cli@^7.16.0":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.22.5.tgz#eb323bd69f50297792c2b7c205a97306a305d703"
-  integrity sha512-N5d7MjzwsQ2wppwjhrsicVDhJSqF9labEP/swYiHhio4Ca2XjEehpgPmerjnLQl7BPE59BLud0PTWGYwqFl/cQ==
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.9.tgz#06b3e76376ee53f14ac8ac422c884950c69e1b9e"
+  integrity sha512-vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==
   dependencies:
     "@jridgewell/trace-mapping" "^0.3.17"
     commander "^4.0.1"
-    convert-source-map "^1.1.0"
+    convert-source-map "^2.0.0"
     fs-readdir-recursive "^1.1.0"
     glob "^7.2.0"
     make-dir "^2.1.0"
@@ -778,45 +513,46 @@
     "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
     chokidar "^3.4.0"
 
-"@babel/code-frame@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658"
-  integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==
+"@babel/code-frame@^7.23.5":
+  version "7.23.5"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+  integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
   dependencies:
-    "@babel/highlight" "^7.22.5"
+    "@babel/highlight" "^7.23.4"
+    chalk "^2.4.2"
 
-"@babel/compat-data@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255"
-  integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==
+"@babel/compat-data@^7.23.5":
+  version "7.23.5"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
+  integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
 
 "@babel/core@^7.16.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89"
-  integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1"
+  integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==
   dependencies:
     "@ampproject/remapping" "^2.2.0"
-    "@babel/code-frame" "^7.22.5"
-    "@babel/generator" "^7.22.5"
-    "@babel/helper-compilation-targets" "^7.22.5"
-    "@babel/helper-module-transforms" "^7.22.5"
-    "@babel/helpers" "^7.22.5"
-    "@babel/parser" "^7.22.5"
-    "@babel/template" "^7.22.5"
-    "@babel/traverse" "^7.22.5"
-    "@babel/types" "^7.22.5"
-    convert-source-map "^1.7.0"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/generator" "^7.23.6"
+    "@babel/helper-compilation-targets" "^7.23.6"
+    "@babel/helper-module-transforms" "^7.23.3"
+    "@babel/helpers" "^7.23.9"
+    "@babel/parser" "^7.23.9"
+    "@babel/template" "^7.23.9"
+    "@babel/traverse" "^7.23.9"
+    "@babel/types" "^7.23.9"
+    convert-source-map "^2.0.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
-    json5 "^2.2.2"
-    semver "^6.3.0"
+    json5 "^2.2.3"
+    semver "^6.3.1"
 
-"@babel/generator@^7.22.5", "@babel/generator@^7.4.0":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7"
-  integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==
+"@babel/generator@^7.23.6", "@babel/generator@^7.4.0":
+  version "7.23.6"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
+  integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
   dependencies:
-    "@babel/types" "^7.22.5"
+    "@babel/types" "^7.23.6"
     "@jridgewell/gen-mapping" "^0.3.2"
     "@jridgewell/trace-mapping" "^0.3.17"
     jsesc "^2.5.1"
@@ -828,29 +564,29 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
-"@babel/helper-compilation-targets@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02"
-  integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==
+"@babel/helper-compilation-targets@^7.23.6":
+  version "7.23.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
+  integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
   dependencies:
-    "@babel/compat-data" "^7.22.5"
-    "@babel/helper-validator-option" "^7.22.5"
-    browserslist "^4.21.3"
+    "@babel/compat-data" "^7.23.5"
+    "@babel/helper-validator-option" "^7.23.5"
+    browserslist "^4.22.2"
     lru-cache "^5.1.1"
-    semver "^6.3.0"
+    semver "^6.3.1"
 
-"@babel/helper-environment-visitor@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
-  integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
+"@babel/helper-environment-visitor@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+  integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
 
-"@babel/helper-function-name@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be"
-  integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==
+"@babel/helper-function-name@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+  integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
   dependencies:
-    "@babel/template" "^7.22.5"
-    "@babel/types" "^7.22.5"
+    "@babel/template" "^7.22.15"
+    "@babel/types" "^7.23.0"
 
 "@babel/helper-hoist-variables@^7.22.5":
   version "7.22.5"
@@ -859,26 +595,23 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
-"@babel/helper-module-imports@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
-  integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==
+"@babel/helper-module-imports@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+  integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
   dependencies:
-    "@babel/types" "^7.22.5"
+    "@babel/types" "^7.22.15"
 
-"@babel/helper-module-transforms@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef"
-  integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==
+"@babel/helper-module-transforms@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
+  integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
   dependencies:
-    "@babel/helper-environment-visitor" "^7.22.5"
-    "@babel/helper-module-imports" "^7.22.5"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-module-imports" "^7.22.15"
     "@babel/helper-simple-access" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.5"
-    "@babel/helper-validator-identifier" "^7.22.5"
-    "@babel/template" "^7.22.5"
-    "@babel/traverse" "^7.22.5"
-    "@babel/types" "^7.22.5"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    "@babel/helper-validator-identifier" "^7.22.20"
 
 "@babel/helper-plugin-utils@^7.22.5":
   version "7.22.5"
@@ -892,139 +625,132 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
-"@babel/helper-split-export-declaration@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08"
-  integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-string-parser@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
-  integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
-
-"@babel/helper-validator-identifier@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
-  integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
-
-"@babel/helper-validator-option@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac"
-  integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==
-
-"@babel/helpers@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.5.tgz#74bb4373eb390d1ceed74a15ef97767e63120820"
-  integrity sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==
+"@babel/helper-split-export-declaration@^7.22.6":
+  version "7.22.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+  integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
   dependencies:
-    "@babel/template" "^7.22.5"
-    "@babel/traverse" "^7.22.5"
     "@babel/types" "^7.22.5"
 
-"@babel/highlight@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031"
-  integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.22.5"
-    chalk "^2.0.0"
+"@babel/helper-string-parser@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
+  integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
+
+"@babel/helper-validator-identifier@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+  integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
+"@babel/helper-validator-option@^7.23.5":
+  version "7.23.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
+  integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
+
+"@babel/helpers@^7.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d"
+  integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==
+  dependencies:
+    "@babel/template" "^7.23.9"
+    "@babel/traverse" "^7.23.9"
+    "@babel/types" "^7.23.9"
+
+"@babel/highlight@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+  integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.22.20"
+    chalk "^2.4.2"
     js-tokens "^4.0.0"
 
 "@babel/node@^7.16.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.22.5.tgz#5632c6f5f5d06ac68e34dd1cbe461ef4d5f8e49c"
-  integrity sha512-rguSfZsRNsAhCQ/XjZhDK2CTWxp/jEKx2On8Ir+C6uCZERirg/Ae6fJaOSKQgTg11kA2LEvonpxY2Hb3zF5C8g==
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.23.9.tgz#fc40dc371439f1a45535ebf515232f4f046ef7a9"
+  integrity sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==
   dependencies:
-    "@babel/register" "^7.22.5"
+    "@babel/register" "^7.23.7"
     commander "^4.0.1"
     core-js "^3.30.2"
     node-environment-flags "^1.0.5"
-    regenerator-runtime "^0.13.11"
+    regenerator-runtime "^0.14.0"
     v8flags "^3.1.1"
 
-"@babel/parser@^7.22.5", "@babel/parser@^7.4.3":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea"
-  integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==
+"@babel/parser@^7.23.9", "@babel/parser@^7.4.3":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b"
+  integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==
 
-"@babel/plugin-syntax-jsx@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
-  integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
+"@babel/plugin-syntax-jsx@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473"
+  integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
 "@babel/plugin-transform-react-jsx@^7.16.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416"
-  integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312"
+  integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==
   dependencies:
     "@babel/helper-annotate-as-pure" "^7.22.5"
-    "@babel/helper-module-imports" "^7.22.5"
+    "@babel/helper-module-imports" "^7.22.15"
     "@babel/helper-plugin-utils" "^7.22.5"
-    "@babel/plugin-syntax-jsx" "^7.22.5"
-    "@babel/types" "^7.22.5"
+    "@babel/plugin-syntax-jsx" "^7.23.3"
+    "@babel/types" "^7.23.4"
 
-"@babel/register@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.5.tgz#e4d8d0f615ea3233a27b5c6ada6750ee59559939"
-  integrity sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ==
+"@babel/register@^7.23.7":
+  version "7.23.7"
+  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.23.7.tgz#485a5e7951939d21304cae4af1719fdb887bc038"
+  integrity sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==
   dependencies:
     clone-deep "^4.0.1"
     find-cache-dir "^2.0.0"
     make-dir "^2.1.0"
-    pirates "^4.0.5"
+    pirates "^4.0.6"
     source-map-support "^0.5.16"
 
-"@babel/template@^7.22.5", "@babel/template@^7.4.0":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
-  integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==
+"@babel/template@^7.22.15", "@babel/template@^7.23.9", "@babel/template@^7.4.0":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a"
+  integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==
   dependencies:
-    "@babel/code-frame" "^7.22.5"
-    "@babel/parser" "^7.22.5"
-    "@babel/types" "^7.22.5"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/parser" "^7.23.9"
+    "@babel/types" "^7.23.9"
 
-"@babel/traverse@^7.22.5", "@babel/traverse@^7.4.3":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1"
-  integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==
+"@babel/traverse@^7.23.9", "@babel/traverse@^7.4.3":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950"
+  integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==
   dependencies:
-    "@babel/code-frame" "^7.22.5"
-    "@babel/generator" "^7.22.5"
-    "@babel/helper-environment-visitor" "^7.22.5"
-    "@babel/helper-function-name" "^7.22.5"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/generator" "^7.23.6"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-function-name" "^7.23.0"
     "@babel/helper-hoist-variables" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.5"
-    "@babel/parser" "^7.22.5"
-    "@babel/types" "^7.22.5"
-    debug "^4.1.0"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    "@babel/parser" "^7.23.9"
+    "@babel/types" "^7.23.9"
+    debug "^4.3.1"
     globals "^11.1.0"
 
-"@babel/types@^7.22.5", "@babel/types@^7.4.0":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
-  integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
+"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.23.9", "@babel/types@^7.4.0":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002"
+  integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==
   dependencies:
-    "@babel/helper-string-parser" "^7.22.5"
-    "@babel/helper-validator-identifier" "^7.22.5"
+    "@babel/helper-string-parser" "^7.23.4"
+    "@babel/helper-validator-identifier" "^7.22.20"
     to-fast-properties "^2.0.0"
 
-"@buttercup/fetch@^0.1.1":
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/@buttercup/fetch/-/fetch-0.1.1.tgz#ccdffc74c9aaf95a0b99dd6807441f2019d5de42"
-  integrity sha512-RwBiPEmPaZv3oLOPY0fcmAGYdd3A4FDoYDc7JN+qxGTXumrYAYEC1RpyCM2pHSr6RYpuaAeg4A1fJy+PiigPIA==
-  optionalDependencies:
-    node-fetch "^3.3.0"
-
-"@colors/colors@1.5.0":
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
-  integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
+"@colors/colors@1.6.0", "@colors/colors@^1.6.0":
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0"
+  integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==
 
-"@crowdsec/express-bouncer@*":
+"@crowdsec/express-bouncer@0.1.0":
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/@crowdsec/express-bouncer/-/express-bouncer-0.1.0.tgz#458a604d7fad3ce2acf382bcb17e344fb74e9932"
   integrity sha512-cS5ATNInb914yOubWznMB02lheDLImtIZ8A7n99sn7q2YI+P3Zt6G/Mttp+d1NL1PDUkFBMFlBreOslkcWwLFQ==
@@ -1050,29 +776,29 @@
     kuler "^2.0.0"
 
 "@discordjs/builders@^1.3.0":
-  version "1.6.3"
-  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.6.3.tgz#994b4fe57e77b47096f74bb5a1f664870a930a43"
-  integrity sha512-CTCh8NqED3iecTNuiz49mwSsrc2iQb4d0MjMdmS/8pb69Y4IlzJ/DIy/p5GFlgOrFbNO2WzMHkWKQSiJ3VNXaw==
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.7.0.tgz#e2478c7e55b0f4c40837edb8f102bce977323a37"
+  integrity sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw==
   dependencies:
-    "@discordjs/formatters" "^0.3.1"
-    "@discordjs/util" "^0.3.1"
-    "@sapphire/shapeshift" "^3.8.2"
-    discord-api-types "^0.37.41"
+    "@discordjs/formatters" "^0.3.3"
+    "@discordjs/util" "^1.0.2"
+    "@sapphire/shapeshift" "^3.9.3"
+    discord-api-types "0.37.61"
     fast-deep-equal "^3.1.3"
     ts-mixer "^6.0.3"
-    tslib "^2.5.0"
+    tslib "^2.6.2"
 
 "@discordjs/collection@^1.2.0", "@discordjs/collection@^1.5.1":
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.1.tgz#bc7ca557838dc29247bf19860426637f103bc383"
-  integrity sha512-aWEc9DCf3TMDe9iaJoOnO2+JVAjeRNuRxPZQA6GVvBf+Z3gqUuWYBy2NWh4+5CLYq5uoc3MOvUQ5H5m8CJBqOA==
+  version "1.5.3"
+  resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.3.tgz#5a1250159ebfff9efa4f963cfa7e97f1b291be18"
+  integrity sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==
 
-"@discordjs/formatters@^0.3.1":
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.1.tgz#81393cf25e6e3223361061629752ea727475e842"
-  integrity sha512-M7X4IGiSeh4znwcRGcs+49B5tBkNDn4k5bmhxJDAUhRxRHTiFAOTVUNQ6yAKySu5jZTnCbSvTYHW3w0rAzV1MA==
+"@discordjs/formatters@^0.3.3":
+  version "0.3.3"
+  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.3.tgz#b16fdd79bb819680ab7e519193004e9dc124a749"
+  integrity sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w==
   dependencies:
-    discord-api-types "^0.37.41"
+    discord-api-types "0.37.61"
 
 "@discordjs/rest@^1.3.0":
   version "1.7.1"
@@ -1093,16 +819,38 @@
   resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.1.0.tgz#e42ca1bf407bc6d9adf252877d1b206e32ba369a"
   integrity sha512-e7d+PaTLVQav6rOc2tojh2y6FE8S7REkqLldq1XF4soCx74XB/DIjbVbVLtBemf0nLW77ntz0v+o5DytKwFNLQ==
 
-"@discordjs/util@^0.3.0", "@discordjs/util@^0.3.1":
+"@discordjs/util@^0.3.0":
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.3.1.tgz#4e8737e1dcff7e9f5eccc3116fb44755b65b1e97"
   integrity sha512-HxXKYKg7vohx2/OupUN/4Sd02Ev3PBJ5q0gtjdcvXb0ErCva8jNHWfe/v5sU3UKjIB/uxOhc+TDOnhqffj9pRA==
 
+"@discordjs/util@^1.0.2":
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.0.2.tgz#dc1896d764452b1bd9707eb9aa99ccfbb30bd1c0"
+  integrity sha512-IRNbimrmfb75GMNEjyznqM1tkI7HrZOf14njX7tCAAUetyZM1Pr8hX/EK2lxBCOgWDRmigbp24fD1hdMfQK5lw==
+
+"@fastify/busboy@^2.0.0":
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff"
+  integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==
+
 "@gar/promisify@^1.0.1":
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
   integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
 
+"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0":
+  version "9.3.0"
+  resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
+  integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==
+
+"@hapi/topo@^5.1.0":
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012"
+  integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
+  dependencies:
+    "@hapi/hoek" "^9.0.0"
+
 "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
   version "0.3.3"
   resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
@@ -1112,38 +860,33 @@
     "@jridgewell/sourcemap-codec" "^1.4.10"
     "@jridgewell/trace-mapping" "^0.3.9"
 
-"@jridgewell/resolve-uri@3.1.0":
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
-  integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+"@jridgewell/resolve-uri@^3.1.0":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+  integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
 
 "@jridgewell/set-array@^1.0.1":
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
   integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
 
-"@jridgewell/sourcemap-codec@1.4.14":
-  version "1.4.14"
-  resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
-  integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-
-"@jridgewell/sourcemap-codec@^1.4.10":
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
   version "1.4.15"
   resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
   integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
 
 "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
-  version "0.3.18"
-  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
-  integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
+  version "0.3.22"
+  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c"
+  integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==
   dependencies:
-    "@jridgewell/resolve-uri" "3.1.0"
-    "@jridgewell/sourcemap-codec" "1.4.14"
+    "@jridgewell/resolve-uri" "^3.1.0"
+    "@jridgewell/sourcemap-codec" "^1.4.14"
 
 "@mapbox/node-pre-gyp@^1.0.0":
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c"
-  integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa"
+  integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==
   dependencies:
     detect-libc "^2.0.0"
     https-proxy-agent "^5.0.0"
@@ -1163,7 +906,7 @@
     oauth "0.9.x"
     passport-strategy "1.x.x"
 
-"@mysql/xdevapi@*":
+"@mysql/xdevapi@8.0.33":
   version "8.0.33"
   resolved "https://registry.yarnpkg.com/@mysql/xdevapi/-/xdevapi-8.0.33.tgz#966f71563a2e2a27cb5279fdf72fa9ee41538ec2"
   integrity sha512-SXy+1CMtTb6qyKo/vzj/krWU4Ui6PnEtkkUjwdLpVdxkt0noZdDMmoGUxtMsm+Y2l15tme1MVuYvxMK7RJVfEA==
@@ -1193,60 +936,465 @@
     mkdirp "^1.0.4"
     rimraf "^3.0.2"
 
+"@postman/form-data@~3.1.1":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@postman/form-data/-/form-data-3.1.1.tgz#d0446d0d3639a291f5e800e89fa1d0d3723f9414"
+  integrity sha512-vjh8Q2a8S6UCm/KKs31XFJqEEgmbjBmpPNVV2eVav6905wyFAwaUOBGA1NPBI4ERH9MMZc6w0umFgM6WbEPMdg==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
+"@postman/tough-cookie@~4.1.3-postman.1":
+  version "4.1.3-postman.1"
+  resolved "https://registry.yarnpkg.com/@postman/tough-cookie/-/tough-cookie-4.1.3-postman.1.tgz#9b2aa98f0b42f7e8381ee7e66277cd0253a91f11"
+  integrity sha512-txpgUqZOnWYnUHZpHjkfb0IwVH4qJmyq77pPnJLlfhMtdCLMFTEeQHlzQiK906aaNCe4NEB5fGJHo9uzGbFMeA==
+  dependencies:
+    psl "^1.1.33"
+    punycode "^2.1.1"
+    universalify "^0.2.0"
+    url-parse "^1.5.3"
+
+"@postman/tunnel-agent@^0.6.3":
+  version "0.6.3"
+  resolved "https://registry.yarnpkg.com/@postman/tunnel-agent/-/tunnel-agent-0.6.3.tgz#23048d8d8618d453c571f03189e944afdc2292b7"
+  integrity sha512-k57fzmAZ2PJGxfOA4SGR05ejorHbVAa/84Hxh/2nAztjNXc4ZjOm9NUIk6/Z6LCrBvJZqjRZbN8e/nROVUPVdg==
+  dependencies:
+    safe-buffer "^5.0.1"
+
 "@sapphire/async-queue@^1.5.0":
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.0.tgz#2f255a3f186635c4fb5a2381e375d3dfbc5312d8"
-  integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==
+  version "1.5.2"
+  resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.2.tgz#2982dce16e5b8b1ea792604d20c23c0585877b97"
+  integrity sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==
 
-"@sapphire/shapeshift@^3.8.2":
-  version "3.9.2"
-  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.2.tgz#a9c12cd51e1bc467619bb56df804450dd14871ac"
-  integrity sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA==
+"@sapphire/shapeshift@^3.9.3":
+  version "3.9.6"
+  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.6.tgz#bd9629c08641f5b94ae094e23f092187a3ed9a7d"
+  integrity sha512-4+Na/fxu2SEepZRb9z0dbsVh59QtwPuBg/UVaDib3av7ZY14b14+z09z6QVn0P6Dv6eOU2NDTsjIi0mbtgP56g==
   dependencies:
     fast-deep-equal "^3.1.3"
     lodash "^4.17.21"
 
 "@sapphire/snowflake@^3.2.2", "@sapphire/snowflake@^3.4.2":
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.1.tgz#254521c188b49e8b2d4cc048b475fb2b38737fec"
-  integrity sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==
+  version "3.5.3"
+  resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.3.tgz#0c102aa2ec5b34f806e9bc8625fc6a5e1d0a0c6a"
+  integrity sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==
 
-"@sendgrid/client@^7.7.0":
-  version "7.7.0"
-  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-7.7.0.tgz#f8f67abd604205a0d0b1af091b61517ef465fdbf"
-  integrity sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==
+"@sendgrid/client@^8.1.0":
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-8.1.0.tgz#502865bbffe9442f778a14af1995892f5d4adf14"
+  integrity sha512-Kp2kKLr307v/HnR3uGuySt0AbCkeG7naDVOzfPOtWvKHVZIEHmKidQjJjzytVZNYWtoRdYgNfBw6GyUznGqa6w==
   dependencies:
-    "@sendgrid/helpers" "^7.7.0"
-    axios "^0.26.0"
+    "@sendgrid/helpers" "^8.0.0"
+    axios "^1.6.0"
 
-"@sendgrid/helpers@^7.7.0":
-  version "7.7.0"
-  resolved "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-7.7.0.tgz#93fb4b6e2f0dc65080440d6a784cc93e8e148757"
-  integrity sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==
+"@sendgrid/helpers@^8.0.0":
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-8.0.0.tgz#f74bf9743bacafe4c8573be46166130c604c0fc1"
+  integrity sha512-Ze7WuW2Xzy5GT5WRx+yEv89fsg/pgy3T1E3FS0QEx0/VvRmigMZ5qyVGhJz4SxomegDkzXv/i0aFPpHKN8qdAA==
   dependencies:
     deepmerge "^4.2.2"
 
 "@sendgrid/mail@*":
-  version "7.7.0"
-  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-7.7.0.tgz#aba09f5ce2e9d8ceee92284c3ea8b4a90b0e38fe"
-  integrity sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-8.1.0.tgz#873486233c511f41d98f69290f9664c1d14e205e"
+  integrity sha512-WkE0qwOrJMX9oQ+Xvtl3CdmucD6/iKw6go0VPoPieVlfXc43rbIf91wvtO6m7sKPnzxw3G+8rekBgXibmP4S8Q==
   dependencies:
-    "@sendgrid/client" "^7.7.0"
-    "@sendgrid/helpers" "^7.7.0"
+    "@sendgrid/client" "^8.1.0"
+    "@sendgrid/helpers" "^8.0.0"
 
-"@smithy/protocol-http@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.0.1.tgz#62fd73d73db285fd8e9a2287ed2904ac66e0d43f"
-  integrity sha512-9OrEn0WfOVtBNYJUjUAn9AOiJ4lzERCJJ/JeZs8E6yajTGxBaFRxUnNBHiNqoDJVg076hY36UmEnPx7xXrvUSg==
+"@sideway/address@^4.1.4":
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0"
+  integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==
   dependencies:
-    "@smithy/types" "^1.0.0"
+    "@hapi/hoek" "^9.0.0"
+
+"@sideway/formula@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f"
+  integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==
+
+"@sideway/pinpoint@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
+  integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+
+"@smithy/abort-controller@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.1.1.tgz#bb68596a7c8213c2ef259bc7fb0f0c118c67ea9d"
+  integrity sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q==
+  dependencies:
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@smithy/types@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.0.0.tgz#87ab6131fe5e19cbd4d383ffb94d2b806d027d38"
-  integrity sha512-kc1m5wPBHQCTixwuaOh9vnak/iJm21DrSf9UK6yDE5S3mQQ4u11pqAUiKWnlrZnYkeLfAI9UEHj9OaMT1v5Umg==
+"@smithy/config-resolver@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.1.1.tgz#fc6b036084b98fd26a8ff01a5d7eb676e41749c7"
+  integrity sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw==
+  dependencies:
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-config-provider" "^2.2.1"
+    "@smithy/util-middleware" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/core@^1.3.1":
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.3.1.tgz#ecedc564e68453b02c20db9e8435d59005c066d8"
+  integrity sha512-tf+NIu9FkOh312b6M9G4D68is4Xr7qptzaZGZUREELF8ysE1yLKphqt7nsomjKZVwW7WE5pDDex9idowNGRQ/Q==
+  dependencies:
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-middleware" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/credential-provider-imds@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz#4805bf5e104718b959cf8699113fa9de6ddeeafa"
+  integrity sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA==
+  dependencies:
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/eventstream-codec@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz#4405ab0f9c77d439c575560c4886e59ee17d6d38"
+  integrity sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw==
   dependencies:
+    "@aws-crypto/crc32" "3.0.0"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-hex-encoding" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/fetch-http-handler@^2.4.1":
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz#b4d73bbc1449f61234077d58c705b843a8587bf0"
+  integrity sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg==
+  dependencies:
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/querystring-builder" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-base64" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/hash-node@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.1.1.tgz#0f8a22d97565ca948724f72267e4d3a2f33740a8"
+  integrity sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-buffer-from" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/invalid-dependency@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz#bd69fa24dd35e9bc65a160bd86becdf1399e4463"
+  integrity sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/is-array-buffer@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz#07b4c77ae67ed58a84400c76edd482271f9f957b"
+  integrity sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/middleware-content-length@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz#df767de12d594bc5622009fb0fc8343522697d8c"
+  integrity sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g==
+  dependencies:
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/middleware-endpoint@^2.4.1":
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz#9e500df4d944741808e92018ccd2e948b598a49f"
+  integrity sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q==
+  dependencies:
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-middleware" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/middleware-retry@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz#ddc749dd927f136714f76ca5a52dcfb0993ee162"
+  integrity sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA==
+  dependencies:
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/service-error-classification" "^2.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-middleware" "^2.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    tslib "^2.5.0"
+    uuid "^8.3.2"
+
+"@smithy/middleware-serde@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz#2c5750f76e276a5249720f6c3c24fac29abbee16"
+  integrity sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/middleware-stack@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz#67f992dc36e8a6861f881f80a81c1c30956a0396"
+  integrity sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/node-config-provider@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz#c440c7948d58d72f0e212aa1967aa12f0729defd"
+  integrity sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg==
+  dependencies:
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/node-http-handler@^2.3.1":
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz#77d23279ff0a12cbe7cde93c5e7c0e86ad56dd20"
+  integrity sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA==
+  dependencies:
+    "@smithy/abort-controller" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/querystring-builder" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/property-provider@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.1.1.tgz#0f7ffc5e43829eaca5b2b5aae8554807a52b30f3"
+  integrity sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/protocol-http@^3.1.1":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.1.1.tgz#eee522d0ed964a72b735d64925e07bcfb7a7806f"
+  integrity sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/querystring-builder@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz#b9693448ad3f8e0767d84cf5cae29f35514591fb"
+  integrity sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-uri-escape" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/querystring-parser@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz#a4282a66cc56844317dbff824e573f469bbfc032"
+  integrity sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/service-error-classification@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz#dd24e1ec529ae9ec8e87d8b15f0fc8f7e17f3d02"
+  integrity sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+
+"@smithy/shared-ini-file-loader@^2.3.1":
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz#a2e28b4d85f8a8262a84403fa2b74a086b3a7703"
+  integrity sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/signature-v4@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.1.1.tgz#6080171e3d694f40d3f553bbc236c5c433efd4d2"
+  integrity sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg==
+  dependencies:
+    "@smithy/eventstream-codec" "^2.1.1"
+    "@smithy/is-array-buffer" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-hex-encoding" "^2.1.1"
+    "@smithy/util-middleware" "^2.1.1"
+    "@smithy/util-uri-escape" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/smithy-client@^2.3.1":
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.3.1.tgz#0c3a4a0d3935c7ad2240cc23181f276705212b1f"
+  integrity sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA==
+  dependencies:
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-stream" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/types@^2.9.1":
+  version "2.9.1"
+  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.9.1.tgz#ed04d4144eed3b8bd26d20fc85aae8d6e357ebb9"
+  integrity sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/url-parser@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.1.1.tgz#a30de227b6734650d740b6dff74d488b874e85e3"
+  integrity sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q==
+  dependencies:
+    "@smithy/querystring-parser" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-base64@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.1.1.tgz#af729085cc9d92ebd54a5d2c5d0aa5a0c31f83bf"
+  integrity sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==
+  dependencies:
+    "@smithy/util-buffer-from" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/util-body-length-browser@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz#1fc77072768013ae646415eedb9833cd252d055d"
+  integrity sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-body-length-node@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz#a6f5c9911f1c3e23efb340d5ce7a590b62f2056e"
+  integrity sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-buffer-from@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz#f9346bf8b23c5ba6f6bdb61dd9db779441ba8d08"
+  integrity sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==
+  dependencies:
+    "@smithy/is-array-buffer" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/util-config-provider@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz#aea0a80236d6cedaee60473802899cff4a8cc0ba"
+  integrity sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-defaults-mode-browser@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.1.tgz#be9ac82acee6ec4821b610e7187b0e147f0ba8ff"
+  integrity sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA==
+  dependencies:
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    bowser "^2.11.0"
+    tslib "^2.5.0"
+
+"@smithy/util-defaults-mode-node@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz#0910ee00aac3e8a08aac3e6ae8794e52f3efef02"
+  integrity sha512-tYVrc+w+jSBfBd267KDnvSGOh4NMz+wVH7v4CClDbkdPfnjvImBZsOURncT5jsFwR9KCuDyPoSZq4Pa6+eCUrA==
+  dependencies:
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/credential-provider-imds" "^2.2.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-endpoints@^1.1.1":
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz#45426dba6fb42282a0ad955600b2b3ba050d118f"
+  integrity sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw==
+  dependencies:
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-hex-encoding@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz#978252b9fb242e0a59bae4ead491210688e0d15f"
+  integrity sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-middleware@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.1.1.tgz#903ba19bb17704f4b476fb9ade9bf9eb0174bc3d"
+  integrity sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-retry@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.1.1.tgz#f2d3566b6e5b841028c7240c852007d4037e49b2"
+  integrity sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA==
+  dependencies:
+    "@smithy/service-error-classification" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-stream@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.1.1.tgz#3ae0e88c3a1a45899e29c1655d2e5a3865b6c0a6"
+  integrity sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ==
+  dependencies:
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-buffer-from" "^2.1.1"
+    "@smithy/util-hex-encoding" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/util-uri-escape@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz#7eedc93b73ecda68f12fb9cf92e9fa0fbbed4d83"
+  integrity sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-utf8@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.1.1.tgz#690018dd28f47f014114497735e51417ea5900a6"
+  integrity sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==
+  dependencies:
+    "@smithy/util-buffer-from" "^2.1.1"
     tslib "^2.5.0"
 
 "@tokenizer/token@^0.3.0":
@@ -1265,9 +1413,9 @@
   integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
 
 "@types/geojson@^7946.0.10":
-  version "7946.0.10"
-  resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249"
-  integrity sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==
+  version "7946.0.13"
+  resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.13.tgz#e6e77ea9ecf36564980a861e24e62a095988775e"
+  integrity sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==
 
 "@types/ldapjs@^2.2.2":
   version "2.2.5"
@@ -1277,14 +1425,16 @@
     "@types/node" "*"
 
 "@types/node@*":
-  version "20.3.1"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
-  integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
+  version "20.11.9"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.9.tgz#959d436f20ce2ee3df897c3eaa0617c98fa70efb"
+  integrity sha512-CQXNuMoS/VcoAMISe5pm4JnEd1Br5jildbQEToEMQvutmv+EaQr90ry9raiudgpyDuqFiV9e4rnjSfLNq12M5w==
+  dependencies:
+    undici-types "~5.26.4"
 
 "@types/node@^14.14.14":
-  version "14.18.51"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.51.tgz#cb90935b89c641201c3d07a595c3e22d1cfaa417"
-  integrity sha512-P9bsdGFPpVtofEKlhWMVS2qqx1A/rt9QBfihWlklfHHpUpjtYse5AzFz6j4DWrARLYh6gRnw9+5+DJcrq3KvBA==
+  version "14.18.63"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b"
+  integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==
 
 "@types/node@^17.0.45":
   version "17.0.45"
@@ -1292,14 +1442,14 @@
   integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
 
 "@types/triple-beam@^1.3.2":
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8"
-  integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c"
+  integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==
 
 "@types/webidl-conversions@*":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7"
-  integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859"
+  integrity sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==
 
 "@types/whatwg-url@^8.2.1":
   version "8.2.2"
@@ -1310,16 +1460,16 @@
     "@types/webidl-conversions" "*"
 
 "@types/ws@^8.5.3":
-  version "8.5.5"
-  resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb"
-  integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==
+  version "8.5.10"
+  resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787"
+  integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==
   dependencies:
     "@types/node" "*"
 
 "@xmldom/xmldom@^0.7.0", "@xmldom/xmldom@^0.7.6", "@xmldom/xmldom@^0.7.9":
-  version "0.7.11"
-  resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.11.tgz#adecc134521274711d071d5b0200907cc83b38ee"
-  integrity sha512-UDi3g6Jss/W5FnSzO9jCtQwEpfymt0M+sPPlmLhDH6h2TJ8j4ESE/LpmNPBij15J5NKkk4/cg/qoVMdWI3vnlQ==
+  version "0.7.13"
+  resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.13.tgz#ff34942667a4e19a9f4a0996a76814daac364cf3"
+  integrity sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==
 
 "@xmpp/base64@^0.13.1":
   version "0.13.1"
@@ -1353,7 +1503,7 @@
     "@xmpp/jid" "^0.9.2"
     "@xmpp/xml" "^0.9.2"
 
-"@xmpp/client@*":
+"@xmpp/client@0.13.1":
   version "0.13.1"
   resolved "https://registry.yarnpkg.com/@xmpp/client/-/client-0.13.1.tgz#6c8db3cd308479ef17b8f78e2eda9a68b4ebd2d6"
   integrity sha512-DA+pOkWliTKN5C0Bod4rqlZ4hj/CiqQDHRhQgpx7Y/69qsUwK8M/9C02qylpyZSL2TFGzOM6ZMhr/jlMCsL9jQ==
@@ -1753,7 +1903,7 @@
   resolved "https://registry.yarnpkg.com/@yetzt/binary-search-tree/-/binary-search-tree-0.2.6.tgz#91b2d861c089da0bfbeceb5deeca57b81c4210ec"
   integrity sha512-e/8wt8AAumI8VK5sv09b3IgWuRoblXJ5z0SQYfrL2nap89oKihvVaP1zy3FzD5NaeRi1X0gdXZA9lB3QAZILBg==
 
-"@yetzt/nedb@^1.8.0":
+"@yetzt/nedb@1.8.0":
   version "1.8.0"
   resolved "https://registry.yarnpkg.com/@yetzt/nedb/-/nedb-1.8.0.tgz#c0e03bfd5f9e76045d4e4baacbebd271cb221258"
   integrity sha512-1hUV/eIPSCRb4Vs9dgLekBCCawWNtf29immIF9kvzxnnnEoWgyFSDZgFvlFCiQ3Bzo8ifXn92HDS3l9fNvmtzA==
@@ -1787,19 +1937,19 @@ accepts@~1.3.5, accepts@~1.3.8:
     mime-types "~2.1.34"
     negotiator "0.6.3"
 
-acebase-core@^1.27.1:
-  version "1.27.2"
-  resolved "https://registry.yarnpkg.com/acebase-core/-/acebase-core-1.27.2.tgz#4e33d27d9e1c3b60293bcdf84691414aeb4060fa"
-  integrity sha512-GlGVL3tjCUhGT5hMF9IO+mBWW7/xPmbKCKqPYvwJo8A8r4XIIdMwnOm+S357DregD516vZlVyXueBA9IYEVz7A==
+acebase-core@^1.27.5:
+  version "1.27.5"
+  resolved "https://registry.yarnpkg.com/acebase-core/-/acebase-core-1.27.5.tgz#58697bdeae60250d009619b07fb60fe8a8123d0e"
+  integrity sha512-mogTRyHg+5/TYp6puXcdhTUmupPLGyWSBpzf/1gXANEk/QffaPvEFGzolJ5fTIVFl3UhVoYcUj2jEDbQHmGGMQ==
   optionalDependencies:
     rxjs ">= 5.x <= 7.x"
 
-acebase@*:
-  version "1.29.0"
-  resolved "https://registry.yarnpkg.com/acebase/-/acebase-1.29.0.tgz#d2908bac7e7fe4e7f3286a90611af669b4b55007"
-  integrity sha512-BUNo73stR0BNxoKX1QJiz8xwz/K/yEHh7DRxNlsc2l/1QyEzFl97lRtf8dT+QQGHBBloiKW2YHjhpuOTikzrRQ==
+acebase@1.29.5:
+  version "1.29.5"
+  resolved "https://registry.yarnpkg.com/acebase/-/acebase-1.29.5.tgz#0b1303931528e11fe9274f9ef348c71f11fcb439"
+  integrity sha512-NLA+0nLm2+Rg10M4IKfCpIYQN1Fp3bb8meil+8ttDOUqydvr2OnmpxA5F9COzb3R+OH652IKEelUBTDQlsoAnw==
   dependencies:
-    acebase-core "^1.27.1"
+    acebase-core "^1.27.5"
     unidecode "^0.1.8"
 
 acme-client@4.2.5:
@@ -1881,12 +2031,10 @@ agent-base@^7.0.2:
     debug "^4.3.4"
 
 agentkeepalive@^4.1.3:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255"
-  integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923"
+  integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==
   dependencies:
-    debug "^4.1.0"
-    depd "^2.0.0"
     humanize-ms "^1.2.1"
 
 aggregate-error@^3.0.0:
@@ -2031,7 +2179,23 @@ archiver-utils@^2.1.0:
     normalize-path "^3.0.0"
     readable-stream "^2.0.0"
 
-archiver-zip-encrypted@*:
+archiver-utils@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7"
+  integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==
+  dependencies:
+    glob "^7.2.3"
+    graceful-fs "^4.2.0"
+    lazystream "^1.0.0"
+    lodash.defaults "^4.2.0"
+    lodash.difference "^4.5.0"
+    lodash.flatten "^4.4.0"
+    lodash.isplainobject "^4.0.6"
+    lodash.union "^4.6.0"
+    normalize-path "^3.0.0"
+    readable-stream "^3.6.0"
+
+archiver-zip-encrypted@1.0.11:
   version "1.0.11"
   resolved "https://registry.yarnpkg.com/archiver-zip-encrypted/-/archiver-zip-encrypted-1.0.11.tgz#43a7b9ebba56c6689132b58e556df13e6ddd5878"
   integrity sha512-uXQzXSrZKW7TZ1g4BhfJFt1KjlKqY4SnCgDS6QhQKJoAriPXPKqhFQbvaIirWcR0pi5h3UF5Ktau7FVnS3AsGw==
@@ -2044,16 +2208,16 @@ archiver-zip-encrypted@*:
     crc32-stream "^4.0.2"
     zip-stream "^4.1.0"
 
-archiver@5.3.1, archiver@^5.3.0:
-  version "5.3.1"
-  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6"
-  integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==
+archiver@5.3.2, archiver@^5.3.0:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0"
+  integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==
   dependencies:
     archiver-utils "^2.1.0"
-    async "^3.2.3"
+    async "^3.2.4"
     buffer-crc32 "^0.2.1"
     readable-stream "^3.6.0"
-    readdir-glob "^1.0.0"
+    readdir-glob "^1.1.2"
     tar-stream "^2.2.0"
     zip-stream "^4.1.0"
 
@@ -2172,21 +2336,29 @@ array-unique@^0.3.2:
   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
   integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==
 
-array.prototype.reduce@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac"
-  integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==
+array.prototype.reduce@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5"
+  integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
     es-array-method-boxes-properly "^1.0.0"
     is-string "^1.0.7"
 
-arrify@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
-  integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
+arraybuffer.prototype.slice@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12"
+  integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==
+  dependencies:
+    array-buffer-byte-length "^1.0.0"
+    call-bind "^1.0.2"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
+    get-intrinsic "^1.2.1"
+    is-array-buffer "^3.0.2"
+    is-shared-array-buffer "^1.0.2"
 
 asap@~2.0.3:
   version "2.0.6"
@@ -2254,10 +2426,10 @@ async@^2.0.1:
   dependencies:
     lodash "^4.17.14"
 
-async@^3.2.0, async@^3.2.3, async@~3.2.0:
-  version "3.2.4"
-  resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
-  integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
+async@^3.2.0, async@^3.2.3, async@^3.2.4, async@~3.2.0:
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66"
+  integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
 
 async@~0.9.0:
   version "0.9.2"
@@ -2289,12 +2461,12 @@ aws-sign@~0.3.0:
   resolved "https://registry.yarnpkg.com/aws-sign/-/aws-sign-0.3.0.tgz#3d81ca69b474b1e16518728b51c24ff0bbedc6e9"
   integrity sha512-pEMJAknifcXqXqYVXzGPIu8mJvxtJxIdpVpAs8HNS+paT+9srRUDMQn+3hULS7WbLmttcmvgMvnDcFujqXJyPw==
 
-aws4@^1.8.0:
+aws4@^1.12.0, aws4@^1.8.0:
   version "1.12.0"
   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
   integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
 
-axios@0.26.1, axios@^0.26.0, axios@^0.26.1:
+axios@0.26.1, axios@^0.26.1:
   version "0.26.1"
   resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
   integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
@@ -2308,6 +2480,23 @@ axios@^0.21.1:
   dependencies:
     follow-redirects "^1.14.0"
 
+axios@^0.27.2:
+  version "0.27.2"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
+  integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
+  dependencies:
+    follow-redirects "^1.14.9"
+    form-data "^4.0.0"
+
+axios@^1.6.0:
+  version "1.6.7"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7"
+  integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==
+  dependencies:
+    follow-redirects "^1.15.4"
+    form-data "^4.0.0"
+    proxy-from-env "^1.1.0"
+
 babel-cli@^6.16.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
@@ -2821,7 +3010,7 @@ base-64@^1.0.0:
   resolved "https://registry.yarnpkg.com/base-64/-/base-64-1.0.0.tgz#09d0f2084e32a3fd08c2475b973788eee6ae8f4a"
   integrity sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==
 
-base64-js@^1.3.0, base64-js@^1.3.1:
+base64-js@^1.1.2, base64-js@^1.3.0, base64-js@^1.3.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
   integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -2857,19 +3046,14 @@ bcryptjs@^2.4.0:
   integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==
 
 big-integer@^1.6.48:
-  version "1.6.51"
-  resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
-  integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
-
-bignumber.js@9.0.0:
-  version "9.0.0"
-  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075"
-  integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==
+  version "1.6.52"
+  resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85"
+  integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==
 
 bignumber.js@^9.0.0, bignumber.js@^9.0.1:
-  version "9.1.1"
-  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6"
-  integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==
+  version "9.1.2"
+  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c"
+  integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==
 
 binary-extensions@^1.0.0:
   version "1.13.1"
@@ -2915,6 +3099,11 @@ bl@^4.0.2, bl@^4.0.3:
     inherits "^2.0.4"
     readable-stream "^3.4.0"
 
+bluebird@^2.6.2:
+  version "2.11.0"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1"
+  integrity sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==
+
 bluebird@^3.3.5, bluebird@^3.5.0:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@@ -2948,7 +3137,7 @@ body-parser@1.20.1:
     type-is "~1.6.18"
     unpipe "1.0.0"
 
-body-parser@^1.19.0:
+body-parser@1.20.2:
   version "1.20.2"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
   integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
@@ -3025,15 +3214,22 @@ braces@^3.0.2, braces@~3.0.2:
   dependencies:
     fill-range "^7.0.1"
 
-browserslist@^4.21.3:
-  version "4.21.9"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635"
-  integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==
+brotli@^1.3.3:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.3.tgz#7365d8cc00f12cf765d2b2c898716bcf4b604d48"
+  integrity sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==
   dependencies:
-    caniuse-lite "^1.0.30001503"
-    electron-to-chromium "^1.4.431"
-    node-releases "^2.0.12"
-    update-browserslist-db "^1.0.11"
+    base64-js "^1.1.2"
+
+browserslist@^4.22.2:
+  version "4.22.3"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6"
+  integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==
+  dependencies:
+    caniuse-lite "^1.0.30001580"
+    electron-to-chromium "^1.4.648"
+    node-releases "^2.0.14"
+    update-browserslist-db "^1.0.13"
 
 bson@^1.1.4:
   version "1.1.6"
@@ -3084,9 +3280,9 @@ buffer@^6.0.3:
     ieee754 "^1.2.1"
 
 bufferutil@^4.0.1, bufferutil@^4.0.3:
-  version "4.0.7"
-  resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad"
-  integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea"
+  integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==
   dependencies:
     node-gyp-build "^4.3.0"
 
@@ -3108,13 +3304,6 @@ bulk-write-stream@^2.0.0:
     inherits "^2.0.3"
     readable-stream "^3.1.1"
 
-busboy@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
-  integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
-  dependencies:
-    streamsearch "^1.1.0"
-
 byte-length@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/byte-length/-/byte-length-1.0.2.tgz#ba5a5909240b0121c079b7f7b15248d6f08223cc"
@@ -3190,13 +3379,14 @@ caching-transform@^3.0.2:
     package-hash "^3.0.0"
     write-file-atomic "^2.4.2"
 
-call-bind@^1.0.0, call-bind@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
-  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
+  integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
   dependencies:
-    function-bind "^1.1.1"
-    get-intrinsic "^1.0.2"
+    function-bind "^1.1.2"
+    get-intrinsic "^1.2.1"
+    set-function-length "^1.1.1"
 
 camel-case@^3.0.0:
   version "3.0.0"
@@ -3221,10 +3411,10 @@ camelcase@^5.0.0:
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
-caniuse-lite@^1.0.30001503:
-  version "1.0.30001503"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001503.tgz#88b6ff1b2cf735f1f3361dc1a15b59f0561aa398"
-  integrity sha512-Sf9NiF+wZxPfzv8Z3iS0rXM1Do+iOy2Lxvib38glFX+08TCYYYGR5fRJXk4d77C4AYwhUjgYgMsMudbh2TqCKw==
+caniuse-lite@^1.0.30001580:
+  version "1.0.30001581"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4"
+  integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==
 
 caseless@~0.12.0:
   version "0.12.0"
@@ -3265,7 +3455,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
     strip-ansi "^3.0.0"
     supports-color "^2.0.0"
 
-chalk@^2.0.0:
+chalk@^2.4.2:
   version "2.4.2"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
   integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3632,14 +3822,14 @@ commondir@^1.0.1:
   integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
 
 component-emitter@^1.2.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
-  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17"
+  integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==
 
-compress-commons@^4.1.0, compress-commons@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d"
-  integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==
+compress-commons@^4.1.1, compress-commons@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df"
+  integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==
   dependencies:
     buffer-crc32 "^0.2.13"
     crc32-stream "^4.0.2"
@@ -3653,7 +3843,7 @@ compressible@~2.0.16:
   dependencies:
     mime-db ">= 1.43.0 < 2"
 
-compression@^1.7.4:
+compression@1.7.4:
   version "1.7.4"
   resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
   integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
@@ -3680,6 +3870,11 @@ config-master@^2.0.4:
     feature-detect-es6 "^1.3.1"
     walk-back "^2.0.1"
 
+connect-flash@*:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/connect-flash/-/connect-flash-0.1.1.tgz#d8630f26d95a7f851f9956b1e8cc6732f3b6aa30"
+  integrity sha512-2rcfELQt/ZMP+SM/pG8PyhJRaLKp+6Hk2IUBNkEit09X+vwn3QsAL3ZbYtxUn7NVPzbMTSLRDhqe0B/eh30RYA==
+
 console-control-strings@^1.0.0, console-control-strings@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
@@ -3697,11 +3892,16 @@ content-type@~1.0.4, content-type@~1.0.5:
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
   integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
 
-convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0:
   version "1.9.0"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
   integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
 
+convert-source-map@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+  integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
 cookie-jar@~0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/cookie-jar/-/cookie-jar-0.3.0.tgz#bc9a27d4e2b97e186cd57c9e2063cb99fa68cccc"
@@ -3746,9 +3946,9 @@ core-js@^2.0.1, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
   integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
 
 core-js@^3.30.2:
-  version "3.31.0"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.31.0.tgz#4471dd33e366c79d8c0977ed2d940821719db344"
-  integrity sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==
+  version "3.35.1"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.1.tgz#9c28f8b7ccee482796f8590cc8d15739eaaf980c"
+  integrity sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==
 
 core-util-is@1.0.2:
   version "1.0.2"
@@ -3771,10 +3971,10 @@ cp-file@^6.2.0:
     pify "^4.0.1"
     safe-buffer "^5.0.1"
 
-cpu-features@~0.0.7:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.8.tgz#a2d464b023b8ad09004c8cdca23b33f192f63546"
-  integrity sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==
+cpu-features@~0.0.9:
+  version "0.0.9"
+  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc"
+  integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ==
   dependencies:
     buildcheck "~0.0.6"
     nan "^2.17.0"
@@ -3785,9 +3985,9 @@ crc-32@^1.2.0:
   integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
 
 crc32-stream@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007"
-  integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33"
+  integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==
   dependencies:
     crc-32 "^1.2.0"
     readable-stream "^3.4.0"
@@ -3862,11 +4062,6 @@ dashdash@^1.12.0:
   dependencies:
     assert-plus "^1.0.0"
 
-data-uri-to-buffer@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e"
-  integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==
-
 data-urls@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4"
@@ -3881,10 +4076,10 @@ dateformat@~4.6.2:
   resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5"
   integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==
 
-dayjs@^1.8.29:
-  version "1.11.8"
-  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea"
-  integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==
+dayjs@^1.11.9:
+  version "1.11.10"
+  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
+  integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
 
 ddata@~0.1.25:
   version "0.1.28"
@@ -3907,13 +4102,6 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
   dependencies:
     ms "2.0.0"
 
-debug@3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
-  integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
-  dependencies:
-    ms "2.0.0"
-
 debug@3.2.7:
   version "3.2.7"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
@@ -3921,7 +4109,7 @@ debug@3.2.7:
   dependencies:
     ms "^2.1.1"
 
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
   version "4.3.4"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
   integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -3965,11 +4153,21 @@ defer-promise@^1.0.0:
   resolved "https://registry.yarnpkg.com/defer-promise/-/defer-promise-1.0.2.tgz#b79521c59cadadaed2d305385d30f8b05cbf9196"
   integrity sha512-5a0iWJvnon50nLLqHPW83pX45BLb4MmlSa1sIg05NBhZoK5EZGz1s8qoZ3888dVGGOT0Ni01NdETuAgdJUZknA==
 
-define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5"
-  integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==
+define-data-property@^1.0.1, define-data-property@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
+  integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
+  dependencies:
+    get-intrinsic "^1.2.1"
+    gopd "^1.0.1"
+    has-property-descriptors "^1.0.0"
+
+define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+  integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
   dependencies:
+    define-data-property "^1.0.1"
     has-property-descriptors "^1.0.0"
     object-keys "^1.1.1"
 
@@ -4020,7 +4218,7 @@ denque@^2.1.0:
   resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
   integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
 
-depd@2.0.0, depd@^2.0.0, depd@~2.0.0:
+depd@2.0.0, depd@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
   integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
@@ -4048,9 +4246,9 @@ detect-indent@^4.0.0:
     repeating "^2.0.0"
 
 detect-libc@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd"
-  integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d"
+  integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==
 
 dir_cache@^1.0.1:
   version "1.0.3"
@@ -4061,10 +4259,15 @@ dir_cache@^1.0.1:
     minify-js "0.0.2"
     utils-igor "^1.0.4"
 
+discord-api-types@0.37.61:
+  version "0.37.61"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.61.tgz#9dd8e58c624237e6f1b23be2d29579af268b8c5b"
+  integrity sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw==
+
 discord-api-types@^0.37.12, discord-api-types@^0.37.41:
-  version "0.37.45"
-  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.45.tgz#83f91accfdf339658c60191108b9648d24a4eaf8"
-  integrity sha512-r9m/g+YQfo7XWMrl645jvMlYoWF8lvns/ch4NCxsz/FbingrECu97LFSD2zKOvgHaSc90BHP8wgshaMcA2/c6Q==
+  version "0.37.67"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.67.tgz#c4280aa122104ea74e103884ba27e8218210bef8"
+  integrity sha512-4HEzUEmwGPXWJdVhGZ/K+9eWs8kurdn5r/I8qD3/0hb14I0MZvx8K/JOyLhKLgcR4/8/jcr6Xej820BNgNXN7A==
 
 discord.js@14.6.0:
   version "14.6.0"
@@ -4168,10 +4371,10 @@ ee-first@1.1.1:
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
   integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
 
-electron-to-chromium@^1.4.431:
-  version "1.4.432"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.432.tgz#154a69d5ead974347f534aea4d28b03c7149fd7b"
-  integrity sha512-yz3U/khQgAFT2HURJA3/F4fKIyO2r5eK09BQzBZFd6BvBSSaRuzKc2ZNBHtJcO75/EKiRYbVYJZ2RB0P4BuD2g==
+electron-to-chromium@^1.4.648:
+  version "1.4.648"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4"
+  integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg==
 
 emoji-regex@^7.0.1:
   version "7.0.3"
@@ -4234,25 +4437,26 @@ error-ex@^1.2.0, error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2:
-  version "1.21.2"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff"
-  integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==
+es-abstract@^1.22.1:
+  version "1.22.3"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32"
+  integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==
   dependencies:
     array-buffer-byte-length "^1.0.0"
+    arraybuffer.prototype.slice "^1.0.2"
     available-typed-arrays "^1.0.5"
-    call-bind "^1.0.2"
+    call-bind "^1.0.5"
     es-set-tostringtag "^2.0.1"
     es-to-primitive "^1.2.1"
-    function.prototype.name "^1.1.5"
-    get-intrinsic "^1.2.0"
+    function.prototype.name "^1.1.6"
+    get-intrinsic "^1.2.2"
     get-symbol-description "^1.0.0"
     globalthis "^1.0.3"
     gopd "^1.0.1"
-    has "^1.0.3"
     has-property-descriptors "^1.0.0"
     has-proto "^1.0.1"
     has-symbols "^1.0.3"
+    hasown "^2.0.0"
     internal-slot "^1.0.5"
     is-array-buffer "^3.0.2"
     is-callable "^1.2.7"
@@ -4260,19 +4464,23 @@ es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2:
     is-regex "^1.1.4"
     is-shared-array-buffer "^1.0.2"
     is-string "^1.0.7"
-    is-typed-array "^1.1.10"
+    is-typed-array "^1.1.12"
     is-weakref "^1.0.2"
-    object-inspect "^1.12.3"
+    object-inspect "^1.13.1"
     object-keys "^1.1.1"
     object.assign "^4.1.4"
-    regexp.prototype.flags "^1.4.3"
+    regexp.prototype.flags "^1.5.1"
+    safe-array-concat "^1.0.1"
     safe-regex-test "^1.0.0"
-    string.prototype.trim "^1.2.7"
-    string.prototype.trimend "^1.0.6"
-    string.prototype.trimstart "^1.0.6"
+    string.prototype.trim "^1.2.8"
+    string.prototype.trimend "^1.0.7"
+    string.prototype.trimstart "^1.0.7"
+    typed-array-buffer "^1.0.0"
+    typed-array-byte-length "^1.0.0"
+    typed-array-byte-offset "^1.0.0"
     typed-array-length "^1.0.4"
     unbox-primitive "^1.0.2"
-    which-typed-array "^1.1.9"
+    which-typed-array "^1.1.13"
 
 es-array-method-boxes-properly@^1.0.0:
   version "1.0.0"
@@ -4280,13 +4488,13 @@ es-array-method-boxes-properly@^1.0.0:
   integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
 
 es-set-tostringtag@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8"
-  integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9"
+  integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==
   dependencies:
-    get-intrinsic "^1.1.3"
-    has "^1.0.3"
+    get-intrinsic "^1.2.2"
     has-tostringtag "^1.0.0"
+    hasown "^2.0.0"
 
 es-to-primitive@^1.2.1:
   version "1.2.1"
@@ -4351,7 +4559,7 @@ espree@~3.1.7:
     acorn "^3.3.0"
     acorn-jsx "^3.0.0"
 
-esprima@*, esprima@^4.0.0:
+esprima@4.0.1, esprima@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
@@ -4420,7 +4628,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
   dependencies:
     homedir-polyfill "^1.0.1"
 
-express-handlebars@^5.3.5:
+express-handlebars@5.3.5:
   version "5.3.5"
   resolved "https://registry.yarnpkg.com/express-handlebars/-/express-handlebars-5.3.5.tgz#a04a1e670aa97d5b3a8080de8336f79228593540"
   integrity sha512-r9pzDc94ZNJ7FVvtsxLfPybmN0eFAUnR61oimNPRpD0D7nkLcezrkpZzoXS5TI75wYHRbflPLTU39B62pwB4DA==
@@ -4436,7 +4644,7 @@ express-ws@4.0.0:
   dependencies:
     ws "^5.2.0"
 
-express@^4.17.0:
+express@4.18.2:
   version "4.18.2"
   resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
   integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
@@ -4541,24 +4749,19 @@ fast-json-stable-stringify@^2.0.0:
   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 
-fast-text-encoding@^1.0.0:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867"
-  integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==
-
-fast-xml-parser@4.2.4:
-  version "4.2.4"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.4.tgz#6e846ede1e56ad9e5ef07d8720809edf0ed07e9b"
-  integrity sha512-fbfMDvgBNIdDJLdLOwacjFAPYt67tr31H9ZhWSm45CDAxvd0I6WTlSOUo7K2P/K5sA5JgMKG64PI3DMcaFdWpQ==
+fast-xml-parser@4.2.5:
+  version "4.2.5"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f"
+  integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==
   dependencies:
     strnum "^1.0.5"
 
-fast-xml-parser@^3.19.0:
-  version "3.21.1"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz#152a1d51d445380f7046b304672dd55d15c9e736"
-  integrity sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==
+fast-xml-parser@^4.2.4:
+  version "4.3.3"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.3.tgz#aeaf5778392329f17168c40c51bcbfec8ff965be"
+  integrity sha512-coV/D1MhrShMvU6D0I+VAK3umz6hUaxxhL0yp/9RjfiYUfAv14rDhGQL+PLForhMdr0wq3PiV07WtkkNjJjNHg==
   dependencies:
-    strnum "^1.0.4"
+    strnum "^1.0.5"
 
 fastfall@^1.5.1:
   version "1.5.1"
@@ -4602,14 +4805,6 @@ fecha@^4.2.0:
   resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
   integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
 
-fetch-blob@^3.1.2, fetch-blob@^3.1.4:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"
-  integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==
-  dependencies:
-    node-domexception "^1.0.0"
-    web-streams-polyfill "^3.0.3"
-
 figures@^1.3.5:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
@@ -4635,9 +4830,9 @@ file-set@~0.2.1:
     glob "^4"
 
 file-type@^18.3.0:
-  version "18.5.0"
-  resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.5.0.tgz#604a001ba0d32577d4c3fa420ee104d656b914d2"
-  integrity sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==
+  version "18.7.0"
+  resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.7.0.tgz#cddb16f184d6b94106cfc4bb56978726b25cb2a2"
+  integrity sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==
   dependencies:
     readable-web-to-node-stream "^3.0.2"
     strtok3 "^7.0.0"
@@ -4774,10 +4969,10 @@ fn.name@1.x.x:
   resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
   integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
 
-follow-redirects@^1.14.0, follow-redirects@^1.14.8:
-  version "1.15.2"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
-  integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+follow-redirects@^1.14.0, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.4:
+  version "1.15.5"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020"
+  integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==
 
 for-each@^0.3.3:
   version "0.3.3"
@@ -4850,13 +5045,6 @@ form-data@~2.3.2:
     combined-stream "^1.0.6"
     mime-types "^2.1.12"
 
-formdata-polyfill@^4.0.10:
-  version "4.0.10"
-  resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"
-  integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
-  dependencies:
-    fetch-blob "^3.1.2"
-
 forwarded@0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
@@ -4920,26 +5108,26 @@ fsevents@^1.0.0:
     nan "^2.12.1"
 
 fsevents@~2.3.2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
-  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
 
-function-bind@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+function-bind@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+  integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
 
-function.prototype.name@^1.1.5:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
-  integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
+function.prototype.name@^1.1.6:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
+  integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.0"
-    functions-have-names "^1.2.2"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
+    functions-have-names "^1.2.3"
 
-functions-have-names@^1.2.2, functions-have-names@^1.2.3:
+functions-have-names@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
   integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
@@ -4973,24 +5161,31 @@ gauge@^4.0.3:
     strip-ansi "^6.0.1"
     wide-align "^1.1.5"
 
-gaxios@^5.0.0, gaxios@^5.0.1:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.0.tgz#133b77b45532be71eec72012b7e97c2320b6140a"
-  integrity sha512-aezGIjb+/VfsJtIcHGcBSerNEDdfdHeMros+RbYbGpmonKWQCOVOes0LVZhn1lDtIgq55qq0HaxymIoae3Fl/A==
+gaxios@^6.0.0, gaxios@^6.0.3, gaxios@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.1.1.tgz#549629f86a13e756b900f9ff7c94624670102938"
+  integrity sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w==
   dependencies:
     extend "^3.0.2"
-    https-proxy-agent "^5.0.0"
+    https-proxy-agent "^7.0.1"
     is-stream "^2.0.0"
-    node-fetch "^2.6.7"
+    node-fetch "^2.6.9"
 
-gcp-metadata@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.2.0.tgz#b4772e9c5976241f5d3e69c4f446c906d25506ec"
-  integrity sha512-aFhhvvNycky2QyhG+dcfEdHBF0FRbYcf39s6WNHUDysKSrbJ5vuFbjydxBcmewtXeV248GP8dWT3ByPNxsyHCw==
+gcp-metadata@^6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c"
+  integrity sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==
   dependencies:
-    gaxios "^5.0.0"
+    gaxios "^6.0.0"
     json-bigint "^1.0.0"
 
+generate-function@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
+  integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==
+  dependencies:
+    is-property "^1.0.2"
+
 gensync@^1.0.0-beta.2:
   version "1.0.0-beta.2"
   resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -5006,15 +5201,15 @@ get-caller-file@^2.0.1:
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
   integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
 
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82"
-  integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
+  integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
   dependencies:
-    function-bind "^1.1.1"
-    has "^1.0.3"
+    function-bind "^1.1.2"
     has-proto "^1.0.1"
     has-symbols "^1.0.3"
+    hasown "^2.0.0"
 
 get-symbol-description@^1.0.0:
   version "1.0.0"
@@ -5073,7 +5268,7 @@ glob@^4:
     minimatch "^2.0.1"
     once "^1.3.0"
 
-glob@^7.1.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
+glob@^7.1.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0, glob@^7.2.3:
   version "7.2.3"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
   integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -5134,52 +5329,42 @@ globalthis@^1.0.3:
   dependencies:
     define-properties "^1.1.3"
 
-google-auth-library@^8.0.2:
-  version "8.8.0"
-  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.8.0.tgz#2e17494431cef56b571420d483a4debff6c481cd"
-  integrity sha512-0iJn7IDqObDG5Tu9Tn2WemmJ31ksEa96IyK0J0OZCpTh6CrC6FrattwKX87h3qKVuprCJpdOGKc1Xi8V0kMh8Q==
+google-auth-library@^9.0.0:
+  version "9.5.0"
+  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.5.0.tgz#fd97b78bc1512025b9c9ad3998c60e2d75b6137e"
+  integrity sha512-OUbP509lWVlZxuMY+Cgomw49VzZFP9myIcVeYEpeBlbXJbPC4R+K4BmO9hd3ciYM5QIwm5W1PODcKjqxtkye9Q==
   dependencies:
-    arrify "^2.0.0"
     base64-js "^1.3.0"
     ecdsa-sig-formatter "^1.0.11"
-    fast-text-encoding "^1.0.0"
-    gaxios "^5.0.0"
-    gcp-metadata "^5.2.0"
-    gtoken "^6.1.0"
+    gaxios "^6.1.1"
+    gcp-metadata "^6.1.0"
+    gtoken "^7.0.0"
     jws "^4.0.0"
-    lru-cache "^6.0.0"
-
-google-p12-pem@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a"
-  integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==
-  dependencies:
-    node-forge "^1.3.1"
 
 google-protobuf@3.19.4:
   version "3.19.4"
   resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.19.4.tgz#8d32c3e34be9250956f28c0fb90955d13f311888"
   integrity sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==
 
-googleapis-common@^6.0.0:
-  version "6.0.4"
-  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-6.0.4.tgz#bd968bef2a478bcd3db51b27655502a11eaf8bf4"
-  integrity sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==
+googleapis-common@^7.0.0:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.0.1.tgz#c85d0ee605ff0be9f604b963c69dfd27e46f6dec"
+  integrity sha512-mgt5zsd7zj5t5QXvDanjWguMdHAcJmmDrF9RkInCecNsyV7S7YtGqm5v2IWONNID88osb7zmx5FtrAP12JfD0w==
   dependencies:
     extend "^3.0.2"
-    gaxios "^5.0.1"
-    google-auth-library "^8.0.2"
+    gaxios "^6.0.3"
+    google-auth-library "^9.0.0"
     qs "^6.7.0"
     url-template "^2.0.8"
     uuid "^9.0.0"
 
-googleapis@*:
-  version "118.0.0"
-  resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-118.0.0.tgz#a8b9f84d283544b85927abeb989252cb2f3ec490"
-  integrity sha512-Ny6zJOGn5P/YDT6GQbJU6K0lSzEu4Yuxnsn45ZgBIeSQ1RM0FolEjUToLXquZd89DU9wUfqA5XYHPEctk1TFWg==
+googleapis@128.0.0:
+  version "128.0.0"
+  resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-128.0.0.tgz#0005272f7f8730435d60ae0698d98910e16d0937"
+  integrity sha512-+sLtVYNazcxaSD84N6rihVX4QiGoqRdnlz2SwmQQkadF31XonDfy4ufk3maMg27+FiySrH0rd7V8p+YJG6cknA==
   dependencies:
-    google-auth-library "^8.0.2"
-    googleapis-common "^6.0.0"
+    google-auth-library "^9.0.0"
+    googleapis-common "^7.0.0"
 
 gopd@^1.0.1:
   version "1.0.1"
@@ -5266,13 +5451,12 @@ grunt@^1.0.1:
     minimatch "~3.0.4"
     nopt "~3.0.6"
 
-gtoken@^6.1.0:
-  version "6.1.2"
-  resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc"
-  integrity sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==
+gtoken@^7.0.0:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.0.1.tgz#b64bd01d88268ea3a3572c9076a85d1c48f1a455"
+  integrity sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==
   dependencies:
-    gaxios "^5.0.1"
-    google-p12-pem "^4.0.0"
+    gaxios "^6.0.0"
     jws "^4.0.0"
 
 handlebars-array@^0.2.0:
@@ -5318,12 +5502,12 @@ handlebars@^3.0.0, handlebars@^3.0.3:
     uglify-js "^2.6"
 
 handlebars@^4.7.7:
-  version "4.7.7"
-  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
-  integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
+  version "4.7.8"
+  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
+  integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==
   dependencies:
     minimist "^1.2.5"
-    neo-async "^2.6.0"
+    neo-async "^2.6.2"
     source-map "^0.6.1"
     wordwrap "^1.0.0"
   optionalDependencies:
@@ -5334,7 +5518,7 @@ har-schema@^2.0.0:
   resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
   integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==
 
-har-validator@~5.1.0, har-validator@~5.1.3:
+har-validator@~5.1.3:
   version "5.1.5"
   resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
   integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
@@ -5364,12 +5548,12 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-has-property-descriptors@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
-  integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
+  integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
   dependencies:
-    get-intrinsic "^1.1.1"
+    get-intrinsic "^1.2.2"
 
 has-proto@^1.0.1:
   version "1.0.1"
@@ -5424,13 +5608,6 @@ has-values@^1.0.0:
     is-number "^3.0.0"
     kind-of "^4.0.0"
 
-has@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
-  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
-  dependencies:
-    function-bind "^1.1.1"
-
 hash-base@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
@@ -5447,6 +5624,13 @@ hasha@^3.0.0:
   dependencies:
     is-stream "^1.0.1"
 
+hasown@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
+  integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
+  dependencies:
+    function-bind "^1.1.2"
+
 hawk@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.0.0.tgz#b90bb169807285411da7ffcb8dd2598502d3b52d"
@@ -5462,7 +5646,7 @@ he@^1.2.0:
   resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
   integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
 
-heapdump@*:
+heapdump@0.3.15:
   version "0.3.15"
   resolved "https://registry.yarnpkg.com/heapdump/-/heapdump-0.3.15.tgz#631a8a2585588ea64778d8ec80a64c6c025f6a08"
   integrity sha512-n8aSFscI9r3gfhOcAECAtXFaQ1uy4QSke6bnaL+iymYZ/dWs9cqDqHM+rALfsHUwukUbxsdlECZ0pKmJdQ/4OA==
@@ -5504,10 +5688,10 @@ hosted-git-info@^2.1.4:
   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
   integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
 
-hot-patcher@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/hot-patcher/-/hot-patcher-2.0.0.tgz#10a21b5bb4f5757316c41fc98794c11192a0a41e"
-  integrity sha512-rwJ0ZqSFgm+5oD0KiGBVinyPWRJESRSsHlEWDzZjyOe/OfhD9tynHqUyUIGX2fWuV+BihW4nXxeoZRJVHid64w==
+hot-patcher@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/hot-patcher/-/hot-patcher-1.0.0.tgz#7124d2dc4ca71bcb58b1551603cd13e4fc3fcecd"
+  integrity sha512-3H8VH0PreeNsKMZw16nTHbUp4YoHCnPlawpsPXGJUR4qENDynl79b6Xk9CIFvLcH1qungBsCuzKcWyzoPPalTw==
 
 html-encoding-sniffer@^3.0.0:
   version "3.0.0"
@@ -5521,7 +5705,7 @@ html-escaper@^2.0.0:
   resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
   integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
 
-html-minifier@*:
+html-minifier@4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56"
   integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==
@@ -5607,6 +5791,15 @@ http-signature@~1.2.0:
     jsprim "^1.2.2"
     sshpk "^1.7.0"
 
+http-signature@~1.3.1:
+  version "1.3.6"
+  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9"
+  integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==
+  dependencies:
+    assert-plus "^1.0.0"
+    jsprim "^2.0.2"
+    sshpk "^1.14.1"
+
 http_ece@1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/http_ece/-/http_ece-1.1.0.tgz#74780c6eb32d8ddfe9e36a83abcd81fe0cd4fb75"
@@ -5615,14 +5808,14 @@ http_ece@1.1.0:
     urlsafe-base64 "~1.0.0"
 
 httpreq@*:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-0.5.2.tgz#be6777292fa1038d7771d7c01d9a5e1219de951c"
-  integrity sha512-2Jm+x9WkExDOeFRrdBCBSpLPT5SokTcRHkunV3pjKmX/cx6av8zQ0WtHUMDrYb6O4hBFzNU6sxJEypvRUVYKnw==
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-1.1.1.tgz#b8818316cdfd6b1bfb0f68b822fa1306cd24be68"
+  integrity sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw==
 
-https-proxy-agent@*:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz#75cb70d04811685667183b31ab158d006750418a"
-  integrity sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==
+https-proxy-agent@7.0.2, https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1:
+  version "7.0.2"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b"
+  integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==
   dependencies:
     agent-base "^7.0.2"
     debug "4"
@@ -5635,11 +5828,6 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1:
     agent-base "6"
     debug "4"
 
-https@*:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4"
-  integrity sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==
-
 humanize-ms@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
@@ -5666,7 +5854,7 @@ ieee754@^1.1.13, ieee754@^1.2.1:
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
   integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
 
-image-size@*:
+image-size@1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486"
   integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==
@@ -5711,7 +5899,7 @@ ini@^1.3.4:
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
   integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
 
-input@*:
+input@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/input/-/input-1.0.1.tgz#26bfb5315959c403e9317175cf8f9894e97e5742"
   integrity sha512-5DKQKQ7Nm/CaPGYKF74uUvk5ftC3S04fLYWcDrNG2rOVhhRgB4E2J8JNb7AAh+RlQ/954ukas4bEbrRQ3/kPGA==
@@ -5741,12 +5929,12 @@ inquirer@^0.12.0:
     through "^2.3.6"
 
 internal-slot@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
-  integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930"
+  integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==
   dependencies:
-    get-intrinsic "^1.2.0"
-    has "^1.0.3"
+    get-intrinsic "^1.2.2"
+    hasown "^2.0.0"
     side-channel "^1.0.4"
 
 interpret@~1.1.0:
@@ -5784,7 +5972,7 @@ ipaddr.js@1.9.1:
   resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
   integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
 
-ipcheck@^0.1.0:
+ipcheck@0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/ipcheck/-/ipcheck-0.1.0.tgz#a6f942228910010f1688117b7a774b39c5222f81"
   integrity sha512-NwhrmROU0iXKa+U1quGuQ+ag+K/1Bb5V/yh5Q4SylSu/LGymPZcWB7p4u7JgJH0qOR6cTLDO5VZlRbhoeekNzQ==
@@ -5797,19 +5985,12 @@ is-absolute@^1.0.0:
     is-relative "^1.0.0"
     is-windows "^1.0.1"
 
-is-accessor-descriptor@^0.1.6:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
-  integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==
-  dependencies:
-    kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
-  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+is-accessor-descriptor@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4"
+  integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==
   dependencies:
-    kind-of "^6.0.0"
+    hasown "^2.0.0"
 
 is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
   version "3.0.2"
@@ -5869,26 +6050,19 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
   integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
 
-is-core-module@^2.11.0:
-  version "2.12.1"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
-  integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
-  dependencies:
-    has "^1.0.3"
-
-is-data-descriptor@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
-  integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==
+is-core-module@^2.13.0:
+  version "2.13.1"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
+  integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
   dependencies:
-    kind-of "^3.0.2"
+    hasown "^2.0.0"
 
-is-data-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
-  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+is-data-descriptor@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb"
+  integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==
   dependencies:
-    kind-of "^6.0.0"
+    hasown "^2.0.0"
 
 is-date-object@^1.0.1:
   version "1.0.5"
@@ -5898,22 +6072,20 @@ is-date-object@^1.0.1:
     has-tostringtag "^1.0.0"
 
 is-descriptor@^0.1.0:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
-  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33"
+  integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==
   dependencies:
-    is-accessor-descriptor "^0.1.6"
-    is-data-descriptor "^0.1.4"
-    kind-of "^5.0.0"
+    is-accessor-descriptor "^1.0.1"
+    is-data-descriptor "^1.0.1"
 
 is-descriptor@^1.0.0, is-descriptor@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
-  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306"
+  integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==
   dependencies:
-    is-accessor-descriptor "^1.0.0"
-    is-data-descriptor "^1.0.0"
-    kind-of "^6.0.2"
+    is-accessor-descriptor "^1.0.1"
+    is-data-descriptor "^1.0.1"
 
 is-dotfile@^1.0.0:
   version "1.0.3"
@@ -6048,6 +6220,11 @@ is-primitive@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
   integrity sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==
 
+is-property@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+  integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==
+
 is-regex@^1.1.4:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
@@ -6094,16 +6271,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
   dependencies:
     has-symbols "^1.0.2"
 
-is-typed-array@^1.1.10, is-typed-array@^1.1.9:
-  version "1.1.10"
-  resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
-  integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
+is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9:
+  version "1.1.12"
+  resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
+  integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
   dependencies:
-    available-typed-arrays "^1.0.5"
-    call-bind "^1.0.2"
-    for-each "^0.3.3"
-    gopd "^1.0.1"
-    has-tostringtag "^1.0.0"
+    which-typed-array "^1.1.11"
 
 is-typedarray@^1.0.0, is-typedarray@~1.0.0:
   version "1.0.0"
@@ -6226,10 +6399,21 @@ istanbul-reports@^2.2.4:
   dependencies:
     html-escaper "^2.0.0"
 
-jose@^4.14.1:
-  version "4.14.4"
-  resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca"
-  integrity sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==
+joi@^17.9.2:
+  version "17.12.0"
+  resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.0.tgz#a3fb5715f198beb0471cd551dd26792089c308d5"
+  integrity sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw==
+  dependencies:
+    "@hapi/hoek" "^9.3.0"
+    "@hapi/topo" "^5.1.0"
+    "@sideway/address" "^4.1.4"
+    "@sideway/formula" "^3.0.1"
+    "@sideway/pinpoint" "^2.0.0"
+
+jose@^4.15.4:
+  version "4.15.4"
+  resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.4.tgz#02a9a763803e3872cf55f29ecef0dfdcc218cc03"
+  integrity sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==
 
 "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
   version "4.0.0"
@@ -6341,7 +6525,7 @@ jsdoc2md-stats@^1.0.3:
     app-usage-stats "^0.4.0"
     feature-detect-es6 "^1.3.1"
 
-jsdom@*:
+jsdom@22.1.0:
   version "22.1.0"
   resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-22.1.0.tgz#0fca6d1a37fbeb7f4aac93d1090d782c56b611c8"
   integrity sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==
@@ -6417,20 +6601,26 @@ json5@^0.5.1:
   resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
   integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==
 
-json5@^2.2.2:
+json5@^2.2.3:
   version "2.2.3"
   resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
   integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
 
 jsonwebtoken@^9.0.0:
-  version "9.0.0"
-  resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d"
-  integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==
+  version "9.0.2"
+  resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3"
+  integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==
   dependencies:
     jws "^3.2.2"
-    lodash "^4.17.21"
+    lodash.includes "^4.3.0"
+    lodash.isboolean "^3.0.3"
+    lodash.isinteger "^4.0.4"
+    lodash.isnumber "^3.0.3"
+    lodash.isplainobject "^4.0.6"
+    lodash.isstring "^4.0.1"
+    lodash.once "^4.0.0"
     ms "^2.1.1"
-    semver "^7.3.8"
+    semver "^7.5.4"
 
 jsprim@^1.2.2:
   version "1.4.2"
@@ -6442,6 +6632,16 @@ jsprim@^1.2.2:
     json-schema "0.4.0"
     verror "1.10.0"
 
+jsprim@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d"
+  integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==
+  dependencies:
+    assert-plus "1.0.0"
+    extsprintf "1.3.0"
+    json-schema "0.4.0"
+    verror "1.10.0"
+
 jwa@^1.4.1:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
@@ -6502,11 +6702,6 @@ kind-of@^4.0.0:
   dependencies:
     is-buffer "^1.1.5"
 
-kind-of@^5.0.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
-  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
 kind-of@^6.0.0, kind-of@^6.0.2:
   version "6.0.3"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
@@ -6560,7 +6755,7 @@ ldap-filter@^0.3.3:
   dependencies:
     assert-plus "^1.0.0"
 
-ldapauth-fork@*:
+ldapauth-fork@5.0.5:
   version "5.0.5"
   resolved "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-5.0.5.tgz#984f98ffda8622a4dcf150533e2d3282372c2cb1"
   integrity sha512-LWUk76+V4AOZbny/3HIPQtGPWZyA3SW2tRhsWIBi9imP22WJktKLHV1ofd8Jo/wY7Ve6vAT7FCI5mEn3blZTjw==
@@ -6626,7 +6821,7 @@ load-json-file@^4.0.0:
     pify "^3.0.0"
     strip-bom "^3.0.0"
 
-loadavg-windows@*:
+loadavg-windows@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/loadavg-windows/-/loadavg-windows-1.1.1.tgz#e384aa8107b4ebf851bec267dd4a0789c4c54bc4"
   integrity sha512-ncSyH121LuN6OENPSohTAS2W85J3NYVIfjsVcK4spViQbHlQUXhGKd8VYhrqWyjtwwSTw4g3rrDraNoSJWRLgw==
@@ -6673,11 +6868,41 @@ lodash.flattendeep@^4.4.0:
   resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
   integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==
 
+lodash.includes@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+  integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==
+
+lodash.isboolean@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+  integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==
+
+lodash.isinteger@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+  integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==
+
+lodash.isnumber@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+  integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==
+
 lodash.isplainobject@^4.0.6:
   version "4.0.6"
   resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
   integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
 
+lodash.isstring@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+  integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==
+
+lodash.once@^4.0.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+  integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
+
 lodash.pick@^4.4.0:
   version "4.4.0"
   resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
@@ -6693,23 +6918,28 @@ lodash.union@^4.6.0:
   resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
   integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==
 
-lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.19, lodash@~4.17.21:
+lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.19, lodash@~4.17.21:
   version "4.17.21"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
 logform@^2.3.2, logform@^2.4.0:
-  version "2.5.1"
-  resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b"
-  integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5"
+  integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==
   dependencies:
-    "@colors/colors" "1.5.0"
+    "@colors/colors" "1.6.0"
     "@types/triple-beam" "^1.3.2"
     fecha "^4.2.0"
     ms "^2.1.1"
     safe-stable-stringify "^2.3.1"
     triple-beam "^1.3.0"
 
+long@^5.2.1:
+  version "5.2.3"
+  resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1"
+  integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
+
 longest@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
@@ -6732,6 +6962,11 @@ lower-case@^1.1.1:
   resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
   integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==
 
+lru-cache@^10.0.1:
+  version "10.2.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3"
+  integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==
+
 lru-cache@^4.0.1:
   version "4.1.5"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
@@ -6754,11 +6989,16 @@ lru-cache@^6.0.0:
   dependencies:
     yallist "^4.0.0"
 
-lru-cache@^7.10.1, lru-cache@^7.14.0:
+lru-cache@^7.10.1, lru-cache@^7.14.1:
   version "7.18.3"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
   integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
 
+lru-cache@^8.0.0:
+  version "8.0.5"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-8.0.5.tgz#983fe337f3e176667f8e567cfcce7cb064ea214e"
+  integrity sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==
+
 ltx@^2.8.1:
   version "2.10.0"
   resolved "https://registry.yarnpkg.com/ltx/-/ltx-2.10.0.tgz#0b794b898e01d9dcc61b54b160e78869003bbb20"
@@ -6827,16 +7067,16 @@ map-visit@^1.0.0:
   dependencies:
     object-visit "^1.0.0"
 
-mariadb@*:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-3.1.2.tgz#96f9f6c3f280a3a3c37b56ff7974400edbb88bda"
-  integrity sha512-ILlC54fkXkvizTJZC1uP7f/REBxuu1k+OWzpiIITIEdS+dGIjFe/Ob3EW9KrdtBa38l3z+odz6elva0RG/y5og==
+mariadb@3.2.2:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-3.2.2.tgz#320a991c708c737e5ddeefa1852ddf925f2dcd8c"
+  integrity sha512-9ClJCFsLcK7WnPXVxuKGd7p0CBvNch3i5nwAf1HEqERj7RV60DG/0dJu4DfO33gpYQd9Cr4jq17O76/2VjSbkg==
   dependencies:
     "@types/geojson" "^7946.0.10"
     "@types/node" "^17.0.45"
     denque "^2.1.0"
     iconv-lite "^0.6.3"
-    lru-cache "^7.14.0"
+    lru-cache "^10.0.1"
 
 marked@~0.3.6:
   version "0.3.19"
@@ -6944,7 +7184,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
   integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
 
-mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
   version "2.1.35"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
   integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -6966,15 +7206,6 @@ mime@~1.2.11, mime@~1.2.9:
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"
   integrity sha512-Ysa2F/nqTNGHhhm9MV8ure4+Hc+Y8AWiqUdHxsO7xu8zc92ND9f3kpALHjaP026Ft17UfxrMt95c50PLUeynBw==
 
-minify-js@*:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/minify-js/-/minify-js-0.0.4.tgz#e960cb61083f37af856944c512d0fca546d28dda"
-  integrity sha512-K7siyCl7QDUJhpyKWOCJmNQcghoPnk7BSbusljtOD9LwgqeQ/zVYe8qHKsYEBcyD44IdnhrgGkBiNRzsdh80/w==
-  dependencies:
-    async "^2.0.1"
-    dir_cache "^1.0.1"
-    utils-igor "^2.0.0"
-
 minify-js@0.0.2:
   version "0.0.2"
   resolved "https://registry.yarnpkg.com/minify-js/-/minify-js-0.0.2.tgz#833ba28645a1cfa942536bc6de4f0294d482f639"
@@ -6988,6 +7219,15 @@ minify-js@0.0.2:
     grunt-jsdoc-to-markdown "^1.2.1"
     utils-igor "^2.0.0"
 
+minify-js@0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/minify-js/-/minify-js-0.0.4.tgz#e960cb61083f37af856944c512d0fca546d28dda"
+  integrity sha512-K7siyCl7QDUJhpyKWOCJmNQcghoPnk7BSbusljtOD9LwgqeQ/zVYe8qHKsYEBcyD44IdnhrgGkBiNRzsdh80/w==
+  dependencies:
+    async "^2.0.1"
+    dir_cache "^1.0.1"
+    utils-igor "^2.0.0"
+
 minimalistic-assert@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@@ -7021,7 +7261,7 @@ minimatch@~3.0.4:
   dependencies:
     brace-expansion "^1.1.7"
 
-minimist@^1.2.5, minimist@^1.2.6:
+minimist@1.2.8, minimist@^1.2.5, minimist@^1.2.6:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
   integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
@@ -7115,7 +7355,7 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
 
-modern-syslog@*:
+modern-syslog@1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/modern-syslog/-/modern-syslog-1.2.0.tgz#6e419f640efe877f73ffea1c3e987132a69cd2a2"
   integrity sha512-dmFE23qpyZJf8MOdzuNKliW4j1PCqxaRtSzyNnv6QDUWjf1z8T4ZoQ7Qf0t6It2ewNv9/XJZSJoUgwpq3D0X7A==
@@ -7143,9 +7383,9 @@ mongodb@4.13.0:
     saslprep "^1.0.3"
 
 mongodb@^3.3.2:
-  version "3.7.3"
-  resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.7.3.tgz#b7949cfd0adc4cc7d32d3f2034214d4475f175a5"
-  integrity sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==
+  version "3.7.4"
+  resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.7.4.tgz#119530d826361c3e12ac409b769796d6977037a4"
+  integrity sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==
   dependencies:
     bl "^2.2.1"
     bson "^1.1.4"
@@ -7155,7 +7395,7 @@ mongodb@^3.3.2:
   optionalDependencies:
     saslprep "^1.0.0"
 
-mongojs@*:
+mongojs@3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/mongojs/-/mongojs-3.1.0.tgz#4242e6f5218a7301c35393b64ba9130d1d9488ef"
   integrity sha512-aXJ4xfXwx9s1cqtKTZ24PypXiWhIgvgENObQzCGbV4QBxEVedy3yuErhx6znk959cF2dOzL2ClgXJvIhfgkpIQ==
@@ -7201,7 +7441,7 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
   integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
 
-multiparty@^4.2.1:
+multiparty@4.2.3:
   version "4.2.3"
   resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-4.2.3.tgz#6b14981badb5ad3f0929622868751810368d4633"
   integrity sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==
@@ -7210,30 +7450,41 @@ multiparty@^4.2.1:
     safe-buffer "5.2.1"
     uid-safe "2.1.5"
 
-mustache@^2.2.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5"
-  integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==
+mustache@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
+  integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
 
 mute-stream@0.0.5:
   version "0.0.5"
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
   integrity sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg==
 
-mysql@*:
-  version "2.18.1"
-  resolved "https://registry.yarnpkg.com/mysql/-/mysql-2.18.1.tgz#2254143855c5a8c73825e4522baf2ea021766717"
-  integrity sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==
+mysql2@3.6.2:
+  version "3.6.2"
+  resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.6.2.tgz#be2eeba80c5167ffb856c48d61be5ac0e5ef6c09"
+  integrity sha512-m5erE6bMoWfPXW1D5UrVwlT8PowAoSX69KcZzPuARQ3wY1RJ52NW9PdvdPo076XiSIkQ5IBTis7hxdlrQTlyug==
   dependencies:
-    bignumber.js "9.0.0"
-    readable-stream "2.3.7"
-    safe-buffer "5.1.2"
-    sqlstring "2.3.1"
+    denque "^2.1.0"
+    generate-function "^2.3.1"
+    iconv-lite "^0.6.3"
+    long "^5.2.1"
+    lru-cache "^8.0.0"
+    named-placeholders "^1.1.3"
+    seq-queue "^0.0.5"
+    sqlstring "^2.3.2"
+
+named-placeholders@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.3.tgz#df595799a36654da55dda6152ba7a137ad1d9351"
+  integrity sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==
+  dependencies:
+    lru-cache "^7.14.1"
 
-nan@^2.12.1, nan@^2.13.2, nan@^2.17.0:
-  version "2.17.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb"
-  integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
+nan@^2.12.1, nan@^2.13.2, nan@^2.17.0, nan@^2.18.0:
+  version "2.18.0"
+  resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554"
+  integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
 
 nanoid@^2.1.0:
   version "2.1.11"
@@ -7262,7 +7513,7 @@ negotiator@0.6.3, negotiator@^0.6.2:
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
   integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
 
-neo-async@^2.6.0:
+neo-async@^2.6.2:
   version "2.6.2"
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
@@ -7299,11 +7550,6 @@ node-addon-api@^4.2.0:
   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
   integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
 
-node-domexception@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
-  integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
-
 node-environment-flags@^1.0.5:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088"
@@ -7312,31 +7558,22 @@ node-environment-flags@^1.0.5:
     object.getownpropertydescriptors "^2.0.3"
     semver "^5.7.0"
 
-node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7:
-  version "2.6.11"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25"
-  integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==
+node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.9:
+  version "2.7.0"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+  integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
   dependencies:
     whatwg-url "^5.0.0"
 
-node-fetch@^3.3.0:
-  version "3.3.1"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e"
-  integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==
-  dependencies:
-    data-uri-to-buffer "^4.0.0"
-    fetch-blob "^3.1.4"
-    formdata-polyfill "^4.0.10"
-
-node-forge@^1.0.0, node-forge@^1.3.0, node-forge@^1.3.1:
+node-forge@1.3.1, node-forge@^1.3.0:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
   integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
 
 node-gyp-build@^4.3.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055"
-  integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==
+  version "4.8.0"
+  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd"
+  integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==
 
 node-gyp@8.x:
   version "8.4.1"
@@ -7361,19 +7598,19 @@ node-localstorage@^2.2.1:
   dependencies:
     write-file-atomic "^1.1.4"
 
-node-pushover@*:
+node-pushover@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/node-pushover/-/node-pushover-1.0.0.tgz#d723fda9d9396f9714b30dcc380ac6bc44c64e96"
   integrity sha512-yIIt6a60obTco2/Yr0/9iR4+4sDbDzlM3qpaJ99xnAwFlDeg29V5ur19D2L+S9i5LaBao5yAQKAdpvQ+7kVIng==
   dependencies:
     httpreq "*"
 
-node-releases@^2.0.12:
-  version "2.0.12"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039"
-  integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==
+node-releases@^2.0.14:
+  version "2.0.14"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+  integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
 
-node-sspi@*:
+node-sspi@0.2.10:
   version "0.2.10"
   resolved "https://registry.yarnpkg.com/node-sspi/-/node-sspi-0.2.10.tgz#9e1f5ff2f0af24324023cef8471c06fcb24a5591"
   integrity sha512-IEm0OaTklsCCO9rzxvchkJvuU85yA7ouD723uRr3IabTXv/aOIZRwA3CVrZxU+sZ7/kOttIyrOsi7HqeHTH8eg==
@@ -7386,23 +7623,23 @@ node-uuid@~1.4.0:
   resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
   integrity sha512-TkCET/3rr9mUuRp+CpO7qfgT++aAxfDRaalQhwPFzI9BY/2rCDn6OfpZOVggi1AXfTPpfkTrg5f5WQx5G1uLxA==
 
-node-vault@*:
-  version "0.9.22"
-  resolved "https://registry.yarnpkg.com/node-vault/-/node-vault-0.9.22.tgz#052ab9b36c29d80d1ecfad61275259fe710d179e"
-  integrity sha512-/IR+YvINFhCzxJA5x/KHUDymJerFaeqvPUE2zwceRig8yEIA41qfVKusmO6bqRGFkr/2f6CaBVp7YfabzQyteg==
+node-vault@0.10.2:
+  version "0.10.2"
+  resolved "https://registry.yarnpkg.com/node-vault/-/node-vault-0.10.2.tgz#d5629c2e88744183474bba2ce54e1e08c4d15e8e"
+  integrity sha512-//uc9/YImE7Dx0QHdwMiAzLaOumiKUnOUP8DymgtkZ8nsq6/V2LKvEu6kw91Lcruw8lWUfj4DO7CIXNPRWBuuA==
   dependencies:
-    debug "3.1.0"
-    mustache "^2.2.1"
-    request "2.88.0"
-    request-promise-native "1.0.7"
-    tv4 "^1.2.7"
+    debug "^4.3.4"
+    mustache "^4.2.0"
+    postman-request "^2.88.1-postman.33"
+    tv4 "^1.3.0"
 
-node-windows@0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/node-windows/-/node-windows-0.1.4.tgz#23d5ee98b6b8290e0a3da9998ee638845fedcb1b"
-  integrity sha512-BRRMRjnw7NuWEdEKMUTgXQ8YRppN+egmx0Aq6pzstexydkhK7Bd6kqSVuPTMqLHbQhQAivGWq0q0GSFhfCjYBg==
+node-windows@0.1.14:
+  version "0.1.14"
+  resolved "https://registry.yarnpkg.com/node-windows/-/node-windows-0.1.14.tgz#31bb0503da3bc637f2bfaa8b266640a2e92d891f"
+  integrity sha512-2sz0i+ckeX/+22Z4KcDVis1ukyGOYZWx2WG9nQYauUwzIxEye5QcMrExkH7OaRSHkwM5bN/jesxsiQqkUb1O/w==
   dependencies:
-    optimist "~0.3.5"
+    optimist "~0.6.0"
+    xml "0.0.12"
 
 node-xcs@0.1.7:
   version "0.1.7"
@@ -7412,10 +7649,10 @@ node-xcs@0.1.7:
     "@xmpp/client" "^0.9.2"
     "@xmpp/debug" "^0.9.2"
 
-nodemailer@*:
-  version "6.9.3"
-  resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.3.tgz#e4425b85f05d83c43c5cd81bf84ab968f8ef5cbe"
-  integrity sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg==
+nodemailer@6.9.8:
+  version "6.9.8"
+  resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.8.tgz#29601e80440f2af7aa62b32758fdac7c6b784143"
+  integrity sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==
 
 nofilter@^1.0.4:
   version "1.0.4"
@@ -7492,9 +7729,9 @@ number-is-nan@^1.0.0:
   integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
 
 nwsapi@^2.2.4:
-  version "2.2.5"
-  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2"
-  integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==
+  version "2.2.7"
+  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
+  integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
 
 nyc@^14.1.1:
   version "14.1.1"
@@ -7566,10 +7803,10 @@ object-hash@^2.2.0:
   resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
   integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
 
-object-inspect@^1.12.3, object-inspect@^1.9.0:
-  version "1.12.3"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
-  integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
+object-inspect@^1.13.1, object-inspect@^1.9.0:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
+  integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
 
 object-keys@^1.1.1:
   version "1.1.1"
@@ -7608,12 +7845,12 @@ object-visit@^1.0.0:
     isobject "^3.0.0"
 
 object.assign@^4.1.4:
-  version "4.1.4"
-  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
-  integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
+  integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
   dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.4"
+    call-bind "^1.0.5"
+    define-properties "^1.2.1"
     has-symbols "^1.0.3"
     object-keys "^1.1.1"
 
@@ -7628,14 +7865,14 @@ object.defaults@^1.1.0:
     isobject "^3.0.0"
 
 object.getownpropertydescriptors@^2.0.3:
-  version "2.1.6"
-  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312"
-  integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==
+  version "2.1.7"
+  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a"
+  integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==
   dependencies:
-    array.prototype.reduce "^1.0.5"
+    array.prototype.reduce "^1.0.6"
     call-bind "^1.0.2"
     define-properties "^1.2.0"
-    es-abstract "^1.21.2"
+    es-abstract "^1.22.1"
     safe-array-concat "^1.0.0"
 
 object.map@^1.0.1:
@@ -7698,11 +7935,11 @@ onetime@^1.0.0:
   integrity sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==
 
 openid-client@*:
-  version "5.4.2"
-  resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.4.2.tgz#8692bcc2a40ef3426c5ba5c11f7493599e93ccc7"
-  integrity sha512-lIhsdPvJ2RneBm3nGBBhQchpe3Uka//xf7WPHTIglery8gnckvW7Bd9IaQzekzXJvWthCMyi/xVEyGW0RFPytw==
+  version "5.6.4"
+  resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.6.4.tgz#b2c25e6d5338ba3ce00e04341bb286798a196177"
+  integrity sha512-T1h3B10BRPKfcObdBklX639tVz+xh34O7GjofqrqiAQdm7eHsQ00ih18x6wuJ/E6FxdtS2u3FmUGPDeEcMwzNA==
   dependencies:
-    jose "^4.14.1"
+    jose "^4.15.4"
     lru-cache "^6.0.0"
     object-hash "^2.2.0"
     oidc-token-hash "^5.0.3"
@@ -7714,7 +7951,7 @@ opentype.js@^0.7.3:
   dependencies:
     tiny-inflate "^1.0.2"
 
-optimist@^0.6.1:
+optimist@^0.6.1, optimist@~0.6.0:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
   integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==
@@ -7722,13 +7959,6 @@ optimist@^0.6.1:
     minimist "~0.0.1"
     wordwrap "~0.0.2"
 
-optimist@~0.3.5:
-  version "0.3.7"
-  resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9"
-  integrity sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==
-  dependencies:
-    wordwrap "~0.0.2"
-
 optional-require@^1.1.8:
   version "1.1.8"
   resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.8.tgz#16364d76261b75d964c482b2406cb824d8ec44b7"
@@ -7978,13 +8208,14 @@ passport-twitter@*:
     passport-oauth1 "1.x.x"
     xtraverse "0.1.x"
 
-passport@0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/passport/-/passport-0.5.3.tgz#e69b46c9bb3290660bc2b3299330d78710b198cc"
-  integrity sha512-gGc+70h4gGdBWNsR3FuV3byLDY6KBTJAIExGFXTpQaYfbbcHCBlRRKx7RBQSpqEqc5Hh2qVzRs7ssvSfOpkUEA==
+passport@*:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/passport/-/passport-0.7.0.tgz#3688415a59a48cf8068417a8a8092d4492ca3a05"
+  integrity sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==
   dependencies:
     passport-strategy "1.x.x"
     pause "0.0.1"
+    utils-merge "^1.0.1"
 
 path-browserify@^1.0.1:
   version "1.0.1"
@@ -8071,25 +8302,25 @@ performance-now@^2.1.0:
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
   integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
 
-pg-cloudflare@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.0.tgz#833d70870d610d14bf9df7afb40e1cba310c17a0"
-  integrity sha512-tGM8/s6frwuAIyRcJ6nWcIvd3+3NmUKIs6OjviIm1HPPFEt5MzQDOTBQyhPWg/m0kCl95M6gA1JaIXtS8KovOA==
+pg-cloudflare@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98"
+  integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==
 
-pg-connection-string@^2.4.0, pg-connection-string@^2.5.0, pg-connection-string@^2.6.0:
-  version "2.6.0"
-  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.0.tgz#12a36cc4627df19c25cc1b9b736cc39ee1f73ae8"
-  integrity sha512-x14ibktcwlHKoHxx9X3uTVW9zIGR41ZB6QNhHb21OPNdCCO3NaRnpJuwKIQSR4u+Yqjx4HCvy7Hh7VSy1U4dGg==
+pg-connection-string@^2.4.0, pg-connection-string@^2.5.0, pg-connection-string@^2.6.2:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475"
+  integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==
 
 pg-int8@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
   integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
 
-pg-pool@^3.4.1, pg-pool@^3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.0.tgz#3190df3e4747a0d23e5e9e8045bcd99bda0a712e"
-  integrity sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==
+pg-pool@^3.4.1, pg-pool@^3.6.1:
+  version "3.6.1"
+  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.1.tgz#5a902eda79a8d7e3c928b77abf776b3cb7d351f7"
+  integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==
 
 pg-protocol@^1.5.0, pg-protocol@^1.6.0:
   version "1.6.0"
@@ -8121,19 +8352,19 @@ pg@8.7.1:
     pgpass "1.x"
 
 pg@^8.4.0:
-  version "8.11.0"
-  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.0.tgz#a37e534e94b57a7ed811e926f23a7c56385f55d9"
-  integrity sha512-meLUVPn2TWgJyLmy7el3fQQVwft4gU5NGyvV0XbD41iU9Jbg8lCH4zexhIkihDzVHJStlt6r088G6/fWeNjhXA==
+  version "8.11.3"
+  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.3.tgz#d7db6e3fe268fcedd65b8e4599cda0b8b4bf76cb"
+  integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==
   dependencies:
     buffer-writer "2.0.0"
     packet-reader "1.0.0"
-    pg-connection-string "^2.6.0"
-    pg-pool "^3.6.0"
+    pg-connection-string "^2.6.2"
+    pg-pool "^3.6.1"
     pg-protocol "^1.6.0"
     pg-types "^2.1.0"
     pgpass "1.x"
   optionalDependencies:
-    pg-cloudflare "^1.1.0"
+    pg-cloudflare "^1.1.1"
 
 pgpass@1.x:
   version "1.0.5"
@@ -8189,10 +8420,10 @@ pinkie@^2.0.0:
   resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
   integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
 
-pirates@^4.0.5:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
-  integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
+pirates@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+  integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
 
 pkg-dir@^3.0.0:
   version "3.0.0"
@@ -8201,10 +8432,10 @@ pkg-dir@^3.0.0:
   dependencies:
     find-up "^3.0.0"
 
-plivo@*:
-  version "4.49.0"
-  resolved "https://registry.yarnpkg.com/plivo/-/plivo-4.49.0.tgz#0f7a34f538822fcfd4ca4d480e0306f0aaba5a15"
-  integrity sha512-PBxMmCzIhkkM2Efu+KsQ338y7SuNBgOvc48Cb5gKZZvzdvDgw00jbXvAJyjvgNy0ix2C4sHLPaUc3GZ9kMACMA==
+plivo@4.58.0:
+  version "4.58.0"
+  resolved "https://registry.yarnpkg.com/plivo/-/plivo-4.58.0.tgz#bd6b2ded17319049f6a1d2dde7985b2ff7ae93db"
+  integrity sha512-AFxxxYgVaqx+09aDZoLeg5Tv7xPI7CBU/f3DOtvOVbFnqZZZByPTkuGzUZ3oeit7+yTklzQt4o5DfpNDB9LgNA==
   dependencies:
     "@types/node" "^14.14.14"
     axios "^0.21.1"
@@ -8212,6 +8443,7 @@ plivo@*:
     build-url "^1.0.10"
     form-data "^4.0.0"
     https-proxy-agent "^5.0.0"
+    joi "^17.9.2"
     jsonwebtoken "^9.0.0"
     lodash "^4.17.4"
     querystring "^0.2.0"
@@ -8247,6 +8479,34 @@ postgres-interval@^1.1.0:
   dependencies:
     xtend "^4.0.0"
 
+postman-request@^2.88.1-postman.33:
+  version "2.88.1-postman.33"
+  resolved "https://registry.yarnpkg.com/postman-request/-/postman-request-2.88.1-postman.33.tgz#684147d61c9a263a28f148d3207b1593e0f01ec5"
+  integrity sha512-uL9sCML4gPH6Z4hreDWbeinKU0p0Ke261nU7OvII95NU22HN6Dk7T/SaVPaj6T4TsQqGKIFw6/woLZnH7ugFNA==
+  dependencies:
+    "@postman/form-data" "~3.1.1"
+    "@postman/tough-cookie" "~4.1.3-postman.1"
+    "@postman/tunnel-agent" "^0.6.3"
+    aws-sign2 "~0.7.0"
+    aws4 "^1.12.0"
+    brotli "^1.3.3"
+    caseless "~0.12.0"
+    combined-stream "~1.0.6"
+    extend "~3.0.2"
+    forever-agent "~0.6.1"
+    har-validator "~5.1.3"
+    http-signature "~1.3.1"
+    is-typedarray "~1.0.0"
+    isstream "~0.1.2"
+    json-stringify-safe "~5.0.1"
+    mime-types "^2.1.35"
+    oauth-sign "~0.9.0"
+    performance-now "^2.1.0"
+    qs "~6.5.3"
+    safe-buffer "^5.1.2"
+    stream-length "^1.0.2"
+    uuid "^8.3.2"
+
 precond@0.2:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
@@ -8300,12 +8560,17 @@ proxy-addr@~2.0.7:
     forwarded "0.2.0"
     ipaddr.js "1.9.1"
 
+proxy-from-env@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
 pseudomap@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
   integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
 
-psl@^1.1.24, psl@^1.1.28, psl@^1.1.33:
+psl@^1.1.28, psl@^1.1.33:
   version "1.9.0"
   resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
   integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
@@ -8318,15 +8583,10 @@ pump@^3.0.0:
     end-of-stream "^1.1.0"
     once "^1.3.1"
 
-punycode@^1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-  integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
-
 punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
-  integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+  integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
 
 qlobber@^3.0.2, qlobber@^3.1.0:
   version "3.1.0"
@@ -8352,7 +8612,7 @@ qs@~0.6.0:
   resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107"
   integrity sha512-kN+yNdAf29Jgp+AYHUmC7X4QdJPR8czuMWLNLc0aRxkQ7tB3vJQEONKKT9ou/rW7EbqVec11srC9q9BiVbcnHA==
 
-qs@~6.5.2:
+qs@~6.5.2, qs@~6.5.3:
   version "6.5.3"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
   integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
@@ -8463,19 +8723,6 @@ read-pkg@^3.0.0:
     string_decoder "^1.1.1"
     util-deprecate "^1.0.1"
 
-readable-stream@2.3.7:
-  version "2.3.7"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
-  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.3"
-    isarray "~1.0.0"
-    process-nextick-args "~2.0.0"
-    safe-buffer "~5.1.1"
-    string_decoder "~1.1.1"
-    util-deprecate "~1.0.1"
-
 readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.3.5:
   version "2.3.8"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
@@ -8496,7 +8743,7 @@ readable-web-to-node-stream@^3.0.2:
   dependencies:
     readable-stream "^3.6.0"
 
-readdir-glob@^1.0.0:
+readdir-glob@^1.1.2:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584"
   integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==
@@ -8579,10 +8826,10 @@ regenerator-runtime@^0.11.0:
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
   integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
 
-regenerator-runtime@^0.13.11:
-  version "0.13.11"
-  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
-  integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+regenerator-runtime@^0.14.0:
+  version "0.14.1"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+  integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
 
 regenerator-transform@^0.10.0:
   version "0.10.1"
@@ -8608,14 +8855,14 @@ regex-not@^1.0.0, regex-not@^1.0.2:
     extend-shallow "^3.0.2"
     safe-regex "^1.1.0"
 
-regexp.prototype.flags@^1.4.3:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb"
-  integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==
+regexp.prototype.flags@^1.5.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e"
+  integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==
   dependencies:
     call-bind "^1.0.2"
     define-properties "^1.2.0"
-    functions-have-names "^1.2.3"
+    set-function-name "^2.0.0"
 
 regexpu-core@^2.0.0:
   version "2.0.0"
@@ -8683,22 +8930,6 @@ req-then@0.5.1:
     lodash.pick "^4.4.0"
     typical "^2.6.0"
 
-request-promise-core@1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346"
-  integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==
-  dependencies:
-    lodash "^4.17.11"
-
-request-promise-native@1.0.7:
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59"
-  integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==
-  dependencies:
-    request-promise-core "1.1.2"
-    stealthy-require "^1.1.1"
-    tough-cookie "^2.3.3"
-
 request@*:
   version "2.88.2"
   resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
@@ -8725,32 +8956,6 @@ request@*:
     tunnel-agent "^0.6.0"
     uuid "^3.3.2"
 
-request@2.88.0:
-  version "2.88.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
-  integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.8.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.6"
-    extend "~3.0.2"
-    forever-agent "~0.6.1"
-    form-data "~2.3.2"
-    har-validator "~5.1.0"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.19"
-    oauth-sign "~0.9.0"
-    performance-now "^2.1.0"
-    qs "~6.5.2"
-    safe-buffer "^5.1.2"
-    tough-cookie "~2.4.3"
-    tunnel-agent "^0.6.0"
-    uuid "^3.3.2"
-
 request@~2.27.0:
   version "2.27.0"
   resolved "https://registry.yarnpkg.com/request/-/request-2.27.0.tgz#dfb1a224dd3a5a9bade4337012503d710e538668"
@@ -8820,11 +9025,11 @@ resolve-url@^0.2.1:
   integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
 
 resolve@^1.10.0, resolve@^1.19.0, resolve@^1.9.0:
-  version "1.22.2"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
-  integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
+  version "1.22.8"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+  integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
   dependencies:
-    is-core-module "^2.11.0"
+    is-core-module "^2.13.0"
     path-parse "^1.0.7"
     supports-preserve-symlinks-flag "^1.0.0"
 
@@ -8909,13 +9114,13 @@ rx-lite@^3.1.2:
   dependencies:
     tslib "^2.1.0"
 
-safe-array-concat@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060"
-  integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==
+safe-array-concat@^1.0.0, safe-array-concat@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692"
+  integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==
   dependencies:
-    call-bind "^1.0.2"
-    get-intrinsic "^1.2.0"
+    call-bind "^1.0.5"
+    get-intrinsic "^1.2.2"
     has-symbols "^1.0.3"
     isarray "^2.0.5"
 
@@ -8930,12 +9135,12 @@ safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s
   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 
 safe-regex-test@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
-  integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5"
+  integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==
   dependencies:
-    call-bind "^1.0.2"
-    get-intrinsic "^1.1.3"
+    call-bind "^1.0.5"
+    get-intrinsic "^1.2.2"
     is-regex "^1.1.4"
 
 safe-regex@^1.1.0:
@@ -8980,7 +9185,7 @@ saslmechanisms@^0.1.1:
   resolved "https://registry.yarnpkg.com/saslmechanisms/-/saslmechanisms-0.1.1.tgz#478be1429500fcfaa780be88b3343ced7d2a9182"
   integrity sha512-pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==
 
-saslprep@*, saslprep@^1.0.0, saslprep@^1.0.3:
+saslprep@1.0.3, saslprep@^1.0.0, saslprep@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
   integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==
@@ -8988,9 +9193,9 @@ saslprep@*, saslprep@^1.0.0, saslprep@^1.0.3:
     sparse-bitfield "^3.0.3"
 
 sax@>=0.6.0:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0"
+  integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==
 
 saxes@^6.0.0:
   version "6.0.0"
@@ -9004,22 +9209,22 @@ scmp@^2.1.0:
   resolved "https://registry.yarnpkg.com/scmp/-/scmp-2.1.0.tgz#37b8e197c425bdeb570ab91cc356b311a11f9c9a"
   integrity sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==
 
-semver@*, semver@^7.3.5, semver@^7.3.8:
-  version "7.5.2"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb"
-  integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==
+"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.0:
+  version "5.7.2"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
+  integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
+
+semver@7.5.4, semver@^7.3.5, semver@^7.5.4:
+  version "7.5.4"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+  integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
   dependencies:
     lru-cache "^6.0.0"
 
-"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.0:
-  version "5.7.1"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
-  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-semver@^6.0.0, semver@^6.3.0:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
-  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@^6.0.0, semver@^6.3.1:
+  version "6.3.1"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+  integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
 
 send@0.18.0:
   version "0.18.0"
@@ -9040,6 +9245,11 @@ send@0.18.0:
     range-parser "~1.2.1"
     statuses "2.0.1"
 
+seq-queue@^0.0.5:
+  version "0.0.5"
+  resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e"
+  integrity sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==
+
 serve-static@1.15.0:
   version "1.15.0"
   resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
@@ -9055,6 +9265,26 @@ set-blocking@^2.0.0:
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
 
+set-function-length@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1"
+  integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==
+  dependencies:
+    define-data-property "^1.1.1"
+    function-bind "^1.1.2"
+    get-intrinsic "^1.2.2"
+    gopd "^1.0.1"
+    has-property-descriptors "^1.0.1"
+
+set-function-name@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a"
+  integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==
+  dependencies:
+    define-data-property "^1.0.1"
+    functions-have-names "^1.2.3"
+    has-property-descriptors "^1.0.0"
+
 set-value@^2.0.0, set-value@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -9272,9 +9502,9 @@ spdx-correct@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-exceptions@^2.1.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
-  integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz#c07a4ede25b16e4f78e6707bbd84b15a45c19c1b"
+  integrity sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==
 
 spdx-expression-parse@^3.0.0:
   version "3.0.1"
@@ -9285,9 +9515,9 @@ spdx-expression-parse@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-license-ids@^3.0.0:
-  version "3.0.13"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5"
-  integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==
+  version "3.0.16"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f"
+  integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==
 
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
@@ -9301,17 +9531,22 @@ split2@^4.1.0:
   resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
   integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
 
-sprintf-js@1.1.2, sprintf-js@^1.1.1:
+sprintf-js@1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
   integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
 
+sprintf-js@^1.1.1:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
+  integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
+
 sprintf-js@~1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
   integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
 
-sqlite3@*:
+sqlite3@5.1.6:
   version "5.1.6"
   resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.6.tgz#1d4fbc90fe4fbd51e952e0a90fd8f6c2b9098e97"
   integrity sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==
@@ -9322,26 +9557,26 @@ sqlite3@*:
   optionalDependencies:
     node-gyp "8.x"
 
-sqlstring@2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40"
-  integrity sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==
+sqlstring@^2.3.2:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c"
+  integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==
 
-ssh2@*:
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.13.0.tgz#9b53a07534fa72283ada471b82395a3b3c875934"
-  integrity sha512-CIZBFRRY1y9mAZSqBGFE4EB4dNJad2ysT2PqO8OpkiI3UTB/gUZwE5EaN16qVyQ6s/M7EgC/iaV/MnjdlvnuzA==
+ssh2@1.15.0:
+  version "1.15.0"
+  resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b"
+  integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==
   dependencies:
     asn1 "^0.2.6"
     bcrypt-pbkdf "^1.0.2"
   optionalDependencies:
-    cpu-features "~0.0.7"
-    nan "^2.17.0"
+    cpu-features "~0.0.9"
+    nan "^2.18.0"
 
-sshpk@^1.7.0:
-  version "1.17.0"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
-  integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
+sshpk@^1.14.1, sshpk@^1.7.0:
+  version "1.18.0"
+  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028"
+  integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==
   dependencies:
     asn1 "~0.2.3"
     assert-plus "^1.0.0"
@@ -9383,11 +9618,6 @@ statuses@2.0.1:
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
   integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
 
-stealthy-require@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
-  integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==
-
 store2@^2.13.0:
   version "2.14.2"
   resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068"
@@ -9408,6 +9638,13 @@ stream-handlebars@~0.1.6:
     handlebars "^3.0.0"
     object-tools "^1.2.1"
 
+stream-length@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/stream-length/-/stream-length-1.0.2.tgz#8277f3cbee49a4daabcfdb4e2f4a9b5e9f2c9f00"
+  integrity sha512-aI+qKFiwoDV4rsXiS7WRoCt+v2RX1nUj17+KJC5r2gfh5xoSJIfP6Y3Do/HtvesFcTSWthIuJ3l1cvKQY/+nZg==
+  dependencies:
+    bluebird "^2.6.2"
+
 stream-via@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/stream-via/-/stream-via-1.0.4.tgz#8dccbb0ac909328eb8bc8e2a4bd3934afdaf606c"
@@ -9418,11 +9655,6 @@ stream-via@~0.1.0:
   resolved "https://registry.yarnpkg.com/stream-via/-/stream-via-0.1.1.tgz#0cee5df9c959fb1d3f4eda4819f289d5f9205afc"
   integrity sha512-1U7icavM/2dRDSevxnJRZfKBWrnhmtdCh0zQTThwYchL2YWjbwZb2PEngEj9HKjgyJ2oDipz6TLud/AU6BAIzQ==
 
-streamsearch@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
-  integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
-
 string-tools@^0.1.4:
   version "0.1.8"
   resolved "https://registry.yarnpkg.com/string-tools/-/string-tools-0.1.8.tgz#70884e86a26ee5103a078bef67033d558d36e337"
@@ -9460,32 +9692,32 @@ string-width@^3.0.0, string-width@^3.1.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^5.1.0"
 
-string.prototype.trim@^1.2.7:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533"
-  integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==
+string.prototype.trim@^1.2.8:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd"
+  integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
 
-string.prototype.trimend@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
-  integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
+string.prototype.trimend@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e"
+  integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
 
-string.prototype.trimstart@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
-  integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
+string.prototype.trimstart@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298"
+  integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
 
 string_decoder@^1.1.1:
   version "1.3.0"
@@ -9539,7 +9771,7 @@ strip-json-comments@~2.0.1:
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
   integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
 
-strnum@^1.0.4, strnum@^1.0.5:
+strnum@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
   integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
@@ -9583,7 +9815,7 @@ supports-preserve-symlinks-flag@^1.0.0:
   resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
   integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
 
-svg-captcha@*, svg-captcha@^1.4.0:
+svg-captcha@1.4.0, svg-captcha@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/svg-captcha/-/svg-captcha-1.4.0.tgz#32ead3c6463936c218bb3bc9ed04fea4eeffe492"
   integrity sha512-/fkkhavXPE57zRRCjNqAP3txRCSncpMx3NnNZL7iEoyAtYwUjPhJxW6FQTQPG5UPEmCrbFoXS10C3YdJlW7PDg==
@@ -9595,10 +9827,10 @@ symbol-tree@^3.2.4:
   resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
   integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
 
-syslog@*:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/syslog/-/syslog-0.1.1.tgz#675d8210898e785fd14c831de2d9a6aec0a35cbd"
-  integrity sha512-bWIVJ/f4F3GweVvnwpCbahsuargMRIQjFbw3fK+8SFtvZldAcOf4gpviRawuVVHtq5HabxC39poHuZNdqAs2Aw==
+syslog@0.1.1-1:
+  version "0.1.1-1"
+  resolved "https://registry.yarnpkg.com/syslog/-/syslog-0.1.1-1.tgz#f69f74b0baf8a25c725af97977a18eb11927a5e1"
+  integrity sha512-7fn4sikkTRrc4kZk/i/ItCktnPD2qG+nKmgTVcuLr2VrY2V9adNhw9fN02HL6rTthwu2Og9Icr1GxZlaLp39Lg==
 
 table-layout@^0.3.0:
   version "0.3.0"
@@ -9629,9 +9861,9 @@ tar-stream@^2.2.0:
     readable-stream "^3.1.1"
 
 tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
-  version "6.1.15"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69"
-  integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73"
+  integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==
   dependencies:
     chownr "^2.0.0"
     fs-minipass "^2.0.0"
@@ -9640,10 +9872,10 @@ tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
     mkdirp "^1.0.3"
     yallist "^4.0.0"
 
-telegram@*:
-  version "2.17.10"
-  resolved "https://registry.yarnpkg.com/telegram/-/telegram-2.17.10.tgz#521e88f16d0a0dc4190cf7258f5adcabc0c2d1ec"
-  integrity sha512-BeWrH6jrTjtmZtGi63mM2UWwciOivqQknhRIysULVRQkDbo+MW4I2jI6d3sPM5m8Ge9mhjeKg1aVZf2qG4vh2Q==
+telegram@2.19.8:
+  version "2.19.8"
+  resolved "https://registry.yarnpkg.com/telegram/-/telegram-2.19.8.tgz#d6c0217e67e2cc9513e4904c033ecd4b296293f7"
+  integrity sha512-yaBRPILM0FSEbKKcnMR4Q463DpasAGOvUEcGrlW7xmYMAEntxIdoFLXrZnpNDaubncx6lc1M9cecMvlTkg6taQ==
   dependencies:
     "@cryptography/aes" "^0.1.1"
     async-mutex "^0.3.0"
@@ -9663,10 +9895,10 @@ telegram@*:
     bufferutil "^4.0.3"
     utf-8-validate "^5.0.5"
 
-telnyx@*:
-  version "1.23.0"
-  resolved "https://registry.yarnpkg.com/telnyx/-/telnyx-1.23.0.tgz#0d949a11f7c819b0d5ce8ae8c36b80bd02e351c8"
-  integrity sha512-hmXxXVyj+Fi+ips7KwmgUYQrzHCIyGo8bjm/B8tsCAJ7PZ0V3LO330CVOk0gPdlcZxIkITaXWB51swrbK09Wew==
+telnyx@1.25.5:
+  version "1.25.5"
+  resolved "https://registry.yarnpkg.com/telnyx/-/telnyx-1.25.5.tgz#f4140459fa296c32dfa1847b0c0e70c5e02ff3c3"
+  integrity sha512-Kcb1eq/Fm9T45j1JMdcoQP1GgJqVKbQldv0C26DhCrZX5e3+17OXyQbmgtSI6EYFQ4I3HSbCfXudwDRpGDOC7Q==
   dependencies:
     lodash.isplainobject "^4.0.6"
     qs "^6.6.0"
@@ -9805,14 +10037,6 @@ token-types@^5.0.1:
     "@tokenizer/token" "^0.3.0"
     ieee754 "^1.2.1"
 
-tough-cookie@^2.3.3, tough-cookie@~2.5.0:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
-  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
-  dependencies:
-    psl "^1.1.28"
-    punycode "^2.1.1"
-
 tough-cookie@^4.1.2:
   version "4.1.3"
   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
@@ -9823,13 +10047,13 @@ tough-cookie@^4.1.2:
     universalify "^0.2.0"
     url-parse "^1.5.3"
 
-tough-cookie@~2.4.3:
-  version "2.4.3"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
-  integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
+tough-cookie@~2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
   dependencies:
-    psl "^1.1.24"
-    punycode "^1.4.1"
+    psl "^1.1.28"
+    punycode "^2.1.1"
 
 tr46@^3.0.0:
   version "3.0.0"
@@ -9856,9 +10080,9 @@ trim-right@^1.0.1:
   integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==
 
 triple-beam@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
-  integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984"
+  integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==
 
 ts-custom-error@^3.2.0:
   version "3.3.1"
@@ -9875,10 +10099,10 @@ tslib@^1.11.1:
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
   integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
 
-tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0:
-  version "2.5.3"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913"
-  integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==
+tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+  integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
 
 tsscmp@1.0.6:
   version "1.0.6"
@@ -9897,7 +10121,7 @@ tunnel-agent@~0.3.0:
   resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee"
   integrity sha512-jlGqHGoKzyyjhwv/c9omAgohntThMcGtw8RV/RDLlkbbc08kni/akVxO62N8HaXMVbVsK1NCnpSK3N2xCt22ww==
 
-tv4@^1.2.7:
+tv4@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/tv4/-/tv4-1.3.0.tgz#d020c846fadd50c855abb25ebaecc68fc10f7963"
   integrity sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==
@@ -9912,13 +10136,13 @@ tweetnacl@^1.0.1:
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
   integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
 
-twilio@*:
-  version "4.12.0"
-  resolved "https://registry.yarnpkg.com/twilio/-/twilio-4.12.0.tgz#7775936c0309e07b842806c5a7837b55ba25d7f3"
-  integrity sha512-h04AQTL6Kcvvmj2ZmdQUNPmXvjaAHf123d6/v+XUBKQ66oifRklnGOTrBLF6jbWAKTfeDrL0KEH2MnAC6zhkZg==
+twilio@4.19.0:
+  version "4.19.0"
+  resolved "https://registry.yarnpkg.com/twilio/-/twilio-4.19.0.tgz#b0cc25eb397490ed3e41f031ab5c79697a9065ee"
+  integrity sha512-4tM1LNM5LeUvnko4kIqIreY6vmjIo5Ag5jMEhjTDPj+GES82MnkfSkJv8N1k5/ZmeSvIdk5hjI87GB/DpDDePQ==
   dependencies:
     axios "^0.26.1"
-    dayjs "^1.8.29"
+    dayjs "^1.11.9"
     https-proxy-agent "^5.0.0"
     jsonwebtoken "^9.0.0"
     qs "^6.9.4"
@@ -9944,6 +10168,36 @@ type@^2.7.2:
   resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
   integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
 
+typed-array-buffer@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
+  integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.2.1"
+    is-typed-array "^1.1.10"
+
+typed-array-byte-length@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0"
+  integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==
+  dependencies:
+    call-bind "^1.0.2"
+    for-each "^0.3.3"
+    has-proto "^1.0.1"
+    is-typed-array "^1.1.10"
+
+typed-array-byte-offset@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b"
+  integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==
+  dependencies:
+    available-typed-arrays "^1.0.5"
+    call-bind "^1.0.2"
+    for-each "^0.3.3"
+    has-proto "^1.0.1"
+    is-typed-array "^1.1.10"
+
 typed-array-length@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
@@ -9965,6 +10219,11 @@ typical@^2.1, typical@^2.2, typical@^2.3.0, typical@^2.4.2, typical@^2.5.0, typi
   resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d"
   integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==
 
+ua-parser-js@1.0.37:
+  version "1.0.37"
+  resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f"
+  integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==
+
 uglify-js@^2.6:
   version "2.8.29"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
@@ -10030,12 +10289,17 @@ underscore@~1.8.3:
   resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
   integrity sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==
 
+undici-types@~5.26.4:
+  version "5.26.5"
+  resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+  integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
 undici@^5.11.0, undici@^5.22.0:
-  version "5.22.1"
-  resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b"
-  integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==
+  version "5.28.2"
+  resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91"
+  integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==
   dependencies:
-    busboy "^1.6.0"
+    "@fastify/busboy" "^2.0.0"
 
 unidecode@^0.1.8:
   version "0.1.8"
@@ -10084,10 +10348,10 @@ unset-value@^1.0.0:
     has-value "^0.3.1"
     isobject "^3.0.0"
 
-update-browserslist-db@^1.0.11:
-  version "1.0.11"
-  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
-  integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
+update-browserslist-db@^1.0.13:
+  version "1.0.13"
+  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+  integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
   dependencies:
     escalade "^3.1.1"
     picocolors "^1.0.0"
@@ -10191,7 +10455,7 @@ utils-igor@^2.0.0:
   dependencies:
     minify-js "0.0.2"
 
-utils-merge@1.0.1, utils-merge@1.x.x:
+utils-merge@1.0.1, utils-merge@1.x.x, utils-merge@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
   integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
@@ -10207,9 +10471,9 @@ uuid@^8.3.2:
   integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
 
 uuid@^9.0.0:
-  version "9.0.0"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
-  integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
+  version "9.0.1"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
+  integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
 
 v8flags@^2.1.1:
   version "2.1.1"
@@ -10280,33 +10544,28 @@ weak-daemon@1.0.3:
   resolved "https://registry.yarnpkg.com/weak-daemon/-/weak-daemon-1.0.3.tgz#d922b7c0dfb8f6bf027c463ea875584d2b085f19"
   integrity sha512-9OLYp5qQSxpnTIyuA1zJ7at3DV2DSBcbdXduC/3QFPeYjF30Lh1nfBrG+VLf4QUvZPz2lXFPu08oIRzWQfucVQ==
 
-web-push@*:
-  version "3.6.2"
-  resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.6.2.tgz#15f3d648ce747f56a527ffa8bcacdfdd96fa1610"
-  integrity sha512-mqDSr+YAiee6URZwcJ2Qx2RPD7fo9hC/Ryj4rWN1TsvSDt29AEFuZ5/h5JjH+AgG4qk47t6JkRtfh8Dx4Kok/Q==
+web-push@3.6.6:
+  version "3.6.6"
+  resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.6.6.tgz#592facb26116187136b0d543768ef85675791ac8"
+  integrity sha512-SyteEck9fiCskNmPxs/GFhJsZrIyLfRvjWNmcUwULLJyCU0f1oxo2sWTokXA1mDAq9vxk4e4gVcb/8agq73NkQ==
   dependencies:
     asn1.js "^5.3.0"
     http_ece "1.1.0"
-    https-proxy-agent "^5.0.0"
+    https-proxy-agent "^7.0.0"
     jws "^4.0.0"
     minimist "^1.2.5"
 
-web-streams-polyfill@^3.0.3:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
-  integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
-
-webdav@*:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/webdav/-/webdav-5.1.0.tgz#959cb5c34379cd0202adcce58c8a71266d9c2d35"
-  integrity sha512-66OP2/PkVe3tkVy5wO/XsGebKuWhn2ebywA7a11ViHNls8Y6pgop6hU9j7god+GbZv/zVQeTs9w3ZS7JhHhE7g==
+webdav@4.11.3:
+  version "4.11.3"
+  resolved "https://registry.yarnpkg.com/webdav/-/webdav-4.11.3.tgz#c8bf9b5ed1799d432d58958433925b0fa91db08e"
+  integrity sha512-NIuREBXYo5xb+zB4zy502snynbhugWjepg5Oke0ByEb7J/Ofmbk+JgFYM+sZdnKG3+XQ87rictDIF+SHUJkwlg==
   dependencies:
-    "@buttercup/fetch" "^0.1.1"
+    axios "^0.27.2"
     base-64 "^1.0.0"
     byte-length "^1.0.2"
-    fast-xml-parser "^3.19.0"
+    fast-xml-parser "^4.2.4"
     he "^1.2.0"
-    hot-patcher "^2.0.0"
+    hot-patcher "^1.0.0"
     layerr "^0.1.2"
     md5 "^2.3.0"
     minimatch "^5.1.0"
@@ -10345,9 +10604,9 @@ whatwg-encoding@^2.0.0:
     iconv-lite "0.6.3"
 
 whatwg-fetch@^3.4.1:
-  version "3.6.2"
-  resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
-  integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
+  version "3.6.20"
+  resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70"
+  integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==
 
 whatwg-mimetype@^3.0.0:
   version "3.0.0"
@@ -10399,17 +10658,16 @@ which-module@^2.0.0:
   resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
   integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
 
-which-typed-array@^1.1.9:
-  version "1.1.9"
-  resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
-  integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
+which-typed-array@^1.1.11, which-typed-array@^1.1.13:
+  version "1.1.13"
+  resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
+  integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==
   dependencies:
     available-typed-arrays "^1.0.5"
-    call-bind "^1.0.2"
+    call-bind "^1.0.4"
     for-each "^0.3.3"
     gopd "^1.0.1"
     has-tostringtag "^1.0.0"
-    is-typed-array "^1.1.10"
 
 which@^1.2.14, which@^1.2.9, which@^1.3.0:
   version "1.3.1"
@@ -10450,20 +10708,20 @@ window-size@^0.2.0:
   integrity sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==
 
 winston-transport@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa"
-  integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.6.0.tgz#f1c1a665ad1b366df72199e27892721832a19e1b"
+  integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==
   dependencies:
     logform "^2.3.2"
     readable-stream "^3.6.0"
     triple-beam "^1.3.0"
 
 winston@^3.3.3:
-  version "3.9.0"
-  resolved "https://registry.yarnpkg.com/winston/-/winston-3.9.0.tgz#2bbdeb8167a75fac6d9a0c6d002890cd908016c2"
-  integrity sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ==
+  version "3.11.0"
+  resolved "https://registry.yarnpkg.com/winston/-/winston-3.11.0.tgz#2d50b0a695a2758bb1c95279f0a88e858163ed91"
+  integrity sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==
   dependencies:
-    "@colors/colors" "1.5.0"
+    "@colors/colors" "^1.6.0"
     "@dabh/diagnostics" "^2.0.2"
     async "^3.2.3"
     is-stream "^2.0.0"
@@ -10548,7 +10806,12 @@ write-file-atomic@^2.4.2:
     imurmurhash "^0.1.4"
     signal-exit "^3.0.2"
 
-ws@5.2.3, ws@^5.2.0:
+ws@8.14.2:
+  version "8.14.2"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f"
+  integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==
+
+ws@^5.2.0:
   version "5.2.3"
   resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d"
   integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==
@@ -10561,9 +10824,9 @@ ws@^7.0.0:
   integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
 
 ws@^8.13.0, ws@^8.4.0, ws@^8.9.0:
-  version "8.13.0"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
-  integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
+  version "8.16.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4"
+  integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
 
 xml-crypto@^2.1.3:
   version "2.1.5"
@@ -10603,6 +10866,11 @@ xml2js@^0.5.0:
     sax ">=0.6.0"
     xmlbuilder "~11.0.0"
 
+xml@0.0.12:
+  version "0.0.12"
+  resolved "https://registry.yarnpkg.com/xml/-/xml-0.0.12.tgz#f08b347109912be00285785f46f15ad8e50a5f67"
+  integrity sha512-vXz2nTtS+bQYemYFzbTxjlmdMOmIhmP+frdnJi3M2Ul/ezrwcW9IYwiwqvecY3PtHNXGKBDrA+DNAEky0zY7Xg==
+
 xmlbuilder@^13.0.2:
   version "13.0.2"
   resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7"
@@ -10742,7 +11010,7 @@ yargs@~3.10.0:
     decamelize "^1.0.0"
     window-size "0.1.0"
 
-yauzl@^2.10.0:
+yauzl@2.10.0:
   version "2.10.0"
   resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
   integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
@@ -10750,7 +11018,7 @@ yauzl@^2.10.0:
     buffer-crc32 "~0.2.3"
     fd-slicer "~1.1.0"
 
-yubikeyotp@*:
+yubikeyotp@0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/yubikeyotp/-/yubikeyotp-0.2.0.tgz#8bdc51122cd00ed8c919b9c9caeba851b272aa7d"
   integrity sha512-sWfjjYm95OVmKVGAZgGcIpY8D8f0s/dOQW/keE509ppfUizKpMZc8lL5ny/ywe5yihRu3/ZeYLcD7V3CQi2n4Q==
@@ -10758,15 +11026,15 @@ yubikeyotp@*:
     request "*"
 
 zip-stream@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79"
-  integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135"
+  integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==
   dependencies:
-    archiver-utils "^2.1.0"
-    compress-commons "^4.1.0"
+    archiver-utils "^3.0.4"
+    compress-commons "^4.1.2"
     readable-stream "^3.6.0"
 
-zulip@*:
+zulip@0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/zulip/-/zulip-0.1.0.tgz#62f52b245f4749bac59258592db4bae978b44720"
   integrity sha512-zsnsxRN0tcR3Qc6GEPg3t2ZrCoLtERE5VqdjHWxTH7Uq+A2hPSfxWEPKbsntpXHgsmywfDMo+P+IdeOcVdX6HA==
diff --git a/pkgs/tools/admin/oci-cli/default.nix b/pkgs/tools/admin/oci-cli/default.nix
index 43e5ad9d650bf..1d09e02b6ba68 100644
--- a/pkgs/tools/admin/oci-cli/default.nix
+++ b/pkgs/tools/admin/oci-cli/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchPypi
 , python3
 }:
 
@@ -10,10 +11,10 @@ let
       click = super.click.overridePythonAttrs (oldAttrs: rec {
         version = "7.1.2";
 
-        src = oldAttrs.src.override {
+        src = fetchPypi {
+          pname = "click";
           inherit version;
           hash = "sha256-0rUlXHxjSbwb0eWeCM0SrLvWPOZJ8liHVXg6qU37axo=";
-          sha256 = "";
         };
         disabledTests = [ "test_bytes_args" ]; # https://github.com/pallets/click/commit/6e05e1fa1c2804
       });
diff --git a/pkgs/tools/admin/ossutil/default.nix b/pkgs/tools/admin/ossutil/default.nix
index 4e4bb79c9956c..77e3e9afab5ad 100644
--- a/pkgs/tools/admin/ossutil/default.nix
+++ b/pkgs/tools/admin/ossutil/default.nix
@@ -1,17 +1,17 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
-  version = "1.7.16";
+  version = "1.7.17";
   pname = "ossutil";
 
   src = fetchFromGitHub {
     owner = "aliyun";
     repo = "ossutil";
     rev = "refs/tags/v${version}";
-    hash = "sha256-J6t8QoyCvbGrUX2AkdqugztchP7Cc0jZsrn1+OB2hVY=";
+    hash = "sha256-5Z0mMgDYexUQAcngeEd0m5J5kRwWTGIS2Q+idBcTV98=";
   };
 
-  vendorHash = "sha256-oxhi27Zt91S2RwidM+BPati/HWuP8FrZs1X2R2Px5hI=";
+  vendorHash = "sha256-4a/bNH47sxxwgYYQhHTqyXddJit3VbeM49/4IEfjWsY=";
 
   # don't run tests as they require secret access keys that only travis has
   doCheck = false;
diff --git a/pkgs/tools/admin/oxidized/default.nix b/pkgs/tools/admin/oxidized/default.nix
index 0969acab5e440..0436038a98b18 100644
--- a/pkgs/tools/admin/oxidized/default.nix
+++ b/pkgs/tools/admin/oxidized/default.nix
@@ -11,10 +11,10 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "oxidized";
 
   meta = with lib; {
-    description = "A network device configuration backup tool. It's a RANCID replacement!";
+    description = "A network device configuration backup tool. It's a RANCID replacement";
     homepage    = "https://github.com/ytti/oxidized";
     license     = licenses.asl20;
-    maintainers = with maintainers; [ nicknovitski netali ];
+    maintainers = with maintainers; [ nicknovitski ] ++ teams.wdz.members;
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/pbm/default.nix b/pkgs/tools/admin/pbm/default.nix
index 39445a52354a3..4fe6c95a4893f 100644
--- a/pkgs/tools/admin/pbm/default.nix
+++ b/pkgs/tools/admin/pbm/default.nix
@@ -7,7 +7,7 @@ buildDotnetGlobalTool {
   nugetSha256 = "sha256-xu3g8NFLZYnHzBuoIhIiAzaPJqY0xhLWLYi+ORRADH8=";
 
   meta = with lib; {
-    description = "CLI for managing Akka.NET applications and Akka.NET Clusters.";
+    description = "CLI for managing Akka.NET applications and Akka.NET Clusters";
     homepage = "https://cmd.petabridge.com/index.html";
     changelog = "https://cmd.petabridge.com/articles/RELEASE_NOTES.html";
     license = licenses.unfree;
diff --git a/pkgs/tools/admin/pgadmin/default.nix b/pkgs/tools/admin/pgadmin/default.nix
index 3040258c0ca7a..d6f3b7551f9a2 100644
--- a/pkgs/tools/admin/pgadmin/default.nix
+++ b/pkgs/tools/admin/pgadmin/default.nix
@@ -7,21 +7,21 @@
 , postgresqlTestHook
 , postgresql
 , yarn
-, fixup_yarn_lock
+, prefetch-yarn-deps
 , nodejs
 , server-mode ? true
 }:
 
 let
   pname = "pgadmin";
-  version = "7.5";
-  yarnSha256 = "sha256-rEKMUZksmR2jPwtXy6drNwAJktK/3Dee6EZVFHPngWs=";
+  version = "8.2";
+  yarnHash = "sha256-uMSgpkYoLD32VYDAkjywC9bZjm7UKA0hhwVNc/toEbA=";
 
   src = fetchFromGitHub {
     owner = "pgadmin-org";
     repo = "pgadmin4";
     rev = "REL-${lib.versions.major version}_${lib.versions.minor version}";
-    hash = "sha256-o8jPqp4jLF/lZ0frCzPDCSxCy51Nt0mbdeNB44ZwNHI=";
+    hash = "sha256-RfpZXy265kwpMsWUBDVfbL/0eX0By79I4VNkG8zwVOs=";
   };
 
   # keep the scope, as it is used throughout the derivation and tests
@@ -30,7 +30,7 @@ let
 
   offlineCache = fetchYarnDeps {
     yarnLock = ./yarn.lock;
-    hash = yarnSha256;
+    hash = yarnHash;
   };
 
 in
@@ -59,17 +59,8 @@ pythonPackages.buildPythonApplication rec {
     # fix document which refers a non-existing document and fails
     substituteInPlace docs/en_US/contributions.rst \
       --replace "code_snippets" ""
-    patchShebangs .
-
     # relax dependencies
     sed 's|==|>=|g' -i requirements.txt
-    #TODO: Can be removed once boto3>=1.28.0 and cryptography>=41 has been merged to master
-    substituteInPlace requirements.txt \
-      --replace "boto3>=1.28.*" "boto3>=1.26.*"
-    substituteInPlace requirements.txt \
-      --replace "botocore>=1.31.*" "botocore>=1.29.*"
-    substituteInPlace requirements.txt \
-      --replace "cryptography>=41.0.*" "cryptography>=40.0.*"
     # fix extra_require error with "*" in match
     sed 's|*|0|g' -i requirements.txt
     substituteInPlace pkg/pip/setup_pip.py \
@@ -110,7 +101,7 @@ pythonPackages.buildPythonApplication rec {
     rm yarn.lock
     cp ${./yarn.lock} yarn.lock
     chmod +w yarn.lock
-    fixup_yarn_lock yarn.lock
+    fixup-yarn-lock yarn.lock
     yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
     patchShebangs node_modules/
     yarn webpacker
@@ -134,7 +125,7 @@ pythonPackages.buildPythonApplication rec {
     cp -v ../pkg/pip/setup_pip.py setup.py
   '';
 
-  nativeBuildInputs = with pythonPackages; [ cython pip sphinx yarn fixup_yarn_lock nodejs ];
+  nativeBuildInputs = with pythonPackages; [ cython pip sphinx yarn prefetch-yarn-deps nodejs ];
   buildInputs = [
     zlib
     pythonPackages.wheel
@@ -190,6 +181,8 @@ pythonPackages.buildPythonApplication rec {
     google-auth-oauthlib
     google-api-python-client
     keyring
+    typer
+    rich
   ];
 
   passthru.tests = {
diff --git a/pkgs/tools/admin/pgadmin/expose-setup.py.patch b/pkgs/tools/admin/pgadmin/expose-setup.py.patch
index 13f7d5069c69b..67e588c5be832 100644
--- a/pkgs/tools/admin/pgadmin/expose-setup.py.patch
+++ b/pkgs/tools/admin/pgadmin/expose-setup.py.patch
@@ -1,60 +1,40 @@
- pkg/pip/setup_pip.py |  5 ++++-
- web/setup.py         | 14 ++++++++------
- 2 files changed, 12 insertions(+), 7 deletions(-)
-
 diff --git a/pkg/pip/setup_pip.py b/pkg/pip/setup_pip.py
-index 5592d1b04..131eaa1ed 100644
+index c65795b10..e56b6a6f3 100644
 --- a/pkg/pip/setup_pip.py
 +++ b/pkg/pip/setup_pip.py
-@@ -95,7 +95,10 @@ setup(
-     },
- 
+@@ -101,7 +101,7 @@ setup(
+
      entry_points={
--        'console_scripts': ['pgadmin4=pgadmin4.pgAdmin4:main'],
-+        'console_scripts': [
-+            'pgadmin4=pgadmin4.pgAdmin4:main',
-+            'pgadmin4-setup=pgadmin4.setup:main'
-+        ],
+         'console_scripts': ['pgadmin4=pgadmin4.pgAdmin4:main',
+-                            'pgadmin4-cli=pgadmin4.setup:main'],
++                            'pgadmin4-cli=pgadmin4.setup:app'],
      },
- 
+
  )
-diff --git a/web/setup.py b/web/setup.py
-index 2204ffb..d5fda9f 100644
---- a/web/setup.py
-+++ b/web/setup.py
-@@ -14,7 +14,6 @@ import argparse
- import os
- import sys
- import builtins
+diff --git a/web/pgadmin/model/__init__.py b/web/pgadmin/model/__init__.py
+index 4c36dd1..a492365 100644
+--- a/web/pgadmin/model/__init__.py
++++ b/web/pgadmin/model/__init__.py
+@@ -23,7 +23,6 @@ from flask_sqlalchemy import SQLAlchemy
+ from sqlalchemy.ext.mutable import MutableDict
+ import sqlalchemy.types as types
+ import uuid
 -import config
 
- # Grab the SERVER_MODE if it's been set by the runtime
- if 'SERVER_MODE' in globals():
-@@ -91,6 +90,9 @@ def load_servers(args):
- def setup_db(app):
-     """Setup the configuration database."""
-
-+    # here we need an additional import, since the call to setup_db changed
-+    # https://redmine.postgresql.org/projects/pgadmin4/repository/2/revisions/3a69d50458f57d19948b867aec55c55d635a36e5/diff/web/setup.py
-+    import config
-     create_app_data_directory(config)
-
-     print("pgAdmin 4 - Application Initialisation")
-@@ -139,8 +141,9 @@ def clear_servers():
-         clear_database_servers(load_user, True)
+ ##########################################################################
+ #
+@@ -41,10 +40,12 @@ SCHEMA_VERSION = 35
+ #
+ ##########################################################################
 
++# hardcode poolsize and max_overflow due to a circular import (config imports model,
++# model now tries to import config)
+ db = SQLAlchemy(
+     engine_options={
+-        'pool_size': config.CONFIG_DATABASE_CONNECTION_POOL_SIZE,
+-        'max_overflow': config.CONFIG_DATABASE_CONNECTION_MAX_OVERFLOW})
++        'pool_size': 5,
++        'max_overflow': 100})
 
--if __name__ == '__main__':
-+def main():
-     # Configuration settings
-+    import config
-     parser = argparse.ArgumentParser(description='Setup the pgAdmin config DB')
 
-     exp_group = parser.add_argument_group('Dump server config')
-@@ -191,3 +194,6 @@ if __name__ == '__main__':
-     else:
-         app = create_app()
-         setup_db(app)
-+
-+if __name__ == '__main__':
-+    main()
+ USER_ID = 'user.id'
diff --git a/pkgs/tools/admin/pgadmin/update.sh b/pkgs/tools/admin/pgadmin/update.sh
index a819c94ebc980..90b52f18ad513 100755
--- a/pkgs/tools/admin/pgadmin/update.sh
+++ b/pkgs/tools/admin/pgadmin/update.sh
@@ -104,7 +104,7 @@ cp yarn.lock "$nixpkgs/pkgs/tools/admin/pgadmin/"
 printf "Done\n"
 popd
 
-sed -i -E -e "s#yarnSha256 = \".*\"#yarnSha256 = \"$YARN_HASH\"#" ${scriptDir}/default.nix
+sed -i -E -e "s#yarnHash = \".*\"#yarnHash = \"$YARN_HASH\"#" ${scriptDir}/default.nix
 
 update-source-version pgadmin4 "$newest_version" --print-changes
 touch $TMPDIR/.done
diff --git a/pkgs/tools/admin/pgadmin/yarn.lock b/pkgs/tools/admin/pgadmin/yarn.lock
index 04815260d4962..cf3e188e8674f 100644
--- a/pkgs/tools/admin/pgadmin/yarn.lock
+++ b/pkgs/tools/admin/pgadmin/yarn.lock
@@ -2,6 +2,11 @@
 # yarn lockfile v1
 
 
+"@adobe/css-tools@^4.3.0":
+  version "4.3.1"
+  resolved "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28"
+  integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==
+
 "@ampproject/remapping@^2.2.0":
   version "2.2.1"
   resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
@@ -17,12 +22,30 @@
   dependencies:
     "@babel/highlight" "^7.22.5"
 
+"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13":
+  version "7.22.13"
+  resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
+  integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
+  dependencies:
+    "@babel/highlight" "^7.22.13"
+    chalk "^2.4.2"
+
 "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255"
   integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==
 
-"@babel/core@^7.10.2", "@babel/core@^7.12.3", "@babel/core@^7.19.6":
+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9":
+  version "7.22.9"
+  resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
+  integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
+
+"@babel/compat-data@^7.23.2":
+  version "7.23.2"
+  resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz#6a12ced93455827037bfb5ed8492820d60fc32cc"
+  integrity sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==
+
+"@babel/core@^7.10.2", "@babel/core@^7.12.3":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89"
   integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==
@@ -43,6 +66,48 @@
     json5 "^2.2.2"
     semver "^6.3.0"
 
+"@babel/core@^7.11.6":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.15.tgz#15d4fd03f478a459015a4b94cfbb3bd42c48d2f4"
+  integrity sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA==
+  dependencies:
+    "@ampproject/remapping" "^2.2.0"
+    "@babel/code-frame" "^7.22.13"
+    "@babel/generator" "^7.22.15"
+    "@babel/helper-compilation-targets" "^7.22.15"
+    "@babel/helper-module-transforms" "^7.22.15"
+    "@babel/helpers" "^7.22.15"
+    "@babel/parser" "^7.22.15"
+    "@babel/template" "^7.22.15"
+    "@babel/traverse" "^7.22.15"
+    "@babel/types" "^7.22.15"
+    convert-source-map "^1.7.0"
+    debug "^4.1.0"
+    gensync "^1.0.0-beta.2"
+    json5 "^2.2.3"
+    semver "^6.3.1"
+
+"@babel/core@^7.21.3":
+  version "7.23.2"
+  resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94"
+  integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==
+  dependencies:
+    "@ampproject/remapping" "^2.2.0"
+    "@babel/code-frame" "^7.22.13"
+    "@babel/generator" "^7.23.0"
+    "@babel/helper-compilation-targets" "^7.22.15"
+    "@babel/helper-module-transforms" "^7.23.0"
+    "@babel/helpers" "^7.23.2"
+    "@babel/parser" "^7.23.0"
+    "@babel/template" "^7.22.15"
+    "@babel/traverse" "^7.23.2"
+    "@babel/types" "^7.23.0"
+    convert-source-map "^2.0.0"
+    debug "^4.1.0"
+    gensync "^1.0.0-beta.2"
+    json5 "^2.2.3"
+    semver "^6.3.1"
+
 "@babel/eslint-parser@^7.21.3":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.5.tgz#fa032503b9e2d188e25b1b95d29e8b8431042d78"
@@ -59,6 +124,16 @@
   dependencies:
     eslint-rule-composer "^0.3.0"
 
+"@babel/generator@^7.22.15", "@babel/generator@^7.7.2":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339"
+  integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==
+  dependencies:
+    "@babel/types" "^7.22.15"
+    "@jridgewell/gen-mapping" "^0.3.2"
+    "@jridgewell/trace-mapping" "^0.3.17"
+    jsesc "^2.5.1"
+
 "@babel/generator@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7"
@@ -69,6 +144,16 @@
     "@jridgewell/trace-mapping" "^0.3.17"
     jsesc "^2.5.1"
 
+"@babel/generator@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420"
+  integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==
+  dependencies:
+    "@babel/types" "^7.23.0"
+    "@jridgewell/gen-mapping" "^0.3.2"
+    "@jridgewell/trace-mapping" "^0.3.17"
+    jsesc "^2.5.1"
+
 "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
@@ -94,6 +179,17 @@
     lru-cache "^5.1.1"
     semver "^6.3.0"
 
+"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52"
+  integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==
+  dependencies:
+    "@babel/compat-data" "^7.22.9"
+    "@babel/helper-validator-option" "^7.22.15"
+    browserslist "^4.21.9"
+    lru-cache "^5.1.1"
+    semver "^6.3.1"
+
 "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c"
@@ -109,6 +205,21 @@
     "@babel/helper-split-export-declaration" "^7.22.5"
     semver "^6.3.0"
 
+"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4"
+  integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-environment-visitor" "^7.22.5"
+    "@babel/helper-function-name" "^7.22.5"
+    "@babel/helper-member-expression-to-functions" "^7.22.15"
+    "@babel/helper-optimise-call-expression" "^7.22.5"
+    "@babel/helper-replace-supers" "^7.22.9"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    semver "^6.3.1"
+
 "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz#bb2bf0debfe39b831986a4efbf4066586819c6e4"
@@ -130,6 +241,33 @@
     resolve "^1.14.2"
     semver "^6.1.2"
 
+"@babel/helper-define-polyfill-provider@^0.4.2":
+  version "0.4.2"
+  resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7"
+  integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.22.6"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    debug "^4.1.1"
+    lodash.debounce "^4.0.8"
+    resolve "^1.14.2"
+
+"@babel/helper-define-polyfill-provider@^0.4.3":
+  version "0.4.3"
+  resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba"
+  integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.22.6"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    debug "^4.1.1"
+    lodash.debounce "^4.0.8"
+    resolve "^1.14.2"
+
+"@babel/helper-environment-visitor@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+  integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
+
 "@babel/helper-environment-visitor@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
@@ -143,6 +281,14 @@
     "@babel/template" "^7.22.5"
     "@babel/types" "^7.22.5"
 
+"@babel/helper-function-name@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+  integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
+  dependencies:
+    "@babel/template" "^7.22.15"
+    "@babel/types" "^7.23.0"
+
 "@babel/helper-hoist-variables@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
@@ -150,6 +296,13 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
+"@babel/helper-member-expression-to-functions@^7.22.15":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366"
+  integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==
+  dependencies:
+    "@babel/types" "^7.23.0"
+
 "@babel/helper-member-expression-to-functions@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2"
@@ -164,6 +317,24 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
+"@babel/helper-module-imports@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+  integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
+  dependencies:
+    "@babel/types" "^7.22.15"
+
+"@babel/helper-module-transforms@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz#40ad2f6950f143900e9c1c72363c0b431a606082"
+  integrity sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.22.5"
+    "@babel/helper-module-imports" "^7.22.15"
+    "@babel/helper-simple-access" "^7.22.5"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    "@babel/helper-validator-identifier" "^7.22.15"
+
 "@babel/helper-module-transforms@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef"
@@ -178,6 +349,17 @@
     "@babel/traverse" "^7.22.5"
     "@babel/types" "^7.22.5"
 
+"@babel/helper-module-transforms@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e"
+  integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-module-imports" "^7.22.15"
+    "@babel/helper-simple-access" "^7.22.5"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    "@babel/helper-validator-identifier" "^7.22.20"
+
 "@babel/helper-optimise-call-expression@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
@@ -190,6 +372,15 @@
   resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
   integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
 
+"@babel/helper-remap-async-to-generator@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0"
+  integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-wrap-function" "^7.22.20"
+
 "@babel/helper-remap-async-to-generator@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2"
@@ -212,6 +403,15 @@
     "@babel/traverse" "^7.22.5"
     "@babel/types" "^7.22.5"
 
+"@babel/helper-replace-supers@^7.22.9":
+  version "7.22.20"
+  resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793"
+  integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-member-expression-to-functions" "^7.22.15"
+    "@babel/helper-optimise-call-expression" "^7.22.5"
+
 "@babel/helper-simple-access@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
@@ -233,21 +433,52 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
+"@babel/helper-split-export-declaration@^7.22.6":
+  version "7.22.6"
+  resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+  integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+  dependencies:
+    "@babel/types" "^7.22.5"
+
 "@babel/helper-string-parser@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
   integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
 
+"@babel/helper-validator-identifier@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044"
+  integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==
+
+"@babel/helper-validator-identifier@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+  integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
 "@babel/helper-validator-identifier@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
   integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
 
+"@babel/helper-validator-option@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040"
+  integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==
+
 "@babel/helper-validator-option@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac"
   integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==
 
+"@babel/helper-wrap-function@^7.22.20":
+  version "7.22.20"
+  resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569"
+  integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==
+  dependencies:
+    "@babel/helper-function-name" "^7.22.5"
+    "@babel/template" "^7.22.15"
+    "@babel/types" "^7.22.19"
+
 "@babel/helper-wrap-function@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06"
@@ -258,6 +489,15 @@
     "@babel/traverse" "^7.22.5"
     "@babel/types" "^7.22.5"
 
+"@babel/helpers@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1"
+  integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==
+  dependencies:
+    "@babel/template" "^7.22.15"
+    "@babel/traverse" "^7.22.15"
+    "@babel/types" "^7.22.15"
+
 "@babel/helpers@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz#74bb4373eb390d1ceed74a15ef97767e63120820"
@@ -267,6 +507,24 @@
     "@babel/traverse" "^7.22.5"
     "@babel/types" "^7.22.5"
 
+"@babel/helpers@^7.23.2":
+  version "7.23.2"
+  resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767"
+  integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==
+  dependencies:
+    "@babel/template" "^7.22.15"
+    "@babel/traverse" "^7.23.2"
+    "@babel/types" "^7.23.0"
+
+"@babel/highlight@^7.22.13":
+  version "7.22.13"
+  resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16"
+  integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.22.5"
+    chalk "^2.4.2"
+    js-tokens "^4.0.0"
+
 "@babel/highlight@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031"
@@ -276,11 +534,28 @@
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
+"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.15.tgz#d34592bfe288a32e741aa0663dbc4829fcd55160"
+  integrity sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==
+
 "@babel/parser@^7.14.7", "@babel/parser@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea"
   integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==
 
+"@babel/parser@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
+  integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962"
+  integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e"
@@ -288,6 +563,15 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f"
+  integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+    "@babel/plugin-transform-optional-chaining" "^7.22.15"
+
 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca"
@@ -336,7 +620,14 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-class-properties@^7.12.13":
+"@babel/plugin-syntax-bigint@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+  integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3":
   version "7.12.13"
   resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
   integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
@@ -378,7 +669,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-syntax-import-meta@^7.10.4":
+"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3":
   version "7.10.4"
   resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
   integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
@@ -392,14 +683,14 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-jsx@^7.16.0", "@babel/plugin-syntax-jsx@^7.22.5":
+"@babel/plugin-syntax-jsx@^7.16.0", "@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
   integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
   version "7.10.4"
   resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
   integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
@@ -413,7 +704,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-numeric-separator@^7.10.4":
+"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3":
   version "7.10.4"
   resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
   integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
@@ -448,14 +739,14 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.14.5"
 
-"@babel/plugin-syntax-top-level-await@^7.14.5":
+"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3":
   version "7.14.5"
   resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
   integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
   dependencies:
     "@babel/helper-plugin-utils" "^7.14.5"
 
-"@babel/plugin-syntax-typescript@^7.22.5":
+"@babel/plugin-syntax-typescript@^7.22.5", "@babel/plugin-syntax-typescript@^7.7.2":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272"
   integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==
@@ -487,6 +778,16 @@
     "@babel/helper-remap-async-to-generator" "^7.22.5"
     "@babel/plugin-syntax-async-generators" "^7.8.4"
 
+"@babel/plugin-transform-async-generator-functions@^7.23.2":
+  version "7.23.2"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz#054afe290d64c6f576f371ccc321772c8ea87ebb"
+  integrity sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-remap-async-to-generator" "^7.22.20"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+
 "@babel/plugin-transform-async-to-generator@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775"
@@ -510,6 +811,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-block-scoping@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022"
+  integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
 "@babel/plugin-transform-class-properties@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77"
@@ -518,6 +826,15 @@
     "@babel/helper-create-class-features-plugin" "^7.22.5"
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-class-static-block@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974"
+  integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.22.11"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
 "@babel/plugin-transform-class-static-block@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba"
@@ -527,6 +844,21 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/plugin-syntax-class-static-block" "^7.14.5"
 
+"@babel/plugin-transform-classes@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b"
+  integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-compilation-targets" "^7.22.15"
+    "@babel/helper-environment-visitor" "^7.22.5"
+    "@babel/helper-function-name" "^7.22.5"
+    "@babel/helper-optimise-call-expression" "^7.22.5"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-replace-supers" "^7.22.9"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    globals "^11.1.0"
+
 "@babel/plugin-transform-classes@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz#635d4e98da741fad814984639f4c0149eb0135e1"
@@ -557,6 +889,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-destructuring@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c"
+  integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
 "@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165"
@@ -572,6 +911,14 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-dynamic-import@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa"
+  integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
 "@babel/plugin-transform-dynamic-import@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e"
@@ -588,6 +935,14 @@
     "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5"
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-export-namespace-from@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c"
+  integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
 "@babel/plugin-transform-export-namespace-from@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b"
@@ -596,6 +951,13 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
 
+"@babel/plugin-transform-for-of@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29"
+  integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
 "@babel/plugin-transform-for-of@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f"
@@ -612,6 +974,14 @@
     "@babel/helper-function-name" "^7.22.5"
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-json-strings@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835"
+  integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+
 "@babel/plugin-transform-json-strings@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0"
@@ -627,6 +997,14 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-logical-assignment-operators@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c"
+  integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
 "@babel/plugin-transform-logical-assignment-operators@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c"
@@ -650,6 +1028,14 @@
     "@babel/helper-module-transforms" "^7.22.5"
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-modules-amd@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88"
+  integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.23.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
+
 "@babel/plugin-transform-modules-commonjs@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa"
@@ -659,6 +1045,15 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/helper-simple-access" "^7.22.5"
 
+"@babel/plugin-transform-modules-commonjs@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481"
+  integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.23.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-simple-access" "^7.22.5"
+
 "@babel/plugin-transform-modules-systemjs@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496"
@@ -669,6 +1064,16 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/helper-validator-identifier" "^7.22.5"
 
+"@babel/plugin-transform-modules-systemjs@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160"
+  integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==
+  dependencies:
+    "@babel/helper-hoist-variables" "^7.22.5"
+    "@babel/helper-module-transforms" "^7.23.0"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-validator-identifier" "^7.22.20"
+
 "@babel/plugin-transform-modules-umd@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98"
@@ -692,6 +1097,14 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc"
+  integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
 "@babel/plugin-transform-nullish-coalescing-operator@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381"
@@ -700,6 +1113,14 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
 
+"@babel/plugin-transform-numeric-separator@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd"
+  integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
 "@babel/plugin-transform-numeric-separator@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58"
@@ -708,6 +1129,17 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/plugin-syntax-numeric-separator" "^7.10.4"
 
+"@babel/plugin-transform-object-rest-spread@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f"
+  integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==
+  dependencies:
+    "@babel/compat-data" "^7.22.9"
+    "@babel/helper-compilation-targets" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-transform-parameters" "^7.22.15"
+
 "@babel/plugin-transform-object-rest-spread@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1"
@@ -727,6 +1159,14 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/helper-replace-supers" "^7.22.5"
 
+"@babel/plugin-transform-optional-catch-binding@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0"
+  integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
 "@babel/plugin-transform-optional-catch-binding@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333"
@@ -735,6 +1175,15 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
 
+"@babel/plugin-transform-optional-chaining@^7.22.15", "@babel/plugin-transform-optional-chaining@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158"
+  integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
 "@babel/plugin-transform-optional-chaining@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz#1003762b9c14295501beb41be72426736bedd1e0"
@@ -751,6 +1200,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-parameters@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114"
+  integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
 "@babel/plugin-transform-private-methods@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722"
@@ -759,6 +1215,16 @@
     "@babel/helper-create-class-features-plugin" "^7.22.5"
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-private-property-in-object@^7.22.11":
+  version "7.22.11"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1"
+  integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-create-class-features-plugin" "^7.22.11"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
 "@babel/plugin-transform-private-property-in-object@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32"
@@ -776,7 +1242,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/plugin-transform-react-constant-elements@^7.18.12":
+"@babel/plugin-transform-react-constant-elements@^7.21.3":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz#6dfa7c1c37f7d7279e417ceddf5a04abb8bb9c29"
   integrity sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==
@@ -816,6 +1282,14 @@
     "@babel/helper-annotate-as-pure" "^7.22.5"
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-regenerator@^7.22.10":
+  version "7.22.10"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca"
+  integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    regenerator-transform "^0.15.2"
+
 "@babel/plugin-transform-regenerator@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa"
@@ -831,6 +1305,18 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-runtime@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9"
+  integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==
+  dependencies:
+    "@babel/helper-module-imports" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    babel-plugin-polyfill-corejs2 "^0.4.5"
+    babel-plugin-polyfill-corejs3 "^0.8.3"
+    babel-plugin-polyfill-regenerator "^0.5.2"
+    semver "^6.3.1"
+
 "@babel/plugin-transform-shorthand-properties@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624"
@@ -867,6 +1353,16 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
+"@babel/plugin-transform-typescript@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127"
+  integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.22.5"
+    "@babel/helper-create-class-features-plugin" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/plugin-syntax-typescript" "^7.22.5"
+
 "@babel/plugin-transform-typescript@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz#5c0f7adfc1b5f38c4dbc8f79b1f0f8074134bd7d"
@@ -877,6 +1373,13 @@
     "@babel/helper-plugin-utils" "^7.22.5"
     "@babel/plugin-syntax-typescript" "^7.22.5"
 
+"@babel/plugin-transform-unicode-escapes@^7.22.10":
+  version "7.22.10"
+  resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9"
+  integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+
 "@babel/plugin-transform-unicode-escapes@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c"
@@ -908,7 +1411,7 @@
     "@babel/helper-create-regexp-features-plugin" "^7.22.5"
     "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/preset-env@^7.10.2", "@babel/preset-env@^7.19.4":
+"@babel/preset-env@^7.10.2":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz#3da66078b181f3d62512c51cf7014392c511504e"
   integrity sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==
@@ -994,6 +1497,101 @@
     core-js-compat "^3.30.2"
     semver "^6.3.0"
 
+"@babel/preset-env@^7.20.2":
+  version "7.23.2"
+  resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz#1f22be0ff0e121113260337dbc3e58fafce8d059"
+  integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==
+  dependencies:
+    "@babel/compat-data" "^7.23.2"
+    "@babel/helper-compilation-targets" "^7.22.15"
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-validator-option" "^7.22.15"
+    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15"
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15"
+    "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+    "@babel/plugin-syntax-class-properties" "^7.12.13"
+    "@babel/plugin-syntax-class-static-block" "^7.14.5"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+    "@babel/plugin-syntax-import-assertions" "^7.22.5"
+    "@babel/plugin-syntax-import-attributes" "^7.22.5"
+    "@babel/plugin-syntax-import-meta" "^7.10.4"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+    "@babel/plugin-syntax-top-level-await" "^7.14.5"
+    "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
+    "@babel/plugin-transform-arrow-functions" "^7.22.5"
+    "@babel/plugin-transform-async-generator-functions" "^7.23.2"
+    "@babel/plugin-transform-async-to-generator" "^7.22.5"
+    "@babel/plugin-transform-block-scoped-functions" "^7.22.5"
+    "@babel/plugin-transform-block-scoping" "^7.23.0"
+    "@babel/plugin-transform-class-properties" "^7.22.5"
+    "@babel/plugin-transform-class-static-block" "^7.22.11"
+    "@babel/plugin-transform-classes" "^7.22.15"
+    "@babel/plugin-transform-computed-properties" "^7.22.5"
+    "@babel/plugin-transform-destructuring" "^7.23.0"
+    "@babel/plugin-transform-dotall-regex" "^7.22.5"
+    "@babel/plugin-transform-duplicate-keys" "^7.22.5"
+    "@babel/plugin-transform-dynamic-import" "^7.22.11"
+    "@babel/plugin-transform-exponentiation-operator" "^7.22.5"
+    "@babel/plugin-transform-export-namespace-from" "^7.22.11"
+    "@babel/plugin-transform-for-of" "^7.22.15"
+    "@babel/plugin-transform-function-name" "^7.22.5"
+    "@babel/plugin-transform-json-strings" "^7.22.11"
+    "@babel/plugin-transform-literals" "^7.22.5"
+    "@babel/plugin-transform-logical-assignment-operators" "^7.22.11"
+    "@babel/plugin-transform-member-expression-literals" "^7.22.5"
+    "@babel/plugin-transform-modules-amd" "^7.23.0"
+    "@babel/plugin-transform-modules-commonjs" "^7.23.0"
+    "@babel/plugin-transform-modules-systemjs" "^7.23.0"
+    "@babel/plugin-transform-modules-umd" "^7.22.5"
+    "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5"
+    "@babel/plugin-transform-new-target" "^7.22.5"
+    "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11"
+    "@babel/plugin-transform-numeric-separator" "^7.22.11"
+    "@babel/plugin-transform-object-rest-spread" "^7.22.15"
+    "@babel/plugin-transform-object-super" "^7.22.5"
+    "@babel/plugin-transform-optional-catch-binding" "^7.22.11"
+    "@babel/plugin-transform-optional-chaining" "^7.23.0"
+    "@babel/plugin-transform-parameters" "^7.22.15"
+    "@babel/plugin-transform-private-methods" "^7.22.5"
+    "@babel/plugin-transform-private-property-in-object" "^7.22.11"
+    "@babel/plugin-transform-property-literals" "^7.22.5"
+    "@babel/plugin-transform-regenerator" "^7.22.10"
+    "@babel/plugin-transform-reserved-words" "^7.22.5"
+    "@babel/plugin-transform-shorthand-properties" "^7.22.5"
+    "@babel/plugin-transform-spread" "^7.22.5"
+    "@babel/plugin-transform-sticky-regex" "^7.22.5"
+    "@babel/plugin-transform-template-literals" "^7.22.5"
+    "@babel/plugin-transform-typeof-symbol" "^7.22.5"
+    "@babel/plugin-transform-unicode-escapes" "^7.22.10"
+    "@babel/plugin-transform-unicode-property-regex" "^7.22.5"
+    "@babel/plugin-transform-unicode-regex" "^7.22.5"
+    "@babel/plugin-transform-unicode-sets-regex" "^7.22.5"
+    "@babel/preset-modules" "0.1.6-no-external-plugins"
+    "@babel/types" "^7.23.0"
+    babel-plugin-polyfill-corejs2 "^0.4.6"
+    babel-plugin-polyfill-corejs3 "^0.8.5"
+    babel-plugin-polyfill-regenerator "^0.5.3"
+    core-js-compat "^3.31.0"
+    semver "^6.3.1"
+
+"@babel/preset-modules@0.1.6-no-external-plugins":
+  version "0.1.6-no-external-plugins"
+  resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a"
+  integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/types" "^7.4.4"
+    esutils "^2.0.2"
+
 "@babel/preset-modules@^0.1.5":
   version "0.1.5"
   resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
@@ -1017,7 +1615,18 @@
     "@babel/plugin-transform-react-jsx-development" "^7.22.5"
     "@babel/plugin-transform-react-pure-annotations" "^7.22.5"
 
-"@babel/preset-typescript@^7.18.6", "@babel/preset-typescript@^7.22.5":
+"@babel/preset-typescript@^7.21.0":
+  version "7.23.2"
+  resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz#c8de488130b7081f7e1482936ad3de5b018beef4"
+  integrity sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.22.5"
+    "@babel/helper-validator-option" "^7.22.15"
+    "@babel/plugin-syntax-jsx" "^7.22.5"
+    "@babel/plugin-transform-modules-commonjs" "^7.23.0"
+    "@babel/plugin-transform-typescript" "^7.22.15"
+
+"@babel/preset-typescript@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8"
   integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==
@@ -1040,6 +1649,15 @@
   dependencies:
     regenerator-runtime "^0.13.11"
 
+"@babel/template@^7.22.15", "@babel/template@^7.3.3":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
+  integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
+  dependencies:
+    "@babel/code-frame" "^7.22.13"
+    "@babel/parser" "^7.22.15"
+    "@babel/types" "^7.22.15"
+
 "@babel/template@^7.22.5":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
@@ -1049,23 +1667,41 @@
     "@babel/parser" "^7.22.5"
     "@babel/types" "^7.22.5"
 
-"@babel/traverse@^7.22.5", "@babel/traverse@^7.4.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1"
-  integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==
+"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.5", "@babel/traverse@^7.23.2", "@babel/traverse@^7.4.5":
+  version "7.23.2"
+  resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
+  integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
   dependencies:
-    "@babel/code-frame" "^7.22.5"
-    "@babel/generator" "^7.22.5"
-    "@babel/helper-environment-visitor" "^7.22.5"
-    "@babel/helper-function-name" "^7.22.5"
+    "@babel/code-frame" "^7.22.13"
+    "@babel/generator" "^7.23.0"
+    "@babel/helper-environment-visitor" "^7.22.20"
+    "@babel/helper-function-name" "^7.23.0"
     "@babel/helper-hoist-variables" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.5"
-    "@babel/parser" "^7.22.5"
-    "@babel/types" "^7.22.5"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    "@babel/parser" "^7.23.0"
+    "@babel/types" "^7.23.0"
     debug "^4.1.0"
     globals "^11.1.0"
 
-"@babel/types@^7.20.0", "@babel/types@^7.22.5", "@babel/types@^7.4.4", "@babel/types@^7.8.3":
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.3.3":
+  version "7.22.15"
+  resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.15.tgz#266cb21d2c5fd0b3931e7a91b6dd72d2f617d282"
+  integrity sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==
+  dependencies:
+    "@babel/helper-string-parser" "^7.22.5"
+    "@babel/helper-validator-identifier" "^7.22.15"
+    to-fast-properties "^2.0.0"
+
+"@babel/types@^7.21.3", "@babel/types@^7.22.19", "@babel/types@^7.23.0":
+  version "7.23.0"
+  resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
+  integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
+  dependencies:
+    "@babel/helper-string-parser" "^7.22.5"
+    "@babel/helper-validator-identifier" "^7.22.20"
+    to-fast-properties "^2.0.0"
+
+"@babel/types@^7.22.5", "@babel/types@^7.4.4", "@babel/types@^7.8.3":
   version "7.22.5"
   resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
   integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
@@ -1074,10 +1710,10 @@
     "@babel/helper-validator-identifier" "^7.22.5"
     to-fast-properties "^2.0.0"
 
-"@colors/colors@1.5.0":
-  version "1.5.0"
-  resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
-  integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
+"@bcoe/v8-coverage@^0.2.3":
+  version "0.2.3"
+  resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+  integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
 
 "@date-io/core@1.x", "@date-io/core@^1.3.13", "@date-io/core@^1.3.6":
   version "1.3.13"
@@ -1329,10 +1965,10 @@
   dependencies:
     "@floating-ui/core" "^1.3.1"
 
-"@fortawesome/fontawesome-free@^5.14.0":
-  version "5.15.4"
-  resolved "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5"
-  integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg==
+"@fortawesome/fontawesome-free@latest":
+  version "6.4.2"
+  resolved "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz#36b6a9cb5ffbecdf89815c94d0c0ffa489ac5ecb"
+  integrity sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==
 
 "@humanwhocodes/config-array@^0.11.10":
   version "0.11.10"
@@ -1365,11 +2001,145 @@
     wrap-ansi "^8.1.0"
     wrap-ansi-cjs "wrap-ansi@^7.0.0"
 
+"@istanbuljs/load-nyc-config@^1.0.0":
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+  integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+  dependencies:
+    camelcase "^5.3.1"
+    find-up "^4.1.0"
+    get-package-type "^0.1.0"
+    js-yaml "^3.13.1"
+    resolve-from "^5.0.0"
+
 "@istanbuljs/schema@^0.1.2":
   version "0.1.3"
   resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
   integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
 
+"@jest/console@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/console/-/console-29.6.4.tgz#a7e2d84516301f986bba0dd55af9d5fe37f46527"
+  integrity sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw==
+  dependencies:
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    jest-message-util "^29.6.3"
+    jest-util "^29.6.3"
+    slash "^3.0.0"
+
+"@jest/core@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/core/-/core-29.6.4.tgz#265ebee05ec1ff3567757e7a327155c8d6bdb126"
+  integrity sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg==
+  dependencies:
+    "@jest/console" "^29.6.4"
+    "@jest/reporters" "^29.6.4"
+    "@jest/test-result" "^29.6.4"
+    "@jest/transform" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    ansi-escapes "^4.2.1"
+    chalk "^4.0.0"
+    ci-info "^3.2.0"
+    exit "^0.1.2"
+    graceful-fs "^4.2.9"
+    jest-changed-files "^29.6.3"
+    jest-config "^29.6.4"
+    jest-haste-map "^29.6.4"
+    jest-message-util "^29.6.3"
+    jest-regex-util "^29.6.3"
+    jest-resolve "^29.6.4"
+    jest-resolve-dependencies "^29.6.4"
+    jest-runner "^29.6.4"
+    jest-runtime "^29.6.4"
+    jest-snapshot "^29.6.4"
+    jest-util "^29.6.3"
+    jest-validate "^29.6.3"
+    jest-watcher "^29.6.4"
+    micromatch "^4.0.4"
+    pretty-format "^29.6.3"
+    slash "^3.0.0"
+    strip-ansi "^6.0.0"
+
+"@jest/environment@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.6.4.tgz#78ec2c9f8c8829a37616934ff4fea0c028c79f4f"
+  integrity sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==
+  dependencies:
+    "@jest/fake-timers" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    jest-mock "^29.6.3"
+
+"@jest/expect-utils@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.4.tgz#17c7dfe6cec106441f218b0aff4b295f98346679"
+  integrity sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==
+  dependencies:
+    jest-get-type "^29.6.3"
+
+"@jest/expect@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.6.4.tgz#1d6ae17dc68d906776198389427ab7ce6179dba6"
+  integrity sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==
+  dependencies:
+    expect "^29.6.4"
+    jest-snapshot "^29.6.4"
+
+"@jest/fake-timers@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.4.tgz#45a27f093c43d5d989362a3e7a8c70c83188b4f6"
+  integrity sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==
+  dependencies:
+    "@jest/types" "^29.6.3"
+    "@sinonjs/fake-timers" "^10.0.2"
+    "@types/node" "*"
+    jest-message-util "^29.6.3"
+    jest-mock "^29.6.3"
+    jest-util "^29.6.3"
+
+"@jest/globals@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.6.4.tgz#4f04f58731b062b44ef23036b79bdb31f40c7f63"
+  integrity sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==
+  dependencies:
+    "@jest/environment" "^29.6.4"
+    "@jest/expect" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    jest-mock "^29.6.3"
+
+"@jest/reporters@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.4.tgz#9d6350c8a2761ece91f7946e97ab0dabc06deab7"
+  integrity sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g==
+  dependencies:
+    "@bcoe/v8-coverage" "^0.2.3"
+    "@jest/console" "^29.6.4"
+    "@jest/test-result" "^29.6.4"
+    "@jest/transform" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@jridgewell/trace-mapping" "^0.3.18"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    collect-v8-coverage "^1.0.0"
+    exit "^0.1.2"
+    glob "^7.1.3"
+    graceful-fs "^4.2.9"
+    istanbul-lib-coverage "^3.0.0"
+    istanbul-lib-instrument "^6.0.0"
+    istanbul-lib-report "^3.0.0"
+    istanbul-lib-source-maps "^4.0.0"
+    istanbul-reports "^3.1.3"
+    jest-message-util "^29.6.3"
+    jest-util "^29.6.3"
+    jest-worker "^29.6.4"
+    slash "^3.0.0"
+    string-length "^4.0.1"
+    strip-ansi "^6.0.0"
+    v8-to-istanbul "^9.0.1"
+
 "@jest/schemas@^29.4.3":
   version "29.4.3"
   resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788"
@@ -1377,6 +2147,63 @@
   dependencies:
     "@sinclair/typebox" "^0.25.16"
 
+"@jest/schemas@^29.6.3":
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
+  integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
+  dependencies:
+    "@sinclair/typebox" "^0.27.8"
+
+"@jest/source-map@^29.6.3":
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
+  integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
+  dependencies:
+    "@jridgewell/trace-mapping" "^0.3.18"
+    callsites "^3.0.0"
+    graceful-fs "^4.2.9"
+
+"@jest/test-result@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.4.tgz#adf5c79f6e1fb7405ad13d67d9e2b6ff54b54c6b"
+  integrity sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ==
+  dependencies:
+    "@jest/console" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/istanbul-lib-coverage" "^2.0.0"
+    collect-v8-coverage "^1.0.0"
+
+"@jest/test-sequencer@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.4.tgz#86aef66aaa22b181307ed06c26c82802fb836d7b"
+  integrity sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg==
+  dependencies:
+    "@jest/test-result" "^29.6.4"
+    graceful-fs "^4.2.9"
+    jest-haste-map "^29.6.4"
+    slash "^3.0.0"
+
+"@jest/transform@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.6.4.tgz#a6bc799ef597c5d85b2e65a11fd96b6b239bab5a"
+  integrity sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==
+  dependencies:
+    "@babel/core" "^7.11.6"
+    "@jest/types" "^29.6.3"
+    "@jridgewell/trace-mapping" "^0.3.18"
+    babel-plugin-istanbul "^6.1.1"
+    chalk "^4.0.0"
+    convert-source-map "^2.0.0"
+    fast-json-stable-stringify "^2.1.0"
+    graceful-fs "^4.2.9"
+    jest-haste-map "^29.6.4"
+    jest-regex-util "^29.6.3"
+    jest-util "^29.6.3"
+    micromatch "^4.0.4"
+    pirates "^4.0.4"
+    slash "^3.0.0"
+    write-file-atomic "^4.0.2"
+
 "@jest/types@^29.5.0":
   version "29.5.0"
   resolved "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593"
@@ -1389,6 +2216,18 @@
     "@types/yargs" "^17.0.8"
     chalk "^4.0.0"
 
+"@jest/types@^29.6.3":
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
+  integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
+  dependencies:
+    "@jest/schemas" "^29.6.3"
+    "@types/istanbul-lib-coverage" "^2.0.0"
+    "@types/istanbul-reports" "^3.0.0"
+    "@types/node" "*"
+    "@types/yargs" "^17.0.8"
+    chalk "^4.0.0"
+
 "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
   version "0.3.3"
   resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
@@ -1403,6 +2242,11 @@
   resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
   integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
 
+"@jridgewell/resolve-uri@^3.1.0":
+  version "3.1.1"
+  resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+  integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
+
 "@jridgewell/set-array@^1.0.1":
   version "1.1.2"
   resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
@@ -1421,11 +2265,19 @@
   resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
   integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
 
-"@jridgewell/sourcemap-codec@^1.4.10":
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
   version "1.4.15"
   resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
   integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
 
+"@jridgewell/trace-mapping@^0.3.12":
+  version "0.3.19"
+  resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
+  integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
+  dependencies:
+    "@jridgewell/resolve-uri" "^3.1.0"
+    "@jridgewell/sourcemap-codec" "^1.4.14"
+
 "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9":
   version "0.3.18"
   resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
@@ -1640,16 +2492,31 @@
     rc-resize-observer "^1.3.1"
     rc-util "^5.33.0"
 
+"@react-dnd/asap@^4.0.0":
+  version "4.0.1"
+  resolved "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz#5291850a6b58ce6f2da25352a64f1b0674871aab"
+  integrity sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==
+
 "@react-dnd/asap@^5.0.1":
   version "5.0.2"
   resolved "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz#1f81f124c1cd6f39511c11a881cfb0f715343488"
   integrity sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==
 
+"@react-dnd/invariant@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz#09d2e81cd39e0e767d7da62df9325860f24e517e"
+  integrity sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==
+
 "@react-dnd/invariant@^4.0.1":
   version "4.0.2"
   resolved "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz#b92edffca10a26466643349fac7cdfb8799769df"
   integrity sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==
 
+"@react-dnd/shallowequal@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz#a3031eb54129f2c66b2753f8404266ec7bf67f0a"
+  integrity sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==
+
 "@react-dnd/shallowequal@^4.0.1":
   version "4.0.2"
   resolved "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz#d1b4befa423f692fa4abf1c79209702e7d8ae4b4"
@@ -1660,11 +2527,6 @@
   resolved "https://registry.npmjs.org/@react-leaflet/core/-/core-1.1.1.tgz#827fd05bb542cf874116176d8ef48d5b12163f81"
   integrity sha512-7PGLWa9MZ5x/cWy8EH2VzI4T8q5WpuHbixzCDXqixP/WyqwIrg5NDUPgYuFnB4IEIZF+6nA265mYzswFo/h1Pw==
 
-"@remix-run/router@1.6.3":
-  version "1.6.3"
-  resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.6.3.tgz#8205baf6e17ef93be35bf62c37d2d594e9be0dad"
-  integrity sha512-EXJysQ7J3veRECd0kZFQwYYd5sJMcq2O/m60zu1W2l3oVQ9xtub8jTOtYRE0+M2iomyG/W3Ps7+vp2kna0C27Q==
-
 "@simonwep/pickr@^1.5.1":
   version "1.8.2"
   resolved "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.2.tgz#96dc86675940d7cad63d69c22083dd1cbb9797cb"
@@ -1678,11 +2540,30 @@
   resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718"
   integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==
 
+"@sinclair/typebox@^0.27.8":
+  version "0.27.8"
+  resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
+  integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+
 "@sindresorhus/is@^0.7.0":
   version "0.7.0"
   resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
   integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==
 
+"@sinonjs/commons@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72"
+  integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==
+  dependencies:
+    type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^10.0.2":
+  version "10.3.0"
+  resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
+  integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
+  dependencies:
+    "@sinonjs/commons" "^3.0.0"
+
 "@socket.io/component-emitter@~3.1.0":
   version "3.1.0"
   resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553"
@@ -1693,111 +2574,111 @@
   resolved "https://registry.npmjs.org/@sphinxxxx/color-conversion/-/color-conversion-2.2.2.tgz#03ecc29279e3c0c832f6185a5bfa3497858ac8ca"
   integrity sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw==
 
-"@svgr/babel-plugin-add-jsx-attribute@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba"
-  integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==
+"@svgr/babel-plugin-add-jsx-attribute@8.0.0":
+  version "8.0.0"
+  resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22"
+  integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==
 
-"@svgr/babel-plugin-remove-jsx-attribute@*":
+"@svgr/babel-plugin-remove-jsx-attribute@8.0.0":
   version "8.0.0"
   resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186"
   integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==
 
-"@svgr/babel-plugin-remove-jsx-empty-expression@*":
+"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0":
   version "8.0.0"
   resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44"
   integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==
 
-"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60"
-  integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==
-
-"@svgr/babel-plugin-svg-dynamic-title@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4"
-  integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==
-
-"@svgr/babel-plugin-svg-em-dimensions@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217"
-  integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==
-
-"@svgr/babel-plugin-transform-react-native-svg@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305"
-  integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==
-
-"@svgr/babel-plugin-transform-svg-component@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250"
-  integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==
-
-"@svgr/babel-preset@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828"
-  integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==
-  dependencies:
-    "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1"
-    "@svgr/babel-plugin-remove-jsx-attribute" "*"
-    "@svgr/babel-plugin-remove-jsx-empty-expression" "*"
-    "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1"
-    "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1"
-    "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1"
-    "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1"
-    "@svgr/babel-plugin-transform-svg-component" "^6.5.1"
-
-"@svgr/core@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a"
-  integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==
-  dependencies:
-    "@babel/core" "^7.19.6"
-    "@svgr/babel-preset" "^6.5.1"
-    "@svgr/plugin-jsx" "^6.5.1"
+"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0":
+  version "8.0.0"
+  resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27"
+  integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==
+
+"@svgr/babel-plugin-svg-dynamic-title@8.0.0":
+  version "8.0.0"
+  resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0"
+  integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==
+
+"@svgr/babel-plugin-svg-em-dimensions@8.0.0":
+  version "8.0.0"
+  resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501"
+  integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==
+
+"@svgr/babel-plugin-transform-react-native-svg@8.1.0":
+  version "8.1.0"
+  resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754"
+  integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==
+
+"@svgr/babel-plugin-transform-svg-component@8.0.0":
+  version "8.0.0"
+  resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e"
+  integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==
+
+"@svgr/babel-preset@8.1.0":
+  version "8.1.0"
+  resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece"
+  integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==
+  dependencies:
+    "@svgr/babel-plugin-add-jsx-attribute" "8.0.0"
+    "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0"
+    "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0"
+    "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0"
+    "@svgr/babel-plugin-svg-dynamic-title" "8.0.0"
+    "@svgr/babel-plugin-svg-em-dimensions" "8.0.0"
+    "@svgr/babel-plugin-transform-react-native-svg" "8.1.0"
+    "@svgr/babel-plugin-transform-svg-component" "8.0.0"
+
+"@svgr/core@8.1.0":
+  version "8.1.0"
+  resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88"
+  integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==
+  dependencies:
+    "@babel/core" "^7.21.3"
+    "@svgr/babel-preset" "8.1.0"
     camelcase "^6.2.0"
-    cosmiconfig "^7.0.1"
+    cosmiconfig "^8.1.3"
+    snake-case "^3.0.4"
 
-"@svgr/hast-util-to-babel-ast@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2"
-  integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==
+"@svgr/hast-util-to-babel-ast@8.0.0":
+  version "8.0.0"
+  resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4"
+  integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==
   dependencies:
-    "@babel/types" "^7.20.0"
+    "@babel/types" "^7.21.3"
     entities "^4.4.0"
 
-"@svgr/plugin-jsx@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072"
-  integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==
+"@svgr/plugin-jsx@8.1.0":
+  version "8.1.0"
+  resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928"
+  integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==
   dependencies:
-    "@babel/core" "^7.19.6"
-    "@svgr/babel-preset" "^6.5.1"
-    "@svgr/hast-util-to-babel-ast" "^6.5.1"
+    "@babel/core" "^7.21.3"
+    "@svgr/babel-preset" "8.1.0"
+    "@svgr/hast-util-to-babel-ast" "8.0.0"
     svg-parser "^2.0.4"
 
-"@svgr/plugin-svgo@^6.5.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84"
-  integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==
+"@svgr/plugin-svgo@8.1.0":
+  version "8.1.0"
+  resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00"
+  integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==
   dependencies:
-    cosmiconfig "^7.0.1"
-    deepmerge "^4.2.2"
-    svgo "^2.8.0"
+    cosmiconfig "^8.1.3"
+    deepmerge "^4.3.1"
+    svgo "^3.0.2"
 
-"@svgr/webpack@^6.2.1":
-  version "6.5.1"
-  resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8"
-  integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==
+"@svgr/webpack@^8.1.0":
+  version "8.1.0"
+  resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz#16f1b5346f102f89fda6ec7338b96a701d8be0c2"
+  integrity sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==
   dependencies:
-    "@babel/core" "^7.19.6"
-    "@babel/plugin-transform-react-constant-elements" "^7.18.12"
-    "@babel/preset-env" "^7.19.4"
+    "@babel/core" "^7.21.3"
+    "@babel/plugin-transform-react-constant-elements" "^7.21.3"
+    "@babel/preset-env" "^7.20.2"
     "@babel/preset-react" "^7.18.6"
-    "@babel/preset-typescript" "^7.18.6"
-    "@svgr/core" "^6.5.1"
-    "@svgr/plugin-jsx" "^6.5.1"
-    "@svgr/plugin-svgo" "^6.5.1"
+    "@babel/preset-typescript" "^7.21.0"
+    "@svgr/core" "8.1.0"
+    "@svgr/plugin-jsx" "8.1.0"
+    "@svgr/plugin-svgo" "8.1.0"
 
 "@szhsin/react-menu@^2.2.0":
   version "2.3.4"
@@ -1807,6 +2688,48 @@
     prop-types "^15.7.2"
     react-transition-state "^1.1.3"
 
+"@testing-library/dom@^8.0.0":
+  version "8.20.1"
+  resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz#2e52a32e46fc88369eef7eef634ac2a192decd9f"
+  integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==
+  dependencies:
+    "@babel/code-frame" "^7.10.4"
+    "@babel/runtime" "^7.12.5"
+    "@types/aria-query" "^5.0.1"
+    aria-query "5.1.3"
+    chalk "^4.1.0"
+    dom-accessibility-api "^0.5.9"
+    lz-string "^1.5.0"
+    pretty-format "^27.0.2"
+
+"@testing-library/jest-dom@^6.1.2":
+  version "6.1.2"
+  resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.2.tgz#3e7422904349223cb1e04968adada63f65f40d5b"
+  integrity sha512-NP9jl1Q2qDDtx+cqogowtQtmgD2OVs37iMSIsTv5eN5ETRkf26Kj6ugVwA93/gZzzFWQAsgkKkcftDe91BJCkQ==
+  dependencies:
+    "@adobe/css-tools" "^4.3.0"
+    "@babel/runtime" "^7.9.2"
+    aria-query "^5.0.0"
+    chalk "^3.0.0"
+    css.escape "^1.5.1"
+    dom-accessibility-api "^0.5.6"
+    lodash "^4.17.15"
+    redent "^3.0.0"
+
+"@testing-library/react@12":
+  version "12.1.5"
+  resolved "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b"
+  integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==
+  dependencies:
+    "@babel/runtime" "^7.12.5"
+    "@testing-library/dom" "^8.0.0"
+    "@types/react-dom" "<18.0.0"
+
+"@testing-library/user-event@^14.4.3":
+  version "14.4.3"
+  resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.4.3.tgz#af975e367743fa91989cd666666aec31a8f50591"
+  integrity sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==
+
 "@tokenizer/token@^0.3.0":
   version "0.3.0"
   resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276"
@@ -1822,6 +2745,44 @@
   resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
   integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
 
+"@types/aria-query@^5.0.1":
+  version "5.0.1"
+  resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc"
+  integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==
+
+"@types/babel__core@^7.1.14":
+  version "7.20.1"
+  resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b"
+  integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==
+  dependencies:
+    "@babel/parser" "^7.20.7"
+    "@babel/types" "^7.20.7"
+    "@types/babel__generator" "*"
+    "@types/babel__template" "*"
+    "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+  version "7.6.4"
+  resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7"
+  integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==
+  dependencies:
+    "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+  version "7.4.1"
+  resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969"
+  integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==
+  dependencies:
+    "@babel/parser" "^7.1.0"
+    "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+  version "7.20.1"
+  resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf"
+  integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==
+  dependencies:
+    "@babel/types" "^7.20.7"
+
 "@types/classnames@^2.2.6":
   version "2.3.1"
   resolved "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz#3c2467aa0f1a93f1f021e3b9bcf938bd5dfdc0dd"
@@ -1829,18 +2790,6 @@
   dependencies:
     classnames "*"
 
-"@types/cookie@^0.4.1":
-  version "0.4.1"
-  resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d"
-  integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
-
-"@types/cors@^2.8.12":
-  version "2.8.13"
-  resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94"
-  integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==
-  dependencies:
-    "@types/node" "*"
-
 "@types/eslint-scope@^3.7.3":
   version "3.7.4"
   resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16"
@@ -1862,7 +2811,14 @@
   resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194"
   integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==
 
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
+"@types/graceful-fs@^4.1.3":
+  version "4.1.6"
+  resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae"
+  integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==
+  dependencies:
+    "@types/node" "*"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
   version "2.0.4"
   resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
   integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
@@ -1881,6 +2837,23 @@
   dependencies:
     "@types/istanbul-lib-report" "*"
 
+"@types/jest@^29.5.4":
+  version "29.5.4"
+  resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.4.tgz#9d0a16edaa009a71e6a71a999acd582514dab566"
+  integrity sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==
+  dependencies:
+    expect "^29.0.0"
+    pretty-format "^29.0.0"
+
+"@types/jsdom@^20.0.0":
+  version "20.0.1"
+  resolved "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808"
+  integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==
+  dependencies:
+    "@types/node" "*"
+    "@types/tough-cookie" "*"
+    parse5 "^7.0.0"
+
 "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
   version "7.0.12"
   resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb"
@@ -1898,7 +2871,7 @@
   resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c"
   integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
 
-"@types/node@*", "@types/node@>=10.0.0":
+"@types/node@*":
   version "20.3.1"
   resolved "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
   integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
@@ -1918,7 +2891,7 @@
   resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
   integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
 
-"@types/react-dom@^17.0.11":
+"@types/react-dom@<18.0.0", "@types/react-dom@^17.0.11":
   version "17.0.20"
   resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.20.tgz#e0c8901469d732b36d8473b40b679ad899da1b53"
   integrity sha512-4pzIjSxDueZZ90F52mU3aPoogkHIoSIDG+oQ+wQK7Cy2B9S+MvOqY0uEA/qawKz381qrEDkvpwyt8Bm31I8sbA==
@@ -1976,6 +2949,11 @@
   resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a"
   integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==
 
+"@types/stack-utils@^2.0.0":
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
+  integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
+
 "@types/styled-jsx@^2.2.8":
   version "2.2.9"
   resolved "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.9.tgz#e50b3f868c055bcbf9bc353eca6c10fdad32a53f"
@@ -1983,6 +2961,11 @@
   dependencies:
     "@types/react" "*"
 
+"@types/tough-cookie@*":
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397"
+  integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==
+
 "@types/yargs-parser@*":
   version "21.0.0"
   resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
@@ -2029,6 +3012,14 @@
     "@typescript-eslint/types" "5.60.0"
     "@typescript-eslint/visitor-keys" "5.60.0"
 
+"@typescript-eslint/scope-manager@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
+  integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
+  dependencies:
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/visitor-keys" "5.62.0"
+
 "@typescript-eslint/type-utils@5.60.0":
   version "5.60.0"
   resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.0.tgz#69b09087eb12d7513d5b07747e7d47f5533aa228"
@@ -2044,6 +3035,11 @@
   resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.0.tgz#3179962b28b4790de70e2344465ec97582ce2558"
   integrity sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==
 
+"@typescript-eslint/types@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
+  integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
+
 "@typescript-eslint/typescript-estree@5.60.0":
   version "5.60.0"
   resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz#4ddf1a81d32a850de66642d9b3ad1e3254fb1600"
@@ -2057,6 +3053,19 @@
     semver "^7.3.7"
     tsutils "^3.21.0"
 
+"@typescript-eslint/typescript-estree@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
+  integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
+  dependencies:
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/visitor-keys" "5.62.0"
+    debug "^4.3.4"
+    globby "^11.1.0"
+    is-glob "^4.0.3"
+    semver "^7.3.7"
+    tsutils "^3.21.0"
+
 "@typescript-eslint/utils@5.60.0":
   version "5.60.0"
   resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.0.tgz#4667c5aece82f9d4f24a667602f0f300864b554c"
@@ -2071,6 +3080,20 @@
     eslint-scope "^5.1.1"
     semver "^7.3.7"
 
+"@typescript-eslint/utils@^5.10.0":
+  version "5.62.0"
+  resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
+  integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.2.0"
+    "@types/json-schema" "^7.0.9"
+    "@types/semver" "^7.3.12"
+    "@typescript-eslint/scope-manager" "5.62.0"
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/typescript-estree" "5.62.0"
+    eslint-scope "^5.1.1"
+    semver "^7.3.7"
+
 "@typescript-eslint/visitor-keys@5.60.0":
   version "5.60.0"
   resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz#b48b29da3f5f31dd1656281727004589d2722a66"
@@ -2079,6 +3102,14 @@
     "@typescript-eslint/types" "5.60.0"
     eslint-visitor-keys "^3.3.0"
 
+"@typescript-eslint/visitor-keys@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
+  integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
+  dependencies:
+    "@typescript-eslint/types" "5.62.0"
+    eslint-visitor-keys "^3.3.0"
+
 "@vusion/webfonts-generator@^0.8.0":
   version "0.8.0"
   resolved "https://registry.npmjs.org/@vusion/webfonts-generator/-/webfonts-generator-0.8.0.tgz#3ff41b9ec4b83decd87650637ee050741741e794"
@@ -2233,28 +3264,6 @@
   resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1"
   integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==
 
-"@wojtekmaj/enzyme-adapter-react-17@^0.8.0":
-  version "0.8.0"
-  resolved "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.8.0.tgz#138f404f82f502d152242c049e87d9621dcda4bd"
-  integrity sha512-zeUGfQRziXW7R7skzNuJyi01ZwuKCH8WiBNnTgUJwdS/CURrJwAhWsfW7nG7E30ak8Pu3ZwD9PlK9skBfAoOBw==
-  dependencies:
-    "@wojtekmaj/enzyme-adapter-utils" "^0.2.0"
-    enzyme-shallow-equal "^1.0.0"
-    has "^1.0.0"
-    prop-types "^15.7.0"
-    react-is "^17.0.0"
-    react-test-renderer "^17.0.0"
-
-"@wojtekmaj/enzyme-adapter-utils@^0.2.0":
-  version "0.2.0"
-  resolved "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.2.0.tgz#dc2a8c14f92e502da28ea6b3fad96a082076d028"
-  integrity sha512-ZvZm9kZxZEKAbw+M1/Q3iDuqQndVoN8uLnxZ8bzxm7KgGTBejrGRoJAp8f1EN8eoO3iAjBNEQnTDW/H4Ekb0FQ==
-  dependencies:
-    function.prototype.name "^1.1.0"
-    has "^1.0.0"
-    object.fromentries "^2.0.0"
-    prop-types "^15.7.0"
-
 "@xmldom/xmldom@^0.7.2":
   version "0.7.11"
   resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.11.tgz#adecc134521274711d071d5b0200907cc83b38ee"
@@ -2270,11 +3279,6 @@
   resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
   integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
 
-FileSaver@^0.10.0:
-  version "0.10.0"
-  resolved "https://registry.npmjs.org/FileSaver/-/FileSaver-0.10.0.tgz#7def3889944458042ef5df2e9064c88e3d2281c7"
-  integrity sha512-W+syaSPuxeh8yRPinETA4RlBO0ZuyM8IQIln8Y/pYZ136+pxqr64/JRx8rDm3uVqvgQ4xIHgAmZoepujBT1mvg==
-
 JSONStream@^1.0.3:
   version "1.3.5"
   resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -2283,24 +3287,29 @@ JSONStream@^1.0.3:
     jsonparse "^1.2.0"
     through ">=2.2.7 <3"
 
+abab@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
+  integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+
 abbrev@^1.0.0:
   version "1.1.1"
   resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
   integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
 
-accepts@~1.3.4:
-  version "1.3.8"
-  resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
-  integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
-  dependencies:
-    mime-types "~2.1.34"
-    negotiator "0.6.3"
-
 ace-builds@^1.20.0:
   version "1.23.0"
   resolved "https://registry.npmjs.org/ace-builds/-/ace-builds-1.23.0.tgz#971bba11ba99cefaa38cf9443d7e9a68ddb3a400"
   integrity sha512-PKRuQaQkjIhg1zeqJPW1QFtJO2fx13Nlv7N/VLhQS/kIQ/2aGAgWvYVcE9X64gbSiLzPdY3jcxv5wJJpLj1gLw==
 
+acorn-globals@^7.0.0:
+  version "7.0.1"
+  resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3"
+  integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==
+  dependencies:
+    acorn "^8.1.0"
+    acorn-walk "^8.0.2"
+
 acorn-import-assertions@^1.9.0:
   version "1.9.0"
   resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
@@ -2325,7 +3334,7 @@ acorn-walk@^7.0.0:
   resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
   integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
 
-acorn-walk@^8.0.0:
+"acorn-walk@^8.0.0", "acorn-walk@^8.0.2":
   version "8.2.0"
   resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
   integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
@@ -2340,6 +3349,11 @@ acorn@^7.0.0:
   resolved "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59"
   integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==
 
+"acorn@^8.1.0", "acorn@^8.8.1":
+  version "8.10.0"
+  resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
+  integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
+
 "agent-base@6", "agent-base@^6.0.2":
   version "6.0.2"
   resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
@@ -2383,16 +3397,6 @@ ajv-keywords@^5.1.0:
   dependencies:
     fast-deep-equal "^3.1.3"
 
-ajv@^5.0.0:
-  version "5.5.2"
-  resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
-  integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==
-  dependencies:
-    co "^4.6.0"
-    fast-deep-equal "^1.0.0"
-    fast-json-stable-stringify "^2.0.0"
-    json-schema-traverse "^0.3.0"
-
 "ajv@^6.10.0", "ajv@^6.12.4", "ajv@^6.12.5", "ajv@^6.12.6":
   version "6.12.6"
   resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
@@ -2413,10 +3417,12 @@ ajv@^5.0.0:
     require-from-string "^2.0.2"
     uri-js "^4.2.2"
 
-ansi-regex@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-  integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
+ansi-escapes@^4.2.1:
+  version "4.3.2"
+  resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+  integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+  dependencies:
+    type-fest "^0.21.3"
 
 ansi-regex@^5.0.1:
   version "5.0.1"
@@ -2428,11 +3434,6 @@ ansi-regex@^6.0.1:
   resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
   integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
 
-ansi-styles@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-  integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
-
 ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -2447,6 +3448,11 @@ ansi-styles@^3.2.1:
   dependencies:
     color-convert "^2.0.1"
 
+ansi-styles@^5.0.0:
+  version "5.2.0"
+  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+  integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+
 ansi-styles@^6.1.0:
   version "6.2.1"
   resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
@@ -2460,7 +3466,7 @@ anti-trojan-source@^1.4.0:
     globby "^12.0.2"
     meow "^10.1.1"
 
-anymatch@~3.1.2:
+"anymatch@^3.0.3", "anymatch@~3.1.2":
   version "3.1.3"
   resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
   integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
@@ -2505,6 +3511,20 @@ argparse@^2.0.1:
   resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
   integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
 
+aria-query@5.1.3:
+  version "5.1.3"
+  resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
+  integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
+  dependencies:
+    deep-equal "^2.0.5"
+
+aria-query@^5.0.0:
+  version "5.3.0"
+  resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e"
+  integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==
+  dependencies:
+    dequal "^2.0.3"
+
 array-buffer-byte-length@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead"
@@ -2534,27 +3554,6 @@ array-union@^3.0.1:
   resolved "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975"
   integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==
 
-array.prototype.filter@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.2.tgz#5f90ca6e3d01c31ea8db24c147665541db28bb4c"
-  integrity sha512-us+UrmGOilqttSOgoWZTpOvHu68vZT2YCjc/H4vhu56vzZpaDFBhB+Se2UwqWzMKbDv7Myq5M5pcZLAtUvTQdQ==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
-    es-array-method-boxes-properly "^1.0.0"
-    is-string "^1.0.7"
-
-array.prototype.flat@^1.2.3:
-  version "1.3.1"
-  resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2"
-  integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
-    es-shim-unscopables "^1.0.0"
-
 array.prototype.flatmap@^1.3.1:
   version "1.3.1"
   resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183"
@@ -2576,6 +3575,18 @@ array.prototype.tosorted@^1.1.1:
     es-shim-unscopables "^1.0.0"
     get-intrinsic "^1.1.3"
 
+arraybuffer.prototype.slice@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb"
+  integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==
+  dependencies:
+    array-buffer-byte-length "^1.0.0"
+    call-bind "^1.0.2"
+    define-properties "^1.2.0"
+    get-intrinsic "^1.2.1"
+    is-array-buffer "^3.0.2"
+    is-shared-array-buffer "^1.0.2"
+
 arrify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -2635,6 +3646,18 @@ async@^3.2.3:
   resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
   integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
 
+asynciterator.prototype@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62"
+  integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==
+  dependencies:
+    has-symbols "^1.0.3"
+
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+  integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
 attr-accept@^2.2.2:
   version "2.2.2"
   resolved "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b"
@@ -2658,42 +3681,34 @@ available-typed-arrays@^1.0.5:
   integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
 
 axios-mock-adapter@^1.17.0:
-  version "1.21.5"
-  resolved "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.21.5.tgz#dd85081717a759f88509c20515082dc09c1cedd7"
-  integrity sha512-5NI1V/VK+8+JeTF8niqOowuysA4b8mGzdlMN/QnTnoXbYh4HZSNiopsDclN2g/m85+G++IrEtUdZaQ3GnaMsSA==
+  version "1.22.0"
+  resolved "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz#0f3e6be0fc9b55baab06f2d49c0b71157e7c053d"
+  integrity sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==
   dependencies:
     fast-deep-equal "^3.1.3"
     is-buffer "^2.0.5"
 
-axios@^0.21.1:
-  version "0.21.4"
-  resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
-  integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
-  dependencies:
-    follow-redirects "^1.14.0"
-
-babel-code-frame@^6.26.0:
-  version "6.26.0"
-  resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
-  integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==
-  dependencies:
-    chalk "^1.1.3"
-    esutils "^2.0.2"
-    js-tokens "^3.0.2"
-
-babel-generator@^6.18.0:
-  version "6.26.1"
-  resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
-  integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==
-  dependencies:
-    babel-messages "^6.23.0"
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    detect-indent "^4.0.0"
-    jsesc "^1.3.0"
-    lodash "^4.17.4"
-    source-map "^0.5.7"
-    trim-right "^1.0.1"
+axios@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f"
+  integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==
+  dependencies:
+    follow-redirects "^1.15.0"
+    form-data "^4.0.0"
+    proxy-from-env "^1.1.0"
+
+babel-jest@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz#98dbc45d1c93319c82a8ab4a478b670655dd2585"
+  integrity sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw==
+  dependencies:
+    "@jest/transform" "^29.6.4"
+    "@types/babel__core" "^7.1.14"
+    babel-plugin-istanbul "^6.1.1"
+    babel-preset-jest "^29.6.3"
+    chalk "^4.0.0"
+    graceful-fs "^4.2.9"
+    slash "^3.0.0"
 
 babel-loader@^8.1.0:
   version "8.3.0"
@@ -2705,13 +3720,6 @@ babel-loader@^8.1.0:
     make-dir "^3.1.0"
     schema-utils "^2.6.5"
 
-babel-messages@^6.23.0:
-  version "6.23.0"
-  resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
-  integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==
-  dependencies:
-    babel-runtime "^6.22.0"
-
 babel-plugin-emotion@^10.0.27:
   version "10.2.2"
   resolved "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz#a1fe3503cff80abfd0bdda14abd2e8e57a79d17d"
@@ -2728,6 +3736,27 @@ babel-plugin-emotion@^10.0.27:
     find-root "^1.1.0"
     source-map "^0.5.7"
 
+babel-plugin-istanbul@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
+  integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@istanbuljs/load-nyc-config" "^1.0.0"
+    "@istanbuljs/schema" "^0.1.2"
+    istanbul-lib-instrument "^5.0.4"
+    test-exclude "^6.0.0"
+
+babel-plugin-jest-hoist@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
+  integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
+  dependencies:
+    "@babel/template" "^7.3.3"
+    "@babel/types" "^7.3.3"
+    "@types/babel__core" "^7.1.14"
+    "@types/babel__traverse" "^7.0.6"
+
 babel-plugin-macros@^2.0.0:
   version "2.8.0"
   resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
@@ -2755,6 +3784,24 @@ babel-plugin-polyfill-corejs2@^0.4.3:
     "@babel/helper-define-polyfill-provider" "^0.4.0"
     semver "^6.1.1"
 
+babel-plugin-polyfill-corejs2@^0.4.5:
+  version "0.4.5"
+  resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c"
+  integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==
+  dependencies:
+    "@babel/compat-data" "^7.22.6"
+    "@babel/helper-define-polyfill-provider" "^0.4.2"
+    semver "^6.3.1"
+
+babel-plugin-polyfill-corejs2@^0.4.6:
+  version "0.4.6"
+  resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313"
+  integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==
+  dependencies:
+    "@babel/compat-data" "^7.22.6"
+    "@babel/helper-define-polyfill-provider" "^0.4.3"
+    semver "^6.3.1"
+
 babel-plugin-polyfill-corejs3@^0.8.1:
   version "0.8.1"
   resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a"
@@ -2763,6 +3810,22 @@ babel-plugin-polyfill-corejs3@^0.8.1:
     "@babel/helper-define-polyfill-provider" "^0.4.0"
     core-js-compat "^3.30.1"
 
+babel-plugin-polyfill-corejs3@^0.8.3:
+  version "0.8.3"
+  resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52"
+  integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==
+  dependencies:
+    "@babel/helper-define-polyfill-provider" "^0.4.2"
+    core-js-compat "^3.31.0"
+
+babel-plugin-polyfill-corejs3@^0.8.5:
+  version "0.8.6"
+  resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf"
+  integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==
+  dependencies:
+    "@babel/helper-define-polyfill-provider" "^0.4.3"
+    core-js-compat "^3.33.1"
+
 babel-plugin-polyfill-regenerator@^0.5.0:
   version "0.5.0"
   resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380"
@@ -2770,6 +3833,20 @@ babel-plugin-polyfill-regenerator@^0.5.0:
   dependencies:
     "@babel/helper-define-polyfill-provider" "^0.4.0"
 
+babel-plugin-polyfill-regenerator@^0.5.2:
+  version "0.5.2"
+  resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326"
+  integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==
+  dependencies:
+    "@babel/helper-define-polyfill-provider" "^0.4.2"
+
+babel-plugin-polyfill-regenerator@^0.5.3:
+  version "0.5.3"
+  resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5"
+  integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==
+  dependencies:
+    "@babel/helper-define-polyfill-provider" "^0.4.3"
+
 "babel-plugin-styled-components@>= 1.12.0":
   version "2.1.3"
   resolved "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.3.tgz#f5616bee99efca6685e500fe45db87f26cb42ba7"
@@ -2786,80 +3863,47 @@ babel-plugin-syntax-jsx@^6.18.0:
   resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
   integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==
 
-"babel-runtime@^6.22.0", "babel-runtime@^6.26.0":
-  version "6.26.0"
-  resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
-  integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==
-  dependencies:
-    core-js "^2.4.0"
-    regenerator-runtime "^0.11.0"
-
-babel-template@^6.16.0:
-  version "6.26.0"
-  resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
-  integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==
-  dependencies:
-    babel-runtime "^6.26.0"
-    babel-traverse "^6.26.0"
-    babel-types "^6.26.0"
-    babylon "^6.18.0"
-    lodash "^4.17.4"
-
-"babel-traverse@^6.18.0", "babel-traverse@^6.26.0":
-  version "6.26.0"
-  resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
-  integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==
-  dependencies:
-    babel-code-frame "^6.26.0"
-    babel-messages "^6.23.0"
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    babylon "^6.18.0"
-    debug "^2.6.8"
-    globals "^9.18.0"
-    invariant "^2.2.2"
-    lodash "^4.17.4"
-
-"babel-types@^6.18.0", "babel-types@^6.26.0":
-  version "6.26.0"
-  resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
-  integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==
-  dependencies:
-    babel-runtime "^6.26.0"
-    esutils "^2.0.2"
-    lodash "^4.17.4"
-    to-fast-properties "^1.0.3"
+babel-preset-current-node-syntax@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
+  integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
+  dependencies:
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+    "@babel/plugin-syntax-bigint" "^7.8.3"
+    "@babel/plugin-syntax-class-properties" "^7.8.3"
+    "@babel/plugin-syntax-import-meta" "^7.8.3"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+    "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+    "@babel/plugin-syntax-top-level-await" "^7.8.3"
+
+babel-preset-jest@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
+  integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
+  dependencies:
+    babel-plugin-jest-hoist "^29.6.3"
+    babel-preset-current-node-syntax "^1.0.0"
 
 babelify@~10.0.0:
   version "10.0.0"
   resolved "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5"
   integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==
 
-babylon@^6.18.0:
-  version "6.18.0"
-  resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
-  integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-
 balanced-match@^1.0.0:
   version "1.0.2"
   resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
   integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
 
-base64-arraybuffer@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc"
-  integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==
-
 "base64-js@^1.0.2", "base64-js@^1.3.1":
   version "1.5.1"
   resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
   integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
 
-"base64id@2.0.0", "base64id@~2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
-  integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
-
 big.js@^5.2.2:
   version "5.2.2"
   resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -2906,7 +3950,7 @@ bin-version@^3.0.0:
     execa "^1.0.0"
     find-versions "^3.0.0"
 
-"bin-wrapper@^4.0.0", "bin-wrapper@^4.0.1":
+bin-wrapper@^4.0.0:
   version "4.1.0"
   resolved "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605"
   integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==
@@ -2943,39 +3987,16 @@ bl@^1.0.0:
   resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
   integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
 
-"bn.js@^5.0.0", "bn.js@^5.1.1":
+"bn.js@^5.0.0", "bn.js@^5.2.1":
   version "5.2.1"
   resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
   integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
 
-body-parser@^1.19.0:
-  version "1.20.2"
-  resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
-  integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
-  dependencies:
-    bytes "3.1.2"
-    content-type "~1.0.5"
-    debug "2.6.9"
-    depd "2.0.0"
-    destroy "1.2.0"
-    http-errors "2.0.0"
-    iconv-lite "0.4.24"
-    on-finished "2.4.1"
-    qs "6.11.0"
-    raw-body "2.5.2"
-    type-is "~1.6.18"
-    unpipe "1.0.0"
-
 boolbase@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
   integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
 
-bootstrap@^4.3.1:
-  version "4.6.2"
-  resolved "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz#8e0cd61611728a5bf65a3a2b8d6ff6c77d5d7479"
-  integrity sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==
-
 bowser@^2.11.0:
   version "2.11.0"
   resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f"
@@ -3071,7 +4092,7 @@ browserify-des@^1.0.0:
     inherits "^2.0.1"
     safe-buffer "^5.1.2"
 
-"browserify-rsa@^4.0.0", "browserify-rsa@^4.0.1":
+"browserify-rsa@^4.0.0", "browserify-rsa@^4.1.0":
   version "4.1.0"
   resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
   integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
@@ -3080,19 +4101,19 @@ browserify-des@^1.0.0:
     randombytes "^2.0.1"
 
 browserify-sign@^4.0.0:
-  version "4.2.1"
-  resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
-  integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
+  version "4.2.2"
+  resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e"
+  integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==
   dependencies:
-    bn.js "^5.1.1"
-    browserify-rsa "^4.0.1"
+    bn.js "^5.2.1"
+    browserify-rsa "^4.1.0"
     create-hash "^1.2.0"
     create-hmac "^1.1.7"
-    elliptic "^6.5.3"
+    elliptic "^6.5.4"
     inherits "^2.0.4"
-    parse-asn1 "^5.1.5"
-    readable-stream "^3.6.0"
-    safe-buffer "^5.2.0"
+    parse-asn1 "^5.1.6"
+    readable-stream "^3.6.2"
+    safe-buffer "^5.2.1"
 
 browserify-zlib@~0.2.0:
   version "0.2.0"
@@ -3165,6 +4186,33 @@ browserify@^17.0.0:
     node-releases "^2.0.12"
     update-browserslist-db "^1.0.11"
 
+"browserslist@^4.21.10", "browserslist@^4.21.9":
+  version "4.21.10"
+  resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
+  integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==
+  dependencies:
+    caniuse-lite "^1.0.30001517"
+    electron-to-chromium "^1.4.477"
+    node-releases "^2.0.13"
+    update-browserslist-db "^1.0.11"
+
+browserslist@^4.22.1:
+  version "4.22.1"
+  resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619"
+  integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==
+  dependencies:
+    caniuse-lite "^1.0.30001541"
+    electron-to-chromium "^1.4.535"
+    node-releases "^2.0.13"
+    update-browserslist-db "^1.0.13"
+
+bser@2.1.1:
+  version "2.1.1"
+  resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+  integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+  dependencies:
+    node-int64 "^0.4.0"
+
 buffer-alloc-unsafe@^1.1.0:
   version "1.1.0"
   resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
@@ -3234,11 +4282,6 @@ builtin-status-codes@^3.0.0:
   resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
   integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==
 
-bytes@3.1.2:
-  version "3.1.2"
-  resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
-  integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-
 cacache@^17.0.0:
   version "17.1.3"
   resolved "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz#c6ac23bec56516a7c0c52020fd48b4909d7c7044"
@@ -3298,6 +4341,11 @@ camelcase-keys@^7.0.0:
     quick-lru "^5.1.1"
     type-fest "^1.2.1"
 
+camelcase@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
 "camelcase@^6.2.0", "camelcase@^6.3.0":
   version "6.3.0"
   resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
@@ -3323,6 +4371,16 @@ caniuse-api@^3.0.0:
   resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001506.tgz#35bd814b310a487970c585430e9e80ee23faf14b"
   integrity sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw==
 
+caniuse-lite@^1.0.30001517:
+  version "1.0.30001527"
+  resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz#813826554828245ccee776c850566dce12bdeaba"
+  integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==
+
+caniuse-lite@^1.0.30001541:
+  version "1.0.30001554"
+  resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz#ba80d88dff9acbc0cd4b7535fc30e0191c5e2e2a"
+  integrity sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==
+
 "caw@^2.0.0", "caw@^2.0.1":
   version "2.0.1"
   resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95"
@@ -3333,18 +4391,7 @@ caniuse-api@^3.0.0:
     tunnel-agent "^0.6.0"
     url-to-options "^1.0.1"
 
-chalk@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
-  integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
-  dependencies:
-    ansi-styles "^2.2.1"
-    escape-string-regexp "^1.0.2"
-    has-ansi "^2.0.0"
-    strip-ansi "^3.0.0"
-    supports-color "^2.0.0"
-
-chalk@^2.0.0:
+"chalk@^2.0.0", "chalk@^2.4.2":
   version "2.4.2"
   resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
   integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3353,6 +4400,14 @@ chalk@^2.0.0:
     escape-string-regexp "^1.0.5"
     supports-color "^5.3.0"
 
+chalk@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
 "chalk@^4.0.0", "chalk@^4.0.2", "chalk@^4.1.0":
   version "4.1.2"
   resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -3361,6 +4416,11 @@ chalk@^2.0.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
+char-regex@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+  integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
 chart.js@^3.0.0:
   version "3.9.1"
   resolved "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz#3abf2c775169c4c71217a107163ac708515924b8"
@@ -3373,32 +4433,7 @@ chartjs-plugin-zoom@^2.0.1:
   dependencies:
     hammerjs "^2.0.8"
 
-cheerio-select@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4"
-  integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
-  dependencies:
-    boolbase "^1.0.0"
-    css-select "^5.1.0"
-    css-what "^6.1.0"
-    domelementtype "^2.3.0"
-    domhandler "^5.0.3"
-    domutils "^3.0.1"
-
-cheerio@^1.0.0-rc.3:
-  version "1.0.0-rc.12"
-  resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683"
-  integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==
-  dependencies:
-    cheerio-select "^2.1.0"
-    dom-serializer "^2.0.0"
-    domhandler "^5.0.3"
-    domutils "^3.0.1"
-    htmlparser2 "^8.0.1"
-    parse5 "^7.0.0"
-    parse5-htmlparser2-tree-adapter "^7.0.0"
-
-"chokidar@>=3.0.0 <4.0.0", "chokidar@^3.5.1":
+"chokidar@>=3.0.0 <4.0.0":
   version "3.5.3"
   resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
   integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
@@ -3435,10 +4470,10 @@ ci-info@^3.2.0:
     inherits "^2.0.1"
     safe-buffer "^5.0.1"
 
-circular-json-es6@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.npmjs.org/circular-json-es6/-/circular-json-es6-2.0.2.tgz#e4f4a093e49fb4b6aba1157365746112a78bd344"
-  integrity sha512-ODYONMMNb3p658Zv+Pp+/XPa5s6q7afhz3Tzyvo+VRh9WIrJ64J76ZC4GQxnlye/NesTn09jvOiuE8+xxfpwhQ==
+cjs-module-lexer@^1.0.0:
+  version "1.2.3"
+  resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
+  integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==
 
 "classnames@*", "classnames@2.x", "classnames@^2.2.1", "classnames@^2.2.5", "classnames@^2.2.6", "classnames@^2.3.1", "classnames@^2.3.2":
   version "2.3.2"
@@ -3450,13 +4485,13 @@ clean-stack@^2.0.0:
   resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
   integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
 
-cliui@^7.0.2:
-  version "7.0.4"
-  resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
-  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+cliui@^8.0.1:
+  version "8.0.1"
+  resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+  integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
   dependencies:
     string-width "^4.2.0"
-    strip-ansi "^6.0.0"
+    strip-ansi "^6.0.1"
     wrap-ansi "^7.0.0"
 
 clone-deep@^4.0.1:
@@ -3497,6 +4532,11 @@ codemirror@^5.59.2:
   resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.65.13.tgz#c098a6f409db8b5a7c5722788bd9fa3bb2367f2e"
   integrity sha512-SVWEzKXmbHmTQQWaz03Shrh4nybG0wXx2MEu3FO4ezbPW8IbnZEd5iGHGEffSUaitKYa3i+pHpBsSvw8sPHtzg==
 
+collect-v8-coverage@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9"
+  integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==
+
 color-convert@^1.9.0:
   version "1.9.3"
   resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@@ -3546,7 +4586,14 @@ colorette@^2.0.14:
     lodash.memoize "~3.0.3"
     source-map "~0.5.3"
 
-"commander@^2.19.0", "commander@^2.20.0", "commander@^2.8.1":
+combined-stream@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+  dependencies:
+    delayed-stream "~1.0.0"
+
+"commander@^2.20.0", "commander@^2.8.1":
   version "2.20.3"
   resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -3589,16 +4636,6 @@ config-chain@^1.1.11:
     ini "^1.3.4"
     proto-list "~1.2.1"
 
-connect@^3.7.0:
-  version "3.7.0"
-  resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8"
-  integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==
-  dependencies:
-    debug "2.6.9"
-    finalhandler "1.1.2"
-    parseurl "~1.3.3"
-    utils-merge "1.0.1"
-
 console-browserify@^1.1.0:
   version "1.2.0"
   resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
@@ -3621,16 +4658,16 @@ content-disposition@^0.5.2:
   dependencies:
     safe-buffer "5.2.1"
 
-content-type@~1.0.5:
-  version "1.0.5"
-  resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
-  integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
-
-"convert-source-map@^1.5.0", "convert-source-map@^1.7.0", "convert-source-map@^1.8.0":
+"convert-source-map@^1.5.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0":
   version "1.9.0"
   resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
   integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
 
+convert-source-map@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+  integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
 convert-source-map@~1.1.0:
   version "1.1.3"
   resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
@@ -3644,11 +4681,6 @@ convert-units@^2.3.4:
     lodash.foreach "2.3.x"
     lodash.keys "2.3.x"
 
-cookie@~0.4.1:
-  version "0.4.2"
-  resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
-  integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
-
 copy-webpack-plugin@^11.0.0:
   version "11.0.0"
   resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a"
@@ -3668,12 +4700,21 @@ copy-webpack-plugin@^11.0.0:
   dependencies:
     browserslist "^4.21.5"
 
-core-js@^2.4.0:
-  version "2.6.12"
-  resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
-  integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
+core-js-compat@^3.31.0:
+  version "3.32.1"
+  resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz#55f9a7d297c0761a8eb1d31b593e0f5b6ffae964"
+  integrity sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==
+  dependencies:
+    browserslist "^4.21.10"
 
-"core-js@^3.15.1", "core-js@^3.2.1":
+core-js-compat@^3.33.1:
+  version "3.33.1"
+  resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz#debe80464107d75419e00c2ee29f35982118ff84"
+  integrity sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==
+  dependencies:
+    browserslist "^4.22.1"
+
+core-js@^3.15.1:
   version "3.31.0"
   resolved "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz#4471dd33e366c79d8c0977ed2d940821719db344"
   integrity sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==
@@ -3683,14 +4724,6 @@ core-util-is@~1.0.0:
   resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
   integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
 
-cors@~2.8.5:
-  version "2.8.5"
-  resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
-  integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
-  dependencies:
-    object-assign "^4"
-    vary "^1"
-
 cosmiconfig@^6.0.0:
   version "6.0.0"
   resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
@@ -3702,7 +4735,7 @@ cosmiconfig@^6.0.0:
     path-type "^4.0.0"
     yaml "^1.7.2"
 
-"cosmiconfig@^7.0.0", "cosmiconfig@^7.0.1":
+cosmiconfig@^7.0.0:
   version "7.1.0"
   resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6"
   integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==
@@ -3713,6 +4746,16 @@ cosmiconfig@^6.0.0:
     path-type "^4.0.0"
     yaml "^1.10.0"
 
+cosmiconfig@^8.1.3:
+  version "8.3.6"
+  resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3"
+  integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==
+  dependencies:
+    import-fresh "^3.3.0"
+    js-yaml "^4.1.0"
+    parse-json "^5.2.0"
+    path-type "^4.0.0"
+
 cosmiconfig@^8.2.0:
   version "8.2.0"
   resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd"
@@ -3817,13 +4860,6 @@ css-declaration-sorter@^6.3.1:
   resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad"
   integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==
 
-css-line-break@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0"
-  integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==
-  dependencies:
-    utrie "^1.0.2"
-
 css-loader@^6.7.2:
   version "6.8.1"
   resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88"
@@ -3918,6 +4954,11 @@ css-vendor@^2.0.8:
   resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
   integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
 
+css.escape@^1.5.1:
+  version "1.5.1"
+  resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
+  integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
+
 cssesc@^3.0.0:
   version "3.0.0"
   resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@@ -4034,6 +5075,23 @@ csso@^5.0.5:
   dependencies:
     css-tree "~2.2.0"
 
+cssom@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36"
+  integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==
+
+cssom@~0.3.6:
+  version "0.3.8"
+  resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+  integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
+  integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
+  dependencies:
+    cssom "~0.3.6"
+
 "csstype@^2.5.2", "csstype@^2.5.7":
   version "2.6.21"
   resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e"
@@ -4049,11 +5107,6 @@ cubic2quad@^1.2.1:
   resolved "https://registry.npmjs.org/cubic2quad/-/cubic2quad-1.2.1.tgz#2442260b72c02ee4b6a2fe998fcc1c4073622286"
   integrity sha512-wT5Y7mO8abrV16gnssKdmIhIbA9wSkeMzhh27jAguKrV82i24wER0vL5TGhUJ9dbJNDcigoRZ0IAHFEEEI4THQ==
 
-custom-event@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425"
-  integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==
-
 dagre@^0.8.4:
   version "0.8.5"
   resolved "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee"
@@ -4067,6 +5120,15 @@ dash-ast@^1.0.0:
   resolved "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37"
   integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==
 
+data-urls@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
+  integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==
+  dependencies:
+    abab "^2.0.6"
+    whatwg-mimetype "^3.0.0"
+    whatwg-url "^11.0.0"
+
 date-fns@^2.24.0:
   version "2.30.0"
   resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
@@ -4074,18 +5136,6 @@ date-fns@^2.24.0:
   dependencies:
     "@babel/runtime" "^7.21.0"
 
-date-format@^4.0.14:
-  version "4.0.14"
-  resolved "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400"
-  integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==
-
-"debug@2.6.9", "debug@^2.6.8":
-  version "2.6.9"
-  resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
-  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
-  dependencies:
-    ms "2.0.0"
-
 "debug@4", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.3", "debug@^4.3.4", "debug@~4.3.1", "debug@~4.3.2":
   version "4.3.4"
   resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -4111,6 +5161,11 @@ decamelize@^5.0.0:
   resolved "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9"
   integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==
 
+decimal.js@^10.4.2:
+  version "10.4.3"
+  resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
+  integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
+
 decode-uri-component@^0.2.0:
   version "0.2.2"
   resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
@@ -4176,24 +5231,46 @@ decompress-unzip@^4.0.1:
     pify "^2.3.0"
     strip-dirs "^2.0.0"
 
+dedent@^1.0.0:
+  version "1.5.1"
+  resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff"
+  integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==
+
 deep-diff@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz#afd3d1f749115be965e89c63edc7abb1506b9c26"
   integrity sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==
 
-deep-equal-ident@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.npmjs.org/deep-equal-ident/-/deep-equal-ident-1.1.1.tgz#06f4b89e53710cd6cea4a7781c7a956642de8dc9"
-  integrity sha512-aWv7VhTl/Lju1zenOD3E1w8PpUVrTDbwXCHtbSNr+p/uadr49Y1P1ld0W3Pl6gbvIbiRjoCVsqw70UupCNGh6g==
+deep-equal@^2.0.5:
+  version "2.2.2"
+  resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz#9b2635da569a13ba8e1cc159c2f744071b115daa"
+  integrity sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==
   dependencies:
-    lodash.isequal "^3.0"
+    array-buffer-byte-length "^1.0.0"
+    call-bind "^1.0.2"
+    es-get-iterator "^1.1.3"
+    get-intrinsic "^1.2.1"
+    is-arguments "^1.1.1"
+    is-array-buffer "^3.0.2"
+    is-date-object "^1.0.5"
+    is-regex "^1.1.4"
+    is-shared-array-buffer "^1.0.2"
+    isarray "^2.0.5"
+    object-is "^1.1.5"
+    object-keys "^1.1.1"
+    object.assign "^4.1.4"
+    regexp.prototype.flags "^1.5.0"
+    side-channel "^1.0.4"
+    which-boxed-primitive "^1.0.2"
+    which-collection "^1.0.1"
+    which-typed-array "^1.1.9"
 
 deep-is@^0.1.3:
   version "0.1.4"
   resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
   integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
 
-deepmerge@^4.2.2:
+"deepmerge@^4.2.2", "deepmerge@^4.3.1":
   version "4.3.1"
   resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
   integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
@@ -4211,12 +5288,17 @@ defined@^1.0.0:
   resolved "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf"
   integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==
 
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+  integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
 delegates@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
   integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
 
-"depd@2.0.0", "depd@^2.0.0":
+depd@^2.0.0:
   version "2.0.0"
   resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
   integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
@@ -4231,6 +5313,11 @@ deps-sort@^2.0.1:
     subarg "^1.0.0"
     through2 "^2.0.0"
 
+dequal@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
+  integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
+
 des.js@^1.0.0:
   version "1.1.0"
   resolved "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da"
@@ -4239,17 +5326,10 @@ des.js@^1.0.0:
     inherits "^2.0.1"
     minimalistic-assert "^1.0.0"
 
-destroy@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
-  integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
-
-detect-indent@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
-  integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==
-  dependencies:
-    repeating "^2.0.0"
+detect-newline@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+  integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
 
 detective@^5.2.0:
   version "5.2.1"
@@ -4260,11 +5340,6 @@ detective@^5.2.0:
     defined "^1.0.0"
     minimist "^1.2.6"
 
-di@^0.0.1:
-  version "0.0.1"
-  resolved "https://registry.npmjs.org/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c"
-  integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==
-
 diff-arrays-of-objects@^1.1.8:
   version "1.1.9"
   resolved "https://registry.npmjs.org/diff-arrays-of-objects/-/diff-arrays-of-objects-1.1.9.tgz#b1f00485684c1bb2ac6610d2f604b51f9679064d"
@@ -4273,6 +5348,11 @@ diff-arrays-of-objects@^1.1.8:
     deep-diff "^1.0.2"
     lodash 4
 
+diff-sequences@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
+  integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
+
 diffie-hellman@^5.0.0:
   version "5.0.3"
   resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
@@ -4289,10 +5369,14 @@ dir-glob@^3.0.1:
   dependencies:
     path-type "^4.0.0"
 
-discontinuous-range@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a"
-  integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==
+dnd-core@14.0.1:
+  version "14.0.1"
+  resolved "https://registry.npmjs.org/dnd-core/-/dnd-core-14.0.1.tgz#76d000e41c494983210fb20a48b835f81a203c2e"
+  integrity sha512-+PVS2VPTgKFPYWo3vAFEA8WPbTf7/xo43TifH9G8S1KqnrQu0o77A3unrF5yOugy4mIz7K5wAVFHUcha7wsz6A==
+  dependencies:
+    "@react-dnd/asap" "^4.0.0"
+    "@react-dnd/invariant" "^2.0.0"
+    redux "^4.1.1"
 
 dnd-core@^16.0.1:
   version "16.0.1"
@@ -4317,6 +5401,11 @@ doctrine@^3.0.0:
   dependencies:
     esutils "^2.0.2"
 
+"dom-accessibility-api@^0.5.6", "dom-accessibility-api@^0.5.9":
+  version "0.5.16"
+  resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453"
+  integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==
+
 dom-align@^1.7.0:
   version "1.12.4"
   resolved "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511"
@@ -4330,16 +5419,6 @@ dom-helpers@^5.0.1:
     "@babel/runtime" "^7.8.7"
     csstype "^3.0.2"
 
-dom-serialize@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b"
-  integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==
-  dependencies:
-    custom-event "~1.0.0"
-    ent "~2.2.0"
-    extend "^3.0.0"
-    void-elements "^2.0.0"
-
 dom-serializer@^1.0.1:
   version "1.4.1"
   resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
@@ -4368,20 +5447,27 @@ domain-browser@^1.2.0:
   resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
   integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
 
-"domhandler@4.3.1", "domhandler@^4.2.0", "domhandler@^4.2.2", "domhandler@^4.3.1":
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
-  integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+domexception@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
+  integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==
   dependencies:
-    domelementtype "^2.2.0"
+    webidl-conversions "^7.0.0"
 
-"domhandler@^5.0.2", "domhandler@^5.0.3":
+"domhandler@5.0.3", "domhandler@^5.0.2", "domhandler@^5.0.3":
   version "5.0.3"
   resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
   integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
   dependencies:
     domelementtype "^2.3.0"
 
+"domhandler@^4.2.0", "domhandler@^4.3.1":
+  version "4.3.1"
+  resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
+  integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+  dependencies:
+    domelementtype "^2.2.0"
+
 domutils@^2.8.0:
   version "2.8.0"
   resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
@@ -4391,7 +5477,7 @@ domutils@^2.8.0:
     domelementtype "^2.2.0"
     domhandler "^4.2.0"
 
-domutils@^3.0.1:
+"domutils@^3.0.1", "domutils@^3.1.0":
   version "3.1.0"
   resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e"
   integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==
@@ -4400,6 +5486,14 @@ domutils@^3.0.1:
     domelementtype "^2.3.0"
     domhandler "^5.0.3"
 
+dot-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+  integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+
 download@^6.2.2:
   version "6.2.5"
   resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714"
@@ -4457,11 +5551,6 @@ eastasianwidth@^0.2.0:
   resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
   integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
 
-ee-first@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-  integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-
 ejs@~3.1.8:
   version "3.1.9"
   resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361"
@@ -4474,7 +5563,17 @@ electron-to-chromium@^1.4.431:
   resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.437.tgz#d0e73a431a9ade4467f73d48a59d752d91909316"
   integrity sha512-ZFekRuBOHUXp21wrR5lshT6pZa/KmjkhKBAtmZz4NN5sCWlHOk3kdhiwFINrDBsRLX6FjyBAb1TRN+KBeNlyzQ==
 
-elliptic@^6.5.3:
+electron-to-chromium@^1.4.477:
+  version "1.4.508"
+  resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz#5641ff2f5ba11df4bd960fe6a2f9f70aa8b9af96"
+  integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==
+
+electron-to-chromium@^1.4.535:
+  version "1.4.567"
+  resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.567.tgz#c92e8fbc2bd15df3068d92571733a218a5413add"
+  integrity sha512-8KR114CAYQ4/r5EIEsOmOMqQ9j0MRbJZR3aXD/KFA8RuKzyoUB4XrUCg+l8RUGqTVQgKNIgTpjaG8YHRPAbX2w==
+
+"elliptic@^6.5.3", "elliptic@^6.5.4":
   version "6.5.4"
   resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
   integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
@@ -4487,6 +5586,11 @@ elliptic@^6.5.3:
     minimalistic-assert "^1.0.1"
     minimalistic-crypto-utils "^1.0.1"
 
+emittery@^0.13.1:
+  version "0.13.1"
+  resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
+  integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
+
 emoji-regex@^8.0.0:
   version "8.0.0"
   resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -4502,11 +5606,6 @@ emojis-list@^3.0.0:
   resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
   integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
 
-encodeurl@~1.0.2:
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
-  integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
-
 encoding@^0.1.13:
   version "0.1.13"
   resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
@@ -4537,22 +5636,6 @@ engine.io-parser@~5.1.0:
   resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.1.0.tgz#d593d6372d7f79212df48f807b8cace1ea1cb1b8"
   integrity sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==
 
-engine.io@~6.5.0:
-  version "6.5.0"
-  resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.5.0.tgz#02b9d9941c0d3ab2d46628e98ac3331dd533dff0"
-  integrity sha512-UlfoK1iD62Hkedw2TmuHdhDsZCGaAyp+LZ/AvnImjYBeWagA3qIEETum90d6shMeFZiDuGT66zVCdx1wKYKGGg==
-  dependencies:
-    "@types/cookie" "^0.4.1"
-    "@types/cors" "^2.8.12"
-    "@types/node" ">=10.0.0"
-    accepts "~1.3.4"
-    base64id "2.0.0"
-    cookie "~0.4.1"
-    cors "~2.8.5"
-    debug "~4.3.1"
-    engine.io-parser "~5.1.0"
-    ws "~8.11.0"
-
 enhanced-resolve@^5.15.0:
   version "5.15.0"
   resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35"
@@ -4561,22 +5644,12 @@ enhanced-resolve@^5.15.0:
     graceful-fs "^4.2.4"
     tapable "^2.2.0"
 
-ent@~2.2.0:
-  version "2.2.0"
-  resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
-  integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==
-
 entities@^2.0.0:
   version "2.2.0"
   resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
   integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
 
-entities@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4"
-  integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==
-
-"entities@^4.2.0", "entities@^4.4.0":
+"entities@^4.2.0", "entities@^4.4.0", "entities@^4.5.0":
   version "4.5.0"
   resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
   integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
@@ -4591,50 +5664,6 @@ envinfo@^7.7.3:
   resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.9.0.tgz#47594a13081be0d9be6e513534e8c58dbb26c7a1"
   integrity sha512-RODB4txU+xImYDemN5DqaKC0CHk05XSVkOX4pq0hK26Qx+1LChkuOyUDlGEjYb3ACr0n9qBhFjg37hQuJvpkRQ==
 
-enzyme-matchers@^7.1.2:
-  version "7.1.2"
-  resolved "https://registry.npmjs.org/enzyme-matchers/-/enzyme-matchers-7.1.2.tgz#d80530a61f22d28bb993dd7588abba38bd4de282"
-  integrity sha512-03WqAg2XDl7id9rARIO97HQ1JIw9F2heJ3R4meGu/13hx0ULTDEgl0E67MGl2Uq1jq1DyRnJfto1/VSzskdV5A==
-  dependencies:
-    circular-json-es6 "^2.0.1"
-    deep-equal-ident "^1.1.1"
-
-"enzyme-shallow-equal@^1.0.0", "enzyme-shallow-equal@^1.0.1":
-  version "1.0.5"
-  resolved "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.5.tgz#5528a897a6ad2bdc417c7221a7db682cd01711ba"
-  integrity sha512-i6cwm7hN630JXenxxJFBKzgLC3hMTafFQXflvzHgPmDhOBhxUWDe8AeRv1qp2/uWJ2Y8z5yLWMzmAfkTOiOCZg==
-  dependencies:
-    has "^1.0.3"
-    object-is "^1.1.5"
-
-enzyme@^3.11.0:
-  version "3.11.0"
-  resolved "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28"
-  integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==
-  dependencies:
-    array.prototype.flat "^1.2.3"
-    cheerio "^1.0.0-rc.3"
-    enzyme-shallow-equal "^1.0.1"
-    function.prototype.name "^1.1.2"
-    has "^1.0.3"
-    html-element-map "^1.2.0"
-    is-boolean-object "^1.0.1"
-    is-callable "^1.1.5"
-    is-number-object "^1.0.4"
-    is-regex "^1.0.5"
-    is-string "^1.0.5"
-    is-subset "^0.1.1"
-    lodash.escape "^4.0.1"
-    lodash.isequal "^4.5.0"
-    object-inspect "^1.7.0"
-    object-is "^1.0.2"
-    object.assign "^4.1.0"
-    object.entries "^1.1.1"
-    object.values "^1.1.1"
-    raf "^3.4.1"
-    rst-selector-parser "^2.2.3"
-    string.prototype.trim "^1.2.1"
-
 err-code@^2.0.2:
   version "2.0.3"
   resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
@@ -4687,10 +5716,81 @@ error-ex@^1.3.1:
     unbox-primitive "^1.0.2"
     which-typed-array "^1.1.9"
 
-es-array-method-boxes-properly@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
-  integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
+es-abstract@^1.21.3:
+  version "1.22.1"
+  resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc"
+  integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==
+  dependencies:
+    array-buffer-byte-length "^1.0.0"
+    arraybuffer.prototype.slice "^1.0.1"
+    available-typed-arrays "^1.0.5"
+    call-bind "^1.0.2"
+    es-set-tostringtag "^2.0.1"
+    es-to-primitive "^1.2.1"
+    function.prototype.name "^1.1.5"
+    get-intrinsic "^1.2.1"
+    get-symbol-description "^1.0.0"
+    globalthis "^1.0.3"
+    gopd "^1.0.1"
+    has "^1.0.3"
+    has-property-descriptors "^1.0.0"
+    has-proto "^1.0.1"
+    has-symbols "^1.0.3"
+    internal-slot "^1.0.5"
+    is-array-buffer "^3.0.2"
+    is-callable "^1.2.7"
+    is-negative-zero "^2.0.2"
+    is-regex "^1.1.4"
+    is-shared-array-buffer "^1.0.2"
+    is-string "^1.0.7"
+    is-typed-array "^1.1.10"
+    is-weakref "^1.0.2"
+    object-inspect "^1.12.3"
+    object-keys "^1.1.1"
+    object.assign "^4.1.4"
+    regexp.prototype.flags "^1.5.0"
+    safe-array-concat "^1.0.0"
+    safe-regex-test "^1.0.0"
+    string.prototype.trim "^1.2.7"
+    string.prototype.trimend "^1.0.6"
+    string.prototype.trimstart "^1.0.6"
+    typed-array-buffer "^1.0.0"
+    typed-array-byte-length "^1.0.0"
+    typed-array-byte-offset "^1.0.0"
+    typed-array-length "^1.0.4"
+    unbox-primitive "^1.0.2"
+    which-typed-array "^1.1.10"
+
+es-get-iterator@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
+  integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.1.3"
+    has-symbols "^1.0.3"
+    is-arguments "^1.1.1"
+    is-map "^2.0.2"
+    is-set "^2.0.2"
+    is-string "^1.0.7"
+    isarray "^2.0.5"
+    stop-iteration-iterator "^1.0.0"
+
+es-iterator-helpers@^1.0.12:
+  version "1.0.12"
+  resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.12.tgz#272f7270f270f4d63dd8aa718228ffa901fd086e"
+  integrity sha512-T6Ldv67RYULYtZ1k1omngDTVQSTVNX/ZSjDiwlw0PMokhy8kq2LFElleaEjpvlSaXh9ugJ4zrBgbQ7L+Bjdm3Q==
+  dependencies:
+    asynciterator.prototype "^1.0.0"
+    es-abstract "^1.21.3"
+    es-set-tostringtag "^2.0.1"
+    function-bind "^1.1.1"
+    globalthis "^1.0.3"
+    has-proto "^1.0.1"
+    has-symbols "^1.0.3"
+    internal-slot "^1.0.5"
+    iterator.prototype "^1.1.0"
+    safe-array-concat "^1.0.0"
 
 es-module-lexer@^1.2.1:
   version "1.3.0"
@@ -4727,35 +5827,53 @@ escalade@^3.1.1:
   resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
   integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
 
-escape-html@~1.0.3:
-  version "1.0.3"
-  resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-  integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
-
 "escape-string-regexp@^1.0.2", "escape-string-regexp@^1.0.5":
   version "1.0.5"
   resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
   integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
 
+escape-string-regexp@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+  integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
 escape-string-regexp@^4.0.0:
   version "4.0.0"
   resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
   integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
 
+escodegen@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
+  integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
+  dependencies:
+    esprima "^4.0.1"
+    estraverse "^5.2.0"
+    esutils "^2.0.2"
+    source-map "~0.6.1"
+
+eslint-plugin-jest@^27.4.0:
+  version "27.4.0"
+  resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.4.0.tgz#3926cca723c40c3d7a3fe0e1fd911eff5e681f50"
+  integrity sha512-ukVeKmMPAUA5SWjHenvyyXnirKfHKMdOsTZdn5tZx5EW05HGVQwBohigjFZGGj3zuv1cV6hc82FvWv6LdIbkgg==
+  dependencies:
+    "@typescript-eslint/utils" "^5.10.0"
+
 eslint-plugin-react-hooks@^4.3.0:
   version "4.6.0"
   resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
   integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
 
-eslint-plugin-react@^7.32.2:
-  version "7.32.2"
-  resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10"
-  integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==
+eslint-plugin-react@^7.33.2:
+  version "7.33.2"
+  resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608"
+  integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==
   dependencies:
     array-includes "^3.1.6"
     array.prototype.flatmap "^1.3.1"
     array.prototype.tosorted "^1.1.1"
     doctrine "^2.1.0"
+    es-iterator-helpers "^1.0.12"
     estraverse "^5.3.0"
     jsx-ast-utils "^2.4.1 || ^3.0.0"
     minimatch "^3.1.2"
@@ -4765,7 +5883,7 @@ eslint-plugin-react@^7.32.2:
     object.values "^1.1.6"
     prop-types "^15.8.1"
     resolve "^2.0.0-next.4"
-    semver "^6.3.0"
+    semver "^6.3.1"
     string.prototype.matchall "^4.0.8"
 
 eslint-rule-composer@^0.3.0:
@@ -4853,7 +5971,7 @@ espree@^9.5.2:
     acorn-jsx "^5.3.2"
     eslint-visitor-keys "^3.4.1"
 
-esprima@^4.0.0:
+"esprima@^4.0.0", "esprima@^4.0.1":
   version "4.0.1"
   resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
@@ -4892,11 +6010,6 @@ eve@~0.5.1:
   resolved "https://registry.npmjs.org/eve/-/eve-0.5.4.tgz#67d080b9725291d7e389e34c26860dd97f1debaa"
   integrity sha512-aqprQ9MAOh1t66PrHxDFmMXPlgNO6Uv1uqvxmwjprQV50jaQ2RqO7O1neY4PJwC+hMnkyMDphu2AQPOPZdjQog==
 
-eventemitter3@^4.0.0:
-  version "4.0.7"
-  resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
-  integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
-
 "events@^3.0.0", "events@^3.2.0":
   version "3.3.0"
   resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
@@ -4948,19 +6061,19 @@ execa@^1.0.0:
     signal-exit "^3.0.0"
     strip-eof "^1.0.0"
 
-execa@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
-  integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
+execa@^5.0.0:
+  version "5.1.1"
+  resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+  integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
   dependencies:
-    cross-spawn "^7.0.0"
-    get-stream "^5.0.0"
-    human-signals "^1.1.1"
+    cross-spawn "^7.0.3"
+    get-stream "^6.0.0"
+    human-signals "^2.1.0"
     is-stream "^2.0.0"
     merge-stream "^2.0.0"
-    npm-run-path "^4.0.0"
-    onetime "^5.1.0"
-    signal-exit "^3.0.2"
+    npm-run-path "^4.0.1"
+    onetime "^5.1.2"
+    signal-exit "^3.0.3"
     strip-final-newline "^2.0.0"
 
 execa@^6.0.0:
@@ -4985,6 +6098,22 @@ executable@^4.1.0:
   dependencies:
     pify "^2.2.0"
 
+exit@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+  integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
+
+"expect@^29.0.0", "expect@^29.6.4":
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/expect/-/expect-29.6.4.tgz#a6e6f66d4613717859b2fe3da98a739437b6f4b8"
+  integrity sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==
+  dependencies:
+    "@jest/expect-utils" "^29.6.4"
+    jest-get-type "^29.6.3"
+    jest-matcher-utils "^29.6.4"
+    jest-message-util "^29.6.3"
+    jest-util "^29.6.3"
+
 exponential-backoff@^3.1.1:
   version "3.1.1"
   resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6"
@@ -5012,16 +6141,6 @@ ext-name@^5.0.0:
     ext-list "^2.0.0"
     sort-keys-length "^1.0.0"
 
-extend@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
-  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-fast-deep-equal@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
-  integrity sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==
-
 "fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
   version "3.1.3"
   resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -5038,7 +6157,7 @@ fast-deep-equal@^1.0.0:
     merge2 "^1.3.0"
     micromatch "^4.0.4"
 
-fast-json-stable-stringify@^2.0.0:
+"fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@^2.1.0":
   version "2.1.0"
   resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@@ -5070,6 +6189,13 @@ fastq@^1.6.0:
   dependencies:
     reusify "^1.0.4"
 
+fb-watchman@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
+  integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
+  dependencies:
+    bser "2.1.1"
+
 fd-slicer@~1.1.0:
   version "1.1.0"
   resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
@@ -5158,19 +6284,6 @@ fill-range@^7.0.1:
   dependencies:
     to-regex-range "^5.0.1"
 
-finalhandler@1.1.2:
-  version "1.1.2"
-  resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
-  integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
-  dependencies:
-    debug "2.6.9"
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    on-finished "~2.3.0"
-    parseurl "~1.3.3"
-    statuses "~1.5.0"
-    unpipe "~1.0.0"
-
 find-cache-dir@^3.3.1:
   version "3.3.2"
   resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
@@ -5185,7 +6298,7 @@ find-root@^1.1.0:
   resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
   integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
 
-find-up@^4.0.0:
+"find-up@^4.0.0", "find-up@^4.1.0":
   version "4.1.0"
   resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
   integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
@@ -5216,12 +6329,12 @@ flat-cache@^3.0.4:
     flatted "^3.1.0"
     rimraf "^3.0.2"
 
-"flatted@^3.1.0", "flatted@^3.2.7":
+flatted@^3.1.0:
   version "3.2.7"
   resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
   integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
 
-"follow-redirects@^1.0.0", "follow-redirects@^1.14.0":
+follow-redirects@^1.15.0:
   version "1.15.2"
   resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
   integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
@@ -5241,6 +6354,15 @@ foreground-child@^3.1.0:
     cross-spawn "^7.0.0"
     signal-exit "^4.0.1"
 
+form-data@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+  integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
 fraction.js@^4.2.0:
   version "4.2.0"
   resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
@@ -5259,15 +6381,6 @@ fs-constants@^1.0.0:
   resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
   integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
 
-fs-extra@^8.1.0:
-  version "8.1.0"
-  resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
-  integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
-  dependencies:
-    graceful-fs "^4.2.0"
-    jsonfile "^4.0.0"
-    universalify "^0.1.0"
-
 fs-minipass@^2.0.0:
   version "2.1.0"
   resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
@@ -5287,6 +6400,13 @@ fs.realpath@^1.0.0:
   resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
   integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
 
+fsevents@^2.3.2:
+  version "2.3.3"
+  resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+  dependencies:
+    node-gyp latest
+
 fsevents@~2.3.2:
   version "2.3.2"
   resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
@@ -5299,7 +6419,7 @@ function-bind@^1.1.1:
   resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
   integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
 
-"function.prototype.name@^1.1.0", "function.prototype.name@^1.1.2", "function.prototype.name@^1.1.5":
+function.prototype.name@^1.1.5:
   version "1.1.5"
   resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
   integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
@@ -5348,7 +6468,7 @@ get-caller-file@^2.0.5:
   resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
   integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
 
-"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0":
+"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0", "get-intrinsic@^1.2.1":
   version "1.2.1"
   resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82"
   integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
@@ -5358,6 +6478,11 @@ get-caller-file@^2.0.5:
     has-proto "^1.0.1"
     has-symbols "^1.0.3"
 
+get-package-type@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+  integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
 get-proxy@^2.0.0:
   version "2.1.0"
   resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93"
@@ -5385,14 +6510,7 @@ get-stream@^4.0.0:
   dependencies:
     pump "^3.0.0"
 
-get-stream@^5.0.0:
-  version "5.2.0"
-  resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
-  integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
-  dependencies:
-    pump "^3.0.0"
-
-get-stream@^6.0.1:
+"get-stream@^6.0.0", "get-stream@^6.0.1":
   version "6.0.1"
   resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
   integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
@@ -5435,7 +6553,7 @@ glob@^10.2.2:
     minipass "^5.0.0 || ^6.0.2"
     path-scurry "^1.7.0"
 
-"glob@^7.1.0", "glob@^7.1.3", "glob@^7.1.4", "glob@^7.1.6", "glob@^7.1.7":
+"glob@^7.1.0", "glob@^7.1.3", "glob@^7.1.4", "glob@^7.1.6":
   version "7.2.3"
   resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
   integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -5459,11 +6577,6 @@ globals@^13.19.0:
   dependencies:
     type-fest "^0.20.2"
 
-globals@^9.18.0:
-  version "9.18.0"
-  resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
-  integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
-
 globalthis@^1.0.3:
   version "1.0.3"
   resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
@@ -5556,7 +6669,7 @@ got@^8.3.1:
     url-parse-lax "^3.0.0"
     url-to-options "^1.0.1"
 
-"graceful-fs@^4.1.10", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.10", "graceful-fs@^4.2.4", "graceful-fs@^4.2.6", "graceful-fs@^4.2.8", "graceful-fs@^4.2.9":
+"graceful-fs@^4.1.10", "graceful-fs@^4.1.2", "graceful-fs@^4.2.4", "graceful-fs@^4.2.6", "graceful-fs@^4.2.8", "graceful-fs@^4.2.9":
   version "4.2.11"
   resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
   integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -5606,13 +6719,6 @@ hard-rejection@^2.1.0:
   resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
   integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==
 
-has-ansi@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
-  integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
-  dependencies:
-    ansi-regex "^2.0.0"
-
 "has-bigints@^1.0.1", "has-bigints@^1.0.2":
   version "1.0.2"
   resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
@@ -5693,11 +6799,6 @@ hash-base@^3.0.0:
     inherits "^2.0.3"
     minimalistic-assert "^1.0.1"
 
-hat@^0.0.3:
-  version "0.0.3"
-  resolved "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a"
-  integrity sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug==
-
 heap@0.2.5:
   version "0.2.5"
   resolved "https://registry.npmjs.org/heap/-/heap-0.2.5.tgz#713b65590ebcc40fcbeeaf55e851694092b39af1"
@@ -5726,69 +6827,55 @@ hosted-git-info@^4.0.1:
   dependencies:
     lru-cache "^6.0.0"
 
-html-dom-parser@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-1.2.0.tgz#8f689b835982ffbf245eda99730e92b8462c111e"
-  integrity sha512-2HIpFMvvffsXHFUFjso0M9LqM+1Lm22BF+Df2ba+7QHJXjk63pWChEnI6YG27eaWqUdfnh5/Vy+OXrNTtepRsg==
+html-dom-parser@5.0.4:
+  version "5.0.4"
+  resolved "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.0.4.tgz#2941a762317d088e747db31c8cf290987ec30a55"
+  integrity sha512-azy8THLKd4Ar0OVJpEgX+MSjYvKdNDWlGiRBIlovMqEQYMAnLLXBhhiSwjylDD3RDdcCYT8Utg6uoRDeLHUyHg==
   dependencies:
-    domhandler "4.3.1"
-    htmlparser2 "7.2.0"
+    domhandler "5.0.3"
+    htmlparser2 "9.0.0"
 
-html-element-map@^1.2.0:
-  version "1.3.1"
-  resolved "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz#44b2cbcfa7be7aa4ff59779e47e51012e1c73c08"
-  integrity sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==
+html-encoding-sniffer@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
+  integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
   dependencies:
-    array.prototype.filter "^1.0.0"
-    call-bind "^1.0.2"
+    whatwg-encoding "^2.0.0"
 
 html-escaper@^2.0.0:
   version "2.0.2"
   resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
   integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
 
-html-react-parser@^1.2.7:
-  version "1.4.14"
-  resolved "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.14.tgz#577b7a90be0c61eebbbc488d914ad08398c79ef5"
-  integrity sha512-pxhNWGie8Y+DGDpSh8cTa0k3g8PsDcwlfolA+XxYo1AGDeB6e2rdlyv4ptU9bOTiZ2i3fID+6kyqs86MN0FYZQ==
+html-react-parser@^5.0.6:
+  version "5.0.6"
+  resolved "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.0.6.tgz#ee9e8ae404aa38cfbaf3825cb26fabced46024a1"
+  integrity sha512-aPSzFhO2bK/L/mYQbMwFz+1QG8nhxozbwENt/52HTApasrBvDX87MFD5uSQIjq7Io0bnKzH4uh7PM42zZ4ag9A==
   dependencies:
-    domhandler "4.3.1"
-    html-dom-parser "1.2.0"
-    react-property "2.0.0"
-    style-to-js "1.1.1"
+    domhandler "5.0.3"
+    html-dom-parser "5.0.4"
+    react-property "2.0.2"
+    style-to-js "1.1.9"
 
-html2canvas@^1.0.0-rc.7:
-  version "1.4.1"
-  resolved "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543"
-  integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==
-  dependencies:
-    css-line-break "^2.1.0"
-    text-segmentation "^1.0.3"
+html-to-image@^1.11.11:
+  version "1.11.11"
+  resolved "https://registry.npmjs.org/html-to-image/-/html-to-image-1.11.11.tgz#c0f8a34dc9e4b97b93ff7ea286eb8562642ebbea"
+  integrity sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==
 
 htmlescape@^1.1.0:
   version "1.1.1"
   resolved "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351"
   integrity sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==
 
-htmlparser2@7.2.0:
-  version "7.2.0"
-  resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5"
-  integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==
-  dependencies:
-    domelementtype "^2.0.1"
-    domhandler "^4.2.2"
-    domutils "^2.8.0"
-    entities "^3.0.1"
-
-htmlparser2@^8.0.1:
-  version "8.0.2"
-  resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21"
-  integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==
+htmlparser2@9.0.0:
+  version "9.0.0"
+  resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.0.0.tgz#e431142b7eeb1d91672742dea48af8ac7140cddb"
+  integrity sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ==
   dependencies:
     domelementtype "^2.3.0"
     domhandler "^5.0.3"
-    domutils "^3.0.1"
-    entities "^4.4.0"
+    domutils "^3.1.0"
+    entities "^4.5.0"
 
 http-cache-semantics@3.8.1:
   version "3.8.1"
@@ -5800,17 +6887,6 @@ http-cache-semantics@^4.1.1:
   resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
   integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
 
-http-errors@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
-  integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
-  dependencies:
-    depd "2.0.0"
-    inherits "2.0.4"
-    setprototypeof "1.2.0"
-    statuses "2.0.1"
-    toidentifier "1.0.1"
-
 http-proxy-agent@^5.0.0:
   version "5.0.0"
   resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
@@ -5820,21 +6896,12 @@ http-proxy-agent@^5.0.0:
     agent-base 6
     debug 4
 
-http-proxy@^1.18.1:
-  version "1.18.1"
-  resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
-  integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
-  dependencies:
-    eventemitter3 "^4.0.0"
-    follow-redirects "^1.0.0"
-    requires-port "^1.0.0"
-
 https-browserify@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
   integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==
 
-https-proxy-agent@^5.0.0:
+"https-proxy-agent@^5.0.0", "https-proxy-agent@^5.0.1":
   version "5.0.1"
   resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
   integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
@@ -5842,10 +6909,10 @@ https-proxy-agent@^5.0.0:
     agent-base 6
     debug 4
 
-human-signals@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
-  integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+human-signals@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
 
 human-signals@^3.0.1:
   version "3.0.1"
@@ -5864,14 +6931,7 @@ hyphenate-style-name@^1.0.3:
   resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d"
   integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==
 
-iconv-lite@0.4.24:
-  version "0.4.24"
-  resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
-  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
-  dependencies:
-    safer-buffer ">= 2.1.2 < 3"
-
-iconv-lite@^0.6.2:
+"iconv-lite@0.6.3", "iconv-lite@^0.6.2":
   version "0.6.3"
   resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
   integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
@@ -5919,17 +6979,6 @@ imagemin-optipng@^8.0.0:
     is-png "^2.0.0"
     optipng-bin "^7.0.0"
 
-imagemin-pngquant@^9.0.2:
-  version "9.0.2"
-  resolved "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-9.0.2.tgz#38155702b0cc4f60f671ba7c2b086ea3805d9567"
-  integrity sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg==
-  dependencies:
-    execa "^4.0.0"
-    is-png "^2.0.0"
-    is-stream "^2.0.0"
-    ow "^0.17.0"
-    pngquant-bin "^6.0.0"
-
 imagemin@^8.0.1:
   version "8.0.1"
   resolved "https://registry.npmjs.org/imagemin/-/imagemin-8.0.1.tgz#8b29ecb78197d8f0eac6a782f2e6b38fb3780d9e"
@@ -5953,7 +7002,7 @@ immutable@^4.0.0:
   resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be"
   integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==
 
-"import-fresh@^3.0.0", "import-fresh@^3.1.0", "import-fresh@^3.2.1":
+"import-fresh@^3.0.0", "import-fresh@^3.1.0", "import-fresh@^3.2.1", "import-fresh@^3.3.0":
   version "3.3.0"
   resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
   integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@@ -6005,7 +7054,7 @@ inflight@^1.0.4:
     once "^1.3.0"
     wrappy 1
 
-"inherits@2", "inherits@2.0.4", "inherits@^2.0.1", "inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.1", "inherits@~2.0.3", "inherits@~2.0.4":
+"inherits@2", "inherits@^2.0.1", "inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.1", "inherits@~2.0.3", "inherits@~2.0.4":
   version "2.0.4"
   resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -6027,10 +7076,10 @@ inline-source-map@~0.6.0:
   dependencies:
     source-map "~0.5.3"
 
-inline-style-parser@0.1.1:
-  version "0.1.1"
-  resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1"
-  integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==
+inline-style-parser@0.2.2:
+  version "0.2.2"
+  resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz#d498b4e6de0373458fc610ff793f6b14ebf45633"
+  integrity sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==
 
 insert-if@^1.1.0:
   version "1.2.0"
@@ -6053,7 +7102,7 @@ insert-module-globals@^7.2.1:
     undeclared-identifiers "^1.1.2"
     xtend "^4.0.0"
 
-"internal-slot@^1.0.3", "internal-slot@^1.0.5":
+"internal-slot@^1.0.3", "internal-slot@^1.0.4", "internal-slot@^1.0.5":
   version "1.0.5"
   resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
   integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==
@@ -6075,13 +7124,6 @@ into-stream@^3.1.0:
     from2 "^2.1.1"
     p-is-promise "^1.1.0"
 
-invariant@^2.2.2:
-  version "2.2.4"
-  resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
-  integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
-  dependencies:
-    loose-envify "^1.0.0"
-
 ip-address@^7.1.0:
   version "7.1.0"
   resolved "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz#4a9c699e75b51cbeb18b38de8ed216efa1a490c5"
@@ -6100,7 +7142,7 @@ is-any-array@^2.0.0:
   resolved "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz#9233242a9c098220290aa2ec28f82ca7fa79899e"
   integrity sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==
 
-is-arguments@^1.0.4:
+"is-arguments@^1.0.4", "is-arguments@^1.1.1":
   version "1.1.1"
   resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
   integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
@@ -6122,6 +7164,13 @@ is-arrayish@^0.2.1:
   resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
   integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
 
+is-async-function@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646"
+  integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==
+  dependencies:
+    has-tostringtag "^1.0.0"
+
 is-bigint@^1.0.1:
   version "1.0.4"
   resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
@@ -6136,7 +7185,7 @@ is-binary-path@~2.1.0:
   dependencies:
     binary-extensions "^2.0.0"
 
-"is-boolean-object@^1.0.1", "is-boolean-object@^1.1.0":
+is-boolean-object@^1.1.0:
   version "1.1.2"
   resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
   integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
@@ -6154,7 +7203,7 @@ is-buffer@^2.0.5:
   resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
   integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
 
-"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.1.5", "is-callable@^1.2.7":
+"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.7":
   version "1.2.7"
   resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
   integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
@@ -6166,7 +7215,14 @@ is-buffer@^2.0.5:
   dependencies:
     has "^1.0.3"
 
-is-date-object@^1.0.1:
+is-core-module@^2.13.0:
+  version "2.13.0"
+  resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db"
+  integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==
+  dependencies:
+    has "^1.0.3"
+
+"is-date-object@^1.0.1", "is-date-object@^1.0.5":
   version "1.0.5"
   resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
   integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
@@ -6183,17 +7239,24 @@ is-extglob@^2.1.1:
   resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
   integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
 
-is-finite@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
-  integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
+is-finalizationregistry@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6"
+  integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==
+  dependencies:
+    call-bind "^1.0.2"
 
 is-fullwidth-code-point@^3.0.0:
   version "3.0.0"
   resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
   integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
 
-is-generator-function@^1.0.7:
+is-generator-fn@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+  integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
+"is-generator-function@^1.0.10", "is-generator-function@^1.0.7":
   version "1.0.10"
   resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
   integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
@@ -6222,6 +7285,11 @@ is-lambda@^1.0.1:
   resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
   integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
 
+"is-map@^2.0.1", "is-map@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
+  integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
+
 is-natural-number@^4.0.1:
   version "4.0.1"
   resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
@@ -6271,7 +7339,12 @@ is-png@^2.0.0:
   resolved "https://registry.npmjs.org/is-png/-/is-png-2.0.0.tgz#ee8cbc9e9b050425cedeeb4a6fb74a649b0a4a8d"
   integrity sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==
 
-"is-regex@^1.0.5", "is-regex@^1.1.4":
+is-potential-custom-element-name@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
+  integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
+
+is-regex@^1.1.4:
   version "1.1.4"
   resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
   integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
@@ -6291,6 +7364,11 @@ is-relative@^1.0.0:
   resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
   integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
 
+"is-set@^2.0.1", "is-set@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
+  integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
+
 is-shared-array-buffer@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
@@ -6320,11 +7398,6 @@ is-stream@^3.0.0:
   dependencies:
     has-tostringtag "^1.0.0"
 
-is-subset@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6"
-  integrity sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==
-
 "is-symbol@^1.0.2", "is-symbol@^1.0.3":
   version "1.0.4"
   resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
@@ -6350,6 +7423,11 @@ is-unc-path@^1.0.0:
   dependencies:
     unc-path-regex "^0.1.2"
 
+is-weakmap@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
+  integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
+
 is-weakref@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
@@ -6357,21 +7435,29 @@ is-weakref@^1.0.2:
   dependencies:
     call-bind "^1.0.2"
 
+is-weakset@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d"
+  integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.1.1"
+
 isarray@0.0.1:
   version "0.0.1"
   resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
   integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
 
+isarray@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+  integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
 isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
   integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
 
-isbinaryfile@^4.0.8:
-  version "4.0.10"
-  resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3"
-  integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==
-
 isexe@^2.0.0:
   version "2.0.0"
   resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -6382,40 +7468,12 @@ isobject@^3.0.1:
   resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
   integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
 
-istanbul-instrumenter-loader@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz#9957bd59252b373fae5c52b7b5188e6fde2a0949"
-  integrity sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==
-  dependencies:
-    convert-source-map "^1.5.0"
-    istanbul-lib-instrument "^1.7.3"
-    loader-utils "^1.1.0"
-    schema-utils "^0.3.0"
-
-istanbul-lib-coverage@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0"
-  integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==
-
 "istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0":
   version "3.2.0"
   resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
   integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
 
-istanbul-lib-instrument@^1.7.3:
-  version "1.10.2"
-  resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca"
-  integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==
-  dependencies:
-    babel-generator "^6.18.0"
-    babel-template "^6.16.0"
-    babel-traverse "^6.18.0"
-    babel-types "^6.18.0"
-    babylon "^6.18.0"
-    istanbul-lib-coverage "^1.2.1"
-    semver "^5.3.0"
-
-istanbul-lib-instrument@^5.1.0:
+istanbul-lib-instrument@^5.0.4:
   version "5.2.1"
   resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
   integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
@@ -6426,6 +7484,17 @@ istanbul-lib-instrument@^5.1.0:
     istanbul-lib-coverage "^3.2.0"
     semver "^6.3.0"
 
+istanbul-lib-instrument@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.0.tgz#7a8af094cbfff1d5bb280f62ce043695ae8dd5b8"
+  integrity sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==
+  dependencies:
+    "@babel/core" "^7.12.3"
+    "@babel/parser" "^7.14.7"
+    "@istanbuljs/schema" "^0.1.2"
+    istanbul-lib-coverage "^3.2.0"
+    semver "^7.5.4"
+
 istanbul-lib-report@^3.0.0:
   version "3.0.0"
   resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
@@ -6435,7 +7504,7 @@ istanbul-lib-report@^3.0.0:
     make-dir "^3.0.0"
     supports-color "^7.1.0"
 
-istanbul-lib-source-maps@^4.0.1:
+istanbul-lib-source-maps@^4.0.0:
   version "4.0.1"
   resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
   integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
@@ -6444,10 +7513,10 @@ istanbul-lib-source-maps@^4.0.1:
     istanbul-lib-coverage "^3.0.0"
     source-map "^0.6.1"
 
-istanbul-reports@^3.0.5:
-  version "3.1.5"
-  resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae"
-  integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==
+istanbul-reports@^3.1.3:
+  version "3.1.6"
+  resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a"
+  integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==
   dependencies:
     html-escaper "^2.0.0"
     istanbul-lib-report "^3.0.0"
@@ -6460,6 +7529,17 @@ isurl@^1.0.0-alpha5:
     has-to-string-tag-x "^1.2.0"
     is-object "^1.0.1"
 
+iterator.prototype@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.0.tgz#690c88b043d821f783843aaf725d7ac3b62e3b46"
+  integrity sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw==
+  dependencies:
+    define-properties "^1.1.4"
+    get-intrinsic "^1.1.3"
+    has-symbols "^1.0.3"
+    has-tostringtag "^1.0.0"
+    reflect.getprototypeof "^1.0.3"
+
 jackspeak@^2.0.3:
   version "2.2.1"
   resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6"
@@ -6478,23 +7558,325 @@ jake@^10.8.5:
     filelist "^1.0.4"
     minimatch "^3.1.2"
 
-"jasmine-core@3.10.1", "jasmine-core@^3.6.0":
-  version "3.10.1"
-  resolved "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.10.1.tgz#7aa6fa2b834a522315c651a128d940eca553989a"
-  integrity sha512-ooZWSDVAdh79Rrj4/nnfklL3NQVra0BcuhcuWoAwwi+znLDoUeH87AFfeX8s+YeYi6xlv5nveRyaA1v7CintfA==
-
-jasmine-enzyme@^7.1.2:
-  version "7.1.2"
-  resolved "https://registry.npmjs.org/jasmine-enzyme/-/jasmine-enzyme-7.1.2.tgz#a09ad4644841b2e402046dee5526253b961efa0f"
-  integrity sha512-4C9GeKgcJerRWBOt3nu9MAjjm5DK8kRbCBKLNWvDjbSfLWodomfjZA2lIpRcJkmof9tIfff2ZWa7DD53WLhyGA==
-  dependencies:
-    enzyme-matchers "^7.1.2"
-
 javascript-natural-sort@^0.7.1:
   version "0.7.1"
   resolved "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59"
   integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==
 
+jest-changed-files@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.6.3.tgz#97cfdc93f74fb8af2a1acb0b78f836f1fb40c449"
+  integrity sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg==
+  dependencies:
+    execa "^5.0.0"
+    jest-util "^29.6.3"
+    p-limit "^3.1.0"
+
+jest-circus@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.4.tgz#f074c8d795e0cc0f2ebf0705086b1be6a9a8722f"
+  integrity sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw==
+  dependencies:
+    "@jest/environment" "^29.6.4"
+    "@jest/expect" "^29.6.4"
+    "@jest/test-result" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    co "^4.6.0"
+    dedent "^1.0.0"
+    is-generator-fn "^2.0.0"
+    jest-each "^29.6.3"
+    jest-matcher-utils "^29.6.4"
+    jest-message-util "^29.6.3"
+    jest-runtime "^29.6.4"
+    jest-snapshot "^29.6.4"
+    jest-util "^29.6.3"
+    p-limit "^3.1.0"
+    pretty-format "^29.6.3"
+    pure-rand "^6.0.0"
+    slash "^3.0.0"
+    stack-utils "^2.0.3"
+
+jest-cli@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.4.tgz#ad52f2dfa1b0291de7ec7f8d7c81ac435521ede0"
+  integrity sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==
+  dependencies:
+    "@jest/core" "^29.6.4"
+    "@jest/test-result" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    chalk "^4.0.0"
+    exit "^0.1.2"
+    graceful-fs "^4.2.9"
+    import-local "^3.0.2"
+    jest-config "^29.6.4"
+    jest-util "^29.6.3"
+    jest-validate "^29.6.3"
+    prompts "^2.0.1"
+    yargs "^17.3.1"
+
+jest-config@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-config/-/jest-config-29.6.4.tgz#eff958ee41d4e1ee7a6106d02b74ad9fc427d79e"
+  integrity sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==
+  dependencies:
+    "@babel/core" "^7.11.6"
+    "@jest/test-sequencer" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    babel-jest "^29.6.4"
+    chalk "^4.0.0"
+    ci-info "^3.2.0"
+    deepmerge "^4.2.2"
+    glob "^7.1.3"
+    graceful-fs "^4.2.9"
+    jest-circus "^29.6.4"
+    jest-environment-node "^29.6.4"
+    jest-get-type "^29.6.3"
+    jest-regex-util "^29.6.3"
+    jest-resolve "^29.6.4"
+    jest-runner "^29.6.4"
+    jest-util "^29.6.3"
+    jest-validate "^29.6.3"
+    micromatch "^4.0.4"
+    parse-json "^5.2.0"
+    pretty-format "^29.6.3"
+    slash "^3.0.0"
+    strip-json-comments "^3.1.1"
+
+jest-diff@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.4.tgz#85aaa6c92a79ae8cd9a54ebae8d5b6d9a513314a"
+  integrity sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==
+  dependencies:
+    chalk "^4.0.0"
+    diff-sequences "^29.6.3"
+    jest-get-type "^29.6.3"
+    pretty-format "^29.6.3"
+
+jest-docblock@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.6.3.tgz#293dca5188846c9f7c0c2b1bb33e5b11f21645f2"
+  integrity sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ==
+  dependencies:
+    detect-newline "^3.0.0"
+
+jest-each@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-each/-/jest-each-29.6.3.tgz#1956f14f5f0cb8ae0b2e7cabc10bb03ec817c142"
+  integrity sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg==
+  dependencies:
+    "@jest/types" "^29.6.3"
+    chalk "^4.0.0"
+    jest-get-type "^29.6.3"
+    jest-util "^29.6.3"
+    pretty-format "^29.6.3"
+
+jest-environment-jsdom@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.6.4.tgz#0daf44454041f9e1ef7fa82eb1bd43426a82eb1c"
+  integrity sha512-K6wfgUJ16DoMs02JYFid9lOsqfpoVtyJxpRlnTxUHzvZWBnnh2VNGRB9EC1Cro96TQdq5TtSjb3qUjNaJP9IyA==
+  dependencies:
+    "@jest/environment" "^29.6.4"
+    "@jest/fake-timers" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/jsdom" "^20.0.0"
+    "@types/node" "*"
+    jest-mock "^29.6.3"
+    jest-util "^29.6.3"
+    jsdom "^20.0.0"
+
+jest-environment-node@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.4.tgz#4ce311549afd815d3cafb49e60a1e4b25f06d29f"
+  integrity sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==
+  dependencies:
+    "@jest/environment" "^29.6.4"
+    "@jest/fake-timers" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    jest-mock "^29.6.3"
+    jest-util "^29.6.3"
+
+jest-get-type@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
+  integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
+
+jest-haste-map@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.4.tgz#97143ce833829157ea7025204b08f9ace609b96a"
+  integrity sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==
+  dependencies:
+    "@jest/types" "^29.6.3"
+    "@types/graceful-fs" "^4.1.3"
+    "@types/node" "*"
+    anymatch "^3.0.3"
+    fb-watchman "^2.0.0"
+    fsevents "^2.3.2"
+    graceful-fs "^4.2.9"
+    jest-regex-util "^29.6.3"
+    jest-util "^29.6.3"
+    jest-worker "^29.6.4"
+    micromatch "^4.0.4"
+    walker "^1.0.8"
+
+jest-leak-detector@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.3.tgz#b9661bc3aec8874e59aff361fa0c6d7cd507ea01"
+  integrity sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q==
+  dependencies:
+    jest-get-type "^29.6.3"
+    pretty-format "^29.6.3"
+
+jest-matcher-utils@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz#327db7ababea49455df3b23e5d6109fe0c709d24"
+  integrity sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==
+  dependencies:
+    chalk "^4.0.0"
+    jest-diff "^29.6.4"
+    jest-get-type "^29.6.3"
+    pretty-format "^29.6.3"
+
+jest-message-util@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.3.tgz#bce16050d86801b165f20cfde34dc01d3cf85fbf"
+  integrity sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@jest/types" "^29.6.3"
+    "@types/stack-utils" "^2.0.0"
+    chalk "^4.0.0"
+    graceful-fs "^4.2.9"
+    micromatch "^4.0.4"
+    pretty-format "^29.6.3"
+    slash "^3.0.0"
+    stack-utils "^2.0.3"
+
+jest-mock@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.3.tgz#433f3fd528c8ec5a76860177484940628bdf5e0a"
+  integrity sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==
+  dependencies:
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    jest-util "^29.6.3"
+
+jest-pnp-resolver@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
+  integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
+
+jest-regex-util@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
+  integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
+
+jest-resolve-dependencies@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.4.tgz#20156b33c7eacbb6bb77aeba4bed0eab4a3f8734"
+  integrity sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA==
+  dependencies:
+    jest-regex-util "^29.6.3"
+    jest-snapshot "^29.6.4"
+
+jest-resolve@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.4.tgz#e34cb06f2178b429c38455d98d1a07572ac9faa3"
+  integrity sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q==
+  dependencies:
+    chalk "^4.0.0"
+    graceful-fs "^4.2.9"
+    jest-haste-map "^29.6.4"
+    jest-pnp-resolver "^1.2.2"
+    jest-util "^29.6.3"
+    jest-validate "^29.6.3"
+    resolve "^1.20.0"
+    resolve.exports "^2.0.0"
+    slash "^3.0.0"
+
+jest-runner@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.4.tgz#b3b8ccb85970fde0fae40c73ee11eb75adccfacf"
+  integrity sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw==
+  dependencies:
+    "@jest/console" "^29.6.4"
+    "@jest/environment" "^29.6.4"
+    "@jest/test-result" "^29.6.4"
+    "@jest/transform" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    emittery "^0.13.1"
+    graceful-fs "^4.2.9"
+    jest-docblock "^29.6.3"
+    jest-environment-node "^29.6.4"
+    jest-haste-map "^29.6.4"
+    jest-leak-detector "^29.6.3"
+    jest-message-util "^29.6.3"
+    jest-resolve "^29.6.4"
+    jest-runtime "^29.6.4"
+    jest-util "^29.6.3"
+    jest-watcher "^29.6.4"
+    jest-worker "^29.6.4"
+    p-limit "^3.1.0"
+    source-map-support "0.5.13"
+
+jest-runtime@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.4.tgz#b0bc495c9b6b12a0a7042ac34ca9bb85f8cd0ded"
+  integrity sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA==
+  dependencies:
+    "@jest/environment" "^29.6.4"
+    "@jest/fake-timers" "^29.6.4"
+    "@jest/globals" "^29.6.4"
+    "@jest/source-map" "^29.6.3"
+    "@jest/test-result" "^29.6.4"
+    "@jest/transform" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    cjs-module-lexer "^1.0.0"
+    collect-v8-coverage "^1.0.0"
+    glob "^7.1.3"
+    graceful-fs "^4.2.9"
+    jest-haste-map "^29.6.4"
+    jest-message-util "^29.6.3"
+    jest-mock "^29.6.3"
+    jest-regex-util "^29.6.3"
+    jest-resolve "^29.6.4"
+    jest-snapshot "^29.6.4"
+    jest-util "^29.6.3"
+    slash "^3.0.0"
+    strip-bom "^4.0.0"
+
+jest-snapshot@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.4.tgz#9833eb6b66ff1541c7fd8ceaa42d541f407b4876"
+  integrity sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==
+  dependencies:
+    "@babel/core" "^7.11.6"
+    "@babel/generator" "^7.7.2"
+    "@babel/plugin-syntax-jsx" "^7.7.2"
+    "@babel/plugin-syntax-typescript" "^7.7.2"
+    "@babel/types" "^7.3.3"
+    "@jest/expect-utils" "^29.6.4"
+    "@jest/transform" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    babel-preset-current-node-syntax "^1.0.0"
+    chalk "^4.0.0"
+    expect "^29.6.4"
+    graceful-fs "^4.2.9"
+    jest-diff "^29.6.4"
+    jest-get-type "^29.6.3"
+    jest-matcher-utils "^29.6.4"
+    jest-message-util "^29.6.3"
+    jest-util "^29.6.3"
+    natural-compare "^1.4.0"
+    pretty-format "^29.6.3"
+    semver "^7.5.3"
+
 jest-util@^29.5.0:
   version "29.5.0"
   resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f"
@@ -6507,6 +7889,44 @@ jest-util@^29.5.0:
     graceful-fs "^4.2.9"
     picomatch "^2.2.3"
 
+jest-util@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.6.3.tgz#e15c3eac8716440d1ed076f09bc63ace1aebca63"
+  integrity sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==
+  dependencies:
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    ci-info "^3.2.0"
+    graceful-fs "^4.2.9"
+    picomatch "^2.2.3"
+
+jest-validate@^29.6.3:
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.3.tgz#a75fca774cfb1c5758c70d035d30a1f9c2784b4d"
+  integrity sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg==
+  dependencies:
+    "@jest/types" "^29.6.3"
+    camelcase "^6.2.0"
+    chalk "^4.0.0"
+    jest-get-type "^29.6.3"
+    leven "^3.1.0"
+    pretty-format "^29.6.3"
+
+jest-watcher@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.4.tgz#633eb515ae284aa67fd6831f1c9d1b534cf0e0ba"
+  integrity sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ==
+  dependencies:
+    "@jest/test-result" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    "@types/node" "*"
+    ansi-escapes "^4.2.1"
+    chalk "^4.0.0"
+    emittery "^0.13.1"
+    jest-util "^29.6.3"
+    string-length "^4.0.1"
+
 jest-worker@^27.4.5:
   version "27.5.1"
   resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
@@ -6526,6 +7946,26 @@ jest-worker@^29.4.3:
     merge-stream "^2.0.0"
     supports-color "^8.0.0"
 
+jest-worker@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz#f34279f4afc33c872b470d4af21b281ac616abd3"
+  integrity sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==
+  dependencies:
+    "@types/node" "*"
+    jest-util "^29.6.3"
+    merge-stream "^2.0.0"
+    supports-color "^8.0.0"
+
+jest@^29.6.4:
+  version "29.6.4"
+  resolved "https://registry.npmjs.org/jest/-/jest-29.6.4.tgz#7c48e67a445ba264b778253b5d78d4ebc9d0a622"
+  integrity sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw==
+  dependencies:
+    "@jest/core" "^29.6.4"
+    "@jest/types" "^29.6.3"
+    import-local "^3.0.2"
+    jest-cli "^29.6.4"
+
 jiti@^1.18.2:
   version "1.18.2"
   resolved "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd"
@@ -6536,33 +7976,11 @@ jmespath@^0.16.0:
   resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076"
   integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==
 
-"jquery-contextmenu@^2.6.4", "jquery-contextmenu@^2.9.2":
-  version "2.9.2"
-  resolved "https://registry.npmjs.org/jquery-contextmenu/-/jquery-contextmenu-2.9.2.tgz#f9dc362e45871dda2e50fa45de2243e917446ced"
-  integrity sha512-6S6sH/08owDStC/7zNwcN366yR0ydX6PmMB0RnjLRQOp7Nc/rqwEHglshfHrrw2kdTev97GXwRXrayDUmToIOw==
-  dependencies:
-    jquery "^3.5.0"
-
-"jquery@^3.3.1", "jquery@^3.5.0", "jquery@^3.6.0":
-  version "3.7.0"
-  resolved "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612"
-  integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==
-
-js-string-escape@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef"
-  integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==
-
 "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
   version "4.0.0"
   resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
   integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
 
-js-tokens@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-  integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==
-
 js-yaml@^3.13.1:
   version "3.14.1"
   resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
@@ -6583,10 +8001,37 @@ jsbn@1.1.0:
   resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"
   integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==
 
-jsesc@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
-  integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==
+jsdom@^20.0.0:
+  version "20.0.3"
+  resolved "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db"
+  integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==
+  dependencies:
+    abab "^2.0.6"
+    acorn "^8.8.1"
+    acorn-globals "^7.0.0"
+    cssom "^0.5.0"
+    cssstyle "^2.3.0"
+    data-urls "^3.0.2"
+    decimal.js "^10.4.2"
+    domexception "^4.0.0"
+    escodegen "^2.0.0"
+    form-data "^4.0.0"
+    html-encoding-sniffer "^3.0.0"
+    http-proxy-agent "^5.0.0"
+    https-proxy-agent "^5.0.1"
+    is-potential-custom-element-name "^1.0.1"
+    nwsapi "^2.2.2"
+    parse5 "^7.1.1"
+    saxes "^6.0.0"
+    symbol-tree "^3.2.4"
+    tough-cookie "^4.1.2"
+    w3c-xmlserializer "^4.0.0"
+    webidl-conversions "^7.0.0"
+    whatwg-encoding "^2.0.0"
+    whatwg-mimetype "^3.0.0"
+    whatwg-url "^11.0.0"
+    ws "^8.11.0"
+    xml-name-validator "^4.0.0"
 
 jsesc@^2.5.1:
   version "2.5.2"
@@ -6615,11 +8060,6 @@ json-buffer@3.0.0:
   resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
   integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
 
-json-schema-traverse@^0.3.0:
-  version "0.3.1"
-  resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
-  integrity sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==
-
 json-schema-traverse@^0.4.1:
   version "0.4.1"
   resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -6647,7 +8087,7 @@ json5@^1.0.1:
   dependencies:
     minimist "^1.2.0"
 
-"json5@^2.1.2", "json5@^2.2.2":
+"json5@^2.1.2", "json5@^2.2.2", "json5@^2.2.3":
   version "2.2.3"
   resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
   integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
@@ -6667,13 +8107,6 @@ jsoneditor@^9.5.4:
     picomodal "^3.0.0"
     vanilla-picker "^2.12.1"
 
-jsonfile@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
-  integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
-  dependencies:
-    graceful-fs "^4.1.6"
-
 jsonparse@^1.2.0:
   version "1.3.1"
   resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
@@ -6767,112 +8200,6 @@ junk@^3.1.0:
   resolved "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1"
   integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==
 
-karma-babel-preprocessor@^8.0.0:
-  version "8.0.2"
-  resolved "https://registry.npmjs.org/karma-babel-preprocessor/-/karma-babel-preprocessor-8.0.2.tgz#4daff4cfbfcd58c635bf321e135525f608d2d621"
-  integrity sha512-6ZUnHwaK2EyhgxbgeSJW6n6WZUYSEdekHIV/qDUnPgMkVzQBHEvd07d2mTL5AQjV8uTUgH6XslhaPrp+fHWH2A==
-
-karma-browserify@^8.0.0:
-  version "8.1.0"
-  resolved "https://registry.npmjs.org/karma-browserify/-/karma-browserify-8.1.0.tgz#a200b15e2d93863cc704efe730722a5078b7d45b"
-  integrity sha512-q5OWuCfdXMfyhkRrH8XP5LiixD4lx0uCmlf6yQmGeQNHLH4Hoofur3tBJtSEhOXmY0mOdBe8ek2UUxicjmGqFQ==
-  dependencies:
-    convert-source-map "^1.8.0"
-    hat "^0.0.3"
-    js-string-escape "^1.0.0"
-    lodash "^4.17.21"
-    minimatch "^3.0.0"
-    os-shim "^0.1.3"
-
-karma-chrome-launcher@^3.1.0:
-  version "3.2.0"
-  resolved "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9"
-  integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==
-  dependencies:
-    which "^1.2.1"
-
-karma-coverage@^2.0.3:
-  version "2.2.0"
-  resolved "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz#64f838b66b71327802e7f6f6c39d569b7024e40c"
-  integrity sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==
-  dependencies:
-    istanbul-lib-coverage "^3.2.0"
-    istanbul-lib-instrument "^5.1.0"
-    istanbul-lib-report "^3.0.0"
-    istanbul-lib-source-maps "^4.0.1"
-    istanbul-reports "^3.0.5"
-    minimatch "^3.0.4"
-
-karma-jasmine-html-reporter@^1.4.0:
-  version "1.7.0"
-  resolved "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz#52c489a74d760934a1089bfa5ea4a8fcb84cc28b"
-  integrity sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==
-
-karma-jasmine@^4.0.1:
-  version "4.0.2"
-  resolved "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz#386db2a3e1acc0af5265c711f673f78f1e4938de"
-  integrity sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==
-  dependencies:
-    jasmine-core "^3.6.0"
-
-karma-requirejs@~1.1.0:
-  version "1.1.0"
-  resolved "https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.1.0.tgz#fddae2cb87d7ebc16fb0222893564d7fee578798"
-  integrity sha512-MHTOYKdwwJBkvYid0TaYvBzOnFH3TDtzo6ie5E4o9SaUSXXsfMRLa/whUz6efVIgTxj1xnKYasNn/XwEgJeB/Q==
-
-karma-source-map-support@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz#58526ceccf7e8730e56effd97a4de8d712ac0d6b"
-  integrity sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==
-  dependencies:
-    source-map-support "^0.5.5"
-
-karma-sourcemap-loader@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.4.0.tgz#b01d73f8f688f533bcc8f5d273d43458e13b5488"
-  integrity sha512-xCRL3/pmhAYF3I6qOrcn0uhbQevitc2DERMPH82FMnG+4WReoGcGFZb1pURf2a5apyrOHRdvD+O6K7NljqKHyA==
-  dependencies:
-    graceful-fs "^4.2.10"
-
-karma-webpack@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz#2a2c7b80163fe7ffd1010f83f5507f95ef39f840"
-  integrity sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==
-  dependencies:
-    glob "^7.1.3"
-    minimatch "^3.0.4"
-    webpack-merge "^4.1.5"
-
-karma@^6.3.15:
-  version "6.4.2"
-  resolved "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz#a983f874cee6f35990c4b2dcc3d274653714de8e"
-  integrity sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==
-  dependencies:
-    "@colors/colors" "1.5.0"
-    body-parser "^1.19.0"
-    braces "^3.0.2"
-    chokidar "^3.5.1"
-    connect "^3.7.0"
-    di "^0.0.1"
-    dom-serialize "^2.2.1"
-    glob "^7.1.7"
-    graceful-fs "^4.2.6"
-    http-proxy "^1.18.1"
-    isbinaryfile "^4.0.8"
-    lodash "^4.17.21"
-    log4js "^6.4.1"
-    mime "^2.5.2"
-    minimatch "^3.0.4"
-    mkdirp "^0.5.5"
-    qjobs "^1.2.0"
-    range-parser "^1.2.1"
-    rimraf "^3.0.2"
-    socket.io "^4.4.1"
-    source-map "^0.6.1"
-    tmp "^0.2.1"
-    ua-parser-js "^0.7.30"
-    yargs "^16.1.1"
-
 keyv@3.0.0:
   version "3.0.0"
   resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
@@ -6885,6 +8212,11 @@ keyv@3.0.0:
   resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
   integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
 
+kleur@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+  integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
 klona@^2.0.4:
   version "2.0.6"
   resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22"
@@ -6903,6 +8235,11 @@ leaflet@^1.5.1:
   resolved "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz#23fae724e282fa25745aff82ca4d394748db7d8d"
   integrity sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==
 
+leven@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+  integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
 levn@^0.4.1:
   version "0.4.1"
   resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
@@ -7001,20 +8338,6 @@ lodash._basecreatewrapper@~2.3.0:
     lodash._slice "~2.3.0"
     lodash.isobject "~2.3.0"
 
-lodash._baseisequal@^3.0.0:
-  version "3.0.7"
-  resolved "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1"
-  integrity sha512-U+3GsNEZj9ebI03ncLC2pLmYVjgtYZEwdkAPO7UGgtGvAz36JVFPAQUufpSaVL93Cz5arc6JGRKZRhaOhyVJYA==
-  dependencies:
-    lodash.isarray "^3.0.0"
-    lodash.istypedarray "^3.0.0"
-    lodash.keys "^3.0.0"
-
-lodash._bindcallback@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
-  integrity sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ==
-
 lodash._createwrapper@~2.3.0:
   version "2.3.0"
   resolved "https://registry.npmjs.org/lodash._createwrapper/-/lodash._createwrapper-2.3.0.tgz#d1aae1102dadf440e8e06fc133a6edd7fe146075"
@@ -7024,11 +8347,6 @@ lodash._createwrapper@~2.3.0:
     lodash._basecreatewrapper "~2.3.0"
     lodash.isfunction "~2.3.0"
 
-lodash._getnative@^3.0.0:
-  version "3.9.1"
-  resolved "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-  integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==
-
 lodash._objecttypes@~2.3.0:
   version "2.3.0"
   resolved "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.3.0.tgz#6a3ea3987dd6eeb8021b2d5c9c303549cc2bae1e"
@@ -7073,16 +8391,6 @@ lodash.debounce@^4.0.8:
   resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
   integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
 
-lodash.escape@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98"
-  integrity sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==
-
-lodash.flattendeep@^4.4.0:
-  version "4.4.0"
-  resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
-  integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==
-
 lodash.foreach@2.3.x:
   version "2.3.0"
   resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-2.3.0.tgz#083404c91e846ee77245fdf9d76519c68b2af168"
@@ -7105,29 +8413,6 @@ lodash.identity@~2.3.0:
   resolved "https://registry.npmjs.org/lodash.identity/-/lodash.identity-2.3.0.tgz#6b01a210c9485355c2a913b48b6711219a173ded"
   integrity sha512-NYJ2r2cwy3tkx/saqbIZEX6oQUzjWTnGRu7d/zmBjMCZos3eHBxCpbvWFWSetv8jFVrptsp6EbWjzNgBKhUoOA==
 
-lodash.isarguments@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
-  integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==
-
-lodash.isarray@^3.0.0:
-  version "3.0.4"
-  resolved "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-  integrity sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==
-
-lodash.isequal@^3.0:
-  version "3.0.4"
-  resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-3.0.4.tgz#1c35eb3b6ef0cd1ff51743e3ea3cf7fdffdacb64"
-  integrity sha512-Bsu5fP9Omd+HBk2Dz8qp4BHbC+83DBykZ87Lz1JmPKTVNy4Q0XQVtUrbfXVAK/udQrWNcGStcKSA9yj/Zkm3TQ==
-  dependencies:
-    lodash._baseisequal "^3.0.0"
-    lodash._bindcallback "^3.0.0"
-
-lodash.isequal@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
-  integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==
-
 lodash.isfunction@~2.3.0:
   version "2.3.0"
   resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-2.3.0.tgz#6b2973e47a647cf12e70d676aea13643706e5267"
@@ -7140,11 +8425,6 @@ lodash.isobject@~2.3.0:
   dependencies:
     lodash._objecttypes "~2.3.0"
 
-lodash.istypedarray@^3.0.0:
-  version "3.0.6"
-  resolved "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
-  integrity sha512-lGWJ6N8AA3KSv+ZZxlTdn4f6A7kMfpJboeyvbFdE7IU9YAgweODqmOgdUHOA+c6lVWeVLysdaxciFXi+foVsWw==
-
 "lodash.keys@2.3.x", "lodash.keys@~2.3.0":
   version "2.3.0"
   resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.3.0.tgz#b350f4f92caa9f45a4a2ecf018454cf2f28ae253"
@@ -7154,15 +8434,6 @@ lodash.istypedarray@^3.0.0:
     lodash._shimkeys "~2.3.0"
     lodash.isobject "~2.3.0"
 
-lodash.keys@^3.0.0:
-  version "3.1.2"
-  resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
-  integrity sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==
-  dependencies:
-    lodash._getnative "^3.0.0"
-    lodash.isarguments "^3.0.0"
-    lodash.isarray "^3.0.0"
-
 lodash.memoize@^4.1.2:
   version "4.1.2"
   resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
@@ -7195,29 +8466,25 @@ lodash.uniq@^4.5.0:
   resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
   integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
 
-"lodash@4", "lodash@4.*", "lodash@^4.14.1", "lodash@^4.17.10", "lodash@^4.17.14", "lodash@^4.17.15", "lodash@^4.17.20", "lodash@^4.17.21", "lodash@^4.17.4":
+"lodash@4", "lodash@4.*", "lodash@^4.14.1", "lodash@^4.17.10", "lodash@^4.17.14", "lodash@^4.17.15", "lodash@^4.17.20", "lodash@^4.17.21":
   version "4.17.21"
   resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
-log4js@^6.4.1:
-  version "6.9.1"
-  resolved "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6"
-  integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==
-  dependencies:
-    date-format "^4.0.14"
-    debug "^4.3.4"
-    flatted "^3.2.7"
-    rfdc "^1.3.0"
-    streamroller "^3.1.5"
-
-"loose-envify@^1.0.0", "loose-envify@^1.1.0", "loose-envify@^1.4.0":
+"loose-envify@^1.1.0", "loose-envify@^1.4.0":
   version "1.4.0"
   resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
   integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
   dependencies:
     js-tokens "^3.0.0 || ^4.0.0"
 
+lower-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+  integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+  dependencies:
+    tslib "^2.0.3"
+
 lowercase-keys@1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
@@ -7260,6 +8527,11 @@ lru-cache@^9.1.1:
   resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz#255fdbc14b75589d6d0e73644ca167a8db506835"
   integrity sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==
 
+lz-string@^1.5.0:
+  version "1.5.0"
+  resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941"
+  integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
+
 "make-dir@^1.0.0", "make-dir@^1.2.0":
   version "1.3.0"
   resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@@ -7295,6 +8567,13 @@ make-fetch-happen@^11.0.3:
     socks-proxy-agent "^7.0.0"
     ssri "^10.0.0"
 
+makeerror@1.0.12:
+  version "1.0.12"
+  resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+  integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+  dependencies:
+    tmpl "1.0.5"
+
 map-obj@^1.0.0:
   version "1.0.1"
   resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
@@ -7339,11 +8618,6 @@ mdn-data@2.0.30:
   resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
   integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
 
-media-typer@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
-  integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
-
 "memoize-one@>=3.1.1 <6":
   version "5.2.1"
   resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e"
@@ -7408,18 +8682,13 @@ miller-rabin@^4.0.0:
   resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
   integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
 
-"mime-types@^2.1.27", "mime-types@~2.1.24", "mime-types@~2.1.34":
+"mime-types@^2.1.12", "mime-types@^2.1.27":
   version "2.1.35"
   resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
   integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
   dependencies:
     mime-db "1.52.0"
 
-mime@^2.5.2:
-  version "2.6.0"
-  resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
-  integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
-
 mimic-fn@^2.1.0:
   version "2.1.0"
   resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
@@ -7435,7 +8704,7 @@ mimic-response@^1.0.0:
   resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
   integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
 
-min-indent@^1.0.1:
+"min-indent@^1.0.0", "min-indent@^1.0.1":
   version "1.0.1"
   resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
   integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
@@ -7457,7 +8726,7 @@ minimalistic-crypto-utils@^1.0.1:
   resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
   integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
 
-"minimatch@^3.0.0", "minimatch@^3.0.4", "minimatch@^3.0.5", "minimatch@^3.1.1", "minimatch@^3.1.2":
+"minimatch@^3.0.4", "minimatch@^3.0.5", "minimatch@^3.1.1", "minimatch@^3.1.2":
   version "3.1.2"
   resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
   integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -7560,13 +8829,6 @@ mkdirp-classic@^0.5.2:
   resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
   integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
 
-mkdirp@^0.5.5:
-  version "0.5.6"
-  resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
-  integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
-  dependencies:
-    minimist "^1.2.6"
-
 "mkdirp@^1.0.3", "mkdirp@^1.0.4":
   version "1.0.4"
   resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
@@ -7636,16 +8898,11 @@ moment-timezone@^0.5.34:
   dependencies:
     moment "^2.29.4"
 
-"moment@^2.29.4", "moment@~2.29.2":
+moment@^2.29.4:
   version "2.29.4"
   resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
   integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
 
-moo@^0.5.0:
-  version "0.5.2"
-  resolved "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c"
-  integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==
-
 mousetrap@^1.6.3:
   version "1.6.5"
   resolved "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9"
@@ -7664,11 +8921,6 @@ mrmime@^1.0.0:
   resolved "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27"
   integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==
 
-ms@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-  integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
-
 ms@2.1.2:
   version "2.1.2"
   resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
@@ -7706,16 +8958,6 @@ natural-compare@^1.4.0:
   resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
   integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
 
-nearley@^2.7.10:
-  version "2.20.1"
-  resolved "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474"
-  integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==
-  dependencies:
-    commander "^2.19.0"
-    moo "^0.5.0"
-    railroad-diagrams "^1.0.0"
-    randexp "0.4.6"
-
 neatequal@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/neatequal/-/neatequal-1.0.0.tgz#2ee1211bc9fa6e4c55715fd210bb05602eb1ae3b"
@@ -7723,7 +8965,7 @@ neatequal@^1.0.0:
   dependencies:
     varstream "^0.3.2"
 
-"negotiator@0.6.3", "negotiator@^0.6.3":
+negotiator@^0.6.3:
   version "0.6.3"
   resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
   integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
@@ -7738,6 +8980,14 @@ nice-try@^1.0.4:
   resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
   integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
 
+no-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+  integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
+  dependencies:
+    lower-case "^2.0.2"
+    tslib "^2.0.3"
+
 "node-gyp@^9.0.0", "node-gyp@latest":
   version "9.4.0"
   resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369"
@@ -7755,11 +9005,21 @@ nice-try@^1.0.4:
     tar "^6.1.2"
     which "^2.0.2"
 
+node-int64@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+  integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
+
 node-releases@^2.0.12:
   version "2.0.12"
   resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039"
   integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==
 
+node-releases@^2.0.13:
+  version "2.0.13"
+  resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
+  integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
+
 nopt@^6.0.0:
   version "6.0.0"
   resolved "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d"
@@ -7829,7 +9089,7 @@ npm-run-path@^2.0.0:
   dependencies:
     path-key "^2.0.0"
 
-npm-run-path@^4.0.0:
+npm-run-path@^4.0.1:
   version "4.0.1"
   resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
   integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
@@ -7860,17 +9120,22 @@ nth-check@^2.0.1:
   dependencies:
     boolbase "^1.0.0"
 
-"object-assign@^4", "object-assign@^4.0.1", "object-assign@^4.1.0", "object-assign@^4.1.1":
+nwsapi@^2.2.2:
+  version "2.2.7"
+  resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
+  integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
+
+"object-assign@^4.0.1", "object-assign@^4.1.0", "object-assign@^4.1.1":
   version "4.1.1"
   resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
   integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
 
-"object-inspect@^1.12.3", "object-inspect@^1.7.0", "object-inspect@^1.9.0":
+"object-inspect@^1.12.3", "object-inspect@^1.9.0":
   version "1.12.3"
   resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
   integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
 
-"object-is@^1.0.2", "object-is@^1.1.5":
+object-is@^1.1.5:
   version "1.1.5"
   resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
   integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
@@ -7883,7 +9148,7 @@ object-keys@^1.1.1:
   resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
   integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
 
-"object.assign@^4.1.0", "object.assign@^4.1.3", "object.assign@^4.1.4":
+"object.assign@^4.1.3", "object.assign@^4.1.4":
   version "4.1.4"
   resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
   integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
@@ -7893,7 +9158,7 @@ object-keys@^1.1.1:
     has-symbols "^1.0.3"
     object-keys "^1.1.1"
 
-"object.entries@^1.1.1", "object.entries@^1.1.6":
+object.entries@^1.1.6:
   version "1.1.6"
   resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23"
   integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==
@@ -7902,7 +9167,7 @@ object-keys@^1.1.1:
     define-properties "^1.1.4"
     es-abstract "^1.20.4"
 
-"object.fromentries@^2.0.0", "object.fromentries@^2.0.6":
+object.fromentries@^2.0.6:
   version "2.0.6"
   resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73"
   integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==
@@ -7919,7 +9184,7 @@ object.hasown@^1.1.2:
     define-properties "^1.1.4"
     es-abstract "^1.20.4"
 
-"object.values@^1.1.1", "object.values@^1.1.6":
+object.values@^1.1.6:
   version "1.1.6"
   resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
   integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
@@ -7928,20 +9193,6 @@ object.hasown@^1.1.2:
     define-properties "^1.1.4"
     es-abstract "^1.20.4"
 
-on-finished@2.4.1:
-  version "2.4.1"
-  resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
-  integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
-  dependencies:
-    ee-first "1.1.1"
-
-on-finished@~2.3.0:
-  version "2.3.0"
-  resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
-  integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
-  dependencies:
-    ee-first "1.1.1"
-
 "once@^1.3.0", "once@^1.3.1", "once@^1.4.0":
   version "1.4.0"
   resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -7949,7 +9200,7 @@ on-finished@~2.3.0:
   dependencies:
     wrappy 1
 
-onetime@^5.1.0:
+onetime@^5.1.2:
   version "5.1.2"
   resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
   integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
@@ -8000,18 +9251,6 @@ os-filter-obj@^2.0.0:
   dependencies:
     arch "^2.1.0"
 
-os-shim@^0.1.3:
-  version "0.1.3"
-  resolved "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
-  integrity sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==
-
-ow@^0.17.0:
-  version "0.17.0"
-  resolved "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz#4f938999fed6264c9048cd6254356e0f1e7f688c"
-  integrity sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA==
-  dependencies:
-    type-fest "^0.11.0"
-
 p-cancelable@^0.3.0:
   version "0.3.0"
   resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
@@ -8053,7 +9292,7 @@ p-limit@^2.2.0:
   dependencies:
     p-try "^2.0.0"
 
-p-limit@^3.0.2:
+"p-limit@^3.0.2", "p-limit@^3.1.0":
   version "3.1.0"
   resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
   integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
@@ -8144,7 +9383,7 @@ parent-module@^1.0.0:
   dependencies:
     path-platform "~0.11.15"
 
-"parse-asn1@^5.0.0", "parse-asn1@^5.1.5":
+"parse-asn1@^5.0.0", "parse-asn1@^5.1.6":
   version "5.1.6"
   resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
   integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
@@ -8165,26 +9404,13 @@ parent-module@^1.0.0:
     json-parse-even-better-errors "^2.3.0"
     lines-and-columns "^1.1.6"
 
-parse5-htmlparser2-tree-adapter@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1"
-  integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==
-  dependencies:
-    domhandler "^5.0.2"
-    parse5 "^7.0.0"
-
-parse5@^7.0.0:
+"parse5@^7.0.0", "parse5@^7.1.1":
   version "7.1.2"
   resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
   integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
   dependencies:
     entities "^4.4.0"
 
-parseurl@~1.3.3:
-  version "1.3.3"
-  resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
-  integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
 path-browserify@^1.0.0:
   version "1.0.1"
   resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
@@ -8325,6 +9551,11 @@ pinkie@^2.0.0:
   resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
   integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
 
+pirates@^4.0.4:
+  version "4.0.6"
+  resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+  integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
+
 "pkg-dir@^4.1.0", "pkg-dir@^4.2.0":
   version "4.2.0"
   resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
@@ -8332,15 +9563,6 @@ pinkie@^2.0.0:
   dependencies:
     find-up "^4.0.0"
 
-pngquant-bin@^6.0.0:
-  version "6.0.1"
-  resolved "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-6.0.1.tgz#2b5789ca219eeb4d8509ab1ae082092801b7f07e"
-  integrity sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==
-  dependencies:
-    bin-build "^3.0.0"
-    bin-wrapper "^4.0.1"
-    execa "^4.0.0"
-
 popper.js@1.16.1-lts:
   version "1.16.1-lts"
   resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05"
@@ -8794,7 +10016,7 @@ postcss-unique-selectors@^6.0.0:
   resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
   integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
 
-"postcss@^8.2.15", "postcss@^8.4.21", "postcss@^8.4.24":
+"postcss@^8.4.21", "postcss@^8.4.24":
   version "8.4.24"
   resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df"
   integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==
@@ -8803,6 +10025,15 @@ postcss-unique-selectors@^6.0.0:
     picocolors "^1.0.0"
     source-map-js "^1.0.2"
 
+postcss@^8.4.31:
+  version "8.4.31"
+  resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
+  integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
+  dependencies:
+    nanoid "^3.3.6"
+    picocolors "^1.0.0"
+    source-map-js "^1.0.2"
+
 precond@^0.2.3:
   version "0.2.3"
   resolved "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
@@ -8823,6 +10054,24 @@ prepend-http@^2.0.0:
   resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
   integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
 
+pretty-format@^27.0.2:
+  version "27.5.1"
+  resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
+  integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
+  dependencies:
+    ansi-regex "^5.0.1"
+    ansi-styles "^5.0.0"
+    react-is "^17.0.1"
+
+"pretty-format@^29.0.0", "pretty-format@^29.6.3":
+  version "29.6.3"
+  resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7"
+  integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==
+  dependencies:
+    "@jest/schemas" "^29.6.3"
+    ansi-styles "^5.0.0"
+    react-is "^18.0.0"
+
 process-nextick-args@~2.0.0:
   version "2.0.1"
   resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -8841,7 +10090,15 @@ promise-retry@^2.0.1:
     err-code "^2.0.2"
     retry "^0.12.0"
 
-"prop-types@^15.5.8", "prop-types@^15.6.0", "prop-types@^15.6.2", "prop-types@^15.7.0", "prop-types@^15.7.2", "prop-types@^15.8.1":
+prompts@^2.0.1:
+  version "2.4.2"
+  resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+  integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+  dependencies:
+    kleur "^3.0.3"
+    sisteransi "^1.0.5"
+
+"prop-types@^15.5.8", "prop-types@^15.6.0", "prop-types@^15.6.2", "prop-types@^15.7.2", "prop-types@^15.8.1":
   version "15.8.1"
   resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
   integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@@ -8855,11 +10112,21 @@ proto-list@~1.2.1:
   resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
   integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
 
+proxy-from-env@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
 pseudomap@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
   integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
 
+psl@^1.1.33:
+  version "1.9.0"
+  resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
+  integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
+
 public-encrypt@^4.0.0:
   version "4.0.3"
   resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
@@ -8885,28 +10152,21 @@ pump@^3.0.0:
   resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
   integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
 
-punycode@^2.1.0:
+"punycode@^2.1.0", "punycode@^2.1.1":
   version "2.3.0"
   resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
   integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
 
+pure-rand@^6.0.0:
+  version "6.0.3"
+  resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.3.tgz#3c9e6b53c09e52ac3cedffc85ab7c1c7094b38cb"
+  integrity sha512-KddyFewCsO0j3+np81IQ+SweXLDnDQTs5s67BOnrYmYe/yNmUhttQyGsYzy8yUnoljGAQ9sl38YB4vH8ur7Y+w==
+
 q@^1.1.2:
   version "1.5.1"
   resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
   integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
 
-qjobs@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071"
-  integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==
-
-qs@6.11.0:
-  version "6.11.0"
-  resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
-  integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
-  dependencies:
-    side-channel "^1.0.4"
-
 qs@^6.11.0:
   version "6.11.2"
   resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9"
@@ -8928,6 +10188,11 @@ querystring-es3@~0.2.0:
   resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
   integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==
 
+querystringify@^2.1.1:
+  version "2.2.0"
+  resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
+  integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
 queue-microtask@^1.2.2:
   version "1.2.3"
   resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -8945,19 +10210,6 @@ raf@^3.4.1:
   dependencies:
     performance-now "^2.1.0"
 
-railroad-diagrams@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e"
-  integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==
-
-randexp@0.4.6:
-  version "0.4.6"
-  resolved "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3"
-  integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==
-  dependencies:
-    discontinuous-range "1.0.0"
-    ret "~0.1.10"
-
 "randombytes@^2.0.0", "randombytes@^2.0.1", "randombytes@^2.0.5", "randombytes@^2.1.0":
   version "2.1.0"
   resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -8973,21 +10225,6 @@ randomfill@^1.0.3:
     randombytes "^2.0.5"
     safe-buffer "^5.1.0"
 
-range-parser@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
-  integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-raw-body@2.5.2:
-  version "2.5.2"
-  resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
-  integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
-  dependencies:
-    bytes "3.1.2"
-    http-errors "2.0.0"
-    iconv-lite "0.4.24"
-    unpipe "1.0.0"
-
 rc-align@^4.0.0:
   version "4.0.15"
   resolved "https://registry.npmjs.org/rc-align/-/rc-align-4.0.15.tgz#2bbd665cf85dfd0b0244c5a752b07565e9098577"
@@ -9133,6 +10370,17 @@ re-resizable@6.9.6:
   dependencies:
     fast-memoize "^2.5.1"
 
+react-arborist@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.npmjs.org/react-arborist/-/react-arborist-3.2.0.tgz#f17d726e7d18fcb1494b83ffadfecc8c9bda5dff"
+  integrity sha512-sjGL1KIRogwkM5uVifpp01yrfTcIHsm62Kbs78kBbPuksrnJPZ13SAqAqZeXVuyvO0Tbd7odExF/KoHtXHIZaQ==
+  dependencies:
+    react-dnd "^14.0.3"
+    react-dnd-html5-backend "^14.0.1"
+    react-window "^1.8.6"
+    redux "^4.1.1"
+    use-sync-external-store "^1.2.0"
+
 react-aspen@^1.1.0:
   version "1.2.0"
   resolved "https://registry.npmjs.org/react-aspen/-/react-aspen-1.2.0.tgz#375fa82a8db627542fc8b9e6e421baa49a65ab95"
@@ -9154,6 +10402,13 @@ react-checkbox-tree@^1.7.2:
     nanoid "^3.0.0"
     prop-types "^15.5.8"
 
+react-dnd-html5-backend@^14.0.1:
+  version "14.1.0"
+  resolved "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-14.1.0.tgz#b35a3a0c16dd3a2bfb5eb7ec62cf0c2cace8b62f"
+  integrity sha512-6ONeqEC3XKVf4eVmMTe0oPds+c5B9Foyj8p/ZKLb7kL2qh9COYxiBHv3szd6gztqi/efkmriywLUVlPotqoJyw==
+  dependencies:
+    dnd-core "14.0.1"
+
 react-dnd-html5-backend@^16.0.1:
   version "16.0.1"
   resolved "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz#87faef15845d512a23b3c08d29ecfd34871688b6"
@@ -9161,6 +10416,17 @@ react-dnd-html5-backend@^16.0.1:
   dependencies:
     dnd-core "^16.0.1"
 
+react-dnd@^14.0.3:
+  version "14.0.5"
+  resolved "https://registry.npmjs.org/react-dnd/-/react-dnd-14.0.5.tgz#ecf264e220ae62e35634d9b941502f3fca0185ed"
+  integrity sha512-9i1jSgbyVw0ELlEVt/NkCUkxy1hmhJOkePoCH713u75vzHGyXhPDm28oLfc2NMSBjZRM1Y+wRjHXJT3sPrTy+A==
+  dependencies:
+    "@react-dnd/invariant" "^2.0.0"
+    "@react-dnd/shallowequal" "^2.0.0"
+    dnd-core "14.0.1"
+    fast-deep-equal "^3.1.3"
+    hoist-non-react-statics "^3.3.2"
+
 react-dnd@^16.0.1:
   version "16.0.1"
   resolved "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz#2442a3ec67892c60d40a1559eef45498ba26fa37"
@@ -9181,7 +10447,7 @@ react-dom@^17.0.1:
     object-assign "^4.1.1"
     scheduler "^0.20.2"
 
-"react-draggable@4.4.5", "react-draggable@^4.4.4":
+react-draggable@4.4.5:
   version "4.4.5"
   resolved "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.5.tgz#9e37fe7ce1a4cf843030f521a0a4cc41886d7e7c"
   integrity sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==
@@ -9189,6 +10455,14 @@ react-dom@^17.0.1:
     clsx "^1.1.1"
     prop-types "^15.8.1"
 
+react-draggable@^4.4.6:
+  version "4.4.6"
+  resolved "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz#63343ee945770881ca1256a5b6fa5c9f5983fe1e"
+  integrity sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==
+  dependencies:
+    clsx "^1.1.1"
+    prop-types "^15.8.1"
+
 react-dropzone@^14.2.1:
   version "14.2.3"
   resolved "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz#0acab68308fda2d54d1273a1e626264e13d4e84b"
@@ -9198,21 +10472,26 @@ react-dropzone@^14.2.1:
     file-selector "^0.6.0"
     prop-types "^15.8.1"
 
-"react-is@^16.12.0 || ^17.0.0 || ^18.0.0":
-  version "18.2.0"
-  resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
-  integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+react-frame-component@^5.2.6:
+  version "5.2.6"
+  resolved "https://registry.npmjs.org/react-frame-component/-/react-frame-component-5.2.6.tgz#0d9991d251ff1f7177479d8f370deea06b824b79"
+  integrity sha512-CwkEM5VSt6nFwZ1Op8hi3JB5rPseZlmnp5CGiismVTauE6S4Jsc4TNMlT0O7Cts4WgIC3ZBAQ2p1Mm9XgLbj+w==
 
 "react-is@^16.12.0", "react-is@^16.13.1", "react-is@^16.7.0":
   version "16.13.1"
   resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
   integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
 
-"react-is@^16.8.0 || ^17.0.0", "react-is@^17.0.0", "react-is@^17.0.2":
+"react-is@^16.8.0 || ^17.0.0", "react-is@^17.0.1":
   version "17.0.2"
   resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
   integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
 
+react-is@^18.0.0:
+  version "18.2.0"
+  resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
+  integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+
 react-leaflet@^3.2.2:
   version "3.2.5"
   resolved "https://registry.npmjs.org/react-leaflet/-/react-leaflet-3.2.5.tgz#bec0bfab9dd8c2b030ea630f7a0687a60322ca7d"
@@ -9220,10 +10499,17 @@ react-leaflet@^3.2.2:
   dependencies:
     "@react-leaflet/core" "^1.1.1"
 
-react-property@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz#2156ba9d85fa4741faf1918b38efc1eae3c6a136"
-  integrity sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==
+react-new-window@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/react-new-window/-/react-new-window-1.0.1.tgz#38f97ac5a38a14d2ac8263e2427fcbd5f84e1d64"
+  integrity sha512-pLQlq5NzMxNocXKPIwkXfAxSOZmbpWSbP8QrxCbunpHcx4k249YChkk7l/7P4jjwxq3dI/xwL3nVHLp6h5zM3w==
+  dependencies:
+    prop-types "^15.7.2"
+
+react-property@2.0.2:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz#d5ac9e244cef564880a610bc8d868bd6f60fdda6"
+  integrity sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==
 
 react-resize-detector@^9.1.0:
   version "9.1.0"
@@ -9241,21 +10527,6 @@ react-rnd@^10.3.5:
     react-draggable "4.4.5"
     tslib "2.3.1"
 
-react-router-dom@^6.2.2:
-  version "6.13.0"
-  resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.13.0.tgz#6651f456bb2af42ef14f6880123b1f575539e81f"
-  integrity sha512-6Nqoqd7fgwxxVGdbiMHTpDHCYPq62d7Wk1Of7B82vH7ZPwwsRaIa22zRZKPPg413R5REVNiyuQPKDG1bubcOFA==
-  dependencies:
-    "@remix-run/router" "1.6.3"
-    react-router "6.13.0"
-
-react-router@6.13.0:
-  version "6.13.0"
-  resolved "https://registry.npmjs.org/react-router/-/react-router-6.13.0.tgz#7e4427a271dae0cafbdb88c56ccbd9b1434ee93f"
-  integrity sha512-Si6KnfEnJw7gUQkNa70dlpI1bul46FuSxX5t5WwlUBxE25DAz2BjVkwaK8Y2s242bQrZPXCpmwLPtIO5pv4tXg==
-  dependencies:
-    "@remix-run/router" "1.6.3"
-
 react-select@^5.7.2:
   version "5.7.3"
   resolved "https://registry.npmjs.org/react-select/-/react-select-5.7.3.tgz#fa0dc9a23cad6ff3871ad3829f6083a4b54961a2"
@@ -9271,29 +10542,11 @@ react-select@^5.7.2:
     react-transition-group "^4.3.0"
     use-isomorphic-layout-effect "^1.1.2"
 
-react-shallow-renderer@^16.13.1:
-  version "16.15.0"
-  resolved "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457"
-  integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==
-  dependencies:
-    object-assign "^4.1.1"
-    react-is "^16.12.0 || ^17.0.0 || ^18.0.0"
-
 react-table@^7.6.3:
   version "7.8.0"
   resolved "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz#07858c01c1718c09f7f1aed7034fcfd7bda907d2"
   integrity sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA==
 
-react-test-renderer@^17.0.0:
-  version "17.0.2"
-  resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c"
-  integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==
-  dependencies:
-    object-assign "^4.1.1"
-    react-is "^17.0.2"
-    react-shallow-renderer "^16.13.1"
-    scheduler "^0.20.2"
-
 react-timer-hook@^3.0.5:
   version "3.0.6"
   resolved "https://registry.npmjs.org/react-timer-hook/-/react-timer-hook-3.0.6.tgz#61aca331378ad53058519c579de50c244e66972f"
@@ -9319,7 +10572,7 @@ react-virtualized-auto-sizer@^1.0.6:
   resolved "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.20.tgz#d9a907253a7c221c52fa57dc775a6ef40c182645"
   integrity sha512-OdIyHwj4S4wyhbKHOKM1wLSj/UDXm839Z3Cvfg2a9j+He6yDa6i5p0qQvEiCnyQlGO/HyfSnigQwuxvYalaAXA==
 
-"react-window@^1.3.1", "react-window@^1.8.5":
+"react-window@^1.3.1", "react-window@^1.8.5", "react-window@^1.8.6":
   version "1.8.9"
   resolved "https://registry.npmjs.org/react-window/-/react-window-1.8.9.tgz#24bc346be73d0468cdf91998aac94e32bc7fa6a8"
   integrity sha512-+Eqx/fj1Aa5WnhRfj9dJg4VYATGwIUP2ItwItiJ6zboKWA6EX3lYDAXfGF2hyNqplEprhbtjbipiADEcwQ823Q==
@@ -9384,7 +10637,7 @@ readable-stream@^1.0.33:
     string_decoder "~1.1.1"
     util-deprecate "~1.0.1"
 
-"readable-stream@^3.4.0", "readable-stream@^3.5.0", "readable-stream@^3.6.0":
+"readable-stream@^3.4.0", "readable-stream@^3.5.0", "readable-stream@^3.6.0", "readable-stream@^3.6.2":
   version "3.6.2"
   resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
   integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -9414,6 +10667,14 @@ rechoir@^0.7.0:
   dependencies:
     resolve "^1.9.0"
 
+redent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
+  integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
+  dependencies:
+    indent-string "^4.0.0"
+    strip-indent "^3.0.0"
+
 redent@^4.0.0:
   version "4.0.0"
   resolved "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9"
@@ -9422,13 +10683,25 @@ redent@^4.0.0:
     indent-string "^5.0.0"
     strip-indent "^4.0.0"
 
-redux@^4.2.0:
+"redux@^4.1.1", "redux@^4.2.0":
   version "4.2.1"
   resolved "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197"
   integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==
   dependencies:
     "@babel/runtime" "^7.9.2"
 
+reflect.getprototypeof@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz#2738fd896fcc3477ffbd4190b40c2458026b6928"
+  integrity sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.4"
+    es-abstract "^1.20.4"
+    get-intrinsic "^1.1.1"
+    globalthis "^1.0.3"
+    which-builtin-type "^1.1.3"
+
 regenerate-unicode-properties@^10.1.0:
   version "10.1.0"
   resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
@@ -9441,11 +10714,6 @@ regenerate@^1.4.2:
   resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
   integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
 
-regenerator-runtime@^0.11.0:
-  version "0.11.1"
-  resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
-  integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
-
 regenerator-runtime@^0.13.11:
   version "0.13.11"
   resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
@@ -9458,7 +10726,14 @@ regenerator-transform@^0.15.1:
   dependencies:
     "@babel/runtime" "^7.8.4"
 
-regexp.prototype.flags@^1.4.3:
+regenerator-transform@^0.15.2:
+  version "0.15.2"
+  resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4"
+  integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==
+  dependencies:
+    "@babel/runtime" "^7.8.4"
+
+"regexp.prototype.flags@^1.4.3", "regexp.prototype.flags@^1.5.0":
   version "1.5.0"
   resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb"
   integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==
@@ -9486,13 +10761,6 @@ regjsparser@^0.9.1:
   dependencies:
     jsesc "~0.5.0"
 
-repeating@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
-  integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==
-  dependencies:
-    is-finite "^1.0.0"
-
 replace-ext@^2.0.0:
   version "2.0.0"
   resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz#9471c213d22e1bcc26717cd6e50881d88f812b06"
@@ -9535,6 +10803,11 @@ resolve-from@^5.0.0:
   resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
   integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
 
+resolve.exports@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
+  integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
+
 "resolve@^1.1.4", "resolve@^1.12.0", "resolve@^1.14.2", "resolve@^1.17.0", "resolve@^1.19.0", "resolve@^1.4.0", "resolve@^1.9.0":
   version "1.22.2"
   resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
@@ -9544,6 +10817,15 @@ resolve-from@^5.0.0:
     path-parse "^1.0.7"
     supports-preserve-symlinks-flag "^1.0.0"
 
+resolve@^1.20.0:
+  version "1.22.4"
+  resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34"
+  integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==
+  dependencies:
+    is-core-module "^2.13.0"
+    path-parse "^1.0.7"
+    supports-preserve-symlinks-flag "^1.0.0"
+
 resolve@^2.0.0-next.4:
   version "2.0.0-next.4"
   resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660"
@@ -9560,11 +10842,6 @@ responselike@1.0.2:
   dependencies:
     lowercase-keys "^1.0.0"
 
-ret@~0.1.10:
-  version "0.1.15"
-  resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
-  integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-
 retry@^0.12.0:
   version "0.12.0"
   resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
@@ -9575,11 +10852,6 @@ reusify@^1.0.4:
   resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
-rfdc@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
-  integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
-
 rifm@^0.7.0:
   version "0.7.0"
   resolved "https://registry.npmjs.org/rifm/-/rifm-0.7.0.tgz#debe951a9c83549ca6b33e5919f716044c2230be"
@@ -9594,7 +10866,7 @@ rimraf@^2.5.4:
   dependencies:
     glob "^7.1.3"
 
-"rimraf@^3.0.0", "rimraf@^3.0.2":
+rimraf@^3.0.2:
   version "3.0.2"
   resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
   integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -9609,14 +10881,6 @@ rimraf@^2.5.4:
     hash-base "^3.0.0"
     inherits "^2.0.1"
 
-rst-selector-parser@^2.2.3:
-  version "2.2.3"
-  resolved "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91"
-  integrity sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==
-  dependencies:
-    lodash.flattendeep "^4.4.0"
-    nearley "^2.7.10"
-
 run-parallel@^1.1.9:
   version "1.2.0"
   resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -9624,7 +10888,17 @@ run-parallel@^1.1.9:
   dependencies:
     queue-microtask "^1.2.2"
 
-"safe-buffer@5.2.1", "safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@^5.2.0", "safe-buffer@~5.2.0":
+safe-array-concat@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060"
+  integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.2.0"
+    has-symbols "^1.0.3"
+    isarray "^2.0.5"
+
+"safe-buffer@5.2.1", "safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@^5.2.0", "safe-buffer@^5.2.1", "safe-buffer@~5.2.0":
   version "5.2.1"
   resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -9643,7 +10917,7 @@ safe-regex-test@^1.0.0:
     get-intrinsic "^1.1.3"
     is-regex "^1.1.4"
 
-"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", "safer-buffer@^2.1.0":
+"safer-buffer@>= 2.1.2 < 3.0.0", "safer-buffer@^2.1.0":
   version "2.1.2"
   resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -9680,6 +10954,13 @@ sax@^1.2.4:
   resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
   integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
 
+saxes@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
+  integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==
+  dependencies:
+    xmlchars "^2.2.0"
+
 scheduler@^0.20.2:
   version "0.20.2"
   resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
@@ -9688,13 +10969,6 @@ scheduler@^0.20.2:
     loose-envify "^1.1.0"
     object-assign "^4.1.1"
 
-schema-utils@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
-  integrity sha512-QaVYBaD9U8scJw2EBWnCBY+LJ0AD+/2edTaigDs0XLDLBfJmSUK9KGqktg1rb32U3z4j/XwvFwHHH1YfbYFd7Q==
-  dependencies:
-    ajv "^5.0.0"
-
 schema-utils@^2.6.5:
   version "2.7.1"
   resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
@@ -9752,6 +11026,11 @@ semver-truncate@^1.1.2:
   resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
+semver@^6.3.1:
+  version "6.3.1"
+  resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+  integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
 "semver@^7.3.4", "semver@^7.3.5", "semver@^7.3.7", "semver@^7.3.8":
   version "7.5.2"
   resolved "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb"
@@ -9759,6 +11038,13 @@ semver-truncate@^1.1.2:
   dependencies:
     lru-cache "^6.0.0"
 
+"semver@^7.5.3", "semver@^7.5.4":
+  version "7.5.4"
+  resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+  integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+  dependencies:
+    lru-cache "^6.0.0"
+
 "serialize-javascript@^6.0.0", "serialize-javascript@^6.0.1":
   version "6.0.1"
   resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c"
@@ -9771,11 +11057,6 @@ set-blocking@^2.0.0:
   resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
 
-setprototypeof@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
-  integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
-
 "sha.js@^2.4.0", "sha.js@^2.4.8":
   version "2.4.11"
   resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
@@ -9851,7 +11132,7 @@ side-channel@^1.0.4:
     get-intrinsic "^1.0.2"
     object-inspect "^1.9.0"
 
-"signal-exit@^3.0.0", "signal-exit@^3.0.2", "signal-exit@^3.0.7":
+"signal-exit@^3.0.0", "signal-exit@^3.0.3", "signal-exit@^3.0.7":
   version "3.0.7"
   resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
   integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -9875,6 +11156,11 @@ sirv@^1.0.7:
     mrmime "^1.0.0"
     totalist "^1.0.0"
 
+sisteransi@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+  integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
 slash@^3.0.0:
   version "3.0.0"
   resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -9890,6 +11176,14 @@ smart-buffer@^4.2.0:
   resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
   integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
 
+snake-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
+  integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
+  dependencies:
+    dot-case "^3.0.4"
+    tslib "^2.0.3"
+
 snapsvg-cjs@^0.0.6:
   version "0.0.6"
   resolved "https://registry.npmjs.org/snapsvg-cjs/-/snapsvg-cjs-0.0.6.tgz#3b2f56af2573d3d364c3ed5bf8885745f4d2dde1"
@@ -9904,13 +11198,6 @@ snapsvg@0.5.1:
   dependencies:
     eve "~0.5.1"
 
-socket.io-adapter@~2.5.2:
-  version "2.5.2"
-  resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz#5de9477c9182fdc171cd8c8364b9a8894ec75d12"
-  integrity sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==
-  dependencies:
-    ws "~8.11.0"
-
 socket.io-client@^4.5.0:
   version "4.7.0"
   resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.0.tgz#f869a41a2593bc36f058f3b46175024491d997b5"
@@ -9929,19 +11216,6 @@ socket.io-parser@~4.2.4:
     "@socket.io/component-emitter" "~3.1.0"
     debug "~4.3.1"
 
-socket.io@^4.4.1:
-  version "4.7.0"
-  resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.7.0.tgz#ae21460d5aef23b152d38de64d7c1798cd2d23fc"
-  integrity sha512-eOpu7oCNiPGBHn9Falg0cAGivp6TpDI3Yt596fbsf+vln8kRLFWxXKrecFrybn/xNYVn9HcdJNAkYToCmTjsyg==
-  dependencies:
-    accepts "~1.3.4"
-    base64id "~2.0.0"
-    cors "~2.8.5"
-    debug "~4.3.2"
-    engine.io "~6.5.0"
-    socket.io-adapter "~2.5.2"
-    socket.io-parser "~4.2.4"
-
 socks-proxy-agent@^7.0.0:
   version "7.0.0"
   resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6"
@@ -9990,7 +11264,15 @@ source-list-map@^1.1.1:
   resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
   integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
 
-"source-map-support@^0.5.5", "source-map-support@~0.5.20":
+source-map-support@0.5.13:
+  version "0.5.13"
+  resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
+  integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
+source-map-support@~0.5.20:
   version "0.5.21"
   resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
   integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
@@ -10003,7 +11285,7 @@ source-list-map@^1.1.1:
   resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
   integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
 
-"source-map@^0.6.0", "source-map@^0.6.1":
+"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1":
   version "0.6.1"
   resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
@@ -10061,15 +11343,19 @@ stable@^0.1.8:
   resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
   integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
 
-statuses@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
-  integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
+stack-utils@^2.0.3:
+  version "2.0.6"
+  resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
+  integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
+  dependencies:
+    escape-string-regexp "^2.0.0"
 
-statuses@~1.5.0:
-  version "1.5.0"
-  resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
-  integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
+stop-iteration-iterator@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
+  integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
+  dependencies:
+    internal-slot "^1.0.4"
 
 stream-browserify@^3.0.0:
   version "3.0.0"
@@ -10105,20 +11391,19 @@ stream-splicer@^2.0.0:
     inherits "^2.0.1"
     readable-stream "^2.0.2"
 
-streamroller@^3.1.5:
-  version "3.1.5"
-  resolved "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz#1263182329a45def1ffaef58d31b15d13d2ee7ff"
-  integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==
-  dependencies:
-    date-format "^4.0.14"
-    debug "^4.3.4"
-    fs-extra "^8.1.0"
-
 strict-uri-encode@^1.0.0:
   version "1.1.0"
   resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
   integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
 
+string-length@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+  integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
+  dependencies:
+    char-regex "^1.0.2"
+    strip-ansi "^6.0.0"
+
 "string-width-cjs@string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", "string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.3":
   version "4.2.3"
   resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -10151,7 +11436,7 @@ string.prototype.matchall@^4.0.8:
     regexp.prototype.flags "^1.4.3"
     side-channel "^1.0.4"
 
-"string.prototype.trim@^1.2.1", "string.prototype.trim@^1.2.7":
+string.prototype.trim@^1.2.7:
   version "1.2.7"
   resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533"
   integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==
@@ -10204,13 +11489,6 @@ string_decoder@~1.1.1:
   dependencies:
     ansi-regex "^5.0.1"
 
-strip-ansi@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
-  integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
-  dependencies:
-    ansi-regex "^2.0.0"
-
 strip-ansi@^7.0.1:
   version "7.1.0"
   resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -10218,6 +11496,11 @@ strip-ansi@^7.0.1:
   dependencies:
     ansi-regex "^6.0.1"
 
+strip-bom@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+  integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
 strip-comments@^2.0.1:
   version "2.0.1"
   resolved "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
@@ -10245,6 +11528,13 @@ strip-final-newline@^3.0.0:
   resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
   integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
 
+strip-indent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+  integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+  dependencies:
+    min-indent "^1.0.0"
+
 strip-indent@^4.0.0:
   version "4.0.0"
   resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853"
@@ -10277,19 +11567,19 @@ style-loader@^3.3.2:
   resolved "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff"
   integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==
 
-style-to-js@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.1.tgz#417786986cda61d4525c80aed9d1123a6a7af9b8"
-  integrity sha512-RJ18Z9t2B02sYhZtfWKQq5uplVctgvjTfLWT7+Eb1zjUjIrWzX5SdlkwLGQozrqarTmEzJJ/YmdNJCUNI47elg==
+style-to-js@1.1.9:
+  version "1.1.9"
+  resolved "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.9.tgz#5bdc23ba7624016094a19d6ea90fa3f98bee34c4"
+  integrity sha512-6bkwhOlPOx+wKiHVlPTHjUqM4zDKv9pyccehB8zetZL0hhQ7MVp7UEWUsohjiMdxwhSsEdjMrEve+8qzUVmY4w==
   dependencies:
-    style-to-object "0.3.0"
+    style-to-object "1.0.4"
 
-style-to-object@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46"
-  integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==
+style-to-object@1.0.4:
+  version "1.0.4"
+  resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.4.tgz#496fded508ce520eca13e738e8af33b8b5af98f2"
+  integrity sha512-KyNO6mfijxSnypdvEjeXlhvbGPSh0l1zBJp80n+ncBQvrEbSwBHwZCpo0xz6Q4AKSPfXowWwypCBAUAdfz3rFQ==
   dependencies:
-    inline-style-parser "0.1.1"
+    inline-style-parser "0.2.2"
 
 styled-components@^5.2.1:
   version "5.3.11"
@@ -10335,11 +11625,6 @@ subarg@^1.0.0:
   dependencies:
     minimist "^1.1.0"
 
-supports-color@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-  integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
-
 "supports-color@^5.3.0", "supports-color@^5.5.0":
   version "5.5.0"
   resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -10409,7 +11694,7 @@ svgo-loader@^2.2.0:
     js-yaml "^3.13.1"
     loader-utils "^1.0.3"
 
-"svgo@^2.7.0", "svgo@^2.8.0":
+svgo@^2.7.0:
   version "2.8.0"
   resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
   integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
@@ -10439,6 +11724,11 @@ svgpath@^2.1.5:
   resolved "https://registry.npmjs.org/svgpath/-/svgpath-2.6.0.tgz#5b160ef3d742b7dfd2d721bf90588d3450d7a90d"
   integrity sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==
 
+symbol-tree@^3.2.4:
+  version "3.2.4"
+  resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+  integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+
 syntax-error@^1.1.1:
   version "1.4.0"
   resolved "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c"
@@ -10489,15 +11779,6 @@ tempfile@^2.0.0:
     temp-dir "^1.0.0"
     uuid "^3.0.1"
 
-tempusdominus-core@^5.19.3:
-  version "5.19.3"
-  resolved "https://registry.npmjs.org/tempusdominus-core/-/tempusdominus-core-5.19.3.tgz#7dba3e9d40f9d9753b92361619532425813c40b8"
-  integrity sha512-WXBVXcBG/hErB6u9gdUs+vzANvCU1kd1ykzL4kolPB3h1OEv20OKUW5qz1iynxyqRFPa1NWY9gwRu5d+MjXEuQ==
-  dependencies:
-    jquery "^3.6.0"
-    moment "~2.29.2"
-    moment-timezone "^0.5.34"
-
 "terser-webpack-plugin@^5.1.1", "terser-webpack-plugin@^5.3.7":
   version "5.3.9"
   resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1"
@@ -10519,12 +11800,14 @@ terser@^5.16.8:
     commander "^2.20.0"
     source-map-support "~0.5.20"
 
-text-segmentation@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943"
-  integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==
+test-exclude@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+  integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
   dependencies:
-    utrie "^1.0.2"
+    "@istanbuljs/schema" "^0.1.2"
+    glob "^7.1.4"
+    minimatch "^3.0.4"
 
 text-table@^0.2.0:
   version "0.2.0"
@@ -10561,23 +11844,16 @@ tiny-warning@^1.0.2:
   resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
   integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
 
-tmp@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
-  integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
-  dependencies:
-    rimraf "^3.0.0"
+tmpl@1.0.5:
+  version "1.0.5"
+  resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+  integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
 
 to-buffer@^1.1.1:
   version "1.1.1"
   resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
   integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
 
-to-fast-properties@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
-  integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==
-
 to-fast-properties@^2.0.0:
   version "2.0.0"
   resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
@@ -10590,11 +11866,6 @@ to-regex-range@^5.0.1:
   dependencies:
     is-number "^7.0.0"
 
-toidentifier@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
-  integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
-
 token-types@^4.1.1:
   version "4.2.1"
   resolved "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz#0f897f03665846982806e138977dbe72d44df753"
@@ -10608,6 +11879,23 @@ totalist@^1.0.0:
   resolved "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
   integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==
 
+tough-cookie@^4.1.2:
+  version "4.1.3"
+  resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
+  integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
+  dependencies:
+    psl "^1.1.33"
+    punycode "^2.1.1"
+    universalify "^0.2.0"
+    url-parse "^1.5.3"
+
+tr46@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
+  integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
+  dependencies:
+    punycode "^2.1.1"
+
 trim-newlines@^4.0.2:
   version "4.1.1"
   resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125"
@@ -10620,11 +11908,6 @@ trim-repeated@^1.0.0:
   dependencies:
     escape-string-regexp "^1.0.2"
 
-trim-right@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
-  integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==
-
 tslib@2.3.1:
   version "2.3.1"
   resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
@@ -10635,6 +11918,11 @@ tslib@^1.8.1:
   resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
   integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
 
+tslib@^2.0.3:
+  version "2.6.2"
+  resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+  integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+
 tslib@^2.4.0:
   version "2.5.3"
   resolved "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913"
@@ -10691,28 +11979,55 @@ tunnel-agent@^0.6.0:
   dependencies:
     prelude-ls "^1.2.1"
 
-type-fest@^0.11.0:
-  version "0.11.0"
-  resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
-  integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
+type-detect@4.0.8:
+  version "4.0.8"
+  resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+  integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
 
 type-fest@^0.20.2:
   version "0.20.2"
   resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
   integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
 
+type-fest@^0.21.3:
+  version "0.21.3"
+  resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+  integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
 "type-fest@^1.0.1", "type-fest@^1.2.1", "type-fest@^1.2.2":
   version "1.4.0"
   resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
   integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
 
-type-is@~1.6.18:
-  version "1.6.18"
-  resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
-  integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+typed-array-buffer@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
+  integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.2.1"
+    is-typed-array "^1.1.10"
+
+typed-array-byte-length@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0"
+  integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==
+  dependencies:
+    call-bind "^1.0.2"
+    for-each "^0.3.3"
+    has-proto "^1.0.1"
+    is-typed-array "^1.1.10"
+
+typed-array-byte-offset@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b"
+  integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==
   dependencies:
-    media-typer "0.3.0"
-    mime-types "~2.1.24"
+    available-typed-arrays "^1.0.5"
+    call-bind "^1.0.2"
+    for-each "^0.3.3"
+    has-proto "^1.0.1"
+    is-typed-array "^1.1.10"
 
 typed-array-length@^1.0.4:
   version "1.0.4"
@@ -10733,11 +12048,6 @@ typescript@^3.2.2:
   resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"
   integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==
 
-ua-parser-js@^0.7.30:
-  version "0.7.35"
-  resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307"
-  integrity sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==
-
 uglify-js@^3.1.4:
   version "3.17.4"
   resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
@@ -10824,15 +12134,10 @@ unique-slug@^4.0.0:
   dependencies:
     imurmurhash "^0.1.4"
 
-universalify@^0.1.0:
-  version "0.1.2"
-  resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
-  integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-
-"unpipe@1.0.0", "unpipe@~1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
-  integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
+universalify@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
+  integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
 
 update-browserslist-db@^1.0.11:
   version "1.0.11"
@@ -10842,6 +12147,14 @@ update-browserslist-db@^1.0.11:
     escalade "^3.1.1"
     picocolors "^1.0.0"
 
+update-browserslist-db@^1.0.13:
+  version "1.0.13"
+  resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+  integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+  dependencies:
+    escalade "^3.1.1"
+    picocolors "^1.0.0"
+
 uplot-react@^1.1.4:
   version "1.1.4"
   resolved "https://registry.npmjs.org/uplot-react/-/uplot-react-1.1.4.tgz#02b9918a199da9983fc0d375fb44e443749e2ac0"
@@ -10887,6 +12200,14 @@ url-parse-lax@^3.0.0:
   dependencies:
     prepend-http "^2.0.0"
 
+url-parse@^1.5.3:
+  version "1.5.10"
+  resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
+  integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
+  dependencies:
+    querystringify "^2.1.1"
+    requires-port "^1.0.0"
+
 url-to-options@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
@@ -10905,6 +12226,11 @@ use-isomorphic-layout-effect@^1.1.2:
   resolved "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb"
   integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==
 
+"use-sync-external-store@1.2.0", "use-sync-external-store@^1.2.0":
+  version "1.2.0"
+  resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
+  integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
+
 "util-deprecate@^1.0.1", "util-deprecate@^1.0.2", "util-deprecate@~1.0.1":
   version "1.0.2"
   resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -10928,23 +12254,20 @@ util@~0.12.0:
     is-typed-array "^1.1.3"
     which-typed-array "^1.1.2"
 
-utils-merge@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
-  integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
-
-utrie@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645"
-  integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==
-  dependencies:
-    base64-arraybuffer "^1.0.2"
-
 uuid@^3.0.1:
   version "3.4.0"
   resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
   integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
 
+v8-to-istanbul@^9.0.1:
+  version "9.1.0"
+  resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265"
+  integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==
+  dependencies:
+    "@jridgewell/trace-mapping" "^0.3.12"
+    "@types/istanbul-lib-coverage" "^2.0.1"
+    convert-source-map "^1.6.0"
+
 valid-filename@^2.0.1:
   version "2.0.1"
   resolved "https://registry.npmjs.org/valid-filename/-/valid-filename-2.0.1.tgz#0768d6f364b1ed3bdf68f0d15abffb0d9d6cecaf"
@@ -10974,20 +12297,24 @@ varstream@^0.3.2:
   dependencies:
     readable-stream "^1.0.33"
 
-vary@^1:
-  version "1.1.2"
-  resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
-  integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-
 vm-browserify@^1.0.0:
   version "1.1.2"
   resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
   integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
 
-void-elements@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
-  integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==
+w3c-xmlserializer@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073"
+  integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==
+  dependencies:
+    xml-name-validator "^4.0.0"
+
+walker@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+  integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
+  dependencies:
+    makeerror "1.0.12"
 
 watchpack@^2.4.0:
   version "2.4.0"
@@ -11006,6 +12333,11 @@ webfonts-loader@^8.0.1:
     glob "^7.1.6"
     loader-utils "^2.0.0"
 
+webidl-conversions@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
+  integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
+
 webpack-bundle-analyzer@^4.8.0:
   version "4.9.0"
   resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d"
@@ -11040,13 +12372,6 @@ webpack-cli@^4.5.0:
     rechoir "^0.7.0"
     webpack-merge "^5.7.3"
 
-webpack-merge@^4.1.5:
-  version "4.2.2"
-  resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
-  integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
-  dependencies:
-    lodash "^4.17.15"
-
 webpack-merge@^5.7.3:
   version "5.9.0"
   resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826"
@@ -11068,10 +12393,10 @@ webpack-sources@^3.2.3:
   resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
   integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
 
-webpack@^5.76.3:
-  version "5.88.0"
-  resolved "https://registry.npmjs.org/webpack/-/webpack-5.88.0.tgz#a07aa2f8e7a64a8f1cec0c6c2e180e3cb34440c8"
-  integrity sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw==
+webpack@^5.88.2:
+  version "5.88.2"
+  resolved "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e"
+  integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==
   dependencies:
     "@types/eslint-scope" "^3.7.3"
     "@types/estree" "^1.0.0"
@@ -11098,6 +12423,26 @@ webpack@^5.76.3:
     watchpack "^2.4.0"
     webpack-sources "^3.2.3"
 
+whatwg-encoding@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
+  integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
+  dependencies:
+    iconv-lite "0.6.3"
+
+whatwg-mimetype@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
+  integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
+
+whatwg-url@^11.0.0:
+  version "11.0.0"
+  resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
+  integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==
+  dependencies:
+    tr46 "^3.0.0"
+    webidl-conversions "^7.0.0"
+
 which-boxed-primitive@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
@@ -11109,6 +12454,45 @@ which-boxed-primitive@^1.0.2:
     is-string "^1.0.5"
     is-symbol "^1.0.3"
 
+which-builtin-type@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b"
+  integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==
+  dependencies:
+    function.prototype.name "^1.1.5"
+    has-tostringtag "^1.0.0"
+    is-async-function "^2.0.0"
+    is-date-object "^1.0.5"
+    is-finalizationregistry "^1.0.2"
+    is-generator-function "^1.0.10"
+    is-regex "^1.1.4"
+    is-weakref "^1.0.2"
+    isarray "^2.0.5"
+    which-boxed-primitive "^1.0.2"
+    which-collection "^1.0.1"
+    which-typed-array "^1.1.9"
+
+which-collection@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
+  integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==
+  dependencies:
+    is-map "^2.0.1"
+    is-set "^2.0.1"
+    is-weakmap "^2.0.1"
+    is-weakset "^2.0.1"
+
+which-typed-array@^1.1.10:
+  version "1.1.11"
+  resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a"
+  integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==
+  dependencies:
+    available-typed-arrays "^1.0.5"
+    call-bind "^1.0.2"
+    for-each "^0.3.3"
+    gopd "^1.0.1"
+    has-tostringtag "^1.0.0"
+
 "which-typed-array@^1.1.2", "which-typed-array@^1.1.9":
   version "1.1.9"
   resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
@@ -11121,7 +12505,7 @@ which-boxed-primitive@^1.0.2:
     has-tostringtag "^1.0.0"
     is-typed-array "^1.1.10"
 
-"which@^1.2.1", "which@^1.2.9":
+which@^1.2.9:
   version "1.3.1"
   resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
   integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -11187,16 +12571,39 @@ wrappy@1:
   resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
   integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
 
+write-file-atomic@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+  integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
+  dependencies:
+    imurmurhash "^0.1.4"
+    signal-exit "^3.0.7"
+
 ws@^7.3.1:
   version "7.5.9"
   resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
   integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
 
+ws@^8.11.0:
+  version "8.13.0"
+  resolved "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
+  integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
+
 ws@~8.11.0:
   version "8.11.0"
   resolved "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
   integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
 
+xml-name-validator@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
+  integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+
+xmlchars@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+  integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
 xmlhttprequest-ssl@~2.0.0:
   version "2.0.0"
   resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67"
@@ -11252,23 +12659,28 @@ yallist@^4.0.0:
   resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
   integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
 
-"yargs-parser@^20.2.2", "yargs-parser@^20.2.9":
+yargs-parser@^20.2.9:
   version "20.2.9"
   resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
   integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
 
-yargs@^16.1.1:
-  version "16.2.0"
-  resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
-  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+yargs-parser@^21.1.1:
+  version "21.1.1"
+  resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+  integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+
+yargs@^17.3.1:
+  version "17.7.2"
+  resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+  integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
   dependencies:
-    cliui "^7.0.2"
+    cliui "^8.0.1"
     escalade "^3.1.1"
     get-caller-file "^2.0.5"
     require-directory "^2.1.1"
-    string-width "^4.2.0"
+    string-width "^4.2.3"
     y18n "^5.0.5"
-    yargs-parser "^20.2.2"
+    yargs-parser "^21.1.1"
 
 yarn-audit-html@4.0.0:
   version "4.0.0"
@@ -11292,17 +12704,20 @@ yocto-queue@^0.1.0:
   resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
   integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
 
+zustand@^4.4.1:
+  version "4.4.1"
+  resolved "https://registry.npmjs.org/zustand/-/zustand-4.4.1.tgz#0cd3a3e4756f21811bd956418fdc686877e8b3b0"
+  integrity sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==
+  dependencies:
+    use-sync-external-store "1.2.0"
+
 "react-data-grid@https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8":
   version "7.0.0-beta.14"
   resolved "https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8"
   dependencies:
     "clsx" "^1.1.1"
-"webcabin-docker@https://github.com/pgadmin-org/wcdocker#460fc6d90ba170bb177faaa8277f5fbb8279522a":
-  version "2.2.5"
-  resolved "https://github.com/pgadmin-org/wcdocker#460fc6d90ba170bb177faaa8277f5fbb8279522a"
+"react-data-grid@https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8":
+  version "7.0.0-beta.14"
+  resolved "https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8"
   dependencies:
-    "@fortawesome/fontawesome-free" "^5.14.0"
-    "FileSaver" "^0.10.0"
-    "bootstrap" "^4.3.1"
-    "jquery" "^3.3.1"
-    "jquery-contextmenu" "^2.6.4"
+    "clsx" "^1.1.1"
diff --git a/pkgs/tools/admin/procs/default.nix b/pkgs/tools/admin/procs/default.nix
index b9c2a463909be..c72c498f7cb22 100644
--- a/pkgs/tools/admin/procs/default.nix
+++ b/pkgs/tools/admin/procs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.14.0";
+  version = "0.14.4";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = "procs";
     rev = "v${version}";
-    hash = "sha256-DoH9XxPRKGd+tex8MdbtkhM+V8C1wDMv/GZcB4aMCPc=";
+    hash = "sha256-Gx3HRGWi+t/wT1WrbuHXVyX+cP+JvZV8lBun1Qs8Xys=";
   };
 
-  cargoHash = "sha256-B+LpUErsvtLYn+Xvq4KNBpLR9WYe38yMWHUNsd9jIs8=";
+  cargoHash = "sha256-0eLOAZnHbnvT8qgSfWO/RKXIdRr5wwfUQ9YQ77I6okQ=";
 
   nativeBuildInputs = [ installShellFiles ]
     ++ lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ];
diff --git a/pkgs/tools/admin/pulumi-bin/data.nix b/pkgs/tools/admin/pulumi-bin/data.nix
index f80b5f1f134a1..00cd07621ae98 100644
--- a/pkgs/tools/admin/pulumi-bin/data.nix
+++ b/pkgs/tools/admin/pulumi-bin/data.nix
@@ -1,116 +1,116 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.88.0";
+  version = "3.95.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.88.0-linux-x64.tar.gz";
-        sha256 = "040rcmrrc8sgxsx1isgbz5pmd67kvks6sqyr7m27f7ccdi0kri8s";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.95.0-linux-x64.tar.gz";
+        sha256 = "1ig942izr0bjjnmccjdrna1fy1245s0l5mbr80xbxm5lima9z66p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.1-linux-amd64.tar.gz";
-        sha256 = "11dgpi0bg975iyf0xa8r9vyvs4r3nj7nn8mp36w9b5m7128mpkwp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.2-linux-amd64.tar.gz";
+        sha256 = "1ppfs7cnhns4lqxj7cs87f78hcvy73r32fa7wxcybl5wnd73g5c6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.2.0-linux-amd64.tar.gz";
-        sha256 = "0l1qn85iq4sq1wg0c5ivwcv2i35w97nkmq6sanzvvsdjy4cx2zfr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.3.1-linux-amd64.tar.gz";
+        sha256 = "0pf1pka8pq4cizlnf5hm5ji1hf5nchkj21mwpi2cxdk2w4ghw0ds";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.44.0-linux-amd64.tar.gz";
-        sha256 = "0nbrfqh79hp17mp6f9yb9j6dxfa6n0xf17ks8rkbivzbxq9kqijv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.45.0-linux-amd64.tar.gz";
+        sha256 = "0cp4f5syq1jbkvw1gjxyfwf6kv1qkzb68x7gqm2xdb9j4glx4wab";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.1.0-linux-amd64.tar.gz";
-        sha256 = "04gmbpq1vjw6jbr0d6032hx923abck9czjkljfj2ksz2bagall7q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.5.0-linux-amd64.tar.gz";
+        sha256 = "0gha4nm5gg4s3hqy7whdywkd0mpndmgjq9xmswqzvapjj7hjcnh6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.0.0-linux-amd64.tar.gz";
-        sha256 = "0vyhmdyln0cpcf1fgc0v641c78a66dzx97i7xq6isspl6zx9njn5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "05mhvif4minkr5mi0yjghsd9ffx9wyb5chjp0kz3256d4clld6ai";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.4.1-linux-amd64.tar.gz";
-        sha256 = "1b88zmn0qnrjvbvllr8hxs1f8pyvyc79mq0knvvpcb2akl48zm07";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.13.0-linux-amd64.tar.gz";
+        sha256 = "1p4k8fx6ix8y7bb8mjvk0avq5r7lam3yywncb05vxiw5qwqls9s0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.52.0-linux-amd64.tar.gz";
-        sha256 = "0dm7qid20yq490yfls0qg8c9cwxm30qgvg581lwk312pk5zc7l6b";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.46.0-linux-amd64.tar.gz";
+        sha256 = "0dl60nrgilg9ccn28dnyrv0lw6sqrcy26r4kgcbdqkw0f15isjhv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.42.0-linux-amd64.tar.gz";
-        sha256 = "1hcl3arsi1crcczqxkcak721n2yzq75pzrxk32q9hfm78lifz2q9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.14.0-linux-amd64.tar.gz";
+        sha256 = "029xymc6ynb7aq5wdkvksgqhjl9aix5j3rn8dfzlbmrmmz0xyvxr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.13.0-linux-amd64.tar.gz";
-        sha256 = "1hz2xavx3h19dgq8j7x9wfa3p93ki60z6vrkgxgj0x2ws606wqb3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.58.0-linux-amd64.tar.gz";
+        sha256 = "17q3186a3awbh0v0rxby4a8qdl49zbbc46a1fjaqhsg14sizryfl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.12.0-linux-amd64.tar.gz";
-        sha256 = "06k14jcz2z9p28wllq9kaxmqrhx0dxa2pq1zjbgbiym4w2zi4bbi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.16.0-linux-amd64.tar.gz";
+        sha256 = "05k325y99wcg3584bbgkrh20zq46y6hi1sk2bi0jm6njvwyb786w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.9.0-linux-amd64.tar.gz";
-        sha256 = "0drdv78f7xx3fx8xx6iialcy3nkq9z1lkdfj1fbhzaxpa6bmzyjh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.0-linux-amd64.tar.gz";
+        sha256 = "1v8x27yi6mqj8sxwwl7jvw5960pv98y4lkyj9gyx3260a3hsgav2";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.23.0-linux-amd64.tar.gz";
         sha256 = "0bsbfsc7wxsjyqyz5klxn91hd1lwini4pbpm0lw5pf78af7z8v0z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.22.0-linux-amd64.tar.gz";
-        sha256 = "059mh2p2f8wdkgqkcf7nvdwibb5kc0c2924w88z5f3kmchr3mfr1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.24.0-linux-amd64.tar.gz";
+        sha256 = "1j7zkyjn7v98l5m9a3cgpy5ckx5y4kirda8i3im58dbyripwzppi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.4.3-linux-amd64.tar.gz";
-        sha256 = "1qxlny0d97zaghikynpx2wlk5qjwgfvkbfjwfv13a3c2nqbk5q7c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.0-linux-amd64.tar.gz";
+        sha256 = "0v4bg7iz6fnvca59z74ymqilkra4mldbs1xa4w1ijw4jvbnyq3vr";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-amd64.tar.gz";
         sha256 = "0hnardid0kbzy65dmn7vz8ddy5hq78nf2871zz6srf2hfyiv7qa4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.3.0-linux-amd64.tar.gz";
-        sha256 = "0bkgaskq84vac20dbw81xc3qnkb6vginyd2qfdd0akjpakx94678";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.4.1-linux-amd64.tar.gz";
+        sha256 = "1l3pqshzxscv3pxp5wjyrc83irkhh6g7hbdi51x2jhdywjz5r55m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.67.0-linux-amd64.tar.gz";
-        sha256 = "148sg0jsm05qqgi10m8y4b7ib1miyvs1346h36mg1pf8hykg3psb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.2.1-linux-amd64.tar.gz";
+        sha256 = "0llybkwlzzd8ylxcch4hns3xbba715iyf1mrfy9vnn60kfn2jprc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.20.0-linux-amd64.tar.gz";
-        sha256 = "1papw5a9i4s0iw21f52p45gy6s7rlpb53drk5rkaracw8jm5522j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.22.0-linux-amd64.tar.gz";
+        sha256 = "0hnaanqg991xy4jmk09rcd5adzx760707133yaax0nx6r1g0lbdc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.4.0-linux-amd64.tar.gz";
-        sha256 = "1ykcz0idzfh259sxspcqcsy6rgp57jv7zh84xv1r42d5c52ni02v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.6.0-linux-amd64.tar.gz";
+        sha256 = "10cxlavxvb98207plgrvmf8c8sgp5w2hpnpcj493i033am07g7yc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.31.1-linux-amd64.tar.gz";
-        sha256 = "1xq92rsk7bimkr52c13mjypd0ygs7qc9ijyi2ghnf0585d1z5bk5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-amd64.tar.gz";
+        sha256 = "1zra1ck64gs4nwqf62ksfmpbx24lxw6vsgi47j4v8q051m89fgq3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.16.1-linux-amd64.tar.gz";
-        sha256 = "00vvb17q05r5yn2i7yv3163gxvnakxkjl6a7n1dyb8yzr39ic7ff";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.16.2-linux-amd64.tar.gz";
+        sha256 = "0f5sii66fffq5qrri8r1a3xzskvj9yx6chr7j2s34kgc11dqrbxc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.3.0-linux-amd64.tar.gz";
-        sha256 = "1vp9p59qwlpr79bkr4zqhysg6rpiydl029r47fkn53wr43w3x0ga";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.5-linux-amd64.tar.gz";
+        sha256 = "13nrdwka7pxyqjy5hjc3678sfayfs11hwqfj7r4apml8sws0g3xj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.8.0-linux-amd64.tar.gz";
-        sha256 = "04a29q7irg0rvlbgin1q0s84db86sn5d0hfi1cdlh388jq3fri7c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.9.0-linux-amd64.tar.gz";
+        sha256 = "10a0kr20ai5qhhxsr5210ag5ijkzxjihm7afy2mzsslqv4zdc953";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.4.1-linux-amd64.tar.gz";
-        sha256 = "02ma55cxc8hhcc9lybaz4dn7842jmq5cf01wyjd1xnrchzcska1q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.0-linux-amd64.tar.gz";
+        sha256 = "1r4cvln9c9i2xvj8r6bb6l2ccy6457vhdj9ra35yq5zckwf0dri0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-amd64.tar.gz";
-        sha256 = "0lj01hyjyq3qazkryvvxkx6nwai3bac9shqxb6hcqv4pfdjzzxhr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.0-linux-amd64.tar.gz";
+        sha256 = "0nl5xyj4jij500vm6na653s8savr2nm0hzx2qn1brgfpxx9j4pvj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.13.3-linux-amd64.tar.gz";
-        sha256 = "0qqfb0gxqz6rxi5m2q8m2k6s8yfdl9x97p5f3cfchmi2zvwyqysy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.14.0-linux-amd64.tar.gz";
+        sha256 = "1dx4riyz1p8dz3biqqxkg6zv6y0jzikc20lk3wj7q2ifxy7rigia";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.10.0-linux-amd64.tar.gz";
@@ -121,40 +121,40 @@
         sha256 = "1v59k0m4rrad5vbd2x4znb985cbwj9py6ki60x1skq704pmcli5g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.36.0-linux-amd64.tar.gz";
-        sha256 = "0sf2bxlqv98xyhq213gfkh3cd59mbgc21b07kii1j0465xl78jmp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.41.0-linux-amd64.tar.gz";
+        sha256 = "10m3mqqi1gr5n7phsjyrdpy6vd9f3qri7vryj10p6fp7my9sgr3q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.55.0-linux-amd64.tar.gz";
-        sha256 = "156h4b0a6af02z2xad9kv3zipvnh4l98lmb38a5mp65f4pm5yzd3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.60.0-linux-amd64.tar.gz";
+        sha256 = "00mml1dpyjc683yrp7g7w49pvjyd5mdm6bls26q9rbirgblajcnf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.19.0-linux-amd64.tar.gz";
-        sha256 = "1knsb0ha7xbgvlna67nhxmmrr6rw3h52va3dh4ra47b7r8ii7dca";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.0-linux-amd64.tar.gz";
+        sha256 = "0nssdk2zp42ssnkgq87mw4rk1lzlzgi3adr4l5g9ipmqjfphw3bx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.2-linux-amd64.tar.gz";
-        sha256 = "06gvx51nl93rj244yximp6059yiyxh4jcdqqcrjic8r7wabzsiiw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.3-linux-amd64.tar.gz";
+        sha256 = "148ifpnjh8jm4x9f9snlzfq1z7f2z0c630bhhx6a86ankaavyr00";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.0-linux-amd64.tar.gz";
-        sha256 = "1mjnfpkk8w13m5p2rkymmyd1nw0sdvg5izjfxpfs71nvy1xp9yxf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.1-linux-amd64.tar.gz";
+        sha256 = "0b6nd5gk0d2vg6z0ql87zjyvl880h390g767d9vggwzlwljxzhsm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.15.1-linux-amd64.tar.gz";
-        sha256 = "1kffzf37gprgh82iyvir2ls5s11bgj5mhl8jww8symlr15pxlhnm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.17.0-linux-amd64.tar.gz";
+        sha256 = "0lyx8wjzjhh38lzfdh6d4qns40cj14nrjmrsdiwrfk6h60s0bh1c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.6.0-linux-amd64.tar.gz";
-        sha256 = "0rakxw8h2121p1sdvqvp3y4bzzjs8ppsx58iqp0qv57k3ihdww85";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.6.2-linux-amd64.tar.gz";
+        sha256 = "044w1qwjadrz0ylr00qnwppvq6mc8c8z759b0wfn69a2r25az19f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.7.0-linux-amd64.tar.gz";
-        sha256 = "0qggmhvy0ghgynvaaj6yi7gg3k3gry60japmr987iwhm1knvgndq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.0-linux-amd64.tar.gz";
+        sha256 = "1dp9vldrs2b0ml542rn0jna0rbz2hxx7il86bliamj5fwr89k49w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.1-linux-amd64.tar.gz";
-        sha256 = "1b1lx6c4lyphb8qlhk03gw81di11c77l5c4kj6a0jpac5zwksynr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.4-linux-amd64.tar.gz";
+        sha256 = "0xn8vw19dp6hwm8w94p3lnmpy1zhdczxjphjy6m79pv1mszc153f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-amd64.tar.gz";
@@ -163,112 +163,112 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.88.0-darwin-x64.tar.gz";
-        sha256 = "0rfknh9v5r8y3zgh4m035qn0ixycv933qjzdbkkfa8fp1zq9wn3q";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.95.0-darwin-x64.tar.gz";
+        sha256 = "13lb757py7ls6p4l2x5s20xy5mp21a10y8cdnbfsr9l03kz50yhi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.1-darwin-amd64.tar.gz";
-        sha256 = "1jp28j1xzn0a5dn4ysa7cp9x7l9fzmbcylasmm2a5rdvvq627s1l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.2-darwin-amd64.tar.gz";
+        sha256 = "1rvrln32jndp1yq05ybqim10m2wh2g9rwa5q5brxsrzn1gfa41jx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.2.0-darwin-amd64.tar.gz";
-        sha256 = "0f0yjarvr9rhgmz818663hmjjr8d3bihaxrxrfdfz3i5fizb7v9r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.3.1-darwin-amd64.tar.gz";
+        sha256 = "0i4kjngs8ly5cxikxc1jz2lcma31sx87vbdbny2j7xxz3fqsyi19";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.44.0-darwin-amd64.tar.gz";
-        sha256 = "1mb8xr16h156yj10mzfsprflbv72ldk9ap9w2cw40l8fvbq33lm4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.45.0-darwin-amd64.tar.gz";
+        sha256 = "0ld394yzmhmagn2mb1ds7mg30v283f1q1xg67r1bs3wmf4zkxi8l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.1.0-darwin-amd64.tar.gz";
-        sha256 = "1pqn2ymbf0i20micxdk3bh436231b58m0l2iabkjsashhf37qlwk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.5.0-darwin-amd64.tar.gz";
+        sha256 = "1ci55mz72y68wwcih0sx500n3pmrkq798janhc7nksyn8qdj14ik";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.0.0-darwin-amd64.tar.gz";
-        sha256 = "04imkdrj388nk88r734f0p0a6z1hffzmplwgmx55kfwqz3zpz4y5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "16yqva40xq8xfqjnxx7r9kx3r6nrxsqivqpm056hpnad6bjy5d7s";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.4.1-darwin-amd64.tar.gz";
-        sha256 = "0qa5ynrsbw1fca9nlf403r2h4k683w3d3yp902wz2bjlsx6m4i0f";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.13.0-darwin-amd64.tar.gz";
+        sha256 = "1abmbagldr2bv73qz39kpbpyjjwy3c8slikwvak9mmzxjpk2lvay";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.52.0-darwin-amd64.tar.gz";
-        sha256 = "0x4zcfbp7vy349q1cj5phlikfx95n9fcmq74h9ihdgr0xbavbbn2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.46.0-darwin-amd64.tar.gz";
+        sha256 = "0gr4is4k9hzjncg5qvy1n4j4hzvmn8f37f119bdgima1s6r9aiz4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.42.0-darwin-amd64.tar.gz";
-        sha256 = "1x2ldnkcf9ygn9cymvr1ylpr6wpkymvwz3n1iksq0a80n8fg8i6g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.14.0-darwin-amd64.tar.gz";
+        sha256 = "16zc13z31p92775v3vsn6j6pmz1wcjqb8rhzxpnr03zbqviws7mi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.13.0-darwin-amd64.tar.gz";
-        sha256 = "0rzwkwrjm5p59maz371ndf9mcsdlz98n756k125wylxbp5xygcyv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.58.0-darwin-amd64.tar.gz";
+        sha256 = "06nr217ymzfkr6l4fgwj9fjp724v08lyvxap7xw56mq9z0bf1vgk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.12.0-darwin-amd64.tar.gz";
-        sha256 = "014hi8zxrnf30q4nfxxpc19wf8ip8487h2wspl1rwa6mpwfn34ss";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.16.0-darwin-amd64.tar.gz";
+        sha256 = "1v3axsc678s7w0pkpc4b8l32rl2yb0jcdwba6i8v9jlawg4rv4z0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.9.0-darwin-amd64.tar.gz";
-        sha256 = "090iifz0psm9iqh4qwvfsl7nrk5v7xqiryqnhibg5m643h1vinqg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.0-darwin-amd64.tar.gz";
+        sha256 = "07iwdpvxqf3vkd1l1daazhs3agbbq067bcyp0vr2jqapz355yjad";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.23.0-darwin-amd64.tar.gz";
         sha256 = "1qyb6v3bxg7hsr5viwpc4nzdgq63frjqgxs7kqyg1pp40rcmh2bm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.22.0-darwin-amd64.tar.gz";
-        sha256 = "1zqfzpc4647x965l5phqz67cq7hbnmyc20acmgb4xvax4hif8yk7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.24.0-darwin-amd64.tar.gz";
+        sha256 = "0hm1jx48i6315xykn5fx3zw1m4cp5blizjmvcidrs5x1j1fwpcl4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.4.3-darwin-amd64.tar.gz";
-        sha256 = "1hz46nak73svzc4mppdw4n34szj9lncx102lhrknq89mrx5b1wlb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.0-darwin-amd64.tar.gz";
+        sha256 = "0arzbimf0rwn6j41ia6fl90xnkz7yyhc3lnnzr51sw4g8y3jihj9";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-amd64.tar.gz";
         sha256 = "1m5lh59h7nck1flzxs9m4n0ag0klk3jmnpf7hc509vffxs89xnjq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.3.0-darwin-amd64.tar.gz";
-        sha256 = "14gs2xv4sq98d12h2v17l68r083wwbm8dqxs5a0wqd84iss2r7hf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.4.1-darwin-amd64.tar.gz";
+        sha256 = "0xdfxxlfxm44bkljc5c8h3ici7dlkbgbg6z2ns4870p15lhq34n5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.67.0-darwin-amd64.tar.gz";
-        sha256 = "0p30xhj6k46cdy84c7zr4hgdpi3rqvdjqjx8kr8a1ky29569ji4j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.2.1-darwin-amd64.tar.gz";
+        sha256 = "0974a34i4im82ccc4b25l6v3hdvi0hkh2xadhdn765g2bdcr7vh8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.20.0-darwin-amd64.tar.gz";
-        sha256 = "0kxfv7hf1nric2z6cv3c2b36anifbc8xz4z0mg4phx3jhy7xm545";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.22.0-darwin-amd64.tar.gz";
+        sha256 = "1547hc9jdg0j6n66sk5j7iid5m5pvkv8q9j09q9vkcrkj3kkjcvb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.4.0-darwin-amd64.tar.gz";
-        sha256 = "0a3drcvqjnqqrlm55qxb1j5qn404595ywx6rnzqjcjmrhwg2yyh9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.6.0-darwin-amd64.tar.gz";
+        sha256 = "0a03z495j6yy3y5aqbd4515iwm601pzr6is7lq885vcripxvs4x7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.31.1-darwin-amd64.tar.gz";
-        sha256 = "18vqn7cs5l6fyxmplvcmb779sa91ka8vzz40giggdxzsdjjj9dpx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-amd64.tar.gz";
+        sha256 = "0ddd0pgpyywq291r9q8w6bn41r2px595017iihx4n2cnb1c4v6d5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.16.1-darwin-amd64.tar.gz";
-        sha256 = "1mpx6355bvp3dp8w6x9hrrswfid592jzp1srsv0acd4ypzskm8zv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.16.2-darwin-amd64.tar.gz";
+        sha256 = "19zm781g8ii062dp48wf11pdyrddk10c5rf18xk4bpf2prbg5vsi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.3.0-darwin-amd64.tar.gz";
-        sha256 = "07zmhqd2zc2394c3ag5f868as7miv6f1q1l6s7p717gz54d6y6wz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.5-darwin-amd64.tar.gz";
+        sha256 = "1ikshq05lkh39m5z7p72mv3cnd9ji16b09cb5g78zlrdzlgq2086";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.8.0-darwin-amd64.tar.gz";
-        sha256 = "04l1yifmbc59ivglnphwhcx5b889v2jd9bgk10ykmcl7v50gwlqm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.9.0-darwin-amd64.tar.gz";
+        sha256 = "0h177vx31q53xpqrvfdajf4knwchhrz7l605s50v5isqbpgagl5m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.4.1-darwin-amd64.tar.gz";
-        sha256 = "07sav5r6z3xlx953jyv3b3wq7q6nv3sbh44fx753yqfh7ahagpn5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.0-darwin-amd64.tar.gz";
+        sha256 = "1w8q091igjzwlqp9ck23jxh87r5cnsg83jwlxr6ynddlp7w2c6yp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-amd64.tar.gz";
-        sha256 = "0fhhc2k0g8mpxzcgci4jl3m59q3n8w3nka94l0n7r9cvs81099n6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.0-darwin-amd64.tar.gz";
+        sha256 = "0q54fvqlldzy11833nislmlrcrkz25wsyqvkph41qdm0yv39ycx7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.13.3-darwin-amd64.tar.gz";
-        sha256 = "11dh5jnpfiah7w1rg99ympm0fin4b2ld6rixggqxq04lqfqh8i2v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.14.0-darwin-amd64.tar.gz";
+        sha256 = "04pgw5plavn4kvkapky26xx4pgdcf0c27il18g7hmfvnmagfcsiz";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.10.0-darwin-amd64.tar.gz";
@@ -279,40 +279,40 @@
         sha256 = "1jg3qdm331dvnq2igf6q0xd2ld21jnhm0h756pmxszngadfnmcdw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.36.0-darwin-amd64.tar.gz";
-        sha256 = "1h96dih1pi95066kmk4whbds0w0lzal5pyxwwl1prxpr4w8yb6sd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.41.0-darwin-amd64.tar.gz";
+        sha256 = "144rydj53334sj11p55npmgss3kam2lxrm7shrcjvb1v28m8vdnx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.55.0-darwin-amd64.tar.gz";
-        sha256 = "1hyggh10w8zxb6dkva36dl7z1bdb3j9pnrdlapy591c0gbhan0rc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.60.0-darwin-amd64.tar.gz";
+        sha256 = "0yxqhzx5rdy0a7g8q8c1s9w52h1clssnx70pp8900vdfsviwxqvf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.19.0-darwin-amd64.tar.gz";
-        sha256 = "0xgihb099s99qb5bk6wavwm9227z73jgqrysmvjrqkn83kh7942v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.0-darwin-amd64.tar.gz";
+        sha256 = "06cwx6642byqb953g8xa9a3s9jcp8cf6ib12agchkwmpfws5piz1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.2-darwin-amd64.tar.gz";
-        sha256 = "1pm5j9q4kvv70c6paficcfb664df6666mq559zvdklf5ndjpw5z9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.3-darwin-amd64.tar.gz";
+        sha256 = "0mpwjrbayckaapvz8vs2x918ya5a3rk44f3cx1dri18wq82klln7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.0-darwin-amd64.tar.gz";
-        sha256 = "0122mpbgc2d4yhdvm1j45niz07d68drj80hxa3d1sa9pqzyllbky";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.1-darwin-amd64.tar.gz";
+        sha256 = "0aicxgwxs7mp9y88m8am0wl34h6llxj4jzww18alawkvxm1msah8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.15.1-darwin-amd64.tar.gz";
-        sha256 = "0ipfx8x0zq5qxmbivjndqb1ijc2130gnv7ygs7ln5qcnzrhbjx2a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.17.0-darwin-amd64.tar.gz";
+        sha256 = "0pdwgfbvak564n3ic72jzj6nhy04lra1a4a6z5jmknk59d6jvhjw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.6.0-darwin-amd64.tar.gz";
-        sha256 = "0803vk8iy0xf7rbpgq1a0jjcjbn3jwia8hqf2mj696i9iiij2r3x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.6.2-darwin-amd64.tar.gz";
+        sha256 = "19wmv952wn2njbd1ppl1lfzf1f47wf11m4qiiqc3wyd1qc33qsn1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.7.0-darwin-amd64.tar.gz";
-        sha256 = "0f21v5claqq3cbrh809fy8ffv4v4whdjpqb0d6zgrxif2vczm86p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.0-darwin-amd64.tar.gz";
+        sha256 = "18kai9s283hip893867hc65pr0jpgydw0b2gwqdj2zi3mibbm08x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.1-darwin-amd64.tar.gz";
-        sha256 = "01fv7brag4c573408655kq8xcq5r0wgcjrfwn5z9wfpbcqg0blhb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.4-darwin-amd64.tar.gz";
+        sha256 = "104yaqp0s06zdw43kkh5k81yprdyc8r6l0sxcvqdv9rmr6q3j076";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-amd64.tar.gz";
@@ -321,112 +321,112 @@
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.88.0-linux-arm64.tar.gz";
-        sha256 = "1ifmqnai52pyn11w38f8lfk7v8bv0919vpg8c9y8fn7ag5qb9vn4";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.95.0-linux-arm64.tar.gz";
+        sha256 = "0sf96mbqlj4q6lf6xlx6bd4v12byg929m2vx4w7smqdd7w27gsja";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.1-linux-arm64.tar.gz";
-        sha256 = "09n456hm9d3bv7krlkw04wmra55xinb311051cghpyxsrwpv5qid";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.2-linux-arm64.tar.gz";
+        sha256 = "13sng11gimfx237kdkqg41ly66x6ri64ls2wgw4g9jr8r68z3ii5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.2.0-linux-arm64.tar.gz";
-        sha256 = "13v3kmypadvr4c4jfdzd1bnzbsclw4fr016kqd7qv82fg8yf4bln";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.3.1-linux-arm64.tar.gz";
+        sha256 = "0y1i2lwvy0wjvngpjf5rscidrlqb3mhhkhqvj227alz3c4xhf091";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.44.0-linux-arm64.tar.gz";
-        sha256 = "1g2bnrmzs9lyzrz7jn7hn6c1chzvg4bdxvza8kzafqrrynsqpisl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.45.0-linux-arm64.tar.gz";
+        sha256 = "0fas3734vf8ibx36ikgwjr5ky1sprxh7qn95jd43d13ii9a8ic9l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.1.0-linux-arm64.tar.gz";
-        sha256 = "18s2bh3gwg4jby9frdx8z0cldyz1g1sspgdba4mawb6m7p5f6290";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.5.0-linux-arm64.tar.gz";
+        sha256 = "0ahp2aqlp9j7hr6c8rxzwrabyn1cfxqcncfax4sbj1prqw0jrac2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.0.0-linux-arm64.tar.gz";
-        sha256 = "11ph5yjy754sb55sncdlgibrmijg2jsylrjfpvy4mclrwg64cari";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.0-linux-arm64.tar.gz";
+        sha256 = "0ivkm1cidvc6fz6k65z386qw0d7skh31i81yqccaql1i0n67mlsh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.4.1-linux-arm64.tar.gz";
-        sha256 = "1cgl36srg5idd2cfr2v7h9ymnmfjqrhj81zh1f6qxfhjdj9gyzci";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.13.0-linux-arm64.tar.gz";
+        sha256 = "0329lf1r9lga72x0crdwgx7m2xg14ydl6hb1c5jj76lkisqqzzyp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.52.0-linux-arm64.tar.gz";
-        sha256 = "18d3xgjha67i3qln1n6wg5fzhr8jwc1x2fh3zg630y4wdw3jsqix";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.46.0-linux-arm64.tar.gz";
+        sha256 = "045mc5ifkbpwp74z6826nzi16a2p5h44szxfn8h4mn3zjq86yjsi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.42.0-linux-arm64.tar.gz";
-        sha256 = "19zyn04jncv5jm6kf9vclcrmk0w99hflw7pv7kbvshlgj0y5ly2m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.14.0-linux-arm64.tar.gz";
+        sha256 = "11gx8zlkakfbwf7vc4j29cd0bfakjf6flgp0a05d8ka5kjq3qkcx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.13.0-linux-arm64.tar.gz";
-        sha256 = "0c4m9y4hh6k4f9v4xidijpwyc2650v4180zkdy5cpl7shfdk3n75";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.58.0-linux-arm64.tar.gz";
+        sha256 = "0yfsci2jc0az4n4mkr0wfd6npzxqw1mkci09wagrs7wibwb4wx5d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.12.0-linux-arm64.tar.gz";
-        sha256 = "1j8ab4m9jr7q0k89pinr93izdyvq0jk0nm2gr5rjrq5wrwirly9i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.16.0-linux-arm64.tar.gz";
+        sha256 = "1iq7phnx0sz539vgsc6j6md6djw7rdnywfmlbjrc6f31fsx2v0ln";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.9.0-linux-arm64.tar.gz";
-        sha256 = "1wavn4szckiranji27h84i9mpb589h87zmp9sakiqgn7c6cdhqpb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.0-linux-arm64.tar.gz";
+        sha256 = "1x92ls4p3l44p276rdgy1dxf5qy29ssw3zgjajf6jlfimgp8746f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.23.0-linux-arm64.tar.gz";
         sha256 = "1h7yh118iqr0bdkkagf3m0yxnphz5na7vyqqmzs7d9y9kcgfg8gi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.22.0-linux-arm64.tar.gz";
-        sha256 = "0d2z8ig79qr4qc7xv0ak00h7n2k613dqpifbdbkp6dhxiw4zmxcq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.24.0-linux-arm64.tar.gz";
+        sha256 = "10dvhbv5l1wwb6r7c9aiy0pqpwsj2s8s6gdyabvqm8hcza37jlnd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.4.3-linux-arm64.tar.gz";
-        sha256 = "0n3a3xaq7raf715r5gyr5v40wdy800c5arvqnd4sq7yvpkh1mcn6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.0-linux-arm64.tar.gz";
+        sha256 = "0447lckkgq6vs8a2ra4wi86yir8w61mm41ahp9nn6xxmnsqrn3jm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-arm64.tar.gz";
         sha256 = "111pia2f5xwkwaqs6p90ri29l5b3ivmahsa1bji4fwyyjyp22h4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.3.0-linux-arm64.tar.gz";
-        sha256 = "0qyjnkddwkfipmv7gv2vyjg6mr2nf7bm54v2vz96akr7ysl7w2rl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.4.1-linux-arm64.tar.gz";
+        sha256 = "11dfjx05inx1fdknzli0q7gma4hc1217jmfn4bx9ky635nqh5ckq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.67.0-linux-arm64.tar.gz";
-        sha256 = "14xpg193qf332sa9x4iw39i71k158f5393bqcqrjfccpkk1adwli";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.2.1-linux-arm64.tar.gz";
+        sha256 = "00b9b6zpkd88j5vsfff1q3q5wna22h2jvfhri6kap372whvdbpac";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.20.0-linux-arm64.tar.gz";
-        sha256 = "13jq9vrv1pkg6g2711v53fgy14yb8zw1q1jrr1ndmlyxgk84qy98";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.22.0-linux-arm64.tar.gz";
+        sha256 = "0gwdlk1m4f91fbqnlv3jb83fi66nay261180nr72bk4hc9757y8i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.4.0-linux-arm64.tar.gz";
-        sha256 = "1zznxhp8njrm9kamg89r75rkzbd5mx66v9hxdwdwyijdsrb7rih4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.6.0-linux-arm64.tar.gz";
+        sha256 = "14dk14j27kbjbda02x62621kjfvr6g2fc65cxdgcl0qb662fms2x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.31.1-linux-arm64.tar.gz";
-        sha256 = "17bykmfj9kxw2c94wjxcfakd10apnc88axr3wx2pa2k5idxd3ih0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-arm64.tar.gz";
+        sha256 = "0d8m2krbzxjhfm82dgf8p4vm3kk9gk98l798q4ayjrddqqb4mxq4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.16.1-linux-arm64.tar.gz";
-        sha256 = "17zpwizdsavsnhq179hw67wppdm61hzl6qrycl4anf074h5fy9rw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.16.2-linux-arm64.tar.gz";
+        sha256 = "1z67c7jwfs2z2hi0fqsxzsb426iv82n9sv3ik6smhq2agcxlaas2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.3.0-linux-arm64.tar.gz";
-        sha256 = "1xdr0yhck5ji40rf40pdax9qihnvyd39d6rjiyl8ydlpw9w9ma5i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.5-linux-arm64.tar.gz";
+        sha256 = "0mxw0f756b4p0far801vwpsw2md0pph33bsh5xij5is5c1kiqwjr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.8.0-linux-arm64.tar.gz";
-        sha256 = "0mqakfimh58vvmcsf0m0knazxymgg1zi87h3scj6lgj11m3lqrdv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.9.0-linux-arm64.tar.gz";
+        sha256 = "0s1gk18fszs6vwy3kwask0vsyykvxwwgigml1va67i9w0bqp199l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.4.1-linux-arm64.tar.gz";
-        sha256 = "0073vppvkfqz02jwanycy49ria8in7bpikhkqjz84imrprj9l9ic";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.0-linux-arm64.tar.gz";
+        sha256 = "1f1q34hc6bnqq60llm6gvwmkmvgh24hnxys4hwk79l11ryy5d6cz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-arm64.tar.gz";
-        sha256 = "17iaf72dzy108v1njan21n72a5gzxbycq396hjh293a141kppn1m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.0-linux-arm64.tar.gz";
+        sha256 = "0zns8xk4y992mp354lkp6ff96d4gifsw9cxkg0jla02lpaz2fiyn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.13.3-linux-arm64.tar.gz";
-        sha256 = "1y5prgh9nq6jb4db5b7a4dpcilq2c9ivfl1b1z59096gx540yqar";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.14.0-linux-arm64.tar.gz";
+        sha256 = "0rpgr4ngw6ja6xlfwak8mvx3zbqhbzg474lm8sl5mx80z66r8zlj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.10.0-linux-arm64.tar.gz";
@@ -437,40 +437,40 @@
         sha256 = "18wkr5sfa9v8b9b4c3hdgnq8wd8qpykcyqbcmiypykj8y954hxjk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.36.0-linux-arm64.tar.gz";
-        sha256 = "09j6cw9m1aa60n0gq68dmpk70gyh69qqkm98djrcn6134j2xf555";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.41.0-linux-arm64.tar.gz";
+        sha256 = "0j4qhlxkpxr7j4s76vkkqxwhjb9b4kvdn19wcd83j2ybxlz698zw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.55.0-linux-arm64.tar.gz";
-        sha256 = "07qh2d542rshixmdyk0rl7381gq81spc0fhn2cwcw0j7cvq01z6q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.60.0-linux-arm64.tar.gz";
+        sha256 = "0p2wlfs2lwwiz0az4kdb2jpaswn8z8yrv2mwk1hhcjn7g8xyn5zc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.19.0-linux-arm64.tar.gz";
-        sha256 = "1kqv70w3d84a9a0kj0w2hmd88h50zlfc35xkf57kgd43l948wcin";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.0-linux-arm64.tar.gz";
+        sha256 = "1pzkcm9nw8q8i440lc3xgpg9l5qrkxf1x22y7llvm5k0z1vv5rpq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.2-linux-arm64.tar.gz";
-        sha256 = "1rlf5gl7a7ym8zl4h0v7i42a9830zi401axw032h0v4q6w4zki3n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.3-linux-arm64.tar.gz";
+        sha256 = "1hyff2mkpkkbg8li0kblqmb17xcjql77wly33fjph6gw66wymnqb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.0-linux-arm64.tar.gz";
-        sha256 = "104lp8pxm3z6dshz3jvn6bsniskw665jmnmfnr410kgx60hk4wip";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.1-linux-arm64.tar.gz";
+        sha256 = "1zizrk7chxjda8lpkgrvs40f3il2z7xl79fcslq129adhqj2af3k";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.15.1-linux-arm64.tar.gz";
-        sha256 = "1pbb47vh7lwh729y1c9aky3nhyd6ijyknpb3w4grxfkdhiyyid9y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.17.0-linux-arm64.tar.gz";
+        sha256 = "1g5k564z33dr09yqzk5a2g2wblszrbh8hc6gp1a8g0vynq7a9f6r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.6.0-linux-arm64.tar.gz";
-        sha256 = "1qp184fqwlm3r1lvk9qjhddfj9hmzsv4hjgc0jp1bylnmycqc81c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.6.2-linux-arm64.tar.gz";
+        sha256 = "0gx4n9palj6yana77hs3aiv96ck4vzvnqblb1h7h9z1jfmdl7m01";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.7.0-linux-arm64.tar.gz";
-        sha256 = "1q492lykggvnxnzlnw95iysnjw3zs6j6rj24yqr9kxqbsavlcld6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.0-linux-arm64.tar.gz";
+        sha256 = "1pkkm24f4n6qd5hsgb6ayv38jfs6k77mb3xcvdzsy3bmynxn7662";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.1-linux-arm64.tar.gz";
-        sha256 = "00ggsw1czdmr742jp18snnfdbm7682srf62nz9rvsb1w7lnjs4yq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.4-linux-arm64.tar.gz";
+        sha256 = "1ih335b7pdjxqvyabhlf9dxabri5w1kjf2x4c310rjglzvyvavr2";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-arm64.tar.gz";
@@ -479,112 +479,112 @@
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.88.0-darwin-arm64.tar.gz";
-        sha256 = "0z0gpxrihxwx1a3njvhr9rc3p4pv6yqw6a6xnf2ssn4pqck6rl5q";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.95.0-darwin-arm64.tar.gz";
+        sha256 = "0k09shsrpzi378xfqggx532szq35w67nja91ysljm8w5q8f1s06a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.1-darwin-arm64.tar.gz";
-        sha256 = "09zcxyrpad8iz3yqvrd7g8x61pbk4gqfqa7jgiqnqxmrr1vf8idd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.2-darwin-arm64.tar.gz";
+        sha256 = "125l81hghfkj4k4ygspv6fmifrqpn0r14c8pr85fkkninsp71jip";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.2.0-darwin-arm64.tar.gz";
-        sha256 = "0rj745xaaw7a1437yfbi6awahyd1zvj1gc90pcv3bc44s0k1n9hi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.3.1-darwin-arm64.tar.gz";
+        sha256 = "1lz73k8v5iixivydvfrwr239sw6i5qx4h7qkd0l3hvbih3v97v6a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.44.0-darwin-arm64.tar.gz";
-        sha256 = "0ma5n4mcilnqmhxyr2pn1j6xxm25hd52f7sxs7y8h38a87a54xfq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.45.0-darwin-arm64.tar.gz";
+        sha256 = "1dqs6ygjpah10g47k4d3ms2cin5k76c2kbzgg86ipar3gcyn2lx9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.1.0-darwin-arm64.tar.gz";
-        sha256 = "1gzy86d860nv4amg2wvpk7qj94x2v929bflh6vszyfi29r68k2z0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.5.0-darwin-arm64.tar.gz";
+        sha256 = "0f3nd7sy17sg522lxsc5ypsqpk8allw0wvzw7i6vc5781xa40xqi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.0.0-darwin-arm64.tar.gz";
-        sha256 = "07f30h74hyg3j9dj78a0al5v9i5n105y52yn362mlyvfh807blml";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.0-darwin-arm64.tar.gz";
+        sha256 = "02hlp97294ds7cpj775lks5w05hxwv644y8v9pil5y6n2xllkrqg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.4.1-darwin-arm64.tar.gz";
-        sha256 = "0x4ri61ppj9shhx17rxlavs347fsy4bqpq489y0g13dy51xzsgh7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.13.0-darwin-arm64.tar.gz";
+        sha256 = "042hqdj5j8ib1l9r0h62m2x79x2iglz2fnvw6007absn6vi3qhsq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.52.0-darwin-arm64.tar.gz";
-        sha256 = "03x2h0nivi5ygn8lk57g4xky29256hczgmf0qwfrb9lb49qnvrss";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.46.0-darwin-arm64.tar.gz";
+        sha256 = "0l0g5qgv5f6q0fij8mkvawdkm7h3wfqcg6mfskw6s0kwbmrbavpj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.42.0-darwin-arm64.tar.gz";
-        sha256 = "0lba3ghd350r59v694l9qnziydlyh63wk1hgbpiy2cmdg20addbx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.14.0-darwin-arm64.tar.gz";
+        sha256 = "0asaq5gg22jgq5x2bn89m9qn3jm7cmdhkypdl5barkmccvsbpfg0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.13.0-darwin-arm64.tar.gz";
-        sha256 = "18gzy9kpz74ycdl988r3mxzxakbd74vn2rl5y3hzlhgyd03vqmfm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.58.0-darwin-arm64.tar.gz";
+        sha256 = "0rmgha9nxabkdb7z3asi16zbslz69jxchlw2awjsv0dq1nyn4pvq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.12.0-darwin-arm64.tar.gz";
-        sha256 = "1kmy7krwbgyxlk4f83nw6npll3svymbigzdr9kaj3ab8bcbj0wpn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.16.0-darwin-arm64.tar.gz";
+        sha256 = "0zi7zzn7kpvmjfmaviyf1bzzrlilbgkz6dcm4fqa73qcbm1rq515";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.9.0-darwin-arm64.tar.gz";
-        sha256 = "0m5ikqssgj33is9lxplx8ljlmklh7p173gwfvld8izs37pb1xdyw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.0-darwin-arm64.tar.gz";
+        sha256 = "0qz4cqxvwn5wzq3wh5cfwxh0ch22p7wi2wcvjgymlar6q57flk75";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.23.0-darwin-arm64.tar.gz";
         sha256 = "066w46l9dv02pnq59h632w1f7sjj8qqh6867cb33bbh6if681fpa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.22.0-darwin-arm64.tar.gz";
-        sha256 = "0nvdhfw4bfizq6hmwng7glf248qvz5gzfbfm7ha50zaajbhrilkv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.24.0-darwin-arm64.tar.gz";
+        sha256 = "1x579nqa93yi68zwq0ax6a3rs06bxfqh5snfiiwflp5x68yvbnl0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.4.3-darwin-arm64.tar.gz";
-        sha256 = "00n7jwqwcxgrjxb6bn3sdba79fcg5y6fh22zmrcnn3g07hh0jnf2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.0-darwin-arm64.tar.gz";
+        sha256 = "0z2s6yy3m871p5zhvcvgb7v7v51mr1y0msm71pqbqr9jj6mdlvpj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-arm64.tar.gz";
         sha256 = "12bzicm43l7yvh02v5fx3z8v46l9i7a9f677735xi5rjbmd2an4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.3.0-darwin-arm64.tar.gz";
-        sha256 = "0nz8w50nfnnx9smf3lk7nqylx4bdpvxk1jr87y8ja1czmp34g2w9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.4.1-darwin-arm64.tar.gz";
+        sha256 = "16m568zmhfh9y0ynjs789yiawn22r23i1zz9xsrq1kfx8raq94an";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.67.0-darwin-arm64.tar.gz";
-        sha256 = "0x6ispcwkx15x753zy6awwlykh66qfk5phwdzsy8gw3j1g033a85";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.2.1-darwin-arm64.tar.gz";
+        sha256 = "14ar812kqjccam04wyzzn46620vp4fym70fq1qzdawh7a5njzdab";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.20.0-darwin-arm64.tar.gz";
-        sha256 = "0lhc76q4x126dcjbnsz5a4r414y94sp70dhr702fh24zn9v4f9gd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.22.0-darwin-arm64.tar.gz";
+        sha256 = "04svj7zrhwfy5hjccy2dn4a5il793fncj0b83bvkrvh4qcs8c8as";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.4.0-darwin-arm64.tar.gz";
-        sha256 = "1jcz3ls4byhkndsssaf0mllckvfamaysqh745hn0msyjqm2q03h1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.6.0-darwin-arm64.tar.gz";
+        sha256 = "0dwx5bkp7n7jjikk1nr55brma4dg0gldpf7mfwc62dzc36lgfyny";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.31.1-darwin-arm64.tar.gz";
-        sha256 = "0wcxrcpijn6jzz0l5azfqvh31xzg5q5bvk39iifczimdvw37xnva";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-arm64.tar.gz";
+        sha256 = "0caz4kgnnrmdr7n571xc7yqscac9jnjwwpjzbnvx4ib6a91wvsdn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.16.1-darwin-arm64.tar.gz";
-        sha256 = "1f4xnjwbp1qbx0hcym4gxynb4j1vxlj7iqh1naays3ypc4mgnms1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.16.2-darwin-arm64.tar.gz";
+        sha256 = "0i0lhxzvxvgi695x9g1nnqrzlipsydjsc3xz8zd7n9438pav3cmc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.3.0-darwin-arm64.tar.gz";
-        sha256 = "0vjl1yd3wgpn99qphkamd6mfwqg671zrdd2121ydprk9v60jq8c5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.5-darwin-arm64.tar.gz";
+        sha256 = "09r89pxzk18pb65vd47bp31sbilgbpbp7j3a30b39lfff3larwd5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.8.0-darwin-arm64.tar.gz";
-        sha256 = "1x0rpyy3hg3wna6w273zy9dhd0mvgqvqd8lj406nwwir9pbq2xw1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.9.0-darwin-arm64.tar.gz";
+        sha256 = "0qj26bd23qgz8pibsvhsb1gzlk96jh2hkh3l9s23jvlvbxd53hql";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.4.1-darwin-arm64.tar.gz";
-        sha256 = "0z0ands2dp6jjy9rbb9rmijlp56m4mrw79f8513kj6nqp1dyalr1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.0-darwin-arm64.tar.gz";
+        sha256 = "0nx02c9fkfrdmgf9jmlhb0h4whqgx8bw4snhz4m9chxygknyg2s2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-arm64.tar.gz";
-        sha256 = "0kym9f36h8b7s1smlmgazbzv8jjfpwxk6wv036bhx2xm3ysc7rgp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.0-darwin-arm64.tar.gz";
+        sha256 = "0zpj3qcavx9hby54lbx81sh6fw7gsfjb94jh7xi49n937gra3snc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.13.3-darwin-arm64.tar.gz";
-        sha256 = "1xl3i1py3m2fr4haww7jzyj064hcdrb86amnhrjs5ccps02r6gk3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.14.0-darwin-arm64.tar.gz";
+        sha256 = "0vq8xvx55avph8fr1jykmilivxpmc8zvckmsia1ammqg867ivrlj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.10.0-darwin-arm64.tar.gz";
@@ -595,40 +595,40 @@
         sha256 = "08llqzf509ds0nbcllpq5k3zl6l656yxx0bx0z9pibd9iwzjy3wj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.36.0-darwin-arm64.tar.gz";
-        sha256 = "1v0k309w96f9s9nvslh7dx6mhk5prxcbd83fgrcfhsk784hrrzqi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.41.0-darwin-arm64.tar.gz";
+        sha256 = "1z3sc1ihwn3g02mwm99shizdzfgzsqxivmkwmw5p5r2gxaflz1gh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.55.0-darwin-arm64.tar.gz";
-        sha256 = "1598kg5w639fdp8cdsaxm0jcn1p3q1mmfyfci3gn8s0ck2xfnbnm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.60.0-darwin-arm64.tar.gz";
+        sha256 = "15cn9gfc957zalmwl3xxjrpyxh50gkdkzph31akwfw1lil1y6ws5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.19.0-darwin-arm64.tar.gz";
-        sha256 = "17ngmwyh6z1g6x3lrd77pxa9wwwarh4mqdcq7aiwf57plx4a4l6j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.0-darwin-arm64.tar.gz";
+        sha256 = "1h4q8s8bzs2w8b0hvlaw9awa0m3kzw22z38avaryv85n4jvq6zn2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.2-darwin-arm64.tar.gz";
-        sha256 = "09agrp3sb7mzhwaja4rvz0p25rpsb2n4v3s2kyzcx3pyfyhigvfn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.3-darwin-arm64.tar.gz";
+        sha256 = "0cq1cvvmfki8v0861ylckpchlm5xzshirixz95d7kvdchr6j4ds7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.0-darwin-arm64.tar.gz";
-        sha256 = "00svwn4p6gmmk9y53w9k4zl425lv13wmm7v86y627fq7nv8pwkd0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.1-darwin-arm64.tar.gz";
+        sha256 = "0sfbb1m874p04n2qg5w9502r1s2gxdd3lbn9k6xqzdcqi0991vrw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.15.1-darwin-arm64.tar.gz";
-        sha256 = "065imbfc3h96dhrjfs6qqcr5ha3hyy5q2gh0904ghda9dk8v1xhn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.17.0-darwin-arm64.tar.gz";
+        sha256 = "0wcahzjwlbzbv94yv10wmvsppjcvax0d57qk4xpfrdig6lj50mms";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.6.0-darwin-arm64.tar.gz";
-        sha256 = "0wm3ldvhg6xhnblfwxccjqqw0q0mpl7s92cckzrzhdr5rwddcgbf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.6.2-darwin-arm64.tar.gz";
+        sha256 = "0xlxx5i1ph57vn5q00hv8s0d5vj5jy3hrrkm7qvmjf47d7flqqv8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.7.0-darwin-arm64.tar.gz";
-        sha256 = "08qgbqxdc8z1mbhnl6jh6jsb79dlb9jf43inyrlr6mxcf2gnv7kx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.0-darwin-arm64.tar.gz";
+        sha256 = "039lsilaazm80p07l08skcmplz45qpiq122rnscc25cwkjnmv0lg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.1-darwin-arm64.tar.gz";
-        sha256 = "01s1lr79qcwz28xl5ckp81jg1hgypagcxxjv2c9mcvljxana291v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.4-darwin-arm64.tar.gz";
+        sha256 = "14plg6hinzcn1mnmfzpnl8b63j7zj7bkvy4fil1c3iscqj803ci6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-arm64.tar.gz";
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix b/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix
index 5dcd156d555bc..76a5eff2973ef 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix
@@ -4,15 +4,30 @@
 mkPulumiPackage rec {
   owner = "pulumi";
   repo = "pulumi-azure-native";
-  version = "1.92.0";
+  version = "2.13.0";
   rev = "v${version}";
-  hash = "sha256-eSHD7ckiHJJoqJFeSlwxl063QRRTtiWdpu1m9OVRhoA=";
-  vendorHash = "sha256-DI92fCe8HPwjERkBVlOebZpvCreq9850OeERDkiayz8=";
+  hash = "sha256-YyJxACeXyY7hZkTbLXT/ASNWa1uv9h3cvPoItR183fU=";
+  vendorHash = "sha256-20wHbNE/fenxP9wgTSzAnx6b1UYlw4i1fi6SesTs0sc=";
   cmdGen = "pulumi-gen-azure-native";
   cmdRes = "pulumi-resource-azure-native";
   extraLdflags = [
-    "-X github.com/pulumi/${repo}/provider/pkg/version.Version=v${version}"
+    "-X github.com/pulumi/${repo}/v2/provider/pkg/version.Version=${version}"
   ];
+  postConfigure = ''
+    pushd ..
+
+    chmod +w . provider/cmd/${cmdRes} sdk/
+    chmod -R +w reports/ versions/
+    mkdir bin
+    ${cmdGen} schema ${version}
+
+    cp bin/schema-full.json provider/cmd/${cmdRes}
+    cp bin/metadata-compact.json provider/cmd/${cmdRes}
+
+    popd
+
+    VERSION=v${version} go generate cmd/${cmdRes}/main.go
+  '';
   fetchSubmodules = true;
   __darwinAllowLocalNetworking = true;
   meta = with lib; {
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
index 7ef597201b982..88da6f0d33f43 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
@@ -8,7 +8,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/sdk/go/pulumi-language-go";
 
-  vendorHash = "sha256-6/umLzw7HMplP/cJknBsWmiwAnc+YM4tIz4Zl2QMTOQ=";
+  vendorHash = "sha256-mBK9VEatuxeoZtXXOKdwj7wtZ/lo4Bi2h7N00zK6Hpw=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
index 02bb86d0e8e53..f6d3cbec0c237 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
@@ -9,7 +9,14 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/sdk/nodejs/cmd/pulumi-language-nodejs";
 
-  vendorHash = "sha256-3kDWb+1aebV2D+Nm5bkhKrJZMe/lD0ltFQ7p+Bfk644=";
+  vendorHash = "sha256-gEOVtAyn7v8tsRU11NgrD3swMFFBxOTIjMWCqSSvHlI=";
+
+  postPatch = ''
+    # Gives github.com/pulumi/pulumi/pkg/v3: is replaced in go.mod, but not marked as replaced in vendor/modules.txt etc
+    substituteInPlace language_test.go \
+      --replace "TestLanguage" \
+                "SkipTestLanguage"
+  '';
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
index e63e311fabec0..6994f26b92c69 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
@@ -1,32 +1,22 @@
-{ lib
-, buildGoModule
+{ buildGoModule
 , pulumi
 , python3
 }:
 buildGoModule rec {
-  inherit (pulumi) version src sdkVendorHash;
+  inherit (pulumi) version src;
 
   pname = "pulumi-language-python";
 
-  sourceRoot = "${src.name}/sdk";
+  sourceRoot = "${src.name}/sdk/python/cmd/pulumi-language-python";
 
-  vendorHash = sdkVendorHash;
+  vendorHash = "sha256-upRXs8Bo0dpnANNetfXqkatip9bA+Fqhg72Cd60ltz8=";
 
   postPatch = ''
-    # Requires network
-    substituteInPlace python/python_test.go \
-      --replace "TestRunningPipInVirtualEnvironment" \
-                "SkipTestRunningPipInVirtualEnvironment"
-
-    substituteInPlace python/cmd/pulumi-language-python/main_test.go \
+    substituteInPlace main_test.go \
       --replace "TestDeterminePulumiPackages" \
                 "SkipTestDeterminePulumiPackages"
   '';
 
-  subPackages = [
-    "python/cmd/pulumi-language-python"
-  ];
-
   ldflags = [
     "-s"
     "-w"
@@ -38,8 +28,8 @@ buildGoModule rec {
   ];
 
   postInstall = ''
-    cp python/cmd/pulumi-language-python-exec    $out/bin
-    cp python/dist/pulumi-resource-pulumi-python $out/bin
-    cp python/dist/pulumi-analyzer-policy-python $out/bin
+    cp ../pulumi-language-python-exec           $out/bin
+    cp ../../dist/pulumi-resource-pulumi-python $out/bin
+    cp ../../dist/pulumi-analyzer-policy-python $out/bin
   '';
 }
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-random.nix b/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
index 4248ae73dda7a..af704eac192d8 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
@@ -4,10 +4,10 @@
 mkPulumiPackage rec {
   owner = "pulumi";
   repo = "pulumi-random";
-  version = "4.8.2";
+  version = "4.14.0";
   rev = "v${version}";
-  hash = "sha256-tFEtBgNpl8090RuVMEkyGmdfpZK8wvOD4iog1JRq+GY=";
-  vendorHash = "sha256-H3mpKxb1lt+du3KterYPV6WWs1D0XXlmemMyMiZBnqs=";
+  hash = "sha256-1MR7zWNBDbAUoRed7IU80PQxeH18x95MKJKejW5m2Rs=";
+  vendorHash = "sha256-YDuF89F9+pxVq4TNe5l3JlbcqpnJwSTPAP4TwWTriWA=";
   cmdGen = "pulumi-tfgen-random";
   cmdRes = "pulumi-resource-random";
   extraLdflags = [
diff --git a/pkgs/tools/admin/pulumi/default.nix b/pkgs/tools/admin/pulumi/default.nix
index 7f724d8b4c7e1..1998eec1bfcdb 100644
--- a/pkgs/tools/admin/pulumi/default.nix
+++ b/pkgs/tools/admin/pulumi/default.nix
@@ -14,21 +14,21 @@
 
 buildGoModule rec {
   pname = "pulumi";
-  version = "3.72.2";
+  version = "3.93.0";
 
   # Used in pulumi-language packages, which inherit this prop
-  sdkVendorHash = "sha256-S8eb2V7ZHhQ0xas+88lwxjL50+22dbyJ0aM60dAtb5k=";
+  sdkVendorHash = lib.fakeHash;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-g/8l/ebtb1Gs6TKtg0joe55TyWj1/SAiA4Ds1NHKLFI=";
+    hash = "sha256-EaYYIbV7IItnmVfyEHtaAbAXvrZ8CXMjW+yNXOBIxg8=";
     # Some tests rely on checkout directory name
     name = "pulumi";
   };
 
-  vendorHash = "sha256-eOxlTsvC/B+YTFlmT7MtiBBSJIntI4vogdiZ1gOkehw=";
+  vendorHash = "sha256-G+LspC6b2TvboMU6rKB0qrhhMNaLPVt/nUYZzkiVr/Q=";
 
   sourceRoot = "${src.name}/pkg";
 
@@ -51,6 +51,25 @@ buildGoModule rec {
   disabledTests = [
     # Flaky test
     "TestPendingDeleteOrder"
+    # Tries to clone repo: github.com/pulumi/templates.git
+    "TestGenerateOnlyProjectCheck"
+    # Following tests give this error, not quite sure why:
+    #     Error Trace:    /build/pulumi/pkg/engine/lifecycletest/update_plan_test.go:273
+    # Error:          Received unexpected error:
+    #                 Unexpected diag message: <{%reset%}>using pulumi-resource-pkgA from $PATH at /build/tmp.bS8caxmTx7/pulumi-resource-pkgA<{%reset%}>
+    # Test:           TestUnplannedDelete
+    "TestExpectedDelete"
+    "TestPlannedInputOutputDifferences"
+    "TestPlannedUpdateChangedStack"
+    "TestExpectedCreate"
+    "TestUnplannedDelete"
+    # Following test gives this  error, not sure why:
+    # --- Expected
+    # +++ Actual
+    # @@ -1 +1 @@
+    # -gcp
+    # +aws
+    "TestPluginMapper_MappedNamesDifferFromPulumiName"
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/tools/admin/qovery-cli/default.nix b/pkgs/tools/admin/qovery-cli/default.nix
index 75c0e81b4953a..05db6491b0d6d 100644
--- a/pkgs/tools/admin/qovery-cli/default.nix
+++ b/pkgs/tools/admin/qovery-cli/default.nix
@@ -8,18 +8,20 @@
 
 buildGoModule rec {
   pname = "qovery-cli";
-  version = "0.72.0";
+  version = "0.82.0";
 
   src = fetchFromGitHub {
     owner = "Qovery";
-    repo = pname;
+    repo = "qovery-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mb1GLhrU+/g0zX2CNkwlJKuLAVDxLWuU9EoYyxXQEWA=";
+    hash = "sha256-jdYCJU+oQtfG79iJEvnbrDZUIcV06b1SNQv3d6aW+Bo=";
   };
 
-  vendorHash = "sha256-OexoLqlPBr1JSL63lP172YaGJ0GLlxxsJYdXIGhNqjs=";
+  vendorHash = "sha256-IDKJaWnQsOtghpCh7UyO6RzWgSZS0S0jdF5hVV7xVbs=";
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [
+    installShellFiles
+  ];
 
   postInstall = ''
     installShellCompletion --cmd ${pname} \
diff --git a/pkgs/tools/admin/rset/default.nix b/pkgs/tools/admin/rset/default.nix
index e164e133f9851..32e401ecc40c9 100644
--- a/pkgs/tools/admin/rset/default.nix
+++ b/pkgs/tools/admin/rset/default.nix
@@ -44,5 +44,10 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
+    # 2023-08-19, fails to compile with glibc-2.38 because of strlcpy.
+    # At the time of writing, this was 4 minors behind already and
+    # the `paths.patch` didn't apply anymore, so this is now considered
+    # broken until somebody cares enough to fix and upgrade this.
+    broken = true;
   };
 }
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index aa654d522a52b..a08e4c5a812a3 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -11,12 +11,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3006.3";
+  version = "3006.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-flP7zETEn41uZ8sZytoGOADKKe1/Fa+XJSdTGqhW5Cs=";
+    hash = "sha256-X6tojYa3Dh6ExRtMqlZfNnGVBQaBPDcp1EQIzC9a+8M=";
   };
 
   patches = [
diff --git a/pkgs/tools/admin/scaleway-cli/default.nix b/pkgs/tools/admin/scaleway-cli/default.nix
index d92e1e79b3d7b..c33f720ebad05 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.21.0";
+  version = "2.26.0";
 
   src = fetchFromGitHub {
     owner = "scaleway";
     repo = "scaleway-cli";
     rev = "v${version}";
-    sha256 = "sha256-VZ3yCgO110t920T0vWP3IwdphlsZrWbJj5nXX70mtJ4=";
+    sha256 = "sha256-RfXNwuynlELT7gVWjlhjaX5nKuBJM+v6eAD/JCuRyck=";
   };
 
-  vendorHash = "sha256-MVBxtd+MZ6aS/fJn/+/a2jjh1rKjeT5BiHF2mzg95C8=";
+  vendorHash = "sha256-hBfEQtuBkU2fKoCd78dpp+I19lTOycItqjlcA6KByLY=";
 
   ldflags = [
     "-w"
@@ -23,13 +23,39 @@ buildGoModule rec {
     "-X main.BuildDate=unknown"
   ];
 
-  # some tests require network access to scaleway's API, failing when sandboxed
-  doCheck = false;
+  doCheck = true;
+
+  # Some tests require access to scaleway's API, failing when sandboxed
+  preCheck = ''
+    substituteInPlace internal/core/bootstrap_test.go \
+      --replace "TestInterruptError" "SkipInterruptError"
+    substituteInPlace internal/e2e/errors_test.go \
+      --replace "TestStandardErrors" "SkipStandardErrors"
+    substituteInPlace internal/e2e/human_test.go \
+      --replace "TestTestCommand" "SkipTestCommand" \
+      --replace "TestHumanCreate" "SkipHumanCreate" \
+      --replace "TestHumanList" "SkipHumanList" \
+      --replace "TestHumanUpdate" "SkipHumanUpdate" \
+      --replace "TestHumanGet" "SkipHumanGet" \
+      --replace "TestHumanDelete" "SkipHumanDelete"
+    substituteInPlace internal/e2e/sdk_errors_test.go \
+      --replace "TestSdkStandardErrors" "SkipSdkStandardErrors"
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/scw --help
+
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     description = "Interact with Scaleway API from the command line";
     homepage = "https://github.com/scaleway/scaleway-cli";
     license = licenses.mit;
-    maintainers = with maintainers; [ nickhu techknowlogick ];
+    maintainers = with maintainers; [ nickhu techknowlogick kashw2 ];
   };
 }
diff --git a/pkgs/tools/admin/scalr-cli/default.nix b/pkgs/tools/admin/scalr-cli/default.nix
index 125d20351464a..00065aa2e357b 100644
--- a/pkgs/tools/admin/scalr-cli/default.nix
+++ b/pkgs/tools/admin/scalr-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "scalr-cli";
-  version = "0.15.1";
+  version = "0.15.5";
 
   src = fetchFromGitHub {
     owner = "Scalr";
     repo = "scalr-cli";
     rev = "v${version}";
-    hash = "sha256-8KhFF/bD//NYRQ7v+ksGAE6bKVu+nE3o3R119XbHVDA=";
+    hash = "sha256-RXfUlpwlDNAZRJTbbE+n8mReVyrWxUsWkOGaaALz0Q4=";
   };
 
-  vendorHash = "sha256-xoxSQ9V9i7yxJzn8wAtIAtWlTn4q/UnNqMT93RyBHII=";
+  vendorHash = "sha256-0p4f+KKD04IFAUQG8F3b+2sx9suYemt3wbgSNNOOIlk=";
 
   ldflags = [
     "-s" "-w"
@@ -32,7 +32,7 @@ buildGoModule rec {
   doCheck = false; # Skip tests as they require creating actual Scalr resources.
 
   meta = with lib; {
-    description = "A command-line tool that communicates directly with the Scalr API.";
+    description = "A command-line tool that communicates directly with the Scalr API";
     homepage = "https://github.com/Scalr/scalr-cli";
     changelog = "https://github.com/Scalr/scalr-cli/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/admin/simplotask/default.nix b/pkgs/tools/admin/simplotask/default.nix
index ba7241a753d8f..dfceed6a3849f 100644
--- a/pkgs/tools/admin/simplotask/default.nix
+++ b/pkgs/tools/admin/simplotask/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "simplotask";
-  version = "1.11.5";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "umputun";
     repo = "spot";
     rev = "v${version}";
-    hash = "sha256-ZPmYAUfkWo+inD2CwzT4Hncsshk3Y2W6aldy/5v1sks=";
+    hash = "sha256-jyAUovPIWIB4x5IEHyRY9iVmgtjR++0dew6B2dnGI8U=";
   };
 
   vendorHash = null;
@@ -29,7 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for effortless deployment and configuration management";
-    homepage = "https://simplotask.com/";
+    homepage = "https://spot.umputun.dev/";
     maintainers = with maintainers; [ sikmir ];
     license = licenses.mit;
     mainProgram = "spot";
diff --git a/pkgs/tools/admin/stripe-cli/default.nix b/pkgs/tools/admin/stripe-cli/default.nix
index 45fdbff603213..9adb2d326e0bf 100644
--- a/pkgs/tools/admin/stripe-cli/default.nix
+++ b/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.17.2";
+  version = "1.19.2";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MzzjrGtqbtZMvfL7dPAsKHF2ZTneSdtDuwHQQcyrQDw=";
+    hash = "sha256-ohxTEHm5qGFQ1mJNL/Fh5qNc/De1TUtsEcuOIaJvGLc=";
   };
   vendorHash = "sha256-DYA6cu2KzEBZ4wsT7wjcdY1endQQOZlj2aOwu6iGLew=";
 
diff --git a/pkgs/tools/admin/syft/default.nix b/pkgs/tools/admin/syft/default.nix
index 3f6567b09f0c8..cca9eba3c0d2d 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.92.0";
+  version = "0.102.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-YmzizpcAfE4+Rfq5ydQnDQBo4R+pAyudfi+fqD9EZP0=";
+    hash = "sha256-XA2jr9jkecG8r9HD2KYctMJQXfL84odQXgyw9Q8H6P0=";
     # 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;
@@ -22,7 +22,7 @@ buildGoModule rec {
   };
   # hash mismatch with darwin
   proxyVendor = true;
-  vendorHash = "sha256-siOZWhHqNokkYAPwuXQCs4T1yBiEWUTJzhfbH/Z2uBk=";
+  vendorHash = "sha256-iq4RCp/HnaHDyVuUeVYQKIRJ0F2SjLYn3mXeYXAcnmg=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index d1a0d8cf416f0..53d0fe662bfef 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -147,7 +147,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = lib.optional stdenv.isLinux xorg.xorgserver.propagatedBuildInputs;
 
-  passthru.tests.tigervnc = nixosTests.vnc.testTigerVNC;
+  passthru.tests.tigervnc = nixosTests.tigervnc;
 
   meta = {
     homepage = "https://tigervnc.org/";
diff --git a/pkgs/tools/admin/trinsic-cli/default.nix b/pkgs/tools/admin/trinsic-cli/default.nix
index cab4f195dc951..264e04c71c772 100644
--- a/pkgs/tools/admin/trinsic-cli/default.nix
+++ b/pkgs/tools/admin/trinsic-cli/default.nix
@@ -2,11 +2,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "trinsic-cli";
-  version = "1.11.0";
+  version = "1.13.0";
 
   src = fetchurl {
     url = "https://github.com/trinsic-id/sdk/releases/download/v${version}/trinsic-cli-vendor-${version}.tar.gz";
-    sha256 = "sha256-kWdayQRV/VHgvBhGLc67qTXFz6Ufec6h+1ihrIdkCs4=";
+    sha256 = "sha256-uW4PNlDfyxzec9PzfXr25gPrFZQGr8qm0jLMOeIazoE=";
   };
 
   cargoVendorDir = "vendor";
diff --git a/pkgs/tools/admin/triton/default.nix b/pkgs/tools/admin/triton/default.nix
index d5841e924571d..3605bd9089f5e 100644
--- a/pkgs/tools/admin/triton/default.nix
+++ b/pkgs/tools/admin/triton/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "triton";
-  version = "7.15.4";
+  version = "7.17.0";
 
   src = fetchFromGitHub {
     owner = "TritonDataCenter";
     repo = "node-triton";
     rev = version;
-    hash = "sha256-RjYJT8Iw9JZzvd2d9zh2CS27qUx12nDi12k+YuTh7tk=";
+    hash = "sha256-udS5CnaaeaY+owOrbC3R2jrNBpuTBKOkHrIS2AlHWAE=";
   };
 
-  npmDepsHash = "sha256-2ZTTgJ4LzmlfFoNNNPrrmna5pbREshdw5x9w5N7nasc=";
+  npmDepsHash = "sha256-w33awTkj+YxBoPlmP0JBlZlrMmaWhMC03/5a+LB0RZ8=";
 
   dontBuild = true;
 
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index 2f6b78bde4d22..9f077c1fd853c 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -1,25 +1,28 @@
 { lib
+, stdenv
+, buildPackages
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 , testers
 , trivy
 }:
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.45.1";
+  version = "0.49.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-sifQHzysuA92wYi1quCPx/ZGLKO4iQLgNe++DNDV8f4=";
+    hash = "sha256-Kx+84kI/8KOOz2p7xGvjOSyMa1Co9u5c0lWOtfi8SVE=";
   };
 
   # Hash mismatch on across Linux and Darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-eQeyMZvOmYb+4K72wrO/vRf+XTkOP2z+7bmwFMVBxO0=";
+  vendorHash = "sha256-Ldv71C4d9/IO1u+eDKKTHc0pjY8lfnIjQZ57IMWv7Qk=";
 
   subPackages = [ "cmd/trivy" ];
 
@@ -29,9 +32,22 @@ buildGoModule rec {
     "-X=github.com/aquasecurity/trivy/pkg/version.ver=v${version}"
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   # Tests require network access
   doCheck = false;
 
+  postInstall =
+    let
+      trivy = if stdenv.buildPlatform.canExecute stdenv.hostPlatform then placeholder "out" else buildPackages.trivy;
+    in
+    ''
+      installShellCompletion --cmd trivy \
+        --bash <(${trivy}/bin/trivy completion bash) \
+        --fish <(${trivy}/bin/trivy completion fish) \
+        --zsh <(${trivy}/bin/trivy completion zsh)
+    '';
+
   doInstallCheck = true;
 
   passthru.tests.version = testers.testVersion {
@@ -51,6 +67,7 @@ buildGoModule rec {
       vulnerabilities of OS packages (Alpine, RHEL, CentOS, etc.) and
       application dependencies (Bundler, Composer, npm, yarn, etc.).
     '';
+    mainProgram = "trivy";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab jk ];
   };
diff --git a/pkgs/tools/admin/try/default.nix b/pkgs/tools/admin/try/default.nix
index 4ab78210afca3..697a192d156e6 100644
--- a/pkgs/tools/admin/try/default.nix
+++ b/pkgs/tools/admin/try/default.nix
@@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
   meta = with lib;{
-    homepage = "https://github/binpash/try";
+    homepage = "https://github.com/binpash/try";
     description = "Lets you run a command and inspect its effects before changing your live system";
     maintainers = with maintainers; [ pasqui23 ];
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/admin/turbovnc/default.nix b/pkgs/tools/admin/turbovnc/default.nix
index 801fe1ba4a147..aaba4768a9243 100644
--- a/pkgs/tools/admin/turbovnc/default.nix
+++ b/pkgs/tools/admin/turbovnc/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "turbovnc";
-  version = "3.0.3";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = "TurboVNC";
     repo = "turbovnc";
     rev = finalAttrs.version;
-    hash = "sha256-akkkbDb5ZHTG5GEEeDm1ns60GedQ+DnFXgVMZumRQHc=";
+    hash = "sha256-nMqH/jhw4GhffGYR+WGcUnF6EOFSS6HDuSKvjoCtGkk=";
   };
 
   # TODO:
diff --git a/pkgs/tools/admin/wander/default.nix b/pkgs/tools/admin/wander/default.nix
index f1fd58877ddb8..14b89311df1a9 100644
--- a/pkgs/tools/admin/wander/default.nix
+++ b/pkgs/tools/admin/wander/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wander";
-  version = "0.11.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "robinovitch61";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EIMHCal4jt8tMEfx2Lol2/7IK8uROaNC1ABB+0d0YTg=";
+    sha256 = "sha256-7/5NcrS5VR3APhv5LEpd4U0+E4PwM9cU9bb1q6UDfoI=";
   };
 
-  vendorHash = "sha256-SqDGXV8MpvEQFAkcE1NWvWjdzYsvbO5vA6k+hpY0js0=";
+  vendorHash = "sha256-0S8tzP5yNUrH6fp+v7nbUPTMWzYXyGw+ZNcXkSN+tWY=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/tools/admin/winbox/default.nix b/pkgs/tools/admin/winbox/default.nix
index 6c9b9290494d8..f4a39b2cbbc5d 100644
--- a/pkgs/tools/admin/winbox/default.nix
+++ b/pkgs/tools/admin/winbox/default.nix
@@ -10,15 +10,15 @@ let
   inherit (lib) last splitString;
 
   pname = "winbox";
-  version = "3.38";
+  version = "3.40";
   name = "${pname}-${version}";
 
   executable = fetchurl (if (wine.meta.mainProgram == "wine64") then {
     url = "https://download.mikrotik.com/winbox/${version}/winbox64.exe";
-    sha256 = "RV+j8FQigpwPprR2xuMYpDRMDwugSZD+O2ZmyPZDz54=";
+    sha256 = "1dxny1qmq4pmdn40j9zk461p3qwwjin5d18ajhczrnqrcr2v1xwi";
   } else {
     url = "https://download.mikrotik.com/winbox/${version}/winbox.exe";
-    sha256 = "dh3P+otukhnEpVTqTu16MgIHVnJbzp4Voj+wZ3r5Fxg=";
+    sha256 = "11vmdkwi38y7wkdkgsqpfs4l2bdaj9yg6c8wlgfzp91227gjn5li";
   });
 
   # This is from the winbox AUR package:
diff --git a/pkgs/tools/archivers/afio/default.nix b/pkgs/tools/archivers/afio/default.nix
index 7ef374b5bfe66..d321bd44985d8 100644
--- a/pkgs/tools/archivers/afio/default.nix
+++ b/pkgs/tools/archivers/afio/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
      * a comprehensive discussion.
      */
     license = lib.licenses.free;
+    mainProgram = "afio";
   };
 }
diff --git a/pkgs/tools/archivers/arc_unpacker/default.nix b/pkgs/tools/archivers/arc_unpacker/default.nix
index ee40a7a5ab4ac..f293ae49626f9 100644
--- a/pkgs/tools/archivers/arc_unpacker/default.nix
+++ b/pkgs/tools/archivers/arc_unpacker/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ midchildan ];
     platforms = platforms.all;
+    mainProgram = "arc_unpacker";
   };
 }
diff --git a/pkgs/tools/archivers/cabextract/default.nix b/pkgs/tools/archivers/cabextract/default.nix
index 6268a7826e594..6860b52267717 100644
--- a/pkgs/tools/archivers/cabextract/default.nix
+++ b/pkgs/tools/archivers/cabextract/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "cabextract";
   };
 }
diff --git a/pkgs/tools/archivers/cpio/default.nix b/pkgs/tools/archivers/cpio/default.nix
index 0fe726f09977f..5b65a580fa673 100644
--- a/pkgs/tools/archivers/cpio/default.nix
+++ b/pkgs/tools/archivers/cpio/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, autoreconfHook
 
 # for passthru.tests
 , git
@@ -11,13 +12,15 @@
 
 stdenv.mkDerivation rec {
   pname = "cpio";
-  version = "2.14";
+  version = "2.15";
 
   src = fetchurl {
     url = "mirror://gnu/cpio/cpio-${version}.tar.bz2";
-    sha256 = "/NwV1g9yZ6b8fvzWudt7bIlmxPL7u5ZMJNQTNv0/LBI=";
+    hash = "sha256-k3YQuXwymh7JJoVT+3gAN7z/8Nz/6XJevE/ZwaqQdds=";
   };
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   separateDebugInfo = true;
 
   preConfigure = lib.optionalString stdenv.isCygwin ''
@@ -38,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     priority = 6; # resolves collision with gnutar's "libexec/rmt"
+    mainProgram = "cpio";
   };
 }
diff --git a/pkgs/tools/archivers/cromfs/default.nix b/pkgs/tools/archivers/cromfs/default.nix
index 899640d90c455..b775eb1561ef0 100644
--- a/pkgs/tools/archivers/cromfs/default.nix
+++ b/pkgs/tools/archivers/cromfs/default.nix
@@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ fuse perl ];
 
+  makeFlags = [ "CXXFLAGS=-std=c++03" ];
+
   meta = with lib; {
     description = "FUSE Compressed ROM filesystem with lzma";
     homepage = "https://bisqwit.iki.fi/source/cromfs.html";
diff --git a/pkgs/tools/archivers/ctrtool/default.nix b/pkgs/tools/archivers/ctrtool/default.nix
index 2408f3cf6d6ac..74b95a116575e 100644
--- a/pkgs/tools/archivers/ctrtool/default.nix
+++ b/pkgs/tools/archivers/ctrtool/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     description = "A tool to extract data from a 3ds rom";
     platforms = platforms.linux;
     maintainers = [ maintainers.marius851000 ];
+    mainProgram = "ctrtool";
   };
 
 }
diff --git a/pkgs/tools/archivers/dumpnar/default.nix b/pkgs/tools/archivers/dumpnar/default.nix
index e2285574a9a6f..77ce4649b3993 100644
--- a/pkgs/tools/archivers/dumpnar/default.nix
+++ b/pkgs/tools/archivers/dumpnar/default.nix
@@ -18,9 +18,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/stephank/dumpnar";
-    description = "Minimal tool to produce a Nix NAR archive.";
+    description = "Minimal tool to produce a Nix NAR archive";
     license = licenses.lgpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.stephank ];
+    mainProgram = "dumpnar";
   };
 }
diff --git a/pkgs/tools/archivers/fsarchiver/default.nix b/pkgs/tools/archivers/fsarchiver/default.nix
index e9265108bb959..40a16f21ab599 100644
--- a/pkgs/tools/archivers/fsarchiver/default.nix
+++ b/pkgs/tools/archivers/fsarchiver/default.nix
@@ -40,5 +40,6 @@ in stdenv.mkDerivation {
     license = licenses.lgpl2;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "fsarchiver";
   };
 }
diff --git a/pkgs/tools/archivers/gbl/default.nix b/pkgs/tools/archivers/gbl/default.nix
index 90c66e8ac7c53..02dbfc683edb3 100644
--- a/pkgs/tools/archivers/gbl/default.nix
+++ b/pkgs/tools/archivers/gbl/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jonas-schievink/gbl";
     license = licenses.mit;
     maintainers = [ maintainers.raboof ];
+    mainProgram = "gbl";
   };
 }
diff --git a/pkgs/tools/archivers/innoextract/default.nix b/pkgs/tools/archivers/innoextract/default.nix
index d2e1bebb36764..7c66dcb84d00d 100644
--- a/pkgs/tools/archivers/innoextract/default.nix
+++ b/pkgs/tools/archivers/innoextract/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.zlib;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
+    mainProgram = "innoextract";
   };
 }
diff --git a/pkgs/tools/archivers/lha/default.nix b/pkgs/tools/archivers/lha/default.nix
index f6b5c2bd13505..b7d0ac9302903 100644
--- a/pkgs/tools/archivers/lha/default.nix
+++ b/pkgs/tools/archivers/lha/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     # not a free software license (it has additional requirements on commercial
     # use).
     license = licenses.unfree;
+    mainProgram = "lha";
   };
 }
diff --git a/pkgs/tools/archivers/maxcso/default.nix b/pkgs/tools/archivers/maxcso/default.nix
index 1e7fe73728dee..e16d557965dd0 100644
--- a/pkgs/tools/archivers/maxcso/default.nix
+++ b/pkgs/tools/archivers/maxcso/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ david-sawatzke ];
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.isc;
+    mainProgram = "maxcso";
   };
 }
diff --git a/pkgs/tools/archivers/ndstool/default.nix b/pkgs/tools/archivers/ndstool/default.nix
index de7f02ce846a7..e612d83d066d1 100644
--- a/pkgs/tools/archivers/ndstool/default.nix
+++ b/pkgs/tools/archivers/ndstool/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     description = "A tool to unpack and repack nds rom";
     maintainers = [ lib.maintainers.marius851000 ];
     license = lib.licenses.gpl3;
+    mainProgram = "ndstool";
   };
 }
diff --git a/pkgs/tools/archivers/payload-dumper-go/default.nix b/pkgs/tools/archivers/payload-dumper-go/default.nix
index bb1572e1ceb67..bb1572e1ceb67 100755..100644
--- a/pkgs/tools/archivers/payload-dumper-go/default.nix
+++ b/pkgs/tools/archivers/payload-dumper-go/default.nix
diff --git a/pkgs/tools/archivers/payload_dumper/default.nix b/pkgs/tools/archivers/payload_dumper/default.nix
index 138f62739f41d..ebb717a9e4ceb 100644
--- a/pkgs/tools/archivers/payload_dumper/default.nix
+++ b/pkgs/tools/archivers/payload_dumper/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Android OTA payload dumper";
     license = licenses.gpl3;
     maintainers = with maintainers; [ DamienCassou ];
+    mainProgram = "payload_dumper";
   };
 })
diff --git a/pkgs/tools/archivers/peazip/default.nix b/pkgs/tools/archivers/peazip/default.nix
index b00f7b9d665c7..4070c58d46c2e 100644
--- a/pkgs/tools/archivers/peazip/default.nix
+++ b/pkgs/tools/archivers/peazip/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "peazip";
-  version = "9.4.0";
+  version = "9.6.0";
 
   src = fetchFromGitHub {
     owner = "peazip";
     repo = pname;
     rev = version;
-    hash = "sha256-to5VhuTomw33WRWrtSIMF/SD+KVXsUKmSrJ84BNatqw=";
+    hash = "sha256-75EkVRx6bX1ZZzeNSR7IvKNjTA5NvzFzUJdORiAVHBo=";
   };
   sourceRoot = "${src.name}/peazip-sources";
 
diff --git a/pkgs/tools/archivers/pxattr/default.nix b/pkgs/tools/archivers/pxattr/default.nix
index 57eb7e6f87a13..de4fc45b26118 100644
--- a/pkgs/tools/archivers/pxattr/default.nix
+++ b/pkgs/tools/archivers/pxattr/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     maintainers = [ lib.maintainers.vrthra ];
     license = [ lib.licenses.mit ];
     platforms = lib.platforms.unix;
+    mainProgram = "pxattr";
   };
 }
diff --git a/pkgs/tools/archivers/quickbms/default.nix b/pkgs/tools/archivers/quickbms/default.nix
index b8e1e9fc6f1c7..8915dda1e27e9 100644
--- a/pkgs/tools/archivers/quickbms/default.nix
+++ b/pkgs/tools/archivers/quickbms/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "quickbms";
   };
 }
diff --git a/pkgs/tools/archivers/rar/default.nix b/pkgs/tools/archivers/rar/default.nix
index a1c22835752b8..168316813f76e 100644
--- a/pkgs/tools/archivers/rar/default.nix
+++ b/pkgs/tools/archivers/rar/default.nix
@@ -1,39 +1,43 @@
-{ lib, stdenv, fetchurl, autoPatchelfHook, installShellFiles }:
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, installShellFiles
+}:
 
 let
-  version = "6.21";
+  version = "6.24";
   downloadVersion = lib.replaceStrings [ "." ] [ "" ] version;
-  # Use `nix store prefetch-file <url>` to generate the hashes for the other systems
-  # TODO: create update script
-  srcUrl = {
+  # Use `./update.sh` to generate the entries below
+  srcs = {
     i686-linux = {
       url = "https://www.rarlab.com/rar/rarlinux-x32-${downloadVersion}.tar.gz";
-      hash = "sha256-mDeRmLTjF0ZLv4JoLrgI8YBFFulBSKfOPb6hrxDZIkU=";
+      hash = "sha256-aacgJH0iJLRNEaZuVyzl/FxZgSnW3dIZFUfaqt0l88M=";
     };
     x86_64-linux = {
       url = "https://www.rarlab.com/rar/rarlinux-x64-${downloadVersion}.tar.gz";
-      hash = "sha256-3fr5aVkh/r6OfBEcZULJSZp5ydakJOLRPlgzMdlwGTM=";
+      hash = "sha256-iOIqjoQSXJR2N7vyjHRuM4oKYyedgPn51zc2A4ddses=";
     };
     aarch64-darwin = {
       url = "https://www.rarlab.com/rar/rarmacos-arm-${downloadVersion}.tar.gz";
-      hash = "sha256-OR9HBlRteTzuyQ06tyXTSrFTBHFwmZ41kUfvgflogT4=";
+      hash = "sha256-2r4zWDT7Xw/CNvA7oNEsGfrXJDzFa5gNthIB/5TYR5U=";
     };
     x86_64-darwin = {
       url = "https://www.rarlab.com/rar/rarmacos-x64-${downloadVersion}.tar.gz";
-      hash = "sha256-UN3gmEuIpCXwmw3/l+KdarAYLy1DxGoPAOB2bfJTGbw=";
+      hash = "sha256-4vENPNfMpQstsm9+8+glHPK9fAlDmnHWbCHW+HUwSX4=";
     };
-  }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+  };
   manSrc = fetchurl {
     url = "https://aur.archlinux.org/cgit/aur.git/plain/rar.1?h=rar&id=8e39a12e88d8a3b168c496c44c18d443c876dd10";
     name = "rar.1";
     hash = "sha256-93cSr9oAsi+xHUtMsUvICyHJe66vAImS2tLie7nt8Uw=";
   };
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "rar";
   inherit version;
 
-  src = fetchurl srcUrl;
+  src = fetchurl (srcs.${stdenv.hostPlatform.system});
 
   dontBuild = true;
 
@@ -57,12 +61,15 @@ stdenv.mkDerivation rec {
     installManPage ${manSrc}
   '';
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     description = "Utility for RAR archives";
     homepage = "https://www.rarlab.com/";
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
+    mainProgram = "rar";
     maintainers = with maintainers; [ thiagokokada ];
-    platforms = with platforms; linux ++ darwin;
+    platforms = lib.attrNames srcs;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/pkgs/tools/archivers/rar/update.sh b/pkgs/tools/archivers/rar/update.sh
new file mode 100755
index 0000000000000..f81562727f29d
--- /dev/null
+++ b/pkgs/tools/archivers/rar/update.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gawk gnused pup jq
+
+set -euo pipefail
+
+DIRNAME=$(dirname "$0")
+readonly DIRNAME
+readonly NIXPKGS_ROOT="../../../.."
+readonly NIX_FLAGS=(--extra-experimental-features 'nix-command flakes')
+
+# awk is used for parsing the RARLAB website to get the newest version
+readonly AWK_FIELD_SEPARATOR='[-.]'
+# shellcheck disable=SC2016
+readonly AWK_COMMAND='
+# We will get the following output from pup:
+# /rar/rarlinux-x64-700b3.tar.gz
+# /rar/rarmacos-x64-700b3.tar.gz
+# /rar/rarlinux-x64-624.tar.gz
+# /rar/rarbsd-x64-624.tar.gz
+# /rar/rarmacos-x64-624.tar.gz
+
+# Ignore anything that is flagged as beta (e.g.: `/rar/rarlinux-x64-700b3.tar.gz`)
+!/[0-9]+b[0-9]*.tar.gz$/ {
+    # /rar/rarlinux-x64-624.tar.gz -> 624
+    val = $3
+    # Only get the value if it is bigger than the current one
+    if (val > max) max = val
+}
+END {
+    # 624 -> 6.24
+    printf "%.2f\n", max/100
+}
+'
+
+updateHash() {
+    local -r version="${1//./}"
+    local -r arch="$2"
+    local -r os="$3"
+    local -r nix_arch="$4"
+
+    url="https://www.rarlab.com/rar/rar$os-$arch-$version.tar.gz"
+    hash=$(nix store prefetch-file --json "$url" | jq -r .hash)
+    currentHash=$(cd "$DIRNAME" && nix "${NIX_FLAGS[@]}" eval --raw "$NIXPKGS_ROOT#legacyPackages.$nix_arch.rar.src.outputHash")
+
+    sed -i "s|$currentHash|$hash|g" "$DIRNAME/default.nix"
+}
+
+updateVersion() {
+    local -r version="$1"
+    sed -i "s|version = \"[0-9.]*\";|version = \"$version\";|g" "$DIRNAME/default.nix"
+}
+
+latestVersion="${1:-}"
+if [[ -z "$latestVersion" ]]; then
+    latestVersion=$(
+        curl --silent --location --fail https://www.rarlab.com/download.htm | \
+            pup 'a[href*=".tar.gz"] attr{href}' | \
+            awk -F"$AWK_FIELD_SEPARATOR" "$AWK_COMMAND"
+    )
+fi
+readonly latestVersion
+echo "Latest version: $latestVersion"
+
+currentVersion=$(cd "$DIRNAME" && nix "${NIX_FLAGS[@]}" eval --raw "$NIXPKGS_ROOT#legacyPackages.x86_64-linux.rar.version")
+readonly currentVersion
+echo "Current version: $currentVersion"
+
+if [[ "$currentVersion" == "$latestVersion" ]]; then
+    echo "rar is up-to-date"
+    exit 0
+fi
+
+updateHash "$latestVersion" x32 linux i686-linux
+updateHash "$latestVersion" x64 linux x86_64-linux
+updateHash "$latestVersion" arm macos aarch64-darwin
+updateHash "$latestVersion" x64 macos x86_64-darwin
+
+updateVersion "$latestVersion"
diff --git a/pkgs/tools/archivers/rpmextract/default.nix b/pkgs/tools/archivers/rpmextract/default.nix
index db768a5d14a22..ed81a23ba7e5b 100644
--- a/pkgs/tools/archivers/rpmextract/default.nix
+++ b/pkgs/tools/archivers/rpmextract/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     platforms = platforms.all;
     license = licenses.gpl2;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "rpmextract";
   };
 }
diff --git a/pkgs/tools/archivers/runzip/default.nix b/pkgs/tools/archivers/runzip/default.nix
index fddf90a5d23c5..02b6bd45d8e1d 100644
--- a/pkgs/tools/archivers/runzip/default.nix
+++ b/pkgs/tools/archivers/runzip/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.unix;
+    mainProgram = "runzip";
   };
 }
diff --git a/pkgs/tools/archivers/sharutils/default.nix b/pkgs/tools/archivers/sharutils/default.nix
index c504ed8f16e1f..5c84e596531c3 100644
--- a/pkgs/tools/archivers/sharutils/default.nix
+++ b/pkgs/tools/archivers/sharutils/default.nix
@@ -58,6 +58,9 @@ stdenv.mkDerivation rec {
       substituteInPlace intl/Makefile.in --replace "AR = ar" ""
     '';
 
+  # Workaround to fix the static build on macOS.
+  env.NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration";
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/tools/archivers/tarlz/default.nix b/pkgs/tools/archivers/tarlz/default.nix
deleted file mode 100644
index 7f41a05a9a889..0000000000000
--- a/pkgs/tools/archivers/tarlz/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, stdenv, fetchurl, lzip, lzlib, texinfo }:
-
-stdenv.mkDerivation rec {
-  pname = "tarlz";
-  version = "0.22";
-  outputs = [ "out" "man" "info" ];
-
-  nativeBuildInputs = [ lzip texinfo ];
-  buildInputs = [ lzlib ];
-
-  src = fetchurl {
-    url = "mirror://savannah/lzip/${pname}/${pname}-${version}.tar.lz";
-    sha256 = "sha256-/M9yJvoktV0ybKsT926jSb7ERsWo33GkbTQwmaBQkdw=";
-  };
-
-  enableParallelBuilding = true;
-  makeFlags = [ "CXX:=$(CXX)" ];
-  doCheck = !stdenv.isDarwin;
-
-  meta = with lib; {
-    homepage = "https://www.nongnu.org/lzip/${pname}.html";
-    description =
-      "Massively parallel combined implementation of the tar archiver and the lzip compressor";
-    license = licenses.gpl2Plus;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ ehmry ];
-  };
-}
diff --git a/pkgs/tools/archivers/unar/default.nix b/pkgs/tools/archivers/unar/default.nix
index ee1693ee18e25..4b2c66c0fc406 100644
--- a/pkgs/tools/archivers/unar/default.nix
+++ b/pkgs/tools/archivers/unar/default.nix
@@ -50,15 +50,17 @@ stdenv.mkDerivation rec {
     lib.optionals stdenv.isLinux [ gnustep.make ] ++
     lib.optionals stdenv.isDarwin [ xcbuildHook ];
 
+  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
+  # xcbuild links with clang instead of clang++.
+  env = lib.optionalAttrs stdenv.isDarwin {
+    LD_FLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
   xcbuildFlags = lib.optionals stdenv.isDarwin [
     "-target unar"
     "-target lsar"
     "-configuration Release"
-    "MACOSX_DEPLOYMENT_TARGET=10.12"
-    # Fix "ld: file not found: /nix/store/*-clang-7.1.0/lib/arc/libarclite_macosx." error
-    # Disabling ARC may leak memory, however since this program is generally not used for
-    # long periods of time, it shouldn't be an issue
-    "CLANG_LINK_OBJC_RUNTIME=NO"
+    "MACOSX_DEPLOYMENT_TARGET=${stdenv.hostPlatform.darwinMinVersion}"
   ];
 
   makefile = lib.optionalString (!stdenv.isDarwin) "Makefile.linux";
@@ -92,7 +94,7 @@ stdenv.mkDerivation rec {
       ADF, DMS, LZX, PowerPacker, LBR, Squeeze, Crunch, and other old formats.
     '';
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ peterhoeg thiagokokada ];
+    maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/archivers/undmg/default.nix b/pkgs/tools/archivers/undmg/default.nix
index 0bbf725d191b4..9fe61d5944165 100644
--- a/pkgs/tools/archivers/undmg/default.nix
+++ b/pkgs/tools/archivers/undmg/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = with maintainers; [ matthewbauer lnl7 ];
+    mainProgram = "undmg";
   };
 }
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index ef458089e31a2..9350a6fd1eed9 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Utility for RAR archives";
     homepage = "https://www.rarlab.com/";
     license = licenses.unfreeRedistributable;
+    mainProgram = "unrar";
     maintainers = with maintainers; [ ehmry wegank ];
     platforms = platforms.all;
   };
diff --git a/pkgs/tools/archivers/unshield/default.nix b/pkgs/tools/archivers/unshield/default.nix
index b3d023df59b78..50d93fea99ff2 100644
--- a/pkgs/tools/archivers/unshield/default.nix
+++ b/pkgs/tools/archivers/unshield/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/twogood/unshield";
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "unshield";
   };
 }
diff --git a/pkgs/tools/archivers/unzip/default.nix b/pkgs/tools/archivers/unzip/default.nix
index ab37ef98c0bde..9860817cf3e15 100644
--- a/pkgs/tools/archivers/unzip/default.nix
+++ b/pkgs/tools/archivers/unzip/default.nix
@@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.info-zip.org";
     description = "An extraction utility for archives compressed in .zip format";
-    license = lib.licenses.free; # http://www.info-zip.org/license.html
+    license = lib.licenses.info-zip;
     platforms = lib.platforms.all;
     mainProgram = "unzip";
   };
diff --git a/pkgs/tools/archivers/unzoo/default.nix b/pkgs/tools/archivers/unzoo/default.nix
index c8fd4364ea33f..b02d010ac0c9a 100644
--- a/pkgs/tools/archivers/unzoo/default.nix
+++ b/pkgs/tools/archivers/unzoo/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.all;
+    mainProgram = "unzoo";
   };
 }
diff --git a/pkgs/tools/archivers/xarchive/default.nix b/pkgs/tools/archivers/xarchive/default.nix
index d28e9f31b1ab7..d26fdabc1d5d6 100644
--- a/pkgs/tools/archivers/xarchive/default.nix
+++ b/pkgs/tools/archivers/xarchive/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     maintainers = [ lib.maintainers.domenkozar ];
     license = lib.licenses.gpl2;
     platforms = lib.platforms.all;
+    mainProgram = "xarchive";
   };
 }
diff --git a/pkgs/tools/archivers/xarchiver/default.nix b/pkgs/tools/archivers/xarchiver/default.nix
index 84052c475e92f..9c0f4685fa0f0 100644
--- a/pkgs/tools/archivers/xarchiver/default.nix
+++ b/pkgs/tools/archivers/xarchiver/default.nix
@@ -2,14 +2,14 @@
   coreutils, zip, unzip, p7zip, unar, gnutar, bzip2, gzip, lhasa, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.5.4.21";
+  version = "0.5.4.22";
   pname = "xarchiver";
 
   src = fetchFromGitHub {
     owner = "ib";
     repo = "xarchiver";
     rev = version;
-    sha256 = "sha256-pYrF9fyEbay+iboL9EuoTETTI3RTcgv3yeVtAWvAe1Q=";
+    sha256 = "sha256-wB1l1OcLK9rh6cpcDprXZBXLXRSwBFV9aueBI57kjJI=";
   };
 
   nativeBuildInputs = [ intltool pkg-config makeWrapper wrapGAppsHook ];
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     maintainers = [ lib.maintainers.domenkozar ];
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
+    mainProgram = "xarchiver";
   };
 }
diff --git a/pkgs/tools/archivers/zarchive/default.nix b/pkgs/tools/archivers/zarchive/default.nix
index 442257779c89f..3ef68ae8b71eb 100644
--- a/pkgs/tools/archivers/zarchive/default.nix
+++ b/pkgs/tools/archivers/zarchive/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Exzap/ZArchive";
     license = licenses.mit0;
     maintainers = with maintainers; [ zhaofengli ];
+    mainProgram = "zarchive";
   };
 }
diff --git a/pkgs/tools/archivers/zpaq/default.nix b/pkgs/tools/archivers/zpaq/default.nix
index 6d0f00f514903..6a03b825e902d 100644
--- a/pkgs/tools/archivers/zpaq/default.nix
+++ b/pkgs/tools/archivers/zpaq/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     homepage = "http://mattmahoney.net/dc/zpaq.html";
     license = licenses.gpl3Plus ;
     maintainers = with maintainers; [ raskin ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
+    mainProgram = "zpaq";
   };
 }
diff --git a/pkgs/tools/audio/abcm2ps/default.nix b/pkgs/tools/audio/abcm2ps/default.nix
index 249b4ba1706cc..96893b8fe0721 100644
--- a/pkgs/tools/audio/abcm2ps/default.nix
+++ b/pkgs/tools/audio/abcm2ps/default.nix
@@ -5,17 +5,18 @@
 , pkg-config
 , freetype
 , pango
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "abcm2ps";
-  version = "8.14.14";
+  version = "8.14.15";
 
   src = fetchFromGitHub {
     owner = "leesavide";
     repo = "abcm2ps";
-    rev = "v${version}";
-    hash = "sha256-2BSbnziwlilYio9CF4MTlj0GVlkSpL8jeaqvLIBCeLQ=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-0ZSMKARX16/33sIWR8LOVOFblI/Q+iZgnfVq/xqRMnI=";
   };
 
   configureFlags = [
@@ -26,11 +27,19 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ freetype pango ];
 
+  passthru.tests = {
+    version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      command = "abcm2ps -V";
+    };
+  };
+
   meta = with lib; {
     homepage = "http://moinejf.free.fr/";
     license = licenses.lgpl3Plus;
     description = "A command line program which converts ABC to music sheet in PostScript or SVG format";
     platforms = platforms.unix;
     maintainers = [ maintainers.dotlambda ];
+    mainProgram = "abcm2ps";
   };
-}
+})
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index 3d5474a0984a9..f4d51e4815839 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 = "2023.09.13";
+  version = "2024.01.04";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    hash = "sha256-rpGINfLuWHu6QA/30aI9B8Hmpfx1o6vstiQn+t0blxA=";
+    hash = "sha256-IsQ+lAmQQGitKRlQUc7PgRKgwlEgYsR5q2XHp9k7tEM=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/accuraterip-checksum/default.nix b/pkgs/tools/audio/accuraterip-checksum/default.nix
index 161e9848bea6f..8658dfb5a7aa4 100644
--- a/pkgs/tools/audio/accuraterip-checksum/default.nix
+++ b/pkgs/tools/audio/accuraterip-checksum/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
     platforms = with platforms; linux;
+    mainProgram = "accuraterip-checksum";
   };
 }
diff --git a/pkgs/tools/audio/acousticbrainz-client/default.nix b/pkgs/tools/audio/acousticbrainz-client/default.nix
index 651605679684e..1d4b59ed2c924 100644
--- a/pkgs/tools/audio/acousticbrainz-client/default.nix
+++ b/pkgs/tools/audio/acousticbrainz-client/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     # essentia-extractor is only available for those platforms
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = with maintainers; [ ];
+    mainProgram = "abzsubmit";
   };
 }
diff --git a/pkgs/tools/audio/asap/default.nix b/pkgs/tools/audio/asap/default.nix
index c4a9b03039c56..ccdb5ed930393 100644
--- a/pkgs/tools/audio/asap/default.nix
+++ b/pkgs/tools/audio/asap/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asap";
-  version = "6.0.0";
+  version = "6.0.1";
 
   src = fetchzip {
     url = "mirror://sourceforge/project/asap/asap/${version}/asap-${version}.tar.gz";
-    sha256 = "sha256-j7vznFI/Yg1yuRvYDmRSyHDfDN7iFV+b6MK2jdnaz6Q=";
+    sha256 = "sha256-nTnnRDYOkTmXfXPS1XIHaC2LHFfZz+gVInQ3satuyDM=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/audio/audiowaveform/default.nix b/pkgs/tools/audio/audiowaveform/default.nix
index 11dc8541c5b93..8f194df4d936b 100644
--- a/pkgs/tools/audio/audiowaveform/default.nix
+++ b/pkgs/tools/audio/audiowaveform/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "audiowaveform";
-  version = "1.9.1";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "bbc";
     repo = "audiowaveform";
     rev = version;
-    sha256 = "sha256-qnidR+V2CwDnztUv73k72lVyH+B1yfb3c7BLus4P6Wk=";
+    sha256 = "sha256-FcQq0xWs3jH2MfhFQ5r5Vaz8B3akBHBSg8Z/k9An/Wg=";
   };
 
   nativeBuildInputs = [ cmake gtest ];
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ edbentley ];
+    mainProgram = "audiowaveform";
   };
 }
diff --git a/pkgs/tools/audio/bark/default.nix b/pkgs/tools/audio/bark/default.nix
index f943b555b0102..e866b1a18a3b3 100644
--- a/pkgs/tools/audio/bark/default.nix
+++ b/pkgs/tools/audio/bark/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage {
     license = lib.licenses.agpl3Only;
     maintainers = with lib.maintainers; [ samw ];
     platforms = lib.platforms.linux;
+    mainProgram = "bark";
   };
 }
 
diff --git a/pkgs/tools/audio/beets/builtin-plugins.nix b/pkgs/tools/audio/beets/builtin-plugins.nix
index 1fef39ef72f53..c6ae24dc6906e 100644
--- a/pkgs/tools/audio/beets/builtin-plugins.nix
+++ b/pkgs/tools/audio/beets/builtin-plugins.nix
@@ -9,28 +9,42 @@
 , mp3gain
 , mp3val
 , python3Packages
+, version
 , ...
 }: {
   absubmit = {
     enable = lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms;
     wrapperBins = [ essentia-extractor ];
+    testPaths = [ ];
   };
   acousticbrainz.propagatedBuildInputs = [ python3Packages.requests ];
   albumtypes = { };
-  aura.propagatedBuildInputs = with python3Packages; [ flask pillow ];
-  badfiles.wrapperBins = [ mp3val flac ];
+  aura = {
+    propagatedBuildInputs = with python3Packages; [ flask pillow ];
+    testPaths = [ ];
+  };
+  badfiles = {
+    testPaths = [ ];
+    wrapperBins = [ mp3val flac ];
+  };
   bareasc = { };
   beatport.propagatedBuildInputs = [ python3Packages.requests-oauthlib ];
-  bench = { };
-  bpd = { };
-  bpm = { };
-  bpsync = { };
+  bench.testPaths = [ ];
+  bpd.testPaths = [ ];
+  bpm.testPaths = [ ];
+  bpsync.testPaths = [ ];
   bucket = { };
-  chroma.propagatedBuildInputs = [ python3Packages.pyacoustid ];
+  chroma = {
+    propagatedBuildInputs = [ python3Packages.pyacoustid ];
+    testPaths = [ ];
+  };
   convert.wrapperBins = [ ffmpeg ];
-  deezer.propagatedBuildInputs = [ python3Packages.requests ];
+  deezer = {
+    propagatedBuildInputs = [ python3Packages.requests ];
+    testPaths = [ ];
+  };
   discogs.propagatedBuildInputs = with python3Packages; [ discogs-client requests ];
-  duplicates = { };
+  duplicates.testPaths = [ ];
   edit = { };
   embedart = {
     propagatedBuildInputs = with python3Packages; [ pillow ];
@@ -43,32 +57,44 @@
     wrapperBins = [ imagemagick ];
   };
   filefilter = { };
-  fish = { };
-  freedesktop = { };
-  fromfilename = { };
+  fish.testPaths = [ ];
+  freedesktop.testPaths = [ ];
+  fromfilename.testPaths = [ ];
   ftintitle = { };
-  fuzzy = { };
-  gmusic = { };
+  fuzzy.testPaths = [ ];
+  gmusic.testPaths = [ ];
   hook = { };
   ihate = { };
   importadded = { };
   importfeeds = { };
   info = { };
-  inline = { };
+  inline.testPaths = [ ];
   ipfs = { };
   keyfinder.wrapperBins = [ keyfinder-cli ];
-  kodiupdate.propagatedBuildInputs = [ python3Packages.requests ];
+  kodiupdate = {
+    propagatedBuildInputs = [ python3Packages.requests ];
+    testPaths = [ ];
+  };
   lastgenre.propagatedBuildInputs = [ python3Packages.pylast ];
-  lastimport.propagatedBuildInputs = [ python3Packages.pylast ];
-  loadext.propagatedBuildInputs = [ python3Packages.requests ];
+  lastimport = {
+    propagatedBuildInputs = [ python3Packages.pylast ];
+    testPaths = [ ];
+  };
+  loadext = {
+    propagatedBuildInputs = [ python3Packages.requests ];
+    testPaths = [ ];
+  };
   lyrics.propagatedBuildInputs = [ python3Packages.beautifulsoup4 ];
-  mbcollection = { };
+  mbcollection.testPaths = [ ];
   mbsubmit = { };
   mbsync = { };
   metasync = { };
-  missing = { };
+  missing.testPaths = [ ];
   mpdstats.propagatedBuildInputs = [ python3Packages.mpd2 ];
-  mpdupdate.propagatedBuildInputs = [ python3Packages.mpd2 ];
+  mpdupdate = {
+    propagatedBuildInputs = [ python3Packages.mpd2 ];
+    testPaths = [ ];
+  };
   parentwork = { };
   permissions = { };
   play = { };
@@ -76,12 +102,18 @@
   plexupdate = { };
   random = { };
   replaygain.wrapperBins = [ aacgain ffmpeg mp3gain ];
-  rewrite = { };
-  scrub = { };
+  rewrite.testPaths= [ ];
+  scrub.testPaths = [ ];
   smartplaylist = { };
-  sonosupdate.propagatedBuildInputs = [ python3Packages.soco ];
+  sonosupdate = {
+    propagatedBuildInputs = [ python3Packages.soco ];
+    testPaths = [ ];
+  };
   spotify = { };
-  subsonicplaylist.propagatedBuildInputs = [ python3Packages.requests ];
+  subsonicplaylist = {
+    propagatedBuildInputs = [ python3Packages.requests ];
+    testPaths = [ ];
+  };
   subsonicupdate.propagatedBuildInputs = [ python3Packages.requests ];
   the = { };
   thumbnails = {
@@ -89,7 +121,19 @@
     wrapperBins = [ imagemagick ];
   };
   types.testPaths = [ "test/test_types_plugin.py" ];
-  unimported = { };
+  unimported.testPaths = [ ];
   web.propagatedBuildInputs = [ python3Packages.flask ];
   zero = { };
+  # NOTE: Condition can be removed once stable beets updates
+} // lib.optionalAttrs ((lib.versions.majorMinor version) != "1.6") {
+  limit = { };
+  substitute = {
+    testPaths = [ ];
+  };
+  advancedrewrite = {
+    testPaths = [ ];
+  };
+  autobpm = {
+    testPaths = [ ];
+  };
 }
diff --git a/pkgs/tools/audio/beets/common.nix b/pkgs/tools/audio/beets/common.nix
index 440606bdd8364..fb8b6be0ed8a6 100644
--- a/pkgs/tools/audio/beets/common.nix
+++ b/pkgs/tools/audio/beets/common.nix
@@ -26,6 +26,8 @@
 , extraPatches ? [ ]
 , pluginOverrides ? { }
 , disableAllPlugins ? false
+, disabledTests ? []
+, extraNativeBuildInputs ? []
 
   # tests
 , runCommand
@@ -34,12 +36,26 @@
 let
   inherit (lib) attrNames attrValues concatMap;
 
-  mkPlugin = { enable ? !disableAllPlugins, builtin ? false, propagatedBuildInputs ? [ ], testPaths ? [ ], wrapperBins ? [ ] }: {
-    inherit enable builtin propagatedBuildInputs testPaths wrapperBins;
+  mkPlugin = { name
+  , enable ? !disableAllPlugins
+  , builtin ? false
+  , propagatedBuildInputs ? [ ]
+  , testPaths ? [
+    # NOTE: This conditional can be removed when beets-stable is updated and
+    # the default plugins test path is changed
+    (if (lib.versions.majorMinor version) == "1.6" then
+      "test/test_${name}.py"
+    else
+      "test/plugins/test_${name}.py"
+    )
+  ]
+  , wrapperBins ? [ ]
+  }: {
+    inherit name enable builtin propagatedBuildInputs testPaths wrapperBins;
   };
 
   basePlugins = lib.mapAttrs (_: a: { builtin = true; } // a) (import ./builtin-plugins.nix inputs);
-  allPlugins = lib.mapAttrs (_: mkPlugin) (lib.recursiveUpdate basePlugins pluginOverrides);
+  allPlugins = lib.mapAttrs (n: a: mkPlugin { name = n; } // a) (lib.recursiveUpdate basePlugins pluginOverrides);
   builtinPlugins = lib.filterAttrs (_: p: p.builtin) allPlugins;
   enabledPlugins = lib.filterAttrs (_: p: p.enable) allPlugins;
   disabledPlugins = lib.filterAttrs (_: p: !p.enable) allPlugins;
@@ -52,12 +68,6 @@ python3Packages.buildPythonApplication {
 
   patches = extraPatches;
 
-  postPatch = ''
-    # https://github.com/beetbox/beets/pull/4868
-    substituteInPlace beets/util/artresizer.py \
-      --replace "Image.ANTIALIAS" "Image.Resampling.LANCZOS"
-  '';
-
   propagatedBuildInputs = with python3Packages; [
     confuse
     gst-python
@@ -76,7 +86,7 @@ python3Packages.buildPythonApplication {
   nativeBuildInputs = [
     gobject-introspection
     sphinxHook
-  ];
+  ] ++ extraNativeBuildInputs;
 
   buildInputs = [
   ] ++ (with gst_all_1; [
@@ -93,24 +103,6 @@ python3Packages.buildPythonApplication {
     cp extra/_beet $out/share/zsh/site-functions/
   '';
 
-  doInstallCheck = true;
-
-  installCheckPhase = ''
-    runHook preInstallCheck
-
-    tmphome="$(mktemp -d)"
-
-    EDITOR="${writeScript "beetconfig.sh" ''
-      #!${runtimeShell}
-      cat > "$1" <<CFG
-      plugins: ${lib.concatStringsSep " " (attrNames enabledPlugins)}
-      CFG
-    ''}" HOME="$tmphome" "$out/bin/beet" config -e
-    EDITOR=true HOME="$tmphome" "$out/bin/beet" config -e
-
-    runHook postInstallCheck
-  '';
-
   makeWrapperArgs = [
     "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
     "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\""
@@ -118,17 +110,17 @@ python3Packages.buildPythonApplication {
   ];
 
   nativeCheckInputs = with python3Packages; [
-    pytest
+    pytestCheckHook
     mock
     rarfile
     responses
   ] ++ pluginWrapperBins;
 
-  disabledTestPaths = lib.flatten (attrValues (lib.mapAttrs (n: v: v.testPaths ++ [ "test/test_${n}.py" ]) disabledPlugins));
-
-  checkPhase = ''
-    runHook preCheck
+  disabledTestPaths = lib.flatten (attrValues (lib.mapAttrs (_: v: v.testPaths) disabledPlugins));
+  inherit disabledTests;
 
+  # Perform extra "sanity checks", before running pytest tests.
+  preCheck = ''
     # Check for undefined plugins
     find beetsplug -mindepth 1 \
       \! -path 'beetsplug/__init__.py' -a \
@@ -140,19 +132,13 @@ python3Packages.buildPythonApplication {
     export BEETS_TEST_SHELL="${bashInteractive}/bin/bash --norc"
     export HOME="$(mktemp -d)"
 
-    args=" -m pytest -r fEs"
-    eval "disabledTestPaths=($disabledTestPaths)"
-    for path in ''${disabledTestPaths[@]}; do
-      if [ -e "$path" ]; then
-        args+=" --ignore $path"
-      else
-        echo "Skipping non-existent test path '$path'"
-      fi
-    done
-
-    python $args
-
-    runHook postCheck
+    env EDITOR="${writeScript "beetconfig.sh" ''
+      #!${runtimeShell}
+      cat > "$1" <<CFG
+      plugins: ${lib.concatStringsSep " " (attrNames enabledPlugins)}
+      CFG
+    ''}" "$out/bin/beet" config -e
+    env EDITOR=true "$out/bin/beet" config -e
   '';
 
 
@@ -160,19 +146,17 @@ python3Packages.buildPythonApplication {
 
   passthru.tests.gstreamer = runCommand "beets-gstreamer-test" {
     meta.timeout = 60;
-  }
-  ''
-  set -euo pipefail
-  export HOME=$(mktemp -d)
-  mkdir $out
+  } ''
+    set -euo pipefail
+    export HOME=$(mktemp -d)
+    mkdir $out
 
-  cat << EOF > $out/config.yaml
+    cat << EOF > $out/config.yaml
 replaygain:
   backend: gstreamer
 EOF
 
-  echo $out/config.yaml
-  ${beets}/bin/beet -c $out/config.yaml > /dev/null
+    ${beets}/bin/beet -c $out/config.yaml > /dev/null
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 7f5c3bbceae9b..391974c4a4fd1 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -2,6 +2,7 @@
 , callPackage
 , fetchFromGitHub
 , fetchpatch
+, python3Packages
 }:
 /*
 ** To customize the enabled beets plugins, use the pluginOverrides input to the
@@ -20,6 +21,9 @@ lib.makeExtensible (self: {
   beets = self.beets-stable;
 
   beets-stable = callPackage ./common.nix rec {
+    inherit python3Packages;
+    # NOTE: ./builtin-plugins.nix and ./common.nix can have some conditionals
+    # be removed when stable version updates
     version = "1.6.0";
     src = fetchFromGitHub {
       owner = "beetbox";
@@ -41,27 +45,52 @@ lib.makeExtensible (self: {
       # https://github.com/beetbox/beets/pull/4839
       # The upstream patch does not apply on 1.6.0, as the related code has been refactored since
       ./patches/fix-embedart-imagick-7.1.1-12.patch
+      # Pillow 10 compatibility fix, a backport of
+      # https://github.com/beetbox/beets/pull/4868, which doesn't apply now
+      ./patches/fix-pillow10-compat.patch
+
+      # Sphinx 6 compatibility fix.
+      (fetchpatch {
+        url = "https://github.com/beetbox/beets/commit/2106f471affd1dab35b4b26187b9c74d034528c5.patch";
+        hash = "sha256-V/886dYJW/O55VqU8sd+x/URIFcKhP6j5sUhTGMoxL8=";
+      })
+    ];
+    disabledTests = [
+      # This issue is present on this version alone, and can be removed on the
+      # next stable version version bump. Since this is fixed in branch master,
+      # we don't have a bug ticket open for this. As of writing, it also seems
+      # hard to find a patch that can be backported to v1.6.0 that would fix
+      # the failure, as the master branch has gone through too many changes
+      # now.
+      "test_get_single_item_by_path"
     ];
   };
 
   beets-minimal = self.beets.override { disableAllPlugins = true; };
 
   beets-unstable = callPackage ./common.nix {
-    version = "unstable-2023-07-05";
+    inherit python3Packages;
+    version = "unstable-2023-10-26";
     src = fetchFromGitHub {
       owner = "beetbox";
       repo = "beets";
-      rev = "9481402b3c20739ca0b879d19adbfca22ccd6a44";
-      hash = "sha256-AKmozMNVchysoQcUWd90Ic6bQBKQgylVn0E3i85dGb8=";
+      rev = "6655760732100f5387fad2d2890c015ee5039981";
+      hash = "sha256-Nz9BHtacYpJMLmB3f9WFg6GvMa+BuUhiNbJ9cyannek=";
     };
     extraPatches = [
       # Bash completion fix for Nix
       ./patches/unstable-bash-completion-always-print.patch
     ];
     pluginOverrides = {
-      # unstable has a new plugin, so we register it here.
+      # unstable has new plugins, so we register them here.
       limit = { builtin = true; };
+      substitute = { builtin = true; };
+      advancedrewrite = { builtin = true; };
+      autobpm = { builtin = true; };
     };
+    extraNativeBuildInputs = [
+      python3Packages.pydata-sphinx-theme
+    ];
   };
 
   alternatives = callPackage ./plugins/alternatives.nix { beets = self.beets-minimal; };
diff --git a/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch b/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch
new file mode 100644
index 0000000000000..f85eec20156cc
--- /dev/null
+++ b/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch
@@ -0,0 +1,13 @@
+diff --git i/beets/util/artresizer.py w/beets/util/artresizer.py
+index 8683e228..6f99c79e 100644
+--- i/beets/util/artresizer.py
++++ w/beets/util/artresizer.py
+@@ -72,7 +72,7 @@ def pil_resize(maxwidth, path_in, path_out=None, quality=0, max_filesize=0):
+     try:
+         im = Image.open(util.syspath(path_in))
+         size = maxwidth, maxwidth
+-        im.thumbnail(size, Image.ANTIALIAS)
++        im.thumbnail(size, Image.Resampling.LANCZOS)
+ 
+         if quality == 0:
+             # Use PIL's default quality.
diff --git a/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch b/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch
index 395f40f92c986..96b175117572b 100644
--- a/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch
+++ b/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch
@@ -1,34 +1,36 @@
-diff --git a/beets/ui/commands.py b/beets/ui/commands.py
-index 1377ad0c..e178eeae 100755
---- a/beets/ui/commands.py
-+++ b/beets/ui/commands.py
-@@ -1831,20 +1831,6 @@ default_commands.append(config_cmd)
+diff --git i/beets/ui/commands.py w/beets/ui/commands.py
+index ad4f7821..5077191d 100755
+--- i/beets/ui/commands.py
++++ w/beets/ui/commands.py
+@@ -2381,22 +2381,6 @@ default_commands.append(config_cmd)
  def print_completion(*args):
      for line in completion_script(default_commands + plugins.commands()):
-         print_(line, end='')
+         print_(line, end="")
 -    if not any(os.path.isfile(syspath(p)) for p in BASH_COMPLETION_PATHS):
--        log.warning('Warning: Unable to find the bash-completion package. '
--                    'Command line completion might not work.')
+-        log.warning(
+-            "Warning: Unable to find the bash-completion package. "
+-            "Command line completion might not work."
+-        )
 -
 -
 -BASH_COMPLETION_PATHS = [
--    b'/etc/bash_completion',
--    b'/usr/share/bash-completion/bash_completion',
--    b'/usr/local/share/bash-completion/bash_completion',
+-    b"/etc/bash_completion",
+-    b"/usr/share/bash-completion/bash_completion",
+-    b"/usr/local/share/bash-completion/bash_completion",
 -    # SmartOS
--    b'/opt/local/share/bash-completion/bash_completion',
+-    b"/opt/local/share/bash-completion/bash_completion",
 -    # Homebrew (before bash-completion2)
--    b'/usr/local/etc/bash_completion',
+-    b"/usr/local/etc/bash_completion",
 -]
  
  
  def completion_script(commands):
-diff --git a/test/test_ui.py b/test/test_ui.py
-index f66917dc..f3d934c6 100644
---- a/test/test_ui.py
-+++ b/test/test_ui.py
-@@ -1310,12 +1310,7 @@ class CompletionTest(_common.TestCase, TestHelper):
-                                   stdout=subprocess.PIPE, env=env)
+diff --git i/test/test_ui.py w/test/test_ui.py
+index cae86148..faf266a8 100644
+--- i/test/test_ui.py
++++ w/test/test_ui.py
+@@ -1434,12 +1434,7 @@ class CompletionTest(_common.TestCase, TestHelper):
+         )
  
          # Load bash_completion library.
 -        for path in commands.BASH_COMPLETION_PATHS:
@@ -36,8 +38,8 @@ index f66917dc..f3d934c6 100644
 -                bash_completion = path
 -                break
 -        else:
--            self.skipTest('bash-completion script not found')
-+        self.skipTest('bash-completion script not found')
+-            self.skipTest("bash-completion script not found")
++        self.skipTest("bash-completion script not found")
          try:
-             with open(util.syspath(bash_completion), 'rb') as f:
+             with open(util.syspath(bash_completion), "rb") as f:
                  tester.stdin.writelines(f)
diff --git a/pkgs/tools/audio/beets/plugins/copyartifacts.nix b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
index f2d65eb897e9c..132eda28ed308 100644
--- a/pkgs/tools/audio/beets/plugins/copyartifacts.nix
+++ b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
@@ -1,14 +1,14 @@
 { lib, fetchFromGitHub, beets, python3Packages }:
 
-python3Packages.buildPythonApplication {
+python3Packages.buildPythonApplication rec {
   pname = "beets-copyartifacts";
-  version = "unstable-2020-02-15";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     repo = "beets-copyartifacts";
     owner = "adammillerio";
-    rev = "85eefaebf893cb673fa98bfde48406ec99fd1e4b";
-    sha256 = "sha256-bkT2BZZ2gdcacgvyrVe2vMrOMV8iMAm8Q5xyrZzyqU0=";
+    rev = "v${version}";
+    sha256 = "sha256-UTZh7T6Z288PjxFgyFxHnPt0xpAH3cnr8/jIrlJhtyU=";
   };
 
   postPatch = ''
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication {
 
   meta = {
     description = "Beets plugin to move non-music files during the import process";
-    homepage = "https://github.com/sbarakat/beets-copyartifacts";
+    homepage = "https://github.com/adammillerio/beets-copyartifacts";
     license = lib.licenses.mit;
     inherit (beets.meta) platforms;
   };
diff --git a/pkgs/tools/audio/botamusique/default.nix b/pkgs/tools/audio/botamusique/default.nix
index 02460f61d93ba..5ad13da038941 100644
--- a/pkgs/tools/audio/botamusique/default.nix
+++ b/pkgs/tools/audio/botamusique/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , python3Packages
-, ffmpeg
+, ffmpeg-headless
 , makeWrapper
 , nixosTests
 , nodejs
@@ -115,7 +115,7 @@ stdenv.mkDerivation rec {
 
     # Convenience binary and wrap with ffmpeg dependency
     makeWrapper $out/share/botamusique/mumbleBot.py $out/bin/botamusique \
-      --prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg-headless ]}
 
     runHook postInstall
   '';
@@ -152,5 +152,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "botamusique";
   };
 }
diff --git a/pkgs/tools/audio/catnip-gtk4/default.nix b/pkgs/tools/audio/catnip-gtk4/default.nix
index 2175edb0c5230..da677d71bc03a 100644
--- a/pkgs/tools/audio/catnip-gtk4/default.nix
+++ b/pkgs/tools/audio/catnip-gtk4/default.nix
@@ -39,5 +39,6 @@ buildGoModule {
     homepage = "https://github.com/diamondburned/catnip-gtk4";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "catnip-gtk4";
   };
 }
diff --git a/pkgs/tools/audio/catnip/default.nix b/pkgs/tools/audio/catnip/default.nix
index de299738242e3..de8a609dfd618 100644
--- a/pkgs/tools/audio/catnip/default.nix
+++ b/pkgs/tools/audio/catnip/default.nix
@@ -46,5 +46,6 @@ buildGoModule rec {
     changelog = "https://github.com/noriah/catnip/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "catnip";
   };
 }
diff --git a/pkgs/tools/audio/dl-librescore/default.nix b/pkgs/tools/audio/dl-librescore/default.nix
index 5e8306f212283..a84f12e8fa53f 100644
--- a/pkgs/tools/audio/dl-librescore/default.nix
+++ b/pkgs/tools/audio/dl-librescore/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "dl-librescore";
-  version = "0.34.47";
+  version = "0.34.59";
 
   src = fetchFromGitHub {
     owner = "LibreScore";
     repo = "dl-librescore";
     rev = "v${version}";
-    hash = "sha256-yXreyQiIKmZEw2HcpnCW4TxCTHzdq+KuPSlFPFZy2oU=";
+    hash = "sha256-ZpY+cWtNf/s4Aw42eDc9/0jXzVHugEmU91Qgu9p1f0w=";
   };
 
-  npmDepsHash = "sha256-qKu7xViApKg/4EubS4tsZEtNoW62rpC4e6xmBugSkek=";
+  npmDepsHash = "sha256-DX3to2SNYhNWIJqcz5Mberuk/HSpCO538CjsvvALgkI=";
 
   # see https://github.com/LibreScore/dl-librescore/pull/32
   # TODO can be removed with next update
diff --git a/pkgs/tools/audio/dsp/default.nix b/pkgs/tools/audio/dsp/default.nix
index e17e211d34026..8c218ab70e8e9 100644
--- a/pkgs/tools/audio/dsp/default.nix
+++ b/pkgs/tools/audio/dsp/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.isc;
     maintainers = with maintainers; [ aaronjheng ];
     platforms = platforms.linux;
+    mainProgram = "dsp";
   };
 })
diff --git a/pkgs/tools/audio/essentia-extractor/default.nix b/pkgs/tools/audio/essentia-extractor/default.nix
index 4fbdd02e4404c..de3bf45d10c58 100644
--- a/pkgs/tools/audio/essentia-extractor/default.nix
+++ b/pkgs/tools/audio/essentia-extractor/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ lovesegfault ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "streaming_extractor_music";
   };
 }
diff --git a/pkgs/tools/audio/fmtoy/default.nix b/pkgs/tools/audio/fmtoy/default.nix
deleted file mode 100644
index 69a0f570d3bc0..0000000000000
--- a/pkgs/tools/audio/fmtoy/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, unstableGitUpdater
-, dos2unix
-, pkg-config
-, zlib
-, alsa-lib
-, libjack2
-}:
-
-stdenv.mkDerivation rec {
-  pname = "fmtoy";
-  version = "unstable-2022-12-23";
-
-  src = fetchFromGitHub {
-    owner = "vampirefrog";
-    repo = "fmtoy";
-    rev = "78b61b5e9bc0c6874962dc4040456581c9999b36";
-    sha256 = "r5zbr6TCxzDiQvDsLQu/QwNfem1K4Ahaji0yIz/2yl0=";
-  };
-
-  postPatch = ''
-    dos2unix Makefile
-    # Don't hardcode compilers
-    sed -i -e '/CC=/d' -e '/CXX=/d' Makefile
-  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
-    # Remove Linux-only program & its dependencies
-    sed -i -e '/PROGS/ s/fmtoy_jack//' Makefile
-    substituteInPlace Makefile \
-      --replace '$(shell pkg-config alsa jack --cflags)' ""
-  '';
-
-  nativeBuildInputs = [
-    dos2unix
-  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
-    pkg-config
-  ];
-
-  buildInputs = [
-    zlib
-  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
-    alsa-lib
-    libjack2
-  ];
-
-  enableParallelBuilding = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    for prog in $(grep 'PROGS=' Makefile | cut -d= -f2-); do
-      install -Dm755 $prog $out/bin/$prog
-    done
-
-    runHook postInstall
-  '';
-
-  passthru.updateScript = unstableGitUpdater {
-    url = "https://github.com/vampirefrog/fmtoy.git";
-  };
-
-  meta = with lib; {
-    homepage = "https://github.com/vampirefrog/fmtoy";
-    description = "Tools for FM voices for Yamaha YM chips (OPL, OPM and OPN series)";
-    # Unclear if gpl3Only or gpl3Plus
-    # https://github.com/vampirefrog/fmtoy/issues/1
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ OPNA2608 ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/tools/audio/goxlr-utility/default.nix b/pkgs/tools/audio/goxlr-utility/default.nix
index 58814cb4423ea..6a2de8379e181 100644
--- a/pkgs/tools/audio/goxlr-utility/default.nix
+++ b/pkgs/tools/audio/goxlr-utility/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "goxlr-utility";
-  version = "0.12.6";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "GoXLR-on-Linux";
     repo = "goxlr-utility";
     rev = "v${version}";
-    hash = "sha256-vvaKCsqncRhag8IrS0AIfNqNHGU2WIvFaYISEVfUB2Y=";
+    hash = "sha256-QKL2iKfn05P20MwT+RAeVzUUyv6FWtxMWuBI+4MgXlQ=";
   };
 
-  cargoHash = "sha256-Z57H5YeVYqlOaLRLaizVw8xTLstdjyXutnN7OgaUYOE=";
+  cargoHash = "sha256-LVObMspxhZkK81BjolTZZwoeMunzVwdEWWJAt/aOjZA=";
 
   buildInputs = [
     libpulseaudio
diff --git a/pkgs/tools/audio/gvolicon/default.nix b/pkgs/tools/audio/gvolicon/default.nix
index e15a048b991ce..1e552d64cfaa2 100644
--- a/pkgs/tools/audio/gvolicon/default.nix
+++ b/pkgs/tools/audio/gvolicon/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.bennofs ];
+    mainProgram = "gvolicon";
   };
 }
diff --git a/pkgs/tools/audio/headset-charge-indicator/default.nix b/pkgs/tools/audio/headset-charge-indicator/default.nix
index bed9c415c83b5..40005ea9a6e16 100644
--- a/pkgs/tools/audio/headset-charge-indicator/default.nix
+++ b/pkgs/tools/audio/headset-charge-indicator/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ zebreus ];
     license = licenses.bsd2;
+    mainProgram = "headset-charge-indicator.py";
   };
 }
diff --git a/pkgs/tools/audio/headsetcontrol/default.nix b/pkgs/tools/audio/headsetcontrol/default.nix
index 99434f9ca7382..68a799a55c76e 100644
--- a/pkgs/tools/audio/headsetcontrol/default.nix
+++ b/pkgs/tools/audio/headsetcontrol/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/Sapd/HeadsetControl";
     license = licenses.gpl3Plus;
+    mainProgram = "headsetcontrol";
     maintainers = with maintainers; [ leixb ];
     platforms = platforms.all;
   };
diff --git a/pkgs/tools/audio/kaldi/default.nix b/pkgs/tools/audio/kaldi/default.nix
index 7ea5cf622b57e..a13238c0143e1 100644
--- a/pkgs/tools/audio/kaldi/default.nix
+++ b/pkgs/tools/audio/kaldi/default.nix
@@ -19,13 +19,13 @@
 assert blas.implementation == "openblas" && lapack.implementation == "openblas";
 stdenv.mkDerivation (finalAttrs: {
   pname = "kaldi";
-  version = "unstable-2023-05-02";
+  version = "unstable-2023-11-13";
 
   src = fetchFromGitHub {
     owner = "kaldi-asr";
     repo = "kaldi";
-    rev = "71f38e62cad01c3078555bfe78d0f3a527422d75";
-    sha256 = "sha256-2xm0F80cjovy/G9Ytq/iwa1eexZk0mromv6PPuNIT8U=";
+    rev = "21ae411fd46282726d893e53c05fef5baea64fef";
+    sha256 = "sha256-oPP5znyWI9mYHpwLqHu5aiz5DOIZLcTbgaLiBjFiwrg=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/audio/linuxwave/default.nix b/pkgs/tools/audio/linuxwave/default.nix
index 98860675dafcc..4d86b31c854ef 100644
--- a/pkgs/tools/audio/linuxwave/default.nix
+++ b/pkgs/tools/audio/linuxwave/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ figsoda ];
     inherit (zig_0_10.meta) platforms;
+    mainProgram = "linuxwave";
   };
 })
diff --git a/pkgs/tools/audio/liquidsoap/full.nix b/pkgs/tools/audio/liquidsoap/full.nix
index 5e196a5b557bc..87914436fd49d 100644
--- a/pkgs/tools/audio/liquidsoap/full.nix
+++ b/pkgs/tools/audio/liquidsoap/full.nix
@@ -1,35 +1,68 @@
-{ lib, stdenv, makeWrapper, fetchurl, which, pkg-config
+{ lib, stdenv, makeWrapper, fetchFromGitHub, which, pkg-config
 , libjpeg
 , ocamlPackages
-, awscli2, curl, ffmpeg, youtube-dl
-, runtimePackages ? [ awscli2 curl ffmpeg youtube-dl ]
+, awscli2, bubblewrap, curl, ffmpeg, yt-dlp
+, runtimePackages ? [ awscli2 bubblewrap curl ffmpeg yt-dlp ]
 }:
 
 let
   pname = "liquidsoap";
-  version = "2.1.4";
+  version = "2.2.3";
 in
 stdenv.mkDerivation {
   inherit pname version;
 
-  src = fetchurl {
-    url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-GQuG7f9U+/HqPcuj6hnBoH5mWEhxSwWgBnkCuLqHTAc=";
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "liquidsoap";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-oCMSdmdU3oHrq3QFEDQLdb3CLFYcWylxTqKWtGOoQW8=";
   };
 
-  postFixup = ''
+  postPatch = ''
+    substituteInPlace src/lang/dune \
+      --replace "(run git rev-parse --short HEAD)" "(run echo -n nixpkgs)"
+  '';
+
+  dontConfigure = true;
+
+  buildPhase = ''
+    runHook preBuild
+
+    dune build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    dune install --prefix "$out"
+
+    runHook postInstall
+  '';
+
+  fixupPhase = ''
+    runHook preFixup
+
     wrapProgram $out/bin/liquidsoap \
       --set LIQ_LADSPA_PATH /run/current-system/sw/lib/ladspa \
       --prefix PATH : ${lib.makeBinPath runtimePackages}
-  '';
 
+    runHook postFixup
+  '';
 
   strictDeps = true;
 
-  nativeBuildInputs =
-    [ makeWrapper pkg-config which
-      ocamlPackages.ocaml ocamlPackages.findlib ocamlPackages.menhir
-    ];
+  nativeBuildInputs = [
+    makeWrapper
+    pkg-config
+    which
+    ocamlPackages.ocaml
+    ocamlPackages.dune_3
+    ocamlPackages.findlib
+    ocamlPackages.menhir
+  ];
 
   buildInputs = [
     libjpeg
@@ -38,29 +71,36 @@ stdenv.mkDerivation {
     ocamlPackages.dtools
     ocamlPackages.duppy
     ocamlPackages.mm
-    ocamlPackages.ocaml_pcre
-    ocamlPackages.menhir ocamlPackages.menhirLib
-    (ocamlPackages.camomile.override { version = "1.0.2"; })
     ocamlPackages.ocurl
+    ocamlPackages.cry
+    ocamlPackages.camomile
     ocamlPackages.uri
-    ocamlPackages.sedlex
+    ocamlPackages.fileutils
+    ocamlPackages.menhir # liquidsoap-lang
+    ocamlPackages.menhirLib
+    ocamlPackages.metadata
+    ocamlPackages.dune-build-info
+    ocamlPackages.re
+    ocamlPackages.sedlex # liquidsoap-lang
+    ocamlPackages.ppx_string
 
     # Recommended dependencies
     ocamlPackages.ffmpeg
 
     # Optional dependencies
-    ocamlPackages.camlimages
-    ocamlPackages.gd4o
     ocamlPackages.alsa
     ocamlPackages.ao
     ocamlPackages.bjack
-    ocamlPackages.cry
+    ocamlPackages.camlimages
     ocamlPackages.dssi
     ocamlPackages.faad
     ocamlPackages.fdkaac
     ocamlPackages.flac
     ocamlPackages.frei0r
+    ocamlPackages.gd4o
+    ocamlPackages.graphics
     ocamlPackages.gstreamer
+    ocamlPackages.imagelib
     ocamlPackages.inotify
     ocamlPackages.ladspa
     ocamlPackages.lame
@@ -72,25 +112,22 @@ stdenv.mkDerivation {
     ocamlPackages.ogg
     ocamlPackages.opus
     ocamlPackages.portaudio
+    ocamlPackages.posix-time2
     ocamlPackages.pulseaudio
-    ocamlPackages.shine
     ocamlPackages.samplerate
+    ocamlPackages.shine
     ocamlPackages.soundtouch
     ocamlPackages.speex
     ocamlPackages.srt
     ocamlPackages.ssl
     ocamlPackages.taglib
     ocamlPackages.theora
-    ocamlPackages.vorbis
-    ocamlPackages.xmlplaylist
-    ocamlPackages.posix-time2
     ocamlPackages.tsdl
     ocamlPackages.tsdl-image
     ocamlPackages.tsdl-ttf
-
-    # Undocumented dependencies
-    ocamlPackages.graphics
-    ocamlPackages.cohttp-lwt-unix
+    ocamlPackages.vorbis
+    ocamlPackages.xmlplaylist
+    ocamlPackages.yaml
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/mictray/default.nix b/pkgs/tools/audio/mictray/default.nix
index e757bac966829..d93423e66b491 100644
--- a/pkgs/tools/audio/mictray/default.nix
+++ b/pkgs/tools/audio/mictray/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.anpryl ];
+    mainProgram = "mictray";
   };
 }
diff --git a/pkgs/tools/audio/midimonster/default.nix b/pkgs/tools/audio/midimonster/default.nix
index ec55367474f5f..8ff97968b0008 100644
--- a/pkgs/tools/audio/midimonster/default.nix
+++ b/pkgs/tools/audio/midimonster/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = with maintainers; [keldu];
+    mainProgram = "midimonster";
   };
 }
diff --git a/pkgs/tools/audio/mp3cat/default.nix b/pkgs/tools/audio/mp3cat/default.nix
index dbcc458164de6..5819eb281b2fa 100644
--- a/pkgs/tools/audio/mp3cat/default.nix
+++ b/pkgs/tools/audio/mp3cat/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.omnipotententity ];
     platforms = platforms.all;
+    mainProgram = "mp3cat";
   };
 }
diff --git a/pkgs/tools/audio/mpd-discord-rpc/default.nix b/pkgs/tools/audio/mpd-discord-rpc/default.nix
index 786f5c062daa3..17bc6c6e419f7 100644
--- a/pkgs/tools/audio/mpd-discord-rpc/default.nix
+++ b/pkgs/tools/audio/mpd-discord-rpc/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/JakeStanger/mpd-discord-rpc/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "mpd-discord-rpc";
   };
 }
diff --git a/pkgs/tools/audio/mpd-mpris/default.nix b/pkgs/tools/audio/mpd-mpris/default.nix
index f530ffc5d6640..dcf1e467300e4 100644
--- a/pkgs/tools/audio/mpd-mpris/default.nix
+++ b/pkgs/tools/audio/mpd-mpris/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     homepage = "https://github.com/natsukagami/mpd-mpris";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "mpd-mpris";
   };
 }
diff --git a/pkgs/tools/audio/mpd-notification/default.nix b/pkgs/tools/audio/mpd-notification/default.nix
index 03b632ae7e0ef..845056c61414c 100644
--- a/pkgs/tools/audio/mpd-notification/default.nix
+++ b/pkgs/tools/audio/mpd-notification/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ CaitlinDavitt ];
     platforms = platforms.unix;
+    mainProgram = "mpd-notification";
   };
 }
diff --git a/pkgs/tools/audio/mpd-sima/default.nix b/pkgs/tools/audio/mpd-sima/default.nix
index 0da82ea0b9aa1..b123d2828c4c1 100644
--- a/pkgs/tools/audio/mpd-sima/default.nix
+++ b/pkgs/tools/audio/mpd-sima/default.nix
@@ -34,5 +34,6 @@ buildPythonApplication rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with lib.maintainers; [ apfelkuchen6 ];
+    mainProgram = "mpd-sima";
   };
 }
diff --git a/pkgs/tools/audio/mpdas/default.nix b/pkgs/tools/audio/mpdas/default.nix
index 8b12b6fc16d70..04251854d48d2 100644
--- a/pkgs/tools/audio/mpdas/default.nix
+++ b/pkgs/tools/audio/mpdas/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.taketwo ];
     platforms = platforms.all;
+    mainProgram = "mpdas";
   };
 }
diff --git a/pkgs/tools/audio/mpdcron/fix-canonicalize-conflict-with-glibc.patch b/pkgs/tools/audio/mpdcron/fix-canonicalize-conflict-with-glibc.patch
new file mode 100644
index 0000000000000..dd89f89984985
--- /dev/null
+++ b/pkgs/tools/audio/mpdcron/fix-canonicalize-conflict-with-glibc.patch
@@ -0,0 +1,22 @@
+diff --git a/ext/nokogiri/xml_document.c b/ext/nokogiri/xml_document.c
+index 1d2119c8..c1c87713 100644
+--- a/ext/nokogiri/xml_document.c
++++ b/ext/nokogiri/xml_document.c
+@@ -492,7 +492,7 @@ static int block_caller(void * ctx, xmlNodePtr _node, xmlNodePtr _parent)
+  * The block must return a non-nil, non-false value if the +obj+ passed in
+  * should be included in the canonicalized document.
+  */
+-static VALUE canonicalize(int argc, VALUE* argv, VALUE self)
++static VALUE nokogiri_xml_document_canonicalize(int argc, VALUE* argv, VALUE self)
+ {
+   VALUE mode;
+   VALUE incl_ns;
+@@ -573,7 +573,7 @@ void init_xml_document()
+   rb_define_method(klass, "encoding", encoding, 0);
+   rb_define_method(klass, "encoding=", set_encoding, 1);
+   rb_define_method(klass, "version", version, 0);
+-  rb_define_method(klass, "canonicalize", canonicalize, -1);
++  rb_define_method(klass, "nokogiri_xml_document_canonicalize", canonicalize, -1);
+   rb_define_method(klass, "dup", duplicate_document, -1);
+   rb_define_method(klass, "url", url, 0);
+   rb_define_method(klass, "create_entity", create_entity, -1);
diff --git a/pkgs/tools/audio/mpdcron/gemset.nix b/pkgs/tools/audio/mpdcron/gemset.nix
index 836878c9d88ad..ee254bb6354b7 100644
--- a/pkgs/tools/audio/mpdcron/gemset.nix
+++ b/pkgs/tools/audio/mpdcron/gemset.nix
@@ -18,6 +18,19 @@
       sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
       type = "gem";
     };
+
+    dontBuild = false;
+    patches = [
+      # Fixes a naming conflict of nokogiri's `canonicalize` function
+      # with one defined in glibc. This has been fixed upstream in 2020
+      # in a much newer version (1.15.5), but through the divergence
+      # of the affected file, the commit isn't directly applicable to
+      # the one packaged here:
+      #
+      # https://github.com/sparklemotion/nokogiri/pull/2106/commits/7a74cdbe4538e964023e5a0fdca58d8af708b91e
+      # https://github.com/sparklemotion/nokogiri/issues/2105
+      ./fix-canonicalize-conflict-with-glibc.patch
+    ];
     version = "1.10.3";
   };
 }
diff --git a/pkgs/tools/audio/mpdris2/default.nix b/pkgs/tools/audio/mpdris2/default.nix
index fd8618d6243d9..fd4b60f13e05d 100644
--- a/pkgs/tools/audio/mpdris2/default.nix
+++ b/pkgs/tools/audio/mpdris2/default.nix
@@ -50,5 +50,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "mpDris2";
   };
 }
diff --git a/pkgs/tools/audio/nanotts/default.nix b/pkgs/tools/audio/nanotts/default.nix
index a68f1593b6467..41214ffe9206a 100644
--- a/pkgs/tools/audio/nanotts/default.nix
+++ b/pkgs/tools/audio/nanotts/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.strikerlulu ];
     platforms = lib.platforms.linux;
+    mainProgram = "nanotts";
   };
 }
diff --git a/pkgs/tools/audio/openai-whisper-cpp/default.nix b/pkgs/tools/audio/openai-whisper-cpp/default.nix
index f6d83690824fe..e2fd352422a8e 100644
--- a/pkgs/tools/audio/openai-whisper-cpp/default.nix
+++ b/pkgs/tools/audio/openai-whisper-cpp/default.nix
@@ -8,17 +8,28 @@
 , CoreGraphics
 , CoreML
 , CoreVideo
+, MetalKit
+
+, config
+, cudaSupport ? config.cudaSupport
+, cudaPackages ? {}
 }:
 
-stdenv.mkDerivation rec {
+let
+  # It's necessary to consistently use backendStdenv when building with CUDA support,
+  # otherwise we get libstdc++ errors downstream.
+  # cuda imposes an upper bound on the gcc version, e.g. the latest gcc compatible with cudaPackages_11 is gcc11
+  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv;
+in
+effectiveStdenv.mkDerivation (finalAttrs: {
   pname = "whisper-cpp";
-  version = "1.4.0";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     owner = "ggerganov";
     repo = "whisper.cpp";
-    rev = "refs/tags/v${version}" ;
-    hash = "sha256-176MpooVQrq1dXC62h8Yyyhw6IjCA50tp1J4DQPSePQ=";
+    rev = "refs/tags/v${finalAttrs.version}" ;
+    hash = "sha256-9H2Mlua5zx2WNXbz2C5foxIteuBgeCNALdq5bWyhQCk=";
   };
 
   # The upstream download script tries to download the models to the
@@ -27,16 +38,52 @@ stdenv.mkDerivation rec {
   # the models to the current directory of where it is being run from.
   patches = [ ./download-models.patch ];
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+      makeWrapper
+    ] ++ lib.optionals cudaSupport ( with cudaPackages ;[
+      cuda_nvcc
+
+      # TODO: Replace with autoAddDriverRunpath
+      # once https://github.com/NixOS/nixpkgs/pull/275241 has been merged
+      autoAddOpenGLRunpathHook
+    ]);
 
-  buildInputs = [ SDL2 ] ++ lib.optionals stdenv.isDarwin [ Accelerate CoreGraphics CoreML CoreVideo ];
+  buildInputs = [
+      SDL2
+    ] ++ lib.optionals stdenv.isDarwin [
+      Accelerate
+      CoreGraphics
+      CoreML
+      CoreVideo
+      MetalKit
+    ] ++ lib.optionals cudaSupport ( with cudaPackages; [
+
+      # A temporary hack for reducing the closure size, remove once cudaPackages
+      # have stopped using lndir: https://github.com/NixOS/nixpkgs/issues/271792
+      cuda_cudart.dev
+      cuda_cudart.lib
+      cuda_cudart.static
+      libcublas.dev
+      libcublas.lib
+      libcublas.static
+    ]);
+
+  postPatch = let
+    cudaOldStr = "-lcuda ";
+    cudaNewStr = "-lcuda -L${cudaPackages.cuda_cudart.lib}/lib/stubs ";
+  in lib.optionalString cudaSupport ''
+    substituteInPlace Makefile \
+      --replace '${cudaOldStr}' '${cudaNewStr}'
+  '';
 
   env = lib.optionalAttrs stdenv.isDarwin {
     WHISPER_COREML = "1";
     WHISPER_COREML_ALLOW_FALLBACK = "1";
+  } // lib.optionalAttrs cudaSupport {
+    WHISPER_CUBLAS = "1";
   };
 
-  makeFlags = [ "main" "stream" ];
+  makeFlags = [ "main" "stream" "command" ];
 
   installPhase = ''
     runHook preInstall
@@ -44,12 +91,22 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp ./main $out/bin/whisper-cpp
     cp ./stream $out/bin/whisper-cpp-stream
+    cp ./command $out/bin/whisper-cpp-command
 
     cp models/download-ggml-model.sh $out/bin/whisper-cpp-download-ggml-model
 
     wrapProgram $out/bin/whisper-cpp-download-ggml-model \
       --prefix PATH : ${lib.makeBinPath [wget]}
 
+    ${lib.optionalString stdenv.isDarwin ''
+      install -Dt $out/share/whisper-cpp ggml-metal.metal
+
+      for bin in whisper-cpp whisper-cpp-stream whisper-cpp-command; do
+        wrapProgram $out/bin/$bin \
+          --set-default GGML_METAL_PATH_RESOURCES $out/share/whisper-cpp
+      done
+    ''}
+
     runHook postInstall
   '';
 
@@ -64,4 +121,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ dit7ya hughobrien ];
   };
-}
+})
diff --git a/pkgs/tools/audio/openai-whisper-cpp/download-models.patch b/pkgs/tools/audio/openai-whisper-cpp/download-models.patch
index 39cb00c3a0c39..7183c38b51669 100644
--- a/pkgs/tools/audio/openai-whisper-cpp/download-models.patch
+++ b/pkgs/tools/audio/openai-whisper-cpp/download-models.patch
@@ -1,5 +1,3 @@
-diff --git a/models/download-ggml-model.sh b/models/download-ggml-model.sh
-index 749b409..831f4c0 100755
 --- a/models/download-ggml-model.sh
 +++ b/models/download-ggml-model.sh
 @@ -9,18 +9,6 @@
@@ -16,27 +14,38 @@ index 749b409..831f4c0 100755
 -    fi
 -}
 -
--models_path="$(get_script_path)"
+-models_path="${2:-$(get_script_path)}"
 -
  # Whisper models
- models=( "tiny.en" "tiny" "base.en" "base" "small.en" "small" "medium.en" "medium" "large-v1" "large" )
+ models=(
+     "tiny.en"
+@@ -56,8 +44,8 @@ function list_models {
+     printf "\n\n"
+ }
  
-@@ -54,8 +42,6 @@ fi
+-if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
+-    printf "Usage: $0 <model> [models_path]\n"
++if [ "$#" -ne 1 ]; then
++    printf "Usage: $0 <model>\n"
+     list_models
+ 
+     exit 1
+@@ -82,8 +70,6 @@ fi
  
  printf "Downloading ggml model $model from '$src' ...\n"
  
--cd $models_path
+-cd "$models_path"
 -
  if [ -f "ggml-$model.bin" ]; then
      printf "Model $model already exists. Skipping download.\n"
      exit 0
-@@ -77,7 +63,7 @@ if [ $? -ne 0 ]; then
+@@ -105,7 +91,7 @@ if [ $? -ne 0 ]; then
      exit 1
  fi
  
--printf "Done! Model '$model' saved in 'models/ggml-$model.bin'\n"
+-printf "Done! Model '$model' saved in '$models_path/ggml-$model.bin'\n"
 +printf "Done! Model '$model' saved in 'ggml-$model.bin'\n"
  printf "You can now use it like this:\n\n"
--printf "  $ ./main -m models/ggml-$model.bin -f samples/jfk.wav\n"
+-printf "  $ ./main -m $models_path/ggml-$model.bin -f samples/jfk.wav\n"
 +printf "  $ whisper-cpp -m ggml-$model.bin -f samples/jfk.wav\n"
  printf "\n"
diff --git a/pkgs/tools/audio/pasystray/default.nix b/pkgs/tools/audio/pasystray/default.nix
index c010884665993..20708e82729dc 100644
--- a/pkgs/tools/audio/pasystray/default.nix
+++ b/pkgs/tools/audio/pasystray/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ exlevan kamilchm ];
     platforms = platforms.linux;
+    mainProgram = "pasystray";
   };
 }
diff --git a/pkgs/tools/audio/patray/default.nix b/pkgs/tools/audio/patray/default.nix
index ff7b55689b8ff..90c8719b48b31 100644
--- a/pkgs/tools/audio/patray/default.nix
+++ b/pkgs/tools/audio/patray/default.nix
@@ -6,11 +6,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "patray";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "0vaapn2p4257m1d5nbnwnh252b7lhl00560gr9pqh2b7xqm1bh6g";
+    sha256 = "sha256-O8CBUexL2V1qI7bB/Lns3yjUvFOpC6spd/6asXa5+pw=";
   };
 
   patchPhase = ''
@@ -38,5 +38,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/pohmelie/patray";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
+    mainProgram = "patray";
   };
 }
diff --git a/pkgs/tools/audio/picotts/default.nix b/pkgs/tools/audio/picotts/default.nix
index 137fa838c6292..0b470aca5f942 100644
--- a/pkgs/tools/audio/picotts/default.nix
+++ b/pkgs/tools/audio/picotts/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.canndrew ];
     platforms = lib.platforms.linux;
+    mainProgram = "pico2wave";
   };
 })
diff --git a/pkgs/tools/audio/piper/default.nix b/pkgs/tools/audio/piper/default.nix
index d753d7bb3e1ea..1f565b7475292 100644
--- a/pkgs/tools/audio/piper/default.nix
+++ b/pkgs/tools/audio/piper/default.nix
@@ -7,6 +7,7 @@
 , pkg-config
 
 # runtime
+, fmt
 , onnxruntime
 , pcaudiolib
 , piper-phonemize
@@ -18,22 +19,26 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "piper";
-  version = "1.2.0";
+  version = "2023.11.14-2";
 
   src = fetchFromGitHub {
     owner = "rhasspy";
     repo = "piper";
-    rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-6WNWqJt0PO86vnf+3iHaRRg2KwBOEj4aicmB+P2phlk=";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-3ynWyNcdf1ffU3VoDqrEMrm5Jo5Zc5YJcVqwLreRCsI=";
   };
 
-  sourceRoot = "${finalAttrs.src.name}/src/cpp";
-
   nativeBuildInputs = [
     cmake
     pkg-config
   ];
 
+  cmakeFlags = [
+    "-DFMT_DIR=${fmt}"
+    "-DSPDLOG_DIR=${spdlog.src}"
+    "-DPIPER_PHONEMIZE_DIR=${piper-phonemize}"
+  ];
+
   buildInputs = [
     onnxruntime
     pcaudiolib
@@ -65,5 +70,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/rhasspy/piper";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
+    mainProgram = "piper";
   };
 })
diff --git a/pkgs/tools/audio/piper/fix-compilation-with-newer-onnxruntime.patch b/pkgs/tools/audio/piper/fix-compilation-with-newer-onnxruntime.patch
deleted file mode 100644
index 9d2e46bb4e912..0000000000000
--- a/pkgs/tools/audio/piper/fix-compilation-with-newer-onnxruntime.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/src/cpp/synthesize.hpp b/src/cpp/synthesize.hpp
-index ef61aef..4c7db7a 100644
---- a/synthesize.hpp
-+++ b/synthesize.hpp
-@@ -119,11 +119,11 @@ void synthesize(SynthesisConfig &synthesisConfig, ModelSession &session,
- 
-   // Clean up
-   for (size_t i = 0; i < outputTensors.size(); i++) {
--    Ort::OrtRelease(outputTensors[i].release());
-+    Ort::detail::OrtRelease(outputTensors[i].release());
-   }
- 
-   for (size_t i = 0; i < inputTensors.size(); i++) {
--    Ort::OrtRelease(inputTensors[i].release());
-+    Ort::detail::OrtRelease(inputTensors[i].release());
-   }
- }
- } // namespace larynx
diff --git a/pkgs/tools/audio/pnmixer/default.nix b/pkgs/tools/audio/pnmixer/default.nix
index da4654a3e5fcd..a65cad09b47dc 100644
--- a/pkgs/tools/audio/pnmixer/default.nix
+++ b/pkgs/tools/audio/pnmixer/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ campadrenalin romildo ];
+    mainProgram = "pnmixer";
   };
 }
diff --git a/pkgs/tools/audio/pw-volume/default.nix b/pkgs/tools/audio/pw-volume/default.nix
index 1a7b6c21a5025..13e39484b5773 100644
--- a/pkgs/tools/audio/pw-volume/default.nix
+++ b/pkgs/tools/audio/pw-volume/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ astro figsoda ];
     platforms = platforms.linux;
+    mainProgram = "pw-volume";
   };
 }
diff --git a/pkgs/tools/audio/soco-cli/default.nix b/pkgs/tools/audio/soco-cli/default.nix
deleted file mode 100644
index 068f916e4ef01..0000000000000
--- a/pkgs/tools/audio/soco-cli/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib
-, fetchFromGitHub
-, python3
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "soco-cli";
-  version = "0.4.55";
-  format = "setuptools";
-
-  disabled = python3.pythonOlder "3.6";
-
-  src = fetchFromGitHub rec {
-    owner = "avantrec";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-zdu1eVtVBTYa47KjGc5fqKN6olxp98RoLGT2sNCfG9E=";
-  };
-
-  propagatedBuildInputs = with python3.pkgs; [
-    fastapi
-    rangehttpserver
-    soco
-    tabulate
-    uvicorn
-  ];
-
-  # Tests wants to communicate with hardware
-  doCheck = false;
-
-  pythonImportsCheck = [
-    "soco_cli"
-  ];
-
-  meta = with lib; {
-    description = "Command-line interface to control Sonos sound systems";
-    homepage = "https://github.com/avantrec/soco-cli";
-    license = with licenses; [ asl20 ];
-    maintainers = with maintainers; [ fab ];
-    mainProgram = "sonos";
-  };
-}
diff --git a/pkgs/tools/audio/spotdl/default.nix b/pkgs/tools/audio/spotdl/default.nix
index 6b7a75bfb61e4..a825fd2e1e399 100644
--- a/pkgs/tools/audio/spotdl/default.nix
+++ b/pkgs/tools/audio/spotdl/default.nix
@@ -9,15 +9,14 @@ let
   python = python3;
 in python.pkgs.buildPythonApplication rec {
   pname = "spotdl";
-  version = "4.2.1";
-
-  format = "pyproject";
+  version = "4.2.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "spotDL";
     repo = "spotify-downloader";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xKas3WO3uigY1iFfxIN3+d+5U31vM7cLv08oMef8trc=";
+    hash = "sha256-U0UA94t7WdCeU9Y86rcnT8BzXVx8ryhD3MTJxmNBYcc=";
   };
 
   nativeBuildInputs = with python.pkgs; [
@@ -66,6 +65,9 @@ in python.pkgs.buildPythonApplication rec {
     # require networking
     "tests/test_init.py"
     "tests/test_matching.py"
+    "tests/providers/lyrics"
+    "tests/types"
+    "tests/utils/test_github.py"
     "tests/utils/test_m3u.py"
     "tests/utils/test_metadata.py"
     "tests/utils/test_search.py"
@@ -73,13 +75,14 @@ in python.pkgs.buildPythonApplication rec {
 
   disabledTests = [
     # require networking
-    "test_album_from_url"
     "test_convert"
     "test_download_ffmpeg"
     "test_download_song"
     "test_preload_song"
-    "test_ytm_get_results"
+    "test_yt_get_results"
+    "test_yt_search"
     "test_ytm_search"
+    "test_ytm_get_results"
   ];
 
   makeWrapperArgs = [
diff --git a/pkgs/tools/audio/stt/default.nix b/pkgs/tools/audio/stt/default.nix
index 9f3fcf05b5fad..89ed5f983973f 100644
--- a/pkgs/tools/audio/stt/default.nix
+++ b/pkgs/tools/audio/stt/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ rvolosatovs ];
+    mainProgram = "stt";
   };
 }
diff --git a/pkgs/tools/audio/tidal-dl/default.nix b/pkgs/tools/audio/tidal-dl/default.nix
index 2e8ba35e8ce43..eb23a4da3ccd9 100644
--- a/pkgs/tools/audio/tidal-dl/default.nix
+++ b/pkgs/tools/audio/tidal-dl/default.nix
@@ -21,5 +21,6 @@ buildPythonApplication rec {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.misterio77 ];
     platforms = lib.platforms.all;
+    mainProgram = "tidal-dl";
   };
 }
diff --git a/pkgs/tools/audio/tts/default.nix b/pkgs/tools/audio/tts/default.nix
index bdd0f58235e5a..d761e4605190f 100644
--- a/pkgs/tools/audio/tts/default.nix
+++ b/pkgs/tools/audio/tts/default.nix
@@ -16,14 +16,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "tts";
-  version = "0.17.4";
-  format = "pyproject";
+  version = "0.20.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "coqui-ai";
     repo = "TTS";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yZHdPqvYmlq/ZKeinez4MmO9+jCIl9JAD0t/tc/Uz8c=";
+    hash = "sha256-1nlSf15IEX1qKfDtR6+jQqskjxIuzaIWatkj9Z1fh8Y=";
   };
 
   postPatch = let
@@ -57,7 +57,9 @@ python.pkgs.buildPythonApplication rec {
 
   nativeBuildInputs = with python.pkgs; [
     cython
+    numpy
     packaging
+    setuptools
   ];
 
   propagatedBuildInputs = with python.pkgs; [
@@ -103,7 +105,7 @@ python.pkgs.buildPythonApplication rec {
     # cython modules are not installed for some reasons
     (
       cd TTS/tts/utils/monotonic_align
-      ${python.pythonForBuild.interpreter} setup.py install --prefix=$out
+      ${python.pythonOnBuildForHost.interpreter} setup.py install --prefix=$out
     )
   '';
 
@@ -126,7 +128,7 @@ python.pkgs.buildPythonApplication rec {
 
     for file in $(grep -rl 'python TTS/bin' tests); do
       substituteInPlace "$file" \
-        --replace "python TTS/bin" "${python.interpreter} $out/lib/${python.libPrefix}/site-packages/TTS/bin"
+        --replace "python TTS/bin" "${python.interpreter} $out/${python.sitePackages}/TTS/bin"
     done
   '';
 
diff --git a/pkgs/tools/audio/unflac/default.nix b/pkgs/tools/audio/unflac/default.nix
index 9fc44469fec9b..b0d1d62c1807f 100644
--- a/pkgs/tools/audio/unflac/default.nix
+++ b/pkgs/tools/audio/unflac/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "unflac";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchFromSourcehut {
     owner = "~ft";
     repo = pname;
     rev = version;
-    sha256 = "sha256-gDgmEEOvsudSYdLUodTuE50+2hZpMqlnaVGanv/rg+U=";
+    sha256 = "sha256-BgXuPAXrw28axfTEh10Yh8dQc27M1/lSmCo2eAeNnjE=";
   };
 
-  vendorHash = "sha256-X3cMhzaf1t+x7D8BVBfQy00rAACDEPmIOezIhKzqOZ8=";
+  vendorHash = "sha256-IQHxEYv6l8ORoX+a3Szox9tS2fyBk0tpK+Q1AsWohX0=";
 
   nativeBuildInputs = [ makeWrapper ];
   postFixup = ''
@@ -30,5 +30,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ felipeqq2 ];
+    mainProgram = "unflac";
   };
 }
diff --git a/pkgs/tools/audio/video2midi/default.nix b/pkgs/tools/audio/video2midi/default.nix
index f8c50fda29c37..ca7e2ec45abe1 100644
--- a/pkgs/tools/audio/video2midi/default.nix
+++ b/pkgs/tools/audio/video2midi/default.nix
@@ -1,25 +1,25 @@
-{ lib, fetchFromGitHub, pythonPackages, opencv3 }:
+{ lib, fetchFromGitHub, pythonPackages, opencv4 }:
 
 let
-  opencv3_ = pythonPackages.toPythonModule (opencv3.override {
+  opencv4_ = pythonPackages.toPythonModule (opencv4.override {
     inherit pythonPackages;
     enablePython = true;
     enableFfmpeg = true;
   });
 in pythonPackages.buildPythonApplication rec {
   pname = "video2midi";
-  version = "0.4.6.5";
+  version = "0.4.7.2";
 
   format = "other";
 
   src = fetchFromGitHub {
     owner = "svsdval";
     repo = pname;
-    rev = version;
-    sha256 = "0qzrxqhsxn0h71nfrsi9g78hx3pqm3b8sr6fjq01k4k6dd2nwfam";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-lM3SBgGUW5MTUtsywy57fBiHEg58a8Fcpqb+EcRaYQ4=";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ opencv3_ midiutil pygame pyopengl ];
+  propagatedBuildInputs = with pythonPackages; [ opencv4_ midiutil pygame pyopengl ];
 
   installPhase = ''
     install -Dm755 v2m.py $out/bin/v2m.py
@@ -31,5 +31,6 @@ in pythonPackages.buildPythonApplication rec {
     license = licenses.gpl3Only;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "v2m.py";
   };
 }
diff --git a/pkgs/tools/audio/volctl/default.nix b/pkgs/tools/audio/volctl/default.nix
index e0a80f90a7191..0d33c586ed375 100644
--- a/pkgs/tools/audio/volctl/default.nix
+++ b/pkgs/tools/audio/volctl/default.nix
@@ -53,5 +53,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
+    mainProgram = "volctl";
   };
 }
diff --git a/pkgs/tools/audio/volumeicon/default.nix b/pkgs/tools/audio/volumeicon/default.nix
index 00690d016329c..cabd145cc6e0e 100644
--- a/pkgs/tools/audio/volumeicon/default.nix
+++ b/pkgs/tools/audio/volumeicon/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ bobvanderlinden ];
     license = licenses.gpl3;
+    mainProgram = "volumeicon";
   };
 }
 
diff --git a/pkgs/tools/audio/whisper-ctranslate2/default.nix b/pkgs/tools/audio/whisper-ctranslate2/default.nix
index 7238a54932458..58bf0704981d9 100644
--- a/pkgs/tools/audio/whisper-ctranslate2/default.nix
+++ b/pkgs/tools/audio/whisper-ctranslate2/default.nix
@@ -5,7 +5,7 @@
 }:
 let
   pname = "whisper-ctranslate2";
-  version = "0.3.1";
+  version = "0.3.6";
 in
 python3.pkgs.buildPythonApplication {
   inherit pname version;
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication {
     owner = "Softcatala";
     repo = "whisper-ctranslate2";
     rev = version;
-    hash = "sha256-dUmQNKgH+SIlLhUEiaEGXUHZQDr3fidsAU2vATJiXBU=";
+    hash = "sha256-lKzv33mFuXOmKNSOJJViS9VWCxJ+UQu8GXsswoIgdwE=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -45,5 +45,6 @@ python3.pkgs.buildPythonApplication {
     changelog = "https://github.com/Softcatala/whisper-ctranslate2/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
+    mainProgram = "whisper-ctranslate2";
   };
 }
diff --git a/pkgs/tools/audio/wyoming/faster-whisper-entrypoint.patch b/pkgs/tools/audio/wyoming/faster-whisper-entrypoint.patch
deleted file mode 100644
index 27a6bd082495f..0000000000000
--- a/pkgs/tools/audio/wyoming/faster-whisper-entrypoint.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 04eedbc..ee0b495 100644
---- a/setup.py
-+++ b/setup.py
-@@ -35,4 +35,9 @@ setup(
-         "Programming Language :: Python :: 3.10",
-     ],
-     keywords="rhasspy wyoming whisper",
-+    entry_points={
-+        'console_scripts': [
-+            'wyoming-faster-whisper = wyoming_faster_whisper:__main__.run'
-+        ]
-+    }
- )
-diff --git a/wyoming_faster_whisper/__main__.py b/wyoming_faster_whisper/__main__.py
-index 8a5039f..bd1e7b6 100755
---- a/wyoming_faster_whisper/__main__.py
-+++ b/wyoming_faster_whisper/__main__.py
-@@ -131,8 +131,12 @@ async def main() -> None:
- 
- # -----------------------------------------------------------------------------
- 
-+def run():
-+    asyncio.run(main())
-+
-+
- if __name__ == "__main__":
-     try:
--        asyncio.run(main())
-+        run()
-     except KeyboardInterrupt:
-         pass
diff --git a/pkgs/tools/audio/wyoming/faster-whisper.nix b/pkgs/tools/audio/wyoming/faster-whisper.nix
index 50ec99f6deee4..e7eecd18350df 100644
--- a/pkgs/tools/audio/wyoming/faster-whisper.nix
+++ b/pkgs/tools/audio/wyoming/faster-whisper.nix
@@ -1,21 +1,37 @@
 { lib
 , python3
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "wyoming-faster-whisper";
-  version = "1.0.1";
-  format = "setuptools";
+  version = "1.0.2";
+  pyproject = true;
 
-  src = fetchPypi {
-    pname = "wyoming_faster_whisper";
-    inherit version;
-    hash = "sha256-wo62m8gIP9hXihkd8j2haVvz3TlJv3m5WWthTPFwesk=";
+  src = fetchFromGitHub {
+    owner = "rhasspy";
+    repo = "wyoming-faster-whisper";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-mKnWab3i6lEnCBbO3ucNmWIxaaWwQagzfDhaD1U3qow=";
   };
 
   patches = [
-    ./faster-whisper-entrypoint.patch
+    # add wyoming-faster-whisper executable
+    (fetchpatch {
+      url = "https://github.com/rhasspy/wyoming-faster-whisper/commit/a5715197abab34253d2864ed8cf406210834b4ec.patch";
+      hash = "sha256-a9gmXMngwXo9ZJDbxl/pPzm6WSy5XeGbz/Xncj7bOog=";
+    })
+
+    # fix model retrieval on python3.11+
+    (fetchpatch {
+      url = "https://github.com/rhasspy/wyoming-faster-whisper/commit/d5229df2c3af536013bc931c1ed7cc239b618208.patch";
+      hash = "sha256-CMpOJ1qSPcdtX2h2ecGmQ/haus/gaSH8r/PCFsMChRY=";
+    })
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -33,7 +49,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Wyoming Server for Faster Whisper";
-    homepage = "https://pypi.org/project/wyoming-faster-whisper/";
+    homepage = "https://github.com/rhasspy/wyoming-faster-whisper";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/tools/audio/wyoming/openwakeword.nix b/pkgs/tools/audio/wyoming/openwakeword.nix
index d8450dac69830..83da563f3b3b2 100644
--- a/pkgs/tools/audio/wyoming/openwakeword.nix
+++ b/pkgs/tools/audio/wyoming/openwakeword.nix
@@ -1,61 +1,51 @@
 { lib
-, python3
 , python3Packages
 , fetchFromGitHub
 , fetchpatch
 }:
 
-python3.pkgs.buildPythonApplication {
+python3Packages.buildPythonApplication rec {
   pname = "wyoming-openwakeword";
-  version = "1.5.1";
+  version = "1.8.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rhasspy";
-    repo = "rhasspy3";
-    rev = "e16d7d374a64f671db48142c7b635b327660ebcf";
-    hash = "sha256-SbWsRmR1hfuU3yJbuu+r7M43ugHeNwLgu5S8MqkbCQA=";
+    repo = "wyoming-openwakeword";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-N/EjdNQLsYLpJ4kOxY/z+/dMMmF1PPAIEEzSHfnZWaM=";
   };
 
   patches = [
     (fetchpatch {
       # import tflite entrypoint from tensorflow
-      url = "https://github.com/rhasspy/rhasspy3/commit/23b1bc9cf1e9aa78453feb11e27d5dafe26de068.patch";
-      hash = "sha256-fjLJ+VI4c8ABBWx1IjZ6nS8MGqdry4rgcThKiaAvz+Q=";
+      url = "https://github.com/rhasspy/wyoming-openwakeword/commit/8f4ba2750d8c545e77549a7230cdee1301dac09a.patch";
+      hash = "sha256-WPvywpGv0sYYVGc7he4bt7APIsa3ziKaWqpFlx3v+V8=";
     })
     (fetchpatch {
       # add commandline entrypoint
-      url = "https://github.com/rhasspy/rhasspy3/commit/7662b82cd85e16817a3c6f4153e855bf57436ac3.patch";
-      hash = "sha256-41CLkVDSAJJpZ5irwIf/Z4wHoCuKDrqFBAjKCx7ta50=";
+      url = "https://github.com/rhasspy/wyoming-openwakeword/commit/f40e5635543b2315217538dd89a9fe40fe817cfe.patch";
+      hash = "sha256-HNlGqt7bMzwyvhx5Hw7mkTHeQmBpgDCU3pUbZzss1bY=";
     })
   ];
 
-  postPatch = ''
-    cd programs/wake/openwakeword-lite/server
-  '';
-
   nativeBuildInputs = with python3Packages; [
     setuptools
-    wheel
   ];
 
   propagatedBuildInputs = with python3Packages; [
-    tensorflow-bin
-    webrtc-noise-gain
+    tensorflow
     wyoming
   ];
 
-  passthru.optional-dependencies.webrtc = with python3Packages; [
-    webrtc-noise-gain
-  ];
-
   pythonImportsCheck = [
     "wyoming_openwakeword"
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/rhasspy/wyoming-openwakeword/blob/v${version}/CHANGELOG.md";
     description = "An open source voice assistant toolkit for many human languages";
-    homepage = "https://github.com/rhasspy/rhasspy3/commit/fe44635132079db74d0c76c6b3553b842aa1e318";
+    homepage = "https://github.com/rhasspy/wyoming-openwakeword";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
     mainProgram = "wyoming-openwakeword";
diff --git a/pkgs/tools/audio/wyoming/piper-entrypoint.patch b/pkgs/tools/audio/wyoming/piper-entrypoint.patch
deleted file mode 100644
index 4f7d09fd40ce0..0000000000000
--- a/pkgs/tools/audio/wyoming/piper-entrypoint.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 05e42c1..8347acb 100644
---- a/setup.py
-+++ b/setup.py
-@@ -41,4 +41,9 @@ setup(
-         "Programming Language :: Python :: 3.10",
-     ],
-     keywords="rhasspy wyoming piper",
-+    entry_points={
-+        'console_scripts': [
-+            'wyoming-piper = wyoming_piper:__main__.run'
-+        ]
-+    }
- )
-diff --git a/wyoming_piper/__main__.py b/wyoming_piper/__main__.py
-index ab1580b..4c0a143 100755
---- a/wyoming_piper/__main__.py
-+++ b/wyoming_piper/__main__.py
-@@ -143,8 +143,12 @@ def get_description(voice_info: Dict[str, Any]):
- 
- # -----------------------------------------------------------------------------
- 
-+def run():
-+    asyncio.run(main())
-+
-+
- if __name__ == "__main__":
-     try:
--        asyncio.run(main())
-+        run()
-     except KeyboardInterrupt:
-         pass
diff --git a/pkgs/tools/audio/wyoming/piper.nix b/pkgs/tools/audio/wyoming/piper.nix
index fbc52a88aa20c..32d21bfa4eafc 100644
--- a/pkgs/tools/audio/wyoming/piper.nix
+++ b/pkgs/tools/audio/wyoming/piper.nix
@@ -1,24 +1,40 @@
 { lib
-, python3
-, fetchPypi
+, python3Packages
+, fetchFromGitHub
+, fetchpatch
 }:
 
-python3.pkgs.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "wyoming-piper";
-  version = "1.3.2";
-  format = "setuptools";
+  version = "1.4.0";
+  pyproject = true;
 
-  src = fetchPypi {
-    pname = "wyoming_piper";
-    inherit version;
-    hash = "sha256-WyoHwIF3xC5nOa7iQ8/esfdwahbU6YJzK5G2Vi3mV4M=";
+  src = fetchFromGitHub {
+    owner = "rhasspy";
+    repo = "wyoming-piper";
+    # https://github.com/rhasspy/wyoming-piper/issues/3
+    rev = "560927437c72eca4d334ca503d15863f0b42980d";
+    hash = "sha256-Q4S96zs856zXVAGo4mB466an60naHiS2S/qxYxPE4sI=";
   };
 
   patches = [
-    ./piper-entrypoint.patch
+    (fetchpatch {
+      # add console script
+      url = "https://github.com/rhasspy/wyoming-piper/commit/4c27fbd067fd543adede4626fc5868a3f2458734.patch";
+      hash = "sha256-YPjDjeY9RLsgCtbBZoNgPyQTv3rbCJGcqTNSSwiqqEE=";
+    })
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "wyoming"
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
     wyoming
   ];
 
@@ -29,8 +45,9 @@ python3.pkgs.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
+    changelog = "https://github.com/rhasspy/wyoming-openwakeword/v${version}/master/CHANGELOG.md";
     description = "Wyoming Server for Piper";
-    homepage = "https://pypi.org/project/wyoming-piper/";
+    homepage = "https://github.com/rhasspy/wyoming-openwakeword";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix
index 5c4762183970d..57534b93a6ff6 100644
--- a/pkgs/tools/audio/yabridge/default.nix
+++ b/pkgs/tools/audio/yabridge/default.nix
@@ -17,48 +17,48 @@ let
   asio = fetchFromGitHub {
     owner = "chriskohlhoff";
     repo = "asio";
-    rev = "refs/tags/asio-1-22-1";
-    hash = "sha256-UDLhx2yI6Txg0wP5H4oNIhgKIB2eMxUGCyT2x/7GgVg=";
+    rev = "refs/tags/asio-1-28-2";
+    hash = "sha256-8Sw0LuAqZFw+dxlsTstlwz5oaz3+ZnKBuvSdLW6/DKQ=";
   };
 
   # Derived from subprojects/bitsery.wrap
   bitsery = fetchFromGitHub {
     owner = "fraillt";
     repo = "bitsery";
-    rev = "refs/tags/v5.2.2";
-    hash = "sha256-VwzVtxt+E/SVcxqIJw8BKPO2q7bu/hkhY+nB7FHrZpY=";
+    rev = "refs/tags/v5.2.3";
+    hash = "sha256-rmfcIYCrANycFuLtibQ5wOPwpMVhpTMpdGsUfpR3YsM=";
   };
 
   # Derived from subprojects/clap.wrap
   clap = fetchFromGitHub {
     owner = "free-audio";
     repo = "clap";
-    rev = "refs/tags/1.1.7";
-    hash = "sha256-WcMTxE+QCzlp4lhFdghZI8UI/5mdVeRvrl24Xynd0qk=";
+    rev = "refs/tags/1.1.9";
+    hash = "sha256-z2P0U2NkDK1/5oDV35jn/pTXCcspuM1y2RgZyYVVO3w=";
   };
 
   # Derived from subprojects/function2.wrap
   function2 = fetchFromGitHub {
     owner = "Naios";
     repo = "function2";
-    rev = "refs/tags/4.2.0";
-    hash = "sha256-wrt+fCcM6YD4ZRZYvqqB+fNakCNmltdPZKlNkPLtgMs=";
+    rev = "refs/tags/4.2.3";
+    hash = "sha256-+fzntJn1fRifOgJhh5yiv+sWR9pyaeeEi2c1+lqX3X8=";
   };
 
   # Derived from subprojects/ghc_filesystem.wrap
   ghc_filesystem = fetchFromGitHub {
     owner = "gulrak";
     repo = "filesystem";
-    rev = "refs/tags/v1.5.12";
-    hash = "sha256-j4RE5Ach7C7Kef4+H9AHSXa2L8OVyJljDwBduKcC4eE=";
+    rev = "refs/tags/v1.5.14";
+    hash = "sha256-XZ0IxyNIAs2tegktOGQevkLPbWHam/AOFT+M6wAWPFg=";
   };
 
   # Derived from subprojects/tomlplusplus.wrap
   tomlplusplus = fetchFromGitHub {
     owner = "marzer";
     repo = "tomlplusplus";
-    rev = "refs/tags/v3.3.0";
-    hash = "sha256-INX8TOEumz4B5coSxhiV7opc3rYJuQXT2k1BJ3Aje1M=";
+    rev = "refs/tags/v3.4.0";
+    hash = "sha256-h5tbO0Rv2tZezY58yUbyRVpsfRjY3i+5TPkkxr6La8M=";
   };
 
   # Derived from vst3.wrap
@@ -72,14 +72,14 @@ let
 in
 multiStdenv.mkDerivation (finalAttrs: {
   pname = "yabridge";
-  version = "5.0.5";
+  version = "5.1.0";
 
   # NOTE: Also update yabridgectl's cargoHash when this is updated
   src = fetchFromGitHub {
     owner = "robbert-vdh";
     repo = "yabridge";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-SB2/zKxj9GDOOb3Zn4kWj7dXhDg/wbx6nPKYbQ041Cs=";
+    hash = "sha256-vnSdGedpiit8nym26i1QFiNnATk0Bymm7e5Ha2H41/M=";
   };
 
   # Unpack subproject sources
@@ -159,6 +159,7 @@ multiStdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "A modern and transparent way to use Windows VST2 and VST3 plugins on Linux";
     homepage = "https://github.com/robbert-vdh/yabridge";
+    changelog = "https://github.com/robbert-vdh/yabridge/blob/${finalAttrs.version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kira-bruneau ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/audio/yabridge/hardcode-dependencies.patch b/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
index c657cd7d56b27..bd9e08bc6cf3e 100644
--- a/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
+++ b/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
@@ -1,8 +1,8 @@
 diff --git a/meson.build b/meson.build
-index d8d9135b..717280d9 100644
+index c602c5ad..a52e20a1 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -221,7 +221,7 @@ if is_64bit_system
+@@ -226,7 +226,7 @@ if is_64bit_system
    xcb_64bit_dep = dependency('xcb')
  endif
  if with_32bit_libraries or with_bitbridge
@@ -12,10 +12,10 @@ index d8d9135b..717280d9 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 4a52b6c1..abbb1ec8 100644
+index 82db99a5..491f005d 100644
 --- a/src/plugin/utils.cpp
 +++ b/src/plugin/utils.cpp
-@@ -101,7 +101,7 @@ std::string PluginInfo::wine_version() const {
+@@ -103,7 +103,7 @@ std::string PluginInfo::wine_version() const {
      // The '*.exe' scripts generated by winegcc allow you to override the binary
      // used to run Wine, so will will handle this in the same way for our Wine
      // version detection. We'll be using `execvpe`
diff --git a/pkgs/tools/audio/yabridgectl/Cargo.lock b/pkgs/tools/audio/yabridgectl/Cargo.lock
index e5eeca5a3db04..451b0ae0141c4 100644
--- a/pkgs/tools/audio/yabridgectl/Cargo.lock
+++ b/pkgs/tools/audio/yabridgectl/Cargo.lock
@@ -3,23 +3,61 @@
 version = 3
 
 [[package]]
-name = "anyhow"
-version = "1.0.57"
+name = "anstream"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is-terminal",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
+checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
 
 [[package]]
-name = "atty"
-version = "0.2.14"
+name = "anstyle-parse"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
 dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
+ "utf8parse",
 ]
 
 [[package]]
+name = "anstyle-query"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
+dependencies = [
+ "anstyle",
+ "windows-sys",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
+
+[[package]]
 name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -32,10 +70,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
 name = "cc"
-version = "1.0.73"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cfg-if"
@@ -45,35 +92,52 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "clap"
-version = "3.1.18"
+version = "4.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b"
+checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd"
 dependencies = [
- "atty",
- "bitflags",
+ "clap_builder",
+ "clap_derive",
+ "once_cell",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa"
+dependencies = [
+ "anstream",
+ "anstyle",
  "clap_lex",
- "indexmap",
- "lazy_static",
+ "once_cell",
  "strsim",
- "termcolor",
  "terminal_size",
- "textwrap 0.15.0",
 ]
 
 [[package]]
-name = "clap_lex"
-version = "0.2.0"
+name = "clap_derive"
+version = "4.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a37c35f1112dad5e6e0b1adaff798507497a18fceeb30cceb3bae7d1427b9213"
+checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
 dependencies = [
- "os_str_bytes",
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
+name = "clap_lex"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+
+[[package]]
 name = "clipboard-win"
-version = "4.4.1"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f3e1238132dc01f081e1cbb9dace14e5ef4c3a51ee244bd982275fb514605db"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
 dependencies = [
  "error-code",
  "str-buf",
@@ -81,21 +145,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
 name = "colored"
-version = "2.0.0"
+version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd"
+checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
 dependencies = [
- "atty",
+ "is-terminal",
  "lazy_static",
- "winapi",
+ "windows-sys",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.4"
+version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -103,9 +173,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
  "cfg-if",
  "crossbeam-epoch",
@@ -114,35 +184,24 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.8"
+version = "0.9.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
  "autocfg",
  "cfg-if",
  "crossbeam-utils",
- "lazy_static",
- "memoffset",
+ "memoffset 0.9.0",
  "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.8"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 dependencies = [
  "cfg-if",
- "lazy_static",
-]
-
-[[package]]
-name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys",
 ]
 
 [[package]]
@@ -156,17 +215,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "dirs-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[package]]
 name = "dirs-sys-next"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -179,9 +227,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.6.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "endian-type"
@@ -191,13 +239,13 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
 
 [[package]]
 name = "errno"
-version = "0.2.8"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
 dependencies = [
  "errno-dragonfly",
  "libc",
- "winapi",
+ "windows-sys",
 ]
 
 [[package]]
@@ -222,20 +270,20 @@ dependencies = [
 
 [[package]]
 name = "fd-lock"
-version = "3.0.5"
+version = "3.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46e245f4c8ec30c6415c56cb132c07e69e74f1942f6b4a4061da748b49f486ca"
+checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
 dependencies = [
  "cfg-if",
- "rustix",
+ "rustix 0.38.8",
  "windows-sys",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.6"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -244,9 +292,9 @@ dependencies = [
 
 [[package]]
 name = "goblin"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572564d6cba7d09775202c8e7eebc4d534d5ae36578ab402fb21e182a0ac9505"
+checksum = "0d6b4de4a8eb6c46a8c77e1d3be942cb9a8bf073c22374578e5ba4b08ed0ff68"
 dependencies = [
  "log",
  "plain",
@@ -254,35 +302,38 @@ dependencies = [
 ]
 
 [[package]]
-name = "hashbrown"
-version = "0.11.2"
+name = "heck"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 
 [[package]]
-name = "indexmap"
-version = "1.8.2"
+name = "io-lifetimes"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6012d540c5baa3589337a98ce73408de9b5a25ec9fc2c6fd6be8f0d39e0ca5a"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "autocfg",
- "hashbrown",
+ "hermit-abi",
+ "libc",
+ "windows-sys",
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "0.6.1"
+name = "is-terminal"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9448015e586b611e5d322f6703812bbca2f1e709d5773ecd38ddb4e3bb649504"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+dependencies = [
+ "hermit-abi",
+ "rustix 0.38.8",
+ "windows-sys",
+]
 
 [[package]]
 name = "is_executable"
@@ -307,15 +358,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.126"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "libloading"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
 dependencies = [
  "cfg-if",
  "winapi",
@@ -323,18 +374,21 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.0.46"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d"
+checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "memchr"
@@ -352,6 +406,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
 name = "nibble_vec"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -362,32 +425,32 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.23.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
+checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cc",
  "cfg-if",
  "libc",
- "memoffset",
+ "memoffset 0.6.5",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.13.1"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
  "hermit-abi",
  "libc",
 ]
 
 [[package]]
-name = "os_str_bytes"
-version = "6.1.0"
+name = "once_cell"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "plain"
@@ -397,9 +460,9 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.39"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
@@ -415,9 +478,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.18"
+version = "1.0.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
+checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
 dependencies = [
  "proc-macro2",
 ]
@@ -434,21 +497,19 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.5.3"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
+checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
 dependencies = [
- "autocfg",
- "crossbeam-deque",
  "either",
  "rayon-core",
 ]
 
 [[package]]
 name = "rayon-core"
-version = "1.9.3"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
+checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
 dependencies = [
  "crossbeam-channel",
  "crossbeam-deque",
@@ -458,11 +519,11 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.13"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
@@ -487,16 +548,29 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.34.8"
+version = "0.37.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2079c267b8394eb529872c3cf92e181c378b41fea36e68130357b52493701d2e"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "errno",
  "io-lifetimes",
  "libc",
- "linux-raw-sys",
- "winapi",
+ "linux-raw-sys 0.3.8",
+ "windows-sys",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
+dependencies = [
+ "bitflags 2.4.0",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.5",
+ "windows-sys",
 ]
 
 [[package]]
@@ -505,7 +579,7 @@ version = "9.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if",
  "clipboard-win",
  "dirs-next",
@@ -540,9 +614,9 @@ dependencies = [
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "scroll"
@@ -555,9 +629,9 @@ dependencies = [
 
 [[package]]
 name = "scroll_derive"
-version = "0.11.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e"
+checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -566,15 +640,15 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.137"
+version = "1.0.183"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
+checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
 
 [[package]]
 name = "serde_derive"
-version = "1.0.137"
+version = "1.0.183"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
+checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -594,9 +668,15 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.8.0"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+
+[[package]]
+name = "smawk"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
+checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
 
 [[package]]
 name = "str-buf"
@@ -612,9 +692,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "syn"
-version = "1.0.96"
+version = "2.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0748dd251e24453cb8717f0354206b91557e4ec8703673a4b30208f2abaf1ebf"
+checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -622,67 +702,41 @@ dependencies = [
 ]
 
 [[package]]
-name = "term_size"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
 name = "terminal_size"
-version = "0.1.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
- "term_size",
- "unicode-width",
+ "rustix 0.37.23",
+ "windows-sys",
 ]
 
 [[package]]
 name = "textwrap"
-version = "0.15.0"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
+checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
 dependencies = [
+ "smawk",
  "terminal_size",
+ "unicode-linebreak",
+ "unicode-width",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.31"
+version = "1.0.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
+checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.31"
+version = "1.0.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
+checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -691,63 +745,68 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.5.9"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.0"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+
+[[package]]
+name = "unicode-linebreak"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.9.0"
+version = "1.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 
 [[package]]
 name = "utf8parse"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "walkdir"
-version = "2.3.2"
+version = "2.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
 dependencies = [
  "same-file",
- "winapi",
  "winapi-util",
 ]
 
 [[package]]
 name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
+version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "which"
-version = "4.2.5"
+version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae"
+checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
 dependencies = [
  "either",
- "lazy_static",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
@@ -783,59 +842,79 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.30.0"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "030b7ff91626e57a05ca64a07c481973cbb2db774e4852c9c7ca342408c6a99a"
+checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
 dependencies = [
+ "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
  "windows_i686_gnu",
  "windows_i686_msvc",
  "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
  "windows_x86_64_msvc",
 ]
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
 name = "windows_aarch64_msvc"
-version = "0.30.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29277a4435d642f775f63c7d1faeb927adba532886ce0287bd985bffb16b6bca"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.30.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1145e1989da93956c68d1864f32fb97c8f561a8f89a5125f6a2b7ea75524e4b8"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.30.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4a09e3a0d4753b73019db171c1339cd4362c8c44baf1bcea336235e955954a6"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.30.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ca64fcb0220d58db4c119e050e7af03c69e6f4f415ef69ec1773d9aab422d5a"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.30.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08cabc9f0066848fef4bc6a1c1668e6efce38b661d2aeec75d18d8617eebb5f1"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
 
 [[package]]
 name = "xdg"
-version = "2.4.1"
+version = "2.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c4583db5cbd4c4c0303df2d15af80f0539db703fa1c68802d4cbbd2dd0f88f6"
-dependencies = [
- "dirs",
-]
+checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "yabridgectl"
-version = "5.0.5"
+version = "5.1.0"
 dependencies = [
  "anyhow",
  "clap",
@@ -849,7 +928,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "serde_jsonrc",
- "textwrap 0.11.0",
+ "textwrap",
  "toml",
  "walkdir",
  "which",
diff --git a/pkgs/tools/audio/yabridgectl/chainloader-from-nix-profiles.patch b/pkgs/tools/audio/yabridgectl/chainloader-from-nix-profiles.patch
index 066b854cac9e5..35193c919f63b 100644
--- a/pkgs/tools/audio/yabridgectl/chainloader-from-nix-profiles.patch
+++ b/pkgs/tools/audio/yabridgectl/chainloader-from-nix-profiles.patch
@@ -1,5 +1,5 @@
 diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs
-index 53200bd5..ef8a781d 100644
+index da5f4ff5..c220d62d 100644
 --- a/tools/yabridgectl/src/config.rs
 +++ b/tools/yabridgectl/src/config.rs
 @@ -22,6 +22,7 @@ use serde_derive::{Deserialize, Serialize};
@@ -58,10 +58,10 @@ index 53200bd5..ef8a781d 100644
                          ));
                      }
 diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs
-index 8dcd7dc8..bddca534 100644
+index 0a29d431..479eaef0 100644
 --- a/tools/yabridgectl/src/main.rs
 +++ b/tools/yabridgectl/src/main.rs
-@@ -135,7 +135,7 @@ fn main() -> Result<()> {
+@@ -134,7 +134,7 @@ fn main() -> Result<()> {
                          .long_help(
                              "Path to the directory containing \
                               'libyabridge-chainloader-{clap,vst2,vst3}.so'. If this is not set, \
@@ -69,4 +69,4 @@ index 8dcd7dc8..bddca534 100644
 +                             then yabridgectl will look through 'NIX_PROFILES' and \
                               '~/.local/share/yabridge' by default.",
                          )
-                         .validator(validate_path)
+                         .value_parser(parse_directory_path)
diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix
index 06bca00fc5b0f..bc52e3d6c72fa 100644
--- a/pkgs/tools/audio/yabridgectl/default.nix
+++ b/pkgs/tools/audio/yabridgectl/default.nix
@@ -40,8 +40,10 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     description = "A small, optional utility to help set up and update yabridge for several directories at once";
     homepage = "${yabridge.src.meta.homepage}/tree/${yabridge.version}/tools/yabridgectl";
+    changelog = yabridge.meta.changelog;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kira-bruneau ];
     platforms = yabridge.meta.platforms;
+    mainProgram = "yabridgectl";
   };
 }
diff --git a/pkgs/tools/audio/yabridgectl/remove-dependency-verification.patch b/pkgs/tools/audio/yabridgectl/remove-dependency-verification.patch
index b39aaeaa81170..a1494a490384e 100644
--- a/pkgs/tools/audio/yabridgectl/remove-dependency-verification.patch
+++ b/pkgs/tools/audio/yabridgectl/remove-dependency-verification.patch
@@ -1,10 +1,10 @@
 diff --git a/tools/yabridgectl/src/actions.rs b/tools/yabridgectl/src/actions.rs
-index 25857753..59590e38 100644
+index a0d9b98e..2819f017 100644
 --- a/tools/yabridgectl/src/actions.rs
 +++ b/tools/yabridgectl/src/actions.rs
-@@ -835,14 +835,6 @@ pub fn do_sync(config: &mut Config, options: &SyncOptions) -> Result<()> {
+@@ -847,14 +847,6 @@ pub fn do_sync(config: &mut Config, options: &SyncOptions) -> Result<()> {
      // be the case if we get to this point though.
-     verify_path_setup(config)?;
+     verify_path_setup()?;
  
 -    // This check is only performed once per combination of Wine and yabridge versions
 -    verify_wine_setup(config)?;
diff --git a/pkgs/tools/backup/autorestic/default.nix b/pkgs/tools/backup/autorestic/default.nix
index b4c8735542418..7cd8338a3d42a 100644
--- a/pkgs/tools/backup/autorestic/default.nix
+++ b/pkgs/tools/backup/autorestic/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "autorestic";
-  version = "1.7.7";
+  version = "1.7.10";
 
   src = fetchFromGitHub {
     owner = "cupcakearmy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-drinKUJAlgY1PEP7NHOFfmvDVib1AFjT8hRktQgxJ4A=";
+    sha256 = "sha256-LhcHTXzTd2C9Nb60pZGc3Z1wlbs9RNUj8uW4r7vzIX0=";
   };
 
   vendorHash = "sha256-K3+5DRXcx56sJ4XHikVtmoxmpJbBeAgPkN9KtHVgvYA=";
diff --git a/pkgs/tools/backup/awsbck/default.nix b/pkgs/tools/backup/awsbck/default.nix
index d8d54dad392d4..1ea9ed72fb22a 100644
--- a/pkgs/tools/backup/awsbck/default.nix
+++ b/pkgs/tools/backup/awsbck/default.nix
@@ -2,27 +2,25 @@
 , stdenv
 , fetchFromGitHub
 , rustPlatform
-, installShellFiles
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "awsbck";
-  version = "0.3.5";
+  version = "0.3.6";
 
   src = fetchFromGitHub {
     owner = "beeb";
     repo = "awsbck";
     rev = "v${version}";
-    hash = "sha256-BitR4f1VzYs5L7hT5OCbBbe4JvPIOPDQ9byKEkfBDBY=";
+    hash = "sha256-qW8UY+klNqzDcfVVCW1O7EARFdgLmnf7g/WcYNfT1SI=";
   };
 
-  cargoHash = "sha256-J5BI6Gv20iAe2XCt1riLATCnlOg+pcj7q2Gzo2ZN0ms=";
-
-  nativeBuildInputs = [ installShellFiles ];
+  cargoHash = "sha256-T/xzhE1XXexyT5ktDxny68zaszEhqKfSmibjs6T2B2E=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
+  # tests run in CI on the source repo
   doCheck = false;
 
   meta = with lib; {
@@ -30,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/beeb/awsbck";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ beeb ];
+    mainProgram = "awsbck";
   };
 }
diff --git a/pkgs/tools/backup/bdsync/default.nix b/pkgs/tools/backup/bdsync/default.nix
index bf3afacb94961..8018a1b7cfdfc 100644
--- a/pkgs/tools/backup/bdsync/default.nix
+++ b/pkgs/tools/backup/bdsync/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
+    mainProgram = "bdsync";
   };
 }
diff --git a/pkgs/tools/backup/borgbackup/default.nix b/pkgs/tools/backup/borgbackup/default.nix
index a900df590eac5..d7853d0506f64 100644
--- a/pkgs/tools/backup/borgbackup/default.nix
+++ b/pkgs/tools/backup/borgbackup/default.nix
@@ -14,14 +14,29 @@
 , fetchPypi
 }:
 
-python3Packages.buildPythonApplication rec {
+let
+  python = python3Packages.python.override {
+    packageOverrides = self: super: {
+      msgpack = super.msgpack.overrideAttrs (oldAttrs: rec {
+        version ="1.0.4";
+
+        src = fetchPypi {
+          pname = "msgpack";
+          inherit version;
+          hash = "sha256-9dhpwY8DAgLrQS8Iso0q/upVPWYTruieIA16yn7wH18=";
+        };
+      });
+    };
+  };
+in
+python.pkgs.buildPythonApplication rec {
   pname = "borgbackup";
-  version = "1.2.6";
+  version = "1.2.7";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-t6b48IYDnu7HkHC5FPPGUe1/NhLJZTdK+RDSd8eiE50=";
+    hash = "sha256-9j8oozg8BBlxzsh7BhyjmoFbX9RF2ySqgXLKxBfZQRo=";
   };
 
   postPatch = ''
@@ -30,14 +45,14 @@ python3Packages.buildPythonApplication rec {
       --replace "0o4755" "0o0755"
   '';
 
-  nativeBuildInputs = with python3Packages; [
+  nativeBuildInputs = with python.pkgs; [
     cython
     setuptools-scm
     pkgconfig
 
     # docs
     sphinxHook
-    guzzle_sphinx_theme
+    guzzle-sphinx-theme
 
     # shell completions
     installShellFiles
@@ -55,7 +70,7 @@ python3Packages.buildPythonApplication rec {
     acl
   ];
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = with python.pkgs; [
     msgpack
     packaging
     (if stdenv.isLinux then pyfuse3 else llfuse)
@@ -72,7 +87,7 @@ python3Packages.buildPythonApplication rec {
       --zsh scripts/shell_completions/zsh/_borg
   '';
 
-  nativeCheckInputs = with python3Packages; [
+  nativeCheckInputs = with python.pkgs; [
     e2fsprogs
     py
     python-dateutil
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index 7bea67dc621bd..c2b7b048bce27 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -6,7 +6,7 @@
 assert par2Support -> par2cmdline != null;
 
 let
-  version = "0.33.2";
+  version = "0.33.3";
 
   pythonDeps = with python3.pkgs; [ setuptools tornado ]
     ++ lib.optionals (!stdenv.isDarwin) [ pyxattr pylibacl fuse ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     repo = "bup";
     owner = "bup";
     rev = version;
-    hash = "sha256-DDVCrY4SFqzKukXm8rIq90xAW2U+yYyhyPmUhslMMWI=";
+    hash = "sha256-w7yPs7hG4v0Kd9i2tYhWH7vW95MAMfI/8g61MB6bfps=";
   };
 
   buildInputs = [ git python3 ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
     "LIBDIR=$(out)/lib/bup"
   ];
 
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error=implicit-function-declaration";
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration -Wno-error=implicit-int";
 
   postInstall = ''
     wrapProgram $out/bin/bup \
diff --git a/pkgs/tools/backup/conserve/default.nix b/pkgs/tools/backup/conserve/default.nix
index 345bd06e23c05..a3f4dc3f734c2 100644
--- a/pkgs/tools/backup/conserve/default.nix
+++ b/pkgs/tools/backup/conserve/default.nix
@@ -5,21 +5,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "conserve";
-  version = "23.9.0";
+  version = "23.11.0";
 
   src = fetchFromGitHub {
     owner = "sourcefrog";
     repo = "conserve";
     rev = "v${version}";
-    hash = "sha256-QBGuLSW4Uek1ag+QwXvoI8IEDM3j1MAOpScb9tIWrfA=";
+    hash = "sha256-Ck2+3etwfZiDMZHzI2hIBuUKn7L0ZTGEe9yJjXjoRIM=";
   };
 
-  cargoHash = "sha256-fKEktRDydmLJdU2KMDn4T637ogdbvT3OwWCzyIVaymc=";
+  cargoHash = "sha256-tMj1icGNTFpouts1TE6BIiABexV3vmOW9r5Y/7ynUMM=";
 
   meta = with lib; {
     description = "Robust portable backup tool in Rust";
     homepage = "https://github.com/sourcefrog/conserve";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ happysalada ];
+    mainProgram = "conserve";
   };
 }
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index 8fd23c0e62dfc..96eeeb39a9cb1 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -1,7 +1,6 @@
-args @ {
+{
   lib,
   stdenv,
-  llvmPackages_12, # Anything newer than 11
   fetchzip,
   which,
   attr,
@@ -22,19 +21,13 @@ args @ {
   CoreFoundation,
 }:
 
-let
-  # Fails to build with clang-11 on Darwin:
-  # error: exception specification of overriding function is more lax than base version
-  stdenv = if args.stdenv.isDarwin then llvmPackages_12.stdenv else args.stdenv;
-in
-
 stdenv.mkDerivation rec {
-  version = "2.7.10";
+  version = "2.7.13";
   pname = "dar";
 
   src = fetchzip {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "sha256-cvEeV4e19gVgz5vctQUgA4Atj37dgFg3iH789DWtVZU=";
+    sha256 = "sha256-d88BwbovhbAn72y5pVd4No+hVydXbtZYHZpdtpo4RGY=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/backup/duplicacy/default.nix b/pkgs/tools/backup/duplicacy/default.nix
index 99bc324558670..55abb3462ee49 100644
--- a/pkgs/tools/backup/duplicacy/default.nix
+++ b/pkgs/tools/backup/duplicacy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "duplicacy";
-  version = "3.1.0";
+  version = "3.2.3";
 
   src = fetchFromGitHub {
     owner = "gilbertchen";
     repo = "duplicacy";
     rev = "v${version}";
-    sha256 = "sha256-PYUfECxtUG2WuLmYLtE3Ugcr8GeQMQwQa4uFzcl1RoY=";
+    hash = "sha256-7LflTRBB4JG84QM46wvSJrP4o3CHV4gnR24RJgDSlDg=";
   };
 
-  vendorHash = "sha256-90NWpMEUlPo5+G7DnqFrZyTlAYDAFfZrsctNTaWVjX4=";
+  vendorHash = "sha256-4M/V4vP9XwHBkZ6UwsAxZ81YAzP4inuNC5yI+5ygQsA=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index 15b8a33de6755..452fab128e146 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -36,8 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     ./linux-disable-timezone-test.patch
   ];
 
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   preConfigure = ''
     # fix version displayed by duplicity --version
     # see SourceCopy in setup.py
diff --git a/pkgs/tools/backup/gphotos-sync/default.nix b/pkgs/tools/backup/gphotos-sync/default.nix
index 27caf6df4db00..9fefd79c3c62b 100644
--- a/pkgs/tools/backup/gphotos-sync/default.nix
+++ b/pkgs/tools/backup/gphotos-sync/default.nix
@@ -5,42 +5,26 @@
 }:
 python3.pkgs.buildPythonApplication rec {
   pname = "gphotos-sync";
-  version = "3.1.2";
+  version = "3.2.1";
   format = "pyproject";
 
-  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   src = fetchFromGitHub {
     owner = "gilesknap";
     repo = "gphotos-sync";
     rev = version;
-    hash = "sha256-lLw450Rk7tIENFTZWHoinkhv3VtctDv18NKxhox+NgI=";
+    hash = "sha256-iTqD/oUQqC7Fju8SEPkSZX7FC9tE4eRCewiJR8STmEw=";
   };
 
   patches = [
     ./skip-network-tests.patch
   ];
 
-  # Consider fixing this upstream by following up on:
-  # https://github.com/gilesknap/gphotos-sync/issues/441
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "setuptools<57" "setuptools" \
-      --replace "wheel==0.33.1" "wheel"
-  '';
-
   nativeBuildInputs = with python3.pkgs; [
-    pythonRelaxDepsHook
     setuptools
+    setuptools-scm
     wheel
   ];
 
-  pythonRelaxDeps = [
-    "psutil"
-    "exif"
-    "pyyaml"
-  ];
-
   propagatedBuildInputs = with python3.pkgs; [
     appdirs
     attrs
@@ -61,13 +45,11 @@ python3.pkgs.buildPythonApplication rec {
   nativeCheckInputs = with python3.pkgs; [
     mock
     pytestCheckHook
-    setuptools-scm
   ];
 
   preCheck = ''
+    export PY_IGNORE_IMPORTMISMATCH=1
     export HOME=$(mktemp -d)
-    substituteInPlace setup.cfg \
-      --replace "--cov=gphotos_sync --cov-report term --cov-report xml:cov.xml" ""
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/backup/grab-site/default.nix b/pkgs/tools/backup/grab-site/default.nix
deleted file mode 100644
index ee30ab3037a48..0000000000000
--- a/pkgs/tools/backup/grab-site/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib, python38, fetchPypi, fetchFromGitHub }:
-let
-  python = python38.override {
-    self = python;
-    packageOverrides = self: super: {
-      sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
-        version = "1.3.24";
-        src = fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-67t3fL+TEjWbiXv4G6ANrg9ctp+6KhgmXcwYpvXvdRk=";
-        };
-        doCheck = false;
-      });
-      tornado = super.tornado_4;
-    };
-  };
-
-in
-with python.pkgs; buildPythonApplication rec {
-  pname = "grab-site";
-  version = "2.2.7";
-
-  src = fetchFromGitHub {
-    rev = version;
-    owner = "ArchiveTeam";
-    repo = "grab-site";
-    sha256 = "sha256-tf8GyFjya3+TVc2VjlY6ztfjCJgof6tg4an18pz+Ig8=";
-  };
-
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace '"wpull @ https://github.com/ArchiveTeam/ludios_wpull/tarball/master#egg=wpull-${ludios_wpull.version}"' '"wpull"'
-  '';
-
-  propagatedBuildInputs = [
-    click
-    ludios_wpull
-    manhole
-    lmdb
-    autobahn
-    fb-re2
-    websockets
-    faust-cchardet
-  ];
-
-  checkPhase = ''
-    export PATH=$PATH:$out/bin
-    bash ./tests/offline-tests
-  '';
-
-  meta = with lib; {
-    description = "Crawler for web archiving with WARC output";
-    homepage = "https://github.com/ArchiveTeam/grab-site";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ivan ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/tools/backup/gyb/default.nix b/pkgs/tools/backup/gyb/default.nix
index 260ca6eafcd87..fedf02a9b7e60 100644
--- a/pkgs/tools/backup/gyb/default.nix
+++ b/pkgs/tools/backup/gyb/default.nix
@@ -6,14 +6,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gyb";
-  version = "1.74";
+  version = "1.80";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "GAM-team";
     repo = "got-your-back";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-JUI9BIDg7Z6z5ZtwBMsgTbYXp9w0jd1DKFAa1XjeEtQ=";
+    sha256 = "sha256-4xElzhf9R6qnzr4oyZktQy/ym2vEjR9MrHnLYxBiAOg=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/backup/kopia/default.nix b/pkgs/tools/backup/kopia/default.nix
index 020902c1a0c60..3709040490b05 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.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ELnop8/f7/4E5FnWwGrPJt3n9YhSG1jei1tAt3zr1KI=";
+    hash = "sha256-N6mntK1cHkdnIZhU67DOvlwv8XXWx602oD/Pj+NJo9Y=";
   };
 
-  vendorHash = "sha256-8NTAnkIJkFKyjQL7KBoCqtSBog9Hz1vPBo81u8YcA1A=";
+  vendorHash = "sha256-eP/T4UzXBLOuK/f3BTz7dGqsSj7r/uTKKQ4H4lCvPC8=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/backup/monolith/default.nix b/pkgs/tools/backup/monolith/default.nix
index d89ad0d1dc10e..10859512ef80e 100644
--- a/pkgs/tools/backup/monolith/default.nix
+++ b/pkgs/tools/backup/monolith/default.nix
@@ -5,24 +5,25 @@
 , openssl
 , libiconv
 , Security
+, SystemConfiguration
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "monolith";
-  version = "2.7.0";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "Y2Z";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pljMWAfmDQUxQEyFGVhXqLjRq6P7D+YUB/e1h66WnDE=";
+    sha256 = "sha256-qMB4Tok0tYAqj8r9LEkjhBV5ko+hwagFS7MsL8AYJnc=";
   };
 
-  cargoSha256 = "sha256-kFDyjiupjN1cuhzE16v6JP/yyXdtwL3srZVtSimnahA=";
+  cargoHash = "sha256-FeD0+s79orFDUVsb205W0pdXgDI+p1UrH3GIfKwUqDQ=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
+    ++ lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
 
   checkFlagsArray = [ "--skip=tests::cli" ];
 
diff --git a/pkgs/tools/backup/partclone/default.nix b/pkgs/tools/backup/partclone/default.nix
index 016421f113f10..a1f9365be8095 100644
--- a/pkgs/tools/backup/partclone/default.nix
+++ b/pkgs/tools/backup/partclone/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "partclone";
-  version = "0.3.25";
+  version = "0.3.27";
 
   src = fetchFromGitHub {
     owner = "Thomas-Tsai";
     repo = "partclone";
     rev = version;
-    sha256 = "sha256-DLO0mKQ7Ab+4hwRANnipkaCbS7qldGnfTotAYDy//XU=";
+    sha256 = "sha256-atQ355w9BRUJKkvuyJupcNexVEnVcYsWRvnNmpBw8OA=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/backup/pgbackrest/default.nix b/pkgs/tools/backup/pgbackrest/default.nix
index f4c9fba781fa7..50ab894de89e9 100644
--- a/pkgs/tools/backup/pgbackrest/default.nix
+++ b/pkgs/tools/backup/pgbackrest/default.nix
@@ -13,13 +13,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "pgbackrest";
-  version = "2.48";
+  version = "2.49";
 
   src = fetchFromGitHub {
     owner = "pgbackrest";
     repo = "pgbackrest";
     rev = "release/${version}";
-    sha256 = "sha256-RaNF5ufQafZjE2MfOlFOXkot/JEJCQOuiuIYgJolkbU=";
+    sha256 = "sha256-i1IcBNrobhgu+B/ezKFknTiqiZe6LktBxf9YU8JS2Wc=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix
index 9a7e4d676a18c..0fbfaa693aac4 100644
--- a/pkgs/tools/backup/restic/default.nix
+++ b/pkgs/tools/backup/restic/default.nix
@@ -3,13 +3,13 @@
 
 buildGoModule rec {
   pname = "restic";
-  version = "0.16.0";
+  version = "0.16.3";
 
   src = fetchFromGitHub {
     owner = "restic";
     repo = "restic";
     rev = "v${version}";
-    hash = "sha256-kxxQlU3bKBjCb1aEtcLBmcnPg4KFgFlbFhs9MmbAgk8=";
+    hash = "sha256-nPOCncqdnwhmWrT11evBD4r5hpRb3DTdRej4zh4Q8lg=";
   };
 
   patches = [
@@ -17,7 +17,7 @@ buildGoModule rec {
     ./0001-Skip-testing-restore-with-permission-failure.patch
   ];
 
-  vendorHash = "sha256-m5smEyAt9RxgvUf1pZqIhgja2h8MWfEgjJ4jUgrPMPY=";
+  vendorHash = "sha256-stz76S2dwVlBuGW9R7+Uqs51Xsq7L/4pgTqUZnu7YCQ=";
 
   subPackages = [ "cmd/restic" ];
 
@@ -48,5 +48,6 @@ buildGoModule rec {
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd2;
     maintainers = [ maintainers.mbrgm maintainers.dotlambda ];
+    mainProgram = "restic";
   };
 }
diff --git a/pkgs/tools/backup/rustic-rs/default.nix b/pkgs/tools/backup/rustic-rs/default.nix
index 27b7c3541933f..c6159a899b048 100644
--- a/pkgs/tools/backup/rustic-rs/default.nix
+++ b/pkgs/tools/backup/rustic-rs/default.nix
@@ -1,21 +1,29 @@
-{ lib, fetchFromGitHub, rustPlatform, stdenv, Security, installShellFiles, nix-update-script }:
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, stdenv
+, Security
+, SystemConfiguration
+, installShellFiles
+, nix-update-script
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "rustic-rs";
-  version = "0.5.4";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "rustic-rs";
     repo = "rustic";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LAOU2cnKb+TEWNiXJkpgqNxuU16g/Kc3swGIUc8t9x0=";
+    hash = "sha256-rpIEgQYwfManfgTrhCt6/Q4VBY2yyn4edC6/mz5D7nM=";
   };
 
-  cargoHash = "sha256-OTIdl2x5m90rEwNBu3LL3rFQ0FVS3GDYU7gf8P7CTaQ=";
+  cargoHash = "sha256-q+K887jPB9i9iXpFYXjn3zppAPWNlTc2AG7ivOr77J4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
   postInstall = ''
     for shell in {ba,fi,z}sh; do
@@ -29,7 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     homepage = "https://github.com/rustic-rs/rustic";
-    changelog = "https://github.com/rustic-rs/rustic/blob/${src.rev}/changelog/${version}.txt";
+    changelog = "https://github.com/rustic-rs/rustic/blob/${src.rev}/CHANGELOG.md";
     description = "fast, encrypted, deduplicated backups powered by pure Rust";
     mainProgram = "rustic";
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
diff --git a/pkgs/tools/backup/s3ql/default.nix b/pkgs/tools/backup/s3ql/default.nix
index 8738f5dc4e247..e2e68109b8018 100644
--- a/pkgs/tools/backup/s3ql/default.nix
+++ b/pkgs/tools/backup/s3ql/default.nix
@@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   preBuild = ''
-    ${python3Packages.python.pythonForBuild.interpreter} ./setup.py build_cython build_ext --inplace
+    ${python3Packages.python.pythonOnBuildForHost.interpreter} ./setup.py build_cython build_ext --inplace
   '';
 
   checkPhase = ''
diff --git a/pkgs/tools/backup/sigtop/default.nix b/pkgs/tools/backup/sigtop/default.nix
index f7aae8165ef52..ce6c7fde8d6d4 100644
--- a/pkgs/tools/backup/sigtop/default.nix
+++ b/pkgs/tools/backup/sigtop/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   name = "sigtop";
-  version = "0.3.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "tbvdm";
     repo = "sigtop";
     rev = "v${version}";
-    sha256 = "sha256-U+S+VXRkedq2LkO9Fw/AfNS97GvFEfjD8dq/VMlBOv4=";
+    sha256 = "sha256-vFs6/b2ypwMXDgmkZDgfKPqW0GRh9A2t4QQvkUdhYQw=";
   };
 
-  vendorHash = "sha256-xrJ/KLM/f/HVPL4MJzRc1xDlO4e+Iu2lcPG4GnjFRBo=";
+  vendorHash = "sha256-H43XOupVicLpYfkWNjArpSxQWcFqh9h2Zb6zGZ5xtfs=";
 
   makeFlags = [
     "PREFIX=\${out}"
@@ -20,7 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Utility to export messages, attachments and other data from Signal Desktop";
     license = licenses.isc;
-    platforms = platforms.darwin;
+    platforms = platforms.all;
     maintainers = with maintainers; [ fricklerhandwerk ];
   };
 }
diff --git a/pkgs/tools/backup/tarsnapper/default.nix b/pkgs/tools/backup/tarsnapper/default.nix
index 447057448f87f..b4d731984f71f 100644
--- a/pkgs/tools/backup/tarsnapper/default.nix
+++ b/pkgs/tools/backup/tarsnapper/default.nix
@@ -1,20 +1,35 @@
 { lib
 , python3Packages
 , fetchFromGitHub
+, fetchpatch
 , tarsnap
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "tarsnapper";
-  version = "0.4";
+  version = "0.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "miracle2k";
     repo = pname;
     rev = version;
-    sha256 = "03db49188f4v1946c8mqqj30ah10x68hbg3a58js0syai32v12pm";
+    hash = "sha256-5i9eum9hbh6VFhvEIDq5Uapy6JtIbf9jZHhRYZVoC1w=";
   };
 
+  patches = [
+    # Fix failing tests when default_deltas is None
+    (fetchpatch {
+      url = "https://github.com/miracle2k/tarsnapper/commit/2ee33ce748b9bb42d559cc2c0104115732cb4150.patch";
+      hash = "sha256-fEXGhzlfB+J5lw1pcsC5Ne7I8UMnDzwyyCx/zm15+fU=";
+    })
+  ];
+
+  nativeBuildInputs = with python3Packages; [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     pyyaml
     python-dateutil
@@ -22,28 +37,22 @@ python3Packages.buildPythonApplication rec {
   ];
 
   nativeCheckInputs = with python3Packages; [
+    pytestCheckHook
     nose
   ];
 
-  patches = [
-    # Remove standard module argparse from requirements
-    ./remove-argparse.patch
-  ];
+  # Remove standard module argparse from requirements
+  pythonRemoveDeps = [ "argparse" ];
 
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ tarsnap ]}" ];
 
-  checkPhase = ''
-    runHook preCheck
-    nosetests tests
-    runHook postCheck
-  '';
-
   pythonImportsCheck = [ "tarsnapper" ];
 
   meta = with lib; {
     description = "Wrapper which expires backups using a gfs-scheme";
     homepage = "https://github.com/miracle2k/tarsnapper";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ gmacon ];
+    mainProgram = "tarsnapper";
   };
 }
diff --git a/pkgs/tools/backup/tarsnapper/remove-argparse.patch b/pkgs/tools/backup/tarsnapper/remove-argparse.patch
deleted file mode 100644
index 19c7f9f172e22..0000000000000
--- a/pkgs/tools/backup/tarsnapper/remove-argparse.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- tarsnapper-0.4-src.org/setup.py	1980-01-02 00:00:00.000000000 +0000
-+++ tarsnapper-0.4-src/setup.py	2017-07-16 10:54:36.596499451 +0100
-@@ -45,6 +45,6 @@
-       url='https://github.com/miracle2k/tarsnapper',
-       license='BSD',
-       packages=['tarsnapper'],
--      install_requires = ['argparse>=1.1', 'pyyaml>=3.09', 'python-dateutil>=2.4.0', 'pexpect>=3.1'],
-+      install_requires = ['pyyaml>=3.09', 'python-dateutil>=2.4.0', 'pexpect>=3.1'],
-       **kw
- )
diff --git a/pkgs/tools/backup/zfs-replicate/default.nix b/pkgs/tools/backup/zfs-replicate/default.nix
index 94cb3790a567f..3c148572a1690 100644
--- a/pkgs/tools/backup/zfs-replicate/default.nix
+++ b/pkgs/tools/backup/zfs-replicate/default.nix
@@ -1,22 +1,34 @@
-{ buildPythonApplication, click, fetchPypi, hypothesis, pytest
-, lib, stringcase
+{ buildPythonApplication
+, click
+, fetchPypi
+, hypothesis
+, lib
+, poetry-core
+, pytest
+, pytestCheckHook
+, stringcase
 }:
 
 buildPythonApplication rec {
-  pname = "zfs-replicate";
-  version = "1.2.3";
+  pname = "zfs_replicate";
+  version = "3.2.5";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b2cb9d4670a6e12d14a446c10d857862e91af6e4526f607e08b41bde89953bb8";
+    hash = "sha256-3rIbPXoI2eQCoLU/l1pXEmMJh5NAzrqwZSkn9jzfUoc=";
   };
 
   postPatch = ''
-    sed -i setup.cfg \
-      -e '/--cov.*/d'
+    sed -i pyproject.toml -e '/--cov[^"]*/d'
   '';
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   nativeCheckInputs = [
+    pytestCheckHook
     hypothesis
     pytest
   ];
@@ -26,11 +38,8 @@ buildPythonApplication rec {
     stringcase
   ];
 
-  doCheck = true;
-
-  checkPhase = ''
-    pytest --doctest-modules
-  '';
+  # Current releases do not include tests.
+  doCheck = false;
 
   meta = with lib; {
     homepage = "https://github.com/alunduil/zfs-replicate";
diff --git a/pkgs/tools/backup/zrepl/default.nix b/pkgs/tools/backup/zrepl/default.nix
index 0a45c8c2aef19..b0e0f75fe8c6d 100644
--- a/pkgs/tools/backup/zrepl/default.nix
+++ b/pkgs/tools/backup/zrepl/default.nix
@@ -45,5 +45,6 @@ buildGoModule rec {
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ cole-h danderson mdlayher ];
+    mainProgram = "zrepl";
   };
 }
diff --git a/pkgs/tools/bluetooth/bluetuith/default.nix b/pkgs/tools/bluetooth/bluetuith/default.nix
deleted file mode 100644
index 4018d06b74320..0000000000000
--- a/pkgs/tools/bluetooth/bluetuith/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, buildGoModule, fetchFromGitHub }:
-
-buildGoModule rec {
-  pname = "bluetuith";
-  version = "0.1.7";
-
-  src = fetchFromGitHub {
-    owner = "darkhz";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-8FVXVawmaCgnsexnNRw53tVR2a2fRyDK+h959Ezw7Zg=";
-  };
-
-  vendorHash = "sha256-mudJN7rYWpdv2X4hrYjPBtEILyrdext4q+maDK1dC44=";
-
-  ldflags = [ "-s" "-w" ];
-
-  meta = with lib; {
-    description = "TUI-based bluetooth connection manager";
-    homepage = "https://github.com/darkhz/bluetuith";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    mainProgram = "bluetuith";
-    maintainers = with maintainers; [ thehedgeh0g ];
-  };
-}
diff --git a/pkgs/tools/bluetooth/bluez-alsa/default.nix b/pkgs/tools/bluetooth/bluez-alsa/default.nix
deleted file mode 100644
index 30ef73228b317..0000000000000
--- a/pkgs/tools/bluetooth/bluez-alsa/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
-, alsa-lib, bluez, glib, sbc, dbus
-
-# optional, but useful utils
-, readline, libbsd, ncurses
-
-# optional codecs
-, aacSupport ? true, fdk_aac
-# TODO: aptxSupport
-}:
-
-stdenv.mkDerivation rec {
-  pname = "bluez-alsa";
-  version = "4.1.1";
-
-  src = fetchFromGitHub {
-    owner = "Arkq";
-    repo = "bluez-alsa";
-    rev = "v${version}";
-    sha256 = "sha256-oGaYiSkOhqfjUl+mHTs3gqFcxli3cgkRtT6tbjy3ht0=";
-  };
-
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
-
-  buildInputs = [
-    alsa-lib bluez glib sbc dbus
-    readline libbsd ncurses
-  ]
-  ++ lib.optional aacSupport fdk_aac;
-
-  configureFlags = [
-    "--with-alsaplugindir=${placeholder "out"}/lib/alsa-lib"
-    "--with-dbusconfdir=${placeholder "out"}/share/dbus-1/system.d"
-    "--enable-rfcomm"
-    "--enable-hcitop"
-  ]
-  ++ lib.optional aacSupport "--enable-aac";
-
-  meta = with lib; {
-    description = "Bluez 5 Bluetooth Audio ALSA Backend";
-    longDescription = ''
-      Bluez-ALSA (BlueALSA) is an ALSA backend for Bluez 5 audio interface.
-      Bluez-ALSA registers all Bluetooth devices with audio profiles in Bluez
-      under a virtual ALSA PCM device called `bluealsa` that supports both
-      playback and capture.
-
-      Some backstory: Bluez 5 removed built-in support for ALSA in favor of a
-      generic interface for 3rd party appliations. Thereafter, PulseAudio
-      implemented a backend for that interface and became the only way to get
-      Bluetooth audio with Bluez 5. Users prefering ALSA stayed on Bluez 4.
-      However, Bluez 4 eventually became deprecated.
-
-      This package is a rebirth of a direct interface between ALSA and Bluez 5,
-      that, unlike PulseAudio, provides KISS near-metal-like experience. It is
-      not possible to run BluezALSA and PulseAudio Bluetooth at the same time
-      due to limitations in Bluez, but it is possible to run PulseAudio over
-      BluezALSA if you disable `bluetooth-discover` and `bluez5-discover`
-      modules in PA and configure it to play/capture sound over `bluealsa` PCM.
-    '';
-    homepage = src.meta.homepage;
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.oxij ];
-  };
-
-}
diff --git a/pkgs/tools/bluetooth/bluez-tools/default.nix b/pkgs/tools/bluetooth/bluez-tools/default.nix
deleted file mode 100644
index 271daed016530..0000000000000
--- a/pkgs/tools/bluetooth/bluez-tools/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, stdenv, autoreconfHook, readline
-, fetchFromGitHub, glib, pkg-config }:
-
-stdenv.mkDerivation rec {
-  version = "unstable-2020-10-24";
-  pname = "bluez-tools";
-
-  src = fetchFromGitHub {
-    owner = "khvzak";
-    repo = "bluez-tools";
-    rev = "f65321736475429316f07ee94ec0deac8e46ec4a";
-    sha256 = "0xk39lz3hm8lcnb5fdbfz4ldbbq8gswg95vilzdwxzrglcr6xnqq";
-  };
-
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
-
-  buildInputs = [ readline glib ];
-
-  meta = with lib; {
-    description = "Command line bluetooth manager for Bluez5";
-    license = licenses.gpl2;
-    maintainers = [ ];
-    platforms = platforms.unix;
-  };
-
-}
diff --git a/pkgs/tools/bootloaders/refind/default.nix b/pkgs/tools/bootloaders/refind/default.nix
index 2381402534e11..de2399adb520a 100644
--- a/pkgs/tools/bootloaders/refind/default.nix
+++ b/pkgs/tools/bootloaders/refind/default.nix
@@ -14,23 +14,16 @@ in
 
 stdenv.mkDerivation rec {
   pname = "refind";
-  version = "0.13.3.1";
+  version = "0.14.0.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/refind/${version}/${pname}-src-${version}.tar.gz";
-    sha256 = "1lfgqqiyl6isy25wrxzyi3s334ii057g88714igyjjmxh47kygks";
+    hash = "sha256-JqDFXf01ZUmeH4LY/ldGTb7xnKiGzm0BqBUii478iw8=";
   };
 
   patches = [
     # Removes hardcoded toolchain for aarch64, allowing successful aarch64 builds.
     ./0001-toolchain.patch
-
-    # Fixes issue with null dereference in ReadHiddenTags
-    # Upstream: https://sourceforge.net/p/refind/code/merge-requests/45/
-    (fetchpatch {
-      url = "https://github.com/samueldr/rEFInd/commit/29cd79dedabf84d5ddfe686f5692278cae6cc4d6.patch";
-      sha256 = "sha256-/jAmOwvMmFWazyukN+ru1tQDiIBtgGk/e/pczsl1Xc8=";
-    })
   ];
 
   buildInputs = [ gnu-efi ];
diff --git a/pkgs/tools/cd-dvd/bchunk/default.nix b/pkgs/tools/cd-dvd/bchunk/default.nix
index df8ca279107e8..a3677b9848186 100644
--- a/pkgs/tools/cd-dvd/bchunk/default.nix
+++ b/pkgs/tools/cd-dvd/bchunk/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     description = "A program that converts CD images in BIN/CUE format into a set of ISO and CDR tracks";
     platforms = platforms.unix;
     license = licenses.gpl2;
+    mainProgram = "bchunk";
   };
 }
diff --git a/pkgs/tools/cd-dvd/bootiso/default.nix b/pkgs/tools/cd-dvd/bootiso/default.nix
index ee5d4fd8456f3..243989d049489 100644
--- a/pkgs/tools/cd-dvd/bootiso/default.nix
+++ b/pkgs/tools/cd-dvd/bootiso/default.nix
@@ -56,5 +56,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ muscaln ];
     platforms = platforms.all;
+    mainProgram = "bootiso";
   };
 }
diff --git a/pkgs/tools/cd-dvd/brasero/default.nix b/pkgs/tools/cd-dvd/brasero/default.nix
index decd4352ad454..fb57e2d7decb4 100644
--- a/pkgs/tools/cd-dvd/brasero/default.nix
+++ b/pkgs/tools/cd-dvd/brasero/default.nix
@@ -45,5 +45,6 @@ in stdenv.mkDerivation rec {
     maintainers = [ maintainers.bdimcheff ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "brasero";
   };
 }
diff --git a/pkgs/tools/cd-dvd/ccd2iso/default.nix b/pkgs/tools/cd-dvd/ccd2iso/default.nix
index 1fe606e6acc2c..4885b16aa0657 100644
--- a/pkgs/tools/cd-dvd/ccd2iso/default.nix
+++ b/pkgs/tools/cd-dvd/ccd2iso/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
+    mainProgram = "ccd2iso";
   };
 }
diff --git a/pkgs/tools/cd-dvd/cdi2iso/default.nix b/pkgs/tools/cd-dvd/cdi2iso/default.nix
index 26768747a46cb..f6d0b4e1175fa 100644
--- a/pkgs/tools/cd-dvd/cdi2iso/default.nix
+++ b/pkgs/tools/cd-dvd/cdi2iso/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ hrdinka ];
     platforms = platforms.all;
+    mainProgram = "cdi2iso";
   };
 }
diff --git a/pkgs/tools/cd-dvd/cdrkit/default.nix b/pkgs/tools/cd-dvd/cdrkit/default.nix
index de54827071c64..402e6f4dde370 100644
--- a/pkgs/tools/cd-dvd/cdrkit/default.nix
+++ b/pkgs/tools/cd-dvd/cdrkit/default.nix
@@ -15,7 +15,12 @@ stdenv.mkDerivation rec {
     lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Carbon IOKit iconv ]);
 
   hardeningDisable = [ "format" ];
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isMusl "-D__THROW=";
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.hostPlatform.isMusl [
+    "-D__THROW="
+  ] ++ lib.optionals stdenv.cc.isClang [
+    "-Wno-error=int-conversion"
+    "-Wno-error=implicit-function-declaration"
+  ]);
 
   # efi-boot-patch extracted from http://arm.koji.fedoraproject.org/koji/rpminfo?rpmID=174244
   patches = [ ./include-path.patch ./cdrkit-1.1.9-efi-boot.patch ./cdrkit-1.1.11-fno-common.patch ];
diff --git a/pkgs/tools/cd-dvd/cue2pops/default.nix b/pkgs/tools/cd-dvd/cue2pops/default.nix
index 795589a64ec29..6cb93b3e04be2 100644
--- a/pkgs/tools/cd-dvd/cue2pops/default.nix
+++ b/pkgs/tools/cd-dvd/cue2pops/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/makefu/cue2pops-linux";
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.all;
+    mainProgram = "cue2pops";
   };
 }
diff --git a/pkgs/tools/cd-dvd/dvd-vr/default.nix b/pkgs/tools/cd-dvd/dvd-vr/default.nix
index 4375aebe2990a..88703b28b5824 100644
--- a/pkgs/tools/cd-dvd/dvd-vr/default.nix
+++ b/pkgs/tools/cd-dvd/dvd-vr/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
     description = "A utility to identify and optionally copy recordings from a DVD-VR format disc";
     license = licenses.gpl2;
     maintainers = with maintainers; [ fgaz ];
+    mainProgram = "dvd-vr";
   };
 }
 
diff --git a/pkgs/tools/cd-dvd/dvdisaster/default.nix b/pkgs/tools/cd-dvd/dvdisaster/default.nix
index 55e0e51e5f448..abbda3512e5f0 100644
--- a/pkgs/tools/cd-dvd/dvdisaster/default.nix
+++ b/pkgs/tools/cd-dvd/dvdisaster/default.nix
@@ -93,5 +93,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "dvdisaster";
   };
 }
diff --git a/pkgs/tools/cd-dvd/iat/default.nix b/pkgs/tools/cd-dvd/iat/default.nix
index 083ff35acd78c..3a727eaf74e86 100644
--- a/pkgs/tools/cd-dvd/iat/default.nix
+++ b/pkgs/tools/cd-dvd/iat/default.nix
@@ -13,10 +13,11 @@ stdenv.mkDerivation (finalAttr: {
   };
 
   meta = with lib; {
-    description = "The Iso9660 Analyzer Tool is a tool for detecting the structure of many types of CD/DVD images. It can convert from IMG to ISO format.";
+    description = "A tool for detecting the structure of many types of CD/DVD images";
     homepage = "https://www.berlios.de/software/iso9660-analyzer-tool/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ hughobrien ];
     platforms = platforms.linux;
+    mainProgram = "iat";
   };
 })
diff --git a/pkgs/tools/cd-dvd/isolyzer/default.nix b/pkgs/tools/cd-dvd/isolyzer/default.nix
index f13a17e01f791..6f231430fa86f 100644
--- a/pkgs/tools/cd-dvd/isolyzer/default.nix
+++ b/pkgs/tools/cd-dvd/isolyzer/default.nix
@@ -21,5 +21,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Verify size of ISO 9660 image against Volume Descriptor fields";
     license = licenses.asl20;
     maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "isolyzer";
   };
 }
diff --git a/pkgs/tools/cd-dvd/lsdvd/default.nix b/pkgs/tools/cd-dvd/lsdvd/default.nix
index 59e8bf8843a43..3fd116faea5be 100644
--- a/pkgs/tools/cd-dvd/lsdvd/default.nix
+++ b/pkgs/tools/cd-dvd/lsdvd/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     description = "Display information about audio, video, and subtitle tracks on a DVD";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "lsdvd";
   };
 }
diff --git a/pkgs/tools/cd-dvd/mdf2iso/default.nix b/pkgs/tools/cd-dvd/mdf2iso/default.nix
index e737e38d1bd66..b5fcc557b4e19 100644
--- a/pkgs/tools/cd-dvd/mdf2iso/default.nix
+++ b/pkgs/tools/cd-dvd/mdf2iso/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = [ maintainers.oxij ];
+    mainProgram = "mdf2iso";
   };
 }
diff --git a/pkgs/tools/cd-dvd/mkcue/default.nix b/pkgs/tools/cd-dvd/mkcue/default.nix
index 596164f13ffa6..34893b9f68a54 100644
--- a/pkgs/tools/cd-dvd/mkcue/default.nix
+++ b/pkgs/tools/cd-dvd/mkcue/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0rs897wp08z4hd904bjb5sl4lb8qxj82x5ayklr28bhg9pd5gbra";
   };
 
+  env.CXXFLAGS = "-std=c++98";
+
   preInstall = "mkdir -pv $out/bin";
   postInstall = "chmod -v +w $out/bin/mkcue";
 
@@ -17,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "mkcue";
   };
 }
diff --git a/pkgs/tools/cd-dvd/nrg2iso/default.nix b/pkgs/tools/cd-dvd/nrg2iso/default.nix
index fdde54b596f14..8807466d05a65 100644
--- a/pkgs/tools/cd-dvd/nrg2iso/default.nix
+++ b/pkgs/tools/cd-dvd/nrg2iso/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "http://gregory.kokanosky.free.fr/v4/linux/nrg2iso.en.html";
     license = licenses.gpl2;
     platforms = platforms.all;
+    mainProgram = "nrg2iso";
   };
 }
diff --git a/pkgs/tools/cd-dvd/sacd/default.nix b/pkgs/tools/cd-dvd/sacd/default.nix
index 963300c9ca110..c24a5e7c15c7e 100644
--- a/pkgs/tools/cd-dvd/sacd/default.nix
+++ b/pkgs/tools/cd-dvd/sacd/default.nix
@@ -17,8 +17,9 @@ stdenv.mkDerivation (finalAttrs: {
 
   patches = [
     # Makefile prefix, otherwise `/usr` prefix is enforced
+    # https://github.com/Sound-Linux-More/sacd/pull/1
     (fetchpatch {
-      url = "https://github.com/Sound-Linux-More/sacd/pull/1.patch";
+      url = "https://github.com/Sound-Linux-More/sacd/commit/a72def4fab234bcd68b444cf7447a8876b4e2ce8.patch";
       name = "makefile-prefix.patch";
       sha256 = "0a7r4x0yqpg6l4vr84dq4wbrypabqm4vvcjv91am068gqjiw6w64";
     })
@@ -38,5 +39,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3;
     maintainers = [ maintainers.doronbehar ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "sacd";
   };
 })
diff --git a/pkgs/tools/cd-dvd/srt-to-vtt-cl/default.nix b/pkgs/tools/cd-dvd/srt-to-vtt-cl/default.nix
index 80e456d072ce9..b0868c885edd6 100644
--- a/pkgs/tools/cd-dvd/srt-to-vtt-cl/default.nix
+++ b/pkgs/tools/cd-dvd/srt-to-vtt-cl/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ericdallo ];
     homepage = "https://github.com/nwoltman/srt-to-vtt-cl";
     platforms = platforms.unix;
+    mainProgram = "srt-vtt";
   };
 }
diff --git a/pkgs/tools/cd-dvd/uif2iso/default.nix b/pkgs/tools/cd-dvd/uif2iso/default.nix
index 7a8a6569e5337..ae1eff26568fb 100644
--- a/pkgs/tools/cd-dvd/uif2iso/default.nix
+++ b/pkgs/tools/cd-dvd/uif2iso/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "http://aluigi.org/mytoolz.htm#uif2iso";
     license = lib.licenses.gpl1Plus;
     platforms = lib.platforms.linux;
+    mainProgram = "uif2iso";
   };
 }
diff --git a/pkgs/tools/cd-dvd/unetbootin/default.nix b/pkgs/tools/cd-dvd/unetbootin/default.nix
index 88fab512b0b8a..fb12968aa728a 100644
--- a/pkgs/tools/cd-dvd/unetbootin/default.nix
+++ b/pkgs/tools/cd-dvd/unetbootin/default.nix
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ebzzry ];
     platforms = platforms.linux;
+    mainProgram = "unetbootin";
   };
 }
diff --git a/pkgs/tools/cd-dvd/ventoy/000-nixos-sanitization.patch b/pkgs/tools/cd-dvd/ventoy/000-nixos-sanitization.patch
deleted file mode 100644
index 1d7afc5159c7b..0000000000000
--- a/pkgs/tools/cd-dvd/ventoy/000-nixos-sanitization.patch
+++ /dev/null
@@ -1,301 +0,0 @@
-A shameless merge of many patches floating around; indeed it was made by reading
-and applying them manually.
-
-diff -Naur ventoy-1.0.81-old/CreatePersistentImg.sh ventoy-1.0.81-new/CreatePersistentImg.sh
---- ventoy-1.0.81-old/CreatePersistentImg.sh	2022-10-25 08:26:21.000000000 -0300
-+++ ventoy-1.0.81-new/CreatePersistentImg.sh	2022-11-02 10:29:07.355891607 -0300
-@@ -119,17 +119,13 @@
- sync
- 
- if [ -n "$config" ]; then
--    if [ -d ./persist_tmp_mnt ]; then
--        rm -rf ./persist_tmp_mnt
--    fi
--    
--    mkdir ./persist_tmp_mnt
--    if mount $freeloop ./persist_tmp_mnt; then
--        echo '/ union' > ./persist_tmp_mnt/$config
-+    path_to_persist_mnt="`mktemp -d`"
-+    if mount $freeloop "$path_to_persist_mnt"; then
-+        echo '/ union' > "$path_to_persist_mnt"/$config
-         sync
--        umount ./persist_tmp_mnt
-+        umount "$path_to_persist_mnt"
-     fi
--    rm -rf ./persist_tmp_mnt
-+    rm -rf "$path_to_persist_mnt"
- fi
- 
- if [ ! -z "$passphrase" ]; then
-diff -Naur ventoy-1.0.81-old/tool/ventoy_lib.sh ventoy-1.0.81-new/tool/ventoy_lib.sh
---- ventoy-1.0.81-old/tool/ventoy_lib.sh	2022-10-25 08:26:21.000000000 -0300
-+++ ventoy-1.0.81-new/tool/ventoy_lib.sh	2022-11-02 09:46:29.764568349 -0300
-@@ -6,6 +6,8 @@
- VENTOY_SECTOR_SIZE=512
- VENTOY_SECTOR_NUM=65536
- 
-+LOGFILE="/var/log/ventoy.log"
-+
- ventoy_false() {
-     [ "1" = "2" ]
- }
-@@ -29,7 +31,7 @@
- }
- 
- vtdebug() {
--    echo "$*" >> ./log.txt
-+    echo "$*" >> $LOGFILE
- }
- 
- vtoy_gen_uuid() {
-@@ -51,31 +53,7 @@
- }
- 
- check_tool_work_ok() {
--    
--    if echo 1 | hexdump > /dev/null; then
--        vtdebug "hexdump test ok ..."
--    else
--        vtdebug "hexdump test fail ..."
--        ventoy_false
--        return
--    fi
--   
--    if mkexfatfs -V > /dev/null; then
--        vtdebug "mkexfatfs test ok ..."
--    else
--        vtdebug "mkexfatfs test fail ..."
--        ventoy_false
--        return
--    fi
--    
--    if vtoycli fat -T; then
--        vtdebug "vtoycli fat test ok ..."
--    else
--        vtdebug "vtoycli fat test fail ..."
--        ventoy_false
--        return
--    fi
--    
-+
-     vtdebug "tool check success ..."
-     ventoy_true
- }
-@@ -311,7 +289,7 @@
-     else
-     vtdebug "format disk by fdisk ..."
-     
--fdisk $DISK >>./log.txt 2>&1 <<EOF
-+fdisk $DISK >>$LOGFILE 2>&1 <<EOF
- o
- n
- p
-diff -Naur ventoy-1.0.81-old/tool/VentoyWorker.sh ventoy-1.0.81-new/tool/VentoyWorker.sh
---- ventoy-1.0.81-old/tool/VentoyWorker.sh	2022-10-25 08:26:21.000000000 -0300
-+++ ventoy-1.0.81-new/tool/VentoyWorker.sh	2022-11-02 10:33:25.813135227 -0300
-@@ -106,7 +106,7 @@
- if check_tool_work_ok; then
-     vtdebug "check tool work ok"
- else
--    vterr "Some tools can not run on current system. Please check log.txt for details."
-+    vterr "Some tools can not run on current system. Please check $LOGFILE for details."
-     exit 1
- fi
- 
-@@ -159,19 +159,6 @@
-     exit 1
- fi
- 
--
--#check tmp_mnt directory
--if [ -d ./tmp_mnt ]; then
--    vtdebug "There is a tmp_mnt directory, now delete it."
--    umount ./tmp_mnt >/dev/null 2>&1
--    rm -rf ./tmp_mnt
--    if [ -d ./tmp_mnt ]; then
--        vterr "tmp_mnt directory exists, please delete it first."
--        exit 1
--    fi
--fi
--
--
- if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
-     vtdebug "install Ventoy ..."
- 
-@@ -567,16 +554,16 @@
-     PART1_TYPE=$(dd if=$DISK bs=1 count=1 skip=450 status=none | hexdump -n1 -e  '1/1 "%02X"')
- 
-     #reserve disk uuid
--    rm -f ./diskuuid.bin
--    dd status=none conv=fsync if=${DISK} skip=384 bs=1 count=16 of=./diskuuid.bin
-+    path_to_diskuuid="`mktemp`"
-+    dd status=none conv=fsync if=${DISK} skip=384 bs=1 count=16 of="$path_to_diskuuid"
- 
-     dd status=none conv=fsync if=./boot/boot.img of=$DISK bs=1 count=440
--    dd status=none conv=fsync if=./diskuuid.bin of=$DISK bs=1 count=16 seek=384
--    rm -f ./diskuuid.bin
-+    dd status=none conv=fsync if="$path_to_diskuuid" of=$DISK bs=1 count=16 seek=384
-+    rm -f "$path_to_diskuuid"
- 
-     #reserve data
--    rm -f ./rsvdata.bin
--    dd status=none conv=fsync if=${DISK} skip=2040 bs=512 count=8 of=./rsvdata.bin
-+    path_to_rsvdata="`mktemp`"
-+    dd status=none conv=fsync if=${DISK} skip=2040 bs=512 count=8 of="$path_to_rsvdata"
- 
-     if [ "$PART1_TYPE" = "EE" ]; then
-         vtdebug "This is GPT partition style ..."
-@@ -598,8 +585,8 @@
-         xzcat ./boot/core.img.xz | dd status=none conv=fsync of=$DISK bs=512 count=2047 seek=1
-     fi
- 
--    dd status=none conv=fsync if=./rsvdata.bin seek=2040 bs=512 count=8 of=${DISK}
--    rm -f ./rsvdata.bin
-+    dd status=none conv=fsync if="$path_to_rsvdata" seek=2040 bs=512 count=8 of=${DISK}
-+    rm -f "$path_to_rsvdata"
- 
-     check_umount_disk "$DISK"
-     
-diff -Naur ventoy-1.0.81-old/Ventoy2Disk.sh ventoy-1.0.81-new/Ventoy2Disk.sh
---- ventoy-1.0.81-old/Ventoy2Disk.sh	2022-10-25 08:26:21.000000000 -0300
-+++ ventoy-1.0.81-new/Ventoy2Disk.sh	2022-11-02 09:50:17.649369332 -0300
-@@ -32,48 +32,4 @@
- echo '**********************************************'
- echo ''
- 
--
--if ! [ -f ./boot/boot.img ]; then
--    if [ -d ./grub ]; then
--        echo "Don't run Ventoy2Disk.sh here, please download the released install package, and run the script in it."
--    else
--        echo "Please run under the correct directory!" 
--    fi
--    exit 1
--fi
--
--echo "############# Ventoy2Disk $* [$TOOLDIR] ################" >> ./log.txt
--date >> ./log.txt
--
--#decompress tool
--echo "decompress tools" >> ./log.txt
--cd ./tool/$TOOLDIR
--
--ls *.xz > /dev/null 2>&1
--if [ $? -eq 0 ]; then
--    [ -f ./xzcat ] && chmod +x ./xzcat
--
--    for file in $(ls *.xz); do
--        echo "decompress $file" >> ./log.txt
--        xzcat $file > ${file%.xz}
--        [ -f ./${file%.xz} ] && chmod +x ./${file%.xz}
--        [ -f ./$file ] && rm -f ./$file
--    done
--fi
--
--cd ../../
--chmod +x -R ./tool/$TOOLDIR
--
--
--if [ -f /bin/bash ]; then
--    /bin/bash ./tool/VentoyWorker.sh $*
--else
--    ash ./tool/VentoyWorker.sh $*
--fi
--
--if [ -n "$OLDDIR" ]; then 
--    CURDIR=$(pwd)
--    if [ "$CURDIR" != "$OLDDIR" ]; then
--        cd "$OLDDIR"
--    fi
--fi
-+./tool/VentoyWorker.sh $*
-diff -Naur ventoy-1.0.81-old/VentoyPlugson.sh ventoy-1.0.81-new/VentoyPlugson.sh
---- ventoy-1.0.81-old/VentoyPlugson.sh	2022-10-25 08:26:21.000000000 -0300
-+++ ventoy-1.0.81-new/VentoyPlugson.sh	2022-11-02 09:51:36.758360872 -0300
-@@ -43,39 +43,6 @@
-     exit 1
- fi
- 
--
--if ! [ -f "$OLDDIR/tool/plugson.tar.xz" ]; then
--    echo "Please run under the correct directory!" 
--    exit 1
--fi
--
--echo "############# VentoyPlugson $* [$TOOLDIR] ################" >> ./VentoyPlugson.log
--date >> ./VentoyPlugson.log
--
--echo "decompress tools" >> ./VentoyPlugson.log
--cd ./tool/$TOOLDIR
--
--ls *.xz > /dev/null 2>&1
--if [ $? -eq 0 ]; then
--    [ -f ./xzcat ] && chmod +x ./xzcat
--
--    for file in $(ls *.xz); do
--        echo "decompress $file" >> ./VentoyPlugson.log
--        xzcat $file > ${file%.xz}
--        [ -f ./${file%.xz} ] && chmod +x ./${file%.xz}
--        [ -f ./$file ] && rm -f ./$file
--    done
--fi
--
--cd ../../
--chmod +x -R ./tool/$TOOLDIR
--
--if ! [ -f "$OLDDIR/tool/$TOOLDIR/Plugson" ]; then
--    echo "$OLDDIR/tool/$TOOLDIR/Plugson does not exist!" 
--    exit 1
--fi
--
--
- PATH=./tool/$TOOLDIR:$PATH
- 
- HOST="127.0.0.1"
-@@ -217,11 +184,3 @@
- 
-     wait $wID
- fi
--
--
--if [ -n "$OLDDIR" ]; then 
--    CURDIR=$(pwd)
--    if [ "$CURDIR" != "$OLDDIR" ]; then
--        cd "$OLDDIR"
--    fi
--fi
-diff -Naur ventoy-1.0.81-old/VentoyWeb.sh ventoy-1.0.81-new/VentoyWeb.sh
---- ventoy-1.0.81-old/VentoyWeb.sh	2022-10-25 08:26:21.000000000 -0300
-+++ ventoy-1.0.81-new/VentoyWeb.sh	2022-11-02 09:53:13.773791254 -0300
-@@ -15,12 +15,6 @@
-     echo ""
- }
- 
--uid=$(id -u)
--if [ $uid -ne 0 ]; then
--    print_err "Please use sudo or run the script as root."
--    exit 1
--fi
--
- OLDDIR=$(pwd)
- 
- if uname -m | egrep -q 'aarch64|arm64'; then
-@@ -85,8 +79,8 @@
-     exit 1
- fi
- 
--LOGFILE=log.txt
--#delete the log.txt if it's more than 8MB
-+LOGFILE=/var/log/ventoy.log
-+#delete the logfile if it's more than 8MB
- if [ -f $LOGFILE ]; then
-     logsize=$(stat -c '%s' $LOGFILE)
-     if [ $logsize -gt 8388608 ]; then
-@@ -94,7 +88,6 @@
-     fi
- fi
- 
--
- if [ -f ./tool/$TOOLDIR/V2DServer.xz ]; then
-     xz -d ./tool/$TOOLDIR/V2DServer.xz
-     chmod +x ./tool/$TOOLDIR/V2DServer
diff --git a/pkgs/tools/cd-dvd/ventoy/default.nix b/pkgs/tools/cd-dvd/ventoy/default.nix
deleted file mode 100644
index cf3bd1fe6c52a..0000000000000
--- a/pkgs/tools/cd-dvd/ventoy/default.nix
+++ /dev/null
@@ -1,210 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, autoPatchelfHook
-, bash
-, copyDesktopItems
-, coreutils
-, cryptsetup
-, dosfstools
-, e2fsprogs
-, exfat
-, gawk
-, gnugrep
-, gnused
-, gtk3
-, hexdump
-, makeDesktopItem
-, makeWrapper
-, ntfs3g
-, parted
-, procps
-, util-linux
-, which
-, xfsprogs
-, xz
-, defaultGuiType ? ""
-, withCryptsetup ? false
-, withXfs ? false
-, withExt4 ? false
-, withNtfs ? false
-, withGtk3 ? false
-, withQt5 ? false
-, libsForQt5
-}:
-
-assert lib.elem defaultGuiType [ "" "gtk3" "qt5" ];
-assert defaultGuiType == "gtk3" -> withGtk3;
-assert defaultGuiType == "qt5" -> withQt5;
-
-let
-  inherit (lib) optional optionalString;
-  inherit (libsForQt5) qtbase wrapQtAppsHook;
-  arch = {
-    x86_64-linux = "x86_64";
-    i686-linux = "i386";
-    aarch64-linux = "aarch64";
-    mipsel-linux = "mips64el";
-  }.${stdenv.hostPlatform.system}
-    or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
-in
-stdenv.mkDerivation (finalAttrs: {
-  pname = "ventoy";
-  version = "1.0.95";
-
-  src =
-    let
-      inherit (finalAttrs) version;
-    in
-    fetchurl {
-      url = "https://github.com/ventoy/Ventoy/releases/download/v${version}/ventoy-${version}-linux.tar.gz";
-      hash = "sha256-Tsi541GAMrWBl5xLo/K+uEyaoaDSWvwp5RMzZ5V6RAU=";
-    };
-
-  patches = [
-    ./000-nixos-sanitization.patch
-  ];
-
-  postPatch = ''
-    # Fix permissions.
-    find -type f -name \*.sh -exec chmod a+x '{}' \;
-
-    # Fix path to log.
-    sed -i 's:log\.txt:/var/log/ventoy\.log:g' \
-        WebUI/static/js/languages.js tool/languages.json
-  '';
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    makeWrapper
-  ]
-  ++ optional (withQt5 || withGtk3) copyDesktopItems
-  ++ optional withQt5 wrapQtAppsHook;
-
-  buildInputs = [
-    bash
-    coreutils
-    dosfstools
-    exfat
-    gawk
-    gnugrep
-    gnused
-    hexdump
-    parted
-    procps
-    util-linux
-    which
-    xz
-  ]
-  ++ optional withCryptsetup cryptsetup
-  ++ optional withExt4 e2fsprogs
-  ++ optional withGtk3 gtk3
-  ++ optional withNtfs ntfs3g
-  ++ optional withXfs xfsprogs
-  ++ optional withQt5 qtbase;
-
-  desktopItems = [
-    (makeDesktopItem {
-      name = "Ventoy";
-      desktopName = "Ventoy";
-      comment = "Tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files";
-      icon = "VentoyLogo";
-      exec = "ventoy-gui";
-      terminal = false;
-      categories = [ "Utility" ];
-      startupNotify = true;
-    })
-  ];
-
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    # Setup variables
-    local VENTOY_PATH="$out"/share/ventoy
-    local ARCH='${arch}'
-
-    # Prepare
-    cd tool/"$ARCH"
-    rm ash* hexdump* mkexfatfs* mount.exfat-fuse* xzcat*
-    for archive in *.xz; do
-        xzcat "$archive" > "''${archive%.xz}"
-        rm "$archive"
-    done
-    chmod a+x *
-    cd -
-
-    # Cleanup.
-    case "$ARCH" in
-        x86_64) rm -r {tool/,VentoyGUI.}{i386,aarch64,mips64el};;
-        i386) rm -r {tool/,VentoyGUI.}{x86_64,aarch64,mips64el};;
-        aarch64) rm -r {tool/,VentoyGUI.}{x86_64,i386,mips64el};;
-        mips64el) rm -r {tool/,VentoyGUI.}{x86_64,i386,aarch64};;
-    esac
-    rm README
-    rm tool/"$ARCH"/Ventoy2Disk.gtk2 || true  # For aarch64 and mips64el.
-
-    # Copy from "$src" to "$out"
-    mkdir -p "$out"/bin "$VENTOY_PATH"
-    cp -r . "$VENTOY_PATH"
-
-    # Fill bin dir
-    for f in Ventoy2Disk.sh_ventoy VentoyWeb.sh_ventoy-web \
-             CreatePersistentImg.sh_ventoy-persistent \
-             ExtendPersistentImg.sh_ventoy-extend-persistent \
-             VentoyPlugson.sh_ventoy-plugson; do
-        local bin="''${f%_*}" wrapper="''${f#*_}"
-        makeWrapper "$VENTOY_PATH/$bin" "$out/bin/$wrapper" \
-                    --prefix PATH : "${lib.makeBinPath finalAttrs.buildInputs}" \
-                    --chdir "$VENTOY_PATH"
-    done
-  ''
-  # VentoGUI uses the `ventoy_gui_type` file to determine the type of GUI.
-  # See: https://github.com/ventoy/Ventoy/blob/v1.0.78/LinuxGUI/Ventoy2Disk/ventoy_gui.c#L1096
-  + optionalString (withGtk3 || withQt5) ''
-    echo "${defaultGuiType}" > "$VENTOY_PATH/ventoy_gui_type"
-    makeWrapper "$VENTOY_PATH/VentoyGUI.$ARCH" "$out/bin/ventoy-gui" \
-                --prefix PATH : "${lib.makeBinPath finalAttrs.buildInputs}" \
-                --chdir "$VENTOY_PATH"
-    mkdir "$out"/share/{applications,pixmaps}
-    ln -s "$VENTOY_PATH"/WebUI/static/img/VentoyLogo.png "$out"/share/pixmaps/
-  ''
-  + optionalString (!withGtk3) ''
-    rm "$VENTOY_PATH"/tool/{"$ARCH"/Ventoy2Disk.gtk3,VentoyGTK.glade}
-  ''
-  + optionalString (!withQt5) ''
-    rm "$VENTOY_PATH/tool/$ARCH/Ventoy2Disk.qt5"
-  ''
-  + optionalString (!withGtk3 && !withQt5) ''
-    rm "$VENTOY_PATH"/VentoyGUI.*
-  '' +
-  ''
-
-    runHook postInstall
-  '';
-
-  meta = {
-    homepage = "https://www.ventoy.net";
-    description = "A New Bootable USB Solution";
-    longDescription = ''
-      Ventoy is an open source tool to create bootable USB drive for
-      ISO/WIM/IMG/VHD(x)/EFI files.  With ventoy, you don't need to format the
-      disk over and over, you just need to copy the ISO/WIM/IMG/VHD(x)/EFI files
-      to the USB drive and boot them directly. You can copy many files at a time
-      and ventoy will give you a boot menu to select them. You can also browse
-      ISO/WIM/IMG/VHD(x)/EFI files in local disk and boot them. x86 Legacy
-      BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and MIPS64EL UEFI are supported
-      in the same way.  Most type of OS supported
-      (Windows/WinPE/Linux/ChromeOS/Unix/VMware/Xen...).  With ventoy you can
-      also browse ISO/WIM/IMG/VHD(x)/EFI files in local disk and boot them.
-      800+ image files are tested.  90%+ distros in DistroWatch supported.
-    '';
-    changelog = "https://www.ventoy.net/doc_news.html";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ AndersonTorres ];
-    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "mipsel-linux" ];
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-  };
-})
diff --git a/pkgs/tools/cd-dvd/vobcopy/default.nix b/pkgs/tools/cd-dvd/vobcopy/default.nix
index 2ebe9e5e0a351..dbe192e039bd2 100644
--- a/pkgs/tools/cd-dvd/vobcopy/default.nix
+++ b/pkgs/tools/cd-dvd/vobcopy/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
 
     maintainers = [ lib.maintainers.bluescreen303 ];
     platforms = lib.platforms.all;
+    mainProgram = "vobcopy";
   };
 }
diff --git a/pkgs/tools/cd-dvd/vobsub2srt/default.nix b/pkgs/tools/cd-dvd/vobsub2srt/default.nix
index d56cfdf86c8ea..2847c68899fed 100644
--- a/pkgs/tools/cd-dvd/vobsub2srt/default.nix
+++ b/pkgs/tools/cd-dvd/vobsub2srt/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.ttuegel ];
+    mainProgram = "vobsub2srt";
   };
 }
diff --git a/pkgs/tools/compression/advancecomp/default.nix b/pkgs/tools/compression/advancecomp/default.nix
index 32bae24a6c456..b57e3f6806f30 100644
--- a/pkgs/tools/compression/advancecomp/default.nix
+++ b/pkgs/tools/compression/advancecomp/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "advancecomp";
-  version = "2.5";
+  version = "2.6";
 
   src = fetchFromGitHub {
     owner = "amadvance";
     repo = "advancecomp";
     rev = "v${version}";
-    hash = "sha256-dlVTMd8sm84M8JZsCfVR/s4jXMQWmrVj7xwUVDsehQY=";
+    hash = "sha256-MwXdXT/ZEvTcYV4DjhCUFflrPKBFu0fk5PmaWt4MMOU=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/compression/brotli/default.nix b/pkgs/tools/compression/brotli/default.nix
index 263478e4ba3cd..60429f435ec66 100644
--- a/pkgs/tools/compression/brotli/default.nix
+++ b/pkgs/tools/compression/brotli/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation (finalAttrs: {
       "libbrotlienc"
     ];
     platforms = platforms.all;
+    mainProgram = "brotli";
   };
 })
diff --git a/pkgs/tools/compression/bsc/default.nix b/pkgs/tools/compression/bsc/default.nix
index 93b715f853cf9..7d2af1c4898fe 100644
--- a/pkgs/tools/compression/bsc/default.nix
+++ b/pkgs/tools/compression/bsc/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     # Later commits changed the licence to Apache2 (no release yet, though)
     license = with licenses; [ lgpl3Plus ];
     platforms = platforms.unix;
+    mainProgram = "bsc";
   };
 }
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index be456cf594427..bfab2dbb94670 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchurl
-, linkStatic ? with stdenv.hostPlatform; isStatic || isCygwin
+, enableStatic ? with stdenv.hostPlatform; isStatic || isCygwin
+, enableShared ? true
 , autoreconfHook
 , testers
 }:
@@ -47,8 +48,12 @@ in {
 
   outputs = [ "bin" "dev" "out" "man" ];
 
-  configureFlags =
-    lib.optionals linkStatic [ "--enable-static" "--disable-shared" ];
+  configureFlags = lib.concatLists [
+    (lib.optional enableStatic "--enable-static")
+    (lib.optional (!enableShared) "--disable-shared")
+  ];
+
+  dontDisableStatic = enableStatic;
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/tools/compression/bzip3/default.nix b/pkgs/tools/compression/bzip3/default.nix
index 6e21a352d06f1..135b253229ad1 100644
--- a/pkgs/tools/compression/bzip3/default.nix
+++ b/pkgs/tools/compression/bzip3/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bzip3";
-  version = "1.3.2";
+  version = "1.4.0";
 
   outputs = [ "bin" "dev" "out" ];
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "kspalaiologos";
     repo = "bzip3";
     rev = finalAttrs.version;
-    hash = "sha256-nSmKpOwlbxbUN2TJwsS2CFP5UV2ODOKXFHAUsCje7mc=";
+    hash = "sha256-UVCZWcjlueKSGYqdm7oiJ5i7/irkWv7IOyeCWT2r4sk=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/compression/crabz/default.nix b/pkgs/tools/compression/crabz/default.nix
index b68d3af1a8442..f8cb155f272e3 100644
--- a/pkgs/tools/compression/crabz/default.nix
+++ b/pkgs/tools/compression/crabz/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sstadick/crabz/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "crabz";
   };
 }
diff --git a/pkgs/tools/compression/dejsonlz4/default.nix b/pkgs/tools/compression/dejsonlz4/default.nix
index 0dd703035fa97..51c5d485cfa9d 100644
--- a/pkgs/tools/compression/dejsonlz4/default.nix
+++ b/pkgs/tools/compression/dejsonlz4/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ mt-caret ];
     platforms = platforms.all;
+    mainProgram = "dejsonlz4";
   };
 }
diff --git a/pkgs/tools/compression/dtrx/default.nix b/pkgs/tools/compression/dtrx/default.nix
index 2bfe975d033cb..9890112171d86 100644
--- a/pkgs/tools/compression/dtrx/default.nix
+++ b/pkgs/tools/compression/dtrx/default.nix
@@ -51,5 +51,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/dtrx-py/dtrx";
     license = licenses.gpl3Plus;
     maintainers = [ ];
+    mainProgram = "dtrx";
   };
 }
diff --git a/pkgs/tools/compression/efficient-compression-tool/default.nix b/pkgs/tools/compression/efficient-compression-tool/default.nix
index 6a96156012766..a4f4b9fd40daf 100644
--- a/pkgs/tools/compression/efficient-compression-tool/default.nix
+++ b/pkgs/tools/compression/efficient-compression-tool/default.nix
@@ -29,11 +29,17 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [ "-DECT_FOLDER_SUPPORT=ON" ];
 
+  CXXFLAGS = [
+    # GCC 13: error: 'uint32_t' does not name a type
+    "-include cstdint"
+  ];
+
   meta = with lib; {
     description = "Fast and effective C++ file optimizer";
     homepage = "https://github.com/fhanau/Efficient-Compression-Tool";
     license = licenses.asl20;
     maintainers = [ maintainers.lunik1 ];
     platforms = platforms.linux;
+    mainProgram = "ect";
   };
 }
diff --git a/pkgs/tools/compression/flips/default.nix b/pkgs/tools/compression/flips/default.nix
index 4ba618556a70c..6ee1c03cabce5 100644
--- a/pkgs/tools/compression/flips/default.nix
+++ b/pkgs/tools/compression/flips/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.xfix ];
     platforms = platforms.linux;
+    mainProgram = "flips";
   };
 }
diff --git a/pkgs/tools/compression/hacpack/default.nix b/pkgs/tools/compression/hacpack/default.nix
index 34722d52ccfd3..8d44660898cf8 100644
--- a/pkgs/tools/compression/hacpack/default.nix
+++ b/pkgs/tools/compression/hacpack/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = [ maintainers.ivar ];
     platforms = platforms.linux;
+    mainProgram = "hacpack";
   };
 }
diff --git a/pkgs/tools/compression/hactool/default.nix b/pkgs/tools/compression/hactool/default.nix
index 2e6e7437fff2f..11adbe3ced1b9 100644
--- a/pkgs/tools/compression/hactool/default.nix
+++ b/pkgs/tools/compression/hactool/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ ivar ];
     platforms = platforms.unix;
+    mainProgram = "hactool";
   };
 }
diff --git a/pkgs/tools/compression/heatshrink/default.nix b/pkgs/tools/compression/heatshrink/default.nix
index 290e2dc9d8cab..b5cfb92247afa 100644
--- a/pkgs/tools/compression/heatshrink/default.nix
+++ b/pkgs/tools/compression/heatshrink/default.nix
@@ -1,6 +1,8 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, cmake
+, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
@@ -14,14 +16,17 @@ stdenv.mkDerivation rec {
     hash = "sha256-Nm9/+JFMDXY1N90hmNFGh755V2sXSRQ4VBN9f8TcsGk=";
   };
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  patches = [
+    # Add CMake build script, wanted by prusa-slicer and libbgcode, which are the only users of this library.
+    (fetchpatch {
+      url = "https://github.com/atomicobject/heatshrink/commit/0886e9ca76552b8e325841e2b820b4563e5d5aba.patch";
+      hash = "sha256-13hy4+/RDaaKgQcdaSbACvMfElUIskvJ+owXqm40feY=";
+    })
+  ];
 
-  preInstall = ''
-    mkdir -p $out/{bin,lib,include}
-  '';
-
-  doCheck = true;
-  checkTarget = "test";
+  nativeBuildInputs = [
+    cmake
+  ];
 
   doInstallCheck = true;
   installCheckPhase = ''
@@ -39,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
+    mainProgram = "heatshrink";
   };
 }
diff --git a/pkgs/tools/compression/imagelol/default.nix b/pkgs/tools/compression/imagelol/default.nix
index 857de32ad886f..950b12826b33f 100644
--- a/pkgs/tools/compression/imagelol/default.nix
+++ b/pkgs/tools/compression/imagelol/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
     platforms = platforms.unix;
+    mainProgram = "ImageLOL";
   };
 }
diff --git a/pkgs/tools/compression/lbzip2/default.nix b/pkgs/tools/compression/lbzip2/default.nix
index 6d4017ac62ca7..2e7557a310e51 100644
--- a/pkgs/tools/compression/lbzip2/default.nix
+++ b/pkgs/tools/compression/lbzip2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gnulib, perl, autoconf, automake }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, gnulib, perl, autoconf, automake }:
 
 stdenv.mkDerivation rec {
   pname = "lbzip2";
@@ -11,6 +11,17 @@ stdenv.mkDerivation rec {
     sha256 = "1h321wva6fp6khz6x0i6rqb76xh327nw6v5jhgjpcckwdarj5jv8";
   };
 
+  patches = [
+    # This avoids an implicit function declaration when building gnulib's
+    # xmalloc.c, addressing a build failure with future compiler version.
+    # https://github.com/kjn/lbzip2/pull/33
+    (fetchpatch {
+      name = "GNULIB_XALLOC_DIE.patch";
+      url = "https://github.com/kjn/lbzip2/commit/32b5167940ec817e454431956040734af405a9de.patch";
+      hash = "sha256-YNgmkh4bksIq5kBgZP+8o97aMm9CzFZldfUW6L5DGXk=";
+    })
+  ];
+
   buildInputs = [ gnulib perl ];
   nativeBuildInputs = [ autoconf automake ];
 
diff --git a/pkgs/tools/compression/lzbench/default.nix b/pkgs/tools/compression/lzbench/default.nix
index 93ccc67f7d142..c35f738b2bdec 100644
--- a/pkgs/tools/compression/lzbench/default.nix
+++ b/pkgs/tools/compression/lzbench/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "In-memory benchmark of open-source LZ77/LZSS/LZMA compressors";
     license = licenses.free;
     platforms = platforms.all;
+    mainProgram = "lzbench";
   };
 }
diff --git a/pkgs/tools/compression/lzfse/default.nix b/pkgs/tools/compression/lzfse/default.nix
index 13764971bb516..e5f104a9aef2d 100644
--- a/pkgs/tools/compression/lzfse/default.nix
+++ b/pkgs/tools/compression/lzfse/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    mainProgram = "lzfse";
   };
 }
diff --git a/pkgs/tools/compression/lzip/default.nix b/pkgs/tools/compression/lzip/default.nix
index b41b3c843da6e..526e3f8c12fc3 100644
--- a/pkgs/tools/compression/lzip/default.nix
+++ b/pkgs/tools/compression/lzip/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with maintainers; [ vlaci ];
     platforms = lib.platforms.all;
+    mainProgram = "lzip";
   };
 }
diff --git a/pkgs/tools/compression/lziprecover/default.nix b/pkgs/tools/compression/lziprecover/default.nix
index 38840a07092d2..c3f2ca738c7df 100644
--- a/pkgs/tools/compression/lziprecover/default.nix
+++ b/pkgs/tools/compression/lziprecover/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lziprecover";
-  version = "1.23";
+  version = "1.24";
 
   src = fetchurl {
     url = "mirror://savannah/lzip/lziprecover/${pname}-${version}.tar.gz";
-    sha256 = "sha256-8pgEF38G3VHD+lJhWuGYp2ACts6Nlhw1dVRsN0D0tXI=";
+    sha256 = "sha256-HWmc+u/pLrJiSjZSWAvK/gu7mP54GMJebegjvN0NRY8=";
   };
 
   configureFlags = [
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with maintainers; [ vlaci ];
     platforms = lib.platforms.all;
+    mainProgram = "lziprecover";
   };
 }
diff --git a/pkgs/tools/compression/lzop/default.nix b/pkgs/tools/compression/lzop/default.nix
index 8bf58d9cc3562..64061647667a4 100644
--- a/pkgs/tools/compression/lzop/default.nix
+++ b/pkgs/tools/compression/lzop/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "lzop";
   };
 }
diff --git a/pkgs/tools/compression/mozlz4a/default.nix b/pkgs/tools/compression/mozlz4a/default.nix
index 834b7698cf85f..a9ab74bc7a592 100644
--- a/pkgs/tools/compression/mozlz4a/default.nix
+++ b/pkgs/tools/compression/mozlz4a/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ kira-bruneau pshirshov raskin ];
     platforms = python3.meta.platforms;
     homepage = "https://gist.github.com/Tblue/62ff47bef7f894e92ed5";
+    mainProgram = "mozlz4a";
   };
 }
diff --git a/pkgs/tools/compression/nx2elf/default.nix b/pkgs/tools/compression/nx2elf/default.nix
index d4963487ada18..a068788dc1d8f 100644
--- a/pkgs/tools/compression/nx2elf/default.nix
+++ b/pkgs/tools/compression/nx2elf/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree; # No license specified upstream
     platforms = [ "x86_64-linux" ]; # Should work on Darwin as well, but this is untested. aarch64-linux fails.
     maintainers = [ maintainers.ivar ];
+    mainProgram = "nx2elf";
   };
 }
diff --git a/pkgs/tools/compression/offzip/default.nix b/pkgs/tools/compression/offzip/default.nix
index cc79d29a91d95..e756d42572642 100644
--- a/pkgs/tools/compression/offzip/default.nix
+++ b/pkgs/tools/compression/offzip/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with maintainers; [ r-burns ];
     platforms = platforms.unix;
+    mainProgram = "offzip";
   };
 }
diff --git a/pkgs/tools/compression/orz/default.nix b/pkgs/tools/compression/orz/default.nix
index a0c9a4653ca52..b760b0132ef75 100644
--- a/pkgs/tools/compression/orz/default.nix
+++ b/pkgs/tools/compression/orz/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/richox/orz";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "orz";
   };
 }
diff --git a/pkgs/tools/compression/ouch/default.nix b/pkgs/tools/compression/ouch/default.nix
index 2c645bf56ebfb..07a5302b5a178 100644
--- a/pkgs/tools/compression/ouch/default.nix
+++ b/pkgs/tools/compression/ouch/default.nix
@@ -7,20 +7,21 @@
 , xz
 , zlib
 , zstd
+, stdenv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ouch";
-  version = "0.4.2";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "ouch-org";
     repo = "ouch";
     rev = version;
-    hash = "sha256-XJOv7JFUJulEkGCMLxGi9nldHaPM/CUzyENIC2TdtoE=";
+    hash = "sha256-WO1fetu39fcLGcrbzFh+toHpnyxWuDVHtmjuH203hzQ=";
   };
 
-  cargoHash = "sha256-TfAAU46rH6Jq0MuLRjbaVMRjzoSLYNAWBnUcT8DyIVg=";
+  cargoHash = "sha256-OdAu7fStTJCF1JGJG9TRE1Qosy6yjKsWq01MYpbXZcg=";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
@@ -28,12 +29,19 @@ rustPlatform.buildRustPackage rec {
 
   buildFeatures = [ "zstd/pkg-config" ];
 
+  preCheck = ''
+    substituteInPlace tests/ui.rs \
+      --replace 'format!(r"/private{path}")' 'path.to_string()'
+  '';
+
   postInstall = ''
     installManPage artifacts/*.1
     installShellCompletion artifacts/ouch.{bash,fish} --zsh artifacts/_ouch
   '';
 
-  env.OUCH_ARTIFACTS_FOLDER = "artifacts";
+  env = { OUCH_ARTIFACTS_FOLDER = "artifacts"; } //
+    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
+    lib.optionalAttrs stdenv.cc.isClang { NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; };
 
   meta = with lib; {
     description = "A command-line utility for easily compressing and decompressing files and directories";
@@ -41,5 +49,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/ouch-org/ouch/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda psibi ];
+    mainProgram = "ouch";
   };
 }
diff --git a/pkgs/tools/compression/pbzx/default.nix b/pkgs/tools/compression/pbzx/default.nix
index 03b984bb6435c..44555cd6ddbc5 100644
--- a/pkgs/tools/compression/pbzx/default.nix
+++ b/pkgs/tools/compression/pbzx/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3;
     maintainers = [ maintainers.matthewbauer ];
+    mainProgram = "pbzx";
   };
 }
diff --git a/pkgs/tools/compression/pixz/default.nix b/pkgs/tools/compression/pixz/default.nix
index a8463f8abc4eb..9eb1d6539cdf9 100644
--- a/pkgs/tools/compression/pixz/default.nix
+++ b/pkgs/tools/compression/pixz/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.unix;
+    mainProgram = "pixz";
   };
 }
diff --git a/pkgs/tools/compression/plzip/default.nix b/pkgs/tools/compression/plzip/default.nix
index f8af3a26c8e1f..310ae20749737 100644
--- a/pkgs/tools/compression/plzip/default.nix
+++ b/pkgs/tools/compression/plzip/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ _360ied ];
+    mainProgram = "plzip";
   };
 }
diff --git a/pkgs/tools/compression/rzip/default.nix b/pkgs/tools/compression/rzip/default.nix
index 5f878f8c494fd..3d744dfa35fd7 100644
--- a/pkgs/tools/compression/rzip/default.nix
+++ b/pkgs/tools/compression/rzip/default.nix
@@ -18,11 +18,14 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-int";
+
   meta = with lib; {
     homepage = "https://rzip.samba.org/";
     description = "Compression program";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "rzip";
   };
 }
diff --git a/pkgs/tools/compression/unzrip/default.nix b/pkgs/tools/compression/unzrip/default.nix
index 78b1278d84114..2e92fadd39a91 100644
--- a/pkgs/tools/compression/unzrip/default.nix
+++ b/pkgs/tools/compression/unzrip/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/quininer/unzrip";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "unzrip";
   };
 }
diff --git a/pkgs/tools/compression/upx/default.nix b/pkgs/tools/compression/upx/default.nix
index 4c808acd003e1..c9a516705b0ea 100644
--- a/pkgs/tools/compression/upx/default.nix
+++ b/pkgs/tools/compression/upx/default.nix
@@ -1,22 +1,35 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, nix-update-script
+, testers
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "upx";
-  version = "4.1.0";
+  version = "4.2.2";
   src = fetchFromGitHub {
     owner = "upx";
-    repo = pname;
-    rev = "v${version}";
+    repo = "upx";
+    rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    sha256 = "sha256-pHJypO+sK7+ytM7yJxJpfBJHTYpGc9nr/JiFGd7hlJM=";
+    hash = "sha256-0x7SUW+rB5HNRoRkCQIwfOIMpu+kOifxA7Z3SUlY/ME=";
   };
 
   nativeBuildInputs = [ cmake ];
 
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
+  };
+
   meta = with lib; {
     homepage = "https://upx.github.io/";
     description = "The Ultimate Packer for eXecutables";
+    changelog = "https://github.com/upx/upx/blob/${finalAttrs.src.rev}/NEWS";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "upx";
   };
-}
+})
diff --git a/pkgs/tools/compression/xar/default.nix b/pkgs/tools/compression/xar/default.nix
index d4baab17b91fb..9c03c41054be9 100644
--- a/pkgs/tools/compression/xar/default.nix
+++ b/pkgs/tools/compression/xar/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
       --replace 'openssl/evp.h' 'openssl/crypto.h'
   '';
 
+  configureFlags = lib.optional (fts != null) "LDFLAGS=-lfts";
+
   meta = {
     homepage    = "https://mackyle.github.io/xar/";
     description = "Extensible Archiver";
@@ -42,5 +44,6 @@ stdenv.mkDerivation rec {
     license     = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ copumpkin ];
     platforms   = lib.platforms.all;
+    mainProgram = "xar";
   };
 }
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index adc73d926c905..9e195a0aa7db1 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xz";
-  version = "5.4.4";
+  version = "5.4.6";
 
   src = fetchurl {
-    url = "https://tukaani.org/xz/xz-${version}.tar.bz2";
-    sha256 = "sha256-C2/N4aw46QQzolVvUAwGWVC5vNLWAgBu/DNHgr3+YpY=";
+    url = "https://github.com/tukaani-project/xz/releases/download/v${version}/xz-${version}.tar.bz2";
+    sha256 = "sha256-kThRsnTo4dMXgeyUnxwj6NvPDs9uc6JDbcIXad0+b0k=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/compression/zfp/default.nix b/pkgs/tools/compression/zfp/default.nix
index d63140b147602..8df75d48eb567 100644
--- a/pkgs/tools/compression/zfp/default.nix
+++ b/pkgs/tools/compression/zfp/default.nix
@@ -2,20 +2,20 @@
 , config
 , enableCfp ? true
 , enableCuda ? config.cudaSupport
-, enableFortran ? builtins.elem stdenv.targetPlatform.system gfortran.meta.platforms
+, enableFortran ? builtins.elem stdenv.hostPlatform.system gfortran.meta.platforms
 , enableOpenMP ? true
 , enablePython ? true
 , enableUtilities ? true }:
 
 stdenv.mkDerivation rec {
   pname = "zfp";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "LLNL";
     repo = "zfp";
     rev = version;
-    sha256 = "sha256-E2LI1rWo1HO5O/sxPHAmLDs3Z5xouzlgMj11rQFPNYQ=";
+    sha256 = "sha256-iZxA4lIviZQgaeHj6tEQzEFSKocfgpUyf4WvUykb9qk=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.spease ];
     # 64-bit only
     platforms = platforms.aarch64 ++ platforms.x86_64;
+    mainProgram = "zfp";
   };
 }
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index 791dda4f11ef3..4ba37c1502f65 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -2,7 +2,8 @@
 , fixDarwinDylibNames
 , file
 , legacySupport ? false
-, static ? stdenv.hostPlatform.isStatic
+, static ? stdenv.hostPlatform.isStatic # generates static libraries *only*
+, enableStatic ? static
 # these need to be ran on the host, thus disable when cross-compiling
 , buildContrib ? stdenv.hostPlatform == stdenv.buildPlatform
 , doCheck ? stdenv.hostPlatform == stdenv.buildPlatform
@@ -49,12 +50,10 @@ stdenv.mkDerivation rec {
       tests/playTests.sh
   '';
 
-  LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
-
   cmakeFlags = lib.attrsets.mapAttrsToList
     (name: value: "-DZSTD_${name}:BOOL=${if value then "ON" else "OFF"}") {
       BUILD_SHARED = !static;
-      BUILD_STATIC = static;
+      BUILD_STATIC = enableStatic;
       BUILD_CONTRIB = buildContrib;
       PROGRAMS_LINK_SHARED = !static;
       LEGACY_SUPPORT = legacySupport;
diff --git a/pkgs/tools/compression/zsync/default.nix b/pkgs/tools/compression/zsync/default.nix
index b92112a4816ef..0de21cb9c7364 100644
--- a/pkgs/tools/compression/zsync/default.nix
+++ b/pkgs/tools/compression/zsync/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://zsync.moria.org.uk/";
     description = "File distribution system using the rsync algorithm";
-    license = licenses.free;
+    license = licenses.artistic2;
     maintainers = with maintainers; [ viric ];
     platforms = with platforms; all;
   };
diff --git a/pkgs/tools/filesystems/9pfs/default.nix b/pkgs/tools/filesystems/9pfs/default.nix
index abb8f695ebcc4..7b652bd68aa09 100644
--- a/pkgs/tools/filesystems/9pfs/default.nix
+++ b/pkgs/tools/filesystems/9pfs/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ywWG/H2ilt36mjlDSgIzYpardCFXpmbLiml6wy47XuA=";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace "pkg-config" "$PKG_CONFIG"
+  '';
+
   makeFlags = [ "BIN=$(out)/bin" "MAN=$(out)/share/man/man1" ];
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ fuse ];
diff --git a/pkgs/tools/filesystems/android-file-transfer/default.nix b/pkgs/tools/filesystems/android-file-transfer/default.nix
index b355b0eb68641..b5fe1a4e85eae 100644
--- a/pkgs/tools/filesystems/android-file-transfer/default.nix
+++ b/pkgs/tools/filesystems/android-file-transfer/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "android-file-transfer";
-  version = "4.2";
+  version = "4.3";
 
   src = fetchFromGitHub {
     owner = "whoozle";
     repo = "android-file-transfer-linux";
     rev = "v${version}";
-    sha256 = "125rq8ji83nw6chfw43i0h9c38hjqh1qjibb0gnf9wrigar9zc8b";
+    sha256 = "sha256-UOARMtOnG6tekmOsIWRZbl2y32mR0kPD6w7IHRG8VsU=";
   };
 
   patches = [ ./darwin-dont-vendor-dependencies.patch ];
diff --git a/pkgs/tools/filesystems/bashmount/default.nix b/pkgs/tools/filesystems/bashmount/default.nix
index ef7bfd492e37a..dbd573d5f0126 100644
--- a/pkgs/tools/filesystems/bashmount/default.nix
+++ b/pkgs/tools/filesystems/bashmount/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jamielinux/bashmount";
     description = "A menu-driven bash script for the management of removable media with udisks";
+    mainProgram = "bashmount";
     maintainers = [ maintainers.koral ];
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/pkgs/tools/filesystems/bcache-tools/default.nix b/pkgs/tools/filesystems/bcache-tools/default.nix
index f6dfdd84d8c4f..58f6a05992e90 100644
--- a/pkgs/tools/filesystems/bcache-tools/default.nix
+++ b/pkgs/tools/filesystems/bcache-tools/default.nix
@@ -35,10 +35,6 @@ stdenv.mkDerivation rec {
     "UDEVLIBDIR=${placeholder "out"}/lib/udev/"
   ];
 
-  preBuild = ''
-    sed -e "s|/bin/sh|${bash}/bin/sh|" -i *.rules
-  '';
-
   preInstall = ''
     mkdir -p "$out/sbin" "$out/lib/udev/rules.d" "$out/share/man/man8"
   '';
diff --git a/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock b/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock
index c4dd7f58c7042..091f76071a2b3 100644
--- a/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock
+++ b/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock
@@ -4,27 +4,67 @@ version = 3
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "android_system_properties"
-version = "0.1.5"
+name = "anstream"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
 dependencies = [
- "libc",
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is-terminal",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
+dependencies = [
+ "anstyle",
+ "windows-sys",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.68"
+version = "1.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "atty"
@@ -53,12 +93,12 @@ dependencies = [
  "byteorder",
  "chrono",
  "clap",
+ "clap_complete",
  "colored",
  "either",
- "errno",
+ "errno 0.2.8",
  "gag",
  "getset",
- "itertools",
  "libc",
  "log",
  "parse-display",
@@ -74,7 +114,7 @@ dependencies = [
  "anyhow",
  "bindgen",
  "bitfield",
- "bitflags",
+ "bitflags 1.3.2",
  "byteorder",
  "chrono",
  "colored",
@@ -92,7 +132,7 @@ name = "bindgen"
 version = "0.64.0"
 source = "git+https://evilpiepirate.org/git/rust-bindgen.git#f773267b090bf16b9e8375fcbdcd8ba5e88806a8"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -103,7 +143,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -119,22 +159,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
-name = "bumpalo"
-version = "3.12.0"
+name = "bitflags"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cexpr"
@@ -153,24 +196,18 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.23"
+version = "0.4.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
 dependencies = [
- "iana-time-zone",
- "js-sys",
- "num-integer",
  "num-traits",
- "time",
- "wasm-bindgen",
- "winapi",
 ]
 
 [[package]]
 name = "clang-sys"
-version = "1.6.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
 dependencies = [
  "glob",
  "libc",
@@ -178,118 +215,77 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.1.4"
+version = "4.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76"
+checksum = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487"
 dependencies = [
- "bitflags",
+ "clap_builder",
  "clap_derive",
- "clap_lex",
- "is-terminal",
  "once_cell",
- "strsim",
- "termcolor",
- "terminal_size",
-]
-
-[[package]]
-name = "clap_derive"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8"
-dependencies = [
- "heck",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade"
-dependencies = [
- "os_str_bytes",
 ]
 
 [[package]]
-name = "codespan-reporting"
-version = "0.11.1"
+name = "clap_builder"
+version = "4.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+checksum = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e"
 dependencies = [
- "termcolor",
- "unicode-width",
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+ "terminal_size",
 ]
 
 [[package]]
-name = "colored"
-version = "2.0.0"
+name = "clap_complete"
+version = "4.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd"
+checksum = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce"
 dependencies = [
- "atty",
- "lazy_static",
- "winapi",
+ "clap",
 ]
 
 [[package]]
-name = "core-foundation-sys"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-
-[[package]]
-name = "cxx"
-version = "1.0.89"
+name = "clap_derive"
+version = "4.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc831ee6a32dd495436e317595e639a587aa9907bef96fe6e6abc290ab6204e9"
+checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
 dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
 ]
 
 [[package]]
-name = "cxx-build"
-version = "1.0.89"
+name = "clap_lex"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94331d54f1b1a8895cd81049f7eaaaef9d05a7dcb4d1fd08bf3ff0806246789d"
-dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
- "proc-macro2",
- "quote",
- "scratch",
- "syn",
-]
+checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
 
 [[package]]
-name = "cxxbridge-flags"
-version = "1.0.89"
+name = "colorchoice"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48dcd35ba14ca9b40d6e4b4b39961f23d835dbb8eed74565ded361d93e1feb8a"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
-name = "cxxbridge-macro"
-version = "1.0.89"
+name = "colored"
+version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bbeb29798b407ccd82a3324ade1a7286e0d29851475990b612670f6f5124d2"
+checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "is-terminal",
+ "lazy_static",
+ "windows-sys",
 ]
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "errno"
@@ -303,6 +299,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "errno"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
 name = "errno-dragonfly"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -314,12 +320,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "1.8.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "filedescriptor"
@@ -351,7 +354,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -377,87 +380,33 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.53"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "winapi",
-]
-
-[[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
-dependencies = [
- "cxx",
- "cxx-build",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "io-lifetimes"
-version = "1.0.4"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
+ "hermit-abi 0.3.3",
  "libc",
  "windows-sys",
 ]
 
 [[package]]
 name = "is-terminal"
-version = "0.4.2"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
- "hermit-abi 0.2.6",
- "io-lifetimes",
- "rustix",
+ "hermit-abi 0.3.3",
+ "rustix 0.38.25",
  "windows-sys",
 ]
 
 [[package]]
-name = "itertools"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "js-sys"
-version = "0.3.61"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -471,9 +420,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.139"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "libudev-sys"
@@ -486,34 +435,28 @@ dependencies = [
 ]
 
 [[package]]
-name = "link-cplusplus"
-version = "1.0.8"
+name = "linux-raw-sys"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
-dependencies = [
- "cc",
-]
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.1.4"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -541,35 +484,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.17.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "parse-display"
@@ -592,15 +519,15 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "regex-syntax",
- "syn",
+ "regex-syntax 0.6.29",
+ "syn 1.0.109",
 ]
 
 [[package]]
 name = "paste"
-version = "1.0.11"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "peeking_take_while"
@@ -610,9 +537,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.26"
+version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "proc-macro-error"
@@ -623,7 +550,7 @@ dependencies = [
  "proc-macro-error-attr",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
  "version_check",
 ]
 
@@ -640,56 +567,65 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.50"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.23"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.7.1"
+version = "1.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.28"
+version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
-name = "remove_dir_all"
-version = "0.5.3"
+name = "regex-syntax"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
-]
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rpassword"
@@ -709,29 +645,36 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.36.7"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
- "bitflags",
- "errno",
+ "bitflags 1.3.2",
+ "errno 0.3.7",
  "io-lifetimes",
  "libc",
- "linux-raw-sys",
+ "linux-raw-sys 0.3.8",
  "windows-sys",
 ]
 
 [[package]]
-name = "scratch"
-version = "1.0.3"
+name = "rustix"
+version = "0.38.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno 0.3.7",
+ "libc",
+ "linux-raw-sys 0.4.11",
+ "windows-sys",
+]
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
 
 [[package]]
 name = "strsim"
@@ -741,9 +684,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "syn"
-version = "1.0.107"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -751,67 +694,57 @@ dependencies = [
 ]
 
 [[package]]
-name = "tempfile"
-version = "3.3.0"
+name = "syn"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
- "cfg-if",
- "fastrand",
- "libc",
- "redox_syscall",
- "remove_dir_all",
- "winapi",
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
 ]
 
 [[package]]
-name = "termcolor"
-version = "1.2.0"
+name = "tempfile"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
- "winapi-util",
+ "cfg-if",
+ "fastrand",
+ "redox_syscall",
+ "rustix 0.38.25",
+ "windows-sys",
 ]
 
 [[package]]
 name = "terminal_size"
-version = "0.2.3"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb20089a8ba2b69debd491f8d2d023761cbf196e999218c591fa1e7e15a21907"
+checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
- "rustix",
+ "rustix 0.37.27",
  "windows-sys",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.38"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.38"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
-]
-
-[[package]]
-name = "time"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi",
- "winapi",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -827,21 +760,21 @@ dependencies = [
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.6"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
-name = "unicode-width"
-version = "0.1.10"
+name = "utf8parse"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.3.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
 
 [[package]]
 name = "version_check"
@@ -850,66 +783,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
-
-[[package]]
 name = "winapi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -926,15 +799,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -942,9 +806,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.42.0"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -957,42 +830,42 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
diff --git a/pkgs/tools/filesystems/bcachefs-tools/default.nix b/pkgs/tools/filesystems/bcachefs-tools/default.nix
index 81152d144aa99..36566dc710028 100644
--- a/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -12,32 +12,28 @@
 , lz4
 , attr
 , udev
-, valgrind
 , nixosTests
 , fuse3
 , cargo
 , rustc
-, coreutils
 , rustPlatform
 , makeWrapper
+, writeScript
+, python3
 , fuseSupport ? false
 }:
-let
-  rev = "cfa816bf3f823a3bedfedd8e214ea929c5c755fe";
-in stdenv.mkDerivation {
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "bcachefs-tools";
-  version = "unstable-2023-06-28";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs-tools";
-    inherit rev;
-    hash = "sha256-XgXUwyZV5N8buYTuiu1Y1ZU3uHXjZ/OZ1kbZ9d6Rt5I=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-+KqTiIp9dIJWG2KvgvPwXC7p754XfgvKHjvwjCdbvCs=";
   };
 
-  # errors on fsck_err function. Maybe miss-detection?
-  NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
-
   nativeBuildInputs = [
     pkg-config
     cargo
@@ -69,30 +65,52 @@ in stdenv.mkDerivation {
     udev
   ] ++ lib.optional fuseSupport fuse3;
 
+  # FIXME: Try enabling this once the default linux kernel is at least 6.7
   doCheck = false; # needs bcachefs module loaded on builder
   checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ];
-  nativeCheckInputs = [ valgrind ];
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
-    "VERSION=${lib.strings.substring 0 7 rev}"
+    "VERSION=${finalAttrs.version}"
     "INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools"
+    "BCACHEFS_FUSE=${toString fuseSupport}"
   ];
 
-  preCheck = lib.optionalString fuseSupport ''
+  preCheck = lib.optionalString (!fuseSupport) ''
     rm tests/test_fuse.py
   '';
 
-  passthru.tests = {
-    smoke-test = nixosTests.bcachefs;
-    inherit (nixosTests.installer) bcachefsSimple bcachefsEncrypted bcachefsMulti;
-  };
+  # Tries to install to the 'systemd-minimal' and 'udev' nix installation paths
+  installFlags = [
+    "PKGCONFIG_SERVICEDIR=$(out)/lib/systemd/system"
+    "PKGCONFIG_UDEVDIR=$(out)/lib/udev"
+  ];
 
-  postFixup = ''
-    wrapProgram $out/bin/mount.bcachefs \
-      --prefix PATH : ${lib.makeBinPath [ coreutils ]}
+  postInstall = ''
+    substituteInPlace $out/libexec/bcachefsck_all \
+      --replace "/usr/bin/python3" "${python3}/bin/python3"
   '';
 
+  passthru = {
+    tests = {
+      smoke-test = nixosTests.bcachefs;
+      inherit (nixosTests.installer) bcachefsSimple bcachefsEncrypted bcachefsMulti;
+    };
+
+    updateScript = writeScript "update-bcachefs-tools-and-cargo-lock.sh" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl jq common-updater-scripts
+      res="$(curl ''${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
+        -sL "https://api.github.com/repos/${finalAttrs.src.owner}/${finalAttrs.src.repo}/tags?per_page=1")"
+
+      version="$(echo $res | jq '.[0].name | split("v") | .[1]' --raw-output)"
+      update-source-version ${finalAttrs.pname} "$version" --ignore-same-hash
+
+      curl "https://raw.githubusercontent.com/${finalAttrs.src.owner}/${finalAttrs.src.repo}/v$version/rust-src/Cargo.lock" > \
+        "$(git rev-parse --show-toplevel)/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock"
+    '';
+  };
+
   enableParallelBuilding = true;
 
   meta = with lib; {
@@ -102,4 +120,4 @@ in stdenv.mkDerivation {
     maintainers = with maintainers; [ davidak Madouura ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/tools/filesystems/bees/default.nix b/pkgs/tools/filesystems/bees/default.nix
index fd1166e1a301c..1dbb62ccb1b23 100644
--- a/pkgs/tools/filesystems/bees/default.nix
+++ b/pkgs/tools/filesystems/bees/default.nix
@@ -14,13 +14,13 @@ let
 
   bees = stdenv.mkDerivation rec {
     pname = "bees";
-    version = "0.9.3";
+    version = "0.10";
 
     src = fetchFromGitHub {
       owner = "Zygo";
       repo = "bees";
       rev = "v${version}";
-      sha256 = "sha256-krG8TzfOz3m7h3GfkBU+NJz7EdlXiWOOXY8bQRq9z4Q=";
+      hash = "sha256-f3P3BEd8uO6QOZ1/2hBzdcuOSggYvHxW3g9pGftKO8g=";
     };
 
     buildInputs = [
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index dfcf6aba9e084..f7d5ce61d81cf 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "1.17.4";
+  version = "1.17.6";
   pname = "bindfs";
 
   src = fetchurl {
     url = "https://bindfs.org/downloads/bindfs-${finalAttrs.version}.tar.gz";
-    hash = "sha256-b9Svm6LsK9tgPvjuoqnRLbLl/py+UrhkC0FXNKWfPcw=";
+    hash = "sha256-076zzGm7K2gCzFOViOkh/qlz7WGRsTPyAkcZMR0cwYs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/blobfuse/default.nix b/pkgs/tools/filesystems/blobfuse/default.nix
index 64edc17a89f60..2acd137be736d 100644
--- a/pkgs/tools/filesystems/blobfuse/default.nix
+++ b/pkgs/tools/filesystems/blobfuse/default.nix
@@ -1,42 +1,32 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, curl, gnutls, libgcrypt, libuuid, fuse, boost }:
+{ lib, buildGoModule, fetchFromGitHub, fuse3, testers, blobfuse }:
 
 let
-  version = "1.3.7";
+  version = "2.1.2";
   src = fetchFromGitHub {
-    owner  = "Azure";
-    repo   = "azure-storage-fuse";
-    rev    = "blobfuse-${version}-Linux";
-    sha256 = "sha256-yihIuS4AG489U7eBi/p7H6S7Cg54kkQeNVCexxQZ60A=";
+    owner = "Azure";
+    repo = "azure-storage-fuse";
+    rev = "blobfuse2-${version}";
+    sha256 = "sha256-KzpD+6g1WwviydYE0v5pSH35zC41MrPlk5MitwAIgnE=";
   };
-  cpplite = stdenv.mkDerivation rec {
-    pname = "cpplite";
-    inherit version src;
-
-    sourceRoot = "${src.name}/cpplite";
-    patches = [ ./install-adls.patch ];
-
-    cmakeFlags = [ "-DBUILD_ADLS=ON" "-DUSE_OPENSSL=OFF" ];
-
-    buildInputs = [ curl libuuid gnutls ];
-    nativeBuildInputs = [ cmake pkg-config ];
-  };
-in stdenv.mkDerivation rec {
+in buildGoModule {
   pname = "blobfuse";
   inherit version src;
 
-  env.NIX_CFLAGS_COMPILE = toString [
-    # Needed with GCC 12
-    "-Wno-error=deprecated-declarations"
-    "-Wno-error=catch-value"
-  ];
+  vendorHash = "sha256-+Z+mkTs/8qCtYcWZIMzsW9MQsC08KDJUHNbxyc6Ro5Y=";
+
+  buildInputs = [ fuse3 ];
+
+  # Many tests depend on network or needs to be configured to pass. See the link below for a starting point
+  # https://github.com/NixOS/nixpkgs/pull/201196/files#diff-e669dbe391f8856f4564f26023fe147a7b720aeefe6869ab7a218f02a8247302R20
+  doCheck = false;
 
-  buildInputs = [ curl gnutls libgcrypt libuuid fuse boost cpplite ];
-  nativeBuildInputs = [ cmake pkg-config ];
+  passthru.tests.version = testers.testVersion { package = blobfuse; };
 
   meta = with lib; {
     description = "Mount an Azure Blob storage as filesystem through FUSE";
     license = licenses.mit;
     maintainers = with maintainers; [ jbgi ];
     platforms = platforms.linux;
+    mainProgram = "azure-storage-fuse";
   };
 }
diff --git a/pkgs/tools/filesystems/blobfuse/install-adls.patch b/pkgs/tools/filesystems/blobfuse/install-adls.patch
deleted file mode 100644
index e48f4d592f683..0000000000000
--- a/pkgs/tools/filesystems/blobfuse/install-adls.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/adls/CMakeLists.txt b/adls/CMakeLists.txt
-index 1fb7146..22e663a 100644
---- a/adls/CMakeLists.txt
-+++ b/adls/CMakeLists.txt
-@@ -50,3 +50,9 @@ if(BUILD_TESTS)
-   string(REGEX REPLACE "([^;]+)" "${CMAKE_CURRENT_SOURCE_DIR}/\\1" AZURE_STORAGE_ADLS_TEST_SOURCES "${AZURE_STORAGE_ADLS_TEST_SOURCES}")
-   set(AZURE_STORAGE_ADLS_TEST_SOURCES ${AZURE_STORAGE_ADLS_TEST_SOURCES} PARENT_SCOPE)
- endif()
-+
-+install(TARGETS azure-storage-adls
-+        ARCHIVE DESTINATION lib
-+        LIBRARY DESTINATION lib
-+        RUNTIME DESTINATION bin)
-+
diff --git a/pkgs/tools/filesystems/bonnie/default.nix b/pkgs/tools/filesystems/bonnie/default.nix
index 429617e5eae2f..a2f1c51e7e123 100644
--- a/pkgs/tools/filesystems/bonnie/default.nix
+++ b/pkgs/tools/filesystems/bonnie/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchurl, perl }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+}:
 
 stdenv.mkDerivation rec {
   pname = "bonnie++";
@@ -6,17 +10,25 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://www.coker.com.au/bonnie++/bonnie++-${version}.tgz";
-    sha256 = "sha256-qNM7vYG8frVZzlv25YS5tT+uo5zPtK6S5Y8nJX5Gjw4=";
+    hash = "sha256-qNM7vYG8frVZzlv25YS5tT+uo5zPtK6S5Y8nJX5Gjw4=";
   };
 
-  enableParallelBuilding = true;
+  patches = [
+    (fetchpatch {
+      name = "bonnie++-2.00a-gcc11.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-benchmarks/bonnie++/files/bonnie++-2.00a-gcc11.patch?id=d0f29755e969c805fbd6240905e3925671340666";
+      hash = "sha256-/cIC4HYQco5Nv1UoTELl2OGD5hdWhbz3L0+GjN/vcdE=";
+    })
+  ];
 
-  buildInputs = [ perl ];
+  enableParallelBuilding = true;
 
   meta = {
-    homepage = "http://www.coker.com.au/bonnie++/";
     description = "Hard drive and file system benchmark suite";
-    license = lib.licenses.gpl2;
+    homepage = "http://www.coker.com.au/bonnie++/";
+    license = lib.licenses.gpl2Only;
+    mainProgram = "bonnie++";
+    maintainers = with lib.maintainers; [ wegank ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
   };
 }
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 879075101b2c2..ef3ba227ea6bb 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchurl
-, pkg-config, sphinx
+, buildPackages
+, pkg-config
 , zstd
 , acl, attr, e2fsprogs, libuuid, lzo, udev, zlib
 , runCommand, btrfs-progs
@@ -9,17 +10,20 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "6.5.2";
+  version = "6.7";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "sha256-xViy3dQ/V0ei9ctirtPlxQmXA4hkhaSAMQ/tRpjTYQw=";
+    hash = "sha256-wn91UYW58tqzH0LoowPTa+0qPzNBzG117migplCiR2c=";
   };
 
   nativeBuildInputs = [
     pkg-config
   ] ++ [
-    sphinx
+    (buildPackages.python3.withPackages (ps: with ps; [
+      sphinx
+      sphinx-rtd-theme
+    ]))
   ];
 
   buildInputs = [ acl attr e2fsprogs libuuid lzo udev zlib zstd ];
diff --git a/pkgs/tools/filesystems/btrfs-snap/default.nix b/pkgs/tools/filesystems/btrfs-snap/default.nix
index e43380e6792e0..efc2ddafa4191 100644
--- a/pkgs/tools/filesystems/btrfs-snap/default.nix
+++ b/pkgs/tools/filesystems/btrfs-snap/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
     ]}
   '';
   meta = with lib; {
-    description = "btrfs-snap creates and maintains the history of snapshots of btrfs filesystems.";
+    description = "Create and maintain the history of snapshots of btrfs filesystems";
     homepage = "https://github.com/jf647/btrfs-snap";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lionello ];
diff --git a/pkgs/tools/filesystems/ceph-csi/default.nix b/pkgs/tools/filesystems/ceph-csi/default.nix
index 5ca2e416a1d43..d6b39ef68e4f0 100644
--- a/pkgs/tools/filesystems/ceph-csi/default.nix
+++ b/pkgs/tools/filesystems/ceph-csi/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ceph-csi";
-  version = "3.9.0";
+  version = "3.10.1";
 
   nativeBuildInputs = [ go ];
   buildInputs = [ ceph ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "ceph";
     repo = "ceph-csi";
     rev = "v${version}";
-    sha256 = "sha256-dKn79EIveepeMzFPweQ3BE3YMCg7mj8EycMbBH8J8PQ=";
+    sha256 = "sha256-S5jv9l/Oozv0NrEEf+Bik0jnaK4AYIChFm2pU2/DQow=";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index 3cbf3704fbe96..fa87a6abfe754 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -28,8 +28,10 @@
 , doxygen
 , gperf
 , graphviz
+, gnugrep
 , gtest
 , icu
+, kmod
 , libcap
 , libcap_ng
 , libnl
@@ -48,6 +50,9 @@
 , zlib
 , zstd
 
+# Dependencies of overridden Python dependencies, hopefully we can remove these soon.
+, rustPlatform
+
 # Optional Dependencies
 , curl ? null
 , expat ? null
@@ -164,19 +169,67 @@ let
 
   # Watch out for python <> boost compatibility
   python = python310.override {
-    packageOverrides = self: super: {
-      sqlalchemy = super.sqlalchemy.overridePythonAttrs rec {
-        version = "1.4.46";
+    packageOverrides = self: super: let cryptographyOverrideVersion = "40.0.1"; in {
+      # Ceph does not support `cryptography` > 40 yet:
+      # * https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1899358602
+      # * Upstream issue: https://tracker.ceph.com/issues/63529
+      #   > Python Sub-Interpreter Model Used by ceph-mgr Incompatible With Python Modules Based on PyO3
+      #
+      # We pin the older `cryptography` 40 here;
+      # this also forces us to pin an older `pyopenssl` because the current one
+      # is not compatible with older `cryptography`, see:
+      #     https://github.com/pyca/pyopenssl/blob/d9752e44127ba36041b045417af8a0bf16ec4f1e/CHANGELOG.rst#2320-2023-05-30
+      cryptography = super.cryptography.overridePythonAttrs (old: rec {
+        version = cryptographyOverrideVersion;
+
         src = fetchPypi {
-          pname = "SQLAlchemy";
-          inherit version;
-          hash = "sha256-aRO4JH2KKS74MVFipRkx4rQM6RaB8bbxj2lwRSAMSjA=";
+          inherit (old) pname;
+          version = cryptographyOverrideVersion;
+          hash = "sha256-KAPy+LHpX2FEGZJsfm9V2CivxhTKXtYVQ4d65mjMNHI=";
         };
-        disabledTestPaths = [
-          "test/aaa_profiling"
-          "test/ext/mypy"
+
+        cargoDeps = rustPlatform.fetchCargoTarball {
+          inherit src;
+          sourceRoot = let cargoRoot = "src/rust"; in "${old.pname}-${cryptographyOverrideVersion}/${cargoRoot}";
+          name = "${old.pname}-${cryptographyOverrideVersion}";
+          hash = "sha256-gFfDTc2QWBWHBCycVH1dYlCsWQMVcRZfOBIau+njtDU=";
+        };
+
+        patches = (old.patches or []) ++ [
+          # Fix https://nvd.nist.gov/vuln/detail/CVE-2023-49083 which has no upstream backport.
+          # See https://github.com/pyca/cryptography/commit/f09c261ca10a31fe41b1262306db7f8f1da0e48a#diff-f5134bf8f3cf0a5cc8601df55e50697acc866c603a38caff98802bd8e17976c5R1893
+          ./python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch
         ];
-      };
+
+        # Tests would require overriding `cryptography-vectors`, which is not currently
+        # possible/desired, see: https://github.com/NixOS/nixpkgs/pull/281858#pullrequestreview-1841421866
+        doCheck = false;
+      });
+
+      # This is the most recent version of `pyopenssl` that's still compatible with `cryptography` 40.
+      # See https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1899358602
+      pyopenssl = super.pyopenssl.overridePythonAttrs (old: rec {
+        version = "23.1.1";
+        src = fetchPypi {
+          pname = "pyOpenSSL";
+          inherit version;
+          hash = "sha256-hBSYub7GFiOxtsR+u8AjZ8B9YODhlfGXkIF/EMyNsLc=";
+        };
+      });
+
+      # Ceph does not support `kubernetes` >= 19, see:
+      #     https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1900324090
+      kubernetes = super.kubernetes.overridePythonAttrs (old: rec {
+        version = "18.20.0";
+        src = fetchFromGitHub {
+          owner = "kubernetes-client";
+          repo = "python";
+          rev = "v${version}";
+          sha256 = "1sawp62j7h0yksmg9jlv4ik9b9i1a1w9syywc9mv8x89wibf5ql1";
+          fetchSubmodules = true;
+        };
+      });
+
     };
   };
 
@@ -306,10 +359,14 @@ in rec {
 
     pythonPath = [ ceph-python-env "${placeholder "out"}/${ceph-python-env.sitePackages}" ];
 
+    # replace /sbin and /bin based paths with direct nix store paths
+    # increase the `command` buffer size since 2 nix store paths cannot fit within 128 characters
     preConfigure =''
-      substituteInPlace src/common/module.c --replace "/sbin/modinfo"  "modinfo"
-      substituteInPlace src/common/module.c --replace "/sbin/modprobe" "modprobe"
-      substituteInPlace src/common/module.c --replace "/bin/grep" "grep"
+      substituteInPlace src/common/module.c \
+        --replace "char command[128];" "char command[256];" \
+        --replace "/sbin/modinfo"  "${kmod}/bin/modinfo" \
+        --replace "/sbin/modprobe" "${kmod}/bin/modprobe" \
+        --replace "/bin/grep" "${gnugrep}/bin/grep"
 
       # install target needs to be in PYTHONPATH for "*.pth support" check to succeed
       # set PYTHONPATH, so the build system doesn't silently skip installing ceph-volume and others
diff --git a/pkgs/tools/filesystems/ceph/python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch b/pkgs/tools/filesystems/ceph/python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch
new file mode 100644
index 0000000000000..7ca05cf7450f8
--- /dev/null
+++ b/pkgs/tools/filesystems/ceph/python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch
@@ -0,0 +1,44 @@
+commit 08dbad8552ecca85d3e38072f94eb864b143d218
+Author: Niklas Hambüchen <mail@nh2.me>
+Date:   Mon Jan 22 12:52:06 2024 +0000
+
+    Cherry-pick fix for CVE-2023-49083
+    
+    Cherry-Picked-From: f09c261ca10a31fe41b1262306db7f8f1da0e48a
+    Cherry-Picked-By: Niklas Hambüchen <mail@nh2.me>
+
+diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
+index a3fe1bce4..58e7207c4 100644
+--- a/src/cryptography/hazmat/backends/openssl/backend.py
++++ b/src/cryptography/hazmat/backends/openssl/backend.py
+@@ -2383,9 +2383,12 @@ class Backend:
+                 _Reasons.UNSUPPORTED_SERIALIZATION,
+             )
+ 
++        certs: list[x509.Certificate] = []
++        if p7.d.sign == self._ffi.NULL:
++            return certs
++
+         sk_x509 = p7.d.sign.cert
+         num = self._lib.sk_X509_num(sk_x509)
+-        certs = []
+         for i in range(num):
+             x509 = self._lib.sk_X509_value(sk_x509, i)
+             self.openssl_assert(x509 != self._ffi.NULL)
+diff --git a/tests/hazmat/primitives/test_pkcs7.py b/tests/hazmat/primitives/test_pkcs7.py
+index 4e61c5ef5..d8170bfb9 100644
+--- a/tests/hazmat/primitives/test_pkcs7.py
++++ b/tests/hazmat/primitives/test_pkcs7.py
+@@ -89,6 +89,12 @@ class TestPKCS7Loading:
+                 mode="rb",
+             )
+ 
++    def test_load_pkcs7_empty_certificates(self, backend):
++        der = b"\x30\x0B\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x07\x02"
++
++        certificates = pkcs7.load_der_pkcs7_certificates(der)
++        assert certificates == []
++
+ 
+ # We have no public verification API and won't be adding one until we get
+ # some requirements from users so this function exists to give us basic
diff --git a/pkgs/tools/filesystems/convoy/default.nix b/pkgs/tools/filesystems/convoy/default.nix
deleted file mode 100644
index 774568fdde17a..0000000000000
--- a/pkgs/tools/filesystems/convoy/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file was generated by go2nix.
-{ lib, buildGoPackage, fetchFromGitHub, lvm2 }:
-
-buildGoPackage rec {
-  pname = "convoy";
-  version = "0.5.2";
-
-  goPackagePath = "github.com/rancher/convoy";
-
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    owner = "rancher";
-    repo = "convoy";
-    sha256 = "09nygrxd5hril4xcfsvgjg74xxhhimznqq4sdk0f360c5ra0dbhj";
-  };
-
-  buildInputs = [lvm2];
-
-  meta = with lib; {
-    homepage = "https://github.com/rancher/convoy";
-    description = "A Docker volume plugin, managing persistent container volumes";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ offline ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index 3d3c1b54db823..a64812e96b9c7 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -21,7 +21,9 @@ stdenv.mkDerivation rec {
     autoreconfHook
   ];
 
-  buildInputs = [ neon zlib ];
+  buildInputs = [
+    zlib
+  ];
 
   patches = [
     ./fix-sysconfdir.patch
@@ -36,7 +38,10 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  configureFlags = [ "--sysconfdir=/etc" ];
+  configureFlags = [
+    "--sysconfdir=/etc"
+    "--with-neon=${lib.getLib neon}"
+  ];
 
   meta = {
     homepage = "https://savannah.nongnu.org/projects/davfs2";
diff --git a/pkgs/tools/filesystems/davfs2/isdir.patch b/pkgs/tools/filesystems/davfs2/isdir.patch
deleted file mode 100644
index ae69b4460f5a2..0000000000000
--- a/pkgs/tools/filesystems/davfs2/isdir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -ur davfs2-1.4.5-old/src/dav_coda.c davfs2-1.4.5-new/src/dav_coda.c
---- davfs2-1.4.5-old/src/dav_coda.c	2009-06-04 20:30:32.000000000 +0200
-+++ davfs2-1.4.5-new/src/dav_coda.c	2011-02-09 19:51:22.260530572 +0100
-@@ -52,6 +52,10 @@
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
-+#ifdef HAVE_SYS_STAT_H
-+#include <sys/stat.h>
-+#endif
-+
- 
- #include "defaults.h"
- #include "mount_davfs.h"
-diff -ur davfs2-1.4.5-old/src/dav_fuse.c davfs2-1.4.5-new/src/dav_fuse.c
---- davfs2-1.4.5-old/src/dav_fuse.c	2009-06-30 20:06:44.000000000 +0200
-+++ davfs2-1.4.5-new/src/dav_fuse.c	2011-02-09 19:52:23.938220524 +0100
-@@ -41,6 +41,12 @@
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
- #endif
-+#ifdef HAVE_SYS_TYPES_H
-+#include <sys/types.h>
-+#endif
-+#ifdef HAVE_SYS_STAT_H
-+#include <sys/stat.h>
-+#endif
- 
- #include "defaults.h"
- #include "mount_davfs.h"
diff --git a/pkgs/tools/filesystems/dduper/default.nix b/pkgs/tools/filesystems/dduper/default.nix
index efdb9f3dc1d60..7f876df37ee1f 100644
--- a/pkgs/tools/filesystems/dduper/default.nix
+++ b/pkgs/tools/filesystems/dduper/default.nix
@@ -4,9 +4,8 @@ let
   btrfsProgsPatched = btrfs-progs.overrideAttrs {
     patches = [
       (fetchpatch {
-        name = "0001-Print-csum-for-a-given-file-on-stdout.patch";
-        url = "https://raw.githubusercontent.com/Lakshmipathi/dduper/ecc2664c380616ec75cfc1e600b5514cdff5c687/patch/btrfs-progs-v6.1/0001-Print-csum-for-a-given-file-on-stdout.patch";
-        sha256 = "sha256-M4LT7G6gwBfSXf6EL4pxNoQJMyUTOA+ojxEJqw2yss4=";
+        url = "https://raw.githubusercontent.com/Lakshmipathi/dduper/1f1d29eff61430e118f88239545a29f0bcf3e15d/patch/btrfs-progs-v6.3.3/0001-Print-csum-for-a-given-file-on-stdout.patch";
+        hash = "sha256-bO0t8QePnUbMkQQPesZlBF/khD/H8AaWHr2GkOnT6x8=";
       })
     ];
   };
@@ -41,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Fast block-level out-of-band BTRFS deduplication tool.";
+    description = "Fast block-level out-of-band BTRFS deduplication tool";
     homepage = "https://github.com/Lakshmipathi/dduper";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ thesola10 ];
diff --git a/pkgs/tools/filesystems/dupe-krill/default.nix b/pkgs/tools/filesystems/dupe-krill/default.nix
index d825c1b0fb09c..8f962b65a329e 100644
--- a/pkgs/tools/filesystems/dupe-krill/default.nix
+++ b/pkgs/tools/filesystems/dupe-krill/default.nix
@@ -17,9 +17,10 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-JUcIDUVzSLzblb2EbmSfuCAB+S0fyW6wpGF0b/xR+b0=";
 
   meta = with lib; {
-    description = " A fast file deduplicator.";
+    description = "A fast file deduplicator";
     homepage = "https://github.com/kornelski/dupe-krill";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ urbas ];
+    mainProgram = "dupe-krill";
   };
 }
diff --git a/pkgs/tools/filesystems/duperemove/default.nix b/pkgs/tools/filesystems/duperemove/default.nix
index e44e961e3aeb6..c1d8602568042 100644
--- a/pkgs/tools/filesystems/duperemove/default.nix
+++ b/pkgs/tools/filesystems/duperemove/default.nix
@@ -1,16 +1,25 @@
-{ lib, stdenv, fetchFromGitHub, libgcrypt
-, pkg-config, glib, linuxHeaders ? stdenv.cc.libc.linuxHeaders, sqlite
-, util-linux }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, libgcrypt
+, pkg-config
+, glib
+, linuxHeaders ? stdenv.cc.libc.linuxHeaders
+, sqlite
+, util-linux
+, testers
+, duperemove
+}:
 
 stdenv.mkDerivation rec {
   pname = "duperemove";
-  version = "0.13";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "markfasheh";
     repo = "duperemove";
     rev = "v${version}";
-    hash = "sha256-D3+p8XgokKIHEwZnvOkn7cionVH1gsypcURF+PBpugY=";
+    hash = "sha256-iMv80UKktYOhNfVA3mW6kKv8TwLZaP6MQt24t3Rchk4=";
   };
 
   postPatch = ''
@@ -19,9 +28,18 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libgcrypt glib linuxHeaders sqlite ];
+  buildInputs = [ libgcrypt glib linuxHeaders sqlite util-linux ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "VERSION=v${version}"
+  ];
+
+  passthru.tests.version = testers.testVersion {
+    package = duperemove;
+    command = "duperemove --version";
+    version = "v${version}";
+  };
 
   meta = with lib; {
     description = "A simple tool for finding duplicated extents and submitting them for deduplication";
@@ -29,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ bluescreen303 thoughtpolice ];
     platforms = platforms.linux;
+    mainProgram = "duperemove";
   };
 }
diff --git a/pkgs/tools/filesystems/dwarfs/default.nix b/pkgs/tools/filesystems/dwarfs/default.nix
index e5804f3785296..8703c11bf3c73 100644
--- a/pkgs/tools/filesystems/dwarfs/default.nix
+++ b/pkgs/tools/filesystems/dwarfs/default.nix
@@ -26,14 +26,14 @@
 
 stdenv.mkDerivation rec {
   pname = "dwarfs";
-  version = "0.7.2";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "mhx";
     repo = "dwarfs";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-DcPRrATI2cpLZWAL+sSCoXvJ1R0O3yHqhlJW1aEpDpA=";
+    hash = "sha256-wclUyATUZmF7EEkrK9nWASmfiB+MBrvEzc73ngOrhZ0=";
   };
 
   patches = [
diff --git a/pkgs/tools/filesystems/dysk/default.nix b/pkgs/tools/filesystems/dysk/default.nix
index 9491db559ae5c..2dc4698f81729 100644
--- a/pkgs/tools/filesystems/dysk/default.nix
+++ b/pkgs/tools/filesystems/dysk/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dysk";
-  version = "2.8.1";
+  version = "2.8.2";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = "dysk";
     rev = "v${version}";
-    hash = "sha256-iagh4BrcfQY8k2u1HlR50ht/KWOeEkoxYJ/Lg2cKWX8=";
+    hash = "sha256-h/vdc7ltlXJQi1f013+fNyYB6fc0hTUcx4LN6UySIGM=";
   };
 
-  cargoHash = "sha256-mgEdDX+K71aT4ZMBDzxjOZhHqq8baXFFrwkfYzwIbUI=";
+  cargoHash = "sha256-LC7A+fu4SqfsxT3K9gYJPx8G9h+7kXq0Nq70iSlfygE=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Canop/dysk/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda koral ];
+    mainProgram = "dysk";
   };
 }
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index fd4643025605a..a5ca282955f33 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo
-, fuse
+, withFuse ? stdenv.isLinux, fuse
 , shared ? !stdenv.hostPlatform.isStatic
 , e2fsprogs, runCommand
 }:
@@ -15,12 +15,12 @@ stdenv.mkDerivation rec {
 
   # fuse2fs adds 14mb of dependencies
   outputs = [ "bin" "dev" "out" "man" "info" ]
-    ++ lib.optionals stdenv.isLinux [ "fuse2fs" ];
+    ++ lib.optionals withFuse [ "fuse2fs" ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkg-config texinfo ];
   buildInputs = [ libuuid gettext ]
-    ++ lib.optionals stdenv.isLinux [ fuse ];
+    ++ lib.optionals withFuse [ fuse ];
 
   patches = [
     (fetchpatch { # avoid using missing __GNUC_PREREQ(X,Y)
@@ -63,7 +63,7 @@ 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 ''
+  '' + lib.optionalString withFuse ''
     mkdir -p $fuse2fs/bin
     mv $bin/bin/fuse2fs $fuse2fs/bin/fuse2fs
   '';
diff --git a/pkgs/tools/filesystems/eiciel/default.nix b/pkgs/tools/filesystems/eiciel/default.nix
index dff1700d73fc2..a3f7378c205ce 100644
--- a/pkgs/tools/filesystems/eiciel/default.nix
+++ b/pkgs/tools/filesystems/eiciel/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sersorrel ];
     platforms = platforms.linux;
+    mainProgram = "eiciel";
   };
 }
diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index 14701a615c01e..966c396823928 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , cmake, pkg-config, perl
 , gettext, fuse, openssl, tinyxml2
 }:
@@ -14,6 +14,15 @@ stdenv.mkDerivation rec {
     owner = "vgough";
   };
 
+  patches = lib.optionals stdenv.cc.isClang [
+    # Fixes a build failure when building with newer versions of clang.
+    # https://github.com/vgough/encfs/pull/650
+    (fetchpatch {
+      url = "https://github.com/vgough/encfs/commit/406b63bfe234864710d1d23329bf41d48001fbfa.patch";
+      hash = "sha256-VunC5ICRJBgCXqkr7ad7DPzweRJr1bdOpo1LKNCs4zY=";
+    })
+  ];
+
   buildInputs = [ gettext fuse openssl tinyxml2 ];
   nativeBuildInputs = [ cmake pkg-config perl ];
 
diff --git a/pkgs/tools/filesystems/envfs/default.nix b/pkgs/tools/filesystems/envfs/default.nix
index ceb6c0412e30c..e91df03f7da1e 100644
--- a/pkgs/tools/filesystems/envfs/default.nix
+++ b/pkgs/tools/filesystems/envfs/default.nix
@@ -1,14 +1,14 @@
 { rustPlatform, lib, fetchFromGitHub, nixosTests }:
 rustPlatform.buildRustPackage rec {
   pname = "envfs";
-  version = "1.0.1";
+  version = "1.0.3";
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "envfs";
     rev = version;
-    hash = "sha256-ttW1NUCtwnjAoiu7QgLGrlAB2PyY4oXm91LpWhbz8qk=";
+    hash = "sha256-WbMqh/MzEMfZmKl/DNBGnzG3l8unFmAYbG6feSiMz+Y=";
   };
-  cargoHash = "sha256-BgXKwKD6w/GraBQEq61D7S7m2Q9TnkXNFJEIgDYo9L4=";
+  cargoHash = "sha256-RoreNBZvTsVY87nbVibJBy4gsafFwAMctVncAhhiaP8=";
 
   passthru.tests = {
     envfs = nixosTests.envfs;
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
     ln -s envfs $out/bin/mount.fuse.envfs
   '';
   meta = with lib; {
-    description = "Fuse filesystem that returns symlinks to executables based on the PATH of the requesting process.";
+    description = "Fuse filesystem that returns symlinks to executables based on the PATH of the requesting process";
     homepage = "https://github.com/Mic92/envfs";
     license = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
diff --git a/pkgs/tools/filesystems/erofs-utils/default.nix b/pkgs/tools/filesystems/erofs-utils/default.nix
index 163439c903edb..5346403fa0e00 100644
--- a/pkgs/tools/filesystems/erofs-utils/default.nix
+++ b/pkgs/tools/filesystems/erofs-utils/default.nix
@@ -1,26 +1,36 @@
-{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, fuse, util-linux, lz4, zlib
+{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, fuse, util-linux, lz4, xz, zlib, libselinux
 , fuseSupport ? stdenv.isLinux
+, selinuxSupport ? false
+, lzmaSupport ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "erofs-utils";
-  version = "1.7";
+  version = "1.7.1";
   outputs = [ "out" "man" ];
 
   src = fetchurl {
     url =
       "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/snapshot/erofs-utils-${version}.tar.gz";
-    hash = "sha256-tutSm7Qj6y3XecnanCYyhVSItLkeI1U6Mc4j8Rycziw=";
+    hash = "sha256-GWCD1j5eIx+1eZ586GqUS7ylZNqrzj3pIlqKyp3K/xU=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ util-linux lz4 zlib ]
-    ++ lib.optionals fuseSupport [ fuse ];
+    ++ lib.optionals fuseSupport [ fuse ]
+    ++ lib.optionals selinuxSupport [ libselinux ]
+    ++ lib.optionals lzmaSupport [ xz ];
 
-  configureFlags = lib.optionals fuseSupport [ "--enable-fuse" ];
+  configureFlags = [
+    "MAX_BLOCK_SIZE=4096"
+  ] ++ lib.optional fuseSupport "--enable-fuse"
+    ++ lib.optional selinuxSupport "--with-selinux"
+    ++ lib.optional lzmaSupport "--enable-lzma";
 
   meta = with lib; {
+    homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/about/";
     description = "Userspace utilities for linux-erofs file system";
+    changelog = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/ChangeLog?h=v${version}";
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ ehmry nikstur ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/filesystems/exfatprogs/default.nix b/pkgs/tools/filesystems/exfatprogs/default.nix
index 3310589824d02..dafdd2c830a9d 100644
--- a/pkgs/tools/filesystems/exfatprogs/default.nix
+++ b/pkgs/tools/filesystems/exfatprogs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exfatprogs";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-xNspLbm7v4nj82Y4gYqWEBU7cVlFBh3rnqhQ8CXEqrw=";
+    sha256 = "sha256-2j+N/H+Vdy3Q6Ie2gBGkNKtLjt19RDvm9HZMS5l3L5Y=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook file ];
diff --git a/pkgs/tools/filesystems/ext4magic/default.nix b/pkgs/tools/filesystems/ext4magic/default.nix
index ed9fa6df969b1..bb23f58c38c61 100644
--- a/pkgs/tools/filesystems/ext4magic/default.nix
+++ b/pkgs/tools/filesystems/ext4magic/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.rkoe ];
+    mainProgram = "ext4magic";
   };
 }
diff --git a/pkgs/tools/filesystems/extundelete/default.nix b/pkgs/tools/filesystems/extundelete/default.nix
index 276f6139b794a..0c3062fb11cac 100644
--- a/pkgs/tools/filesystems/extundelete/default.nix
+++ b/pkgs/tools/filesystems/extundelete/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.domenkozar ];
+    mainProgram = "extundelete";
   };
 }
diff --git a/pkgs/tools/filesystems/f2fs-tools/default.nix b/pkgs/tools/filesystems/f2fs-tools/default.nix
index c2af098577281..811adfadb55bc 100644
--- a/pkgs/tools/filesystems/f2fs-tools/default.nix
+++ b/pkgs/tools/filesystems/f2fs-tools/default.nix
@@ -1,12 +1,11 @@
-{ lib, stdenv, fetchgit, autoreconfHook, libselinux, libuuid, pkg-config }:
+{ lib, stdenv, fetchzip, autoreconfHook, libselinux, libuuid, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "f2fs-tools";
   version = "1.16.0";
 
-  src = fetchgit {
-    url = "https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git";
-    rev = "refs/tags/v${version}";
+  src = fetchzip {
+    url = "https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/f2fs-tools-v${version}.tar.gz";
     sha256 = "sha256-zNG1F//+BTBzlEc6qNVixyuCB6PMZD5Kf8pVK0ePYiA=";
   };
 
diff --git a/pkgs/tools/filesystems/fatresize/default.nix b/pkgs/tools/filesystems/fatresize/default.nix
index 8f258a79f7dea..80f7e5ecd4ae9 100644
--- a/pkgs/tools/filesystems/fatresize/default.nix
+++ b/pkgs/tools/filesystems/fatresize/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/ya-mouse/fatresize";
     platforms = platforms.linux;
     license = licenses.gpl3;
+    mainProgram = "fatresize";
   };
 }
diff --git a/pkgs/tools/filesystems/fatsort/default.nix b/pkgs/tools/filesystems/fatsort/default.nix
index ef7111dd72ff0..d1604e49a32e0 100644
--- a/pkgs/tools/filesystems/fatsort/default.nix
+++ b/pkgs/tools/filesystems/fatsort/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.kovirobi ];
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "fatsort";
   };
 }
diff --git a/pkgs/tools/filesystems/file-rename/default.nix b/pkgs/tools/filesystems/file-rename/default.nix
index 133f446f8a98f..8bc7a899cd3ba 100644
--- a/pkgs/tools/filesystems/file-rename/default.nix
+++ b/pkgs/tools/filesystems/file-rename/default.nix
@@ -26,5 +26,6 @@ perlPackages.buildPerlPackage {
     description = "Perl extension for renaming multiple files";
     license = licenses.artistic1;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "rename";
   };
 }
diff --git a/pkgs/tools/filesystems/fuse-7z-ng/default.nix b/pkgs/tools/filesystems/fuse-7z-ng/default.nix
index dad5d2dd9e6c0..86db1f4872a4a 100644
--- a/pkgs/tools/filesystems/fuse-7z-ng/default.nix
+++ b/pkgs/tools/filesystems/fuse-7z-ng/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     '';
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
+    mainProgram = "fuse-7z-ng";
   };
 }
diff --git a/pkgs/tools/filesystems/fuse-archive/default.nix b/pkgs/tools/filesystems/fuse-archive/default.nix
index 031232acbe38d..58f48a2644983 100644
--- a/pkgs/tools/filesystems/fuse-archive/default.nix
+++ b/pkgs/tools/filesystems/fuse-archive/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/google/fuse-archive/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ icyrockcom ];
+    mainProgram = "fuse-archive";
   };
 
   inherit (fuse.meta) platforms;
diff --git a/pkgs/tools/filesystems/fuse-ext2/darwin-no-installer.patch b/pkgs/tools/filesystems/fuse-ext2/darwin-no-installer.patch
new file mode 100644
index 0000000000000..6886bc4fd1727
--- /dev/null
+++ b/pkgs/tools/filesystems/fuse-ext2/darwin-no-installer.patch
@@ -0,0 +1,31 @@
+diff --git a/fuse-ext2/Makefile.am b/fuse-ext2/Makefile.am
+index 9d3a065..c73f337 100644
+--- a/fuse-ext2/Makefile.am
++++ b/fuse-ext2/Makefile.am
+@@ -113,7 +113,7 @@ fuse_ext2_CFLAGS = \
+ 	-DHAVE_CONFIG_H \
+ 	-I/usr/local/include
+ 
+-if DARWIN
++if FALSE
+ bin_PROGRAMS += \
+ 	fuse-ext2.wait \
+ 	fuse-ext2.install \
+@@ -151,9 +151,6 @@ endif
+ if DARWIN
+ install-exec-local:
+ 	$(INSTALL) -d "$(DESTDIR)/$(sbindir)"
+-	$(LN_S) -f "/Library/Filesystems/fuse-ext2.fs/Contents/Resources/mount_fuse-ext2" "$(DESTDIR)/$(sbindir)/mount_fuse-ext2"
+-	$(LN_S) -f "/usr/local/opt/e2fsprogs/sbin/e2label" "$(DESTDIR)/$(sbindir)/e2label"
+-	$(LN_S) -f "/usr/local/opt/e2fsprogs/sbin/mke2fs" "$(DESTDIR)/$(sbindir)/mke2fs"
+ endif
+ if LINUX
+ install-data-hook:
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 52f81e1..78c418f 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -1,2 +1,2 @@
+ 
+-SUBDIRS = macosx
++SUBDIRS =
diff --git a/pkgs/tools/filesystems/fuse-ext2/default.nix b/pkgs/tools/filesystems/fuse-ext2/default.nix
new file mode 100644
index 0000000000000..aaff185a4a1be
--- /dev/null
+++ b/pkgs/tools/filesystems/fuse-ext2/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, e2fsprogs
+, fuse
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fuse-ext2";
+  version = "unstable-2020-07-12";
+
+  src = fetchFromGitHub {
+    owner = "alperakcan";
+    repo = "fuse-ext2";
+    rev = "899f17c982dadcea13aa447c3a83c53b9431435a";
+    sha256 = "AE7Z+HePAy/h2TCNI9tsz6GVLdnE2AIOM3GnQzerKn8=";
+  };
+
+  patches = [
+    # Remove references to paths outside the nix store
+    ./remove-impure-paths.patch
+    # Don't build macOS desktop installer
+    ./darwin-no-installer.patch
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    e2fsprogs
+    fuse
+  ];
+
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=incompatible-function-pointer-types";
+
+  meta = with lib; {
+    description = "FUSE module to mount ext2, ext3 and ext4 with read write support";
+    homepage = "https://github.com/alperakcan/fuse-ext2";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ emilytrau ];
+    platforms = platforms.unix;
+    mainProgram = "fuse-ext2";
+  };
+})
diff --git a/pkgs/tools/filesystems/fuse-ext2/remove-impure-paths.patch b/pkgs/tools/filesystems/fuse-ext2/remove-impure-paths.patch
new file mode 100644
index 0000000000000..02a8b1e5a8269
--- /dev/null
+++ b/pkgs/tools/filesystems/fuse-ext2/remove-impure-paths.patch
@@ -0,0 +1,35 @@
+diff --git a/fuse-ext2/Makefile.am b/fuse-ext2/Makefile.am
+index 9d3a065..0bb4341 100644
+--- a/fuse-ext2/Makefile.am
++++ b/fuse-ext2/Makefile.am
+@@ -17,8 +17,7 @@ fuse_ext2_probe_SOURCES = \
+ 
+ fuse_ext2_probe_CFLAGS = \
+ 	-Wall \
+-	-DHAVE_CONFIG_H \
+-	-I/usr/local/include
++	-DHAVE_CONFIG_H
+ 
+ fuse_ext2_SOURCES =	\
+ 	fuse-ext2.h \
+@@ -98,9 +97,7 @@ umfuseext2_la_CFLAGS = \
+ 	-Wall \
+ 	-DHAVE_CONFIG_H \
+ 	-D_GNU_SOURCE \
+-	$(DEVELFLAGS) \
+-	-I$(includedir)/umview \
+-	-I/usr/local/include
++	$(DEVELFLAGS)
+ 
+ umfuseext2_la_LDFLAGS = \
+ 	-module \
+@@ -110,8 +107,7 @@ umfuseext2_la_LDFLAGS = \
+ 
+ fuse_ext2_CFLAGS = \
+ 	-Wall \
+-	-DHAVE_CONFIG_H \
+-	-I/usr/local/include
++	-DHAVE_CONFIG_H
+ 
+ if DARWIN
+ bin_PROGRAMS += \
diff --git a/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index b417c9654292c..6afbda9f27cde 100644
--- a/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ma9e ] ++ teams.podman.members;
     platforms = platforms.linux;
     inherit (src.meta) homepage;
+    mainProgram = "fuse-overlayfs";
   };
 }
diff --git a/pkgs/tools/filesystems/fuseiso/default.nix b/pkgs/tools/filesystems/fuseiso/default.nix
index 7e44e7c15f9cb..b731e9c7cc962 100644
--- a/pkgs/tools/filesystems/fuseiso/default.nix
+++ b/pkgs/tools/filesystems/fuseiso/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/fuseiso";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "fuseiso";
   };
 }
diff --git a/pkgs/tools/filesystems/fwanalyzer/default.nix b/pkgs/tools/filesystems/fwanalyzer/default.nix
index a0b1d2df14356..26fd45fa90eaa 100644
--- a/pkgs/tools/filesystems/fwanalyzer/default.nix
+++ b/pkgs/tools/filesystems/fwanalyzer/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/cruise-automation/fwanalyzer";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "fwanalyzer";
   };
 }
diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix
index 4accc34b6242d..e34822845b406 100644
--- a/pkgs/tools/filesystems/garage/default.nix
+++ b/pkgs/tools/filesystems/garage/default.nix
@@ -1,5 +1,16 @@
-{ lib, stdenv, rustPlatform, fetchFromGitea, openssl, pkg-config, protobuf
-, cacert, Security, garage, nixosTests }:
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitea
+, fetchpatch
+, openssl
+, pkg-config
+, protobuf
+, cacert
+, Security
+, garage
+, nixosTests
+}:
 let
   generic = { version, sha256, cargoSha256, eol ? false, broken ? false }: rustPlatform.buildRustPackage {
     pname = "garage";
@@ -13,6 +24,12 @@ let
       inherit sha256;
     };
 
+    postPatch = ''
+      # Starting in 0.9.x series, Garage is using mold in local development
+      # and this leaks in this packaging, we remove it to use the default linker.
+      rm .cargo/config.toml || true
+    '';
+
     inherit cargoSha256;
 
     nativeBuildInputs = [ protobuf pkg-config ];
@@ -31,8 +48,6 @@ let
     # on version changes for checking if changes are required here
     buildFeatures = [
       "kubernetes-discovery"
-    ] ++
-    (lib.optionals (lib.versionAtLeast version "0.8") [
       "bundled-libs"
       "sled"
       "metrics"
@@ -41,7 +56,7 @@ let
       "lmdb"
       "sqlite"
       "consul-discovery"
-    ]);
+    ];
 
     # To make integration tests pass, we include the optional k2v feature here,
     # but in buildFeatures only for version 0.8+, where it's enabled by default.
@@ -49,47 +64,47 @@ let
     checkFeatures = [
       "k2v"
       "kubernetes-discovery"
-    ] ++
-    (lib.optionals (lib.versionAtLeast version "0.8") [
       "bundled-libs"
       "sled"
       "lmdb"
       "sqlite"
-    ]);
+    ];
 
     passthru.tests = nixosTests.garage;
 
     meta = {
       description = "S3-compatible object store for small self-hosted geo-distributed deployments";
+      changelog = "https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v${version}";
       homepage = "https://garagehq.deuxfleurs.fr";
       license = lib.licenses.agpl3Only;
       maintainers = with lib.maintainers; [ nickcao _0x4A6F teutat3s raitobezarius ];
       knownVulnerabilities = (lib.optional eol "Garage version ${version} is EOL");
       inherit broken;
+      mainProgram = "garage";
     };
   };
 in
-  rec {
-    # Until Garage hits 1.0, 0.7.3 is equivalent to 7.3.0 for now, therefore
-    # we have to keep all the numbers in the version to handle major/minor/patch level.
-    # for <1.0.
-
-    garage_0_7_3 = generic {
-      version = "0.7.3";
-      sha256 = "sha256-WDhe2L+NalMoIy2rhfmv8KCNDMkcqBC9ezEKKocihJg=";
-      cargoSha256 = "sha256-5m4c8/upBYN8nuysDhGKEnNVJjEGC+yLrraicrAQOfI=";
-      eol = true; # Confirmed with upstream maintainers over Matrix.
-    };
+rec {
+  # Until Garage hits 1.0, 0.7.3 is equivalent to 7.3.0 for now, therefore
+  # we have to keep all the numbers in the version to handle major/minor/patch level.
+  # for <1.0.
 
-    garage_0_7 = garage_0_7_3;
+  garage_0_8_5 = generic {
+    version = "0.8.5";
+    sha256 = "sha256-YRxkjETSmI1dcHP9qTPLcOMqXx9B2uplVR3bBjJWn3I=";
+    cargoSha256 = "sha256-VOcymlvqqQRdT1MFzRcMuD+Xo3fc3XTuRA12tW7ZjdI=";
+    broken = stdenv.isDarwin;
+  };
 
-    garage_0_8_4 = generic {
-      version = "0.8.4";
-      sha256 = "sha256-YgMw41ofM59h7OnHK1H8+Se5mZEdYypPIdkqbyX9qfs=";
-      cargoSha256 = "sha256-dEtksOVqy5wAPoqCuXJj3c4TB6UbR8PTaB70fbL6iR8=";
-    };
+  garage_0_8 = garage_0_8_5;
+
+  garage_0_9_1 = generic {
+    version = "0.9.1";
+    sha256 = "sha256-AXLaifVmZU4j5D/wKn/0TzhjHZBzZW1+tMyhsAo2eBU=";
+    cargoSha256 = "sha256-4/+OsM73TroBB1TGqare2xASO5KhqVyNkkss0Y0JZXg=";
+  };
 
-    garage_0_8 = garage_0_8_4;
+  garage_0_9 = garage_0_9_1;
 
-    garage = garage_0_8;
-  }
+  garage = garage_0_9;
+}
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 0af1a965fc4e6..145fddb9222b5 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gcsfuse";
-  version = "1.1.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    hash = "sha256-fMKFQheFlSwz4ik1tgLheZGkS55LHq3nncOmvgY/TqM=";
+    hash = "sha256-xQWkrFuMvwloDjnIU2T1Fmfpc/2w3ISbyDhFmN/ETFA=";
   };
 
-  vendorHash = "sha256-bgZgYbQN6Dg4uHp29tazJ9un9fR1o9mYp8R8ZHtAs9Q=";
+  vendorHash = "sha256-cIOjgoS3cW6GA697K0Loi76ed64Ev2jZbuOIPNRM1HU=";
 
   subPackages = [ "." "tools/mount_gcsfuse" ];
 
diff --git a/pkgs/tools/filesystems/genext2fs/default.nix b/pkgs/tools/filesystems/genext2fs/default.nix
index ecd77781d39b6..b640c99dc82f0 100644
--- a/pkgs/tools/filesystems/genext2fs/default.nix
+++ b/pkgs/tools/filesystems/genext2fs/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "genext2fs";
   };
 }
diff --git a/pkgs/tools/filesystems/genimage/default.nix b/pkgs/tools/filesystems/genimage/default.nix
index 0961ad904f3ff..34500447b875c 100644
--- a/pkgs/tools/filesystems/genimage/default.nix
+++ b/pkgs/tools/filesystems/genimage/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "genimage";
-  version = "16";
+  version = "17";
 
   src = fetchurl {
     url = "https://public.pengutronix.de/software/genimage/genimage-${version}.tar.xz";
-    sha256 = "sha256-hp+WYtO3eMabHR/nDfZY4cnpCu2iart1P2/lXosMbnM=";
+    sha256 = "sha256-qHVuNWeg1NgsNrCMzB4IglC5AG1WcMaysBQYXm7GBnE=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "genimage";
   };
 }
diff --git a/pkgs/tools/filesystems/genromfs/default.nix b/pkgs/tools/filesystems/genromfs/default.nix
index 3427ce54a1721..6c40c4ad94cd6 100644
--- a/pkgs/tools/filesystems/genromfs/default.nix
+++ b/pkgs/tools/filesystems/genromfs/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
+    mainProgram = "genromfs";
   };
 }
diff --git a/pkgs/tools/filesystems/gitfs/default.nix b/pkgs/tools/filesystems/gitfs/default.nix
index f49f555983f30..c5e388fc5ffbc 100644
--- a/pkgs/tools/filesystems/gitfs/default.nix
+++ b/pkgs/tools/filesystems/gitfs/default.nix
@@ -39,5 +39,6 @@ python3Packages.buildPythonApplication rec {
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.robbinch ];
+    mainProgram = "gitfs";
   };
 }
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 431be3b79d77b..f7e830f3211d3 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -55,13 +55,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "glusterfs";
-  version = "11.0";
+  version = "11.1";
 
   src = fetchFromGitHub {
     owner = "gluster";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-K2w8YqpoLzkzUuoOuI7itfC81sJPUf6elOL8LCrxKAI=";
+    sha256 = "sha256-ZClMfozeFO3266fkuCSV04QwpZaYa8B0uq2lTPEN2rQ=";
   };
   inherit buildInputs propagatedBuildInputs;
 
diff --git a/pkgs/tools/filesystems/go-mtpfs/default.nix b/pkgs/tools/filesystems/go-mtpfs/default.nix
index f82e5b7c362a7..f3ed4fb6ab98a 100644
--- a/pkgs/tools/filesystems/go-mtpfs/default.nix
+++ b/pkgs/tools/filesystems/go-mtpfs/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
     broken = stdenv.isDarwin;
+    mainProgram = "go-mtpfs";
   };
 }
diff --git a/pkgs/tools/filesystems/goofys/default.nix b/pkgs/tools/filesystems/goofys/default.nix
index 0c250eaeb4f42..1865b6f57644e 100644
--- a/pkgs/tools/filesystems/goofys/default.nix
+++ b/pkgs/tools/filesystems/goofys/default.nix
@@ -27,10 +27,11 @@ buildGoModule {
 
   meta = {
     homepage = "https://github.com/kahing/goofys";
-    description = "A high-performance, POSIX-ish Amazon S3 file system written in Go.";
+    description = "A high-performance, POSIX-ish Amazon S3 file system written in Go";
     license = [ lib.licenses.mit ];
     maintainers = [ lib.maintainers.adisbladis ];
     broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
+    mainProgram = "goofys";
   };
 
 }
diff --git a/pkgs/tools/filesystems/gpart/default.nix b/pkgs/tools/filesystems/gpart/default.nix
index eafbe066ac94e..a8466d3462e8f 100644
--- a/pkgs/tools/filesystems/gpart/default.nix
+++ b/pkgs/tools/filesystems/gpart/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "gpart";
   };
 }
diff --git a/pkgs/tools/filesystems/grive2/default.nix b/pkgs/tools/filesystems/grive2/default.nix
index d5a19f42f3f03..41afc98e7f94e 100644
--- a/pkgs/tools/filesystems/grive2/default.nix
+++ b/pkgs/tools/filesystems/grive2/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/vitalif/grive2";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "grive";
   };
 }
diff --git a/pkgs/tools/filesystems/httm/default.nix b/pkgs/tools/filesystems/httm/default.nix
index 31ea85532462d..3a36af72462e7 100644
--- a/pkgs/tools/filesystems/httm/default.nix
+++ b/pkgs/tools/filesystems/httm/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/kimono-koans/httm/releases/tag/${version}";
     license = licenses.mpl20;
     maintainers = with maintainers; [ wyndon ];
+    mainProgram = "httm";
   };
 }
diff --git a/pkgs/tools/filesystems/httpdirfs/default.nix b/pkgs/tools/filesystems/httpdirfs/default.nix
index e027d5dd8df52..6163e1a0158ab 100644
--- a/pkgs/tools/filesystems/httpdirfs/default.nix
+++ b/pkgs/tools/filesystems/httpdirfs/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sbruder schnusch ];
     platforms = platforms.unix;
+    mainProgram = "httpdirfs";
   };
 }
diff --git a/pkgs/tools/filesystems/idsk/default.nix b/pkgs/tools/filesystems/idsk/default.nix
deleted file mode 100644
index 5e78a1266873d..0000000000000
--- a/pkgs/tools/filesystems/idsk/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
-
-stdenv.mkDerivation rec {
-
-  pname = "idsk";
-  version = "0.20";
-
-  src = fetchFromGitHub {
-    repo = "idsk";
-    owner = "cpcsdk";
-    rev = "v${version}";
-    sha256 = "05zbdkb9s6sfkni6k927795w2fqdhnf3i7kgl27715sdmmdab05d";
-  };
-
-  nativeBuildInputs = [ cmake ];
-
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [
-    # Needed with GCC 12 but breaks on darwin (with clang)
-    "-std=c++14"
-  ]);
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp iDSK $out/bin
-  '';
-
-  meta = with lib; {
-    description = "Manipulating CPC dsk images and files";
-    homepage = "https://github.com/cpcsdk/idsk" ;
-    license = licenses.mit;
-    maintainers = [ ];
-    mainProgram = "iDSK";
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/tools/filesystems/ifuse/default.nix b/pkgs/tools/filesystems/ifuse/default.nix
index 010aeaefabf3b..8f2e1f2a6ffb0 100644
--- a/pkgs/tools/filesystems/ifuse/default.nix
+++ b/pkgs/tools/filesystems/ifuse/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "ifuse";
   };
 }
diff --git a/pkgs/tools/filesystems/ioztat/default.nix b/pkgs/tools/filesystems/ioztat/default.nix
index b28f0a36661be..b5f949ad4f2c7 100644
--- a/pkgs/tools/filesystems/ioztat/default.nix
+++ b/pkgs/tools/filesystems/ioztat/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = with platforms; linux ++ freebsd;
     maintainers = with maintainers; [ numinit ];
+    mainProgram = "ioztat";
   };
 }
diff --git a/pkgs/tools/filesystems/jefferson/default.nix b/pkgs/tools/filesystems/jefferson/default.nix
index 762541f8d27a6..948de453ec187 100644
--- a/pkgs/tools/filesystems/jefferson/default.nix
+++ b/pkgs/tools/filesystems/jefferson/default.nix
@@ -37,5 +37,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/onekey-sec/jefferson";
     license = licenses.mit;
     maintainers = with maintainers; [ tnias vlaci ];
+    mainProgram = "jefferson";
   };
 }
diff --git a/pkgs/tools/filesystems/jmtpfs/default.nix b/pkgs/tools/filesystems/jmtpfs/default.nix
index 2754d223a6baa..6c5dd3d30c705 100644
--- a/pkgs/tools/filesystems/jmtpfs/default.nix
+++ b/pkgs/tools/filesystems/jmtpfs/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.coconnor ];
+    mainProgram = "jmtpfs";
   };
 }
diff --git a/pkgs/tools/filesystems/juicefs/default.nix b/pkgs/tools/filesystems/juicefs/default.nix
index 5df6986380b78..00f45c332cbe1 100644
--- a/pkgs/tools/filesystems/juicefs/default.nix
+++ b/pkgs/tools/filesystems/juicefs/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "juicefs";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "juicedata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UtERYOjAKOTK+A1qPdD1PajOkf/t5vqWRBvEuxkZmdg=";
+    sha256 = "sha256-dMzBgwd5tVxE6OFHf6QTZfoqgL/t2pX+OgI6Pki6PG8=";
   };
 
-  vendorHash = "sha256-BpqxCCuWyUgzPyh7sq3/HyQ29qm/PWD7mQFh1nkkAkA=";
+  vendorHash = "sha256-orq03bwN1cbwHoZFXz92tcA2F0oivGR/C5EJDAPA+pk=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/tools/filesystems/kdiskmark/default.nix b/pkgs/tools/filesystems/kdiskmark/default.nix
index 6712b96f7fdd0..200705098409b 100644
--- a/pkgs/tools/filesystems/kdiskmark/default.nix
+++ b/pkgs/tools/filesystems/kdiskmark/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.symphorien ];
     license = licenses.gpl3Only;
     platforms = platforms.linux;
+    mainProgram = "kdiskmark";
   };
 }
 
diff --git a/pkgs/tools/filesystems/kio-fuse/default.nix b/pkgs/tools/filesystems/kio-fuse/default.nix
index a68165956eb31..3d5e7f509bc41 100644
--- a/pkgs/tools/filesystems/kio-fuse/default.nix
+++ b/pkgs/tools/filesystems/kio-fuse/default.nix
@@ -9,11 +9,11 @@
 
 mkDerivation rec {
   pname = "kio-fuse";
-  version = "5.0.1";
+  version = "5.1.0";
 
   src = fetchgit {
     url = "https://invent.kde.org/system/kio-fuse.git";
-    sha256 = "sha256-LSFbFCaEPkQTk1Rg9xpueBOQpkbr/tgYxLD31F6i/qE=";
+    sha256 = "sha256-xVeDNkSeHCk86L07lPVokSgHNkye2tnLoCkdw4g2Jv0=";
     rev = "v${version}";
   };
 
diff --git a/pkgs/tools/filesystems/littlefs-fuse/default.nix b/pkgs/tools/filesystems/littlefs-fuse/default.nix
deleted file mode 100644
index 637e24483d8ec..0000000000000
--- a/pkgs/tools/filesystems/littlefs-fuse/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fuse }:
-
-stdenv.mkDerivation rec {
-  pname = "littlefs-fuse";
-  version = "2.7.2";
-  src = fetchFromGitHub {
-    owner = "littlefs-project";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-ybaZbAomrIaEdYfQtbZirkozRarEUxjsf6hgTMu5uIY=";
-  };
-  buildInputs = [ fuse ];
-  installPhase = ''
-    runHook preInstall
-    install -D lfs $out/bin/${pname}
-    ln -s $out/bin/${pname} $out/bin/mount.littlefs
-    ln -s $out/bin $out/sbin
-    runHook postInstall
-  '';
-  meta = src.meta // {
-    description = "A FUSE wrapper that puts the littlefs in user-space";
-    license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ ehmry ];
-    inherit (fuse.meta) platforms;
-  };
-}
diff --git a/pkgs/tools/filesystems/mergerfs/default.nix b/pkgs/tools/filesystems/mergerfs/default.nix
index e2e6e28e3b621..edc5708a6119b 100644
--- a/pkgs/tools/filesystems/mergerfs/default.nix
+++ b/pkgs/tools/filesystems/mergerfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mergerfs";
-  version = "2.37.1";
+  version = "2.39.0";
 
   src = fetchFromGitHub {
     owner = "trapexit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4WowGrmFDDpmZlAVH73oiKBdgQeqEkbwZCaDSd1rAEc=";
+    sha256 = "sha256-48ArTS1Gd1z7WUX1RjiHMuyp3K3p9FJPU2XO4bj292I=";
   };
 
   nativeBuildInputs = [
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/trapexit/mergerfs";
     license = lib.licenses.isc;
     platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ jfrankenau makefu ];
+    maintainers = with lib.maintainers; [ makefu ];
   };
 }
diff --git a/pkgs/tools/filesystems/mergerfs/tools.nix b/pkgs/tools/filesystems/mergerfs/tools.nix
index 6e11c6513dad1..f5235239103d2 100644
--- a/pkgs/tools/filesystems/mergerfs/tools.nix
+++ b/pkgs/tools/filesystems/mergerfs/tools.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mergerfs-tools";
-  version = "20190411";
+  version = "20230912";
 
   src = fetchFromGitHub {
     owner = "trapexit";
     repo = pname;
-    rev = "6e41fc5848c7cc4408caea86f3991c8cc2ac85a1";
-    sha256 = "0izswg6bya13scvb37l3gkl7mvi8q7l11p4hp4phdlcwh9jvdzcj";
+    rev = "80d6c9511da554009415d67e7c0ead1256c1fc41";
+    hash = "sha256-9sn2ziIjes2squSGbjjXVch2zDFjQruWB4282p4jWcY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/trapexit/mergerfs-tools";
     license = licenses.isc;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ jfrankenau ];
+    maintainers = with maintainers; [ makefu ];
   };
 }
diff --git a/pkgs/tools/filesystems/mhddfs/default.nix b/pkgs/tools/filesystems/mhddfs/default.nix
index 2cc6f69bb0bab..58986c25dbf27 100644
--- a/pkgs/tools/filesystems/mhddfs/default.nix
+++ b/pkgs/tools/filesystems/mhddfs/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     description = "Combines a several mount points into the single one";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.makefu ];
+    mainProgram = "mhddfs";
   };
 }
diff --git a/pkgs/tools/filesystems/mkspiffs/default.nix b/pkgs/tools/filesystems/mkspiffs/default.nix
index 30312ec7dc7bf..c2712376da6bb 100644
--- a/pkgs/tools/filesystems/mkspiffs/default.nix
+++ b/pkgs/tools/filesystems/mkspiffs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, git }:
+{ lib, stdenv, fetchFromGitHub }:
 
 # Changing the variables CPPFLAGS and BUILD_CONFIG_NAME can be done by
 # overriding the same-named attributes. See ./presets.nix for examples.
@@ -12,11 +12,16 @@ stdenv.mkDerivation rec {
     repo = "mkspiffs";
     rev = version;
     fetchSubmodules = true;
-    sha256 = "1fgw1jqdlp83gv56mgnxpakky0q6i6f922niis4awvxjind8pbm1";
+    hash = "sha256-oa6Lmo2yb66IjtEKkZyJBgM/p7rdvmrKfgNd2rAM/Lk=";
   };
 
-  nativeBuildInputs = [ git ];
   buildFlags = [ "dist" ];
+
+  makeFlags = [
+    "VERSION=${version}"
+    "SPIFFS_VERSION=unknown"
+  ];
+
   installPhase = ''
     mkdir -p $out/bin
     cp mkspiffs $out/bin
@@ -28,5 +33,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/igrr/mkspiffs";
     maintainers = with maintainers; [ haslersn ];
     platforms = platforms.linux;
+    mainProgram = "mkspiffs";
   };
 }
diff --git a/pkgs/tools/filesystems/mount-zip/default.nix b/pkgs/tools/filesystems/mount-zip/default.nix
index d0f57894e012b..bda3381080511 100644
--- a/pkgs/tools/filesystems/mount-zip/default.nix
+++ b/pkgs/tools/filesystems/mount-zip/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mount-zip";
-  version = "1.0.10";
+  version = "1.0.12";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mount-zip";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-hXvA/dqRn5zKVAJ+JjUfIEKsqIhEOTzPEzvJI3cP4NY=";
+    hash = "sha256-bsuGEgCrU7Gxd9oAiI39AYT9aiXufrI9CniTCfa6LCY=";
   };
 
   nativeBuildInputs = [ boost gcc icu pandoc pkg-config ];
@@ -28,5 +28,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3;
     maintainers = with maintainers; [ arti5an ];
     platforms = platforms.linux;
+    mainProgram = "mount-zip";
   };
 })
diff --git a/pkgs/tools/filesystems/mp3fs/default.nix b/pkgs/tools/filesystems/mp3fs/default.nix
index 6f872500e6b13..0412a99beee0e 100644
--- a/pkgs/tools/filesystems/mp3fs/default.nix
+++ b/pkgs/tools/filesystems/mp3fs/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ Luflosi ];
+    mainProgram = "mp3fs";
   };
 }
diff --git a/pkgs/tools/filesystems/mtdutils/default.nix b/pkgs/tools/filesystems/mtdutils/default.nix
index f6a1e0a5c56c7..0ca64234e5f01 100644
--- a/pkgs/tools/filesystems/mtdutils/default.nix
+++ b/pkgs/tools/filesystems/mtdutils/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "mtd-utils";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchgit {
     url = "git://git.infradead.org/mtd-utils.git";
     rev = "v${version}";
-    sha256 = "sha256-Ph9Xjb2Nyo7l3T1pDgW2gnSJxn0pOC6uvCGUfCh0MXU=";
+    sha256 = "sha256-NMYzUPt/91lv8f7E1ytX91SqwbBEOtHjCL54EcumcZA=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ] ++ lib.optional doCheck cmocka;
@@ -20,6 +20,10 @@ stdenv.mkDerivation rec {
     (enableFeature doCheck "tests")
   ];
 
+  makeFlags = [
+    "AR:=$(AR)"
+  ];
+
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/filesystems/mtpfs/default.nix b/pkgs/tools/filesystems/mtpfs/default.nix
index 0a6623bfdc4af..d84f9cc9b9b13 100644
--- a/pkgs/tools/filesystems/mtpfs/default.nix
+++ b/pkgs/tools/filesystems/mtpfs/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.qknight ];
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/mtpfs.x86_64-darwin
+    mainProgram = "mtpfs";
   };
 }
diff --git a/pkgs/tools/filesystems/netatalk/default.nix b/pkgs/tools/filesystems/netatalk/default.nix
index d4ef2154d81d4..950d10640bf0f 100644
--- a/pkgs/tools/filesystems/netatalk/default.nix
+++ b/pkgs/tools/filesystems/netatalk/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "netatalk";
-  version = "3.1.15";
+  version = "3.1.18";
 
   src = fetchurl {
     url = "mirror://sourceforge/netatalk/netatalk/netatalk-${finalAttrs.version}.tar.bz2";
-    hash = "sha256-2NSlzA/Yaw2Q4BfWTB9GI+jNv72lcPxCOt4RUak9GfU=";
+    hash = "sha256-htIJ3Hd2pLoXhFFk0uN2pGnO43aiexiuMYmOP0ukFlU=";
   };
 
   patches = [
diff --git a/pkgs/tools/filesystems/rdfind/default.nix b/pkgs/tools/filesystems/rdfind/default.nix
index c363ee5613745..0e7c8fd42d63d 100644
--- a/pkgs/tools/filesystems/rdfind/default.nix
+++ b/pkgs/tools/filesystems/rdfind/default.nix
@@ -1,22 +1,14 @@
-{ lib, stdenv, fetchpatch, fetchurl, nettle }:
+{ lib, stdenv, fetchurl, nettle }:
 
 stdenv.mkDerivation rec {
   pname = "rdfind";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "https://rdfind.pauldreik.se/${pname}-${version}.tar.gz";
-    sha256 = "103hfqzgr6izmj57fcy4jsa2nmb1ax43q4b5ij92pcgpaq9fsl21";
+    sha256 = "sha256-ekBujvGIalhpZVYEYY3Zj2cvEsamvkkm0FO+ZQcPMnk=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "include-limits.patch";
-      url = "https://github.com/pauldreik/rdfind/commit/61877de88d782b63b17458a61fcc078391499b29.patch";
-      sha256 = "0igzm4833cn905pj84lgr88nd5gx35dnjl8kl8vrwk7bpyii6a8l";
-    })
-  ];
-
   buildInputs = [ nettle ];
 
   meta = with lib; {
@@ -25,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.wmertens ];
     platforms = platforms.all;
+    mainProgram = "rdfind";
   };
 }
diff --git a/pkgs/tools/filesystems/rmfuse/default.nix b/pkgs/tools/filesystems/rmfuse/default.nix
index ace05d0616652..04a4d62738788 100644
--- a/pkgs/tools/filesystems/rmfuse/default.nix
+++ b/pkgs/tools/filesystems/rmfuse/default.nix
@@ -7,7 +7,7 @@ python3.pkgs.buildPythonApplication rec {
   pname = "rmfuse";
   version = "unstable-2021-06-06";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rschroll";
@@ -16,13 +16,15 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-W3kS6Kkmp8iWMOYFL7r1GyjSQvFotBXQCuTMK0vyHQ8=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'bidict = "^' 'bidict = ">='
-  '';
-
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "bidict"
+    "rmrl"
+    "xdg"
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -44,6 +46,7 @@ python3.pkgs.buildPythonApplication rec {
       in the reMarkable Cloud using the same tools you use on your local
       system.
     '';
-    maintainers = with lib.maintainers; [ adisbladis ];
+    maintainers = with lib.maintainers; [ ];
+    mainProgram = "rmfuse";
   };
 }
diff --git a/pkgs/tools/filesystems/rmount/default.nix b/pkgs/tools/filesystems/rmount/default.nix
index 1d8ced17aae05..ec4bb13927122 100644
--- a/pkgs/tools/filesystems/rmount/default.nix
+++ b/pkgs/tools/filesystems/rmount/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.luis ];
     platforms = platforms.linux;
+    mainProgram = "rmount";
   };
 }
diff --git a/pkgs/tools/filesystems/rnm/default.nix b/pkgs/tools/filesystems/rnm/default.nix
index 69ba0270ecc0c..479feabb8ebc5 100644
--- a/pkgs/tools/filesystems/rnm/default.nix
+++ b/pkgs/tools/filesystems/rnm/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/neurobin/rnm/blob/${version}/ChangeLog";
     platforms = lib.platforms.all;
     license = licenses.gpl3Only;
+    mainProgram = "rnm";
   };
 }
diff --git a/pkgs/tools/filesystems/romdirfs/default.nix b/pkgs/tools/filesystems/romdirfs/default.nix
index 0304508d41ebc..cc711e57cdb69 100644
--- a/pkgs/tools/filesystems/romdirfs/default.nix
+++ b/pkgs/tools/filesystems/romdirfs/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
+    mainProgram = "romdirfs";
   };
 }
diff --git a/pkgs/tools/filesystems/s3backer/default.nix b/pkgs/tools/filesystems/s3backer/default.nix
index bfe9f22747568..3585408a2f7d0 100644
--- a/pkgs/tools/filesystems/s3backer/default.nix
+++ b/pkgs/tools/filesystems/s3backer/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     description = "FUSE-based single file backing store via Amazon S3";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "s3backer";
   };
 }
diff --git a/pkgs/tools/filesystems/sandboxfs/default.nix b/pkgs/tools/filesystems/sandboxfs/default.nix
index bafa39272727a..76eb667bceaa0 100644
--- a/pkgs/tools/filesystems/sandboxfs/default.nix
+++ b/pkgs/tools/filesystems/sandboxfs/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bazelbuild/sandboxfs";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ jeremyschlatter ];
+    mainProgram = "sandboxfs";
   };
 }
diff --git a/pkgs/tools/filesystems/sasquatch/default.nix b/pkgs/tools/filesystems/sasquatch/default.nix
index 258814b8905b4..f8d66683fccbf 100644
--- a/pkgs/tools/filesystems/sasquatch/default.nix
+++ b/pkgs/tools/filesystems/sasquatch/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.pamplemousse ];
     platforms = platforms.linux;
+    mainProgram = "sasquatch";
   };
 }
diff --git a/pkgs/tools/filesystems/sdat2img/default.nix b/pkgs/tools/filesystems/sdat2img/default.nix
index 4176eabad4014..93493356eb512 100644
--- a/pkgs/tools/filesystems/sdat2img/default.nix
+++ b/pkgs/tools/filesystems/sdat2img/default.nix
@@ -22,5 +22,6 @@ python3Packages.buildPythonApplication {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.xaverdh ];
     platforms = lib.platforms.unix;
+    mainProgram = "sdat2img";
   };
 }
diff --git a/pkgs/tools/filesystems/securefs/default.nix b/pkgs/tools/filesystems/securefs/default.nix
index 791c01d8eed81..fe148e955cb2a 100644
--- a/pkgs/tools/filesystems/securefs/default.nix
+++ b/pkgs/tools/filesystems/securefs/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     '';
     license = with licenses; [ bsd2 mit ];
     platforms = platforms.unix;
+    mainProgram = "securefs";
   };
 }
diff --git a/pkgs/tools/filesystems/sftpman/default.nix b/pkgs/tools/filesystems/sftpman/default.nix
index 267b2b649c302..579c03992ddef 100644
--- a/pkgs/tools/filesystems/sftpman/default.nix
+++ b/pkgs/tools/filesystems/sftpman/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ contrun ];
+    mainProgram = "sftpman";
   };
 }
diff --git a/pkgs/tools/filesystems/simple-mtpfs/default.nix b/pkgs/tools/filesystems/simple-mtpfs/default.nix
index 3cb2aa97007b9..994b785c444e4 100644
--- a/pkgs/tools/filesystems/simple-mtpfs/default.nix
+++ b/pkgs/tools/filesystems/simple-mtpfs/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ laalsaas ];
+    mainProgram = "simple-mtpfs";
   };
 }
diff --git a/pkgs/tools/filesystems/smbnetfs/default.nix b/pkgs/tools/filesystems/smbnetfs/default.nix
index a1831d44ada4c..120b30cbb1d1d 100644
--- a/pkgs/tools/filesystems/smbnetfs/default.nix
+++ b/pkgs/tools/filesystems/smbnetfs/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     downloadPage = "https://sourceforge.net/projects/smbnetfs/files/smbnetfs";
     homepage = "https://sourceforge.net/projects/smbnetfs/";
+    mainProgram = "smbnetfs";
   };
 }
diff --git a/pkgs/tools/filesystems/snapraid/default.nix b/pkgs/tools/filesystems/snapraid/default.nix
index 9ce1461ffaeed..89be607027f21 100644
--- a/pkgs/tools/filesystems/snapraid/default.nix
+++ b/pkgs/tools/filesystems/snapraid/default.nix
@@ -2,18 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "snapraid";
-  version = "12.2";
+  version = "12.3";
 
   src = fetchFromGitHub {
     owner = "amadvance";
     repo = "snapraid";
     rev = "v${version}";
-    sha256 = "sha256-3wy442tv3m1CSOAj1cngTWRiqX934c/7V2YL6j30+3U=";
+    sha256 = "sha256-pkLooA3JZV/rPlE5+JeJN1QW2xAdNu7c/iFFtT4M4vc=";
   };
 
   VERSION = version;
 
-  doCheck = true;
+  doCheck = !(stdenv.isDarwin && stdenv.isx86_64);
 
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ ];
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.makefu ];
     platforms = lib.platforms.unix;
+    mainProgram = "snapraid";
   };
 }
diff --git a/pkgs/tools/filesystems/squashfuse/default.nix b/pkgs/tools/filesystems/squashfuse/default.nix
index 7f08c9f716254..c1c374ac0340f 100644
--- a/pkgs/tools/filesystems/squashfuse/default.nix
+++ b/pkgs/tools/filesystems/squashfuse/default.nix
@@ -4,13 +4,13 @@
 stdenv.mkDerivation rec {
 
   pname = "squashfuse";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "vasi";
     repo = pname;
     rev = version;
-    sha256 = "sha256-gK1k1Ooue3HLtBmPFMZdW4h2Ee1Uy4T26EOBeQICQpM=";
+    sha256 = "sha256-nCdAO5WPYt/aHdNnfkIJqz0T59COgsSGeXho4bFZVTY=";
   };
 
   nativeBuildInputs = [ autoreconfHook libtool pkg-config ];
diff --git a/pkgs/tools/filesystems/ssdfs-utils/default.nix b/pkgs/tools/filesystems/ssdfs-utils/default.nix
index 467e24724ff1f..7fd837ddbe77b 100644
--- a/pkgs/tools/filesystems/ssdfs-utils/default.nix
+++ b/pkgs/tools/filesystems/ssdfs-utils/default.nix
@@ -12,13 +12,13 @@ stdenv.mkDerivation {
   # as ssdfs-utils, not ssdfs-tools.
   pname = "ssdfs-utils";
   # The version is taken from `configure.ac`, there are no tags.
-  version = "4.27";
+  version = "4.37";
 
   src = fetchFromGitHub {
     owner = "dubeyko";
     repo = "ssdfs-tools";
-    rev = "9b647d73b34dc2e18ed04bfcf5e260ffb8242dd5";
-    hash = "sha256-7I7h6Szb/oXtkypd7Nk4AFrTEsn9Y/1/u+IaL63zRVI=";
+    rev = "f83f70409c5e4fa81e9a67f8ed7f824368aba063";
+    hash = "sha256-OuGQ876HRjjSyxMbd/l8yySxmEjW1Yo1PTyO9zEt8+Q=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/filesystems/stratis-cli/default.nix b/pkgs/tools/filesystems/stratis-cli/default.nix
index 79447e64a759b..4c27b888bbaab 100644
--- a/pkgs/tools/filesystems/stratis-cli/default.nix
+++ b/pkgs/tools/filesystems/stratis-cli/default.nix
@@ -6,24 +6,28 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "stratis-cli";
-  version = "3.5.3";
-  format = "pyproject";
+  version = "3.6.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "stratis-storage";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-YoPi2AtP6qZPMrlxbDAD0sDEKrSBHLLRcHbNLxlXXCk=";
+    hash = "sha256-mLmjMofdr0U+Bfnkde7lJqPXkd1ICPYdlcsOm2nOcQA=";
   };
 
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3Packages; [
-    psutil
-    python-dateutil
-    wcwidth
-    justbytes
     dbus-client-gen
     dbus-python-client-gen
+    justbytes
     packaging
+    psutil
+    python-dateutil
+    wcwidth
   ];
 
   nativeCheckInputs = with python3Packages; [
@@ -44,5 +48,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://stratis-storage.github.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
+    mainProgram = "stratis";
   };
 }
diff --git a/pkgs/tools/filesystems/stratisd/Cargo.lock b/pkgs/tools/filesystems/stratisd/Cargo.lock
index 97a211387195b..ddca983aa1cb4 100644
--- a/pkgs/tools/filesystems/stratisd/Cargo.lock
+++ b/pkgs/tools/filesystems/stratisd/Cargo.lock
@@ -3,21 +3,6 @@
 version = 3
 
 [[package]]
-name = "addr2line"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
 name = "aho-corasick"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -92,9 +77,9 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.12"
+version = "2.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
+checksum = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151"
 dependencies = [
  "anstyle",
  "bstr",
@@ -113,9 +98,9 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
 
 [[package]]
 name = "async-trait"
-version = "0.1.72"
+version = "0.1.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09"
+checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -129,27 +114,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
-name = "backtrace"
-version = "0.3.68"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
 name = "bindgen"
-version = "0.63.0"
+version = "0.68.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -160,7 +130,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 1.0.109",
+ "syn 2.0.29",
 ]
 
 [[package]]
@@ -186,9 +156,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
 
 [[package]]
 name = "block-buffer"
@@ -201,11 +171,12 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.6.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
+checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5"
 dependencies = [
  "memchr",
+ "once_cell",
  "regex-automata",
  "serde",
 ]
@@ -274,21 +245,22 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.3.19"
+version = "4.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+checksum = "2686c4115cb0810d9a984776e197823d08ec94f176549a89a9efded477c456dc"
 dependencies = [
  "clap_builder",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.3.19"
+version = "4.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+checksum = "2e53afce1efce6ed1f633cf0e57612fe51db54a1ee4fd8f8503d078fe02d69ae"
 dependencies = [
  "anstream",
  "anstyle",
+ "bitflags 1.3.2",
  "clap_lex",
  "strsim",
 ]
@@ -313,9 +285,9 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c"
 dependencies = [
  "libc",
 ]
@@ -373,11 +345,11 @@ dependencies = [
 
 [[package]]
 name = "devicemapper"
-version = "0.33.5"
+version = "0.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75a9fd602a98d192f7662a1f4c4cf6920a1b454c3a9e724f6490cf8e30910114"
+checksum = "9ff98688149bf6128f259f0009f98eb8ad82584aa0aae143081fdfde513d3d13"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "devicemapper-sys",
  "env_logger",
  "lazy_static",
@@ -391,12 +363,11 @@ dependencies = [
 
 [[package]]
 name = "devicemapper-sys"
-version = "0.1.5"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0b0f9d16560f830ae6e90b769017333c4561d2c84f39e7aa7d935d2e7bcbc4c"
+checksum = "734fba4d2e6b551396439ea7dd4f56980b11bb096bbf505d4a259943b228367b"
 dependencies = [
  "bindgen",
- "nix 0.26.2",
 ]
 
 [[package]]
@@ -423,9 +394,9 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
 
 [[package]]
 name = "env_logger"
@@ -442,17 +413,6 @@ dependencies = [
 
 [[package]]
 name = "errno"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "errno"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
@@ -474,9 +434,12 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
 
 [[package]]
 name = "float-cmp"
@@ -604,12 +567,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "gimli"
-version = "0.27.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
-
-[[package]]
 name = "glob"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -617,6 +574,15 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
@@ -651,6 +617,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
 name = "iocuddle"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -658,11 +644,12 @@ checksum = "d8972d5be69940353d5347a1344cb375d9b457d6809b428b05bb1ca2fb9ce007"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.3.2",
+ "io-lifetimes",
  "rustix",
  "windows-sys",
 ]
@@ -678,18 +665,18 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
 
 [[package]]
 name = "js-sys"
@@ -714,9 +701,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libblkid-rs"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de9a402d7e440c9f84431b566cbc523140e9354610a4dca35aa7b927400cb040"
+checksum = "0b43fd7c0de11a5209aff91fb625c118fc15173ae3dd0ac11e8f61a1b4d1a863"
 dependencies = [
  "either",
  "libblkid-rs-sys",
@@ -726,9 +713,9 @@ dependencies = [
 
 [[package]]
 name = "libblkid-rs-sys"
-version = "0.1.5"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52ee2322d6a28f5672b3d8640fb672c9dbe89e6f1135eb0721eb6ba4e7315ac3"
+checksum = "163068067b2faf263fb2fc3daff137b45608ee185044ca849dc41438aa38e23a"
 dependencies = [
  "bindgen",
  "cc",
@@ -736,21 +723,22 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.149"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
 
 [[package]]
 name = "libcryptsetup-rs"
-version = "0.8.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54de25d80cf59c099a01fc9939251bbf8021c131adf97beb7d57c094b16ed474"
+checksum = "73d2aa26d63e5289d6fac1e7e0be2e248ded9b5dfb3e2c345820d060c537d4b6"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "either",
  "lazy_static",
  "libc",
  "libcryptsetup-rs-sys",
+ "log",
  "pkg-config",
  "semver",
  "serde_json",
@@ -759,9 +747,9 @@ dependencies = [
 
 [[package]]
 name = "libcryptsetup-rs-sys"
-version = "0.2.4"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7c355c283a470a1a09924182b3606999786979697753df3c2206948dcd8f4eb"
+checksum = "20fc299fd05078d353a895d940fc463d1008d94258fc8096c095467549324707"
 dependencies = [
  "bindgen",
  "cc",
@@ -827,9 +815,9 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.3"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "log"
@@ -838,12 +826,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
 
 [[package]]
-name = "loopdev"
-version = "0.4.0"
-source = "git+https://github.com/mulkieran/loopdev?branch=bump-bindgen-reduce-version#f780d0e873960e0eeb997e2bda106d1e30c3afd0"
+name = "loopdev-3"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "378e7ca4e85e592564e6a96c362303972b5c7860367014383aadc10a8704fc38"
 dependencies = [
  "bindgen",
- "errno 0.2.8",
+ "errno",
  "libc",
 ]
 
@@ -863,19 +852,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "minimal-lexical"
-version = "0.2.1"
+name = "memoffset"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
 
 [[package]]
-name = "miniz_oxide"
-version = "0.7.1"
+name = "minimal-lexical"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-dependencies = [
- "adler",
-]
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "mio"
@@ -910,12 +899,24 @@ dependencies = [
  "bitflags 1.3.2",
  "cfg-if 1.0.0",
  "libc",
- "memoffset",
+ "memoffset 0.7.1",
  "pin-utils",
  "static_assertions",
 ]
 
 [[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.4.0",
+ "cfg-if 1.0.0",
+ "libc",
+ "memoffset 0.9.0",
+]
+
+[[package]]
 name = "nom"
 version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -933,9 +934,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
 dependencies = [
  "autocfg",
  "libm",
@@ -943,24 +944,15 @@ dependencies = [
 
 [[package]]
 name = "num_cpus"
-version = "1.16.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.2.6",
  "libc",
 ]
 
 [[package]]
-name = "object"
-version = "0.31.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
-dependencies = [
- "memchr",
-]
-
-[[package]]
 name = "once_cell"
 version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -974,9 +966,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.10"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
 
 [[package]]
 name = "pin-utils"
@@ -1029,9 +1021,9 @@ dependencies = [
 
 [[package]]
 name = "pretty-hex"
-version = "0.3.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
+checksum = "bbc83ee4a840062f368f9096d80077a9841ec117e17e7f700df81958f1451254"
 
 [[package]]
 name = "proc-macro2"
@@ -1070,9 +1062,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.32"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
 dependencies = [
  "proc-macro2",
 ]
@@ -1127,26 +1119,20 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.1"
+version = "1.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata",
- "regex-syntax 0.7.4",
+ "regex-syntax 0.7.2",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.3.3"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax 0.7.4",
-]
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
 
 [[package]]
 name = "regex-syntax"
@@ -1156,34 +1142,15 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
 
 [[package]]
 name = "retry"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac95c60a949a63fd2822f4964939662d8f2c16c4fa0624fd954bc6e703b9a3f6"
-dependencies = [
- "rand",
-]
-
-[[package]]
-name = "rpassword"
-version = "5.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
 name = "rustc-hash"
@@ -1193,12 +1160,13 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.38.4"
+version = "0.37.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5"
+checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035"
 dependencies = [
- "bitflags 2.3.3",
- "errno 0.3.1",
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
  "libc",
  "linux-raw-sys",
  "windows-sys",
@@ -1218,21 +1186,24 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
 
 [[package]]
 name = "serde"
-version = "1.0.175"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+dependencies = [
+ "serde_derive",
+]
 
 [[package]]
 name = "serde_derive"
@@ -1247,9 +1218,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.103"
+version = "1.0.97"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"
+checksum = "bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a"
 dependencies = [
  "itoa",
  "ryu",
@@ -1269,9 +1240,9 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook-registry"
@@ -1309,7 +1280,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "stratisd"
-version = "3.5.9"
+version = "3.6.4"
 dependencies = [
  "assert_cmd",
  "assert_matches",
@@ -1327,16 +1298,17 @@ dependencies = [
  "env_logger",
  "futures",
  "iocuddle",
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "lazy_static",
  "libblkid-rs",
  "libc",
  "libcryptsetup-rs",
+ "libcryptsetup-rs-sys",
  "libmount",
  "libudev",
  "log",
- "loopdev",
- "nix 0.26.2",
+ "loopdev-3",
+ "nix 0.27.1",
  "pkg-config",
  "predicates",
  "pretty-hex",
@@ -1344,13 +1316,14 @@ dependencies = [
  "rand",
  "regex",
  "retry",
- "rpassword",
+ "semver",
  "serde",
  "serde_derive",
  "serde_json",
  "sha2",
  "stratisd_proc_macros",
  "tempfile",
+ "termios",
  "tokio",
  "uuid",
 ]
@@ -1394,10 +1367,11 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.7.0"
+version = "3.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998"
+checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
 dependencies = [
+ "autocfg",
  "cfg-if 1.0.0",
  "fastrand",
  "redox_syscall",
@@ -1415,6 +1389,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "termios"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "termtree"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1422,12 +1405,11 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "tokio"
-version = "1.29.1"
+version = "1.28.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
+checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
 dependencies = [
  "autocfg",
- "backtrace",
  "libc",
  "mio",
  "num_cpus",
@@ -1463,9 +1445,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
 
 [[package]]
 name = "utf8parse"
@@ -1475,9 +1457,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.4.1"
+version = "1.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81"
 dependencies = [
  "getrandom",
  "serde",
@@ -1615,9 +1597,9 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.48.1"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
diff --git a/pkgs/tools/filesystems/stratisd/default.nix b/pkgs/tools/filesystems/stratisd/default.nix
index a9e5e4ca36805..d299a1dc93ffb 100644
--- a/pkgs/tools/filesystems/stratisd/default.nix
+++ b/pkgs/tools/filesystems/stratisd/default.nix
@@ -11,7 +11,6 @@
 , dbus
 , cryptsetup
 , util-linux
-, udev
 , lvm2
 , systemd
 , xfsprogs
@@ -28,20 +27,17 @@
 
 stdenv.mkDerivation rec {
   pname = "stratisd";
-  version = "3.5.9";
+  version = "3.6.4";
 
   src = fetchFromGitHub {
     owner = "stratis-storage";
     repo = pname;
     rev = "refs/tags/stratisd-v${version}";
-    hash = "sha256-E4bBrbkqEh2twolPIHpHxphMG3bnDj0tjEBUWhrwL+M=";
+    hash = "sha256-0zSMFjAzTtTmpSCqlIq5GXk3/AhlhtECFZXmo6xcjWA=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "loopdev-0.4.0" = "sha256-nV52zjsg5u6++J8CdN2phii8AwjHg1uap2lt+U8obDQ=";
-    };
   };
 
   postPatch = ''
@@ -53,7 +49,7 @@ stdenv.mkDerivation rec {
       --replace stratis-min           "$out/bin/stratis-min" \
       --replace systemd-ask-password  "${systemd}/bin/systemd-ask-password" \
       --replace sleep                 "${coreutils}/bin/sleep" \
-      --replace udevadm               "${udev}/bin/udevadm"
+      --replace udevadm               "${systemd}/bin/udevadm"
   '';
 
   nativeBuildInputs = [
@@ -72,13 +68,13 @@ stdenv.mkDerivation rec {
     dbus
     cryptsetup
     util-linux
-    udev
+    systemd
     lvm2
   ];
 
   outputs = [ "out" "initrd" ];
 
-  EXECUTABLES_PATHS = lib.makeBinPath ([
+  env.EXECUTABLES_PATHS = lib.makeBinPath ([
     xfsprogs
     thin-provisioning-tools
   ] ++ lib.optionals clevisSupport [
@@ -100,10 +96,10 @@ stdenv.mkDerivation rec {
   # remove files for supporting dracut
   postInstall = ''
     mkdir -p "$initrd/bin"
-    cp "dracut/90stratis/stratis-rootfs-setup" "$initrd/bin"
+    cp "$out/lib/dracut/modules.d/90stratis/stratis-rootfs-setup" "$initrd/bin"
     mkdir -p "$initrd/lib/systemd/system"
-    substitute "dracut/90stratis/stratisd-min.service" "$initrd/lib/systemd/system/stratisd-min.service" \
-      --replace /usr "$out" \
+    substitute "$out/lib/dracut/modules.d/90stratis/stratisd-min.service" \
+      "$initrd/lib/systemd/system/stratisd-min.service" \
       --replace mkdir "${coreutils}/bin/mkdir"
     mkdir -p "$initrd/lib/udev/rules.d"
     cp udev/61-stratisd.rules "$initrd/lib/udev/rules.d"
@@ -111,7 +107,9 @@ stdenv.mkDerivation rec {
     rm -r "$out/lib/systemd/system-generators"
   '';
 
-  passthru.tests = nixosTests.stratis;
+  passthru.tests = nixosTests.stratis // {
+    inherit (nixosTests.installer-systemd-stage-1) stratisRoot;
+  };
 
   meta = with lib; {
     description = "Easy to use local storage management for Linux";
diff --git a/pkgs/tools/filesystems/stuffbin/default.nix b/pkgs/tools/filesystems/stuffbin/default.nix
index 2640ba8b85197..6249c7f5bbd51 100644
--- a/pkgs/tools/filesystems/stuffbin/default.nix
+++ b/pkgs/tools/filesystems/stuffbin/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "stuffbin";
-  version = "1.1.0";
+  version = "1.3.0";
 
   vendorHash = null;
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     owner = "knadh";
     repo = "stuffbin";
     rev = "v${version}";
-    sha256 = "sha256-M72xNh7bKUMLzA+M8bJB++kJ5KCrkboQm1v8BasP3Yo=";
+    sha256 = "sha256-dOlc/G2IiuMAN0LqiZtbpXLSYaOpe5cl1+cs3YhaAbg=";
   };
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
diff --git a/pkgs/tools/filesystems/svnfs/default.nix b/pkgs/tools/filesystems/svnfs/default.nix
index e892d89dc3b30..8aa66de8da3fd 100644
--- a/pkgs/tools/filesystems/svnfs/default.nix
+++ b/pkgs/tools/filesystems/svnfs/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Only;
     maintainers = [lib.maintainers.marcweber];
     platforms = lib.platforms.unix;
+    mainProgram = "svnfs";
   };
 }
diff --git a/pkgs/tools/filesystems/tar2ext4/default.nix b/pkgs/tools/filesystems/tar2ext4/default.nix
index 2168bc1aa3122..81df5e64d9f31 100644
--- a/pkgs/tools/filesystems/tar2ext4/default.nix
+++ b/pkgs/tools/filesystems/tar2ext4/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tar2ext4";
-  version = "0.11.1";
+  version = "0.11.4";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "hcsshim";
     rev = "v${version}";
-    sha256 = "sha256-iz8trRuGyIpGbRX+qYyKKS9gR8daLTRzKmlxE94eDzo=";
+    sha256 = "sha256-bu1uLJmFSetTv1R3qyCtZxba+wxjDDSkEpBwKNZ/meM=";
   };
 
   sourceRoot = "${src.name}/cmd/tar2ext4";
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "Convert a tar archive to an ext4 image";
     maintainers = with maintainers; [ qyliss ];
     license = licenses.mit;
+    mainProgram = "tar2ext4";
   };
 }
diff --git a/pkgs/tools/filesystems/u3-tool/default.nix b/pkgs/tools/filesystems/u3-tool/default.nix
index 6abab83b0fd0a..e666c893b7986 100644
--- a/pkgs/tools/filesystems/u3-tool/default.nix
+++ b/pkgs/tools/filesystems/u3-tool/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = with platforms; linux;
     maintainers = with maintainers; [ makefu ];
+    mainProgram = "u3-tool";
   };
 }
diff --git a/pkgs/tools/filesystems/ubidump/default.nix b/pkgs/tools/filesystems/ubidump/default.nix
index 623cef8844760..c038042b6871b 100644
--- a/pkgs/tools/filesystems/ubidump/default.nix
+++ b/pkgs/tools/filesystems/ubidump/default.nix
@@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/nlitsme/ubidump";
     license = licenses.mit;
     maintainers = with maintainers; [ sgo ];
+    mainProgram = "ubidump";
   };
 }
 
diff --git a/pkgs/tools/filesystems/unionfs-fuse/default.nix b/pkgs/tools/filesystems/unionfs-fuse/default.nix
index 8f008c3a3464b..4dc9ca9de6e6f 100644
--- a/pkgs/tools/filesystems/unionfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/unionfs-fuse/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   patches = [
     # Prevent the unionfs daemon from being killed during
     # shutdown. See
-    # http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/
+    # https://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/
     # for details.
     ./prevent-kill-on-shutdown.patch
   ];
diff --git a/pkgs/tools/filesystems/wdfs/default.nix b/pkgs/tools/filesystems/wdfs/default.nix
index 29d8b4c2887b5..3f8897c091bc8 100644
--- a/pkgs/tools/filesystems/wdfs/default.nix
+++ b/pkgs/tools/filesystems/wdfs/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     description = "User-space filesystem that allows to mount a webdav share";
     platforms = platforms.unix;
+    mainProgram = "wdfs";
   };
 }
diff --git a/pkgs/tools/filesystems/wipefreespace/default.nix b/pkgs/tools/filesystems/wipefreespace/default.nix
index 03adc070c0ef1..bf2ddb391c86e 100644
--- a/pkgs/tools/filesystems/wipefreespace/default.nix
+++ b/pkgs/tools/filesystems/wipefreespace/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wipefreespace";
-  version = "2.5";
+  version = "2.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/wipefreespace/wipefreespace/${version}/wipefreespace-${version}.tar.gz";
-    hash = "sha256-wymV6G4Et5TCoIztZfdb3xuzjdBHFyB5OmI4EcsJKwQ=";
+    hash = "sha256-Pt6MDQ9wSJbL4tW/qckTpFsvE9FdXIkp/QmnYSlWR/M=";
   };
 
   nativeBuildInputs = [
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ catap ];
+    mainProgram = "wipefreespace";
   };
 }
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index ee9177e37c2d6..c8c80e5ff777b 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -58,6 +58,6 @@ stdenv.mkDerivation rec {
     description = "SGI XFS utilities";
     license = with licenses; [ gpl2Only lgpl21 gpl3Plus ];  # see https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/debian/copyright
     platforms = platforms.linux;
-    maintainers = with maintainers; [ dezgeg ajs124 ];
+    maintainers = with maintainers; [ dezgeg ] ++ teams.helsinki-systems.members;
   };
 }
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index 109781f612a26..94907ee4fd2fd 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -67,5 +67,6 @@ stdenv.mkDerivation rec {
        * faster syncing with Disk's server;
        * no need to be constantly connected to work with files.
     '';
+    mainProgram = "yandex-disk";
   };
 }
diff --git a/pkgs/tools/filesystems/zerofree/default.nix b/pkgs/tools/filesystems/zerofree/default.nix
index 1447ca36a1364..d44e92a33c46d 100644
--- a/pkgs/tools/filesystems/zerofree/default.nix
+++ b/pkgs/tools/filesystems/zerofree/default.nix
@@ -29,5 +29,6 @@ in stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.theuni ];
+    mainProgram = "zerofree";
   };
 }
diff --git a/pkgs/tools/filesystems/zfstools/default.nix b/pkgs/tools/filesystems/zfstools/default.nix
index feb5b23df52a6..0a4447bacc4f3 100644
--- a/pkgs/tools/filesystems/zfstools/default.nix
+++ b/pkgs/tools/filesystems/zfstools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ruby, zfs }:
+{ lib, stdenv, fetchFromGitHub, ruby, zfs, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "zfstools";
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ruby ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -20,10 +21,10 @@ stdenv.mkDerivation rec {
     cp -R lib $out/
 
     for f in $out/bin/*; do
-      substituteInPlace $f --replace "/usr/bin/env ruby" "ruby -I$out/lib"
+      wrapProgram $f \
+        --set RUBYLIB $out/lib \
+        --prefix PATH : ${zfs}/bin
     done
-
-    sed -e 's|cmd.*=.*"zfs |cmd = "${zfs}/sbin/zfs |g' -i $out/lib/zfstools/{dataset,snapshot}.rb
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/filesystems/zkfuse/default.nix b/pkgs/tools/filesystems/zkfuse/default.nix
index 320ccde4cc539..00d78af0146fd 100644
--- a/pkgs/tools/filesystems/zkfuse/default.nix
+++ b/pkgs/tools/filesystems/zkfuse/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ ztzg ];
     license = licenses.asl20;
+    mainProgram = "zkfuse";
   };
 }
diff --git a/pkgs/tools/filesystems/zpool-auto-expand-partitions/Cargo.lock b/pkgs/tools/filesystems/zpool-auto-expand-partitions/Cargo.lock
new file mode 100644
index 0000000000000..3611e181a0fed
--- /dev/null
+++ b/pkgs/tools/filesystems/zpool-auto-expand-partitions/Cargo.lock
@@ -0,0 +1,753 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bindgen"
+version = "0.65.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5"
+dependencies = [
+ "bitflags 1.3.2",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "peeking_take_while",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.39",
+ "which",
+]
+
+[[package]]
+name = "bindgen"
+version = "0.69.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2"
+dependencies = [
+ "bitflags 2.4.1",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "peeking_take_while",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.39",
+ "which",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
+name = "blkid"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f68440dfd06d6a97a56f8e67729316f33c7e52c31f59f16f6e9641777702bb7"
+dependencies = [
+ "bitflags 1.3.2",
+ "blkid-sys",
+ "libc",
+ "pkg-config",
+ "strum",
+ "strum_macros",
+ "thiserror",
+]
+
+[[package]]
+name = "blkid-sys"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc9c952498f4ffdf6ec98a7e739ca08cc8af1950efdd9f47db46d9dbdc111565"
+dependencies = [
+ "bindgen 0.65.1",
+]
+
+[[package]]
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clang-sys"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
+name = "clap"
+version = "3.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5177fac1ab67102d8989464efd043c6ff44191b1557ec1ddd489b4f7e1447e77"
+dependencies = [
+ "atty",
+ "bitflags 1.3.2",
+ "clap_derive",
+ "indexmap",
+ "lazy_static",
+ "os_str_bytes",
+ "strsim",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_derive"
+version = "3.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01d42c94ce7c2252681b5fed4d3627cc807b13dfc033246bd05d5b252399000e"
+dependencies = [
+ "heck 0.4.0",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.86",
+]
+
+[[package]]
+name = "cstr-argument"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bd9c8e659a473bce955ae5c35b116af38af11a7acb0b480e01f3ed348aeb40"
+dependencies = [
+ "cfg-if",
+ "memchr",
+]
+
+[[package]]
+name = "either"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "errno"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "hashbrown"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "home"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "libc"
+version = "0.2.150"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "libzfs"
+version = "0.6.16"
+source = "git+https://github.com/DeterminateSystems/rust-libzfs?branch=fix-build-zpool-auto-expand-partitions#7c14513fb85a147ce91afa02f5a0dc3e3f788c3a"
+dependencies = [
+ "cstr-argument",
+ "foreign-types",
+ "lazy_static",
+ "libzfs-sys",
+ "libzfs-types",
+ "nvpair-sys",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "libzfs-sys"
+version = "0.5.11"
+source = "git+https://github.com/DeterminateSystems/rust-libzfs?branch=fix-build-zpool-auto-expand-partitions#7c14513fb85a147ce91afa02f5a0dc3e3f788c3a"
+dependencies = [
+ "bindgen 0.69.1",
+ "nvpair-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libzfs-types"
+version = "0.1.2"
+source = "git+https://github.com/DeterminateSystems/rust-libzfs?branch=fix-build-zpool-auto-expand-partitions#7c14513fb85a147ce91afa02f5a0dc3e3f788c3a"
+dependencies = [
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
+
+[[package]]
+name = "log"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "memchr"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "nvpair-sys"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc4cc751960db1094a7a732dd0706927aeae9194bf66c30fa227b70fc62b6c8"
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
+
+[[package]]
+name = "prettyplease"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.86",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "regex"
+version = "1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+dependencies = [
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.38.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
+
+[[package]]
+name = "ryu"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
+
+[[package]]
+name = "serde"
+version = "1.0.136"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.136"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.86",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "shlex"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strum"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb"
+
+[[package]]
+name = "strum_macros"
+version = "0.23.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38"
+dependencies = [
+ "heck 0.3.3",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 1.0.86",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80"
+
+[[package]]
+name = "thiserror"
+version = "1.0.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.86",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "which"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "zpool_part_disks"
+version = "0.1.1"
+dependencies = [
+ "blkid",
+ "clap",
+ "libzfs",
+ "serde",
+ "serde_json",
+]
diff --git a/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix b/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix
index 601baabd87eee..8fced13e93db4 100644
--- a/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix
+++ b/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix
@@ -8,16 +8,21 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "zpool-auto-expand-partitions";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitHub {
     owner = "DeterminateSystems";
     repo = "zpool-auto-expand-partitions";
     rev = "v${version}";
-    hash = "sha256-LA6YO6vv7VCXwFfayQVxVR80niSCo89sG0hqh0wDEh8=";
+    hash = "sha256-N1znZbJULEeNR4ABSrUtHHkmz08N+CZqX6Ni7jFzc4c=";
   };
 
-  cargoHash = "sha256-5v0fqp8aro+QD/f5VudMREc8RvKQapNAoArcCKMN1Sw=";
+  cargoLock.lockFile = ./Cargo.lock;
+  # We rely on a fork of libzfs in order to bump the bindgen version to fix
+  # builds against LLVM 16.
+  cargoLock.outputHashes = {
+    "libzfs-0.6.16" = "sha256-kQunP/xW1Zb1q+TcgAkmZkt1yDnJo9CwF5qldikVN94=";
+  };
 
   preBuild = ''
     substituteInPlace src/grow.rs \
@@ -41,5 +46,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/DeterminateSystems/zpool-auto-expand-partitions";
     license = licenses.asl20;
     maintainers = teams.determinatesystems.members;
+    mainProgram = "zpool_part_disks";
   };
 }
diff --git a/pkgs/tools/filesystems/zpool-iostat-viz/default.nix b/pkgs/tools/filesystems/zpool-iostat-viz/default.nix
index a9e4dfe8ab744..4f546e544e66c 100644
--- a/pkgs/tools/filesystems/zpool-iostat-viz/default.nix
+++ b/pkgs/tools/filesystems/zpool-iostat-viz/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/chadmiller/zpool-iostat-viz";
     license = licenses.bsd2;
     maintainers = with maintainers; [ julm ];
+    mainProgram = "zpool-iostat-viz";
   };
 }
diff --git a/pkgs/tools/games/ajour/default.nix b/pkgs/tools/games/ajour/default.nix
index bf783c7f47767..0f90a794987e6 100644
--- a/pkgs/tools/games/ajour/default.nix
+++ b/pkgs/tools/games/ajour/default.nix
@@ -70,6 +70,12 @@ in rustPlatform.buildRustPackage rec {
     libxkbcommon
   ];
 
+  postInstall = ''
+    mkdir -p $out/share
+    cp -r resources/logo $out/share/icons
+    install -Dm444 resources/linux/ajour.desktop -t $out/share/applications
+  '';
+
   fixupPhase = ''
     patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}:$(patchelf --print-rpath $out/bin/ajour)" $out/bin/ajour
     wrapProgram $out/bin/ajour --prefix PATH ":" ${lib.makeBinPath [ zenity kdialog ]}
diff --git a/pkgs/tools/games/er-patcher/default.nix b/pkgs/tools/games/er-patcher/default.nix
index 4440277b664de..6e7920bce0a02 100644
--- a/pkgs/tools/games/er-patcher/default.nix
+++ b/pkgs/tools/games/er-patcher/default.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "er-patcher";
-  version = "1.06-3";
+  version = "1.10.1-1";
 
   src = fetchFromGitHub {
     owner = "gurrgur";
     repo = "er-patcher";
     rev = "v${version}";
-    sha256 = "sha256-w/5cXxY4ua5Xo1BSz3MYRV+SdvVGFAx53KMIORS1uWE=";
+    sha256 = "sha256-vSCZQBI9Q+7m+TT9pS7R5Fw3BgTxznbFAArJ7J6+tUQ=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/games/gamemode/default.nix b/pkgs/tools/games/gamemode/default.nix
index 25acf8cebb1eb..928b9233bccde 100644
--- a/pkgs/tools/games/gamemode/default.nix
+++ b/pkgs/tools/games/gamemode/default.nix
@@ -1,8 +1,8 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , libgamemode32
+, makeWrapper
 , meson
 , ninja
 , pkg-config
@@ -10,36 +10,28 @@
 , inih
 , systemd
 , appstream
-, makeWrapper
 , findutils
 , gawk
 , procps
+, nix-update-script
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gamemode";
-  version = "1.7";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "FeralInteractive";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-DIFcmWFkoZOklo1keYcCl6n2GJgzWKC8usHFcJmfarU=";
+    repo = "gamemode";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-kusb58nGxYA3U9GbZdW3hLjA3NmHc+af0VT4iGRewBw=";
   };
 
-  outputs = [ "out" "dev" "lib" "man" "static" ];
+  outputs = [ "out" "dev" "lib" "man" ];
 
   patches = [
     # Add @libraryPath@ template variable to fix loading the PRELOAD library
     ./preload-nix-workaround.patch
-    # Do not install systemd sysusers configuration
-    ./no-install-systemd-sysusers.patch
-
-    # fix build with glibc >=2.36 (declaration of pidfd_open)
-    (fetchpatch {
-      url = "https://github.com/FeralInteractive/gamemode/commit/4934191b1928ef695c3e8af21e75781f8591745f.patch";
-      sha256 = "sha256-pWf2NGbd3gEJFwVP/EIJRbTD29V7keTQHy388enktsY=";
-    })
   ];
 
   postPatch = ''
@@ -66,12 +58,15 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    # libexec is just a way to package binaries without including them
-    # in PATH. It doesn't make sense to install them to $lib
-    # (the default behaviour in the meson hook).
-    "--libexecdir=${placeholder "out"}/libexec"
-
+    "-Dwith-pam-limits-dir=etc/security/limits.d"
     "-Dwith-systemd-user-unit-dir=lib/systemd/user"
+    "-Dwith-systemd-group-dir=lib/sysusers.d"
+
+    # The meson builder installs internal executables to $lib/lib by
+    # default, but they should be installed to "$out". It's also more
+    # appropriate to install these executables under a libexec
+    # directory instead of lib.
+    "--libexecdir=libexec"
   ];
 
   doCheck = true;
@@ -79,11 +74,6 @@ stdenv.mkDerivation rec {
     appstream
   ];
 
-  # Move static libraries to $static so $lib only contains dynamic libraries.
-  postInstall = ''
-    moveToOutput lib/*.a "$static"
-  '';
-
   postFixup = ''
     # Add $lib/lib to gamemoded & gamemode-simulate-game's rpath since
     # they use dlopen to load libgamemode. Can't use makeWrapper since
@@ -100,11 +90,15 @@ stdenv.mkDerivation rec {
       ]}
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "Optimise Linux system performance on demand";
-    homepage = "https://github.com/FeralInteractive/GameMode";
+    homepage = "https://github.com/FeralInteractive/gamemode";
+    changelog = "https://github.com/FeralInteractive/gamemode/blob/${finalAttrs.version}/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kira-bruneau ];
     platforms = platforms.linux;
+    mainProgram = "gamemoderun"; # Requires NixOS module to run
   };
-}
+})
diff --git a/pkgs/tools/games/gamemode/no-install-systemd-sysusers.patch b/pkgs/tools/games/gamemode/no-install-systemd-sysusers.patch
deleted file mode 100644
index 27aa1d4d710c9..0000000000000
--- a/pkgs/tools/games/gamemode/no-install-systemd-sysusers.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git i/data/meson.build w/data/meson.build
-index 6fb82d8..2e9e170 100644
---- i/data/meson.build
-+++ w/data/meson.build
-@@ -21,11 +21,6 @@ if sd_bus_provider == 'systemd'
-         configuration: data_conf,
-         install_dir: path_systemd_unit_dir,
-     )
--    # Install the sysusers.d file
--    install_data(
--        files('gamemode.conf'),
--        install_dir: path_systemd_sysusers_dir,
--    )
- endif
- 
- # Install the D-BUS service file
diff --git a/pkgs/tools/games/gamemode/preload-nix-workaround.patch b/pkgs/tools/games/gamemode/preload-nix-workaround.patch
index 9c8db37f5d91e..06989ff984abd 100644
--- a/pkgs/tools/games/gamemode/preload-nix-workaround.patch
+++ b/pkgs/tools/games/gamemode/preload-nix-workaround.patch
@@ -6,7 +6,7 @@ index 573b3e4..6f2799e 100755
  
  # ld will find the right path to load the library, including for 32-bit apps.
  LD_PRELOAD="${GAMEMODEAUTO_NAME}${LD_PRELOAD:+:$LD_PRELOAD}"
-+LD_LIBRARY_PATH="@libraryPath@${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
++LD_LIBRARY_PATH="@libraryPath@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
  
 -exec env LD_PRELOAD="${LD_PRELOAD}" $GAMEMODERUNEXEC "$@"
 +exec env LD_PRELOAD="${LD_PRELOAD}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" $GAMEMODERUNEXEC "$@"
diff --git a/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch b/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
deleted file mode 100644
index 17899ef328f14..0000000000000
--- a/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 52662c71f7b043f374d4062d07a28b59ef010cbe Mon Sep 17 00:00:00 2001
-From: Zane van Iperen <zane@zanevaniperen.com>
-Date: Wed, 22 Sep 2021 18:41:36 +1000
-Subject: [PATCH] jpsxdec: hackfix build with newer JDKs
-
----
- jpsxdec/build.xml | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/jpsxdec/build.xml b/jpsxdec/build.xml
-index 713941c..f5aa902 100644
---- a/jpsxdec/build.xml
-+++ b/jpsxdec/build.xml
-@@ -43,8 +43,8 @@
-     <property name="build-lgpl.dir" location="${working.dir}/build-lgpl"/>
-     <property name="testbuild.dir"  location="${working.dir}/build-test"/>
- 
--    <property name="javac.target.ver" value="1.6"/>
--    <property name="javac.source.ver" value="1.6" />
-+    <property name="javac.target.ver" value="1.8"/>
-+    <property name="javac.source.ver" value="1.8" />
- 
-     <!-- output -->
-     <property name="release.dir"       location="${working.dir}/release"/>
-@@ -76,7 +76,6 @@
-             <compilerarg value="-Xlint:static"/>
-             <compilerarg value="-Xlint:unchecked"/>
-             <compilerarg value="-Xlint:varargs"/>
--            <compilerarg value="-Werror"/>
-         </javac>
- 
-         <!-- Copy over resources -->
-@@ -109,7 +108,6 @@
-             <compilerarg value="-Xlint:static"/>
-             <compilerarg value="-Xlint:unchecked"/>
-             <compilerarg value="-Xlint:varargs"/>
--            <compilerarg value="-Werror"/>
-         </javac>
-             
-         <!-- Copy over resources -->
--- 
-2.31.1
-
diff --git a/pkgs/tools/games/jpsxdec/default.nix b/pkgs/tools/games/jpsxdec/default.nix
index d749353abc511..85fd9d65ada1d 100644
--- a/pkgs/tools/games/jpsxdec/default.nix
+++ b/pkgs/tools/games/jpsxdec/default.nix
@@ -1,84 +1,76 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , fetchFromGitHub
-, jdk
-/*
- * jPSXdec needs to be built with no later than JDK8, but
- * should be run with the latest to get HiDPI fixes, etc.
- */
-, jre ? jdk
 , ant
-, unoconv
+, jdk8 # the build script wants JAVA 8 for compilation
+, jre # version can be >= 8 (latest version by default)
 , makeWrapper
 , makeDesktopItem
+, copyDesktopItems
+, canonicalize-jars-hook
 }:
-let
-  pname = "jpsxdec";
-  version = "1.06";
-
-  description = "Cross-platform PlayStation 1 audio and video converter";
 
-  desktopItem = makeDesktopItem {
-    name = pname;
-    exec = pname;
-    icon = pname;
-    comment = description;
-    desktopName = "jPSXdec";
-    categories = [ "AudioVideo" "Utility" ];
-  };
-in
-stdenv.mkDerivation rec {
-  inherit pname version;
+stdenv.mkDerivation (finalAttrs: {
+  pname = "jpsxdec";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "m35";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-6PLEvK4NP0/ipdygyDFFcWTIfch5y0Hren40+8iqYJs=";
+    repo = "jpsxdec";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-PZOc5mpnUiUyydWyfZjWuPG4w+tRd6WLJ6YQMqu/95I=";
   };
 
-  nativeBuildInputs = [ ant jdk unoconv makeWrapper ];
-  buildInputs = [ jre ];
+  sourceRoot = "${finalAttrs.src.name}/jpsxdec";
 
-  patches = [
-    ./0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
+  nativeBuildInputs = [
+    ant
+    jdk8
+    makeWrapper
+    copyDesktopItems
+    canonicalize-jars-hook
   ];
 
   buildPhase = ''
     runHook preBuild
-
-    cd jpsxdec
-    mkdir -p _ant/release/doc/
-    unoconv -d document -f pdf -o _ant/release/doc/jPSXdec-manual.pdf doc/jPSXdec-manual.odt
-
     ant release
-
     runHook postBuild
   '';
 
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/{bin,share/pixmaps}
-    mv _ant/release $out/jpsxdec
+    mkdir -p $out/share/jpsxdec
+    mv _ant/release/{doc,*.jar} $out/share/jpsxdec
+    install -Dm644 src/jpsxdec/gui/icon48.png $out/share/pixmaps/jpsxdec.png
 
     makeWrapper ${jre}/bin/java $out/bin/jpsxdec \
-      --add-flags "-jar $out/jpsxdec/jpsxdec.jar"
-
-    cp ${src}/jpsxdec/src/jpsxdec/gui/icon48.png $out/share/pixmaps/${pname}.png
-    ln -s ${desktopItem}/share/applications $out/share
+        --add-flags "-jar $out/share/jpsxdec/jpsxdec.jar"
 
     runHook postInstall
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "jpsxdec";
+      exec = "jpsxdec";
+      icon = "jpsxdec";
+      desktopName = "jPSXdec";
+      comment = finalAttrs.meta.description;
+      categories = [ "AudioVideo" "Utility" ];
+    })
+  ];
+
   meta = with lib; {
-    inherit description;
+    changelog = "https://github.com/m35/jpsxdec/blob/${finalAttrs.src.rev}/jpsxdec/doc/CHANGES.txt";
+    description = "Cross-platform PlayStation 1 audio and video converter";
     homepage = "https://jpsxdec.blogspot.com/";
-    platforms = platforms.all;
     license = {
-      url = "https://raw.githubusercontent.com/m35/jpsxdec/readme/.github/LICENSE.md";
+      url = "https://raw.githubusercontent.com/m35/jpsxdec/${finalAttrs.src.rev}/.github/LICENSE.md";
       free = true;
     };
+    mainProgram = "jpsxdec";
     maintainers = with maintainers; [ zane ];
+    platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/tools/games/minecraft/fabric-installer/default.nix b/pkgs/tools/games/minecraft/fabric-installer/default.nix
index 9d9bc657467d1..27c70d38a06cf 100644
--- a/pkgs/tools/games/minecraft/fabric-installer/default.nix
+++ b/pkgs/tools/games/minecraft/fabric-installer/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fabric-installer";
-  version = "0.11.2";
+  version = "1.0.0";
 
   src = fetchurl {
     url = "https://maven.fabricmc.net/net/fabricmc/fabric-installer/${version}/fabric-installer-${version}.jar";
-    sha256 = "sha256-xq1b7xuxK1pyJ74+5UDCyQav30rIEUt44KygsUYAXCc=";
+    sha256 = "sha256-fX5bHTp/jiCBBpiY6V3HHYS7Olx5yyNcA0iVFzz9NHs=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/games/minecraft/mcaselector/default.nix b/pkgs/tools/games/minecraft/mcaselector/default.nix
index 0cf48dbe0b6b3..395be450f65c5 100644
--- a/pkgs/tools/games/minecraft/mcaselector/default.nix
+++ b/pkgs/tools/games/minecraft/mcaselector/default.nix
@@ -7,11 +7,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "mcaselector";
-  version = "2.2.2";
+  version = "2.3";
 
   src = fetchurl {
     url = "https://github.com/Querz/mcaselector/releases/download/${finalAttrs.version}/mcaselector-${finalAttrs.version}.jar";
-    hash = "sha256-tOSdzLFxvEJ9LXliwfosMkgcrQLsrW7qDS8vrgPzQoI=";
+    hash = "sha256-8ivqTqgO6hvEgwnAfnPXuruFGS3s/wD/WKt+5Bg/5Z0=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/games/minecraft/optifine/versions.json b/pkgs/tools/games/minecraft/optifine/versions.json
index cbbf231d3d699..47980d6b26180 100644
--- a/pkgs/tools/games/minecraft/optifine/versions.json
+++ b/pkgs/tools/games/minecraft/optifine/versions.json
@@ -1,7 +1,19 @@
 {
+    "optifine_1_20_1": {
+        "version": "1.20.1_HD_U_I6",
+        "sha256": "0l66pz4hy42qxv9a2jlq1hd7jiiysnv54g9gk1dfbwpd19kwnrqb"
+    },
+    "optifine_1_19_4": {
+        "version": "1.19.4_HD_U_I4",
+        "sha256": "0smgr2mxk8p7v7xzklj34kzqs36bl1kbb94lq41i1ks1wg50n09c"
+    },
+    "optifine_1_19_3": {
+        "version": "1.19.3_HD_U_I3",
+        "sha256": "15xgw12sacq6bqssm1szmmg5gac24rsah2plwky67hi67bj894iv"
+    },
     "optifine_1_19_2": {
-        "version": "1.19.2_HD_U_H9",
-        "sha256": "1xyg98i7zar5x3xbgpn2nm48mc3r9q6yqisxnqk3g254ghjcy4xx"
+        "version": "1.19.2_HD_U_I2",
+        "sha256": "0klhhzmr4l5alkyq8q1ishzach2jip5y6d6d4jk9whcbhia33sxg"
     },
     "optifine_1_19_1": {
         "version": "1.19.1_HD_U_H9",
@@ -12,8 +24,8 @@
         "sha256": "19zjvwg0sr6279plj5qxj7hdlw9w8q3qd78dg6911m356z6g87ah"
     },
     "optifine_1_18_2": {
-        "version": "1.18.2_HD_U_H7",
-        "sha256": "169ajvw3zrb0xrz2h1z3x6vdr4122s8m3rxb461s8y2fk6i4y9kr"
+        "version": "1.18.2_HD_U_H9",
+        "sha256": "0lf16i7hjyral3704kzyhbhrc01crbpzaicsl4cyj6qx15z0lwxx"
     },
     "optifine_1_18_1": {
         "version": "1.18.1_HD_U_H6",
@@ -136,7 +148,7 @@
         "sha256": "18lzyh639mi7r2hzwnmxv0a6v1ay7dk9bzasvwff82dxq0y9zi7m"
     },
     "optifine-latest": {
-        "version": "1.19.2_HD_U_H9",
-        "sha256": "1xyg98i7zar5x3xbgpn2nm48mc3r9q6yqisxnqk3g254ghjcy4xx"
+        "version": "1.20.1_HD_U_I6",
+        "sha256": "0l66pz4hy42qxv9a2jlq1hd7jiiysnv54g9gk1dfbwpd19kwnrqb"
     }
 }
diff --git a/pkgs/tools/games/mymcplus/default.nix b/pkgs/tools/games/mymcplus/default.nix
index 38908c5dd6f8c..0e5abb1e8994a 100644
--- a/pkgs/tools/games/mymcplus/default.nix
+++ b/pkgs/tools/games/mymcplus/default.nix
@@ -21,7 +21,7 @@ pythonPackages.buildPythonApplication rec {
 
   propagatedBuildInputs = with pythonPackages; [
     pyopengl
-    wxPython_4_2
+    wxpython
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch b/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
deleted file mode 100644
index a01822c0366e9..0000000000000
--- a/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ccbe5c0401d6965a6daaa0b7bb022f63908c8942 Mon Sep 17 00:00:00 2001
-From: Philipp Rintz <git@rintz.net>
-Date: Mon, 28 Aug 2023 19:19:41 +0200
-Subject: [PATCH] uncommited
-
----
- pocket_updater.csproj | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/pocket_updater.csproj b/pocket_updater.csproj
-index 11f604c..410bd47 100644
---- a/pocket_updater.csproj
-+++ b/pocket_updater.csproj
-@@ -12,6 +12,7 @@
-     <Authors>Matt Pannella</Authors>
-     <Product>Analogue Pocket Updater Utility</Product>
-     <RepositoryUrl>https://github.com/mattpannella/pocket-updater-utility</RepositoryUrl>
-+    <RuntimeIdentifier>@RuntimeIdentifier@</RuntimeIdentifier>
-   </PropertyGroup>
-   <ItemGroup>
-     <PackageReference Include="CommandLineParser" Version="2.9.1" />
-@@ -26,4 +27,4 @@
-   <ItemGroup>
-     <RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
-   </ItemGroup>
--</Project>
-\ No newline at end of file
-+</Project>
--- 
-2.40.1
-
diff --git a/pkgs/tools/games/pocket-updater-utility/default.nix b/pkgs/tools/games/pocket-updater-utility/default.nix
deleted file mode 100644
index ef52b388ae8c1..0000000000000
--- a/pkgs/tools/games/pocket-updater-utility/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ pkgs ? import <nixpkgs> { system = builtins.currentSystem; }
-, stdenv ? pkgs.stdenv
-, lib ? pkgs.lib
-, fetchFromGitHub ? pkgs.fetchFromGitHub
-, buildDotnetModule ? pkgs.buildDotnetModule
-, dotnetCorePackages ? pkgs.dotnetCorePackages
-, openssl ? pkgs.openssl
-, zlib ? pkgs.zlib
-, targetPlatform ? pkgs.targetPlatform
-}:
-
-buildDotnetModule rec {
-  pname = "pocket-updater-utility";
-  version = "2.31.0";
-
-  src = fetchFromGitHub {
-    owner = "mattpannella";
-    repo = "${pname}";
-    rev = "${version}";
-    hash = "sha256-z90YITAW2Nv+Mq2q56As4PoHqGPEnvDUPH73bhz/xnw=";
-  };
-
-  buildInputs = [
-    stdenv.cc.cc.lib
-    zlib
-    openssl
-  ];
-
-  # See https://github.com/NixOS/nixpkgs/pull/196648/commits/0fb17c04fe34ac45247d35a1e4e0521652d9c494
-  patches = [ ./add-runtime-identifier.patch ];
-  postPatch = ''
-    substituteInPlace pocket_updater.csproj \
-      --replace @RuntimeIdentifier@ "${dotnetCorePackages.systemToDotnetRid targetPlatform.system}"
-  '';
-
-  projectFile = "pocket_updater.csproj";
-
-  nugetDeps = ./deps.nix;
-
-  selfContainedBuild = true;
-
-  executables = [ "pocket_updater" ];
-
-  dotnetFlags = [
-    "-p:PackageRuntime=${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system}"
-  ];
-
-  dotnet-sdk = dotnetCorePackages.sdk_6_0;
-  dotnet-runtime = dotnetCorePackages.runtime_6_0;
-
-  meta = with lib; {
-    homepage = "https://github.com/mattpannella/pocket-updater-utility";
-    description = "Analogue Pocket Updater Utility";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ p-rintz ];
-    mainProgram = "pocket_updater";
-  };
-}
diff --git a/pkgs/tools/games/pocket-updater-utility/deps.nix b/pkgs/tools/games/pocket-updater-utility/deps.nix
deleted file mode 100644
index 0e9f626012d95..0000000000000
--- a/pkgs/tools/games/pocket-updater-utility/deps.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-# This file was automatically generated by passthru.fetch-deps.
-# Please dont edit it manually, your changes might get overwritten!
-
-{ fetchNuGet }: [
-  (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
-  (fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
-]
diff --git a/pkgs/tools/games/scarab/default.nix b/pkgs/tools/games/scarab/default.nix
index c96b472e7d918..c71502b7f5062 100644
--- a/pkgs/tools/games/scarab/default.nix
+++ b/pkgs/tools/games/scarab/default.nix
@@ -16,13 +16,13 @@
 
 buildDotnetModule rec {
   pname = "scarab";
-  version = "2.1.0.0";
+  version = "2.5.0.0";
 
   src = fetchFromGitHub {
     owner = "fifty-six";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TbsCj30ZlZmm+i/k31eo9X+XE9Zu13uL9QZOGaRm9zs=";
+    sha256 = "sha256-z1hmMrfeoYyjVEPPjWvUfKUKsOS7UsocSWMYrFY+/kI=";
   };
 
   nugetDeps = ./deps.nix;
diff --git a/pkgs/tools/games/slipstream/default.nix b/pkgs/tools/games/slipstream/default.nix
index 7200af3d1980b..4e1a6e09531ac 100644
--- a/pkgs/tools/games/slipstream/default.nix
+++ b/pkgs/tools/games/slipstream/default.nix
@@ -13,7 +13,7 @@ mavenWithJdk.buildMavenPackage rec {
     hash = "sha256-F+o94Oh9qxVdfgwdmyOv+WZl1BjQuzhQWaVrAgScgIU=";
   };
 
-  mvnHash = "sha256-8i3OVSy8RUGVoQzwADszVvNYe50f4nsJie1y7tsOK4U=";
+  mvnHash = "sha256-zqXbLnLmTZHzwH+vgGASR7Jsz1t173DmQMIe2R6B6Ic=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/games/trigger-control/default.nix b/pkgs/tools/games/trigger-control/default.nix
deleted file mode 100644
index 0d1ef9ef1d47c..0000000000000
--- a/pkgs/tools/games/trigger-control/default.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, makeWrapper
-, pkg-config
-, SDL2
-, dbus
-, libdecor
-, libnotify
-, dejavu_fonts
-, gnome
-}:
-
-let
-  inherit (gnome) zenity;
-in
-
-stdenv.mkDerivation rec {
-  pname = "trigger-control";
-  version = "unstable-2023-06-18";
-
-  src = fetchFromGitHub {
-    owner = "Etaash-mathamsetty";
-    repo = "trigger-control";
-    rev = "d457ebd9e0844cfc456bfa4fa4bb694bb8ad982a";
-    hash = "sha256-QWhUQ8xqS8oRVF0KUpEthlrOoXmhcfEkIHauDI1/5a8=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    makeWrapper
-    pkg-config
-  ];
-
-  buildInputs = [
-    SDL2
-    dbus
-    libnotify
-  ] ++ lib.optionals stdenv.isLinux [
-    libdecor
-  ];
-
-  # The app crashes without a changed fontdir and upstream recommends dejavu as font
-  postPatch = ''
-    substituteInPlace trigger-control.cpp --replace "/usr/share/fonts/" "${dejavu_fonts}/share/fonts/"
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    install -D trigger-control $out/bin/trigger-control
-
-    runHook postInstall
-  '';
-
-  postInstall = lib.optionalString stdenv.isLinux ''
-    wrapProgram $out/bin/trigger-control \
-      --prefix PATH : ${lib.makeBinPath [ zenity ]}
-  '';
-
-  meta = with lib; {
-    description = "Control the dualsense's triggers on Linux (and Windows) with a gui and C++ api";
-    homepage = "https://github.com/Etaash-mathamsetty/trigger-control";
-    license = licenses.mit;
-    maintainers = with maintainers; [ azuwis ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/tools/graphics/aaphoto/default.nix b/pkgs/tools/graphics/aaphoto/default.nix
index 6df3ed9166131..57744eb6b8ec3 100644
--- a/pkgs/tools/graphics/aaphoto/default.nix
+++ b/pkgs/tools/graphics/aaphoto/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "aaphoto";
   };
 }
diff --git a/pkgs/tools/graphics/adriconf/default.nix b/pkgs/tools/graphics/adriconf/default.nix
index e7ae7c28194f7..3d516f8ee113b 100644
--- a/pkgs/tools/graphics/adriconf/default.nix
+++ b/pkgs/tools/graphics/adriconf/default.nix
@@ -7,7 +7,7 @@
 , libGL
 , atkmm
 , pcre
-, gtkmm3
+, gtkmm4
 , pugixml
 , mesa
 , pciutils
@@ -15,26 +15,36 @@
 
 stdenv.mkDerivation rec {
   pname = "adriconf";
-  version = "2.5.1";
+  version = "2.7.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mesa";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RhHmrjb5TvJnZ6R0aefqdmwMBpu4iTrxSHru7JAwrgs=";
+    sha256 = "sha256-GRmra4P30EW9/WrG84HXYC3Rk4RD+BhuWtsSXvY/5Rk=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libdrm libGL atkmm pcre gtkmm3 pugixml mesa pciutils ];
+  buildInputs = [ libdrm libGL atkmm pcre gtkmm4 pugixml mesa pciutils ];
 
   cmakeFlags = [ "-DENABLE_UNIT_TESTS=off" ];
 
+  postInstall = ''
+    install -Dm444 ../flatpak/org.freedesktop.adriconf.metainfo.xml \
+      -t $out/share/metainfo/
+    install -Dm444 ../flatpak/org.freedesktop.adriconf.desktop \
+      -t $out/share/applications/
+    install -Dm444 ../flatpak/org.freedesktop.adriconf.png \
+      -t $out/share/icons/hicolor/256x256/apps/
+  '';
+
   meta = with lib; {
     homepage = "https://gitlab.freedesktop.org/mesa/adriconf/";
     description = "A GUI tool used to configure open source graphics drivers";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ muscaln ];
     platforms = platforms.linux;
+    mainProgram = "adriconf";
   };
 }
diff --git a/pkgs/tools/graphics/argyllcms/default.nix b/pkgs/tools/graphics/argyllcms/default.nix
index f060216935047..941e4cfec22c0 100644
--- a/pkgs/tools/graphics/argyllcms/default.nix
+++ b/pkgs/tools/graphics/argyllcms/default.nix
@@ -1,16 +1,18 @@
 { stdenv, fetchzip, jam, unzip, libX11, libXxf86vm, libXrandr, libXinerama
 , libXrender, libXext, libtiff, libjpeg, libpng, libXScrnSaver, writeText
-, libXdmcp, libXau, lib, openssl }:
+, libXdmcp, libXau, lib, openssl
+, writeScript
+}:
 
 stdenv.mkDerivation rec {
   pname = "argyllcms";
-  version = "2.3.1";
+  version = "3.1.0";
 
   src = fetchzip {
     # Kind of flacky URL, it was reaturning 406 and inconsistent binaries for a
     # while on me. It might be good to find a mirror
     url = "https://www.argyllcms.com/Argyll_V${version}_src.zip";
-    sha256 = "sha256-XWsubjdD1tg0o7x/aoAalemAChehWkwh4fkP2WRvhAw=";
+    hash = "sha256-IZScf+xpvvMt5YFlYQprg51cw2ztMdOrqcLm7l5uBhU=";
   };
 
   nativeBuildInputs = [ jam unzip ];
@@ -120,8 +122,22 @@ stdenv.mkDerivation rec {
 
   '';
 
+  passthru = {
+    updateScript = writeScript "update-argyllcms" ''
+      #!/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 'Current Version 3.0.1 (19th October 2023)'
+      new_version="$(curl -s https://www.argyllcms.com/ |
+          pcregrep -o1 '>Current Version ([0-9.]+) ')"
+      update-source-version ${pname} "$new_version"
+    '';
+  };
+
   meta = with lib; {
-    homepage = "http://www.argyllcms.com";
+    homepage = "https://www.argyllcms.com/";
     description = "Color management system (compatible with ICC)";
     license = licenses.gpl3;
     maintainers = [];
diff --git a/pkgs/tools/graphics/astc-encoder/default.nix b/pkgs/tools/graphics/astc-encoder/default.nix
index 4403ab255dd38..0a227a1781aea 100644
--- a/pkgs/tools/graphics/astc-encoder/default.nix
+++ b/pkgs/tools/graphics/astc-encoder/default.nix
@@ -29,13 +29,13 @@ with rec {
 
 stdenv.mkDerivation rec {
   pname = "astc-encoder";
-  version = "4.5.0";
+  version = "4.7.0";
 
   src = fetchFromGitHub {
     owner = "ARM-software";
     repo = "astc-encoder";
     rev = version;
-    sha256 = "sha256-pNoBOp//xa5F6/T1cwtdHsAWLZeIHgxZ7UKaB60fg4M=";
+    sha256 = "sha256-UzMVJnXYLy7E9RuM4VPdqnIyfQjDOdAlKiqRkXuxnQ0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index a03799b5ed85e..a5968425f5d88 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -4,7 +4,7 @@
 , boehmgc, libGLU, libGL, mesa, ncurses, readline, gsl, libsigsegv
 , python3, qtbase, qtsvg, boost
 , zlib, perl, curl
-, texLive, texinfo
+, texliveSmall, texinfo
 , darwin
 }:
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     ghostscriptX imagemagick fftw
     boehmgc ncurses readline gsl libsigsegv
     zlib perl curl qtbase qtsvg boost
-    texLive
+    (texliveSmall.withPackages (ps: with ps; [ epsf cm-super ps.texinfo media9 ocgx2 collection-latexextra ]))
     (python3.withPackages (ps: with ps; [ cson numpy pyqt5 ]))
   ];
 
diff --git a/pkgs/tools/graphics/blockhash/default.nix b/pkgs/tools/graphics/blockhash/default.nix
index 4f63cf90a3aeb..a58fcc4e8ec61 100644
--- a/pkgs/tools/graphics/blockhash/default.nix
+++ b/pkgs/tools/graphics/blockhash/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "blockhash";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "commonsmachinery";
     repo = "blockhash";
     rev = "v${version}";
-    sha256 = "0x3lvhnkb4c3pyq6p81qnnqimz35wpippiac506dgjx3b1848v35";
+    sha256 = "sha256-QoqFTCfWtXIrFF3Yx4NfOa9cSjHtCSKz3k3i0u9Qx9M=";
   };
 
   nativeBuildInputs = [ python3 pkg-config wafHook ];
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.infinisil ];
     platforms = platforms.unix;
+    mainProgram = "blockhash";
   };
 }
diff --git a/pkgs/tools/graphics/blur-effect/default.nix b/pkgs/tools/graphics/blur-effect/default.nix
index e393da508323c..cc88bb0889498 100644
--- a/pkgs/tools/graphics/blur-effect/default.nix
+++ b/pkgs/tools/graphics/blur-effect/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     broken = stdenv.hostPlatform.isDarwin; # packages 'libdrm' and 'gbm' not found
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "blur_image";
   };
 }
diff --git a/pkgs/tools/graphics/briss/default.nix b/pkgs/tools/graphics/briss/default.nix
index f95c9b527c146..801b8f5a4862c 100644
--- a/pkgs/tools/graphics/briss/default.nix
+++ b/pkgs/tools/graphics/briss/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license = lib.licenses.gpl3;
     platforms = lib.platforms.unix;
+    mainProgram = "briss";
   };
 }
diff --git a/pkgs/tools/graphics/cfdg/default.nix b/pkgs/tools/graphics/cfdg/default.nix
index 2f8b506c65bd7..496255c57953b 100644
--- a/pkgs/tools/graphics/cfdg/default.nix
+++ b/pkgs/tools/graphics/cfdg/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     homepage = "https://contextfreeart.org/";
     license = licenses.gpl2Only;
+    mainProgram = "cfdg";
   };
 }
diff --git a/pkgs/tools/graphics/cgif/default.nix b/pkgs/tools/graphics/cgif/default.nix
index 2fc3cc9f34899..f581a97759b83 100644
--- a/pkgs/tools/graphics/cgif/default.nix
+++ b/pkgs/tools/graphics/cgif/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/dloebl/cgif";
-    description = "CGIF, a GIF encoder written in C.";
+    description = "CGIF, a GIF encoder written in C";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/graphics/cuneiform/default.nix b/pkgs/tools/graphics/cuneiform/default.nix
index 1a1b52502f7d1..9332b25babfb1 100644
--- a/pkgs/tools/graphics/cuneiform/default.nix
+++ b/pkgs/tools/graphics/cuneiform/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, cmake, imagemagick }:
+{ lib, stdenv, fetchurl, cmake, imagemagick, testers }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation (finalAttrs: {
   pname = "cuneiform";
   version = "1.1.0";
 
@@ -30,15 +30,29 @@ stdenv.mkDerivation {
     rm cuneiform_src/Kern/hhh/tigerh/h/strings.h
   '';
 
+  # make the install path match the rpath
+  postInstall = ''
+    if [[ -d ''${!outputLib}/lib64 ]]; then
+      mv ''${!outputLib}/lib64 ''${!outputLib}/lib
+      ln -s lib ''${!outputLib}/lib64
+    fi
+  '';
+
   buildInputs = [ imagemagick ];
 
   nativeBuildInputs = [ cmake ];
 
+  passthru.tests = testers.testVersion {
+    package = finalAttrs.finalPackage;
+    command = "cuneiform";
+  };
+
   meta = with lib; {
     description = "Multi-language OCR system";
     homepage = "https://launchpad.net/cuneiform-linux";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = [ maintainers.raskin ];
+    mainProgram = "cuneiform";
   };
-}
+})
diff --git a/pkgs/tools/graphics/didder/default.nix b/pkgs/tools/graphics/didder/default.nix
deleted file mode 100644
index e42a89c72d620..0000000000000
--- a/pkgs/tools/graphics/didder/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, buildGoModule, fetchFromGitHub, pandoc }:
-
-buildGoModule rec {
-  pname = "didder";
-  version = "1.2.0";
-
-  src = fetchFromGitHub {
-    owner = "makew0rld";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-S1j2TdV0XCrSc7Ua+SdY3JJoWgnFuAMGhUinTKO2Xh4=";
-  };
-
-  vendorHash = "sha256-TEp1YrQquqdEMVvZaNsEB1H/DZsTYmRL257RjQF2JqM=";
-
-  nativeBuildInputs = [ pandoc ];
-
-  postBuild = ''
-    make man
-  '';
-
-  postInstall = ''
-    mkdir -p $out/share/man/man1
-    gzip -c didder.1 > $out/share/man/man1/didder.1.gz
-  '';
-
-  meta = src.meta // {
-    description =
-      "An extensive, fast, and accurate command-line image dithering tool";
-    license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [ ehmry ];
-  };
-}
diff --git a/pkgs/tools/graphics/dippi/default.nix b/pkgs/tools/graphics/dippi/default.nix
index 9e3cc25327f82..1a094c2750e2a 100644
--- a/pkgs/tools/graphics/dippi/default.nix
+++ b/pkgs/tools/graphics/dippi/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dippi";
-  version = "4.0.2";
+  version = "4.0.6";
 
   src = fetchFromGitHub {
     owner = "cassidyjames";
     repo = "dippi";
     rev = version;
-    hash = "sha256-OYeSPh3m3udmGbIKoithCdsqWSAFnRhnAtQ0nTzFxzs=";
+    hash = "sha256-oZy8WfaAPABZRm8dm4zpI4v9RwT46F6WL6Wj767FcZg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/ditaa/default.nix b/pkgs/tools/graphics/ditaa/default.nix
index ab1c6ff74ec31..c6823fbed3696 100644
--- a/pkgs/tools/graphics/ditaa/default.nix
+++ b/pkgs/tools/graphics/ditaa/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl3;
     platforms = platforms.unix;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "ditaa";
   };
 }
diff --git a/pkgs/tools/graphics/dnglab/default.nix b/pkgs/tools/graphics/dnglab/default.nix
index cb865e51a9c59..9088a1110b7bf 100644
--- a/pkgs/tools/graphics/dnglab/default.nix
+++ b/pkgs/tools/graphics/dnglab/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dnglab/dnglab";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "dnglab";
   };
 }
diff --git a/pkgs/tools/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
index 1a4161dd62062..fb3e0c19bf826 100644
--- a/pkgs/tools/graphics/dpic/default.nix
+++ b/pkgs/tools/graphics/dpic/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ aespinosa ];
     platforms = platforms.all;
+    mainProgram = "dpic";
   };
 }
 
diff --git a/pkgs/tools/graphics/editres/default.nix b/pkgs/tools/graphics/editres/default.nix
index ca9be631942a4..ce8b2e0a4ff6a 100644
--- a/pkgs/tools/graphics/editres/default.nix
+++ b/pkgs/tools/graphics/editres/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     description = "A dynamic resource editor for X Toolkit applications";
     license = licenses.mit;
     platforms = platforms.linux;
+    mainProgram = "editres";
   };
 }
diff --git a/pkgs/tools/graphics/enblend-enfuse/default.nix b/pkgs/tools/graphics/enblend-enfuse/default.nix
index 2fffa3bfa9c72..f47a2aa961e6f 100644
--- a/pkgs/tools/graphics/enblend-enfuse/default.nix
+++ b/pkgs/tools/graphics/enblend-enfuse/default.nix
@@ -13,7 +13,7 @@
 , help2man
 , pkg-config
 , perl
-, texlive
+, texliveSmall
 }:
 
 stdenv.mkDerivation rec {
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ boost freeglut glew gsl lcms2 libpng libtiff libGLU libGL vigra ];
 
-  nativeBuildInputs = [ autoreconfHook help2man perl pkg-config texlive.combined.scheme-small ];
+  nativeBuildInputs = [ autoreconfHook help2man perl pkg-config texliveSmall ];
 
   preConfigure = ''
     patchShebangs src/embrace
diff --git a/pkgs/tools/graphics/epstool/default.nix b/pkgs/tools/graphics/epstool/default.nix
index cdb1f75cb2c39..5952734e45822 100644
--- a/pkgs/tools/graphics/epstool/default.nix
+++ b/pkgs/tools/graphics/epstool/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.asppsa ];
     platforms = platforms.all;
+    mainProgram = "epstool";
   };
 }
diff --git a/pkgs/tools/graphics/escrotum/default.nix b/pkgs/tools/graphics/escrotum/default.nix
index 08136f57ef882..c2e5a7ec9a719 100644
--- a/pkgs/tools/graphics/escrotum/default.nix
+++ b/pkgs/tools/graphics/escrotum/default.nix
@@ -1,4 +1,5 @@
 { lib, python3Packages, fetchFromGitHub
+, ffmpeg-full
 , gtk3
 , pango
 , gobject-introspection
@@ -33,6 +34,8 @@ with python3Packages; buildPythonApplication {
 
   outputs = [ "out" "man" ];
 
+  makeWrapperArgs = ["--prefix PATH : ${lib.makeBinPath [ ffmpeg-full ]}"];
+
   postInstall = ''
     mkdir -p $man/share/man/man1
     cp man/escrotum.1 $man/share/man/man1/
@@ -44,5 +47,6 @@ with python3Packages; buildPythonApplication {
     platforms = platforms.linux;
     maintainers = with maintainers; [ rasendubi ];
     license = licenses.gpl3;
+    mainProgram = "escrotum";
   };
 }
diff --git a/pkgs/tools/graphics/esshader/default.nix b/pkgs/tools/graphics/esshader/default.nix
index 2e2e9ddbd65e4..38bd4d1b7f0ad 100644
--- a/pkgs/tools/graphics/esshader/default.nix
+++ b/pkgs/tools/graphics/esshader/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation {
     platforms = lib.platforms.unix;
     # never built on aarch64-darwin, x86_64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin;
+    mainProgram = "esshader";
   };
 }
diff --git a/pkgs/tools/graphics/exif/default.nix b/pkgs/tools/graphics/exif/default.nix
index f07f3d05541e9..437ae29a2f50b 100644
--- a/pkgs/tools/graphics/exif/default.nix
+++ b/pkgs/tools/graphics/exif/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     description = "A utility to read and manipulate EXIF data in digital photographs";
     platforms = platforms.unix;
     license = licenses.lgpl21Plus;
+    mainProgram = "exif";
   };
 }
diff --git a/pkgs/tools/graphics/facedetect/default.nix b/pkgs/tools/graphics/facedetect/default.nix
index d62f077e06d7d..d83501d26da6f 100644
--- a/pkgs/tools/graphics/facedetect/default.nix
+++ b/pkgs/tools/graphics/facedetect/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
+    mainProgram = "facedetect";
   };
 }
diff --git a/pkgs/tools/graphics/fbv/default.nix b/pkgs/tools/graphics/fbv/default.nix
index 5b46d5d2268dc..659a661fded8a 100644
--- a/pkgs/tools/graphics/fbv/default.nix
+++ b/pkgs/tools/graphics/fbv/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "http://s-tech.elsat.net.pl/fbv/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "fbv";
   };
 }
diff --git a/pkgs/tools/graphics/feedgnuplot/default.nix b/pkgs/tools/graphics/feedgnuplot/default.nix
index 827481af497c1..6503a2887ab2f 100644
--- a/pkgs/tools/graphics/feedgnuplot/default.nix
+++ b/pkgs/tools/graphics/feedgnuplot/default.nix
@@ -62,5 +62,6 @@ perlPackages.buildPerlPackage rec {
     license = with licenses; [ artistic1 gpl1Plus ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ mnacamura ];
+    mainProgram = "feedgnuplot";
   };
 }
diff --git a/pkgs/tools/graphics/fgallery/default.nix b/pkgs/tools/graphics/fgallery/default.nix
index 7af5c6129f252..be8bc4eb6eabe 100644
--- a/pkgs/tools/graphics/fgallery/default.nix
+++ b/pkgs/tools/graphics/fgallery/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "fgallery";
   };
 }
diff --git a/pkgs/tools/graphics/fim/default.nix b/pkgs/tools/graphics/fim/default.nix
index 6722e1d781923..0f2e11ba59b8a 100644
--- a/pkgs/tools/graphics/fim/default.nix
+++ b/pkgs/tools/graphics/fim/default.nix
@@ -11,11 +11,11 @@
 
 gcc9Stdenv.mkDerivation rec {
   pname = "fim";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchurl {
     url = "mirror://savannah/fbi-improved/${pname}-${version}-trunk.tar.gz";
-    sha256 = "124b7c4flx5ygmy5sqq0gpvxqzafnknbcj6f45ddnbdxik9lazzp";
+    sha256 = "sha256-/p7bjeZM46DJOQ9sgtebhkNpBPj2RJYY3dMXhzHnNmg=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/graphics/gfxreconstruct/default.nix b/pkgs/tools/graphics/gfxreconstruct/default.nix
index fe678ba06715e..633c1202fafca 100644
--- a/pkgs/tools/graphics/gfxreconstruct/default.nix
+++ b/pkgs/tools/graphics/gfxreconstruct/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gfxreconstruct";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "LunarG";
     repo = "gfxreconstruct";
     rev = "v${version}";
-    hash = "sha256-dOmkNKURYgphbDHOmzcWf9PsIKMkPyN7ve579BE7fR0=";
+    hash = "sha256-+h7r6uLRw08c1CHRHxGCdkPYqI10i2Q/Oep617rLhx0=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/graphics/ggobi/default.nix b/pkgs/tools/graphics/ggobi/default.nix
index 4e1b851735f06..2bd5abf006663 100644
--- a/pkgs/tools/graphics/ggobi/default.nix
+++ b/pkgs/tools/graphics/ggobi/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.cpl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.michelk ];
+    mainProgram = "ggobi";
   };
 }
diff --git a/pkgs/tools/graphics/gifski/Cargo.lock b/pkgs/tools/graphics/gifski/Cargo.lock
index bc5b95bc75aad..bc840dec7f1fb 100644
--- a/pkgs/tools/graphics/gifski/Cargo.lock
+++ b/pkgs/tools/graphics/gifski/Cargo.lock
@@ -10,29 +10,30 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "cd7d5a2cecb58716e47d67d5703a249964b14c7be1ec3cad3affc295b2d1c35d"
 dependencies = [
  "cfg-if",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anstream"
-version = "0.5.0"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
+checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -44,15 +45,15 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
 dependencies = [
  "utf8parse",
 ]
@@ -68,9 +69,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle-wincon"
-version = "2.1.0"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
+checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
 dependencies = [
  "anstyle",
  "windows-sys",
@@ -105,7 +106,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -157,18 +158,18 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.4"
+version = "4.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d7b8d5ec32af0fadc644bf1fd509a688c2103b185644bb1e29d164e0703136"
+checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
 dependencies = [
  "clap_builder",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.4.4"
+version = "4.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5179bb514e4d7c2051749d8fcefa2ed6d06a9f4e6d69faf3805f5d80b8cf8d56"
+checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
 dependencies = [
  "anstream",
  "anstyle",
@@ -287,9 +288,9 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -316,18 +317,8 @@ dependencies = [
 ]
 
 [[package]]
-name = "gifsicle"
-version = "1.93.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d2c35b9670c2a3313343ce54d00669ca18a8236fe727f52e0cf8c5a77acac07"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
 name = "gifski"
-version = "1.12.2"
+version = "1.13.1"
 dependencies = [
  "clap",
  "crossbeam-channel",
@@ -336,7 +327,6 @@ dependencies = [
  "ffmpeg-next",
  "gif",
  "gif-dispose",
- "gifsicle",
  "imagequant",
  "imgref",
  "lodepng",
@@ -347,7 +337,6 @@ dependencies = [
  "quick-error",
  "resize",
  "rgb",
- "scopeguard",
  "wild",
 ]
 
@@ -374,12 +363,11 @@ checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "imagequant"
-version = "4.2.1"
+version = "4.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9427afad20d287aad11e5981db8beb68d0a20e2e4cbd8280e05f95e05b31668a"
+checksum = "84d51957ac48371e8e2eaaeb4eba56150ff2109c1c8c200002afb7dd6e2d260f"
 dependencies = [
  "arrayvec",
- "num_cpus",
  "once_cell",
  "rayon",
  "rgb",
@@ -388,9 +376,9 @@ dependencies = [
 
 [[package]]
 name = "imgref"
-version = "1.9.4"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2cf49df1085dcfb171460e4592597b84abe50d900fb83efb6e41b20fefd6c2c"
+checksum = "90d944e334f00f4449c9640b440a171f816be0152305c12ef90424fc35fd035c"
 
 [[package]]
 name = "lazy_static"
@@ -406,9 +394,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.149"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
 
 [[package]]
 name = "libloading"
@@ -422,9 +410,9 @@ dependencies = [
 
 [[package]]
 name = "lodepng"
-version = "3.8.2"
+version = "3.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73c81862c9e16a943631de5160969379758f13fb3c788110db4ab49430b4feab"
+checksum = "a3cdccd0cf57a5d456f0656ebcff72c2e19503287e1afbf3b84382812adc0606"
 dependencies = [
  "crc32fast",
  "fallible_collections",
@@ -444,9 +432,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -490,9 +478,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -538,9 +526,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
@@ -582,9 +570,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -594,9 +582,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -605,9 +593,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "resize"
@@ -664,6 +652,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "syn"
+version = "2.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
 name = "thread_local"
 version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -799,3 +798,23 @@ name = "windows_x86_64_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c19fae0c8a9efc6a8281f2e623db8af1db9e57852e04cde3e754dd2dc29340f"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc56589e9ddd1f1c28d4b4b5c773ce232910a6bb67a70133d61c9e347585efe9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
diff --git a/pkgs/tools/graphics/gifski/default.nix b/pkgs/tools/graphics/gifski/default.nix
index ed3c332cc452b..312388a9742fd 100644
--- a/pkgs/tools/graphics/gifski/default.nix
+++ b/pkgs/tools/graphics/gifski/default.nix
@@ -7,13 +7,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "1.12.2";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
-    rev = version;
-    hash = "sha256-KiedPhlPcFkTiZZfOBlTKqtzU2ND1HXdsfhq+F1MtdU=";
+    # rev = version;
+    rev = "1.31.1"; # upstream tagged incorrectly
+    hash = "sha256-JzQReCX1AfFhbVbSPOIAKAVvNoddrWFHaJ1AxlsIPA0=";
   };
 
   cargoLock = {
@@ -44,6 +45,11 @@ rustPlatform.buildRustPackage rec {
   #
   checkType = "debug";
 
+  # Cargo.lock is outdated
+  postPatch = ''
+    cargo metadata --offline
+  '';
+
   meta = with lib; {
     description = "GIF encoder based on libimagequant (pngquant)";
     homepage = "https://gif.ski/";
diff --git a/pkgs/tools/graphics/gmic-qt/default.nix b/pkgs/tools/graphics/gmic-qt/default.nix
index 0a2ebd7709940..a67479e4ffd5f 100644
--- a/pkgs/tools/graphics/gmic-qt/default.nix
+++ b/pkgs/tools/graphics/gmic-qt/default.nix
@@ -17,7 +17,6 @@
 , libtiff
 , ninja
 , nix-update
-, opencv3
 , openexr
 , pkg-config
 , qtbase
@@ -55,11 +54,11 @@ assert lib.assertMsg
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gmic-qt${lib.optionalString (variant != "standalone") "-${variant}"}";
-  version = "3.3.1";
+  version = "3.3.3";
 
   src = fetchzip {
     url = "https://gmic.eu/files/source/gmic_${finalAttrs.version}.tar.gz";
-    hash = "sha256-d9FRNW/MXM9ZJ1xgIZvGTUPDDnHgTJU0DuWyPkzNAmo=";
+    hash = "sha256-LkWQ3fSHJSaXztX+soGZ+pl3MnXNgw6tV09356bAfYY=";
   };
 
   nativeBuildInputs = [
@@ -78,7 +77,6 @@ stdenv.mkDerivation (finalAttrs: {
     libjpeg
     libtiff
     libpng
-    opencv3
     openexr
     graphicsmagick
     curl
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index f76919b0bc550..64e00642889c1 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, makeWrapper, pkg-config, texinfo
 , cairo, gd, libcerf, pango, readline, zlib
-, withTeXLive ? false, texlive
+, withTeXLive ? false, texliveSmall
 , withLua ? false, lua
 , withCaca ? false, libcaca
 , libX11 ? null
@@ -21,18 +21,18 @@ let
 in
 (if withQt then mkDerivation else stdenv.mkDerivation) rec {
   pname = "gnuplot";
-  version = "5.4.9";
+  version = "6.0.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnuplot/${pname}-${version}.tar.gz";
-    sha256 = "sha256-oyigIfU9wFRZvmBmAg6acejqtiVdM4HiJpYSDUZcapc=";
+    sha256 = "sha256-Y1oo8Jk/arDRF54HKtObgTnQf1Ejf4Qdk8bC/0sXWOw=";
   };
 
   nativeBuildInputs = [ makeWrapper pkg-config texinfo ] ++ lib.optional withQt qttools;
 
   buildInputs =
     [ cairo gd libcerf pango readline zlib ]
-    ++ lib.optional withTeXLive (texlive.combine { inherit (texlive) scheme-small; })
+    ++ lib.optional withTeXLive texliveSmall
     ++ lib.optional withLua lua
     ++ lib.optional withCaca libcaca
     ++ lib.optionals withX [ libX11 libXpm libXt libXaw ]
@@ -88,5 +88,6 @@ in
       url = "https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/Copyright";
     };
     maintainers = with maintainers; [ lovek323 ];
+    mainProgram = "gnuplot";
   };
 }
diff --git a/pkgs/tools/graphics/goverlay/default.nix b/pkgs/tools/graphics/goverlay/default.nix
index d4f88a770a01d..b73216a7875c2 100644
--- a/pkgs/tools/graphics/goverlay/default.nix
+++ b/pkgs/tools/graphics/goverlay/default.nix
@@ -113,5 +113,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kira-bruneau ];
     platforms = platforms.linux;
+    mainProgram = "goverlay";
   };
 }
diff --git a/pkgs/tools/graphics/graph-cli/default.nix b/pkgs/tools/graphics/graph-cli/default.nix
index c504d6b271562..ebddd548bed0e 100644
--- a/pkgs/tools/graphics/graph-cli/default.nix
+++ b/pkgs/tools/graphics/graph-cli/default.nix
@@ -1,22 +1,31 @@
 { lib
 , python3Packages
 , fetchPypi
+, qt5
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "graph-cli";
-  version = "0.1.18";
+  version = "0.1.19";
 
   src = fetchPypi {
     inherit version;
     pname = "graph_cli";
-    sha256 = "sha256-0mxOc8RJ3GNgSbppLylIViqfYf6zwJ49pltnsyQUpSA=";
+    hash = "sha256-AOfUgeVgcTtuf5IuLYy1zFTBCjWZxu0OiZzUVXDIaSc=";
   };
 
+  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+  dontWrapQtApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+  '';
+
   propagatedBuildInputs = with python3Packages; [
     numpy
     pandas
-    matplotlib
+    (matplotlib.override { enableQt = true; })
   ];
 
   # does not contain tests despite reference in Makefile
@@ -28,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/mcastorina/graph-cli/";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ leungbk ];
+    mainProgram = "graph";
   };
 }
diff --git a/pkgs/tools/graphics/graph-easy/default.nix b/pkgs/tools/graphics/graph-easy/default.nix
index 4f3b89eea9170..668c7527e9e4f 100644
--- a/pkgs/tools/graphics/graph-easy/default.nix
+++ b/pkgs/tools/graphics/graph-easy/default.nix
@@ -13,5 +13,6 @@ perlPackages.buildPerlPackage {
     license = licenses.gpl1Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.jensbin ];
+    mainProgram = "graph-easy";
   };
 }
diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix
index 71892916ad7a6..20b296de802c8 100644
--- a/pkgs/tools/graphics/graphviz/default.nix
+++ b/pkgs/tools/graphics/graphviz/default.nix
@@ -28,13 +28,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "graphviz";
-  version = "8.1.0";
+  version = "9.0.0";
 
   src = fetchFromGitLab {
     owner = "graphviz";
     repo = "graphviz";
     rev = version;
-    hash = "sha256-xTdrtwSpizqf5tNRX0Q0w10mEk4S0X7cmxHj3Us14kY=";
+    hash = "sha256-lLESaULvHkWJjbKjjG9VIcVInqsDmY1OAAKfjCFDThQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/gromit-mpx/default.nix b/pkgs/tools/graphics/gromit-mpx/default.nix
index 09050275fe47f..0a54626419b59 100644
--- a/pkgs/tools/graphics/gromit-mpx/default.nix
+++ b/pkgs/tools/graphics/gromit-mpx/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gromit-mpx";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "bk138";
     repo = "gromit-mpx";
     rev = version;
-    sha256 = "sha256-nbSyWcccu07FZbvOESFhlnuxgTNgJ+/6ujVQvEyQGGo=";
+    sha256 = "sha256-6sjps0wbB0sTaQtehRmz2KBWxqk3pqJmQs9htqxmJwo=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ pjones ];
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
+    mainProgram = "gromit-mpx";
   };
 }
diff --git a/pkgs/tools/graphics/guff/default.nix b/pkgs/tools/graphics/guff/default.nix
index daca6f4344eb7..2ca68376baa27 100644
--- a/pkgs/tools/graphics/guff/default.nix
+++ b/pkgs/tools/graphics/guff/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
+    mainProgram = "guff";
   };
 }
diff --git a/pkgs/tools/graphics/ibniz/default.nix b/pkgs/tools/graphics/ibniz/default.nix
index a74267846c1d6..04aadf911e1e1 100644
--- a/pkgs/tools/graphics/ibniz/default.nix
+++ b/pkgs/tools/graphics/ibniz/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.zlib;
     platforms = platforms.linux;
     maintainers = [ maintainers.dezgeg ];
+    mainProgram = "ibniz";
   };
 }
diff --git a/pkgs/tools/graphics/imgur-screenshot/default.nix b/pkgs/tools/graphics/imgur-screenshot/default.nix
index 885638c28b8ce..fe23866bda0bb 100644
--- a/pkgs/tools/graphics/imgur-screenshot/default.nix
+++ b/pkgs/tools/graphics/imgur-screenshot/default.nix
@@ -25,5 +25,6 @@ in stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ lw ];
+    mainProgram = "imgur-screenshot";
   };
 }
diff --git a/pkgs/tools/graphics/imgurbash2/default.nix b/pkgs/tools/graphics/imgurbash2/default.nix
index 6c0e827a84881..e577c8be5a3d2 100644
--- a/pkgs/tools/graphics/imgurbash2/default.nix
+++ b/pkgs/tools/graphics/imgurbash2/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
     homepage = "https://github.com/ram-on/imgurbash2";
+    mainProgram = "imgurbash2";
   };
 }
diff --git a/pkgs/tools/graphics/jhead/default.nix b/pkgs/tools/graphics/jhead/default.nix
index 35000088fea9b..391780a4df350 100644
--- a/pkgs/tools/graphics/jhead/default.nix
+++ b/pkgs/tools/graphics/jhead/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ rycee ];
     platforms = platforms.all;
+    mainProgram = "jhead";
   };
 }
diff --git a/pkgs/tools/graphics/jpegexiforient/default.nix b/pkgs/tools/graphics/jpegexiforient/default.nix
index 09d096e7b687b..bdf2ce12e837b 100644
--- a/pkgs/tools/graphics/jpegexiforient/default.nix
+++ b/pkgs/tools/graphics/jpegexiforient/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.free;
     platforms = platforms.all;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "jpegexiforient";
   };
 }
diff --git a/pkgs/tools/graphics/leela/default.nix b/pkgs/tools/graphics/leela/default.nix
index 6676e47ad492e..7ddf02d163693 100644
--- a/pkgs/tools/graphics/leela/default.nix
+++ b/pkgs/tools/graphics/leela/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.puffnfresh ];
     platforms = lib.platforms.linux;
+    mainProgram = "leela";
   };
 }
diff --git a/pkgs/tools/graphics/logstalgia/default.nix b/pkgs/tools/graphics/logstalgia/default.nix
index 8edde6e3f428b..69084a8b53702 100644
--- a/pkgs/tools/graphics/logstalgia/default.nix
+++ b/pkgs/tools/graphics/logstalgia/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.gnu ++ platforms.linux;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "logstalgia";
   };
 }
diff --git a/pkgs/tools/graphics/lsix/default.nix b/pkgs/tools/graphics/lsix/default.nix
index a9f8aa21bf1d6..b054351bf9ab5 100644
--- a/pkgs/tools/graphics/lsix/default.nix
+++ b/pkgs/tools/graphics/lsix/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenvNoCC, fetchFromGitHub, makeWrapper, imagemagick }:
 
-stdenvNoCC.mkDerivation rec {
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "lsix";
-  version = "1.8";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "hackerb9";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-Qx6/PFm1XBmEI6iI+Ref9jNe6sXIhsVL4VQ1CX+caZE=";
+    repo = "lsix";
+    rev = finalAttrs.version;
+    sha256 = "sha256-xlOlAfZonSo/RERt5WxPqMvppVrY5/Yhh7SgCCsYDQE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
 
   postFixup = ''
     wrapProgram $out/bin/lsix \
-      --prefix PATH : ${lib.makeBinPath [ imagemagick ]}
+      --prefix PATH : ${lib.makeBinPath [ (imagemagick.override { ghostscriptSupport = true;}) ]}
   '';
 
   meta = with lib; {
@@ -31,6 +31,7 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/hackerb9/lsix";
     license = licenses.gpl3Only;
     platforms = platforms.all;
-    maintainers = with maintainers; [ kidonng ];
+    maintainers = with maintainers; [ justinlime kidonng ];
+    mainProgram = "lsix";
   };
-}
+})
diff --git a/pkgs/tools/graphics/mangohud/default.nix b/pkgs/tools/graphics/mangohud/default.nix
index e42ca26cfb08b..5dc243ec2d7ec 100644
--- a/pkgs/tools/graphics/mangohud/default.nix
+++ b/pkgs/tools/graphics/mangohud/default.nix
@@ -94,7 +94,7 @@ stdenv.mkDerivation (finalAttrs: {
   # Unpack subproject sources
   postUnpack = ''(
     cd "$sourceRoot/subprojects"
-    ${lib.optionalString finalAttrs.doCheck ''
+    ${lib.optionalString finalAttrs.finalPackage.doCheck ''
       cp -R --no-preserve=mode,ownership ${cmocka.src} cmocka
     ''}
     cp -R --no-preserve=mode,ownership ${imgui.src} imgui-${imgui.version}
@@ -146,7 +146,7 @@ stdenv.mkDerivation (finalAttrs: {
   mesonFlags = [
     "-Dwith_wayland=enabled"
     "-Duse_system_spdlog=enabled"
-    "-Dtests=${if finalAttrs.doCheck then "enabled" else "disabled"}"
+    "-Dtests=${if finalAttrs.finalPackage.doCheck then "enabled" else "disabled"}"
   ] ++ lib.optionals gamescopeSupport [
     "-Dmangoapp=true"
     "-Dmangoapp_layer=true"
@@ -215,7 +215,7 @@ stdenv.mkDerivation (finalAttrs: {
     addOpenGLRunpath "$out/lib/mangohud/libMangoHud.so"
   '' + lib.optionalString gamescopeSupport ''
     addOpenGLRunpath "$out/bin/mangoapp"
-  '' + lib.optionalString finalAttrs.doCheck ''
+  '' + lib.optionalString finalAttrs.finalPackage.doCheck ''
     # libcmocka.so is only used for tests
     rm "$out/lib/libcmocka.so"
   '';
diff --git a/pkgs/tools/graphics/maskromtool/default.nix b/pkgs/tools/graphics/maskromtool/default.nix
index 3e1dfd583c6ba..b2506bfa9df8c 100644
--- a/pkgs/tools/graphics/maskromtool/default.nix
+++ b/pkgs/tools/graphics/maskromtool/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "maskromtool";
-  version = "2023-09-13";
+  version = "2024-01-28";
 
   src = fetchFromGitHub {
     owner = "travisgoodspeed";
     repo = "maskromtool";
     rev = "v${version}";
-    hash = "sha256-HZOQFFEADjmd3AbZLK3Qr57Jw+DKkRa3cMxW0mU77Us=";
+    hash = "sha256-jYnJgZ4bn5NDSzNyhb46xnmzbF9Y59shw8y/2zmxiVM=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/graphics/mscgen/default.nix b/pkgs/tools/graphics/mscgen/default.nix
index 7eb1d6cce8184..a391a62ccb68b 100644
--- a/pkgs/tools/graphics/mscgen/default.nix
+++ b/pkgs/tools/graphics/mscgen/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     '';
 
     platforms = lib.platforms.unix;
+    mainProgram = "mscgen";
   };
 }
diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix
index f4fc086d86a6c..99927bf0d4f68 100644
--- a/pkgs/tools/graphics/netpbm/default.nix
+++ b/pkgs/tools/graphics/netpbm/default.nix
@@ -20,14 +20,14 @@ stdenv.mkDerivation {
   # Determine version and revision from:
   # https://sourceforge.net/p/netpbm/code/HEAD/log/?path=/advanced
   pname = "netpbm";
-  version = "11.3.5";
+  version = "11.5.1";
 
   outputs = [ "bin" "out" "dev" ];
 
   src = fetchsvn {
     url = "https://svn.code.sf.net/p/netpbm/code/advanced";
-    rev = "4636";
-    sha256 = "x9q7xhBhpWJfS3fbSEZE7ctnv+gL8U2IMy3GLiTEqag=";
+    rev = "4831";
+    sha256 = "wEbvIQxBi/jiBD9Bfc0+zKdgNVp4cV6f1qXX1XF46hI=";
   };
 
   nativeBuildInputs = [
@@ -95,6 +95,10 @@ stdenv.mkDerivation {
     runHook postConfigure
   '';
 
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration";
+  };
+
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/tools/graphics/nifskope/default.nix b/pkgs/tools/graphics/nifskope/default.nix
index f74b720ea9ea3..056b3ad8d0651 100644
--- a/pkgs/tools/graphics/nifskope/default.nix
+++ b/pkgs/tools/graphics/nifskope/default.nix
@@ -63,5 +63,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ eelco ];
     platforms = platforms.linux;
     license = licenses.bsd3;
+    mainProgram = "NifSkope";
   };
 }
diff --git a/pkgs/tools/graphics/nip2/default.nix b/pkgs/tools/graphics/nip2/default.nix
index 08ec885aed143..651baf547a9e7 100644
--- a/pkgs/tools/graphics/nip2/default.nix
+++ b/pkgs/tools/graphics/nip2/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ kovirobi ];
     platforms = platforms.unix;
+    mainProgram = "nip2";
   };
 }
diff --git a/pkgs/tools/graphics/optipng/default.nix b/pkgs/tools/graphics/optipng/default.nix
index 3e9127a9a9aec..bbabcaf6b8000 100644
--- a/pkgs/tools/graphics/optipng/default.nix
+++ b/pkgs/tools/graphics/optipng/default.nix
@@ -6,22 +6,26 @@
 
 stdenv.mkDerivation rec {
   pname = "optipng";
-  version = "0.7.7";
+  version = "0.7.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/optipng/optipng-${version}.tar.gz";
-    sha256 = "0lj4clb851fzpaq446wgj0sfy922zs5l5misbpwv6w7qrqrz4cjg";
+    hash = "sha256-JaO9aEgfIVAsyqD0wT+E3PayAzjkxOjFHyzvvYUTOYw=";
   };
 
   buildInputs = [ libpng ];
 
-  LDFLAGS = lib.optional static "-static";
   # Workaround for crash in cexcept.h. See
   # https://github.com/NixOS/nixpkgs/issues/28106
   preConfigure = ''
     export LD=$CC
   '';
 
+  # OptiPNG does not like --static, --build or --host
+  dontDisableStatic = true;
+  dontAddStaticConfigureFlags = true;
+  configurePlatforms = [ ];
+
   configureFlags = [
     "--with-system-zlib"
     "--with-system-libpng"
@@ -38,5 +42,6 @@ stdenv.mkDerivation rec {
     description = "A PNG optimizer";
     license = licenses.zlib;
     platforms = platforms.unix;
+    mainProgram = "optipng";
   };
 }
diff --git a/pkgs/tools/graphics/oxipng/default.nix b/pkgs/tools/graphics/oxipng/default.nix
index a48f18af51e95..23f9692597a3a 100644
--- a/pkgs/tools/graphics/oxipng/default.nix
+++ b/pkgs/tools/graphics/oxipng/default.nix
@@ -1,22 +1,23 @@
 { lib, stdenv, fetchCrate, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
-  version = "8.0.0";
+  version = "9.0.0";
   pname = "oxipng";
 
   src = fetchCrate {
     inherit version pname;
-    hash = "sha256-stTwsU9XK3lF4q2sDgb9A1KG1NnhCfVxYWRiBvlmiqQ=";
+    hash = "sha256-1OpSweosYiqtLqCcAw1EsAtBAYVc/VH8kRtVSpmTytM=";
   };
 
-  cargoHash = "sha256-XMIsdv2AHMGs0tDEWe3cfplZU9CbqEkHd7L5eS+V7j0=";
+  cargoHash = "sha256-kPdAfqMNOoQPSdv+VLRDUr6AXGPy47UnldXwvpwKp6s=";
 
   doCheck = !stdenv.isAarch64 && !stdenv.isDarwin;
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/shssoichiro/oxipng";
     description = "A multithreaded lossless PNG compression optimizer";
-    license = licenses.mit;
-    maintainers = with maintainers; [ dywedir ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dywedir ];
+    mainProgram = "oxipng";
   };
 }
diff --git a/pkgs/tools/graphics/pdf2svg/default.nix b/pkgs/tools/graphics/pdf2svg/default.nix
index c6d2eab45376d..b68ba12ebfe9b 100644
--- a/pkgs/tools/graphics/pdf2svg/default.nix
+++ b/pkgs/tools/graphics/pdf2svg/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.ianwookim ];
     platforms = platforms.unix;
+    mainProgram = "pdf2svg";
   };
 }
diff --git a/pkgs/tools/graphics/pdftag/default.nix b/pkgs/tools/graphics/pdftag/default.nix
index c10412c976cef..90b8dde05f37c 100644
--- a/pkgs/tools/graphics/pdftag/default.nix
+++ b/pkgs/tools/graphics/pdftag/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ leenaars ];
     platforms = platforms.unix;
+    mainProgram = "pdftag";
   };
 }
diff --git a/pkgs/tools/graphics/pdftoipe/default.nix b/pkgs/tools/graphics/pdftoipe/default.nix
index d7e757e679bf5..e969d90f9e05b 100644
--- a/pkgs/tools/graphics/pdftoipe/default.nix
+++ b/pkgs/tools/graphics/pdftoipe/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/otfried/ipe-tools/releases";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ yrd ];
+    mainProgram = "pdftoipe";
   };
 }
diff --git a/pkgs/tools/graphics/perceptualdiff/default.nix b/pkgs/tools/graphics/perceptualdiff/default.nix
index 919b99327110a..aa88b33aa3819 100644
--- a/pkgs/tools/graphics/perceptualdiff/default.nix
+++ b/pkgs/tools/graphics/perceptualdiff/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ uri-canva ];
     platforms = platforms.unix;
+    mainProgram = "perceptualdiff";
   };
 }
diff --git a/pkgs/tools/graphics/piglit/default.nix b/pkgs/tools/graphics/piglit/default.nix
index 561268b3f4b3a..aa076d1b84e08 100644
--- a/pkgs/tools/graphics/piglit/default.nix
+++ b/pkgs/tools/graphics/piglit/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation rec {
     license = licenses.free; # custom license. See COPYING in the source repo.
     platforms = platforms.mesaPlatforms;
     maintainers = with maintainers; [ Flakebi ];
+    mainProgram = "piglit";
   };
 }
diff --git a/pkgs/tools/graphics/pikchr/default.nix b/pkgs/tools/graphics/pikchr/default.nix
index 5e390ce12cd35..3216790590e1f 100644
--- a/pkgs/tools/graphics/pikchr/default.nix
+++ b/pkgs/tools/graphics/pikchr/default.nix
@@ -9,12 +9,12 @@
 stdenv.mkDerivation {
   pname = "pikchr";
   # To update, use the last check-in in https://pikchr.org/home/timeline?r=trunk
-  version = "unstable-2022-12-07";
+  version = "unstable-2023-08-30";
 
   src = fetchfossil {
     url = "https://pikchr.org/home";
-    rev = "21ca6b843d65c404";
-    sha256 = "sha256-fp06GqpLa/szRCS54KJ+SkT602oWvK3KyDFFjTmpNfI=";
+    rev = "d6f80b1ab30654d5";
+    sha256 = "sha256-GEH1qFiMYmNFJnZzLG5rxpl+F7OSRMoVcdo94+mvrlY=";
   };
 
   # can't open generated html files
@@ -44,7 +44,6 @@ stdenv.mkDerivation {
   dontWrapTclBinaries = true;
 
   doCheck = true;
-  checkTarget = "test";
 
   meta = with lib; {
     description = "A PIC-like markup language for diagrams in technical documentation";
diff --git a/pkgs/tools/graphics/pixel2svg/default.nix b/pkgs/tools/graphics/pixel2svg/default.nix
index 8e5e866249003..1094cad56a331 100644
--- a/pkgs/tools/graphics/pixel2svg/default.nix
+++ b/pkgs/tools/graphics/pixel2svg/default.nix
@@ -16,5 +16,6 @@ python310Packages.buildPythonPackage rec {
     description = "Converts pixel art to SVG - pixel by pixel";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "pixel2svg.py";
   };
 }
diff --git a/pkgs/tools/graphics/pngcheck/default.nix b/pkgs/tools/graphics/pngcheck/default.nix
index a90881dad224a..d6ed7a6960fc3 100644
--- a/pkgs/tools/graphics/pngcheck/default.nix
+++ b/pkgs/tools/graphics/pngcheck/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.free;
     platforms = platforms.unix;
     maintainers = with maintainers; [ starcraft66 ];
+    mainProgram = "pngcheck";
   };
 }
diff --git a/pkgs/tools/graphics/pngcrush/default.nix b/pkgs/tools/graphics/pngcrush/default.nix
index 16c710ceb79f6..8ce9965eae254 100644
--- a/pkgs/tools/graphics/pngcrush/default.nix
+++ b/pkgs/tools/graphics/pngcrush/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     description = "A PNG optimizer";
     license = lib.licenses.free;
     platforms = with lib.platforms; linux ++ darwin;
+    mainProgram = "pngcrush";
   };
 }
diff --git a/pkgs/tools/graphics/pngloss/default.nix b/pkgs/tools/graphics/pngloss/default.nix
index eafd77054e40b..7eca91f42d7dc 100644
--- a/pkgs/tools/graphics/pngloss/default.nix
+++ b/pkgs/tools/graphics/pngloss/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ _2gn ];
+    mainProgram = "pngloss";
   };
 }
diff --git a/pkgs/tools/graphics/pngout/default.nix b/pkgs/tools/graphics/pngout/default.nix
index 2b86f5e5e1365..c80d4a65adc96 100644
--- a/pkgs/tools/graphics/pngout/default.nix
+++ b/pkgs/tools/graphics/pngout/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "http://advsys.net/ken/utils.htm";
     platforms = lib.attrNames platforms;
     maintainers = [ lib.maintainers.sander ];
+    mainProgram = "pngout";
   };
 }
diff --git a/pkgs/tools/graphics/pngquant/add-Cargo.lock.patch b/pkgs/tools/graphics/pngquant/add-Cargo.lock.patch
new file mode 100644
index 0000000000000..9098198724bb5
--- /dev/null
+++ b/pkgs/tools/graphics/pngquant/add-Cargo.lock.patch
@@ -0,0 +1,428 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..319b40b
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,422 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "arrayvec"
++version = "0.7.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
++
++[[package]]
++name = "autocfg"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
++
++[[package]]
++name = "bitflags"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
++
++[[package]]
++name = "bitflags"
++version = "2.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
++
++[[package]]
++name = "bytemuck"
++version = "1.14.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
++
++[[package]]
++name = "cc"
++version = "1.0.83"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
++dependencies = [
++ "jobserver",
++ "libc",
++]
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "cocoa_image"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ea3dcd9c6980e6b9152a61476163a7039bdd73b4508f699b4b3b102d53490839"
++dependencies = [
++ "core-foundation",
++ "core-graphics",
++ "imgref",
++ "objc",
++ "rgb",
++]
++
++[[package]]
++name = "core-foundation"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
++dependencies = [
++ "core-foundation-sys",
++ "libc",
++]
++
++[[package]]
++name = "core-foundation-sys"
++version = "0.8.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
++
++[[package]]
++name = "core-graphics"
++version = "0.23.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
++dependencies = [
++ "bitflags 1.3.2",
++ "core-foundation",
++ "core-graphics-types",
++ "foreign-types",
++ "libc",
++]
++
++[[package]]
++name = "core-graphics-types"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33"
++dependencies = [
++ "bitflags 1.3.2",
++ "core-foundation",
++ "libc",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
++dependencies = [
++ "cfg-if",
++ "crossbeam-epoch",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-epoch"
++version = "0.9.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
++dependencies = [
++ "autocfg",
++ "cfg-if",
++ "crossbeam-utils",
++ "memoffset",
++ "scopeguard",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.8.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "dunce"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
++
++[[package]]
++name = "either"
++version = "1.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
++
++[[package]]
++name = "foreign-types"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
++dependencies = [
++ "foreign-types-macros",
++ "foreign-types-shared",
++]
++
++[[package]]
++name = "foreign-types-macros"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "foreign-types-shared"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
++
++[[package]]
++name = "getopts"
++version = "0.2.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "glob"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
++
++[[package]]
++name = "imagequant"
++version = "4.2.2"
++dependencies = [
++ "arrayvec",
++ "once_cell",
++ "rayon",
++ "rgb",
++ "thread_local",
++]
++
++[[package]]
++name = "imagequant-sys"
++version = "4.0.3"
++dependencies = [
++ "bitflags 2.4.1",
++ "imagequant",
++ "libc",
++]
++
++[[package]]
++name = "imgref"
++version = "1.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90d944e334f00f4449c9640b440a171f816be0152305c12ef90424fc35fd035c"
++
++[[package]]
++name = "jobserver"
++version = "0.1.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "lcms2-sys"
++version = "4.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "137dae56197ab9e66729ff73e2942e26f16f9ddcd14a53295c35f53dcd067b58"
++dependencies = [
++ "cc",
++ "dunce",
++ "libc",
++ "pkg-config",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.150"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
++
++[[package]]
++name = "libpng-sys"
++version = "1.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b531eb8c558e697d1fc6a642b260426aa85ba4d054a8f0db66f5866918332674"
++dependencies = [
++ "cc",
++ "dunce",
++ "libc",
++ "libz-sys",
++ "pkg-config",
++]
++
++[[package]]
++name = "libz-sys"
++version = "1.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
++dependencies = [
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
++[[package]]
++name = "malloc_buf"
++version = "0.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "memoffset"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "objc"
++version = "0.2.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
++dependencies = [
++ "malloc_buf",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
++
++[[package]]
++name = "pngquant"
++version = "3.0.3"
++dependencies = [
++ "cc",
++ "cocoa_image",
++ "dunce",
++ "getopts",
++ "imagequant-sys",
++ "lcms2-sys",
++ "libc",
++ "libpng-sys",
++ "wild",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
++dependencies = [
++ "unicode-ident",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rayon"
++version = "1.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
++dependencies = [
++ "either",
++ "rayon-core",
++]
++
++[[package]]
++name = "rayon-core"
++version = "1.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
++dependencies = [
++ "crossbeam-deque",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "rgb"
++version = "0.8.37"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
++dependencies = [
++ "bytemuck",
++]
++
++[[package]]
++name = "scopeguard"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
++
++[[package]]
++name = "syn"
++version = "2.0.39"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
++dependencies = [
++ "cfg-if",
++ "once_cell",
++]
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
++
++[[package]]
++name = "unicode-width"
++version = "0.1.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
++
++[[package]]
++name = "vcpkg"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
++
++[[package]]
++name = "wild"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "10d01931a94d5a115a53f95292f51d316856b68a035618eb831bbba593a30b67"
++dependencies = [
++ "glob",
++]
diff --git a/pkgs/tools/graphics/pngquant/default.nix b/pkgs/tools/graphics/pngquant/default.nix
index 9a33e4282b2fb..cdfcb4093548c 100644
--- a/pkgs/tools/graphics/pngquant/default.nix
+++ b/pkgs/tools/graphics/pngquant/default.nix
@@ -1,25 +1,33 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, libpng, zlib, lcms2 }:
+{ lib, rustPlatform, fetchFromGitHub, pkg-config, libpng, zlib, lcms2 }:
 
-stdenv.mkDerivation rec {
+rustPlatform.buildRustPackage rec {
   pname = "pngquant";
-  version = "2.17.0";
+  version = "3.0.3";
+
+  outputs = [ "out" "man" ];
 
   src = fetchFromGitHub {
     owner = "kornelski";
     repo = "pngquant";
     rev = version;
-    sha256 = "sha256-D2KNn6AJ4eIHeb/2Oo1Wf0djMCXTtVGrua0D6z7+9V4=";
+    hash = "sha256-u2zEp9Llo+c/+1QGW4V4r40KQn/ATHCTEsrpy7bRf/I=";
     fetchSubmodules = true;
   };
 
-  preConfigure = "patchShebangs .";
-
-  configureFlags = lib.optionals (!stdenv.hostPlatform.isx86) [ "--disable-sse" ];
+  cargoHash = "sha256-mZpg6BRpsvEiMsS6ZJzVYg6wXHLb3Cf72sK1yzTF8y4=";
+  cargoPatches = [
+    # https://github.com/kornelski/pngquant/issues/347
+    ./add-Cargo.lock.patch
+  ];
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libpng zlib lcms2 ];
 
-  doCheck = true;
+  doCheck = false; # Has no Rust-based tests
+
+  postInstall = ''
+    install -Dpm0444 pngquant.1 $man/share/man/man1/pngquant.1
+  '';
 
   meta = with lib; {
     homepage = "https://pngquant.org/";
@@ -28,6 +36,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = with licenses; [ gpl3Plus hpnd bsd2 ];
     mainProgram = "pngquant";
-    maintainers = [ maintainers.srapenne ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/tools/graphics/pngtoico/default.nix b/pkgs/tools/graphics/pngtoico/default.nix
index 7abf94f0a3e14..a537e16d96aec 100644
--- a/pkgs/tools/graphics/pngtoico/default.nix
+++ b/pkgs/tools/graphics/pngtoico/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libpng }:
+{ lib, stdenv, fetchurl, libpng, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "pngtoico";
@@ -9,6 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "1xb4aa57sjvgqfp01br3dm72hf7q0gb2ad144s1ifrs09215fgph";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/pngtoico/files/pngtoico-1.0.1-libpng15.patch";
+      hash = "sha256-MeRV4FL37Wq7aFRnjbxPokcBKmPM+h94cnFJmdvHAt0=";
+    })
+  ];
+
   configurePhase = ''
     sed -i s,/usr/local,$out, Makefile
   '';
@@ -20,5 +27,6 @@ stdenv.mkDerivation rec {
     description = "Small utility to convert a set of PNG images to Microsoft ICO format";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; linux;
+    mainProgram = "pngtoico";
   };
 }
diff --git a/pkgs/tools/graphics/povray/default.nix b/pkgs/tools/graphics/povray/default.nix
index f9a08543fb956..5e432a0d13c4c 100644
--- a/pkgs/tools/graphics/povray/default.nix
+++ b/pkgs/tools/graphics/povray/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     description = "Persistence of Vision Raytracer";
     license = licenses.free;
     platforms = platforms.linux;
+    mainProgram = "povray";
   };
 }
diff --git a/pkgs/tools/graphics/pstoedit/default.nix b/pkgs/tools/graphics/pstoedit/default.nix
index df3d1c6a69386..3bd4c1a86fbcf 100644
--- a/pkgs/tools/graphics/pstoedit/default.nix
+++ b/pkgs/tools/graphics/pstoedit/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.marcweber ];
     platforms = platforms.unix;
+    mainProgram = "pstoedit";
   };
 }
diff --git a/pkgs/tools/graphics/qrcode/default.nix b/pkgs/tools/graphics/qrcode/default.nix
index 3f14044040055..e870f53da82e8 100644
--- a/pkgs/tools/graphics/qrcode/default.nix
+++ b/pkgs/tools/graphics/qrcode/default.nix
@@ -2,17 +2,15 @@
 
 stdenv.mkDerivation {
   pname = "qrcode";
-  version = "unstable-2022-01-10";
+  version = "unstable-2023-12-02";
 
   src = fetchFromGitHub {
     owner = "qsantos";
     repo = "qrcode";
-    rev = "f4475866bbf963ad118db936060f606eedc224d5";
-    hash = "sha256-IbWYSAc0PvSWcxKaPUXDldGDCK/lPZjptepYtLppPmA=";
+    rev = "96fac69ad3e4f616ce75c0e3ef4ed0574cfab315";
+    hash = "sha256-Aesjys6FchB6qcLRWJNGfcEZRlO3stw3+IM8Xe2pF+Q=";
   };
 
-  env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-result";
-
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
@@ -27,5 +25,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = with platforms; unix;
+    mainProgram = "qrcode";
   };
 }
diff --git a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch
index 17490b7ce777b..faeb65d3b8475 100644
--- a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch
+++ b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch
@@ -1,11 +1,11 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a234caa..d94388a 100644
+index 1e7b71a..9db85b1 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
 @@ -107,6 +107,8 @@ if(USE_SYSTEM_NCNN)
- 
+
          find_package(Threads)
- 
+
 +        include("${GLSLANG_TARGET_DIR}/SPIRV-Tools/SPIRV-ToolsTarget.cmake")
 +        include("${GLSLANG_TARGET_DIR}/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake")
          include("${GLSLANG_TARGET_DIR}/OSDependentTargets.cmake")
diff --git a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix
index 05cb130467a7a..6a3b66a3548c7 100644
--- a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix
+++ b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix
@@ -12,21 +12,21 @@
 
 stdenv.mkDerivation rec {
   pname = "Real-ESRGAN-ncnn-vulkan";
-  version = "0.1.3.2";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "xinntao";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-eLAIlOl1sUxijeVPFG+NscZGxDdtrQqVkMuxhegESHk=";
+    sha256 = "sha256-F+NfkAbk8UtAKzsF42ppPF2UGjK/M6iFfBsRRBbCmcI=";
   };
   sourceRoot = "${src.name}/src";
 
   models = fetchzip {
     # Choose the newst release from https://github.com/xinntao/Real-ESRGAN/releases to update
-    url = "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.3.0/realesrgan-ncnn-vulkan-20211212-ubuntu.zip";
+    url = "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-ubuntu.zip";
     stripRoot = false;
-    sha256 = "sha256-17k6fewVEXxx7hi+vPXjHAOq4IIUHLh7WC80CwTeFKI=";
+    sha256 = "sha256-1YiPzv1eGnHrazJFRvl37+C1F2xnoEbN0UQYkxLT+JQ=";
   };
 
   patches = [
@@ -55,10 +55,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration.";
+    description = "NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration";
     homepage = "https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan";
     license = licenses.mit;
     maintainers = with maintainers; [ tilcreator ];
     platforms = platforms.all;
+    mainProgram = "realesrgan-ncnn-vulkan";
   };
 }
diff --git a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch
index 43b8e4503be2c..8cd2d6d1e9829 100644
--- a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch
+++ b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch
@@ -1,14 +1,14 @@
 diff --git a/main.cpp b/main.cpp
-index eb6f6c8..b230bed 100644
+index ebe0e62..ef3a1ed 100644
 --- a/main.cpp
 +++ b/main.cpp
-@@ -110,7 +110,7 @@ static void print_usage()
+@@ -109,7 +109,7 @@ static void print_usage()
      fprintf(stderr, "  -o output-path       output image path (jpg/png/webp) or directory\n");
-     fprintf(stderr, "  -s scale             upscale ratio (can be 2, 4. default=4)\n");
+     fprintf(stderr, "  -s scale             upscale ratio (can be 2, 3, 4. default=4)\n");
      fprintf(stderr, "  -t tile-size         tile size (>=32/0=auto, default=0) can be 0,0,0 for multi-gpu\n");
--    fprintf(stderr, "  -m model-path        folder path to pre-trained models(default=models)\n");
-+    fprintf(stderr, "  -m model-path        folder path to pre-trained models(default=REPLACE_MODELS)\n");
-     fprintf(stderr, "  -n model-name        model name (default=realesrgan-x4plus, can be realesrgan-x4plus | realesrgan-x4plus-anime | realesrnet-x4plus | RealESRGANv2-animevideo-xsx2 | RealESRGANv2-animevideo-xsx4 | RealESRGANv2-anime-xsx2 | RealESRGANv2-anime-xsx4)\n");
+-    fprintf(stderr, "  -m model-path        folder path to the pre-trained models. default=models\n");
++    fprintf(stderr, "  -m model-path        folder path to the pre-trained models. default=REPLACE_MODELS\n");
+     fprintf(stderr, "  -n model-name        model name (default=realesr-animevideov3, can be realesr-animevideov3 | realesrgan-x4plus | realesrgan-x4plus-anime | realesrnet-x4plus)\n");
      fprintf(stderr, "  -g gpu-id            gpu device to use (default=auto) can be 0,1,2 for multi-gpu\n");
      fprintf(stderr, "  -j load:proc:save    thread count for load/proc/save (default=1:2:2) can be 1:2,2,2:2 for multi-gpu\n");
 @@ -438,7 +438,7 @@ int main(int argc, char** argv)
@@ -17,6 +17,6 @@ index eb6f6c8..b230bed 100644
      std::vector<int> tilesize;
 -    path_t model = PATHSTR("models");
 +    path_t model = PATHSTR("REPLACE_MODELS");
-     path_t modelname = PATHSTR("realesrgan-x4plus");
+     path_t modelname = PATHSTR("realesr-animevideov3");
      std::vector<int> gpuid;
      int jobs_load = 1;
diff --git a/pkgs/tools/graphics/resvg/default.nix b/pkgs/tools/graphics/resvg/default.nix
index 539e3faebfdc8..d82b4befd7a01 100644
--- a/pkgs/tools/graphics/resvg/default.nix
+++ b/pkgs/tools/graphics/resvg/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "resvg";
-  version = "0.36.0";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-KxEeC9E1XG5ascIWzSAoNXtdJyPiEsXcQGebmhs/qkE=";
+    hash = "sha256-j3/Vjic1/ESOeISxOWf+vF63a4KfWp/Wy9lVkyc1PPA=";
   };
 
-  cargoHash = "sha256-iiPtf1xEBB80Cs31uUEbxG9YgKItdZCNGS6TTgrj4uM=";
+  cargoHash = "sha256-kZUQ1uHF1xp5hUiY0byjiUuWXsIFq52zducbSnNFl5U=";
 
   cargoBuildFlags = [
     "--package=resvg"
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/RazrFalcon/resvg/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "resvg";
   };
 }
diff --git a/pkgs/tools/graphics/s2png/default.nix b/pkgs/tools/graphics/s2png/default.nix
index d3f8b74512a80..940e9db05419b 100644
--- a/pkgs/tools/graphics/s2png/default.nix
+++ b/pkgs/tools/graphics/s2png/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.dbohdan ];
     platforms = lib.platforms.unix;
+    mainProgram = "s2png";
   };
 }
diff --git a/pkgs/tools/graphics/sanjuuni/default.nix b/pkgs/tools/graphics/sanjuuni/default.nix
index 71807b0db0195..6b96e6ad5a92b 100644
--- a/pkgs/tools/graphics/sanjuuni/default.nix
+++ b/pkgs/tools/graphics/sanjuuni/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.tomodachi94 ];
     license = licenses.gpl2Plus;
     broken = stdenv.isDarwin;
+    mainProgram = "sanjuuni";
   };
 }
diff --git a/pkgs/tools/graphics/scrot/default.nix b/pkgs/tools/graphics/scrot/default.nix
index c2da0da0b13da..7d0b1abae1b6f 100644
--- a/pkgs/tools/graphics/scrot/default.nix
+++ b/pkgs/tools/graphics/scrot/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     description = "A command-line screen capture utility";
     mainProgram = "scrot";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ globin ];
+    maintainers = with maintainers; [ ];
     license = licenses.mitAdvertising;
   };
 }
diff --git a/pkgs/tools/graphics/shot-scraper/default.nix b/pkgs/tools/graphics/shot-scraper/default.nix
index e083014f8a983..a5406d7334c79 100644
--- a/pkgs/tools/graphics/shot-scraper/default.nix
+++ b/pkgs/tools/graphics/shot-scraper/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "shot-scraper";
-  version = "1.1.1";
+  version = "1.3";
   format = "setuptools";
 
   disabled = python3.pkgs.pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YfWiy44rCRXK5xVkmA9X7pAlDhZrk6nS9vbC2eYvjbg=";
+    hash = "sha256-IC6S6LnavwxTcGEDX7lSHF1GZKBH1QcHQy17LGx4Ago=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -35,5 +35,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/simonw/shot-scraper/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ techknowlogick ];
+    mainProgram = "shot-scraper";
   };
 }
diff --git a/pkgs/tools/graphics/shotgun/default.nix b/pkgs/tools/graphics/shotgun/default.nix
index 30d676d4b2efe..d2d3c92982f69 100644
--- a/pkgs/tools/graphics/shotgun/default.nix
+++ b/pkgs/tools/graphics/shotgun/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ figsoda lumi novenary ];
     platforms = platforms.linux;
+    mainProgram = "shotgun";
   };
 }
diff --git a/pkgs/tools/graphics/smartcrop/default.nix b/pkgs/tools/graphics/smartcrop/default.nix
index d08c11fd3ebf2..7660607a9a479 100644
--- a/pkgs/tools/graphics/smartcrop/default.nix
+++ b/pkgs/tools/graphics/smartcrop/default.nix
@@ -23,5 +23,6 @@ buildGoModule {
     homepage = "https://github.com/muesli/smartcrop";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "smartcrop";
   };
 }
diff --git a/pkgs/tools/graphics/sng/default.nix b/pkgs/tools/graphics/sng/default.nix
index 8ebfd967828be..a8db32128a5e4 100644
--- a/pkgs/tools/graphics/sng/default.nix
+++ b/pkgs/tools/graphics/sng/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.zlib;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.unix;
+    mainProgram = "sng";
   };
 }
diff --git a/pkgs/tools/graphics/spirv-cross/default.nix b/pkgs/tools/graphics/spirv-cross/default.nix
index 1bf20910cf54a..73413c1aee4c1 100644
--- a/pkgs/tools/graphics/spirv-cross/default.nix
+++ b/pkgs/tools/graphics/spirv-cross/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "spirv-cross";
-  version = "1.3.261.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Cross";
-    rev = "sdk-${finalAttrs.version}";
-    hash = "sha256-abVqLovvcKBJhGhSCbyD5mc1DSfvh4TWssGxi52ukQ8=";
+    rev = "vulkan-sdk-${finalAttrs.version}";
+    hash = "sha256-Mhr3Yxm5MeLLQFmxWmtXLsq+ZcOE+KMs+3iiTYF8t30=";
   };
 
   nativeBuildInputs = [ cmake python3 ];
@@ -25,5 +25,6 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ Flakebi ];
+    mainProgram = "spirv-cross";
   };
 })
diff --git a/pkgs/tools/graphics/steghide/default.nix b/pkgs/tools/graphics/steghide/default.nix
index 74011917d5fbf..c62761bb2a213 100644
--- a/pkgs/tools/graphics/steghide/default.nix
+++ b/pkgs/tools/graphics/steghide/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
+    mainProgram = "steghide";
   };
 })
diff --git a/pkgs/tools/graphics/stegsolve/default.nix b/pkgs/tools/graphics/stegsolve/default.nix
index 3f147ab0decab..a42b3c304b288 100644
--- a/pkgs/tools/graphics/stegsolve/default.nix
+++ b/pkgs/tools/graphics/stegsolve/default.nix
@@ -55,5 +55,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     };
     maintainers = with maintainers; [ emilytrau ];
     platforms = platforms.all;
+    mainProgram = "stegsolve";
   };
 })
diff --git a/pkgs/tools/graphics/svg2pdf/default.nix b/pkgs/tools/graphics/svg2pdf/default.nix
index 5952bb615ec63..24065574ddcca 100644
--- a/pkgs/tools/graphics/svg2pdf/default.nix
+++ b/pkgs/tools/graphics/svg2pdf/default.nix
@@ -5,16 +5,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svg2pdf";
-  version = "0.8.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "typst";
     repo = "svg2pdf";
     rev = "v${version}";
-    hash = "sha256-iN6/VO6EMP9wMoTn4t0y1Oq9XP9Q3UcRNCWsMzI4Fn8=";
+    hash = "sha256-mWj9zWxqcJ+5VFYSaeNLxClWdOGd34JboZBwT8E75Ew=";
   };
-  cargoHash = "sha256-Xxb8DeTAmw0Pq4mrLVcpEuzq7/SX+AlUSWoA2dcVQJA=";
-  buildFeatures = [ "cli" ];
+
+  cargoHash = "sha256-zP448dFnkoPca/GJA2kT5ht1fVGkWN0XdaKEePJaloQ=";
+
+  cargoBuildFlags = [
+    "-p=svg2pdf-cli"
+  ];
 
   meta = with lib; {
     description = "Convert SVG files to PDFs";
@@ -22,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/typst/svg2pdf/releases/tag/${src.rev}";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ doronbehar figsoda ];
+    mainProgram = "svg2pdf";
   };
 }
diff --git a/pkgs/tools/graphics/svgbob/default.nix b/pkgs/tools/graphics/svgbob/default.nix
index e5974d04e1ae1..b09d8dee1ab0a 100644
--- a/pkgs/tools/graphics/svgbob/default.nix
+++ b/pkgs/tools/graphics/svgbob/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/ivanceras/svgbob/raw/${version}/Changelog.md";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "svgbob";
   };
 }
diff --git a/pkgs/tools/graphics/svgcleaner/default.nix b/pkgs/tools/graphics/svgcleaner/default.nix
index c2938a69b57ac..1ec42817456a0 100644
--- a/pkgs/tools/graphics/svgcleaner/default.nix
+++ b/pkgs/tools/graphics/svgcleaner/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/RazrFalcon/svgcleaner/releases";
     license = licenses.gpl2;
     maintainers = with maintainers; [ yuu ];
+    mainProgram = "svgcleaner";
   };
 }
diff --git a/pkgs/tools/graphics/textplots/default.nix b/pkgs/tools/graphics/textplots/default.nix
index a423ca9f30e27..79787ec7e7d24 100644
--- a/pkgs/tools/graphics/textplots/default.nix
+++ b/pkgs/tools/graphics/textplots/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "textplots";
-  version = "0.8.4";
+  version = "0.8.5";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-DtDxD3b8idYOBcHKkLbOy6NUU0bjWzDySGoW8uOT4xc=";
+    hash = "sha256-83EAe6O8ETsuGJ5MK6kt68OnJL+r+BAYkFzvzlxHyp4=";
   };
 
-  cargoHash = "sha256-tXqonC4qawS6eu9dPt/6/TVYCjTroG+9XikmYQHCLdA=";
+  cargoHash = "sha256-O47b00PGRXTWWxywitS2V15gXahzgjNvFKUvE+VMXaM=";
 
   buildFeatures = [ "tool" ];
 
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/loony-bean/textplots-rs";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "textplots";
   };
 }
diff --git a/pkgs/tools/graphics/texture-synthesis/default.nix b/pkgs/tools/graphics/texture-synthesis/default.nix
index d4f66357fadcf..7122450587a71 100644
--- a/pkgs/tools/graphics/texture-synthesis/default.nix
+++ b/pkgs/tools/graphics/texture-synthesis/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/embarkstudios/texture-synthesis";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "texture-synthesis";
   };
 }
diff --git a/pkgs/tools/graphics/timg/default.nix b/pkgs/tools/graphics/timg/default.nix
index 43a2ae16ed344..5811cbba25e12 100644
--- a/pkgs/tools/graphics/timg/default.nix
+++ b/pkgs/tools/graphics/timg/default.nix
@@ -8,6 +8,9 @@
 , libjpeg
 , libsixel
 , openslide
+, poppler
+, librsvg
+, cairo
 , pkg-config
 , stb
 , qoi
@@ -16,13 +19,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "timg";
-  version = "1.5.2";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "hzeller";
     repo = "timg";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-e2Uy1jvS0+gdhto4Sgz6YlqEqXJ7KGUAA6iuixfvvJg=";
+    hash = "sha256-rTqToWgCPQeRYnMUmhPd/lJPX6L9PstFs1NczyecaB0=";
   };
 
   buildInputs = [
@@ -33,6 +36,9 @@ stdenv.mkDerivation (finalAttrs: {
     libjpeg
     libsixel
     openslide
+    poppler
+    librsvg
+    cairo
     qoi.dev
     stb
   ];
diff --git a/pkgs/tools/graphics/twilight/default.nix b/pkgs/tools/graphics/twilight/default.nix
index 58d4d0df91338..52941f7b96d7f 100644
--- a/pkgs/tools/graphics/twilight/default.nix
+++ b/pkgs/tools/graphics/twilight/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "twilight";
   };
 }
diff --git a/pkgs/tools/graphics/ueberzugpp/default.nix b/pkgs/tools/graphics/ueberzugpp/default.nix
index 60e7e7221a13a..8159831264511 100644
--- a/pkgs/tools/graphics/ueberzugpp/default.nix
+++ b/pkgs/tools/graphics/ueberzugpp/default.nix
@@ -24,8 +24,6 @@
 , wayland-protocols
 , enableX11 ? stdenv.isLinux
 , xorg
-, withoutStdRanges ? stdenv.isDarwin
-, range-v3
 }:
 
 stdenv.mkDerivation rec {
@@ -69,8 +67,6 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals enableX11 [
     xorg.libX11
     xorg.xcbutilimage
-  ] ++ lib.optionals withoutStdRanges [
-    range-v3
   ];
 
   cmakeFlags = lib.optionals (!enableOpencv) [
diff --git a/pkgs/tools/graphics/unpaper/default.nix b/pkgs/tools/graphics/unpaper/default.nix
index b4f298fadce2e..c59353af5a11c 100644
--- a/pkgs/tools/graphics/unpaper/default.nix
+++ b/pkgs/tools/graphics/unpaper/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.flameeyes.eu/projects/unpaper";
+    changelog = "https://github.com/unpaper/unpaper/blob/unpaper-${version}/NEWS";
     description = "Post-processing tool for scanned sheets of paper";
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix
index 1a2e9cb3b1c65..5c59971f955c3 100644
--- a/pkgs/tools/graphics/vips/default.nix
+++ b/pkgs/tools/graphics/vips/default.nix
@@ -18,7 +18,6 @@
 , libexif
 , librsvg
 , poppler
-, libgsf
 , libtiff
 , fftw
 , lcms2
@@ -26,7 +25,6 @@
 , libimagequant
 , imagemagick
 , pango
-, orc
 , matio
 , cfitsio
 , libwebp
@@ -36,19 +34,23 @@
 , openslide
 , libheif
 , cgif
+, libarchive
+, libhwy
+, testers
+, nix-update-script
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "vips";
-  version = "8.14.5";
+  version = "8.15.1";
 
   outputs = [ "bin" "out" "man" "dev" ] ++ lib.optionals (!stdenv.isDarwin) [ "devdoc" ];
 
   src = fetchFromGitHub {
     owner = "libvips";
     repo = "libvips";
-    rev = "v${version}";
-    hash = "sha256-fG3DTP+3pO7sbqR/H9egJHU3cLKPU4Jad6qxcQ9evNw=";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-0zfYpOawH7XnTH9k8BdNDtZEKpYUlCXp7GY+fdXalsE=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     postFetch = ''
@@ -76,7 +78,6 @@ stdenv.mkDerivation rec {
     libexif
     librsvg
     poppler
-    libgsf
     libtiff
     fftw
     lcms2
@@ -84,7 +85,6 @@ stdenv.mkDerivation rec {
     libimagequant
     imagemagick
     pango
-    orc
     matio
     cfitsio
     libwebp
@@ -94,6 +94,8 @@ stdenv.mkDerivation rec {
     openslide
     libheif
     cgif
+    libarchive
+    libhwy
   ] ++ lib.optionals stdenv.isDarwin [ ApplicationServices Foundation ];
 
   # Required by .pc file
@@ -109,12 +111,29 @@ stdenv.mkDerivation rec {
   ++ lib.optional (imagemagick == null) "-Dmagick=disabled"
   ;
 
+  passthru = {
+    tests = {
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+      };
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        command = "vips --version";
+      };
+    };
+    updateScript = nix-update-script {
+      extraArgs = [ "--version-regex" "v([0-9.]+)" ];
+    };
+  };
+
   meta = with lib; {
-    changelog = "https://github.com/libvips/libvips/blob/${src.rev}/ChangeLog";
-    homepage = "https://libvips.github.io/libvips/";
+    changelog = "https://github.com/libvips/libvips/blob/${finalAttrs.src.rev}/ChangeLog";
+    homepage = "https://www.libvips.org/";
     description = "Image processing system for large images";
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ kovirobi ];
+    maintainers = with maintainers; [ kovirobi anthonyroussel ];
+    pkgConfigModules = [ "vips" "vips-cpp" ];
     platforms = platforms.unix;
+    mainProgram = "vips";
   };
-}
+})
diff --git a/pkgs/tools/graphics/viu/default.nix b/pkgs/tools/graphics/viu/default.nix
index ade2dd7331bff..83c97376676ac 100644
--- a/pkgs/tools/graphics/viu/default.nix
+++ b/pkgs/tools/graphics/viu/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/atanunq/viu";
     license = licenses.mit;
     maintainers = with maintainers; [ chuangzhu ];
+    mainProgram = "viu";
   };
 }
diff --git a/pkgs/tools/graphics/vkbasalt-cli/default.nix b/pkgs/tools/graphics/vkbasalt-cli/default.nix
index 0d54f695e9af6..efe704ace2935 100644
--- a/pkgs/tools/graphics/vkbasalt-cli/default.nix
+++ b/pkgs/tools/graphics/vkbasalt-cli/default.nix
@@ -27,5 +27,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://gitlab.com/TheEvilSkeleton/vkbasalt-cli";
     license = with licenses; [ lgpl3Only gpl3Only ];
     maintainers = with maintainers; [ martfont ];
+    mainProgram = "vkbasalt";
   };
 }
diff --git a/pkgs/tools/graphics/vkdisplayinfo/default.nix b/pkgs/tools/graphics/vkdisplayinfo/default.nix
index a48c4d1154fe6..3a88b2e21147e 100644
--- a/pkgs/tools/graphics/vkdisplayinfo/default.nix
+++ b/pkgs/tools/graphics/vkdisplayinfo/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.boost;
     maintainers = [ maintainers.LunNova ];
+    mainProgram = "vkdisplayinfo";
   };
 }
diff --git a/pkgs/tools/graphics/vkmark/default.nix b/pkgs/tools/graphics/vkmark/default.nix
index 2923c786507ee..d9c4f8a2024f3 100644
--- a/pkgs/tools/graphics/vkmark/default.nix
+++ b/pkgs/tools/graphics/vkmark/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ lgpl21Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ muscaln ];
+    mainProgram = "vkmark";
   };
 }
diff --git a/pkgs/tools/graphics/vulkan-caps-viewer/default.nix b/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
index b2a9781f23ec6..f5962d9aa6c41 100644
--- a/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
+++ b/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-caps-viewer";
-  version = "3.32";
+  version = "3.33";
 
   src = fetchFromGitHub {
     owner = "SaschaWillems";
     repo = "VulkanCapsViewer";
     rev = version;
-    hash = "sha256-SPz8AurANjNwtsPHdZ2lCaC3VEcEAKn93st/7DJ0oyU=";
+    hash = "sha256-eKUgsT3KDua+whO0JdtnniKqoRmBt58LELeUz24goPM=";
     # Note: this derivation strictly requires vulkan-header to be the same it was developed against.
     # To help us, they've put it in a git-submodule.
     # The result will work with any vulkan-loader version.
diff --git a/pkgs/tools/graphics/vulkan-cts/default.nix b/pkgs/tools/graphics/vulkan-cts/default.nix
index e448160f2a886..497fd13df341a 100644
--- a/pkgs/tools/graphics/vulkan-cts/default.nix
+++ b/pkgs/tools/graphics/vulkan-cts/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , fetchurl
+, runCommand
 , cmake
 , ffmpeg_4
 , libdrm
@@ -12,6 +13,7 @@
 , libXdmcp
 , libxcb
 , makeWrapper
+, mesa
 , ninja
 , pkg-config
 , python3
@@ -37,17 +39,15 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "vulkan-cts";
-  version = "1.3.6.3";
+  version = "1.3.7.3";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "VK-GL-CTS";
     rev = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-jpKPmUduH3IuUYzBAZJFl/w1FqjGC8sXSTnet8YEZ0I=";
+    hash = "sha256-YtfUnrqWZwPMkLr3ovJz8Xr2ES1piW0yB+rBAaiQKoQ=";
   };
 
-  outputs = [ "out" "lib" ];
-
   prePatch = ''
     mkdir -p external/renderdoc/src
 
@@ -92,7 +92,8 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   postInstall = ''
-    mv $out $lib
+    # Check that nothing was installed so far
+    ! test -e $out
 
     mkdir -p $out/bin $out/archive-dir
     cp -a external/vulkancts/modules/vulkan/deqp-vk external/vulkancts/modules/vulkan/deqp-vksc $out/bin/
@@ -105,6 +106,12 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   passthru.updateScript = ./update.sh;
+  passthru.tests.lavapipe = runCommand "vulkan-cts-tests-lavapipe" { nativeBuildInputs = [ finalAttrs.finalPackage ]; } ''
+    # Expand the wildcard to pick the existing architecture
+    export VK_ICD_FILENAMES=$(echo ${mesa.drivers}/share/vulkan/icd.d/lvp_icd.*.json)
+    deqp-vk -n dEQP-VK.api.smoke.triangle
+    touch $out
+  '';
 
   meta = with lib; {
     description = "Khronos Vulkan Conformance Tests";
diff --git a/pkgs/tools/graphics/vulkan-cts/sources.nix b/pkgs/tools/graphics/vulkan-cts/sources.nix
index 24d2c9de387f9..3e42e9c4ed7a9 100644
--- a/pkgs/tools/graphics/vulkan-cts/sources.nix
+++ b/pkgs/tools/graphics/vulkan-cts/sources.nix
@@ -4,8 +4,8 @@ rec {
   ESExtractor = fetchFromGitHub {
     owner = "Igalia";
     repo = "ESExtractor";
-    rev = "v0.2.5";
-    hash = "sha256-A3lyTTarR1ZJrXcrLDR5D7H1kBwJNyrPPjEklRM9YBY=";
+    rev = "v0.3.3";
+    hash = "sha256-qqhDv08cLQlLaEj0qfghByK+IohdvQdI2ePfUNFEArQ=";
   };
 
   amber = fetchFromGitHub {
@@ -18,8 +18,8 @@ rec {
   glslang = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "glslang";
-    rev = "77417d5c9e0a5d4c79ddd0285d530b45f7259f0d";
-    hash = "sha256-BNgnhTl7/+nC5D7Jl7QME5+qIbm+I0Wh/tf9F4WhW3U=";
+    rev = "c5117b328afc86e16edff6ed6afe0fe7872a7cf3";
+    hash = "sha256-4SoET76fCfutttK00JGCKVQUn0ivGdTw6GhndvxbIDU=";
   };
 
   jsoncpp = fetchFromGitHub {
@@ -29,45 +29,45 @@ rec {
     hash = "sha256-m0tz8w8HbtDitx3Qkn3Rxj/XhASiJVkThdeBxIwv3WI=";
   };
 
+  nvidia-video-samples = fetchFromGitHub {
+    owner = "Igalia";
+    repo = "vk_video_samples";
+    rev = "138bbe048221d315962ddf8413aa6a08cc62a381";
+    hash = "sha256-ftHhb5u3l7WbgEu6hHynBnvNbVOn5TFne915M17jiAQ=";
+  };
+
   spirv-headers = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Headers";
-    rev = "1feaf4414eb2b353764d01d88f8aa4bcc67b60db";
-    hash = "sha256-VOq3r6ZcbDGGxjqC4IoPMGC5n1APUPUAs9xcRzxdyfk=";
+    rev = "b8b9eb8640c8c0107ba580fbcb10f969022ca32c";
+    hash = "sha256-gcKwML5ItccAhX+QtR9G86h0JnaiVQEmOQzQpL005dg=";
   };
 
   spirv-tools = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Tools";
-    rev = "01828dac778d08f4ebafd2e06bd419f6c84e5984";
-    hash = "sha256-i1rDMVpUiNdacDe20DsN67/rzK5V434EzfSv97y+xGU=";
-  };
-
-  video-parser = fetchFromGitHub {
-    owner = "nvpro-samples";
-    repo = "vk_video_samples";
-    rev = "7d68747d3524842afaf050c5e00a10f5b8c07904";
-    hash = "sha256-L5IYDm0bLq+NlNrzozu0VQx8zL1na6AhrkjZKxOWSnU=";
+    rev = "bfc94f63a7adbcf8ae166f5f108ac9f69079efc0";
+    hash = "sha256-gju6hJSIWOswGnRxKeJZsU1jgp3HSZAf7wFRxswY+Js=";
   };
 
   vulkan-docs = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Docs";
-    rev = "9fff8b252a3688c0231fa78709084bbe677d3bf7";
-    hash = "sha256-KpKsKTY5xCSZ5Y92roa0fq/iqc1hVJNS7l87RFcxyRQ=";
+    rev = "b9aad705f0d9e5e6734ac2ad671d5d1de57b05e0";
+    hash = "sha256-bJ2C1+zjvLiYp5A5AHTevFPU9Yka99imqLwH+uApuoY=";
   };
 
 
   prePatch = ''
-    mkdir -p external/ESExtractor external/amber external/glslang external/jsoncpp external/spirv-headers external/spirv-tools external/video-parser external/vulkan-docs
+    mkdir -p external/ESExtractor external/amber external/glslang external/jsoncpp external/nvidia-video-samples external/spirv-headers external/spirv-tools external/vulkan-docs
 
     cp -r ${ESExtractor} external/ESExtractor/src
     cp -r ${amber} external/amber/src
     cp -r ${glslang} external/glslang/src
     cp -r ${jsoncpp} external/jsoncpp/src
+    cp -r ${nvidia-video-samples} external/nvidia-video-samples/src
     cp -r ${spirv-headers} external/spirv-headers/src
     cp -r ${spirv-tools} external/spirv-tools/src
-    cp -r ${video-parser} external/video-parser/src
     cp -r ${vulkan-docs} external/vulkan-docs/src
   '';
 }
diff --git a/pkgs/tools/graphics/vulkan-extension-layer/default.nix b/pkgs/tools/graphics/vulkan-extension-layer/default.nix
index 96edbcad83f60..336c31811aa21 100644
--- a/pkgs/tools/graphics/vulkan-extension-layer/default.nix
+++ b/pkgs/tools/graphics/vulkan-extension-layer/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, writeText, vulkan-headers, jq, libX11, libXrandr, libxcb, wayland }:
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, writeText, vulkan-headers, vulkan-utility-libraries,  jq, libX11, libXrandr, libxcb, wayland }:
 
 stdenv.mkDerivation rec {
   pname = "vulkan-extension-layer";
-  version = "1.3.261";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-ExtensionLayer";
-    rev = "v${version}";
-    hash = "sha256-MeW7mmbjgqEvXEnAYzTNu4omC4fqq1fplIVjDpV2LcA=";
+    rev = "vulkan-sdk-${version}";
+    hash = "sha256-zQycF3yKoa54KBUIuG1BqFGB00yc6oZQzdcDel2rXN0=";
   };
 
   nativeBuildInputs = [ cmake pkg-config jq ];
 
-  buildInputs = [ vulkan-headers libX11 libXrandr libxcb wayland ];
+  buildInputs = [ vulkan-headers vulkan-utility-libraries libX11 libXrandr libxcb wayland ];
 
   # Help vulkan-loader find the validation layers
   setupHook = writeText "setup-hook" ''
diff --git a/pkgs/tools/graphics/vulkan-helper/default.nix b/pkgs/tools/graphics/vulkan-helper/default.nix
index 8db735c662e84..93e6d7be0f046 100644
--- a/pkgs/tools/graphics/vulkan-helper/default.nix
+++ b/pkgs/tools/graphics/vulkan-helper/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vulkan-helper";
-  version = "unstable-2023-09-16";
+  version = "unstable-2023-12-22";
 
   src = fetchFromGitHub {
     owner = "imLinguin";
     repo = "vulkan-helper-rs";
-    rev = "d65b1a17a11ec20670c77d8da02e68d388ed0888";
-    hash = "sha256-usbYNalA0r09LXR6eV2e/T1eMNV4LnhzYLzPJQ6XNKQ=";
+    rev = "04b290c92febcfd6293fcf4730ce3bba55cd9ce0";
+    hash = "sha256-2pLHnTn0gJKz4gfrR6h85LHOaZPrhIGYzQeci4Dzz2E=";
   };
 
-  cargoSha256 = "sha256-fgB0vlbOhzGV1Sj180GCuTGZlVpAUlBUMAfsrG2FiuA=";
+  cargoSha256 = "sha256-OXMz1qu4/LDeQbwe7shhn2Eee15xKmBpWSsP0IbjoGM=";
 
   nativeBuildInputs = [
     addOpenGLRunpath
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ aidalgol ];
     platforms = platforms.linux;
+    mainProgram = "vulkan-helper";
   };
 }
diff --git a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
index 072876e46dec2..778b136558869 100644
--- a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
@@ -16,26 +16,26 @@
 , which
 , xcbutilkeysyms
 , xcbutilwm
+, valijson
 , vulkan-headers
 , vulkan-loader
-, symlinkJoin
-, vulkan-validation-layers
+, vulkan-utility-libraries
 , writeText
+, libsForQt5
 }:
 
 stdenv.mkDerivation rec {
   pname = "vulkan-tools-lunarg";
-  version = "1.3.261";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
    owner = "LunarG";
    repo = "VulkanTools";
-   rev = "v${version}";
-   hash = "sha256-Kem3nWVaMeDEsidKYMsWr9Bu0yBgjjennDB0sKBDogA=";
-   fetchSubmodules = true;
+   rev = "vulkan-sdk-${version}";
+   hash = "sha256-MEQX90HL90jyVBWWcvOF7QLzm1+fNE5TW3MWdK4w53M=";
  };
 
-  nativeBuildInputs = [ cmake python3 jq which pkg-config ];
+  nativeBuildInputs = [ cmake python3 jq which pkg-config libsForQt5.qt5.wrapQtAppsHook ];
 
   buildInputs = [
     expat
@@ -45,34 +45,23 @@ stdenv.mkDerivation rec {
     libXrandr
     libffi
     libxcb
+    valijson
+    vulkan-headers
+    vulkan-loader
+    vulkan-utility-libraries
     wayland
     xcbutilkeysyms
     xcbutilwm
+    libsForQt5.qt5.qtbase
+    libsForQt5.qt5.qtwayland
   ];
 
   cmakeFlags = [
     "-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}"
-    "-DVULKAN_LOADER_INSTALL_DIR=${vulkan-loader}"
-    "-DVULKAN_VALIDATIONLAYERS_INSTALL_DIR=${
-      symlinkJoin {
-        name = "vulkan-validation-layers-merged";
-        paths = [ vulkan-validation-layers.headers vulkan-validation-layers ];
-      }
-    }"
-    # Hide dev warnings that are useless for packaging
-    "-Wno-dev"
   ];
 
   preConfigure = ''
-    # We need to run this update script which generates some source files,
-    # Remove the line in it which calls 'git submodule update' though.
-    # Also patch the scripts in ./scripts
-    update=update_external_sources.sh
-    patchShebangs $update
     patchShebangs scripts/*
-    sed -i '/^git /d' $update
-    ./$update
-
     substituteInPlace via/CMakeLists.txt --replace "jsoncpp_static" "jsoncpp"
   '';
 
@@ -85,13 +74,6 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  patches = [
-    ./gtest.patch
-  ];
-
-  # Same as vulkan-validation-layers
-  dontPatchELF = true;
-
   # Help vulkan-loader find the validation layers
   setupHook = writeText "setup-hook" ''
     export XDG_CONFIG_DIRS=@out@/etc''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}}
diff --git a/pkgs/tools/graphics/vulkan-tools-lunarg/gtest.patch b/pkgs/tools/graphics/vulkan-tools-lunarg/gtest.patch
deleted file mode 100644
index cf062a8591ff2..0000000000000
--- a/pkgs/tools/graphics/vulkan-tools-lunarg/gtest.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/external/googletest/googlemock/CMakeLists.txt b/external/googletest/googlemock/CMakeLists.txt
-index e7df8ec53d..869bfcb716 100644
---- a/external/googletest/googlemock/CMakeLists.txt
-+++ b/external/googletest/googlemock/CMakeLists.txt
-@@ -111,10 +111,10 @@ endif()
- if (DEFINED CMAKE_VERSION AND NOT "${CMAKE_VERSION}" VERSION_LESS "2.8.11")
-   target_include_directories(gmock SYSTEM INTERFACE
-     "$<BUILD_INTERFACE:${gmock_build_include_dirs}>"
--    "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
-+    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_FULL_INCLUDEDIR}>")
-   target_include_directories(gmock_main SYSTEM INTERFACE
-     "$<BUILD_INTERFACE:${gmock_build_include_dirs}>"
--    "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
-+    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_FULL_INCLUDEDIR}>")
- endif()
- 
- ########################################################################
-diff --git a/external/googletest/googletest/CMakeLists.txt b/external/googletest/googletest/CMakeLists.txt
-index abdd98b79a..7ae174d566 100644
---- a/external/googletest/googletest/CMakeLists.txt
-+++ b/external/googletest/googletest/CMakeLists.txt
-@@ -138,10 +138,10 @@ set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
- if (DEFINED CMAKE_VERSION AND NOT "${CMAKE_VERSION}" VERSION_LESS "2.8.11")
-   target_include_directories(gtest SYSTEM INTERFACE
-     "$<BUILD_INTERFACE:${gtest_build_include_dirs}>"
--    "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
-+    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_FULL_INCLUDEDIR}>")
-   target_include_directories(gtest_main SYSTEM INTERFACE
-     "$<BUILD_INTERFACE:${gtest_build_include_dirs}>"
--    "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
-+    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_FULL_INCLUDEDIR}>")
- endif()
- target_link_libraries(gtest_main PUBLIC gtest)
-
diff --git a/pkgs/tools/graphics/vulkan-tools/default.nix b/pkgs/tools/graphics/vulkan-tools/default.nix
index 9327bd9c9d6ed..e084f7e2285b7 100644
--- a/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, buildPackages
 , cmake
 , pkg-config
 , python3
@@ -13,6 +14,7 @@
 , libXrandr
 , vulkan-headers
 , vulkan-loader
+, vulkan-volk
 , wayland
 , wayland-protocols
 , moltenvk
@@ -22,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-tools";
-  version = "1.3.261";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Tools";
-    rev = "v${version}";
-    hash = "sha256-C5FVkI9F/dgIS8qp7VaOn9J2zoNLb1PnmgAemsVO6zM=";
+    rev = "vulkan-sdk-${version}";
+    hash = "sha256-0sAwO8gXzpMst+7l7LS1oiDLo9E6otDktCti+v8jwDw=";
   };
 
   nativeBuildInputs = [
@@ -41,6 +43,7 @@ stdenv.mkDerivation rec {
     glslang
     vulkan-headers
     vulkan-loader
+    vulkan-volk
   ] ++ lib.optionals (!stdenv.isDarwin) [
     libffi
     libX11
@@ -59,39 +62,23 @@ stdenv.mkDerivation rec {
 
   libraryPath = lib.strings.makeLibraryPath [ vulkan-loader ];
 
-  patches = [
-    # Vulkan-Tools expects to find the MoltenVK ICD and `libMoltenVK.dylib` in its source repo.
-    # Patch it to use the already-built binaries and ICD in nixpkgs.
-    ./use-nix-moltenvk.patch
-  ];
-
-  # vkcube.app and vkcubepp.app require `ibtool`, but the version in `xib2nib` is not capable of
-  # building these apps. Build them using `ibtool` from Xcode, but don’t allow any other binaries
-  # into the sandbox. Note that the CLT are not supported because `ibtool` requires Xcode.
-  sandboxProfile = lib.optionalString stdenv.isDarwin ''
-    (allow process-exec
-      (literal "/usr/bin/ibtool")
-      (regex "/Xcode.app/Contents/Developer/usr/bin/ibtool")
-      (regex "/Xcode.app/Contents/Developer/usr/bin/xcodebuild"))
-    (allow file-read*)
-    (deny file-read* (subpath "/usr/local") (with no-log))
-    (allow file-write* (subpath "/private/var/folders"))
-  '';
-
   dontPatchELF = true;
 
+  env.PKG_CONFIG_WAYLAND_SCANNER_WAYLAND_SCANNER="${buildPackages.wayland-scanner}/bin/wayland-scanner";
+
   cmakeFlags = [
     # Don't build the mock ICD as it may get used instead of other drivers, if installed
     "-DBUILD_ICD=OFF"
     # vulkaninfo loads libvulkan using dlopen, so we have to add it manually to RPATH
     "-DCMAKE_INSTALL_RPATH=${libraryPath}"
-    "-DPKG_CONFIG_EXECUTABLE=${pkg-config}/bin/pkg-config"
+    "-DPKG_CONFIG_EXECUTABLE=${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config"
     "-DGLSLANG_INSTALL_DIR=${glslang}"
     # Hide dev warnings that are useless for packaging
     "-Wno-dev"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DMOLTENVK_REPO_ROOT=${moltenvk}/share/vulkan/icd.d"
-    "-DIBTOOL=/usr/bin/ibtool"
+    # Don’t build the cube demo because it requires `ibtool`, which is not available in nixpkgs.
+    "-DBUILD_CUBE=OFF"
   ];
 
   meta = with lib; {
@@ -102,7 +89,6 @@ stdenv.mkDerivation rec {
       use of the Vulkan API.
     '';
     homepage    = "https://github.com/KhronosGroup/Vulkan-Tools";
-    hydraPlatforms = [ "x86_64-linux" "i686-linux" ];
     platforms   = platforms.unix;
     license     = licenses.asl20;
     maintainers = [ maintainers.ralith ];
diff --git a/pkgs/tools/graphics/vulkan-tools/use-nix-moltenvk.patch b/pkgs/tools/graphics/vulkan-tools/use-nix-moltenvk.patch
deleted file mode 100644
index 5d09bff9c958c..0000000000000
--- a/pkgs/tools/graphics/vulkan-tools/use-nix-moltenvk.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
-index a2f026e7..327f5dba 100644
---- a/cube/CMakeLists.txt
-+++ b/cube/CMakeLists.txt
-@@ -257,14 +257,7 @@ else()
- endif()
- 
- if(APPLE)
--    # Keep RPATH so fixup_bundle can use it to find libraries
--    set_target_properties(vkcube PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
--    install(TARGETS vkcube BUNDLE DESTINATION "cube")
--    # Fix up the library references to be self-contained within the bundle.
--    install(CODE "
--        include(BundleUtilities)
--        fixup_bundle(\${CMAKE_INSTALL_PREFIX}/cube/vkcube.app \"\" \"${Vulkan_LIBRARY_DIR}\")
--        ")
-+    install(TARGETS vkcube BUNDLE DESTINATION "Applications")
- else()
-     install(TARGETS vkcube RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- endif()
-@@ -302,14 +295,7 @@ else()
- endif()
- 
- if(APPLE)
--    # Keep RPATH so fixup_bundle can use it to find libraries
--    set_target_properties(vkcubepp PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
--    install(TARGETS vkcubepp BUNDLE DESTINATION "cube")
--    # Fix up the library references to be self-contained within the bundle.
--    install(CODE "
--        include(BundleUtilities)
--        fixup_bundle(\${CMAKE_INSTALL_PREFIX}/cube/vkcubepp.app \"\" \"${Vulkan_LIBRARY_DIR}\")
--        ")
-+    install(TARGETS vkcubepp BUNDLE DESTINATION "Applications")
- else()
-     install(TARGETS vkcubepp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- endif()
-diff --git a/cube/macOS/cube/cube.cmake b/cube/macOS/cube/cube.cmake
-index 9b823f95..0c43a2c9 100644
---- a/cube/macOS/cube/cube.cmake
-+++ b/cube/macOS/cube/cube.cmake
-@@ -72,12 +72,14 @@ set_source_files_properties("${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json"
- # Copy the MoltenVK lib into the bundle.
- if(${CMAKE_GENERATOR} MATCHES "^Xcode.*")
-     add_custom_command(TARGET vkcube POST_BUILD
--                       COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
-+                       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcube.app/Contents/Frameworks
-+                       COMMAND ${CMAKE_COMMAND} -E create_symlink "${MOLTENVK_DIR}/lib/libMoltenVK.dylib"
-                                ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcube.app/Contents/Frameworks/libMoltenVK.dylib
-                        DEPENDS vulkan)
- else()
-     add_custom_command(TARGET vkcube POST_BUILD
--                       COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
-+                       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/vkcube.app/Contents/Frameworks
-+                       COMMAND ${CMAKE_COMMAND} -E create_symlink "${MOLTENVK_DIR}/lib/libMoltenVK.dylib"
-                                ${CMAKE_CURRENT_BINARY_DIR}/vkcube.app/Contents/Frameworks/libMoltenVK.dylib
-                        DEPENDS vulkan)
- endif()
-diff --git a/cube/macOS/cubepp/cubepp.cmake b/cube/macOS/cubepp/cubepp.cmake
-index eae4de3c..e528ae26 100644
---- a/cube/macOS/cubepp/cubepp.cmake
-+++ b/cube/macOS/cubepp/cubepp.cmake
-@@ -74,12 +74,14 @@ set_source_files_properties("${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json"
- # Copy the MoltenVK lib into the bundle.
- if(${CMAKE_GENERATOR} MATCHES "^Xcode.*")
-     add_custom_command(TARGET vkcubepp POST_BUILD
--                       COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
-+                       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcubepp.app/Contents/Frameworks
-+                       COMMAND ${CMAKE_COMMAND} -E create_symlink "${MOLTENVK_DIR}/lib/libMoltenVK.dylib"
-                                ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcubepp.app/Contents/Frameworks/libMoltenVK.dylib
-                        DEPENDS vulkan)
- else()
-     add_custom_command(TARGET vkcubepp POST_BUILD
--                       COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
-+                       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/vkcubepp.app/Contents/Frameworks
-+                       COMMAND ${CMAKE_COMMAND} -E create_symlink "${MOLTENVK_DIR}/lib/libMoltenVK.dylib"
-                                ${CMAKE_CURRENT_BINARY_DIR}/vkcubepp.app/Contents/Frameworks/libMoltenVK.dylib
-                        DEPENDS vulkan)
- endif()
-diff --git a/mac_common.cmake b/mac_common.cmake
-index bad3c414..b498906d 100644
---- a/mac_common.cmake
-+++ b/mac_common.cmake
-@@ -23,9 +23,8 @@ set(MOLTENVK_DIR ${MOLTENVK_REPO_ROOT})
- # MoltenVK JSON File
- 
- execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/staging-json)
--execute_process(COMMAND sed -e "/\"library_path\":/s$:[[:space:]]*\"[[:space:]]*[\\.\\/]*$: \"..\\/..\\/..\\/Frameworks\\/$"
--                        ${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json
--                OUTPUT_FILE ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json)
-+execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${MOLTENVK_DIR}/MoltenVK_icd.json
-+                        ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json)
- 
- # ~~~
- # Modify the ICD JSON file to adjust the library path.
-@@ -36,10 +35,9 @@ execute_process(COMMAND sed -e "/\"library_path\":/s$:[[:space:]]*\"[[:space:]]*
- # ~~~
- add_custom_target(MoltenVK_icd-staging-json ALL
-                   COMMAND mkdir -p ${CMAKE_BINARY_DIR}/staging-json
--                  COMMAND sed -e "/\"library_path\":/s$:[[:space:]]*\"[[:space:]]*[\\.\\/]*$: \"..\\/..\\/..\\/Frameworks\\/$"
--                          ${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json > ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json
--                  VERBATIM
--                  DEPENDS "${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json")
-+                  COMMAND ${CMAKE_COMMAND} -E create_symlink ${MOLTENVK_DIR}/MoltenVK_icd.json
-+                          ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json
-+                  DEPENDS "${MOLTENVK_DIR}/MoltenVK_icd.json")
- set_source_files_properties(${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json PROPERTIES GENERATED TRUE)
- 
- find_library(COCOA NAMES Cocoa)
-diff --git a/vulkaninfo/CMakeLists.txt b/vulkaninfo/CMakeLists.txt
-index d23dcf89..32aa0ebb 100644
---- a/vulkaninfo/CMakeLists.txt
-+++ b/vulkaninfo/CMakeLists.txt
-@@ -136,9 +136,5 @@ elseif(APPLE)
-     add_definitions(-DVK_USE_PLATFORM_MACOS_MVK -DVK_USE_PLATFORM_METAL_EXT)
- endif()
- 
--if(APPLE)
--    install(TARGETS vulkaninfo RUNTIME DESTINATION "vulkaninfo")
--else()
--    install(TARGETS vulkaninfo RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
--endif()
-+install(TARGETS vulkaninfo RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
diff --git a/pkgs/tools/graphics/waifu2x-converter-cpp/default.nix b/pkgs/tools/graphics/waifu2x-converter-cpp/default.nix
index 56fe4e122e531..dd2c15c8fda45 100644
--- a/pkgs/tools/graphics/waifu2x-converter-cpp/default.nix
+++ b/pkgs/tools/graphics/waifu2x-converter-cpp/default.nix
@@ -1,4 +1,4 @@
-{ cmake, fetchFromGitHub, makeWrapper, opencv3, lib, stdenv, ocl-icd, opencl-headers, OpenCL
+{ cmake, fetchFromGitHub, makeWrapper, opencv4, lib, stdenv, ocl-icd, opencl-headers, OpenCL
 , config
 , cudaSupport ? config.cudaSupport, cudatoolkit ? null
 }:
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    opencv3
+    opencv4
   ] ++ lib.optional cudaSupport cudatoolkit
     ++ lib.optional stdenv.isDarwin OpenCL
     ++ lib.optionals stdenv.isLinux [ ocl-icd opencl-headers ];
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.xzfc ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
+    mainProgram = "waifu2x-converter-cpp";
   };
 }
diff --git a/pkgs/tools/graphics/wdisplays/default.nix b/pkgs/tools/graphics/wdisplays/default.nix
index b05aa13ea6010..9c7093b58f85e 100644
--- a/pkgs/tools/graphics/wdisplays/default.nix
+++ b/pkgs/tools/graphics/wdisplays/default.nix
@@ -1,24 +1,20 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, gtk3, libepoxy, wayland, wrapGAppsHook }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "wdisplays";
-  version = "unstable-2021-04-03";
+  version = "1.1.1";
 
   nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
 
   buildInputs = [ gtk3 libepoxy wayland ];
 
   src = fetchFromGitHub {
-    owner = "luispabon";
+    owner = "artizirk";
     repo = "wdisplays";
-    rev = "7f2eac0d2aa81b5f495da7950fd5a94683f7868e";
-    sha256 = "sha256-cOF3+T34zPro58maWUouGG+vlLm2C5NfcH7PZhSvApE=";
+    rev = finalAttrs.version;
+    sha256 = "sha256-dtvP930ChiDRT60xq6xBDU6k+zHnkrAkxkKz2FxlzRs=";
   };
 
-  patchPhase = ''
-    substituteInPlace ./resources/wdisplays.desktop.in --replace "@app_id@" "wdisplays"
-  '';
-
   meta = with lib; {
     description = "A graphical application for configuring displays in Wayland compositors";
     homepage = "https://github.com/luispabon/wdisplays";
@@ -27,4 +23,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     mainProgram = "wdisplays";
   };
-}
+})
diff --git a/pkgs/tools/graphics/wgpu-utils/default.nix b/pkgs/tools/graphics/wgpu-utils/default.nix
index 1151d8f04f375..236cf3f7a7fa3 100644
--- a/pkgs/tools/graphics/wgpu-utils/default.nix
+++ b/pkgs/tools/graphics/wgpu-utils/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "Safe and portable GPU abstraction in Rust, implementing WebGPU API.";
+    description = "Safe and portable GPU abstraction in Rust, implementing WebGPU API";
     homepage = "https://wgpu.rs/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ erictapen ];
diff --git a/pkgs/tools/graphics/xcolor/default.nix b/pkgs/tools/graphics/xcolor/default.nix
index 1ef2c807bde7d..50aa912522d99 100644
--- a/pkgs/tools/graphics/xcolor/default.nix
+++ b/pkgs/tools/graphics/xcolor/default.nix
@@ -41,7 +41,8 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Lightweight color picker for X11";
     homepage = "https://github.com/Soft/xcolor";
-    maintainers = with lib.maintainers; [ fortuneteller2k ];
+    maintainers = with lib.maintainers; [ moni ];
     license = licenses.mit;
+    mainProgram = "xcolor";
   };
 }
diff --git a/pkgs/tools/graphics/xcur2png/default.nix b/pkgs/tools/graphics/xcur2png/default.nix
index e8d761c6d8420..5d5396aea273f 100644
--- a/pkgs/tools/graphics/xcur2png/default.nix
+++ b/pkgs/tools/graphics/xcur2png/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "xcur2png";
   };
 }
diff --git a/pkgs/tools/graphics/yaxg/default.nix b/pkgs/tools/graphics/yaxg/default.nix
index 9d83ae71d3335..dd428ae0c427f 100644
--- a/pkgs/tools/graphics/yaxg/default.nix
+++ b/pkgs/tools/graphics/yaxg/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ neonfuz ];
+    mainProgram = "yaxg";
   };
 }
diff --git a/pkgs/tools/graphics/zbar/default.nix b/pkgs/tools/graphics/zbar/default.nix
index f9b84d2656a34..fe398bf533140 100644
--- a/pkgs/tools/graphics/zbar/default.nix
+++ b/pkgs/tools/graphics/zbar/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , imagemagickBig
 , pkg-config
 , withXorg ? true
@@ -42,6 +43,19 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-VhVrngAX7pXZp+szqv95R6RGAJojp3svdbaRKigGb0w=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2023-40889.patch";
+      url = "https://salsa.debian.org/debian/zbar/-/raw/debian/0.23.92-9/debian/patches/0003-CVE-2023-40889-qrdec.c-Fix-array-out-of-bounds-acces.patch";
+      hash = "sha256-z0IADJwUt9PBoox5xJJN//5vrcRbIrWB9H7wtxNVUZU=";
+    })
+    (fetchpatch {
+      name = "CVE-2023-40890.patch";
+      url = "https://salsa.debian.org/debian/zbar/-/raw/debian/0.23.92-9/debian/patches/0004-Add-bounds-check-for-CVE-2023-40890.patch";
+      hash = "sha256-YgiptwXpRpz0qIcXBpARfIzSB8KYmksZR58o5yFPahs=";
+    })
+  ];
+
   nativeBuildInputs = [
     pkg-config
     xmlto
diff --git a/pkgs/tools/inputmethods/emote/default.nix b/pkgs/tools/inputmethods/emote/default.nix
index 15e9a49685354..8e3d7227d1bd9 100644
--- a/pkgs/tools/inputmethods/emote/default.nix
+++ b/pkgs/tools/inputmethods/emote/default.nix
@@ -29,9 +29,9 @@ python3Packages.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3Packages; [
-    dbus-python
+    dbus-python.out # don't propagate dev output
     manimpango
-    pygobject3 # not listed in setup.py
+    pygobject3.out # not listed in setup.py, don't propagate dev output
     setproctitle
   ];
 
diff --git a/pkgs/tools/inputmethods/evscript/Cargo.lock b/pkgs/tools/inputmethods/evscript/Cargo.lock
deleted file mode 100644
index 437ec68557af6..0000000000000
--- a/pkgs/tools/inputmethods/evscript/Cargo.lock
+++ /dev/null
@@ -1,596 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "advancedresearch-tree_mem_sort"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aab032c118518f4bd1bd8f9efd22a60a7d153a7eafd2ed9709fc224ce4186094"
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "bitflags"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1370e9fc2a6ae53aea8b7a5110edbd08836ed87c88736dfabccade1c2b44bff4"
-
-[[package]]
-name = "bitflags"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags 1.3.2",
- "strsim",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "dyon"
-version = "0.47.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3d15155013e10adf698bcad154b122132abede1195ad2a33cc83ecbf6fd96e7"
-dependencies = [
- "advancedresearch-tree_mem_sort",
- "lazy_static",
- "piston_meta",
- "range",
- "read_color",
- "read_token",
- "vecmath",
-]
-
-[[package]]
-name = "evdev"
-version = "0.10.1"
-source = "git+https://github.com/valpackett/evdev?branch=uinput#4b905750a2103787e3e84241c60aaa79deb7c20c"
-dependencies = [
- "bitflags 0.8.2",
- "fixedbitset",
- "libc",
- "nix 0.9.0",
- "num 0.1.42",
- "strum",
- "strum_macros",
-]
-
-[[package]]
-name = "evscript"
-version = "0.0.0"
-dependencies = [
- "clap",
- "dyon",
- "evdev",
- "nix 0.25.0",
- "num 0.4.0",
- "rusty-sandbox",
- "serde",
- "serde_derive",
- "toml",
-]
-
-[[package]]
-name = "fixedbitset"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33"
-
-[[package]]
-name = "fuchsia-cprng"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.137"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "nix"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32"
-dependencies = [
- "bitflags 0.9.1",
- "cfg-if 0.1.10",
- "libc",
- "void",
-]
-
-[[package]]
-name = "nix"
-version = "0.25.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
- "pin-utils",
-]
-
-[[package]]
-name = "num"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
-dependencies = [
- "num-bigint 0.1.44",
- "num-complex 0.1.43",
- "num-integer",
- "num-iter",
- "num-rational 0.1.42",
- "num-traits",
-]
-
-[[package]]
-name = "num"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
-dependencies = [
- "num-bigint 0.4.3",
- "num-complex 0.4.2",
- "num-integer",
- "num-iter",
- "num-rational 0.4.1",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1"
-dependencies = [
- "num-integer",
- "num-traits",
- "rand",
- "rustc-serialize",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-complex"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656"
-dependencies = [
- "num-traits",
- "rustc-serialize",
-]
-
-[[package]]
-name = "num-complex"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
-dependencies = [
- "num-bigint 0.1.44",
- "num-integer",
- "num-traits",
- "rustc-serialize",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-bigint 0.4.3",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "piston-float"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad78bf43dcf80e8f950c92b84f938a0fc7590b7f6866fbcbeca781609c115590"
-
-[[package]]
-name = "piston_meta"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "030240ae8cdfabe396630db10cfa80f6965aa45d4c505dc0890b98ba808e149f"
-dependencies = [
- "lazy_static",
- "range",
- "read_token",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.47"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-
-[[package]]
-name = "quote"
-version = "1.0.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
-dependencies = [
- "fuchsia-cprng",
- "libc",
- "rand_core 0.3.1",
- "rdrand",
- "winapi",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-dependencies = [
- "rand_core 0.4.2",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-
-[[package]]
-name = "range"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b851d7223b2adbc5d30dea12eeaf45dd58c81559656e056d31ff7d5407ba6f1"
-
-[[package]]
-name = "rdrand"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "read_color"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f4c8858baa4ad3c8bcc156ae91a0ffe22b76a3975c40c49b4f04c15c6bce0da"
-
-[[package]]
-name = "read_token"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "051fef16f3ac50a9eacfd64de43e909016df6b722d70b2a6e73eb83c1e891638"
-dependencies = [
- "range",
-]
-
-[[package]]
-name = "rustc-serialize"
-version = "0.3.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-
-[[package]]
-name = "rusty-sandbox"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e0be1328117ff55cebdb605c82e7356b8d9d19f8bcdb2a615805298973c73e4"
-dependencies = [
- "libc",
- "unix_socket",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.147"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965"
-
-[[package]]
-name = "serde_derive"
-version = "1.0.147"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852"
-dependencies = [
- "proc-macro2",
- "quote 1.0.21",
- "syn 1.0.103",
-]
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "strum"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ca6e4730f517e041e547ffe23d29daab8de6b73af4b6ae2a002108169f5e7da"
-
-[[package]]
-name = "strum_macros"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3384590878eb0cab3b128e844412e2d010821e7e091211b9d87324173ada7db8"
-dependencies = [
- "quote 0.3.15",
- "syn 0.11.11",
-]
-
-[[package]]
-name = "syn"
-version = "0.11.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
-dependencies = [
- "quote 0.3.15",
- "synom",
- "unicode-xid",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.103"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
-dependencies = [
- "proc-macro2",
- "quote 1.0.21",
- "unicode-ident",
-]
-
-[[package]]
-name = "synom"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "unicode-xid"
-version = "0.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-
-[[package]]
-name = "unix_socket"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564"
-dependencies = [
- "cfg-if 0.1.10",
- "libc",
-]
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "vecmath"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "956ae1e0d85bca567dee1dcf87fb1ca2e792792f66f87dced8381f99cd91156a"
-dependencies = [
- "piston-float",
-]
-
-[[package]]
-name = "void"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/pkgs/tools/inputmethods/evscript/default.nix b/pkgs/tools/inputmethods/evscript/default.nix
index aecfaf9492588..d1440bea357fd 100644
--- a/pkgs/tools/inputmethods/evscript/default.nix
+++ b/pkgs/tools/inputmethods/evscript/default.nix
@@ -2,22 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evscript";
-  version = "unstable-2022-11-20";
+  version = "0.1.0";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "valpackett";
     repo = pname;
-    rev = "ba997c9723a91717c683f08e9957d0ecea3da6cd";
-    sha256 = "sha256-wuTPcBUuPK1D4VO8BXexx9AdiPM+X0TkJ3G7b7ofER8=";
+    rev = version;
+    hash = "sha256-lCXDDLovUb5aSOPTyVJL25v1JT1BGrrUlUR0Mu0XX4Q=";
   };
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "evdev-0.10.1" = "sha256-iIzKhlA+7qg+nNwP82OIpoXVUEYU31iSEt1KJA3EewQ=";
-    };
-  };
+  cargoHash = "sha256-KcQZnGFtev4ckhtQ7CNB773fAsExZ9EQl9e4Jf4beGo=";
 
   meta = with lib; {
     homepage = "https://codeberg.org/valpackett/evscript";
diff --git a/pkgs/tools/inputmethods/evsieve/default.nix b/pkgs/tools/inputmethods/evsieve/default.nix
new file mode 100644
index 0000000000000..de18668e74753
--- /dev/null
+++ b/pkgs/tools/inputmethods/evsieve/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, libevdev
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "evsieve";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "KarsMulder";
+    repo = "evsieve";
+    rev = "v${version}";
+    hash = "sha256-UV5m8DmFtkCU/DoBJNBCdvhU/jYtU5+WnnhKwxZNl9g=";
+  };
+
+  cargoHash = "sha256-Bug25xK3YYQ3YjrUXlgWaVUPn87V3N/8XikqwYL/sUg=";
+
+  buildInputs = [ libevdev ];
+
+  doCheck = false; # unit tests create uinput devices
+
+  meta = with lib; {
+    description = "A utility for mapping events from Linux event devices";
+    homepage = "https://github.com/KarsMulder/evsieve";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ tsowell ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/inputmethods/fcitx5/default.nix b/pkgs/tools/inputmethods/fcitx5/default.nix
index 136550548e645..a3b5e180bcfbf 100644
--- a/pkgs/tools/inputmethods/fcitx5/default.nix
+++ b/pkgs/tools/inputmethods/fcitx5/default.nix
@@ -8,6 +8,7 @@
 , extra-cmake-modules
 , cairo
 , pango
+, expat
 , fribidi
 , fmt
 , wayland
@@ -19,7 +20,6 @@
 , enchant
 , gdk-pixbuf
 , libGL
-, libevent
 , libuuid
 , libselinux
 , libXdmcp
@@ -29,6 +29,7 @@
 , libdatrie
 , xcbutilkeysyms
 , pcre
+, xcbutil
 , xcbutilwm
 , xcb-imdkit
 , libxkbfile
@@ -43,13 +44,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "fcitx5";
-  version = "5.1.1";
+  version = "5.1.7";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-R8stzpfQttBZFFSu8ikUz/2eL+b98/X672uVFsha9H0=";
+    hash = "sha256-XI4E+fWDIYDiYBv6HezytaZmhzv4NUaNam1T5Fyx+LI=";
   };
 
   prePatch = ''
@@ -63,6 +64,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    expat
     fmt
     isocodes
     cairo
@@ -77,13 +79,13 @@ stdenv.mkDerivation rec {
     wayland-protocols
     json_c
     libGL
-    libevent
     libuuid
     libselinux
     libsepol
     libXdmcp
     libxkbcommon
     pcre
+    xcbutil
     xcbutilwm
     xcbutilkeysyms
     xcb-imdkit
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-anthy.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-anthy.nix
index 0e1a5fa9598b0..de8e78f62ad1c 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-anthy.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-anthy.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-anthy";
-  version = "5.1.1";
+  version = "5.1.3";
 
   src = fetchurl {
     url = "https://download.fcitx-im.org/fcitx5/fcitx5-anthy/${pname}-${version}.tar.xz";
-    sha256 = "sha256-kUelkzVr1zOC4bbNP2EFPnhtygkJnKCFdlHeSkBGLGw=";
+    sha256 = "sha256-pOJYe5+/11j8YmuJDyAbFPFsnUa9DQqbYirSwD992zY=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix
new file mode 100644
index 0000000000000..b8e34332e8ae8
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, fcitx5
+, gettext
+, go
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fcitx5-bamboo";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "fcitx";
+    repo = "fcitx5-bamboo";
+    rev = finalAttrs.version;
+    hash = "sha256-EcpuZN2JU6HSuiQgBPBsoYftdHypiyFlrUxDBlVW6eo=";
+    fetchSubmodules = true;
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    gettext
+    go
+  ];
+
+  buildInputs = [
+    fcitx5
+    extra-cmake-modules
+  ];
+
+  preConfigure = ''
+    export GOCACHE=$TMPDIR/go-cache
+  '';
+
+  meta = {
+    description = "Vietnamese input method engine support for Fcitx";
+    homepage = "https://github.com/fcitx/fcitx5-bamboo";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix
index 4facccf49fbbf..47d7dfad6bd54 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-chewing";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Zjwt7JHwCfXlY46qRTXSmXI69fANZNI7DY1ixpMEqPM=";
+    sha256 = "sha256-boIkbtNLPTNXY9e5gdQklhJuDU36ZswOqY2X8nRKqho=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
index bcb1a6ac50944..385043ef9a298 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
@@ -31,19 +31,15 @@ in
 
 mkDerivation rec {
   pname = "fcitx5-chinese-addons";
-  version = "5.1.1";
+  version = "5.1.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-XC8NQYVvGhh6GFrKtJi9GeBHxWrtw9DJzeeDvKAQEdk=";
+    sha256 = "sha256-z+udRjvAZbnu6EcvvdaFVCr0OKLxFBJbgoYpH9QjrDI=";
   };
 
-  cmakeFlags = [
-    "-DUSE_WEBKIT=off"
-  ];
-
   nativeBuildInputs = [
     cmake
     extra-cmake-modules
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
index 264587f3e7bc4..b726a3515508e 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
@@ -21,13 +21,13 @@
 
 mkDerivation rec {
   pname = "fcitx5-configtool";
-  version = "5.1.1";
+  version = "5.1.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-5f75UTGCWsuMdZKhssSpUiVaRR05YY0bumVUNq2wJtY=";
+    sha256 = "sha256-IwGlhIeON0SenW738p07LWZAzVDMtxOSMuUIAgfmTEg=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
index 0dfa9f822a29a..1036b28685c3e 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
@@ -26,15 +26,17 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-gtk";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xVBmFFUnlWqviht/KGFTHCd3xCln/6hyBG72tIHqopc=";
+    sha256 = "sha256-Ex24cHTsYsZjP8o+vrCdgGogk1UotWpd8xaLZAqzgaQ=";
   };
 
+  outputs = [ "out" "dev" ];
+
   cmakeFlags = [
     "-DGOBJECT_INTROSPECTION_GIRDIR=share/gir-1.0"
     "-DGOBJECT_INTROSPECTION_TYPELIBDIR=lib/girepository-1.0"
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix
index 84d9c398cdda2..9a1a2c8eca247 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-hangul";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-3cJLF80oAqGSJvPPyKcHxaWysA9RtWYGgptailYd4dk=";
+    sha256 = "sha256-3gkZh+ZzgTdpTbQe92gxJlG0x6Yhl7LfMiFEq5mb92o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
index 788023bf0b063..45d7cc3288a59 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
@@ -9,13 +9,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "fcitx5-lua";
-  version = "5.0.11";
+  version = "5.0.12";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FgRETT4YLA/B/5mBAJxyF2WI8TM0J51vdlJeoiJST1M=";
+    sha256 = "sha256-tnGPjMc8oL/P6Vyt7eNYWcPMhYhdpFWtCF4E3dJYGPw=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
index e922bc533c2ca..202886e4e8e11 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
@@ -9,17 +9,18 @@
 , libXdmcp
 , qtbase
 , qt6
+, wayland
 }:
 
 mkDerivation rec {
   pname = "fcitx5-qt";
-  version = "5.1.1";
+  version = "5.1.4";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-IkaaLFMyPVaL5taRN4e+QxMEsNhhXlA1fWBn/6PeGnI=";
+    sha256 = "sha256-bVH2US/uEZGERslnAh/fyUbzR9fK1UfG4J+mOmrIE8Y=";
   };
 
   preConfigure = ''
@@ -31,7 +32,7 @@ mkDerivation rec {
 
   cmakeFlags = [
     # adding qt6 to buildInputs would result in error: detected mismatched Qt dependencies
-    "-DCMAKE_PREFIX_PATH=${qt6.qtbase}"
+    "-DCMAKE_PREFIX_PATH=${qt6.qtbase};${qt6.qtwayland}"
     "-DENABLE_QT4=0"
     "-DENABLE_QT6=1"
   ];
@@ -46,6 +47,7 @@ mkDerivation rec {
     qtx11extras
     libxcb
     libXdmcp
+    wayland
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
index 0e62a1ae366f9..3698abeed8aa1 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-rime";
-  version = "5.1.2";
+  version = "5.1.4";
 
   src = fetchurl {
     url = "https://download.fcitx-im.org/fcitx5/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-0WcBM6kOKATuh6I8yEzl+HkK5/k4Ku6brZ+s1ncKlpw=";
+    hash = "sha256-tbCIWenH5brJUVIsmOiw/E/uIXAWwK1yangIVlkeOAs=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix
index 6a424c0ef86dd..31ecbed35bc98 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-skk";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-N69OyGzJGO27tsR1g06d0EILsX2mpbW/tIgeSLc06OU=";
+    sha256 = "sha256-a+ZsuFEan61U0oOuhrTFoK5J4Vd0jj463jQ8Mk7TdbA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
index 38026c0de9f72..0320fa5c4f010 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-extra";
-  version = "5.1.0";
+  version = "5.1.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-os2C/6r9hz/3MEAny8Klc01cRGIiKD39rdu56kQDCnQ=";
+    hash = "sha256-w4JFZvYFL3fHrDgZqYND2bl3lT9/O1GXgfOwR7WyzWY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-unikey.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-unikey.nix
index 141bd185afc32..aa87d725f1040 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-unikey.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-unikey.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-unikey";
-  version = "5.1.1";
+  version = "5.1.2";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-unikey";
     rev = version;
-    sha256 = "sha256-9t8YYYGTiY+HteoRI1m833ITcbYb/KpHczyUd8lllc8=";
+    sha256 = "sha256-tLooADS8HojS9i178i5FJVqZtKrTXlzOBPlE9K49Tjc=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
diff --git a/pkgs/tools/inputmethods/footswitch/default.nix b/pkgs/tools/inputmethods/footswitch/default.nix
deleted file mode 100644
index a01069c9284fa..0000000000000
--- a/pkgs/tools/inputmethods/footswitch/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, hidapi }:
-
-stdenv.mkDerivation {
-  pname = "footswitch";
-  version = "unstable-2022-04-12";
-
-  src = fetchFromGitHub {
-    owner = "rgerganov";
-    repo = "footswitch";
-    rev = "1cf63643e18e688e4ebe96451db24edf52338cc0";
-    sha256 = "0gfvi2wgrljndyz889cjjh2q13994fnaf11n7hpdd82c4wgg06kj";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ hidapi ];
-
-  postPatch = ''
-    substituteInPlace Makefile \
-      --replace /usr/local $out \
-      --replace /usr/bin/install install \
-      --replace /etc/udev $out/lib/udev
-  '';
-
-  preInstall = ''
-    mkdir -p $out/bin $out/lib/udev/rules.d
-  '';
-
-  meta = with lib; {
-    description = "Command line utlities for programming PCsensor and Scythe foot switches.";
-    homepage    = "https://github.com/rgerganov/footswitch";
-    license     = licenses.mit;
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ baloo ];
-  };
-}
diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile b/pkgs/tools/inputmethods/fusuma/Gemfile
index deeb923579641..7cee961df4a06 100644
--- a/pkgs/tools/inputmethods/fusuma/Gemfile
+++ b/pkgs/tools/inputmethods/fusuma/Gemfile
@@ -1,13 +1,15 @@
 source 'https://rubygems.org'
-gem "fusuma"
+gem "fusuma", ">=3.0.0"
 gem "fusuma-plugin-appmatcher"
 gem "fusuma-plugin-keypress"
 gem "fusuma-plugin-sendkey"
-gem "fusuma-plugin-tap"
 gem "fusuma-plugin-wmctrl"
 
 # I've not activated the following plugins for the reasons given below.
 
+# tap has been archived by upstream
+# gem "fusuma-plugin-tap"
+
 # touchscreen needs specific h/w support I don't have access to, so I can't confirm
 # if it's problem free.  A quick check didn't reveal any problems.
 #gem "fusuma-plugin-touchscreen"
diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile.lock b/pkgs/tools/inputmethods/fusuma/Gemfile.lock
index e6055e890d474..283d4c3fa5e1b 100644
--- a/pkgs/tools/inputmethods/fusuma/Gemfile.lock
+++ b/pkgs/tools/inputmethods/fusuma/Gemfile.lock
@@ -1,35 +1,32 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    fusuma (3.1.0)
-    fusuma-plugin-appmatcher (0.6.0)
-      fusuma (~> 3.0)
+    fusuma (3.3.1)
+    fusuma-plugin-appmatcher (0.6.1)
+      fusuma (>= 3.0)
       rexml
       ruby-dbus
-    fusuma-plugin-keypress (0.8.0)
-      fusuma (~> 2.0)
+    fusuma-plugin-keypress (0.9.0)
+      fusuma (>= 3.1)
     fusuma-plugin-sendkey (0.10.1)
-      fusuma (~> 3.1)
+      fusuma (>= 3.1)
       revdev
-    fusuma-plugin-tap (0.4.2)
-      fusuma (~> 2.0)
     fusuma-plugin-wmctrl (1.3.1)
-      fusuma (~> 3.1)
+      fusuma (>= 3.1)
     revdev (0.2.1)
-    rexml (3.2.5)
-    ruby-dbus (0.19.0)
+    rexml (3.2.6)
+    ruby-dbus (0.23.1)
       rexml
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  fusuma
+  fusuma (>= 3.0.0)
   fusuma-plugin-appmatcher
   fusuma-plugin-keypress
   fusuma-plugin-sendkey
-  fusuma-plugin-tap
   fusuma-plugin-wmctrl
 
 BUNDLED WITH
-   2.4.6
+   2.4.22
diff --git a/pkgs/tools/inputmethods/fusuma/default.nix b/pkgs/tools/inputmethods/fusuma/default.nix
index 58cbe91e3c570..0622ce699f8c2 100644
--- a/pkgs/tools/inputmethods/fusuma/default.nix
+++ b/pkgs/tools/inputmethods/fusuma/default.nix
@@ -18,7 +18,7 @@ bundlerApp {
     description = "Multitouch gestures with libinput driver on X11, Linux";
     homepage = "https://github.com/iberianpig/fusuma";
     license = licenses.mit;
-    maintainers = with maintainers; [ jfrankenau nicknovitski Br1ght0ne ];
+    maintainers = with maintainers; [ nicknovitski Br1ght0ne ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/inputmethods/fusuma/gemset.nix b/pkgs/tools/inputmethods/fusuma/gemset.nix
index a118e56687d4f..47d5f62159957 100644
--- a/pkgs/tools/inputmethods/fusuma/gemset.nix
+++ b/pkgs/tools/inputmethods/fusuma/gemset.nix
@@ -4,10 +4,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "163an1yv8lasbdmdjsj2a4byq1rljg7vf5z86ip33xpb9l133xmm";
+      sha256 = "13pbvmkjriq6myynv4gfismiqa9y7bfbvvrfcv25670l4zyiakhm";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.3.1";
   };
   fusuma-plugin-appmatcher = {
     dependencies = ["fusuma" "rexml" "ruby-dbus"];
@@ -15,10 +15,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "28e8c59d5984a5723510f19868c37c363bec93e51f6cb7a573170cf7f5b9189f";
+      sha256 = "1qkir4a657znq0fnx91lik7bw5kyq54jwhiy2zrlplln78xs5yai";
       type = "gem";
     };
-    version = "0.6.0";
+    version = "0.6.1";
   };
   fusuma-plugin-keypress = {
     dependencies = ["fusuma"];
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "045c1820d909307abb1d232c0cf26bbd88eafa0453004124c07b15fff5d680de";
+      sha256 = "0as95haqa943i740xs7czcaibb8lvy4gn6kr8nbldq20nly64bih";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "0.9.0";
   };
   fusuma-plugin-sendkey = {
     dependencies = ["fusuma" "revdev"];
@@ -37,29 +37,18 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "f792fec194b611d5d79b93b6694876292c43bee55635d9422f885b6509eeb765";
+      sha256 = "0rdpxq4nanw85x1djdanwnz46b19fr46kdlkkgbxa4dnjk0zx4pp";
       type = "gem";
     };
     version = "0.10.1";
   };
-  fusuma-plugin-tap = {
-    dependencies = ["fusuma"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0jlw08iw20fpykjglzj4c2fy3z13zsnmi63zbfpn0gmvs05869ys";
-      type = "gem";
-    };
-    version = "0.4.2";
-  };
   fusuma-plugin-wmctrl = {
     dependencies = ["fusuma"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "067939b2d8b99cf8fce43be40341cda3de3371596a8a4fb24eb13ca84c0bffe5";
+      sha256 = "1rgz1d6ahg5i9sr4z2kab5qk7pm3rm0h7r1vwkygi75rv2r3jy86";
       type = "gem";
     };
     version = "1.3.1";
@@ -79,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.2.6";
   };
   ruby-dbus = {
     dependencies = ["rexml"];
@@ -90,9 +79,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18zbsr03drpx7mknm927i2kz5b49s0lwmrbmsdknfa674z0xy6sm";
+      sha256 = "0hf9y5lbi1xcadc2fw87wlif75s1359c2wwlvvd0gag7cq5dm0pm";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.23.1";
   };
 }
diff --git a/pkgs/tools/inputmethods/gebaar-libinput/default.nix b/pkgs/tools/inputmethods/gebaar-libinput/default.nix
index 7506493ee7ce2..9a808535fe04f 100644
--- a/pkgs/tools/inputmethods/gebaar-libinput/default.nix
+++ b/pkgs/tools/inputmethods/gebaar-libinput/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, pkg-config, cmake, libinput, zlib }:
+{ stdenv, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake, libinput, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "gebaar-libinput";
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # fix build with gcc 11+
+    (fetchpatch {
+      url = "https://github.com/9ary/gebaar-libinput-fork/commit/25cac08a5f1aed1951b03de12fa0010a0964967d.patch";
+      hash = "sha256-CtgfMTBCXotiPAXc7cA3h+7Kb0NHFi/q7w72IY32CyA=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [ libinput zlib ];
 
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
index deef4a8f8736f..ab71af9574818 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-anthy";
-  version = "1.5.14";
+  version = "1.5.15";
 
   src = fetchurl {
     url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-yGlNoY0LiRpI9NdaDezjfsvKbRsay2QQGnqEytEEbZs=";
+    sha256 = "sha256-WMTm1YNqSsnjOqnoTljE3rZ62pjztUSyRAxXgyN+2Ys=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
index 0cb7d845ed45e..95ad99ca8fd57 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-bamboo";
-  version = "0.7.8";
+  version = "0.8.2-rc18";
 
   src = fetchFromGitHub {
     owner = "BambooEngine";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-H7me34KfhDD7BNEEKkhYXo9DLeclO7N19e961BOh1Ho=";
+    rev = "v" + lib.toUpper version;
+    sha256 = "sha256-5FSGPUJtUdYyeqJenvKaMIJcvon91I//62fnTCXcdig=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix
new file mode 100644
index 0000000000000..0d7f06039a09c
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gettext
+, pkg-config
+, wrapGAppsHook
+, ibus
+, glib
+, gobject-introspection
+, gtk3
+, python3
+, autoreconfHook
+, intltool
+}:
+
+let
+  pythonModules = with python3.pkgs; [
+    pygobject3
+    pycangjie
+    (toPythonModule ibus)
+  ];
+
+  # Upstream builds Python packages as a part of a non-python
+  # autotools build, making it awkward to rely on Nixpkgs Python builders.
+  # Hence we manually set up PYTHONPATH.
+  pythonPath = "$out/${python3.sitePackages}" + ":" + python3.pkgs.makePythonPath pythonModules;
+
+in
+stdenv.mkDerivation {
+  pname = "ibus-cangjie";
+  version = "unstable-2023-07-25";
+
+  src = fetchFromGitHub {
+    owner = "Cangjians";
+    repo = "ibus-cangjie";
+    rev = "46c36f578047bb3cb2ce777217abf528649bc58d";
+    sha256 = "sha256-msVqWougc40bVXIonJA6K/VgurnDeR2TdtGKfd9rzwM=";
+  };
+
+  buildInputs = [
+    glib
+    gtk3
+    ibus
+    python3
+  ] ++ pythonModules;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    intltool
+    gettext
+    gobject-introspection
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  # Upstream builds Python packages as a part of a non-python
+  # autotools build, making it awkward to rely on Nixpkgs Python builders.
+  postInstall = ''
+    gappsWrapperArgs+=(--prefix PYTHONPATH : "${pythonPath}")
+  '';
+
+  postFixup = ''
+    wrapGApp $out/lib/ibus-cangjie/ibus-engine-cangjie
+  '';
+
+  meta = {
+    isIbusEngine = true;
+    description = "An IBus engine for users of the Cangjie and Quick input methods";
+    homepage = "https://github.com/Cangjians/ibus-cangjie";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ adisbladis ];
+  };
+}
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
index 084f1c2dfe21f..ccabc9b584446 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
@@ -14,19 +14,19 @@
 , python3
 , lua
 , opencc
-, libsoup
+, libsoup_3
 , json-glib
 }:
 
 stdenv.mkDerivation rec {
   pname = "ibus-libpinyin";
-  version = "1.15.3";
+  version = "1.15.6";
 
   src = fetchFromGitHub {
     owner = "libpinyin";
     repo = "ibus-libpinyin";
     rev = version;
-    hash = "sha256-6M4tgIpMQul3R8xI29vyPIWX0n6YItZhdVA8vT9FIRw=";
+    hash = "sha256-cfV/VBCVtwI4qDwuU2563jMjxQqDs7VXGxkFn4w8IqM=";
   };
 
   nativeBuildInputs = [
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     db
     lua
     opencc
-    libsoup
+    libsoup_3
     json-glib
   ];
 
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
index 19d5b1b96933b..eea671dc7b559 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-m17n";
-  version = "1.4.22";
+  version = "1.4.27";
 
   src = fetchFromGitHub {
     owner = "ibus";
     repo = "ibus-m17n";
     rev = version;
-    sha256 = "sha256-wjWDqhhLqj77IxVpelChOEdUtneaGmL+IK2Sp3eObkA=";
+    sha256 = "sha256-A8XxmYEi7OuJk1BhXCtk/hx5/JOqg2sJ6yE9gzaTRNA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
index 7333558aaaef1..220c89ca175d9 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
@@ -1,89 +1,86 @@
-{ lib, stdenv, fetchFromGitHub, which, ninja, pkg-config, protobuf
-, ibus, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese, python3Packages }:
-
-stdenv.mkDerivation rec {
+{ lib
+, buildBazelPackage
+, fetchFromGitHub
+, qt6
+, pkg-config
+, bazel
+, ibus
+, unzip
+, xdg-utils
+}:
+let
+  zip-codes = fetchFromGitHub {
+    owner = "musjj";
+    repo = "jp-zip-codes";
+    rev = "a1eed9bae0ba909c8c8f5387008b08ff490f5e57";
+    hash = "sha256-VfI8qAMPPCC2H4vjm4a6sAmSwc1YkXlMyLm1cnufvrU=";
+  };
+in
+buildBazelPackage rec {
   pname = "ibus-mozc";
-  version = "2.26.4660.102";
+  version = "2.29.5268.102";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mozc";
-    rev = "refs/tags/${version}";
-    hash = "sha256-sgsfJZALpPHFB5bXu4OkRssViRDaPcgLfEyGhbqvJbI=";
+    rev = version;
+    hash = "sha256-B7hG8OUaQ1jmmcOPApJlPVcB8h1Rw06W5LAzlTzI9rU=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
-    which ninja python3Packages.python python3Packages.six
-    python3Packages.gyp pkg-config qt5.wrapQtAppsHook
-  ];
+  nativeBuildInputs = [ qt6.wrapQtAppsHook pkg-config unzip ];
 
-  buildInputs = [ protobuf ibus gtk2 zinnia qt5.qtbase libxcb ];
+  buildInputs = [ ibus qt6.qtbase ];
 
-  postUnpack = lib.optionalString stdenv.isLinux ''
-    sed -i 's/-lc++/-lstdc++/g' $sourceRoot/src/gyp/common.gypi
-  '';
+  dontAddBazelOpts = true;
+  removeRulesCC = false;
 
-  configurePhase = ''
-    runHook preConfigure
+  inherit bazel;
 
-    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model"
-    cd src && python build_mozc.py gyp --gypdir=${python3Packages.gyp}/bin --server_dir=$out/lib/mozc
+  fetchAttrs = {
+    sha256 = "sha256-17QHh1MJUu8OK/T+WSpLXEx83DmRORLN7yLzILqP7vw=";
 
-    runHook postConfigure
-  '';
+    # remove references of buildInputs
+    preInstall = ''
+      rm -rv $bazelOut/external/{ibus,qt_linux}
+    '';
+  };
 
-  buildPhase = ''
-    runHook preBuild
+  bazelFlags = [ "--config" "oss_linux" "--compilation_mode" "opt" ];
 
-    PYTHONPATH="$PWD:$PYTHONPATH" python build_mozc.py build -c Release \
-      unix/ibus/ibus.gyp:ibus_mozc \
-      unix/emacs/emacs.gyp:mozc_emacs_helper \
-      server/server.gyp:mozc_server \
-      gui/gui.gyp:mozc_tool \
-      renderer/renderer.gyp:mozc_renderer
+  bazelTargets = [ "package" ];
 
-    runHook postBuild
+  postPatch = ''
+    substituteInPlace src/config.bzl \
+      --replace-fail "/usr/bin/xdg-open" "${xdg-utils}/bin/xdg-open" \
+      --replace-fail "/usr" "$out"
+    substituteInPlace src/WORKSPACE.bazel \
+      --replace-fail "https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip" "file://${zip-codes}/ken_all.zip" \
+      --replace-fail "https://www.post.japanpost.jp/zipcode/dl/jigyosyo/zip/jigyosyo.zip" "file://${zip-codes}/jigyosyo.zip"
   '';
 
-  installPhase = ''
+  preConfigure = ''
+    cd src
+  '';
+
+  buildAttrs.installPhase = ''
     runHook preInstall
 
-    install -d        $out/share/licenses/mozc
-    head -n 29 server/mozc_server.cc > $out/share/licenses/mozc/LICENSE
-    install -m 644    data/installer/*.html $out/share/licenses/mozc/
-
-    install -D -m 755 out_linux/Release/mozc_server $out/lib/mozc/mozc_server
-    install    -m 755 out_linux/Release/mozc_tool   $out/lib/mozc/mozc_tool
-    wrapQtApp $out/lib/mozc/mozc_tool
-
-    install -d        $out/share/doc/mozc
-    install -m 644    data/installer/*.html $out/share/doc/mozc/
-
-    install -D -m 755 out_linux/Release/ibus_mozc           $out/lib/ibus-mozc/ibus-engine-mozc
-    install -D -m 644 out_linux/Release/gen/unix/ibus/mozc.xml $out/share/ibus/component/mozc.xml
-    install -D -m 644 data/images/unix/ime_product_icon_opensource-32.png $out/share/ibus-mozc/product_icon.png
-    install    -m 644 data/images/unix/ui-tool.png          $out/share/ibus-mozc/tool.png
-    install    -m 644 data/images/unix/ui-properties.png    $out/share/ibus-mozc/properties.png
-    install    -m 644 data/images/unix/ui-dictionary.png    $out/share/ibus-mozc/dictionary.png
-    install    -m 644 data/images/unix/ui-direct.png        $out/share/ibus-mozc/direct.png
-    install    -m 644 data/images/unix/ui-hiragana.png      $out/share/ibus-mozc/hiragana.png
-    install    -m 644 data/images/unix/ui-katakana_half.png $out/share/ibus-mozc/katakana_half.png
-    install    -m 644 data/images/unix/ui-katakana_full.png $out/share/ibus-mozc/katakana_full.png
-    install    -m 644 data/images/unix/ui-alpha_half.png    $out/share/ibus-mozc/alpha_half.png
-    install    -m 644 data/images/unix/ui-alpha_full.png    $out/share/ibus-mozc/alpha_full.png
-    install -D -m 755 out_linux/Release/mozc_renderer       $out/lib/mozc/mozc_renderer
-    install -D -m 755 out_linux/Release/mozc_emacs_helper   $out/lib/mozc/mozc_emacs_helper
+    unzip bazel-bin/unix/mozc.zip -x "tmp/*" -d /
 
     runHook postInstall
   '';
 
+  passthru = {
+    inherit zip-codes;
+  };
+
   meta = with lib; {
     isIbusEngine = true;
     description = "Japanese input method from Google";
     homepage = "https://github.com/google/mozc";
     license = licenses.free;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gebner ericsagnes ];
+    maintainers = with maintainers; [ gebner ericsagnes pineapplehunter ];
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index 8e072ffeb3b46..c5f02f4c8a227 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-table";
-  version = "1.17.3";
+  version = "1.17.4";
 
   src = fetchFromGitHub {
     owner  = "kaio";
     repo   = "ibus-table";
     rev    = version;
-    sha256 = "sha256-rolnpjJojtL+0tUbZIQgL1IIkv+d3MoMWoedfEMpr8A=";
+    sha256 = "sha256-XljpwsDsdZkcnXimnN7BzPhOZdUmEEJbBM53Sv/9rIo=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
index b41dd7616619a..96d532db725fe 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
@@ -13,13 +13,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ibus-typing-booster";
-  version = "2.24.2";
+  version = "2.24.12";
 
   src = fetchFromGitHub {
     owner = "mike-fabian";
     repo = "ibus-typing-booster";
     rev = version;
-    hash = "sha256-h/8fFo7X5p6loDKxcPjOYWg1P0m0tVqR2IX/QSfvrzQ=";
+    hash = "sha256-RHmU+wcorC78Pa21DrhOLz3ztv8kByWo5l1i8F/LZO4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook gobject-introspection ];
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 848758b541464..417b1be605d5a 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -14,7 +14,6 @@
 , glib
 , gdk-pixbuf
 , gobject-introspection
-, gtk2
 , gtk3
 , gtk4
 , gtk-doc
@@ -84,6 +83,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/ibus/ibus/commit/8f706d160631f1ffdbfa16543a38b9d5f91c16ad.patch";
       hash = "sha256-YzS9TmUWW0OmheDeCeU00kFK2U2QEmKYMSRJAbu14ec=";
     })
+    # fix missing key releases in Wine https://github.com/ibus/ibus/issues/2480
+    (fetchpatch {
+      url = "https://github.com/ibus/ibus/commit/497f0c74230a65309e22ce5569060ce48310406b.patch";
+      hash = "sha256-PAZcUxmzjChs1/K8hXgOcytyS4LYoNL1dtU6X5Tx8ic=";
+    })
   ];
 
   outputs = [ "out" "dev" "installedTests" ];
@@ -103,6 +107,7 @@ stdenv.mkDerivation rec {
     (lib.enableFeature (libnotify != null) "libnotify")
     (lib.enableFeature withWayland "wayland")
     (lib.enableFeature enableUI "ui")
+    "--disable-gtk2"
     "--enable-gtk4"
     "--enable-install-tests"
     "--with-unicode-emoji-dir=${unicode-emoji}/share/unicode/emoji"
@@ -144,7 +149,6 @@ stdenv.mkDerivation rec {
     dconf
     gdk-pixbuf
     python3.pkgs.pygobject3 # for pygobject overrides
-    gtk2
     gtk3
     gtk4
     isocodes
diff --git a/pkgs/tools/inputmethods/input-remapper/default.nix b/pkgs/tools/inputmethods/input-remapper/default.nix
index ff2a7363d90e1..04f8c7f74c151 100644
--- a/pkgs/tools/inputmethods/input-remapper/default.nix
+++ b/pkgs/tools/inputmethods/input-remapper/default.nix
@@ -33,21 +33,21 @@
 let
   maybeXmodmap = lib.optional withXmodmap xmodmap;
 in
-(buildPythonApplication {
+(buildPythonApplication rec {
   pname = "input-remapper";
-  version = "1.5.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
-    rev = "e31a1b2bc5d23fe13130afcc242063196335399f";
     owner = "sezanzeb";
     repo = "input-remapper";
-    hash = "sha256-KPQLgXSonuOgphagYN2JN+CMIpmjTIPUTCqOPDk0UYU=";
+    rev = version;
+    hash = "sha256-rwlVGF/cWSv6Bsvhrs6nMDQ8avYT80aasrhWyQv55/A=";
   };
 
   postPatch = ''
     # fix FHS paths
     substituteInPlace inputremapper/configs/data.py \
-      --replace "/usr/share/input-remapper"  "$out/usr/share/input-remapper"
+      --replace "/usr/share"  "$out/usr/share"
   '' + lib.optionalString withDebugLogLevel ''
     # if debugging
     substituteInPlace inputremapper/logger.py --replace "logger.setLevel(logging.INFO)"  "logger.setLevel(logging.DEBUG)"
diff --git a/pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix b/pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix
index 34dde4dc7429d..022e7dfa03899 100644
--- a/pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix
+++ b/pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "dual-function-keys";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitLab {
     group = "interception";
     owner = "linux/plugins";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xlplbkeptXMBlRnSsc5NgGJfT8aoZxTRgTwTOd7aiWg=";
+    hash = "sha256-m/oEczUNKqj0gs/zMOIBxoQaffNg+YyPINMXArkATJ4=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/interception/linux/plugins/dual-function-keys";
-    description = "Tap for one key, hold for another.";
+    description = "Tap for one key, hold for another";
     license = licenses.mit;
     maintainers = with maintainers; [ svend ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/inputmethods/keyd/default.nix b/pkgs/tools/inputmethods/keyd/default.nix
index 810ade71bb32a..a3df8d44cec8e 100644
--- a/pkgs/tools/inputmethods/keyd/default.nix
+++ b/pkgs/tools/inputmethods/keyd/default.nix
@@ -8,13 +8,13 @@
 }:
 
 let
-  version = "2.4.2";
+  version = "2.4.3";
 
   src = fetchFromGitHub {
     owner = "rvaiya";
     repo = "keyd";
     rev = "v" + version;
-    hash = "sha256-QWr+xog16MmybhQlEWbskYa/dypb9Ld54MOdobTbyMo=";
+    hash = "sha256-NhZnFIdK0yHgFR+rJm4cW+uEhuQkOpCSLwlXNQy6jas=";
   };
 
   pypkgs = python3.pkgs;
@@ -37,7 +37,7 @@ let
       install -Dm555 -t $out/bin scripts/${pname}
     '';
 
-    meta.mainProgram = pname;
+    meta.mainProgram = "keyd-application-mapper";
   };
 
 in
@@ -47,13 +47,14 @@ stdenv.mkDerivation {
 
   postPatch = ''
     substituteInPlace Makefile \
-      --replace DESTDIR= DESTDIR=${placeholder "out"} \
       --replace /usr ""
 
     substituteInPlace keyd.service \
       --replace /usr/bin $out/bin
   '';
 
+  installFlags = [ "DESTDIR=${placeholder "out"}" ];
+
   buildInputs = [ systemd ];
 
   enableParallelBuilding = true;
@@ -69,7 +70,7 @@ stdenv.mkDerivation {
   passthru.tests.keyd = nixosTests.keyd;
 
   meta = with lib; {
-    description = "A key remapping daemon for linux.";
+    description = "A key remapping daemon for Linux";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/inputmethods/keymapper/default.nix b/pkgs/tools/inputmethods/keymapper/default.nix
index a0c92765c163d..e93acecb62bf8 100644
--- a/pkgs/tools/inputmethods/keymapper/default.nix
+++ b/pkgs/tools/inputmethods/keymapper/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "keymapper";
-  version = "2.7.1";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "houmain";
     repo = "keymapper";
     rev = finalAttrs.version;
-    hash = "sha256-c0AiXr0dqlCNRlZxaEU9Tv7ZwPKajxY+eiI1zCb3hKs=";
+    hash = "sha256-X2Qk/cAczdkteB+6kyURGjvm1Ryio6WHj3Ga2POosCA=";
   };
 
   # all the following must be in nativeBuildInputs
diff --git a/pkgs/tools/inputmethods/libinput-gestures/default.nix b/pkgs/tools/inputmethods/libinput-gestures/default.nix
index dde07fc971770..b9384469e9630 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.74";
+  version = "2.76";
 
   src = fetchFromGitHub {
     owner = "bulletmark";
     repo = "libinput-gestures";
     rev = version;
-    sha256 = "sha256-uBABs2FPvF+HO+VSNvz2F0Bc9Ja8ek1ULiu89/wvTv4=";
+    sha256 = "sha256-Tb/gQ/2Ul4JzEiLEUPJBj9T6ZAqzMSPdgiofdnDj73Q=";
   };
   patches = [
     ./0001-hardcode-name.patch
diff --git a/pkgs/tools/inputmethods/lisgd/default.nix b/pkgs/tools/inputmethods/lisgd/default.nix
index f04964fbb8398..dd57f61de9d62 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.7";
+  version = "0.4.0";
 
   src = fetchFromSourcehut {
     owner = "~mil";
     repo = "lisgd";
     rev = version;
-    hash = "sha256-3kmGpgZpCH7CkN+d1+5ygXOi8E0Ojcgw6Fbd0T9z7z0=";
+    hash = "sha256-ljRZpBo4lW2cYZYxKKMrXanE0YaHSFwcdyECK0czdWY=";
   };
 
   inherit patches;
diff --git a/pkgs/tools/inputmethods/m17n-db/default.nix b/pkgs/tools/inputmethods/m17n-db/default.nix
index a8bffd9989a96..dc0ed25a3efe0 100644
--- a/pkgs/tools/inputmethods/m17n-db/default.nix
+++ b/pkgs/tools/inputmethods/m17n-db/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "m17n-db";
-  version = "1.8.2";
+  version = "1.8.5";
 
   src = fetchurl {
     url = "https://download.savannah.gnu.org/releases/m17n/m17n-db-${version}.tar.gz";
-    sha256 = "sha256-vHR+J9ct9YoH9DG3JdeuQJIyLbxGEUykBTgoIbK6XGk=";
+    sha256 = "sha256-to//QiwKKGTuVuLEUXOCEzuYG7S6ObU/R4lc2LHApzY=";
   };
 
   nativeBuildInputs = [ gettext ];
diff --git a/pkgs/tools/inputmethods/m17n-lib/default.nix b/pkgs/tools/inputmethods/m17n-lib/default.nix
index c526f6a844d7f..ca586a449703e 100644
--- a/pkgs/tools/inputmethods/m17n-lib/default.nix
+++ b/pkgs/tools/inputmethods/m17n-lib/default.nix
@@ -7,11 +7,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "m17n-lib";
-  version = "1.8.2";
+  version = "1.8.4";
 
   src = fetchurl {
     url = "https://download.savannah.gnu.org/releases/m17n/m17n-lib-${version}.tar.gz";
-    hash = "sha256-5bA0SvnxFdlJV6P5ud68T45nG2n4wf1eC2iKeU16J/I=";
+    hash = "sha256-xqJYLG5PKowueihE+lx+s2Oq0lOLBS8gPHEGSd1CHMg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/inputmethods/remote-touchpad/default.nix b/pkgs/tools/inputmethods/remote-touchpad/default.nix
index b69db1317615e..aef0afc576ab4 100644
--- a/pkgs/tools/inputmethods/remote-touchpad/default.nix
+++ b/pkgs/tools/inputmethods/remote-touchpad/default.nix
@@ -9,22 +9,22 @@
 
 buildGoModule rec {
   pname = "remote-touchpad";
-  version = "1.4.2";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
     owner = "unrud";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uydt95mK0395dHvEno2SCnmKMJSkQ4TL7k7gnyoXlO0=";
+    sha256 = "sha256-usJAiGjUGGO4Gb9LMGWR6mG3r8C++llteqn5WpwqqFk=";
   };
 
   buildInputs = [ libXi libXrandr libXt libXtst ];
   tags = [ "portal,x11" ];
 
-  vendorHash = "sha256-SYh1MhJUrJKguR12L3yyxHoBB6ux6a4TUJyPvoYx7iU=";
+  vendorHash = "sha256-vL6kSm0yPEn5TNpB6E+2+Xjm/ANNUxgA8XEWz9n7kHI=";
 
   meta = with lib; {
-    description = "Control mouse and keyboard from the webbrowser of a smartphone.";
+    description = "Control mouse and keyboard from the web browser of a smartphone";
     homepage = "https://github.com/unrud/remote-touchpad";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ schnusch ];
diff --git a/pkgs/tools/inputmethods/triggerhappy/default.nix b/pkgs/tools/inputmethods/triggerhappy/default.nix
index e7ef0f8accf14..73df87a8262e2 100644
--- a/pkgs/tools/inputmethods/triggerhappy/default.nix
+++ b/pkgs/tools/inputmethods/triggerhappy/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/wertarbyte/triggerhappy/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ jfrankenau taha ];
+    maintainers = with maintainers; [ taha ];
   };
 }
diff --git a/pkgs/tools/llm/gorilla-cli/default.nix b/pkgs/tools/llm/gorilla-cli/default.nix
index ff5e3468ef918..276793c2c8bc9 100644
--- a/pkgs/tools/llm/gorilla-cli/default.nix
+++ b/pkgs/tools/llm/gorilla-cli/default.nix
@@ -34,5 +34,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/gorilla-llm/gorilla-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
+    mainProgram = "gorilla";
   };
 }
diff --git a/pkgs/tools/llm/heygpt/default.nix b/pkgs/tools/llm/heygpt/default.nix
index 053f5b90e8b38..eb2c7e4b11b45 100644
--- a/pkgs/tools/llm/heygpt/default.nix
+++ b/pkgs/tools/llm/heygpt/default.nix
@@ -6,16 +6,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "heygpt";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "fuyufjh";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Gtbb0G7tV+cjbq/74dnZKIwWZgNfSJl0My6F4OmAdhU=";
+    hash = "sha256-oP0yIdYytXSsbZ2pNaZ8Rrak1qJsudTe/oP6dGncGUM=";
   };
 
-  cargoSha256 = "sha256-ON6+gU+KsI2QFQjwxPRcbMClaAGrjVJ33mVuf0jSro8=";
+  cargoHash = "sha256-yKHAZpELuUD7wlM3Mi7XvxbKgdU1QxD9hsvIFcj3twE=";
 
   nativeBuildInputs = [openssl];
 
@@ -25,10 +25,10 @@ rustPlatform.buildRustPackage rec {
   OPENSSL_DIR = "${lib.getDev openssl}";
 
   meta = with lib; {
-    description = "A simple command-line interface for ChatGPT API.";
+    description = "A simple command-line interface for ChatGPT API";
     homepage = "https://github.com/fuyufjh/heygpt";
     license = licenses.mit;
-    mainProgram = pname;
+    mainProgram = "heygpt";
     maintainers = with maintainers; [aldoborrero];
   };
 }
diff --git a/pkgs/tools/llm/open-interpreter/default.nix b/pkgs/tools/llm/open-interpreter/default.nix
deleted file mode 100644
index bba449acdc768..0000000000000
--- a/pkgs/tools/llm/open-interpreter/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ lib
-, python3
-, fetchFromGitHub
-, semgrep
-}:
-let
-  version = "0.1.7";
-in
-python3.pkgs.buildPythonApplication {
-  pname = "open-interpreter";
-  format = "pyproject";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "KillianLucas";
-    repo = "open-interpreter";
-    rev = "v${version}";
-    hash = "sha256-U+GKvlFY9vkjXaPI0H5RsoMFLlLq1+IuSy/cOj/LNSw=";
-  };
-
-  nativeBuildInputs = [
-    python3.pkgs.poetry-core
-  ];
-
-  propagatedBuildInputs = with python3.pkgs; [
-    appdirs
-    astor
-    gitpython
-    huggingface-hub
-    inquirer
-    litellm
-    openai
-    # pyreadline3 # this is a windows deps
-    python-dotenv
-    pyyaml
-    rich
-    six
-    tiktoken
-    tokentrim
-    wget
-    yaspin
-  ] ++ [
-    semgrep
-  ];
-
-  # the import check phase fails trying to do a network request to openai
-  # because of litellm
-  # pythonImportsCheck = [ "interpreter" ];
-
-  meta = with lib; {
-    description = "OpenAI's Code Interpreter in your terminal, running locally";
-    homepage = "https://github.com/KillianLucas/open-interpreter";
-    license = licenses.mit;
-    changelog = "https://github.com/KillianLucas/open-interpreter/releases/tag/v${version}";
-    maintainers = with maintainers; [ happysalada ];
-    mainProgram = "interpreter";
-  };
-}
diff --git a/pkgs/tools/llm/shell_gpt/default.nix b/pkgs/tools/llm/shell_gpt/default.nix
index eca521ba5769a..ed3f27633e816 100644
--- a/pkgs/tools/llm/shell_gpt/default.nix
+++ b/pkgs/tools/llm/shell_gpt/default.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "shell_gpt";
-  version = "0.9.4";
+  version = "1.0.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-R4rhATuM0VL/N5+dXf3r9bF2/AVEcQhB2J4KYnxdHbk=";
+    sha256 = "sha256-/rBD2n5IZzSeC5dmVQRZY8UrzUOkAEVHp8KwIfV1hec=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix b/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix
index dde0bc3492480..f2ff558168d54 100644
--- a/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix
+++ b/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/usnistgov/SP800-90B_EntropyAssessment";
-    description = "Implementation of min-entropy assessment methods included in Special Publication 800-90B.";
+    description = "Implementation of min-entropy assessment methods included in Special Publication 800-90B";
     platforms = lib.platforms.linux;
     license = lib.licenses.free; #this software uses the NIST software license
     maintainers = with lib.maintainers; [ orichter thillux ];
diff --git a/pkgs/tools/misc/aaa/default.nix b/pkgs/tools/misc/aaa/default.nix
index 2f5751bd85584..0988bbca7acb2 100644
--- a/pkgs/tools/misc/aaa/default.nix
+++ b/pkgs/tools/misc/aaa/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/DomesticMoth/aaa";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ asciimoth ];
+    mainProgram = "aaa";
   };
 }
diff --git a/pkgs/tools/misc/abduco/default.nix b/pkgs/tools/misc/abduco/default.nix
index 9493df1c66c49..097cfd9170a9c 100644
--- a/pkgs/tools/misc/abduco/default.nix
+++ b/pkgs/tools/misc/abduco/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "Allows programs to be run independently from its controlling terminal";
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.unix;
+    mainProgram = "abduco";
   };
 }
diff --git a/pkgs/tools/misc/adafruit-ampy/default.nix b/pkgs/tools/misc/adafruit-ampy/default.nix
index 21f137e1a832b..4a87c9692ca9a 100644
--- a/pkgs/tools/misc/adafruit-ampy/default.nix
+++ b/pkgs/tools/misc/adafruit-ampy/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     license = licenses.mit;
     description = "Utility to interact with a MicroPython board over a serial connection";
     maintainers = with maintainers; [ ];
+    mainProgram = "ampy";
   };
 }
diff --git a/pkgs/tools/misc/addic7ed-cli/default.nix b/pkgs/tools/misc/addic7ed-cli/default.nix
index 4648e123c635c..d335cfb1d737b 100644
--- a/pkgs/tools/misc/addic7ed-cli/default.nix
+++ b/pkgs/tools/misc/addic7ed-cli/default.nix
@@ -27,5 +27,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ aethelz ];
     platforms = platforms.unix;
+    mainProgram = "addic7ed";
   };
 }
diff --git a/pkgs/tools/misc/addlicense/default.nix b/pkgs/tools/misc/addlicense/default.nix
index 0ea6beadea80f..532bf3464fb68 100644
--- a/pkgs/tools/misc/addlicense/default.nix
+++ b/pkgs/tools/misc/addlicense/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 }:
 
 buildGoModule rec {
@@ -14,6 +15,15 @@ buildGoModule rec {
     sha256 = "sha256-YMMHj6wctKtJi/rrcMIrLmNw/uvO6wCwokgYRQxcsFw=";
   };
 
+  patches = [
+    # Add support for Nix files. Upstream is slow with responding to PRs,
+    # patch backported from PR https://github.com/google/addlicense/pull/153.
+    (fetchpatch {
+      url = "https://github.com/google/addlicense/commit/e0fb3f44cc7670dcc5cbcec2211c9ad238c5f9f1.patch";
+      hash = "sha256-XCAvL+HEa1hGc0GAnl+oYHKzBJ3I5ArS86vgABrP/Js=";
+    })
+  ];
+
   vendorHash = "sha256-2mncc21ecpv17Xp8PA9GIodoaCxNBacbbya/shU8T9Y=";
 
   subPackages = [ "." ];
@@ -23,5 +33,6 @@ buildGoModule rec {
     homepage = "https://github.com/google/addlicense";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "addlicense";
   };
 }
diff --git a/pkgs/tools/misc/adrgen/default.nix b/pkgs/tools/misc/adrgen/default.nix
index 6f8c50bd19d09..4a367062cafa9 100644
--- a/pkgs/tools/misc/adrgen/default.nix
+++ b/pkgs/tools/misc/adrgen/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     description = "A command-line tool for generating and managing Architecture Decision Records";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "adrgen";
   };
 }
diff --git a/pkgs/tools/misc/afetch/default.nix b/pkgs/tools/misc/afetch/default.nix
index aea2ff1ff2b92..9b8fe7e4e0916 100644
--- a/pkgs/tools/misc/afetch/default.nix
+++ b/pkgs/tools/misc/afetch/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 jk ];
     platforms = platforms.linux;
+    mainProgram = "afetch";
   };
 }
diff --git a/pkgs/tools/misc/agedu/default.nix b/pkgs/tools/misc/agedu/default.nix
index deee88a7303f4..d8b2c1a2c5ca7 100644
--- a/pkgs/tools/misc/agedu/default.nix
+++ b/pkgs/tools/misc/agedu/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ symphorien ];
     platforms = platforms.unix;
+    mainProgram = "agedu";
   };
 }
diff --git a/pkgs/tools/misc/aichat/default.nix b/pkgs/tools/misc/aichat/default.nix
index 945abf1f23b94..3a35cb8884973 100644
--- a/pkgs/tools/misc/aichat/default.nix
+++ b/pkgs/tools/misc/aichat/default.nix
@@ -8,30 +8,32 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "aichat";
-  version = "0.8.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "sigoden";
     repo = "aichat";
     rev = "v${version}";
-    hash = "sha256-E/QslRDeifFHlHUELv9rYHjfCAB1yXXiXlWOyPNkfps=";
+    hash = "sha256-GWT3NYoEQ6fNLeTdBybJyQ0aqYbtaRzK1A3grUL+4jM=";
   };
 
-  cargoHash = "sha256-7TTHBeZ68G6k5eHBL1zDGsYiTyx27fBbN7Rl9AiZTng=";
+  cargoHash = "sha256-Aah6OcQW2AW+70azLEyS4xnB3AFedvA5MZP+u8RrB9s=";
 
   nativeBuildInputs = [
     pkg-config
   ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.AppKit
     darwin.apple_sdk.frameworks.CoreFoundation
     darwin.apple_sdk.frameworks.Security
   ];
 
   meta = with lib; {
-    description = "Chat with gpt-3.5/chatgpt in terminal.";
+    description = "Use GPT-4(V), Gemini, LocalAI, Ollama and other LLMs in the terminal";
     homepage = "https://github.com/sigoden/aichat";
     license = licenses.mit;
     maintainers = with maintainers; [ mwdomino ];
+    mainProgram = "aichat";
   };
 }
diff --git a/pkgs/tools/misc/alarm-clock-applet/default.nix b/pkgs/tools/misc/alarm-clock-applet/default.nix
index bcd8988622708..525d65dd7e08a 100644
--- a/pkgs/tools/misc/alarm-clock-applet/default.nix
+++ b/pkgs/tools/misc/alarm-clock-applet/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ aleksana ];
     platforms = platforms.linux;
+    mainProgram = "alarm-clock-applet";
   };
 }
diff --git a/pkgs/tools/misc/altserver-linux/default.nix b/pkgs/tools/misc/altserver-linux/default.nix
index 20251f7d17fe0..701fe0d5afb99 100644
--- a/pkgs/tools/misc/altserver-linux/default.nix
+++ b/pkgs/tools/misc/altserver-linux/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/NyaMisty/AltServer-Linux";
-    description = "AltServer for AltStore, but on-device. Requires root privileges as well as running a custom anisette server currently.";
+    description = "AltServer for AltStore, but on-device. Requires root privileges as well as running a custom anisette server currently";
     license = licenses.agpl3;
     mainProgram = "alt-server";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/tools/misc/android-tools/default.nix b/pkgs/tools/misc/android-tools/default.nix
index 6276d50c73d42..891bea3fe4744 100644
--- a/pkgs/tools/misc/android-tools/default.nix
+++ b/pkgs/tools/misc/android-tools/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl
-, cmake, pkg-config, perl, go, python3
+, cmake, ninja, pkg-config, perl, go, python3
 , protobuf, zlib, gtest, brotli, lz4, zstd, libusb1, pcre2
 }:
 
@@ -9,33 +9,17 @@ in
 
 stdenv.mkDerivation rec {
   pname = "android-tools";
-  version = "34.0.1";
+  version = "34.0.4";
 
   src = fetchurl {
     url = "https://github.com/nmeum/android-tools/releases/download/${version}/android-tools-${version}.tar.xz";
-    hash = "sha256-YCNOy8oZoXp+L0akWBlg1kW3xVuHDZJKIUlMdqb1SOw=";
+    hash = "sha256-eiL/nOqB/0849WBoeFjo+PtzNiRBJZfjzBqwJi+No6E=";
   };
 
-  patches = [
-    # Fix building with newer protobuf versions.
-    (fetchurl {
-      url = "https://gitlab.archlinux.org/archlinux/packaging/packages/android-tools/-/raw/295ad7d5cb1e3b4c75bd40281d827f9168bbaa57/protobuf-23.patch";
-      hash = "sha256-KznGgZdYT6e5wG3gtfJ6i93bYfp/JFygLW/ZzvXUA0Y=";
-    })
-  ];
-
-  # Fix linking with private abseil-cpp libraries.
-  postPatch = ''
-    sed -i '/^find_package(Protobuf REQUIRED)$/i find_package(protobuf CONFIG)' vendor/CMakeLists.txt
-  '';
-
-  nativeBuildInputs = [ cmake pkg-config perl go ];
+  nativeBuildInputs = [ cmake ninja pkg-config perl go ];
   buildInputs = [ protobuf zlib gtest brotli lz4 zstd libusb1 pcre2 ];
   propagatedBuildInputs = [ pythonEnv ];
 
-  # Don't try to fetch any Go modules via the network:
-  GOFLAGS = [ "-mod=vendor" ];
-
   preConfigure = ''
     export GOCACHE=$TMPDIR/go-cache
   '';
diff --git a/pkgs/tools/misc/antimicrox/default.nix b/pkgs/tools/misc/antimicrox/default.nix
index f989ae912edd8..85e9af7bb67e1 100644
--- a/pkgs/tools/misc/antimicrox/default.nix
+++ b/pkgs/tools/misc/antimicrox/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     maintainers = with maintainers; [ sbruder ];
     license = licenses.gpl3Plus;
     platforms = with platforms; linux;
+    mainProgram = "antimicrox";
   };
 }
diff --git a/pkgs/tools/misc/aoc-cli/default.nix b/pkgs/tools/misc/aoc-cli/default.nix
index f33ffa073d474..4fec5647e04d7 100644
--- a/pkgs/tools/misc/aoc-cli/default.nix
+++ b/pkgs/tools/misc/aoc-cli/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/scarvalhojr/aoc-cli/";
     license = licenses.mit;
     maintainers = with maintainers; [ jordanisaacs ];
+    mainProgram = "aoc";
   };
 }
diff --git a/pkgs/tools/misc/apkeep/default.nix b/pkgs/tools/misc/apkeep/default.nix
index 6cce77d1d849b..2da292b815b6c 100644
--- a/pkgs/tools/misc/apkeep/default.nix
+++ b/pkgs/tools/misc/apkeep/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/EFForg/apkeep/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "apkeep";
   };
 }
diff --git a/pkgs/tools/misc/apparix/default.nix b/pkgs/tools/misc/apparix/default.nix
index 1c78a78542564..a75a9f03f3007 100644
--- a/pkgs/tools/misc/apparix/default.nix
+++ b/pkgs/tools/misc/apparix/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.all;
+    mainProgram = "apparix";
   };
 }
diff --git a/pkgs/tools/misc/apt-offline/default.nix b/pkgs/tools/misc/apt-offline/default.nix
deleted file mode 100644
index 585033068d17c..0000000000000
--- a/pkgs/tools/misc/apt-offline/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, fetchFromGitHub, python3Packages, nix-update-script, gnupg }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "apt-offline";
-  version = "1.8.4";
-
-  src = fetchFromGitHub {
-    owner = "rickysarraf";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "RBf/QG0ewLS6gnQTBXi0I18z8QrxoBAqEXZ7dro9z5A=";
-  };
-
-  postPatch = ''
-    substituteInPlace org.debian.apt.aptoffline.policy \
-      --replace /usr/bin/ "$out/bin"
-
-    substituteInPlace apt_offline_core/AptOfflineCoreLib.py \
-      --replace /usr/bin/gpgv "${gnupg}/bin/gpgv"
-  '';
-
-  preFixup = ''
-    rm "$out/bin/apt-offline-gui"
-    rm "$out/bin/apt-offline-gui-pkexec"
-  '';
-
-  doCheck = false;
-
-  pythonImportsCheck = [ "apt_offline_core" ];
-
-  passthru.updateScript = nix-update-script { };
-
-  meta = with lib; {
-    homepage = "https://github.com/rickysarraf/apt-offline";
-    description = "Offline APT package manager";
-    license = licenses.gpl3;
-    maintainers = [ ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/misc/aptly/default.nix b/pkgs/tools/misc/aptly/default.nix
index f6dcd8e80aa12..6da10fe9b7fce 100644
--- a/pkgs/tools/misc/aptly/default.nix
+++ b/pkgs/tools/misc/aptly/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ montag451 ] ++ teams.bitnomial.members;
     changelog =
       "https://github.com/aptly-dev/aptly/releases/tag/v${version}";
+    mainProgram = "aptly";
   };
 }
diff --git a/pkgs/tools/misc/aquosctl/default.nix b/pkgs/tools/misc/aquosctl/default.nix
index d67005053b151..f8eba27e0fe47 100644
--- a/pkgs/tools/misc/aquosctl/default.nix
+++ b/pkgs/tools/misc/aquosctl/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
     platforms = platforms.linux;
+    mainProgram = "aquosctl";
   };
 }
 
diff --git a/pkgs/tools/misc/archi/default.nix b/pkgs/tools/misc/archi/default.nix
index c9a647d000a0a..cbd22971dfcc8 100644
--- a/pkgs/tools/misc/archi/default.nix
+++ b/pkgs/tools/misc/archi/default.nix
@@ -1,31 +1,33 @@
 { lib, stdenv
 , fetchurl
-, fetchzip
 , autoPatchelfHook
 , makeWrapper
 , jdk
 , libsecret
 , webkitgtk
 , wrapGAppsHook
+, _7zz
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
   pname = "Archi";
-  version = "4.7.1";
+  version = "5.2.0";
 
-  src =
-    if stdenv.hostPlatform.system == "x86_64-linux" then
-      fetchurl {
-        url = "https://www.archimatetool.com/downloads/archi/Archi-Linux64-${version}.tgz";
-        sha256 = "0sd57cfnh5q2p17sd86c8wgmqyipg29rz6iaa5brq8mwn8ps2fdw";
-      }
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then
-      fetchzip {
-        url = "https://www.archimatetool.com/downloads/archi/Archi-Mac-${version}.zip";
-        sha256 = "1h05lal5jnjwm30dbqvd6gisgrmf1an8xf34f01gs9pwqvqfvmxc";
-      }
-    else
-      throw "Unsupported system";
+  src = {
+    "x86_64-linux" = fetchurl {
+      url = "https://www.archimatetool.com/downloads/archi_5.php?/${version}/Archi-Linux64-${version}.tgz";
+      hash = "sha256-uGW4Wl3E71ZCgWzPHkmXv/PluegDF8C64FUQ7C5/SDA=";
+    };
+    "x86_64-darwin" = fetchurl {
+      url = "https://www.archimatetool.com/downloads/archi_5.php?/${version}/Archi-Mac-${version}.dmg";
+      hash = "sha256-GI9aIAYwu60RdjN0Y3O94sVMzJR1+nX4txVcvqn1r58=";
+    };
+    "aarch64-darwin" = fetchurl {
+      url = "https://www.archimatetool.com/downloads/archi_5.php?/${version}/Archi-Mac-Silicon-${version}.dmg";
+      hash = "sha256-Jg+tl902OWSm4GHxF7QXbRU5nxX4/5q6LTGubHWQ08E=";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system");
 
   buildInputs = [
     libsecret
@@ -34,7 +36,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     makeWrapper
     wrapGAppsHook
-  ] ++ lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook;
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    _7zz
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
+    autoPatchelfHook
+  ];
+
+  unpackPhase = if stdenv.hostPlatform.isDarwin then ''
+    7zz x $src
+  '' else null;
 
   installPhase =
     if stdenv.hostPlatform.system == "x86_64-linux" then
@@ -55,6 +65,10 @@ stdenv.mkDerivation rec {
         mv Archi.app "$out/Applications/"
       '';
 
+  passthru.updateScript = ./update.sh;
+
+  passthru.tests = { inherit (nixosTests) archi; };
+
   meta = with lib; {
     description = "ArchiMate modelling toolkit";
     longDescription = ''
@@ -65,6 +79,7 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ earldouglas ];
+    maintainers = with maintainers; [ earldouglas paumr ];
+    mainProgram = "Archi";
   };
 }
diff --git a/pkgs/tools/misc/archi/update.sh b/pkgs/tools/misc/archi/update.sh
new file mode 100755
index 0000000000000..dbdf876a2a4f2
--- /dev/null
+++ b/pkgs/tools/misc/archi/update.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq coreutils common-updater-scripts
+
+latestVersion=$(curl "https://api.github.com/repos/archimatetool/archi/tags" | jq -r '.[0].name' | tail -c +9)
+currentVersion=$(nix-instantiate --eval -E "with import ./. {}; archi.version or (lib.getVersion archi)" | tr -d '"')
+
+echo "latest  version: $latestVersion"
+echo "current version: $currentVersion"
+
+if [[ "$latestVersion" == "$currentVersion" ]]; then
+    echo "package is up-to-date"
+    exit 0
+fi
+
+hash_aarch64_darwin=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi_5.php?/$latestVersion/Archi-Mac-Silicon-$latestVersion.dmg)
+hash_x86_64_darwin=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi_5.php?/$latestVersion/Archi-Mac-$latestVersion.dmg)
+hash_x86_64_linux=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi_5.php?/$latestVersion/Archi-Linux64-$latestVersion.tgz)
+
+update-source-version archi 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system=aarch64-darwin
+update-source-version archi $latestVersion $hash_aarch64_darwin --system=aarch64-darwin
+update-source-version archi 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system=x86_64-darwin
+update-source-version archi $latestVersion $hash_x86_64_darwin --system=x86_64-darwin
+update-source-version archi 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system=x86_64-linux
+update-source-version archi $latestVersion $hash_x86_64_linux --system=x86_64-linux
+
diff --git a/pkgs/tools/misc/as-tree/default.nix b/pkgs/tools/misc/as-tree/default.nix
index 3b0c7c270dba3..f4c5eb1354de8 100644
--- a/pkgs/tools/misc/as-tree/default.nix
+++ b/pkgs/tools/misc/as-tree/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jez/as-tree";
     license = with licenses; [ blueOak100 ];
     maintainers = with maintainers; [ jshholland ];
+    mainProgram = "as-tree";
   };
 }
diff --git a/pkgs/tools/misc/asciinema-agg/default.nix b/pkgs/tools/misc/asciinema-agg/default.nix
index 516051e11920d..3b530eb28f6f9 100644
--- a/pkgs/tools/misc/asciinema-agg/default.nix
+++ b/pkgs/tools/misc/asciinema-agg/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/asciinema/agg/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "agg";
   };
 }
diff --git a/pkgs/tools/misc/asciinema-scenario/default.nix b/pkgs/tools/misc/asciinema-scenario/default.nix
index 45d1ba4a79eca..91102ab46eae7 100644
--- a/pkgs/tools/misc/asciinema-scenario/default.nix
+++ b/pkgs/tools/misc/asciinema-scenario/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/garbas/asciinema-scenario/";
     maintainers = with maintainers; [ garbas ];
     license = with licenses; [ mit ];
+    mainProgram = "asciinema-scenario";
   };
 }
diff --git a/pkgs/tools/misc/asciinema/default.nix b/pkgs/tools/misc/asciinema/default.nix
index 667e134056079..ff8d6cd4b1e50 100644
--- a/pkgs/tools/misc/asciinema/default.nix
+++ b/pkgs/tools/misc/asciinema/default.nix
@@ -6,14 +6,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "asciinema";
-  version = "2.3.0";
+  version = "2.4.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "asciinema";
     repo = "asciinema";
     rev = "v${version}";
-    hash = "sha256-1B2A2lfLeDHgD4tg3M5IIyHxBQ0cHuWDrQ3bUKAIFlc=";
+    hash = "sha256-UegLwpJ+uc9cW3ozLQJsQBjIGD7+vzzwzQFRV5gmDmI=";
   };
 
   nativeBuildInputs = [
@@ -40,6 +40,6 @@ python3Packages.buildPythonApplication rec {
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ eclairevoyant ];
     platforms = lib.platforms.all;
-    mainProgram = pname;
+    mainProgram = "asciinema";
   };
 }
diff --git a/pkgs/tools/misc/asdf-vm/default.nix b/pkgs/tools/misc/asdf-vm/default.nix
index 1247039e8c64e..c9b7f27c42b0b 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.13.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "asdf-vm";
     repo = "asdf";
     rev = "v${version}";
-    sha256 = "sha256-9Levs1Wr7Lohhvpy+1Xq3AYyf7+VsBalvAAA7qq6heI=";
+    sha256 = "sha256-DmwKzW0oHjokMxj2RMT4iogurEMKeAcl7MWlPTOqMmg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/askalono/default.nix b/pkgs/tools/misc/askalono/default.nix
index 35d0bf5ff22a5..3b9a0c9633e9f 100644
--- a/pkgs/tools/misc/askalono/default.nix
+++ b/pkgs/tools/misc/askalono/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/jpeddicord/askalono/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "askalono";
   };
 }
diff --git a/pkgs/tools/misc/atuin/default.nix b/pkgs/tools/misc/atuin/default.nix
index 8d773f62a4ba1..4718794155426 100644
--- a/pkgs/tools/misc/atuin/default.nix
+++ b/pkgs/tools/misc/atuin/default.nix
@@ -4,6 +4,7 @@
 , installShellFiles
 , rustPlatform
 , libiconv
+, AppKit
 , Security
 , SystemConfiguration
 , nixosTests
@@ -11,24 +12,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "atuin";
-  version = "16.0.0";
+  version = "17.2.1";
 
   src = fetchFromGitHub {
     owner = "atuinsh";
     repo = "atuin";
     rev = "v${version}";
-    hash = "sha256-Kh6aaWYV+ZG7Asvw5JdGsV+nxD+xvvQab5wLIedcQcQ=";
+    hash = "sha256-nXIYy8rE5FbXxg2EvZ02okpd+BIEI79Mk9W5YcroPGA=";
   };
 
   # TODO: unify this to one hash because updater do not support this
   cargoHash =
     if stdenv.isLinux
-    then "sha256-Ami88ScGj58jCCat4MMDvjZtV5WglmrlggpQfo+LPjs="
-    else "sha256-HQMZ9w1C6go16XGrPNniQZliIQ/5yAp2w/uUwAOQTM0=";
+    then "sha256-KKG3cJYX3lQfXY8wTdQFrdfAhlzeDuR2PYF4NWn7Swk="
+    else "sha256-VzLcMC79JYZ87ZnO0lQ/mL/5Wrnl2/6E5GblhCvh1FA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv AppKit Security SystemConfiguration ];
 
   postInstall = ''
     installShellCompletion --cmd atuin \
@@ -44,6 +45,8 @@ rustPlatform.buildRustPackage rec {
   checkFlags = [
     # tries to make a network access
     "--skip=registration"
+    # No such file or directory (os error 2)
+    "--skip=sync"
   ];
 
   meta = with lib; {
@@ -51,5 +54,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/atuinsh/atuin";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 sciencentistguy _0x4A6F ];
+    mainProgram = "atuin";
   };
 }
diff --git a/pkgs/tools/misc/audible-cli/default.nix b/pkgs/tools/misc/audible-cli/default.nix
index f83a87a75b250..297917b6a92a9 100644
--- a/pkgs/tools/misc/audible-cli/default.nix
+++ b/pkgs/tools/misc/audible-cli/default.nix
@@ -1,28 +1,63 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib, python3Packages, fetchFromGitHub, installShellFiles }:
 
 python3Packages.buildPythonApplication rec {
   pname = "audible-cli";
-  version = "0.2.4";
+  version = "0.2.6";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mkb79";
-    repo = pname;
+    repo = "audible-cli";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-umIPHKPfWKlzEVyRKbBqmul/8n13EnpfYXmSQbQtLq8=";
+    hash = "sha256-J81RcehFokOpsQBJLvmeihSrlMyX0geHPl3PPxvGjmY=";
   };
 
-  propagatedBuildInputs = with python3Packages; [ aiofiles audible click httpx pillow tabulate toml tqdm packaging setuptools questionary ];
+  nativeBuildInputs = with python3Packages; [
+    pythonRelaxDepsHook
+    setuptools
+  ] ++ [
+    installShellFiles
+  ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "httpx>=0.20.0,<0.24.0" "httpx" \
-      --replace "audible>=0.8.2" "audible"
+  propagatedBuildInputs = with python3Packages; [
+    aiofiles
+    audible
+    click
+    httpx
+    packaging
+    pillow
+    questionary
+    tabulate
+    toml
+    tqdm
+  ];
+
+  pythonRelaxDeps = [
+    "httpx"
+    "audible"
+  ];
+
+  postInstall = ''
+    export PATH=$out/bin:$PATH
+    installShellCompletion --cmd audible \
+      --bash <(source utils/code_completion/audible-complete-bash.sh) \
+      --fish <(source utils/code_completion/audible-complete-zsh-fish.sh) \
+      --zsh <(source utils/code_completion/audible-complete-zsh-fish.sh)
   '';
 
+  # upstream has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "audible_cli"
+  ];
+
   meta = with lib; {
     description = "A command line interface for audible package. With the cli you can download your Audible books, cover, chapter files";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     homepage = "https://github.com/mkb79/audible-cli";
+    changelog = "https://github.com/mkb79/audible-cli/blob/${src.rev}/CHANGELOG.md";
     maintainers = with maintainers; [ jvanbruegge ];
+    mainProgram = "audible";
   };
 }
diff --git a/pkgs/tools/misc/automirror/default.nix b/pkgs/tools/misc/automirror/default.nix
index cc10c93b3f654..457303c6bc268 100644
--- a/pkgs/tools/misc/automirror/default.nix
+++ b/pkgs/tools/misc/automirror/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     description = "Automatic Display Mirror";
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "automirror";
   };
 }
diff --git a/pkgs/tools/misc/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix
index ee1d307af4222..cc196de6230bc 100644
--- a/pkgs/tools/misc/autorandr/default.nix
+++ b/pkgs/tools/misc/autorandr/default.nix
@@ -70,7 +70,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/phillipberndt/autorandr/";
     description = "Automatically select a display configuration based on connected devices";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ coroa globin ];
+    maintainers = with maintainers; [ coroa ];
     platforms = platforms.unix;
     mainProgram = "autorandr";
   };
diff --git a/pkgs/tools/misc/autorevision/default.nix b/pkgs/tools/misc/autorevision/default.nix
index ab7add1261a9a..f0d9797693809 100644
--- a/pkgs/tools/misc/autorevision/default.nix
+++ b/pkgs/tools/misc/autorevision/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "autorevision";
   };
 }
diff --git a/pkgs/tools/misc/bandwidth/default.nix b/pkgs/tools/misc/bandwidth/default.nix
index 25a7e0647ef73..9a34442b22101 100644
--- a/pkgs/tools/misc/bandwidth/default.nix
+++ b/pkgs/tools/misc/bandwidth/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.x86 ++ platforms.arm ++ platforms.aarch64;
     maintainers = with maintainers; [ r-burns ];
+    mainProgram = "bandwidth";
   };
 }
diff --git a/pkgs/tools/misc/barman/default.nix b/pkgs/tools/misc/barman/default.nix
index f310b99f811f9..b4bf50437218c 100644
--- a/pkgs/tools/misc/barman/default.nix
+++ b/pkgs/tools/misc/barman/default.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "barman";
-  version = "3.7.0";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
     owner = "EnterpriseDB";
     repo = pname;
     rev = "refs/tags/release/${version}";
-    hash = "sha256-5mecCg5c+fu6WUgmNEL4BR+JCild02YAuYgLwO1MGnI=";
+    hash = "sha256-NcDW1SLeP2BVH+TQp1M03Otg75axSFXfwQzlEJ1JOxo=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/bartib/default.nix b/pkgs/tools/misc/bartib/default.nix
index feea3e21954a5..893fbe7b58a3f 100644
--- a/pkgs/tools/misc/bartib/default.nix
+++ b/pkgs/tools/misc/bartib/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nikolassv/bartib";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "bartib";
   };
 }
diff --git a/pkgs/tools/misc/bash_unit/default.nix b/pkgs/tools/misc/bash_unit/default.nix
index 5857bea6251d2..ffedb168f1b40 100644
--- a/pkgs/tools/misc/bash_unit/default.nix
+++ b/pkgs/tools/misc/bash_unit/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ pamplemousse ];
     platforms = platforms.all;
     license = licenses.gpl3Plus;
+    mainProgram = "bash_unit";
   };
 }
diff --git a/pkgs/tools/misc/bashcards/default.nix b/pkgs/tools/misc/bashcards/default.nix
index 30a442ef56233..bce5ab40e2dd6 100644
--- a/pkgs/tools/misc/bashcards/default.nix
+++ b/pkgs/tools/misc/bashcards/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ rpearce ];
     platforms = platforms.all;
+    mainProgram = "bashcards";
   };
 }
diff --git a/pkgs/tools/misc/bbe/default.nix b/pkgs/tools/misc/bbe/default.nix
index 1b734a83d3d3d..58d099da4b06d 100644
--- a/pkgs/tools/misc/bbe/default.nix
+++ b/pkgs/tools/misc/bbe/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.hhm ];
+    mainProgram = "bbe";
   };
 }
diff --git a/pkgs/tools/misc/bcunit/default.nix b/pkgs/tools/misc/bcunit/default.nix
index b9e7c9712daab..14cf183f5878f 100644
--- a/pkgs/tools/misc/bcunit/default.nix
+++ b/pkgs/tools/misc/bcunit/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "Belledonne Communications' fork of CUnit test framework. Part of the Linphone project.";
+    description = "Belledonne Communications' fork of CUnit test framework. Part of the Linphone project";
     homepage = "https://gitlab.linphone.org/BC/public/bcunit";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ raskin jluttine ];
diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix
index fdcdde0c04012..268b877629d8b 100644
--- a/pkgs/tools/misc/bdf2psf/default.nix
+++ b/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2psf";
-  version = "1.222";
+  version = "1.223";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "sha256-zGd2t2Qtec8Up1SHAizZp8l/fhFpa0Y1UJbB8XanX6Q=";
+    sha256 = "sha256-T9tj91mLB3PNRmJs75ohGjvBt1C5wotQr++MCdmyWBI=";
   };
 
   nativeBuildInputs = [ dpkg ];
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rnhmjoj vrthra ];
     platforms = platforms.all;
+    mainProgram = "bdf2psf";
   };
 }
diff --git a/pkgs/tools/misc/bdf2sfd/default.nix b/pkgs/tools/misc/bdf2sfd/default.nix
index f18e5e2d96277..73a72ffeb61aa 100644
--- a/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/pkgs/tools/misc/bdf2sfd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "bdf2sfd";
   };
 }
diff --git a/pkgs/tools/misc/bdfresize/default.nix b/pkgs/tools/misc/bdfresize/default.nix
index ef3ffc873aa95..077b524302752 100644
--- a/pkgs/tools/misc/bdfresize/default.nix
+++ b/pkgs/tools/misc/bdfresize/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "http://openlab.ring.gr.jp/efont/dist/tools/bdfresize/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ malte-v ];
+    mainProgram = "bdfresize";
   };
 }
diff --git a/pkgs/tools/misc/beats/default.nix b/pkgs/tools/misc/beats/default.nix
index 9b387a3939d5a..a8ad2436f08ce 100644
--- a/pkgs/tools/misc/beats/default.nix
+++ b/pkgs/tools/misc/beats/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     description = "Swatch Internet Time implemented as a C program";
     platforms = platforms.all;
     maintainers = [ maintainers.j0hax ];
+    mainProgram = "beats";
   };
 }
diff --git a/pkgs/tools/misc/betterdiscord-installer/default.nix b/pkgs/tools/misc/betterdiscord-installer/default.nix
index 1de5b7c4cf69f..f064f5227bf9f 100644
--- a/pkgs/tools/misc/betterdiscord-installer/default.nix
+++ b/pkgs/tools/misc/betterdiscord-installer/default.nix
@@ -28,5 +28,6 @@ in appimageTools.wrapType2 {
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "betterdiscord-installer";
   };
 }
diff --git a/pkgs/tools/misc/bfetch/default.nix b/pkgs/tools/misc/bfetch/default.nix
index 107f2cd945285..2d678da532332 100644
--- a/pkgs/tools/misc/bfetch/default.nix
+++ b/pkgs/tools/misc/bfetch/default.nix
@@ -24,6 +24,7 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/NNBnh/bfetch";
     license = licenses.gpl3Only;
     platforms = platforms.all;
-    maintainers = with maintainers; [ fortuneteller2k ];
+    maintainers = with maintainers; [ moni ];
+    mainProgram = "bfetch";
   };
 }
diff --git a/pkgs/tools/misc/bibtool/default.nix b/pkgs/tools/misc/bibtool/default.nix
index df27f244fca8c..f9de299c87b2f 100644
--- a/pkgs/tools/misc/bibtool/default.nix
+++ b/pkgs/tools/misc/bibtool/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
+    mainProgram = "bibtool";
   };
 }
diff --git a/pkgs/tools/misc/bibutils/default.nix b/pkgs/tools/misc/bibutils/default.nix
index 66a518407025e..c454e8cfa1d8b 100644
--- a/pkgs/tools/misc/bibutils/default.nix
+++ b/pkgs/tools/misc/bibutils/default.nix
@@ -18,13 +18,22 @@ stdenv.mkDerivation rec {
       --replace '-Wl,-soname,$(SONAME)' ""
   '';
 
+  # the configure script is not generated by autoconf
+  # and do not recognize --build/--host cross compilation flags
+  configurePlatforms = [ ];
+
   configureFlags = [
     (if static then "--static" else "--dynamic")
     "--install-dir" "$(out)/bin"
     "--install-lib" "$(out)/lib"
   ];
+
   dontAddPrefix = true;
 
+  makeFlags = [
+    "CC:=$(CC)"
+  ];
+
   doCheck = true;
   checkTarget = "test";
   preCheck = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/tools/misc/birdfont/default.nix b/pkgs/tools/misc/birdfont/default.nix
index 69b5c53bd28e8..aa8e9ac6a9e86 100644
--- a/pkgs/tools/misc/birdfont/default.nix
+++ b/pkgs/tools/misc/birdfont/default.nix
@@ -4,11 +4,11 @@ gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook, autoPatchelfHoo
 
 stdenv.mkDerivation rec {
   pname = "birdfont";
-  version = "2.33.1";
+  version = "2.33.3";
 
   src = fetchurl {
     url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-vFXpZNvsXpz7saRp6ruhvsP50rmJ2Prr2M78+8oxQ9M=";
+    sha256 = "sha256-NNw7203BtHhNyyQezb3/EP98cTsu7ABDFBnM5Ms2ePY=";
   };
 
   nativeBuildInputs = [ python3 pkg-config vala gobject-introspection wrapGAppsHook autoPatchelfHook ];
diff --git a/pkgs/tools/misc/birdfont/xmlbird.nix b/pkgs/tools/misc/birdfont/xmlbird.nix
index cacebb939953f..10aec38343515 100644
--- a/pkgs/tools/misc/birdfont/xmlbird.nix
+++ b/pkgs/tools/misc/birdfont/xmlbird.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xmlbird";
-  version = "1.2.12";
+  version = "1.2.14";
 
   src = fetchurl {
     url = "https://birdfont.org/${pname}-releases/lib${pname}-${version}.tar.xz";
-    sha256 = "15z4rvii3p54g2hasibjnf83c1702d84367fnl8pbisjqqrdcl04";
+    sha256 = "sha256-qygvJC1glSfvwWL7oQPFykgitvnWXwHMhycSjSBGksU=";
   };
 
   nativeBuildInputs = [ python3 pkg-config vala gobject-introspection ];
diff --git a/pkgs/tools/misc/bitwise/default.nix b/pkgs/tools/misc/bitwise/default.nix
index e9443f25c0a9a..a01fa83b3c79e 100644
--- a/pkgs/tools/misc/bitwise/default.nix
+++ b/pkgs/tools/misc/bitwise/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = [ maintainers.whonore ];
     platforms = platforms.unix;
+    mainProgram = "bitwise";
   };
 }
diff --git a/pkgs/tools/misc/bkt/default.nix b/pkgs/tools/misc/bkt/default.nix
index 61926352ce334..beef0b8412ca2 100644
--- a/pkgs/tools/misc/bkt/default.nix
+++ b/pkgs/tools/misc/bkt/default.nix
@@ -4,16 +4,16 @@
 }: rustPlatform.buildRustPackage rec {
 
   pname = "bkt";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "dimo414";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CMCO1afTWhXlWpy9D7txqI1FHxGDgdVdkKtyei6oFJU=";
+    sha256 = "sha256-XQK7oZfutqCvFoGzMH5G5zoGvqB8YaXSdrwjS/SVTNU=";
   };
 
-  cargoHash = "sha256-T4JT8GzKqsQQfe3zfst6gNEvdY7zs2h2H3s6slaRhYY=";
+  cargoHash = "sha256-Pl+a+ZpxaguRloH8R7x4FmYpTwTUwFrYy7AS/5K3L+8=";
 
   meta = {
     description = "A subprocess caching utility";
diff --git a/pkgs/tools/misc/bkyml/default.nix b/pkgs/tools/misc/bkyml/default.nix
index bab6f7865e7d7..8b930e960e246 100644
--- a/pkgs/tools/misc/bkyml/default.nix
+++ b/pkgs/tools/misc/bkyml/default.nix
@@ -39,7 +39,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/joscha/bkyml";
-    description = "A CLI tool to generate a pipeline.yaml file for Buildkite on the fly.";
+    description = "A CLI tool to generate a pipeline.yaml file for Buildkite on the fly";
     license = licenses.mit;
     maintainers = with maintainers; [ olebedev ];
   };
diff --git a/pkgs/tools/misc/blacken-docs/default.nix b/pkgs/tools/misc/blacken-docs/default.nix
index 186f1d393ac38..434f684b78d29 100644
--- a/pkgs/tools/misc/blacken-docs/default.nix
+++ b/pkgs/tools/misc/blacken-docs/default.nix
@@ -34,5 +34,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Run Black on Python code blocks in documentation files";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "blacken-docs";
   };
 }
diff --git a/pkgs/tools/misc/blahaj/default.nix b/pkgs/tools/misc/blahaj/default.nix
index 1b0e5ff839ead..c0e591515cdf5 100644
--- a/pkgs/tools/misc/blahaj/default.nix
+++ b/pkgs/tools/misc/blahaj/default.nix
@@ -5,13 +5,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "blahaj";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "GeopJr";
     repo = "BLAHAJ";
     rev = "v${version}";
-    hash = "sha256-rX6isAIlpNDBOGLmtvRXmqY90ByFfXeYI0HAAPIMXf8=";
+    hash = "sha256-CmMF9jDKUo+c8dYc2UEHKdBDE4dgwExcRS5sSUsUJik=";
   };
 
   meta = with lib; {
@@ -19,5 +19,6 @@ crystal.buildCrystalPackage rec {
     homepage = "https://blahaj.queer.software";
     license = licenses.bsd2;
     maintainers = with maintainers; [ aleksana cafkafk ];
+    mainProgram = "blahaj";
   };
 }
diff --git a/pkgs/tools/misc/blflash/default.nix b/pkgs/tools/misc/blflash/default.nix
index 8cb5d6fcba118..36c1712a6e579 100644
--- a/pkgs/tools/misc/blflash/default.nix
+++ b/pkgs/tools/misc/blflash/default.nix
@@ -8,15 +8,16 @@ rustPlatform.buildRustPackage rec {
     owner = "spacemeowx2";
     repo = "blflash";
     rev = "v${version}";
-    sha256 = "sha256-lv5bUbq5AnZVeR8V0A4pamY9ZIQAhLmvZEr+CRMPcj0=";
+    hash = "sha256-lv5bUbq5AnZVeR8V0A4pamY9ZIQAhLmvZEr+CRMPcj0=";
   };
 
-  cargoSha256 = "sha256-NRBW2rGrtEmmxONTpCM1D+o5HtnLjp175Sq9+aCp7ZE=";
+  cargoHash = "sha256-NRBW2rGrtEmmxONTpCM1D+o5HtnLjp175Sq9+aCp7ZE=";
 
   meta = with lib; {
     description = "An bl602 serial flasher written in Rust";
     homepage = "https://github.com/spacemeowx2/blflash";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ _0x4A6F ];
+    mainProgram = "blflash";
   };
 }
diff --git a/pkgs/tools/misc/blink1-tool/default.nix b/pkgs/tools/misc/blink1-tool/default.nix
index 44cfa2fbfe72b..df994593d99b4 100644
--- a/pkgs/tools/misc/blink1-tool/default.nix
+++ b/pkgs/tools/misc/blink1-tool/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ cc-by-sa-40 ];
     maintainers = with maintainers; [ cransom ];
     platforms = platforms.linux;
+    mainProgram = "blink1-tool";
   };
 }
diff --git a/pkgs/tools/misc/bmap-tools/default.nix b/pkgs/tools/misc/bmap-tools/default.nix
index c78c0121ed0c7..4bf170ccbc7d5 100644
--- a/pkgs/tools/misc/bmap-tools/default.nix
+++ b/pkgs/tools/misc/bmap-tools/default.nix
@@ -22,5 +22,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "bmaptool";
   };
 }
diff --git a/pkgs/tools/misc/bmon/default.nix b/pkgs/tools/misc/bmon/default.nix
index e85c2b96bd347..237eb7476da56 100644
--- a/pkgs/tools/misc/bmon/default.nix
+++ b/pkgs/tools/misc/bmon/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ bjornfor pSub ];
+    mainProgram = "bmon";
   };
 }
diff --git a/pkgs/tools/misc/bogofilter/default.nix b/pkgs/tools/misc/bogofilter/default.nix
index 0446a58efbc45..df78108e43e20 100644
--- a/pkgs/tools/misc/bogofilter/default.nix
+++ b/pkgs/tools/misc/bogofilter/default.nix
@@ -1,21 +1,31 @@
-{fetchurl, lib, stdenv, flex, db}:
+{ lib
+, stdenv
+, fetchurl
+, flex
+, db
+, makeWrapper
+, pax
+}:
 
 stdenv.mkDerivation rec {
   pname = "bogofilter";
-  version = "1.2.4";
+  version = "1.2.5";
 
   src = fetchurl {
-    url = "mirror://sourceforge/bogofilter/bogofilter-${version}.tar.bz2";
-    sha256 = "1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1";
+    url = "mirror://sourceforge/bogofilter/bogofilter-${version}.tar.xz";
+    hash = "sha256-MkihNzv/VSxQCDStvqS2yu4EIkUWrlgfslpMam3uieo=";
   };
 
-  # FIXME: We would need `pax' as a "propagated build input" (for use
-  # by the `bf_tar' script) but we don't have it currently.
+  nativeBuildInputs = [ makeWrapper ];
 
   buildInputs = [ flex db ];
 
   doCheck = false; # needs "y" tool
 
+  postInstall = ''
+    wrapProgram "$out/bin/bf_tar" --prefix PATH : "${lib.makeBinPath [ pax ]}"
+  '';
+
   meta = {
     homepage = "http://bogofilter.sourceforge.net/";
     longDescription = ''
diff --git a/pkgs/tools/misc/boltbrowser/default.nix b/pkgs/tools/misc/boltbrowser/default.nix
index 855d9f21f2b2f..f4603ab3b4adb 100644
--- a/pkgs/tools/misc/boltbrowser/default.nix
+++ b/pkgs/tools/misc/boltbrowser/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/br0xen/boltbrowser";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "boltbrowser";
   };
 }
diff --git a/pkgs/tools/misc/bootspec/default.nix b/pkgs/tools/misc/bootspec/default.nix
index 7bf6bc478d7c0..2ffa6c47ab09e 100644
--- a/pkgs/tools/misc/bootspec/default.nix
+++ b/pkgs/tools/misc/bootspec/default.nix
@@ -1,6 +1,7 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, fetchpatch
 }:
 rustPlatform.buildRustPackage rec {
   pname = "bootspec";
@@ -13,6 +14,17 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-5IGSMHeL0eKfl7teDejAckYQjc8aeLwfwIQSzQ8YaAg=";
   };
 
+  patches = [
+    # https://github.com/DeterminateSystems/bootspec/pull/127
+    # Fixes the synthesize tool for aarch64-linux
+    (fetchpatch {
+      name = "aarch64-support.patch";
+      url = "https://github.com/DeterminateSystems/bootspec/commit/1d0e925f360f0199f13422fb7541225fd162fd4f.patch";
+      sha256 = "sha256-wU/jWnOqVBrU2swANdXbQfzRpNd/JIS4cxSyCvixZM0=";
+    })
+
+  ];
+
   cargoHash = "sha256-eGSKVHjPnHK7WyGkO5LIjocNGHawahYQR3H5Lgk1C9s=";
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/boxxy/default.nix b/pkgs/tools/misc/boxxy/default.nix
index 8bf9ed26a73c4..ac723e9590223 100644
--- a/pkgs/tools/misc/boxxy/default.nix
+++ b/pkgs/tools/misc/boxxy/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "boxxy";
-  version = "0.8.0";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
     owner = "queer";
     repo = "boxxy";
     rev = "v${version}";
-    hash = "sha256-I7VQfLCD+nfFllbns7yjYMl9hNwM8AgUbiHte4vMciM=";
+    hash = "sha256-euIecFMDktL0gDkso83T1qZfVdfYAAC+WBMsfZaarAQ=";
   };
 
-  cargoHash = "sha256-xtyiJZ9jPP2M0pUpMwQlUa9QgsRhFLqEm+hE3K4WO88=";
+  cargoHash = "sha256-8aIuMRjZHLlP3x+C9S9WX21/i98RAUvGGwzptzCpRR4=";
 
   nativeBuildInputs = [
     pkg-config
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ dit7ya figsoda ];
     platforms = platforms.linux;
     broken = stdenv.isAarch64;
+    mainProgram = "boxxy";
   };
 }
diff --git a/pkgs/tools/misc/brltty/default.nix b/pkgs/tools/misc/brltty/default.nix
index 5838c24172f8e..f9b3ec3f73ac2 100644
--- a/pkgs/tools/misc/brltty/default.nix
+++ b/pkgs/tools/misc/brltty/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, python3, bluez
-, tcl, acl, kmod, coreutils, shadow, util-linux, udev
+, tcl, acl, kmod, coreutils, shadow, util-linux
 , alsaSupport ? stdenv.isLinux, alsa-lib
 , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
 }:
@@ -90,6 +90,6 @@ stdenv.mkDerivation rec {
      )
      substituteInPlace $out/libexec/brltty/systemd-wrapper \
        --replace 'logger' "${util-linux}/bin/logger" \
-       --replace 'udevadm' "${udev}/bin/udevadm"
+       --replace 'udevadm' "${systemd}/bin/udevadm"
   '';
 }
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 39790d653813f..1650cbd419fe7 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -8,24 +8,26 @@
 , libgit2
 , oniguruma
 , libiconv
+, Foundation
 , Security
 , xorg
 , zlib
 , buildPackages
+, withClipboard ? false
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.26.1";
+  version = "1.32.0";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IqDcE6P4DSH/A4TKzPoLZsO00t0zGPCutM0yVI41nrM=";
+    hash = "sha256-CFrWX40VpkMySDYoci+i7CrypT/dIW3rg/jzRU5V5Tc=";
   };
 
-  cargoHash = "sha256-Lo/O/q2kGioWxkRJ/c9jWAHSm2Y839RsK4NM4qP576c=";
+  cargoHash = "sha256-QCCTqP3GNfg/zRXqjpDSnFSwEF0116qtSZ0yYkLbjgQ=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -34,11 +36,14 @@ rustPlatform.buildRustPackage rec {
   ];
 
   buildInputs = [ libgit2 oniguruma xorg.libxcb ] ++ lib.optionals stdenv.isDarwin [
+    Foundation
     libiconv
     Security
     zlib
   ];
 
+  buildFeatures = lib.optionals withClipboard [ "clipboard" ];
+
   RUSTONIG_SYSTEM_LIBONIG = true;
 
   postPatch = ''
@@ -88,5 +93,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Canop/broot/releases/tag/v${version}";
     maintainers = with maintainers; [ dywedir ];
     license = with licenses; [ mit ];
+    mainProgram = "broot";
   };
 }
diff --git a/pkgs/tools/misc/bsp-layout/default.nix b/pkgs/tools/misc/bsp-layout/default.nix
index e5a78adcadfc9..e0348fb9207ef 100644
--- a/pkgs/tools/misc/bsp-layout/default.nix
+++ b/pkgs/tools/misc/bsp-layout/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ totoroot ];
     platforms = platforms.linux;
+    mainProgram = "bsp-layout";
   };
 }
diff --git a/pkgs/tools/misc/btdu/default.nix b/pkgs/tools/misc/btdu/default.nix
index 8031b5ea165d9..631c542a9f8ad 100644
--- a/pkgs/tools/misc/btdu/default.nix
+++ b/pkgs/tools/misc/btdu/default.nix
@@ -88,5 +88,6 @@ stdenv.mkDerivation rec {
       license = licenses.gpl2Only;
       platforms = platforms.linux;
       maintainers = with maintainers; [ atila ];
+      mainProgram = "btdu";
     };
 }
diff --git a/pkgs/tools/misc/btrfs-assistant/default.nix b/pkgs/tools/misc/btrfs-assistant/default.nix
index 936409c3c0197..474a5e5dc5b4e 100644
--- a/pkgs/tools/misc/btrfs-assistant/default.nix
+++ b/pkgs/tools/misc/btrfs-assistant/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "btrfs-assistant";
-  version = "1.8";
+  version = "1.9";
 
   src = fetchFromGitLab {
     owner = "btrfs-assistant";
     repo = "btrfs-assistant";
     rev = finalAttrs.version;
-    hash = "sha256-Ay2wxDVue+tG09RgAo4Zg2ktlq6dk7GdIwAlbuVULB4=";
+    hash = "sha256-a854WI8f9/G/BRU5rn1FKC6WRZyXNYsUL4p258C8ppw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/buildtorrent/default.nix b/pkgs/tools/misc/buildtorrent/default.nix
index ce357a1d491e1..d9fc90768a984 100644
--- a/pkgs/tools/misc/buildtorrent/default.nix
+++ b/pkgs/tools/misc/buildtorrent/default.nix
@@ -14,5 +14,6 @@ stdenv.mkDerivation rec {
     homepage = "https://mathr.co.uk/blog/torrent.html";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
+    mainProgram = "buildtorrent";
   };
 }
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index a82d62aed0df7..6b9b50144708c 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -93,5 +93,6 @@ mkDerivation rec {
     license = with licenses; [ gpl3Plus bsd2 cc0 ];
     maintainers = with maintainers; [ manveru vlinkz ];
     platforms = platforms.linux;
+    mainProgram = "calamares";
   };
 }
diff --git a/pkgs/tools/misc/capture/default.nix b/pkgs/tools/misc/capture/default.nix
index d8b2fe6765184..be08be4f1436a 100644
--- a/pkgs/tools/misc/capture/default.nix
+++ b/pkgs/tools/misc/capture/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/buhman/capture";
     maintainers = [ maintainers.ar1a ];
     license = licenses.gpl3Plus;
+    mainProgram = "capture";
   };
 }
diff --git a/pkgs/tools/misc/castty/default.nix b/pkgs/tools/misc/castty/default.nix
index 075c6d739b3f8..86dae729790b8 100644
--- a/pkgs/tools/misc/castty/default.nix
+++ b/pkgs/tools/misc/castty/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     maintainers = with maintainers; [ iblech ];
     platforms = platforms.unix;
+    mainProgram = "castty";
   };
 }
diff --git a/pkgs/tools/misc/cc2538-bsl/default.nix b/pkgs/tools/misc/cc2538-bsl/default.nix
index 16c858fc58172..a4b3c992544a9 100644
--- a/pkgs/tools/misc/cc2538-bsl/default.nix
+++ b/pkgs/tools/misc/cc2538-bsl/default.nix
@@ -1,23 +1,26 @@
-{ lib, fetchFromGitHub, fetchpatch, python3Packages }:
+{ lib
+, fetchFromGitHub
+, fetchpatch
+, python3Packages
+}:
 
 python3Packages.buildPythonPackage rec {
   pname = "cc2538-bsl";
-  version = "unstable-2022-08-03";
-  format = "setuptools";
+  version = "2.1-unstable-2023-10-03";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "JelmerT";
-    repo = pname;
-    rev = "538ea0deb99530e28fdf1b454e9c9d79d85a3970";
-    hash = "sha256-fPY12kValxbJORi9xNyxzwkGpD9F9u3M1+aa9IlSiaE=";
+    repo = "cc2538-bsl";
+    rev = "4d64ac633dbaf29d098842c5937ed6eea2fd7c45";
+    hash = "sha256-NX2jPYAz15bSucj/YR5E/0eJy/cbszSrNxyJHRsbXxo=";
   };
 
   patches = [
-    # https://github.com/JelmerT/cc2538-bsl/pull/138
     (fetchpatch {
-      name = "clean-up-install-dependencies.patch";
-      url = "https://github.com/JelmerT/cc2538-bsl/commit/bf842adf8e99a9eb8528579e5b85e59ee23be08d.patch";
-      hash = "sha256-XKQ0kfl8yFrSF5RosHY9OvJR18Fh0dmAN1FlfZ024ME=";
+      # fix extras specification in setup.py; https://github.com/JelmerT/cc2538-bsl/pull/143
+      url = "https://github.com/JelmerT/cc2538-bsl/commit/c70f58ec0222357db8020176711d6d45cf24da35.patch";
+      hash = "sha256-Rxm/TRcm87WgRfq60cu0loyrbJmZou09XYR7uhrhhj8=";
     })
   ];
 
@@ -48,6 +51,7 @@ python3Packages.buildPythonPackage rec {
     description = "Flash TI SimpleLink chips (CC2538, CC13xx, CC26xx) over serial";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lorenz ];
+    mainProgram = "cc2538-bsl";
   };
 }
 
diff --git a/pkgs/tools/misc/ccal/default.nix b/pkgs/tools/misc/ccal/default.nix
index 55ccb7f774c9c..e7a01795f0db1 100644
--- a/pkgs/tools/misc/ccal/default.nix
+++ b/pkgs/tools/misc/ccal/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   pname = "ccal";
   version = "2.5.3";
   src = fetchurl {
-    url = "http://ccal.chinesebay.com/ccal/${pname}-${version}.tar.gz";
+    url = "https://ccal.chinesebay.com/${pname}-${version}.tar.gz";
     sha256 = "sha256-PUy9yfkFzgKrSEBB+79/C3oxmuajUMbBbWNuGlpQ35Y=";
   };
 
@@ -25,11 +25,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "http://ccal.chinesebay.com/ccal.htm";
+    homepage = "https://ccal.chinesebay.com/ccal.htm";
     description = "Command line Chinese calendar viewer, similar to cal";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ sharzy ];
     platforms = lib.platforms.all;
   };
 }
-
diff --git a/pkgs/tools/misc/cf-terraforming/default.nix b/pkgs/tools/misc/cf-terraforming/default.nix
index 70e6aa04e6f46..d272309061571 100644
--- a/pkgs/tools/misc/cf-terraforming/default.nix
+++ b/pkgs/tools/misc/cf-terraforming/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cf-terraforming";
-  version = "0.14.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cf-terraforming";
     rev = "v${version}";
-    sha256 = "sha256-9aGN3TP4bMz4V0MRrNFxMm16k9RfvU5iDVwe+Ws4Ask=";
+    sha256 = "sha256-U6xYJWVf1O/DLtC6J3b+DL97QYUW6ObRh/9EKXhi/j4=";
   };
 
-  vendorHash = "sha256-fswT6t2LP6gRmCHrSHVJGdNc6gic3rMSrE+STe5oiyQ=";
+  vendorHash = "sha256-r5qlnY3gIigjbFUj9ZVY9WTQM4aYNlTv3HHpc2r/+Rw=";
   ldflags = [ "-X github.com/cloudflare/cf-terraforming/internal/app/cf-terraforming/cmd.versionString=${version}" ];
 
   # The test suite insists on downloading a binary release of Terraform from
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/cloudflare/cf-terraforming/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ benley ];
+    mainProgram = "cf-terraforming";
   };
 }
diff --git a/pkgs/tools/misc/cfonts/default.nix b/pkgs/tools/misc/cfonts/default.nix
index cbee66e68f4a6..244360c99d8bf 100644
--- a/pkgs/tools/misc/cfonts/default.nix
+++ b/pkgs/tools/misc/cfonts/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
       "A silly little command line tool for sexy ANSI fonts in the console";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ leifhelm ];
+    mainProgram = "cfonts";
   };
 }
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index a03a55387d6b0..2ba80d7565d38 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.12.5";
+  version = "1.14.0";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "sha256-2li2Vp+W4Q2/8WY8FJ519BuVR9KzddIJ1j/GY/hLMZo=";
+    sha256 = "sha256-7l8+WD5/5uBXVnhwqiEScIEQ1dg0W2zqqZJ2AeKCZRU=";
   };
 
   nativeBuildInputs = [ autoconf
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl3Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.mog ];
+    mainProgram = "chafa";
   };
 }
diff --git a/pkgs/tools/misc/changelogger/default.nix b/pkgs/tools/misc/changelogger/default.nix
index ce7a37c7cc1ae..bae346ca37c5b 100644
--- a/pkgs/tools/misc/changelogger/default.nix
+++ b/pkgs/tools/misc/changelogger/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "changelogger";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "MarkusFreitag";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-g3d4BEVMQGBEKx+YVPjPrypWQNtEun/pSRgAsJY/RT4=";
+    sha256 = "sha256-XDiO8r1HpdsfBKzFLnsWdxte2EqL1blPH21137fNm5M=";
   };
 
   vendorHash = "sha256-E6J+0tZriskBnXdhQOQA240c3z+laXM5honoREjHPfM=";
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/MarkusFreitag/changelogger/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ tomsiewert ];
+    mainProgram = "changelogger";
   };
 }
diff --git a/pkgs/tools/misc/charasay/default.nix b/pkgs/tools/misc/charasay/default.nix
index c66605cc826c9..7e79c6479b40d 100644
--- a/pkgs/tools/misc/charasay/default.nix
+++ b/pkgs/tools/misc/charasay/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "charasay";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "latipun7";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ijr6AvhoiYWHYTPUxSdBds9jBW1HEy1n7h6zH1VGP1c=";
+    hash = "sha256-7z5+7yrx5X5rdBMNj9oWBZ2IX0s88c1SLhgz2IDDEn8=";
   };
 
-  cargoHash = "sha256-HCHdiCeb4dqxQMWfYZV2k8Yq963vWfmL05BRpVYmIcg=";
+  cargoHash = "sha256-5htNU8l+amh+C8EL1K4UcXzf5Pbhhjd5RhxrucJoj/M=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/latipun7/charasay";
     license = licenses.mit;
     maintainers = with maintainers; [ hmajid2301 ];
+    mainProgram = "chara";
   };
 }
diff --git a/pkgs/tools/misc/chatgpt-cli/default.nix b/pkgs/tools/misc/chatgpt-cli/default.nix
index 661e38a025952..b823eb997e84f 100644
--- a/pkgs/tools/misc/chatgpt-cli/default.nix
+++ b/pkgs/tools/misc/chatgpt-cli/default.nix
@@ -5,22 +5,18 @@
 }:
 buildGoModule rec {
   pname = "chatgpt";
-  version = "1.2.0";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "j178";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-5tEtkEDQxWFVWyK7uipm20yccCPkCDaMLzS25MmGRbE=";
+    hash = "sha256-PwC/LyWGgFdj1aye8A/W9wc78z9mEbvz4DNsB0eHtl0=";
   };
 
-  vendorHash = "sha256-q1+4KExXth7+UC8h0+M6ChnW7T1j468umi7Q1jwnzgo=";
+  vendorHash = "sha256-hmg301m4Zn7BzlOJ6VVySkxwFt7CDT7MS9EH1JqeW/E=";
 
-  subPackages = [ "cmd" ];
-
-  postInstall = ''
-    mv $out/bin/cmd $out/bin/$pname
-  '';
+  subPackages = [ "cmd/chatgpt" ];
 
   meta = with lib; {
     description = "Interactive CLI for ChatGPT";
diff --git a/pkgs/tools/misc/checkpwn/default.nix b/pkgs/tools/misc/checkpwn/default.nix
index 413dbef68fbe8..994fecc6c4db1 100644
--- a/pkgs/tools/misc/checkpwn/default.nix
+++ b/pkgs/tools/misc/checkpwn/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/brycx/checkpwn/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "checkpwn";
   };
 }
diff --git a/pkgs/tools/misc/chef-cli/default.nix b/pkgs/tools/misc/chef-cli/default.nix
index bc43592d4f28b..af3a60103ca35 100644
--- a/pkgs/tools/misc/chef-cli/default.nix
+++ b/pkgs/tools/misc/chef-cli/default.nix
@@ -14,5 +14,6 @@ bundlerApp {
     homepage = "https://chef.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "chef-cli";
   };
 }
diff --git a/pkgs/tools/misc/chelf/default.nix b/pkgs/tools/misc/chelf/default.nix
index 25344d8658e82..7dd84eba1e441 100644
--- a/pkgs/tools/misc/chelf/default.nix
+++ b/pkgs/tools/misc/chelf/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Gottox/chelf";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "chelf";
   };
 }
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 9f75753e89889..52bbd78bef630 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.40.0";
+  version = "2.46.0";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    hash = "sha256-0FzhIsCsOVoQpxpxl83Ei8v8ANbanltLi5nvOt0kWsA=";
+    hash = "sha256-A296BsUyZFgVUsoplkBJ1Xrr21VRjcRSqjk2JU44ilg=";
   };
 
-  vendorHash = "sha256-941uw/7NoVnW3Ul5bAJLyvQ+RrNoiUVJHpKlfkiGT8c=";
+  vendorHash = "sha256-EGc4l02by6K0j0RZZ7YuGkpJ8UaZ4cYcxBd+ECHdwq4=";
 
   doCheck = false;
 
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/twpayne/chezmoi/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ jhillyerd ];
+    mainProgram = "chezmoi";
   };
 }
diff --git a/pkgs/tools/misc/cicero-tui/default.nix b/pkgs/tools/misc/cicero-tui/default.nix
index 8578b1a6f1395..0ab33112a6e3b 100644
--- a/pkgs/tools/misc/cicero-tui/default.nix
+++ b/pkgs/tools/misc/cicero-tui/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "cicero";
   };
 }
diff --git a/pkgs/tools/misc/citron/default.nix b/pkgs/tools/misc/citron/default.nix
index 17fa3c5e5a210..d40c8c9369283 100644
--- a/pkgs/tools/misc/citron/default.nix
+++ b/pkgs/tools/misc/citron/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ vuimuich ];
     platforms = lib.platforms.linux;
+    mainProgram = "citron";
   };
 }
diff --git a/pkgs/tools/misc/ckb-next/default.nix b/pkgs/tools/misc/ckb-next/default.nix
index f9309ecf81ddf..549cb543af192 100644
--- a/pkgs/tools/misc/ckb-next/default.nix
+++ b/pkgs/tools/misc/ckb-next/default.nix
@@ -1,17 +1,17 @@
-{ lib, mkDerivation, fetchFromGitHub, substituteAll, udev, stdenv
+{ lib, wrapQtAppsHook, fetchFromGitHub, substituteAll, udev, stdenv
 , pkg-config, qtbase, cmake, zlib, kmod, libXdmcp, qttools, qtx11extras, libdbusmenu
-, withPulseaudio ? stdenv.isLinux, libpulseaudio
+, withPulseaudio ? stdenv.isLinux, libpulseaudio, quazip
 }:
 
-mkDerivation rec {
-  version = "0.5.0";
+stdenv.mkDerivation rec {
+  version = "0.6.0";
   pname = "ckb-next";
 
   src = fetchFromGitHub {
     owner = "ckb-next";
     repo = "ckb-next";
     rev = "v${version}";
-    sha256 = "sha256-yR1myagAqavAR/7lPdufcrJpPmXW7r4N4pxTMF6NbuE=";
+    hash = "sha256-G0cvET3wMIi4FlBmaTkdTyYtcdVGzK4X0C2HYZr43eg=";
   };
 
   buildInputs = [
@@ -22,9 +22,11 @@ mkDerivation rec {
     qttools
     qtx11extras
     libdbusmenu
+    quazip
   ] ++ lib.optional withPulseaudio libpulseaudio;
 
   nativeBuildInputs = [
+    wrapQtAppsHook
     pkg-config
     cmake
   ];
diff --git a/pkgs/tools/misc/clac/default.nix b/pkgs/tools/misc/clac/default.nix
index 0c4676323003f..e87fc0bb97ae5 100644
--- a/pkgs/tools/misc/clac/default.nix
+++ b/pkgs/tools/misc/clac/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
+    mainProgram = "clac";
   };
 }
diff --git a/pkgs/tools/misc/claws/default.nix b/pkgs/tools/misc/claws/default.nix
index 5690ec74d0a25..05231d2b16e67 100644
--- a/pkgs/tools/misc/claws/default.nix
+++ b/pkgs/tools/misc/claws/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "Interactive command line client for testing websocket servers";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "claws";
   };
 }
diff --git a/pkgs/tools/misc/clematis/default.nix b/pkgs/tools/misc/clematis/default.nix
index ea3c209600add..cba0b6cd5f956 100644
--- a/pkgs/tools/misc/clematis/default.nix
+++ b/pkgs/tools/misc/clematis/default.nix
@@ -17,10 +17,11 @@ buildGoModule rec {
   vendorHash = "sha256-YKu+7LFUoQwCH//URIswiaqa0rmnWZJvuSn/68G3TUA=";
 
   meta = with lib; {
-    description = "Discord rich presence for MPRIS music players.";
+    description = "Discord rich presence for MPRIS music players";
     homepage = "https://github.com/TorchedSammy/Clematis";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ misterio77 ];
+    mainProgram = "clematis";
   };
 }
diff --git a/pkgs/tools/misc/clickclack/default.nix b/pkgs/tools/misc/clickclack/default.nix
index da351dbbc69ce..884c2ac84bc18 100644
--- a/pkgs/tools/misc/clickclack/default.nix
+++ b/pkgs/tools/misc/clickclack/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "clickclack";
   };
 }
diff --git a/pkgs/tools/misc/clini/default.nix b/pkgs/tools/misc/clini/default.nix
index 751cb31470262..95d86e6fd46d1 100644
--- a/pkgs/tools/misc/clini/default.nix
+++ b/pkgs/tools/misc/clini/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/domgreen/clini";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
+    mainProgram = "clini";
   };
 }
diff --git a/pkgs/tools/misc/clipboard-jh/default.nix b/pkgs/tools/misc/clipboard-jh/default.nix
index 1c9ccfe41b1bb..abd52a5d012e1 100644
--- a/pkgs/tools/misc/clipboard-jh/default.nix
+++ b/pkgs/tools/misc/clipboard-jh/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clipboard-jh";
-  version = "0.8.3";
+  version = "0.9.0.1";
 
   src = fetchFromGitHub {
     owner = "Slackadays";
     repo = "clipboard";
     rev = version;
-    hash = "sha256-G0zOr56dR9rmymQ9MwPNnMZ2LZuuz4NiswRQIvdS9MY=";
+    hash = "sha256-iILtyURYCshicgAV3MWkgMQsXHe7Unj1A08W7tUMU2o=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/clipbuzz/default.nix b/pkgs/tools/misc/clipbuzz/default.nix
index 7bece66a786de..9e1e3724b8993 100644
--- a/pkgs/tools/misc/clipbuzz/default.nix
+++ b/pkgs/tools/misc/clipbuzz/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://trong.loang.net/~cnx/clipbuzz";
     license = lib.licenses.unlicense;
     maintainers = [ lib.maintainers.McSinyx ];
+    mainProgram = "clipbuzz";
   };
 })
diff --git a/pkgs/tools/misc/clipnotify/default.nix b/pkgs/tools/misc/clipnotify/default.nix
index 51a67f6983f81..8f94f974b058d 100644
--- a/pkgs/tools/misc/clipnotify/default.nix
+++ b/pkgs/tools/misc/clipnotify/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     maintainers = with maintainers; [ jb55 ];
     license = licenses.publicDomain;
+    mainProgram = "clipnotify";
   };
 }
diff --git a/pkgs/tools/misc/clipster/default.nix b/pkgs/tools/misc/clipster/default.nix
index e6efabb5b33a3..26170d148943a 100644
--- a/pkgs/tools/misc/clipster/default.nix
+++ b/pkgs/tools/misc/clipster/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation  rec {
     homepage = "https://github.com/mrichar1/clipster";
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
+    mainProgram = "clipster";
   };
 }
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index a8fc4a4f01b88..fdd932634c5e2 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -56,5 +56,6 @@ in stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ rycee ];
+    mainProgram = "cloc";
   };
 }
diff --git a/pkgs/tools/misc/clolcat/default.nix b/pkgs/tools/misc/clolcat/default.nix
index 25c7ade5cd623..5ba22c69b41b3 100644
--- a/pkgs/tools/misc/clolcat/default.nix
+++ b/pkgs/tools/misc/clolcat/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = [ maintainers.felipeqq2 ];
     license = licenses.wtfpl;
+    mainProgram = "clolcat";
   };
 }
diff --git a/pkgs/tools/misc/cloud-sql-proxy/default.nix b/pkgs/tools/misc/cloud-sql-proxy/default.nix
deleted file mode 100644
index 48783fddd6545..0000000000000
--- a/pkgs/tools/misc/cloud-sql-proxy/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-}:
-
-buildGoModule rec {
-  pname = "cloud-sql-proxy";
-  version = "2.7.0";
-
-  src = fetchFromGitHub {
-    owner = "GoogleCloudPlatform";
-    repo = "cloud-sql-proxy";
-    rev = "v${version}";
-    hash = "sha256-4PB9Eaqb8teF+gmiHD2VAIFnxqiK2Nb0u+xSNAM8iMs=";
-  };
-
-  subPackages = [ "." ];
-
-  vendorHash = "sha256-LaI7IdSyB7ETTjqIcIPDf3noEbvwlN3+KqrkSm8B6m8=";
-
-  preCheck = ''
-    buildFlagsArray+="-short"
-  '';
-
-  meta = with lib; {
-    description = "Utility for ensuring secure connections to Google Cloud SQL instances";
-    homepage = "https://github.com/GoogleCloudPlatform/cloud-sql-proxy";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ nicknovitski totoroot ];
-    mainProgram = "cloud-sql-proxy";
-  };
-}
diff --git a/pkgs/tools/misc/clpeak/default.nix b/pkgs/tools/misc/clpeak/default.nix
index c87729d81ae0f..4539602320f3f 100644
--- a/pkgs/tools/misc/clpeak/default.nix
+++ b/pkgs/tools/misc/clpeak/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/krrishnarraj/clpeak/";
     license = licenses.unlicense;
     maintainers = with maintainers; [ ];
+    mainProgram = "clpeak";
   };
 }
diff --git a/pkgs/tools/misc/cod/default.nix b/pkgs/tools/misc/cod/default.nix
index c681930032fcb..eba78d6c2263a 100644
--- a/pkgs/tools/misc/cod/default.nix
+++ b/pkgs/tools/misc/cod/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
     broken = stdenv.isDarwin;
+    mainProgram = "cod";
   };
 }
diff --git a/pkgs/tools/misc/code-minimap/default.nix b/pkgs/tools/misc/code-minimap/default.nix
index dc264307e7d88..33e6ee825b0b5 100644
--- a/pkgs/tools/misc/code-minimap/default.nix
+++ b/pkgs/tools/misc/code-minimap/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/wfxr/code-minimap";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ bsima ];
+    mainProgram = "code-minimap";
   };
 }
diff --git a/pkgs/tools/misc/codebraid/default.nix b/pkgs/tools/misc/codebraid/default.nix
index 0ecde80c238d6..516dd66cf01b0 100644
--- a/pkgs/tools/misc/codebraid/default.nix
+++ b/pkgs/tools/misc/codebraid/default.nix
@@ -2,15 +2,17 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "codebraid";
-  version = "0.5.0-unstable-2020-08-14";
+  version = "0.11.0";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "gpoore";
     repo = pname;
-    rev = "526a223c4fc32c37d6c5c9133524dfa0e1811ca4";
-    sha256 = "0qkqaj49k584qzgx9jlsf5vlv4lq7x403s1kig8v87i0kgh55p56";
+    rev = "v${version}";
+    hash = "sha256-E9vzGK9ZEVwF+UBpSkdM+hm6vINen/A+LgnnPpc77QQ=";
   };
 
+  nativeBuildInputs = with python3Packages; [ setuptools ];
   propagatedBuildInputs = with python3Packages; [ bespon ];
   # unfortunately upstream doesn't contain tests
   checkPhase = ''
@@ -35,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     '';
     license = licenses.bsd3;
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "codebraid";
   };
 }
diff --git a/pkgs/tools/misc/codemov/default.nix b/pkgs/tools/misc/codemov/default.nix
index fe248c24edcdd..d8cc40e3d8617 100644
--- a/pkgs/tools/misc/codemov/default.nix
+++ b/pkgs/tools/misc/codemov/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/sloganking/codemov";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "codemov";
   };
 }
diff --git a/pkgs/tools/misc/codevis/default.nix b/pkgs/tools/misc/codevis/default.nix
index 464702432aa6f..c41351f95983f 100644
--- a/pkgs/tools/misc/codevis/default.nix
+++ b/pkgs/tools/misc/codevis/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sloganking/codevis/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "codevis";
   };
 }
diff --git a/pkgs/tools/misc/coinlive/default.nix b/pkgs/tools/misc/coinlive/default.nix
index 2d81a940dd57b..2d5faff98a027 100644
--- a/pkgs/tools/misc/coinlive/default.nix
+++ b/pkgs/tools/misc/coinlive/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mayeranalytics/coinlive";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "coinlive";
   };
 }
diff --git a/pkgs/tools/misc/colord-gtk/default.nix b/pkgs/tools/misc/colord-gtk/default.nix
index 35076a283270f..1e66ab3ba00d8 100644
--- a/pkgs/tools/misc/colord-gtk/default.nix
+++ b/pkgs/tools/misc/colord-gtk/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
+    mainProgram = "cd-convert";
   };
 }
diff --git a/pkgs/tools/misc/colord/default.nix b/pkgs/tools/misc/colord/default.nix
index 2a4c2c0016689..989f7d57e0b89 100644
--- a/pkgs/tools/misc/colord/default.nix
+++ b/pkgs/tools/misc/colord/default.nix
@@ -32,13 +32,13 @@
 
 stdenv.mkDerivation rec {
   pname = "colord";
-  version = "1.4.6";
+  version = "1.4.7";
 
   outputs = [ "out" "dev" "devdoc" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/colord/releases/${pname}-${version}.tar.xz";
-    sha256 = "dAdjGie/5dG2cueuQndwAcEF2GC3tzkig8jGMA3ojm8=";
+    hash = "sha256-3gLZkQY0rhWVR1hc7EFORQ9xHCcjVFO0+bOKnyNhplM=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/colorless/default.nix b/pkgs/tools/misc/colorless/default.nix
index 46e4745172ff9..d7613d30d0977 100644
--- a/pkgs/tools/misc/colorless/default.nix
+++ b/pkgs/tools/misc/colorless/default.nix
@@ -43,5 +43,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ suominen ];
     platforms = platforms.unix;
+    mainProgram = "colorless";
   };
 }
diff --git a/pkgs/tools/misc/colorz/default.nix b/pkgs/tools/misc/colorz/default.nix
index d259f482942db..f60843afcfb05 100644
--- a/pkgs/tools/misc/colorz/default.nix
+++ b/pkgs/tools/misc/colorz/default.nix
@@ -20,5 +20,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/metakirby5/colorz";
     license = licenses.mit;
     maintainers = with maintainers; [ skykanin ];
+    mainProgram = "colorz";
   };
 }
diff --git a/pkgs/tools/misc/compdb/default.nix b/pkgs/tools/misc/compdb/default.nix
index c6d6d75283d91..0a5e689bb4b8f 100644
--- a/pkgs/tools/misc/compdb/default.nix
+++ b/pkgs/tools/misc/compdb/default.nix
@@ -19,5 +19,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.mit;
     homepage = "https://github.com/Sarcasm/compdb";
     maintainers = [ maintainers.detegr ];
+    mainProgram = "compdb";
   };
 }
diff --git a/pkgs/tools/misc/complete-alias/default.nix b/pkgs/tools/misc/complete-alias/default.nix
index c23ed9771f23a..fdf0c1ae0ab26 100644
--- a/pkgs/tools/misc/complete-alias/default.nix
+++ b/pkgs/tools/misc/complete-alias/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/cykerway/complete-alias";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ tuxinaut ];
+    mainProgram = "complete_alias";
   };
 }
diff --git a/pkgs/tools/misc/completely/default.nix b/pkgs/tools/misc/completely/default.nix
index 7e0129f6d1b3f..326887299c0c2 100644
--- a/pkgs/tools/misc/completely/default.nix
+++ b/pkgs/tools/misc/completely/default.nix
@@ -17,5 +17,6 @@ bundlerApp {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "completely";
   };
 }
diff --git a/pkgs/tools/misc/contacts/default.nix b/pkgs/tools/misc/contacts/default.nix
index 08ba484f51ee4..175b7a9ed2476 100644
--- a/pkgs/tools/misc/contacts/default.nix
+++ b/pkgs/tools/misc/contacts/default.nix
@@ -11,6 +11,11 @@ stdenv.mkDerivation {
     hash = "sha256-Li/c5uf9rfpuU+hduuSm7EmhVwIIkS72dqzmN+0cE3A=";
   };
 
+  postPatch = ''
+    substituteInPlace contacts.m \
+      --replace "int peopleSort" "long peopleSort"
+  '';
+
   nativeBuildInputs = [ xcbuildHook ];
   buildInputs = [ Foundation AddressBook ];
 
diff --git a/pkgs/tools/misc/convbin/default.nix b/pkgs/tools/misc/convbin/default.nix
index 90b403adeb603..96164902dc2c5 100644
--- a/pkgs/tools/misc/convbin/default.nix
+++ b/pkgs/tools/misc/convbin/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.all;
+    mainProgram = "convbin";
   };
 }
diff --git a/pkgs/tools/misc/convfont/default.nix b/pkgs/tools/misc/convfont/default.nix
index 501c4e29a416a..d58f7ecc2bea4 100644
--- a/pkgs/tools/misc/convfont/default.nix
+++ b/pkgs/tools/misc/convfont/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.wtfpl;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.all;
+    mainProgram = "convfont";
   };
 }
diff --git a/pkgs/tools/misc/convimg/default.nix b/pkgs/tools/misc/convimg/default.nix
index 8492527f30373..1e37c2636bbe5 100644
--- a/pkgs/tools/misc/convimg/default.nix
+++ b/pkgs/tools/misc/convimg/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "convimg";
-  version = "9.2";
+  version = "9.3";
 
   src = fetchFromGitHub {
     owner = "mateoconlechuga";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-37nJyaUyC5aQ4h3sH+s8XOzyLh6zfzgIEDp+M6SERSg=";
+    sha256 = "sha256-xnfMHlbQ7XG/mvnWoGkRHhxIK2u7kWJTVnLxd9c5oNU=";
     fetchSubmodules = true;
   };
 
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.linux;
+    mainProgram = "convimg";
   };
 }
diff --git a/pkgs/tools/misc/convmv/default.nix b/pkgs/tools/misc/convmv/default.nix
index 6ed8c78361ec9..8d392f78f47ff 100644
--- a/pkgs/tools/misc/convmv/default.nix
+++ b/pkgs/tools/misc/convmv/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux ++ platforms.freebsd ++ platforms.cygwin;
     maintainers = [ ];
     license = licenses.gpl2Plus;
+    mainProgram = "convmv";
   };
 }
diff --git a/pkgs/tools/misc/copier/default.nix b/pkgs/tools/misc/copier/default.nix
index ea8417f6da22a..2b1a65cf99ebb 100644
--- a/pkgs/tools/misc/copier/default.nix
+++ b/pkgs/tools/misc/copier/default.nix
@@ -2,7 +2,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "copier";
-  version = "8.1.0";
+  version = "9.1.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
     postFetch = ''
       rm $out/tests/demo/doc/ma*ana.txt
     '';
-    hash = "sha256-PxyXlmEZ9cqZgDWcdeNznEC4F1J4NFMiwy0D7g+YZUs=";
+    hash = "sha256-x5r7Xv4lAOMkR+UIEeSY7LvbYMLpTWYuICYe9ygz1tA=";
   };
 
   POETRY_DYNAMIC_VERSIONING_BYPASS = version;
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
     description = "Library and command-line utility for rendering projects templates";
     homepage = "https://copier.readthedocs.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer ];
+    maintainers = with maintainers; [ jonringer greg ];
+    mainProgram = "copier";
   };
 }
diff --git a/pkgs/tools/misc/coreboot-configurator/default.nix b/pkgs/tools/misc/coreboot-configurator/default.nix
index 9d61b795ce541..2c51fd61fc110 100644
--- a/pkgs/tools/misc/coreboot-configurator/default.nix
+++ b/pkgs/tools/misc/coreboot-configurator/default.nix
@@ -56,5 +56,6 @@ mkDerivation {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ danth ];
+    mainProgram = "coreboot-configurator";
   };
 }
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index beee4241c5418..24e25e584d4ba 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -32,11 +32,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "coreutils" + (optionalString (!minimal) "-full");
-  version = "9.3";
+  version = "9.4";
 
   src = fetchurl {
     url = "mirror://gnu/coreutils/coreutils-${version}.tar.xz";
-    hash = "sha256-rbz8/omSNbceh2jc8HzVMlILf1T5qAZIQ/jRmakEu6o=";
+    hash = "sha256-6mE6TPRGEjJukXIBu7zfvTAd4h/8O1m25cB+BAsnXlI=";
   };
 
   postPatch = ''
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
     # Some target platforms, especially when building inside a container have
     # issues with the inotify test.
-    sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail-2/inotify-dir-recreate.sh
+    sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail/inotify-dir-recreate.sh
 
     # sandbox does not allow setgid
     sed '2i echo Skipping chmod setgid test && exit 77' -i ./tests/chmod/setgid.sh
@@ -77,10 +77,8 @@ stdenv.mkDerivation rec {
       echo "int main() { return 77; }" > gnulib-tests/test-getlogin.c
     ''
   ])) + (optionalString stdenv.isAarch64 ''
-    sed '2i print "Skipping tail assert test"; exit 77' -i ./tests/tail-2/assert.sh
-
     # Sometimes fails: https://github.com/NixOS/nixpkgs/pull/143097#issuecomment-954462584
-    sed '2i echo Skipping cut huge range test && exit 77' -i ./tests/misc/cut-huge-range.sh
+    sed '2i echo Skipping cut huge range test && exit 77' -i ./tests/cut/cut-huge-range.sh
   '');
 
   outputs = [ "out" "info" ];
@@ -131,10 +129,8 @@ 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 = (!isCross)
     && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.libc == "musl")
-    && !(stdenv.hostPlatform.libc == "musl" && stdenv.hostPlatform.isAarch64)
     && !stdenv.isAarch32;
 
   # Prevents attempts of running 'help2man' on cross-built binaries.
diff --git a/pkgs/tools/misc/cp437/default.nix b/pkgs/tools/misc/cp437/default.nix
index c08214ff548ba..cb4b1b8508cb9 100644
--- a/pkgs/tools/misc/cp437/default.nix
+++ b/pkgs/tools/misc/cp437/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/keaston/cp437";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jb55 ];
+    mainProgram = "cp437";
   };
 }
diff --git a/pkgs/tools/misc/cpufetch/default.nix b/pkgs/tools/misc/cpufetch/default.nix
index 074a76e32e812..ac7384642e819 100644
--- a/pkgs/tools/misc/cpufetch/default.nix
+++ b/pkgs/tools/misc/cpufetch/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Dr-Noob/cpufetch";
     changelog = "https://github.com/Dr-Noob/cpufetch/releases/tag/v${version}";
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "cpufetch";
   };
 }
diff --git a/pkgs/tools/misc/cpuminer/default.nix b/pkgs/tools/misc/cpuminer/default.nix
index 28335ccb4481d..4b7c5fc7f4867 100644
--- a/pkgs/tools/misc/cpuminer/default.nix
+++ b/pkgs/tools/misc/cpuminer/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "minerd";
   };
 }
diff --git a/pkgs/tools/misc/crex/default.nix b/pkgs/tools/misc/crex/default.nix
index 14d462e8e6e42..d173457d71901 100644
--- a/pkgs/tools/misc/crex/default.nix
+++ b/pkgs/tools/misc/crex/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
     platforms = platforms.all;
+    mainProgram = "crex";
   };
 }
diff --git a/pkgs/tools/misc/crudini/default.nix b/pkgs/tools/misc/crudini/default.nix
index fa4e7cc34a484..ea77f4db163ec 100644
--- a/pkgs/tools/misc/crudini/default.nix
+++ b/pkgs/tools/misc/crudini/default.nix
@@ -22,8 +22,6 @@ python3Packages.buildPythonApplication rec {
     patchShebangs crudini.py crudini-help tests/test.sh
   '';
 
-  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   nativeBuildInputs = [
     help2man
     installShellFiles
diff --git a/pkgs/tools/misc/crypto-tracker/default.nix b/pkgs/tools/misc/crypto-tracker/default.nix
index cbab28f9cd336..273a0aa63e4c0 100644
--- a/pkgs/tools/misc/crypto-tracker/default.nix
+++ b/pkgs/tools/misc/crypto-tracker/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/Nox04/crypto-tracker";
     license = licenses.mit;
     maintainers = with maintainers; [ tiredofit ];
+    mainProgram = "crypto-tracker";
   };
 }
diff --git a/pkgs/tools/misc/csv2latex/default.nix b/pkgs/tools/misc/csv2latex/default.nix
index e297bc532dc12..cc286c54e9adc 100644
--- a/pkgs/tools/misc/csv2latex/default.nix
+++ b/pkgs/tools/misc/csv2latex/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "http://brouits.free.fr/csv2latex/";
     license = licenses.gpl2;
     maintainers = [ maintainers.catern ];
+    mainProgram = "csv2latex";
   };
 }
diff --git a/pkgs/tools/misc/csv2parquet/default.nix b/pkgs/tools/misc/csv2parquet/default.nix
index 2be9f1c3c6447..0d6050d703a7c 100644
--- a/pkgs/tools/misc/csv2parquet/default.nix
+++ b/pkgs/tools/misc/csv2parquet/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/domoritz/csv2parquet";
     license = licenses.mit;
     maintainers = with maintainers; [ john-shaffer ];
+    mainProgram = "csv2parquet";
   };
 }
diff --git a/pkgs/tools/misc/csvs-to-sqlite/default.nix b/pkgs/tools/misc/csvs-to-sqlite/default.nix
index dc140c1c0c01c..28537e9631ea3 100644
--- a/pkgs/tools/misc/csvs-to-sqlite/default.nix
+++ b/pkgs/tools/misc/csvs-to-sqlite/default.nix
@@ -57,5 +57,6 @@ with python3.pkgs; buildPythonApplication rec {
     homepage = "https://github.com/simonw/csvs-to-sqlite";
     license = licenses.asl20;
     maintainers = [ maintainers.costrouc ];
+    mainProgram = "csvs-to-sqlite";
   };
 }
diff --git a/pkgs/tools/misc/cutecom/default.nix b/pkgs/tools/misc/cutecom/default.nix
index 1d264926fd7ca..490d33b123d84 100644
--- a/pkgs/tools/misc/cutecom/default.nix
+++ b/pkgs/tools/misc/cutecom/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bennofs ];
     platforms = platforms.unix;
+    mainProgram = "cutecom";
   };
 }
diff --git a/pkgs/tools/misc/cyberchef/default.nix b/pkgs/tools/misc/cyberchef/default.nix
index d93f8adca1584..7d667a90cbd1d 100644
--- a/pkgs/tools/misc/cyberchef/default.nix
+++ b/pkgs/tools/misc/cyberchef/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.";
+    description = "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis";
     homepage = "https://gchq.github.io/CyberChef";
     changelog = "https://github.com/gchq/CyberChef/blob/v${version}/CHANGELOG.md";
     maintainers = with maintainers; [ sebastianblunt ];
diff --git a/pkgs/tools/misc/cyclonedx-python/default.nix b/pkgs/tools/misc/cyclonedx-python/default.nix
index 03b5ba031112c..fa5be39000af3 100644
--- a/pkgs/tools/misc/cyclonedx-python/default.nix
+++ b/pkgs/tools/misc/cyclonedx-python/default.nix
@@ -1,37 +1,54 @@
 { lib
-, python3
 , fetchFromGitHub
+, python3
 }:
+
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+
+      # Requires 'cyclonedx-python-lib = ">= 2.0.0, < 4.0.0"'
+      cyclonedx-python-lib = super.cyclonedx-python-lib.overridePythonAttrs (oldAttrs: rec {
+        version = "3.1.5";
+        src = fetchFromGitHub {
+          owner = "CycloneDX";
+          repo = "cyclonedx-python-lib";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-4lA8OdmvQD94jTeDf+Iz7ZyEQ9fZzCxnXQG9Ir8FKhk=";
+        };
+      });
+    };
+  };
+in
+with py.pkgs;
+
 python3.pkgs.buildPythonApplication rec {
   pname = "cyclonedx-python";
-  version = "0.4.3";
+  version = "3.11.7";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "CycloneDX";
     repo = "cyclonedx-python";
-    rev = "v${version}";
-    sha256 = "BvG4aWBMsllW2L4lLsiRFUCPjgoDpHxN49fsUFdg7tQ=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-jU/0FkQCyph59TnEE+lckJXsU9whfvWp7dkdfzprYw8=";
   };
 
-  # They pin versions for exact version numbers because "A bill-of-material such
-  # as CycloneDX expects exact version numbers" -- but that's unnecessary with
-  # Nix.
-  preBuild = ''
-    sed "s@==.*'@'@" -i setup.py
-  '';
+  nativeBuildInputs = with py.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with py.pkgs; [
+    chardet
+    cyclonedx-python-lib
     packageurl-python
-    requests
-    xmlschema
+    pip-requirements-parser
     setuptools
-    requirements-parser
-    packaging
-    chardet
-    jsonschema
+    toml
   ];
 
-  # the tests want access to the cyclonedx binary
+  # The tests want access to the cyclonedx binary
   doCheck = false;
 
   pythonImportsCheck = [
@@ -41,7 +58,9 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "Creates CycloneDX Software Bill of Materials (SBOM) from Python projects";
     homepage = "https://github.com/CycloneDX/cyclonedx-python";
+    changelog = "https://github.com/CycloneDX/cyclonedx-python/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ];
+    mainProgram = "cyclonedx-py";
   };
 }
diff --git a/pkgs/tools/misc/czkawka/default.nix b/pkgs/tools/misc/czkawka/default.nix
deleted file mode 100644
index 6506101908d0e..0000000000000
--- a/pkgs/tools/misc/czkawka/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ lib
-, stdenv
-, rustPlatform
-, fetchFromGitHub
-, pkg-config
-, glib
-, cairo
-, pango
-, gdk-pixbuf
-, atk
-, gtk4
-, Foundation
-, wrapGAppsHook4
-, gobject-introspection
-, xvfb-run
-, testers
-, czkawka
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "czkawka";
-  version = "6.0.0";
-
-  src = fetchFromGitHub {
-    owner = "qarmin";
-    repo = "czkawka";
-    rev = version;
-    hash = "sha256-aMQq44vflpsI66CyaXekMfYh/ssH7UkCX0zsO55st3Y=";
-  };
-
-  cargoHash = "sha256-1D87O4fje82Oxyj2Q9kAEey4uEzsNT7kTd8IbNT4WXE=";
-
-  nativeBuildInputs = [
-    pkg-config
-    wrapGAppsHook4
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    glib
-    cairo
-    pango
-    gdk-pixbuf
-    atk
-    gtk4
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    Foundation
-  ];
-
-  nativeCheckInputs = [
-    xvfb-run
-  ];
-
-  checkPhase = ''
-    runHook preCheck
-    xvfb-run cargo test
-    runHook postCheck
-  '';
-
-  doCheck = stdenv.hostPlatform.isLinux
-          && (stdenv.hostPlatform == stdenv.buildPlatform);
-
-  passthru.tests.version = testers.testVersion {
-    package = czkawka;
-    command = "czkawka_cli --version";
-  };
-
-  meta = with lib; {
-    changelog = "https://github.com/qarmin/czkawka/raw/${version}/Changelog.md";
-    description = "A simple, fast and easy to use app to remove unnecessary files from your computer";
-    homepage = "https://github.com/qarmin/czkawka";
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ yanganto _0x4A6F ];
-  };
-}
diff --git a/pkgs/tools/misc/dabet/default.nix b/pkgs/tools/misc/dabet/default.nix
index da7cbce191c2c..acdc66cbad8fe 100644
--- a/pkgs/tools/misc/dabet/default.nix
+++ b/pkgs/tools/misc/dabet/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/dabet";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "dabet";
   };
 }
 
diff --git a/pkgs/tools/misc/daktilo/default.nix b/pkgs/tools/misc/daktilo/default.nix
new file mode 100644
index 0000000000000..b28f3b08f8cd9
--- /dev/null
+++ b/pkgs/tools/misc/daktilo/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, stdenv
+, darwin
+, unixtools
+, pkg-config
+, alsa-lib
+, xorg
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "daktilo";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "orhun";
+    repo = "daktilo";
+    rev = "v${version}";
+    hash = "sha256-kbJwBOUODtHdngbfa6HbbQJ0kgW6f64c0EG3y8wLymw=";
+  };
+
+  cargoHash = "sha256-u9vL2HAUgP43ZDwIEK2u/I+KUEjQsfXda03gnGJ1Krc=";
+
+  nativeBuildInputs = [
+    installShellFiles
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsa-lib
+    xorg.libX11
+    xorg.libXi
+    xorg.libXtst
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  nativeCheckInputs = [
+    unixtools.script
+  ];
+
+  postInstall = ''
+    mkdir -p man completions
+
+    OUT_DIR=man $out/bin/daktilo-mangen
+    OUT_DIR=completions $out/bin/daktilo-completions
+
+    installManPage man/daktilo.1
+    installShellCompletion \
+      completions/daktilo.{bash,fish} \
+      --zsh completions/_daktilo
+
+    rm $out/bin/daktilo-{completions,mangen}
+  '';
+
+  meta = with lib; {
+    description = "Turn your keyboard into a typewriter";
+    homepage = "https://github.com/orhun/daktilo";
+    changelog = "https://github.com/orhun/daktilo/blob/${src.rev}/CHANGELOG.md";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ orhun ];
+    mainProgram = "daktilo";
+  };
+}
diff --git a/pkgs/tools/misc/dashing/default.nix b/pkgs/tools/misc/dashing/default.nix
index 7a1541b7e9403..c7ec598fe309e 100644
--- a/pkgs/tools/misc/dashing/default.nix
+++ b/pkgs/tools/misc/dashing/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/technosophos/dashing";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "dashing";
   };
 }
diff --git a/pkgs/tools/misc/datefmt/default.nix b/pkgs/tools/misc/datefmt/default.nix
index cffa589e38785..0b2dd7fae270e 100644
--- a/pkgs/tools/misc/datefmt/default.nix
+++ b/pkgs/tools/misc/datefmt/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jb55 ];
+    mainProgram = "datefmt";
   };
 }
diff --git a/pkgs/tools/misc/dbus-map/default.nix b/pkgs/tools/misc/dbus-map/default.nix
index 56f89b2f05311..955a248be7bbf 100644
--- a/pkgs/tools/misc/dbus-map/default.nix
+++ b/pkgs/tools/misc/dbus-map/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "dbus-map";
   };
 }
diff --git a/pkgs/tools/misc/ddate/default.nix b/pkgs/tools/misc/ddate/default.nix
index 4de50693b744a..012e00c8f9724 100644
--- a/pkgs/tools/misc/ddate/default.nix
+++ b/pkgs/tools/misc/ddate/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ kovirobi ];
     platforms = platforms.all;
+    mainProgram = "ddate";
   };
 }
diff --git a/pkgs/tools/misc/ddccontrol/default.nix b/pkgs/tools/misc/ddccontrol/default.nix
index 0b7f78936ed91..630b06bcfb3ce 100644
--- a/pkgs/tools/misc/ddccontrol/default.nix
+++ b/pkgs/tools/misc/ddccontrol/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , autoreconfHook
 , intltool
 , libxml2
@@ -12,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddccontrol";
-  version = "0.6.3";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "ddccontrol";
     repo = "ddccontrol";
     rev = version;
-    sha256 = "sha256-0mvkIW0Xsi7co/INmlNeTclBxGoqoJliFanA/RFMaLM=";
+    sha256 = "sha256-100SITpGbui/gRhFjVZxn6lZRB0najtGHd18oUpByJo=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +35,14 @@ stdenv.mkDerivation rec {
     ddccontrol-db
   ];
 
+  patches = [
+    # Upstream commit, fixed the version number in v1.0.0
+    (fetchpatch {
+      url = "https://github.com/ddccontrol/ddccontrol/commit/fc8c5b5d0f2b64b08b95f4a7d8f47f2fd8ceec34.patch";
+      hash = "sha256-SB1BaolTNCUYgj38nMg1uLUqOHvnwCr8T3cnfu/7rjI=";
+    })
+  ];
+
   configureFlags = [
     "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
   ];
diff --git a/pkgs/tools/misc/ddcutil/default.nix b/pkgs/tools/misc/ddcutil/default.nix
index 0a5bc1cec7ca0..45b34333b7fcc 100644
--- a/pkgs/tools/misc/ddcutil/default.nix
+++ b/pkgs/tools/misc/ddcutil/default.nix
@@ -4,9 +4,8 @@
 , autoreconfHook
 , pkg-config
 , glib
-, i2c-tools
+, jansson
 , udev
-, kmod
 , libgudev
 , libusb1
 , libdrm
@@ -15,23 +14,23 @@
 
 stdenv.mkDerivation rec {
   pname = "ddcutil";
-  version = "1.4.2";
+  version = "2.1.2";
 
   src = fetchurl {
     url = "https://www.ddcutil.com/tarballs/ddcutil-${version}.tar.gz";
-    hash = "sha256-wGwTZheRHi5pGf6WB9hGd8m/pLOmnlYYrS5dd+QItAQ=";
+    hash = "sha256-2SYH+8sEeCY55T8aNO3UJ8NN4g2dfzsv3DlTS2p22/s=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [
     glib
-    i2c-tools
-    kmod
+    jansson
     libdrm
     libgudev
     libusb1
     udev
+    xorg.libXext
     xorg.libXrandr
   ];
 
@@ -44,6 +43,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ rnhmjoj ];
     changelog = "https://github.com/rockowitz/ddcutil/blob/v${version}/CHANGELOG.md";
+    mainProgram = "ddcutil";
   };
 }
 
diff --git a/pkgs/tools/misc/debian-devscripts/default.nix b/pkgs/tools/misc/debian-devscripts/default.nix
index b8a58ff400e22..d70994753dbdf 100644
--- a/pkgs/tools/misc/debian-devscripts/default.nix
+++ b/pkgs/tools/misc/debian-devscripts/default.nix
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
 
   preConfigure = ''
     export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}${dpkg}";
-    tgtpy="$out/lib/${python.libPrefix}/site-packages"
+    tgtpy="$out/${python.sitePackages}"
     mkdir -p "$tgtpy"
     export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$tgtpy"
     find lib po4a scripts -type f -exec sed -r \
diff --git a/pkgs/tools/misc/debootstrap/default.nix b/pkgs/tools/misc/debootstrap/default.nix
index 04c19d93af99a..96e003fe7204f 100644
--- a/pkgs/tools/misc/debootstrap/default.nix
+++ b/pkgs/tools/misc/debootstrap/default.nix
@@ -97,5 +97,6 @@ in stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ marcweber ];
     platforms = platforms.linux;
+    mainProgram = "debootstrap";
   };
 }
diff --git a/pkgs/tools/misc/desktop-file-utils/default.nix b/pkgs/tools/misc/desktop-file-utils/default.nix
index 218eed5eb8bba..ae17b51025dcf 100644
--- a/pkgs/tools/misc/desktop-file-utils/default.nix
+++ b/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , pkg-config
 , meson
 , ninja
@@ -11,26 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "desktop-file-utils";
-  version = "0.26";
+  version = "0.27";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "02bkfi6fyk4c0gh2avd897882ww5zl7qg7bzzf28qb57kvkvsvdj";
+    hash = "sha256-oIF985zjhbZiGIBAfFbx8pgWjAQMIDLO34jVt2r/6DY=";
   };
 
-  patches = [
-    # Support Desktop Entry Specification v1.5.
-    # https://gitlab.freedesktop.org/xdg/desktop-file-utils/-/merge_requests/11
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/xdg/desktop-file-utils/-/commit/425177a28b6215e0745f95100160a08e810fd47c.patch";
-      sha256 = "zu9EqTnQQGi5HqKh431JqigtJi+b16RuXSWQYbuuyxA=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/xdg/desktop-file-utils/-/commit/56d220dd679c7c3a8f995a41a27a7d6f3df49dea.patch";
-      sha256 = "p4kamGIm2QBHfIbvDnx+qu5Gi7OU3Z0nQKr39SsEKqk=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     meson
@@ -50,7 +36,7 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
-    homepage = "http://www.freedesktop.org/wiki/Software/desktop-file-utils";
+    homepage = "https://www.freedesktop.org/wiki/Software/desktop-file-utils";
     description = "Command line utilities for working with .desktop files";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/misc/detox/default.nix b/pkgs/tools/misc/detox/default.nix
index bf289ff8c77c4..570882d59ab9a 100644
--- a/pkgs/tools/misc/detox/default.nix
+++ b/pkgs/tools/misc/detox/default.nix
@@ -1,25 +1,24 @@
-{lib, stdenv, fetchurl, flex}:
+{ lib, stdenv, fetchFromGitHub, flex, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "detox";
-  version = "1.2.0";
+  version = "1.4.5";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/detox/${version}/detox-${version}.tar.gz";
-    sha256 = "02cfkf3yhw64xg8mksln8w24gdwgm2x9g3vps7gn6jbjbfd8mh45";
+  src = fetchFromGitHub {
+    owner = "dharple";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-cTuK5EIimRVZ1nfuTa1ds6xrawYIAbwNNIkNONd9y4Q=";
   };
 
-  buildInputs = [flex];
+  nativeBuildInputs = [ flex autoreconfHook ];
 
   hardeningDisable = [ "format" ];
 
-  postInstall = ''
-    install -m644 safe.tbl $out/share/detox/
-  '';
-
   meta = with lib; {
-    homepage = "https://detox.sourceforge.net/";
+    homepage = "https://github.com/dharple/detox";
     description = "Utility designed to clean up filenames";
+    changelog = "https://github.com/dharple/detox/blob/v${version}/CHANGELOG.md";
     longDescription = ''
       Detox is a utility designed to clean up filenames. It replaces
       difficult to work with characters, such as spaces, with standard
@@ -29,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "detox";
   };
 }
diff --git a/pkgs/tools/misc/dgoss/default.nix b/pkgs/tools/misc/dgoss/default.nix
index 0ca97c9f63f19..8201a8805be1d 100644
--- a/pkgs/tools/misc/dgoss/default.nix
+++ b/pkgs/tools/misc/dgoss/default.nix
@@ -44,5 +44,6 @@ resholve.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ hyzual anthonyroussel ];
+    mainProgram = "dgoss";
   };
 }
diff --git a/pkgs/tools/misc/dialogbox/default.nix b/pkgs/tools/misc/dialogbox/default.nix
index 02fb122d44657..7012f9d69ad58 100644
--- a/pkgs/tools/misc/dialogbox/default.nix
+++ b/pkgs/tools/misc/dialogbox/default.nix
@@ -43,5 +43,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "dialogbox";
   };
 }
diff --git a/pkgs/tools/misc/didu/default.nix b/pkgs/tools/misc/didu/default.nix
index 8a29cdb2d346b..a5a8a790e4ffe 100644
--- a/pkgs/tools/misc/didu/default.nix
+++ b/pkgs/tools/misc/didu/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/didu";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "didu";
   };
 }
diff --git a/pkgs/tools/misc/diffoci/default.nix b/pkgs/tools/misc/diffoci/default.nix
index fe50ac5e5e66f..6337b2d500c43 100644
--- a/pkgs/tools/misc/diffoci/default.nix
+++ b/pkgs/tools/misc/diffoci/default.nix
@@ -1,27 +1,48 @@
 { lib
+, stdenv
+, buildPackages
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 }:
 
 buildGoModule rec {
   pname = "diffoci";
-  version = "0.1.2";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "reproducible-containers";
     repo = "diffoci";
     rev = "v${version}";
-    hash = "sha256-Rrwwo1OCE2gn6MGt5XVddb8bJtoN7iAtxzr2MxyHcwk=";
+    hash = "sha256-BTggky5behIxbVxyDZ09uobw0FBopboE9uUBEVgCgR4=";
   };
 
-  vendorHash = "sha256-18rsa91PiqZv70EK3K6K1l6N2mIpoVpkX29amKCo5cg=";
+  vendorHash = "sha256-4C35LBxSm6EkcOznQY1hT2vX9bwFfps/q76VqqPKBfI=";
 
-  ldflags = [ "-s" "-w" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=github.com/reproducible-containers/diffoci/cmd/diffoci/version.Version=v${version}"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall =
+    let
+      diffoci = if stdenv.buildPlatform.canExecute stdenv.hostPlatform then placeholder "out" else buildPackages.diffoci;
+    in
+    ''
+      installShellCompletion --cmd trivy \
+        --bash <(${diffoci}/bin/diffoci completion bash) \
+        --fish <(${diffoci}/bin/diffoci completion fish) \
+        --zsh <(${diffoci}/bin/diffoci completion zsh)
+    '';
 
   meta = with lib; {
     description = "Diff for Docker and OCI container images";
     homepage = "https://github.com/reproducible-containers/diffoci/";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
+    mainProgram = "diffoci";
   };
 }
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 2b966474346d9..dea8deaffd67f 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , abootimg
+, acl
 , apksigcopier
 , apksigner
 , apktool
@@ -78,11 +79,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3.pkgs.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "248";
+  version = "254";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    hash = "sha256-Lub+SIr0EyY4YmPsoLXWavXJhcpmK5VRb6eEnozZ0XQ=";
+    hash = "sha256-LsRJUFrWMo9OiKL0/yBokAxY0b4gMGVRHyWMS1zhDjE=";
   };
 
   outputs = [
@@ -92,7 +93,6 @@ python3.pkgs.buildPythonApplication rec {
 
   patches = [
     ./ignore_links.patch
-    ./fix-test_fit.patch
   ];
 
   postPatch = ''
@@ -113,16 +113,20 @@ python3.pkgs.buildPythonApplication rec {
   # To help figuring out what's missing from the list, run: ./pkgs/tools/misc/diffoscope/list-missing-tools.sh
   #
   # Still missing these tools:
+  # Android-specific tools:
   # aapt2
   # dexdump
-  # docx2txt
-  # getfacl
+  # Darwin-specific tools:
   # lipo
   # otool
-  # r2pipe
+  # Other tools:
+  # docx2txt <- makes tests broken:
+  # > FAILED tests/comparators/test_docx.py::test_diff - IndexError: list index out of range
+  # > FAILED tests/comparators/test_docx.py::test_compare_non_existing - AssertionError
   #
   # We filter automatically all packages for the host platform (some dependencies are not supported on Darwin, aarch64, etc.).
   pythonPath = lib.filter (lib.meta.availableOn stdenv.hostPlatform) ([
+    acl
     binutils-unwrapped-all-targets
     bzip2
     cdrkit
@@ -210,11 +214,12 @@ python3.pkgs.buildPythonApplication rec {
       guestfs
       h5py
       pdfminer-six
+      # docx2txt, breaks the tests.
     ])
     # oggvideotools is broken on Darwin, please put it back when it will be fixed?
     ++ lib.optionals stdenv.isLinux [ oggvideotools ]
     # This doesn't work on aarch64-darwin
-    ++ lib.optionals (stdenv.hostPlatform != "aarch64-darwin") [ gnumeric ]
+    ++ lib.optionals (stdenv.hostPlatform.system != "aarch64-darwin") [ gnumeric ]
   ));
 
   nativeCheckInputs = with python3.pkgs; [
@@ -243,6 +248,15 @@ python3.pkgs.buildPythonApplication rec {
     "test_non_unicode_filename"
     "test_listing"
     "test_symlink_root"
+
+    # Appears to be a sandbox related issue
+    "test_trim_stderr_in_command"
+    # Seems to be a bug caused by having different versions of rdata than
+    # expected. Will file upstream.
+    "test_item_rdb"
+    # Caused by getting an otool command instead of llvm-objdump. Could be Nix
+    # setup, could be upstream bug. Will file upstream.
+    "test_libmix_differences"
   ];
 
   disabledTestPaths = [
@@ -289,5 +303,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg danielfullmer raitobezarius ];
     platforms = platforms.unix;
+    mainProgram = "diffoscope";
   };
 }
diff --git a/pkgs/tools/misc/diffoscope/fix-test_fit.patch b/pkgs/tools/misc/diffoscope/fix-test_fit.patch
deleted file mode 100644
index cd275ea9e91cd..0000000000000
--- a/pkgs/tools/misc/diffoscope/fix-test_fit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From f1e9fa32c925fe7fb3cd825a02dcff52d305d845 Mon Sep 17 00:00:00 2001
-From: Andrew Marshall <andrew@johnandrewmarshall.com>
-Date: Mon, 28 Aug 2023 19:03:38 -0400
-Subject: [PATCH] Fix test_fit with file 5.45
-
-See also 435a8fe9a201a7e74e705e06cc56b66fa6cb4af9.
----
- tests/comparators/test_fit.py | 20 +++++++++++++-------
- 1 file changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/tests/comparators/test_fit.py b/tests/comparators/test_fit.py
-index d8478c00..47258a3e 100644
---- a/tests/comparators/test_fit.py
-+++ b/tests/comparators/test_fit.py
-@@ -27,7 +27,11 @@
- from diffoscope.comparators.utils.specialize import specialize
- 
- from ..utils.data import data, assert_diff, load_fixture
--from ..utils.tools import skip_unless_tools_exist, skip_unless_tool_is_at_least
-+from ..utils.tools import (
-+    skip_unless_file_version_is_at_least,
-+    skip_unless_tool_is_at_least,
-+    skip_unless_tools_exist,
-+)
- from ..utils.nonexisting import assert_non_existing
- 
- cpio1 = load_fixture("test1.cpio")
-@@ -124,19 +128,21 @@ def test_nested_listing(nested_differences):
- @skip_unless_tools_exist("cpio")
- @skip_unless_tool_is_at_least("dumpimage", dumpimage_version, "2021.01")
- @skip_unless_tools_exist("fdtdump")
-+@skip_unless_file_version_is_at_least("5.45")
- def test_nested_symlink(nested_differences):
--    assert nested_differences[1].source1 == "dir/link"
--    assert nested_differences[1].comment == "symlink"
--    assert_diff(nested_differences[1], "symlink_expected_diff")
-+    assert nested_differences[2].source1 == "dir/link"
-+    assert nested_differences[2].comment == "symlink"
-+    assert_diff(nested_differences[2], "symlink_expected_diff")
- 
- 
- @skip_unless_tools_exist("cpio")
- @skip_unless_tool_is_at_least("dumpimage", dumpimage_version, "2021.01")
- @skip_unless_tools_exist("fdtdump")
-+@skip_unless_file_version_is_at_least("5.45")
- def test_nested_compressed_files(nested_differences):
--    assert nested_differences[2].source1 == "dir/text"
--    assert nested_differences[2].source2 == "dir/text"
--    assert_diff(nested_differences[2], "text_ascii_expected_diff")
-+    assert nested_differences[3].source1 == "dir/text"
-+    assert nested_differences[3].source2 == "dir/text"
-+    assert_diff(nested_differences[3], "text_ascii_expected_diff")
- 
- 
- @skip_unless_tools_exist("cpio")
--- 
-2.41.0
-
diff --git a/pkgs/tools/misc/dijo/default.nix b/pkgs/tools/misc/dijo/default.nix
index 606bba0dff926..45da82571bd46 100644
--- a/pkgs/tools/misc/dijo/default.nix
+++ b/pkgs/tools/misc/dijo/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NerdyPepper/dijo";
     license = licenses.mit;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "dijo";
   };
 }
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 04b9dd5fad888..9395cade650b1 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.32.3";
+  version = "2.33.0";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "sha256-TDr2eL7Jft1r2IMm6CToVCEhiNo+Rj1H/Skoe+wx1MM=";
+    sha256 = "sha256-/xOqJ3dr+3S502rXHVBcHhgBCctoMYnWpfLqgrxIoN8=";
   };
 
-  vendorHash = "sha256-eQaQ77pOYC8q+IA26ArEhHQ0DCU093TbzaYhdV3UydE=";
+  vendorHash = "sha256-QGPcNgA/iiGt0CdFs2kR3zLL5/SWulSyyf/pW212JpU=";
 
   # we have no bash at the moment for windows
   BASH_PATH =
@@ -49,7 +49,7 @@ buildGoModule rec {
     '';
     homepage = "https://direnv.net";
     license = licenses.mit;
-    maintainers = teams.numtide.members;
+    maintainers = [ maintainers.zimbatm ];
     mainProgram = "direnv";
   };
 }
diff --git a/pkgs/tools/misc/discocss/default.nix b/pkgs/tools/misc/discocss/default.nix
index a9e3d124c8556..b930338c29f4d 100644
--- a/pkgs/tools/misc/discocss/default.nix
+++ b/pkgs/tools/misc/discocss/default.nix
@@ -38,5 +38,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mpl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ mlvzk ];
+    mainProgram = "discocss";
   };
 }
diff --git a/pkgs/tools/misc/disfetch/default.nix b/pkgs/tools/misc/disfetch/default.nix
index 90c2c06626cdd..6cd7a2683d604 100644
--- a/pkgs/tools/misc/disfetch/default.nix
+++ b/pkgs/tools/misc/disfetch/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ vel ];
+    mainProgram = "disfetch";
   };
 }
diff --git a/pkgs/tools/misc/diskonaut/default.nix b/pkgs/tools/misc/diskonaut/default.nix
index 0ea4106ab0343..6193e0a5e8166 100644
--- a/pkgs/tools/misc/diskonaut/default.nix
+++ b/pkgs/tools/misc/diskonaut/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/imsnif/diskonaut";
     license = licenses.mit;
     maintainers = with maintainers; [ evanjs figsoda ];
+    mainProgram = "diskonaut";
   };
 }
diff --git a/pkgs/tools/misc/diskscan/default.nix b/pkgs/tools/misc/diskscan/default.nix
index 265218dfcfd50..141822d22ddbb 100644
--- a/pkgs/tools/misc/diskscan/default.nix
+++ b/pkgs/tools/misc/diskscan/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux;
     maintainers = with maintainers; [ peterhoeg ];
     license = licenses.gpl3;
+    mainProgram = "diskscan";
   };
 }
diff --git a/pkgs/tools/misc/diskus/default.nix b/pkgs/tools/misc/diskus/default.nix
index c664de7c5dc66..cfbcfdcca6ebb 100644
--- a/pkgs/tools/misc/diskus/default.nix
+++ b/pkgs/tools/misc/diskus/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
       diskus is a very simple program that computes the total size of the
       current directory. It is a parallelized version of du -sh.
     '';
+    mainProgram = "diskus";
   };
 }
diff --git a/pkgs/tools/misc/djenrandom/default.nix b/pkgs/tools/misc/djenrandom/default.nix
index f55329a66180e..51f892a5a4530 100644
--- a/pkgs/tools/misc/djenrandom/default.nix
+++ b/pkgs/tools/misc/djenrandom/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     # djenrandom uses x86 specific instructions, therefore we can only compile for the x86 architechture
     platforms = lib.platforms.x86;
     maintainers = with lib.maintainers; [ orichter thillux ];
+    mainProgram = "djenrandom";
   };
 }
diff --git a/pkgs/tools/misc/docbook2mdoc/default.nix b/pkgs/tools/misc/docbook2mdoc/default.nix
index 9a4352d32679d..f64a73a338bac 100644
--- a/pkgs/tools/misc/docbook2mdoc/default.nix
+++ b/pkgs/tools/misc/docbook2mdoc/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "docbook2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/docker-sync/default.nix b/pkgs/tools/misc/docker-sync/default.nix
index 48fbaa1e9de04..aa129c0a36dbd 100644
--- a/pkgs/tools/misc/docker-sync/default.nix
+++ b/pkgs/tools/misc/docker-sync/default.nix
@@ -16,5 +16,6 @@ bundlerApp {
     license = licenses.gpl3;
     maintainers = with maintainers; [ manveru nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "docker-sync";
   };
 }
diff --git a/pkgs/tools/misc/docui/default.nix b/pkgs/tools/misc/docui/default.nix
index 122bc20279ba1..d226c2fc8f00b 100644
--- a/pkgs/tools/misc/docui/default.nix
+++ b/pkgs/tools/misc/docui/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ aethelz ];
     broken = stdenv.isDarwin;
+    mainProgram = "docui";
   };
 }
diff --git a/pkgs/tools/misc/doitlive/default.nix b/pkgs/tools/misc/doitlive/default.nix
index 6eef5fab1d1c1..9e1d83bb4d984 100644
--- a/pkgs/tools/misc/doitlive/default.nix
+++ b/pkgs/tools/misc/doitlive/default.nix
@@ -2,13 +2,16 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "doitlive";
-  version = "4.3.0";
+  version = "5.0.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03qrs032x206xrl0x3z0fpvxgjivzz9rkmb11bqlk1id10707cac";
+    hash = "sha256-jAoibszDpQJjiNCZDhX3fLniALOG7r9YqaYEySkmMM4=";
   };
 
+  nativeBuildInputs = with python3Packages; [ setuptools ];
+
   propagatedBuildInputs = with python3Packages; [ click click-completion click-didyoumean ];
 
   # disable tests (too many failures)
@@ -16,8 +19,10 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for live presentations in the terminal";
-    homepage = "https://pypi.python.org/pypi/doitlive";
+    homepage = "https://github.com/sloria/doitlive";
+    changelog = "https://github.com/sloria/doitlive/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ mbode ];
+    mainProgram = "doitlive";
   };
 }
diff --git a/pkgs/tools/misc/domine/default.nix b/pkgs/tools/misc/domine/default.nix
index cd62b9bd1a744..3d193ba2a06f7 100644
--- a/pkgs/tools/misc/domine/default.nix
+++ b/pkgs/tools/misc/domine/default.nix
@@ -11,7 +11,5 @@ buildDartApplication rec {
     sha256 = "038yfa22q7lzz85czmny3c1lkv8mjv4pq62cbmh054fqvgf3k3s4";
   };
 
-  pubspecLockFile = ./pubspec.lock;
-
-  vendorHash = "16z3paq1nxlnzs20qlljnwa2ff6xfhdqzcq8d8izkl7w1j4hyxgn";
+  pubspecLock = lib.importJSON ./pubspec.lock.json;
 }
diff --git a/pkgs/tools/misc/domine/pubspec.lock b/pkgs/tools/misc/domine/pubspec.lock
deleted file mode 100644
index 56a35ef145484..0000000000000
--- a/pkgs/tools/misc/domine/pubspec.lock
+++ /dev/null
@@ -1,157 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
-  args:
-    dependency: "direct main"
-    description:
-      name: args
-      sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.4.2"
-  async:
-    dependency: transitive
-    description:
-      name: async
-      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.11.0"
-  collection:
-    dependency: transitive
-    description:
-      name: collection
-      sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.17.2"
-  dart_openai:
-    dependency: "direct main"
-    description:
-      name: dart_openai
-      sha256: "707f6975454513f4a6197125b5a0fbe92ab7cbe4b8ea9111e529a09d7a3ce0c3"
-      url: "https://pub.dev"
-    source: hosted
-    version: "4.0.0"
-  dio:
-    dependency: "direct main"
-    description:
-      name: dio
-      sha256: ce75a1b40947fea0a0e16ce73337122a86762e38b982e1ccb909daa3b9bc4197
-      url: "https://pub.dev"
-    source: hosted
-    version: "5.3.2"
-  dio_smart_retry:
-    dependency: "direct main"
-    description:
-      name: dio_smart_retry
-      sha256: "1a2d0cf73ab56bf5998b375cda2d51f45c77268e712e4073f232cdc7753a94b2"
-      url: "https://pub.dev"
-    source: hosted
-    version: "5.0.0"
-  fetch_api:
-    dependency: transitive
-    description:
-      name: fetch_api
-      sha256: "7896632eda5af40c4459d673ad601df21d4c3ae6a45997e300a92ca63ec9fe4c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.0.1"
-  fetch_client:
-    dependency: transitive
-    description:
-      name: fetch_client
-      sha256: "83c07b07a63526a43630572c72715707ca113a8aa3459efbc7b2d366b79402af"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.0.2"
-  http:
-    dependency: transitive
-    description:
-      name: http
-      sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.0"
-  http_parser:
-    dependency: transitive
-    description:
-      name: http_parser
-      sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
-      url: "https://pub.dev"
-    source: hosted
-    version: "4.0.2"
-  js:
-    dependency: transitive
-    description:
-      name: js
-      sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
-      url: "https://pub.dev"
-    source: hosted
-    version: "0.6.7"
-  lints:
-    dependency: "direct dev"
-    description:
-      name: lints
-      sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.1"
-  meta:
-    dependency: transitive
-    description:
-      name: meta
-      sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.9.1"
-  path:
-    dependency: transitive
-    description:
-      name: path
-      sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.8.3"
-  source_span:
-    dependency: transitive
-    description:
-      name: source_span
-      sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.10.0"
-  string_scanner:
-    dependency: transitive
-    description:
-      name: string_scanner
-      sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.2.0"
-  term_glyph:
-    dependency: transitive
-    description:
-      name: term_glyph
-      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.2.1"
-  tint:
-    dependency: "direct main"
-    description:
-      name: tint
-      sha256: "9652d9a589f4536d5e392cf790263d120474f15da3cf1bee7f1fdb31b4de5f46"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.0.1"
-  typed_data:
-    dependency: transitive
-    description:
-      name: typed_data
-      sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.3.2"
-sdks:
-  dart: ">=3.0.6 <4.0.0"
diff --git a/pkgs/tools/misc/domine/pubspec.lock.json b/pkgs/tools/misc/domine/pubspec.lock.json
new file mode 100644
index 0000000000000..214f3f49b2d9c
--- /dev/null
+++ b/pkgs/tools/misc/domine/pubspec.lock.json
@@ -0,0 +1,197 @@
+{
+  "packages": {
+    "args": {
+      "dependency": "direct main",
+      "description": {
+        "name": "args",
+        "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.4.2"
+    },
+    "async": {
+      "dependency": "transitive",
+      "description": {
+        "name": "async",
+        "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.11.0"
+    },
+    "collection": {
+      "dependency": "transitive",
+      "description": {
+        "name": "collection",
+        "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.17.2"
+    },
+    "dart_openai": {
+      "dependency": "direct main",
+      "description": {
+        "name": "dart_openai",
+        "sha256": "707f6975454513f4a6197125b5a0fbe92ab7cbe4b8ea9111e529a09d7a3ce0c3",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.0.0"
+    },
+    "dio": {
+      "dependency": "direct main",
+      "description": {
+        "name": "dio",
+        "sha256": "ce75a1b40947fea0a0e16ce73337122a86762e38b982e1ccb909daa3b9bc4197",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "5.3.2"
+    },
+    "dio_smart_retry": {
+      "dependency": "direct main",
+      "description": {
+        "name": "dio_smart_retry",
+        "sha256": "1a2d0cf73ab56bf5998b375cda2d51f45c77268e712e4073f232cdc7753a94b2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "5.0.0"
+    },
+    "fetch_api": {
+      "dependency": "transitive",
+      "description": {
+        "name": "fetch_api",
+        "sha256": "7896632eda5af40c4459d673ad601df21d4c3ae6a45997e300a92ca63ec9fe4c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.1"
+    },
+    "fetch_client": {
+      "dependency": "transitive",
+      "description": {
+        "name": "fetch_client",
+        "sha256": "83c07b07a63526a43630572c72715707ca113a8aa3459efbc7b2d366b79402af",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.2"
+    },
+    "http": {
+      "dependency": "transitive",
+      "description": {
+        "name": "http",
+        "sha256": "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.0"
+    },
+    "http_parser": {
+      "dependency": "transitive",
+      "description": {
+        "name": "http_parser",
+        "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.0.2"
+    },
+    "js": {
+      "dependency": "transitive",
+      "description": {
+        "name": "js",
+        "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.6.7"
+    },
+    "lints": {
+      "dependency": "direct dev",
+      "description": {
+        "name": "lints",
+        "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.1"
+    },
+    "meta": {
+      "dependency": "transitive",
+      "description": {
+        "name": "meta",
+        "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.9.1"
+    },
+    "path": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path",
+        "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.8.3"
+    },
+    "source_span": {
+      "dependency": "transitive",
+      "description": {
+        "name": "source_span",
+        "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.10.0"
+    },
+    "string_scanner": {
+      "dependency": "transitive",
+      "description": {
+        "name": "string_scanner",
+        "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.0"
+    },
+    "term_glyph": {
+      "dependency": "transitive",
+      "description": {
+        "name": "term_glyph",
+        "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.1"
+    },
+    "tint": {
+      "dependency": "direct main",
+      "description": {
+        "name": "tint",
+        "sha256": "9652d9a589f4536d5e392cf790263d120474f15da3cf1bee7f1fdb31b4de5f46",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
+    "typed_data": {
+      "dependency": "transitive",
+      "description": {
+        "name": "typed_data",
+        "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.2"
+    }
+  },
+  "sdks": {
+    "dart": ">=3.0.6 <4.0.0"
+  }
+}
diff --git a/pkgs/tools/misc/dooit/default.nix b/pkgs/tools/misc/dooit/default.nix
index ab7db4a2cb7c4..1621ea8e5249e 100644
--- a/pkgs/tools/misc/dooit/default.nix
+++ b/pkgs/tools/misc/dooit/default.nix
@@ -7,18 +7,23 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dooit";
-  version = "2.0.1";
-  format = "pyproject";
+  version = "2.2.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "kraanzu";
     repo = "dooit";
     rev = "v${version}";
-    hash = "sha256-iQAGD6zrBBd4fJONaB7to1OJpAJUO0zeA1xhVQZBkMc=";
+    hash = "sha256-GtXRzj+o+FClleh73kqelk0JrSyafZhf847lX1BiS9k=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "tzlocal"
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -30,12 +35,6 @@ python3.pkgs.buildPythonApplication rec {
     tzlocal
   ];
 
-  # NOTE pyproject version was bumped after release tag 2.0.1 - remove after next release.
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "version = \"2.0.0\"" "version = \"2.0.1\""
-  '';
-
   # No tests available
   doCheck = false;
 
@@ -50,5 +49,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/kraanzu/dooit/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ khaneliman wesleyjrz ];
+    mainProgram = "dooit";
   };
 }
diff --git a/pkgs/tools/misc/dotacat/default.nix b/pkgs/tools/misc/dotacat/default.nix
index 07dc66b116740..2512ff20d8d57 100644
--- a/pkgs/tools/misc/dotacat/default.nix
+++ b/pkgs/tools/misc/dotacat/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://gitlab.scd31.com/stephen/dotacat";
     license = licenses.mit;
     maintainers = with maintainers; [ traxys ];
+    mainProgram = "dotacat";
   };
 }
diff --git a/pkgs/tools/misc/dotter/default.nix b/pkgs/tools/misc/dotter/default.nix
index 1356a3908d60c..bcabb2ef8aac6 100644
--- a/pkgs/tools/misc/dotter/default.nix
+++ b/pkgs/tools/misc/dotter/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dotter";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "SuperCuber";
     repo = "dotter";
     rev = "v${version}";
-    hash = "sha256-mAvTy/11a9RGSQpElhpKMzsMC7vA7cbeHsNRy9MnIjw=";
+    hash = "sha256-Xmdg5ITKWhL5AxTS7z4f9ecigQpBqna+kZclA+mDJhA=";
   };
 
-  cargoHash = "sha256-XsDp/ssoNVdTHDTPm2ucgBeYmFgbeBIxQ/NsGjCl5Qg=";
+  cargoHash = "sha256-W8khm9E5f/PROVJDAUr57nAiTEXV4a0fepzV00HoT8c=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/SuperCuber/dotter";
     license = licenses.unlicense;
     maintainers = with maintainers; [ linsui ];
+    mainProgram = "dotter";
   };
 }
diff --git a/pkgs/tools/misc/dtach/default.nix b/pkgs/tools/misc/dtach/default.nix
index 0e0d4ddd077c9..226c7335f2645 100644
--- a/pkgs/tools/misc/dtach/default.nix
+++ b/pkgs/tools/misc/dtach/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
 
     platforms = lib.platforms.unix;
     maintainers = [ ];
+    mainProgram = "dtach";
   };
 }
diff --git a/pkgs/tools/misc/dtool/default.nix b/pkgs/tools/misc/dtool/default.nix
index 26eb0ab9ed83d..9cf22a9da39f3 100644
--- a/pkgs/tools/misc/dtool/default.nix
+++ b/pkgs/tools/misc/dtool/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/guoxbin/dtool";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linuxissuper ];
+    mainProgram = "dtool";
   };
 }
diff --git a/pkgs/tools/misc/dua/default.nix b/pkgs/tools/misc/dua/default.nix
index 767a1f5eaecff..8061d535bc234 100644
--- a/pkgs/tools/misc/dua/default.nix
+++ b/pkgs/tools/misc/dua/default.nix
@@ -7,13 +7,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.20.1";
+  version = "2.26.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    hash = "sha256-yBPzf0ZpL49CupdtxjEo9QiOC5vwTcqdfAC2Q6WcNhE=";
+    hash = "sha256-+7pf87mmT5KB4KtKzZXYnV6GwMzb6ieXjBVZpvmQ3eU=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     postFetch = ''
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoHash = "sha256-jgPOC8xtxYyKhYzsJezefwgopVL+1MED+Wf5h6bCYBg=";
+  cargoHash = "sha256-5n6zjuoL5v3ieP8eOzvyJf/YDmQ+MuGMk3T/8rHKQVE=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Foundation
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Byron/dua-cli/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda killercup ];
+    mainProgram = "dua";
   };
 }
diff --git a/pkgs/tools/misc/duc/default.nix b/pkgs/tools/misc/duc/default.nix
index d630c94127387..0501b681aa3aa 100644
--- a/pkgs/tools/misc/duc/default.nix
+++ b/pkgs/tools/misc/duc/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.all;
     maintainers = [ ];
+    mainProgram = "duc";
   };
 }
diff --git a/pkgs/tools/misc/duf/default.nix b/pkgs/tools/misc/duf/default.nix
index dbc50346ca55a..5c2ccb5717fc0 100644
--- a/pkgs/tools/misc/duf/default.nix
+++ b/pkgs/tools/misc/duf/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "Disk Usage/Free Utility";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda penguwin ];
+    mainProgram = "duf";
   };
 }
diff --git a/pkgs/tools/misc/dumptorrent/default.nix b/pkgs/tools/misc/dumptorrent/default.nix
index 3199bae9987e3..194d40e1c1cc2 100644
--- a/pkgs/tools/misc/dumptorrent/default.nix
+++ b/pkgs/tools/misc/dumptorrent/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
       license = licenses.gpl2;
       maintainers = [ maintainers.zohl ];
       platforms = platforms.all;
+      mainProgram = "dumptorrent";
     };
 }
diff --git a/pkgs/tools/misc/dupd/default.nix b/pkgs/tools/misc/dupd/default.nix
index 903a9f9e5fd4d..cf5ab77e7d470 100644
--- a/pkgs/tools/misc/dupd/default.nix
+++ b/pkgs/tools/misc/dupd/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.virkki.com/dupd";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "dupd";
   };
 }
diff --git a/pkgs/tools/misc/dust/default.nix b/pkgs/tools/misc/dust/default.nix
index 3851a026a9215..c3994f05b6a43 100644
--- a/pkgs/tools/misc/dust/default.nix
+++ b/pkgs/tools/misc/dust/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "du-dust";
-  version = "0.8.6";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "bootandy";
     repo = "dust";
     rev = "v${version}";
-    sha256 = "sha256-PEW13paHNQ1JAz9g3pIdCB1f1KqIz8XC4gGE0z/glOk=";
+    sha256 = "sha256-5X7gRMTUrG6ecZnwExBTadOJo/HByohTMDsgxFmp1HM=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     postFetch = ''
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoHash = "sha256-VJBmVidLkx4nIQULtDoywV4QGmgf53YAAXLJH/LZ/j0=";
+  cargoHash = "sha256-uc7jbA8HqsH1bSJgbnUVT/f7F7kZJ4Jf3yyFvseH7no=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/dutree/default.nix b/pkgs/tools/misc/dutree/default.nix
index c40385c387bab..fe47997296e87 100644
--- a/pkgs/tools/misc/dutree/default.nix
+++ b/pkgs/tools/misc/dutree/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nachoparker/dutree";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "dutree";
   };
 }
diff --git a/pkgs/tools/misc/dwarf2json/default.nix b/pkgs/tools/misc/dwarf2json/default.nix
index 813c1fb368383..3bd0fa4b94a87 100644
--- a/pkgs/tools/misc/dwarf2json/default.nix
+++ b/pkgs/tools/misc/dwarf2json/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "Convert ELF/DWARF symbol and type information into vol3's intermediate JSON";
     license = licenses.vol-sl;
     maintainers = with maintainers; [ arkivm ];
+    mainProgram = "dwarf2json";
   };
 }
diff --git a/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix b/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
index 39a9187b3babd..e7c7287b5311a 100644
--- a/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
+++ b/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
@@ -48,5 +48,6 @@ stdenvNoCC.mkDerivation {
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.all;
+    mainProgram = "colorscript";
   };
 }
diff --git a/pkgs/tools/misc/dynamic-colors/default.nix b/pkgs/tools/misc/dynamic-colors/default.nix
index 9e8619459852b..0c04f70f26f30 100644
--- a/pkgs/tools/misc/dynamic-colors/default.nix
+++ b/pkgs/tools/misc/dynamic-colors/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms   = platforms.unix;
+    mainProgram = "dynamic-colors";
   };
 }
diff --git a/pkgs/tools/misc/easeprobe/default.nix b/pkgs/tools/misc/easeprobe/default.nix
index 9745364fb7ec6..70181956339c0 100644
--- a/pkgs/tools/misc/easeprobe/default.nix
+++ b/pkgs/tools/misc/easeprobe/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     homepage = "https://github.com/megaease/easeprobe";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "easeprobe";
   };
 }
diff --git a/pkgs/tools/misc/edid-decode/default.nix b/pkgs/tools/misc/edid-decode/default.nix
index f12d5a09f2367..eb72d0a815702 100644
--- a/pkgs/tools/misc/edid-decode/default.nix
+++ b/pkgs/tools/misc/edid-decode/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ Madouura ];
     platforms = platforms.all;
+    mainProgram = "edid-decode";
   };
 }
diff --git a/pkgs/tools/misc/edid-generator/default.nix b/pkgs/tools/misc/edid-generator/default.nix
index 09402111fb66d..fc7f01226972b 100644
--- a/pkgs/tools/misc/edid-generator/default.nix
+++ b/pkgs/tools/misc/edid-generator/default.nix
@@ -5,43 +5,63 @@
 , edid-decode
 , hexdump
 , zsh
-, modelines ? [ ] # Modeline "1280x800"   83.50  1280 1352 1480 1680  800 803 809 831 -hsync +vsync
-, clean ? false # should it skip all, but explicitly listed modelines?
 }:
 
 # Usage:
-#   (edid-generator.override {
+#   hardware.firmware = [(edid-generator.overrideAttrs {
 #     clean = true;
-#     modelines = [
-#       ''Modeline "PG278Q_2560x1440"       241.50   2560 2608 2640 2720   1440 1443 1448 1481   -hsync +vsync''
-#       ''Modeline "PG278Q_2560x1440@120"   497.75   2560 2608 2640 2720   1440 1443 1448 1525   +hsync -vsync''
-#       ''Modeline "U2711_2560x1440"        241.50   2560 2600 2632 2720   1440 1443 1448 1481   -hsync +vsync''
-#     ];
-#   })
-
-stdenv.mkDerivation rec {
+#     modelines = ''
+#       Modeline "PG278Q_60"      241.50   2560 2608 2640 2720   1440 1443 1448 1481   -hsync +vsync
+#       Modeline "PG278Q_120"     497.75   2560 2608 2640 2720   1440 1443 1448 1525   +hsync -vsync
+#       Modeline "U2711_60"       241.50   2560 2600 2632 2720   1440 1443 1448 1481   -hsync +vsync
+#     '';
+#   })];
+
+stdenv.mkDerivation {
   pname = "edid-generator";
-  version = "unstable-2018-03-15";
+  version = "master-2023-11-20";
+
+  # so `hardware.firmware` doesn't compress it
+  compressFirmware = false;
 
   src = fetchFromGitHub {
     owner = "akatrevorjay";
     repo = "edid-generator";
-    rev = "31a6f80784d289d2faa8c4ca4788409c83b3ea14";
-    sha256 = "0j6wqzx5frca8b5i6812vvr5iwk7440fka70bmqn00k0vfhsc2x3";
+    rev = "476a016d8b488df749bf6d6efbf7b9fbfb2e3cb8";
+    sha256 = "sha256-UGxze273VB5cQDWrv9X/Lam6WbOu9U3bro8GcVbEvws=";
   };
 
   nativeBuildInputs = [ dos2unix edid-decode hexdump zsh ];
 
   postPatch = ''
     patchShebangs modeline2edid
-    # allows makefile to discover prefixes and suffixes in addition to just `[0-9]*x[0-9]*.S`
-    awk -i inplace '/^SOURCES\t/ { print "SOURCES\t:= $(wildcard *[0-9]*x[0-9]**.S)"; next; }; { print; }' Makefile
   '';
 
+  passAsFile = [ "modelines" ];
+  clean = false;
+  modelines = "";
+
   configurePhase = ''
-    test '${toString clean}' != 1 || rm *x*.S
-    ${lib.concatMapStringsSep "\n" (m: "./modeline2edid - <<<'${m}'") modelines}
-    make clean all
+    test "$clean" != 1 || rm *x*.S
+    ./modeline2edid - <"$modelinesPath"
+
+    for file in *.S ; do
+      echo "--- generated file: $file"
+      cat "$file"
+    done
+    make clean
+  '';
+
+  buildPhase = ''
+    make all
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    for file in *.bin ; do
+      echo "validating $file"
+      edid-decode <"$file"
+    done
   '';
 
   installPhase = ''
@@ -51,7 +71,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Hackerswork to generate an EDID blob from given Xorg Modelines";
     homepage = "https://github.com/akatrevorjay/edid-generator";
-    license = lib.licenses.mit;
+    license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ flokli nazarewk ];
     platforms = lib.platforms.all;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/edid-generator.x86_64-darwin
diff --git a/pkgs/tools/misc/edir/default.nix b/pkgs/tools/misc/edir/default.nix
index f6934bae49956..41e51a251b382 100644
--- a/pkgs/tools/misc/edir/default.nix
+++ b/pkgs/tools/misc/edir/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "edir";
-  version = "2.22";
+  version = "2.27";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Z4p16v0J7mgl1Av8tdUZ6vSILgbOpLHs3rWx2P7AH+E=";
+    sha256 = "sha256-i9c5DDZnCj6Roqw6fpy+rhX2/Sup1hh8vIpsRcWZQFc=";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -24,5 +24,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ guyonvarch ];
     platforms = platforms.all;
+    mainProgram = "edir";
   };
 }
diff --git a/pkgs/tools/misc/elfcat/default.nix b/pkgs/tools/misc/elfcat/default.nix
index 359bd6d3ab932..2344eb7175472 100644
--- a/pkgs/tools/misc/elfcat/default.nix
+++ b/pkgs/tools/misc/elfcat/default.nix
@@ -14,9 +14,10 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-Dc+SuLwbLFcNSr9RiNSc7dgisBOvOUEIDR8dFAkC/O0=";
 
   meta = with lib; {
-    description = "ELF visualizer, generates HTML files from ELF binaries.";
+    description = "ELF visualizer, generates HTML files from ELF binaries";
     homepage = "https://github.com/ruslashev/elfcat";
     license = licenses.zlib;
-    maintainers = with maintainers; [ fortuneteller2k ];
+    maintainers = with maintainers; [ moni ];
+    mainProgram = "elfcat";
   };
 }
diff --git a/pkgs/tools/misc/empty/default.nix b/pkgs/tools/misc/empty/default.nix
index 296cd7c52583c..29dfa606dd44e 100644
--- a/pkgs/tools/misc/empty/default.nix
+++ b/pkgs/tools/misc/empty/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
       - can easily be ported to almost all UNIX-like systems
     '';
     maintainers = [ maintainers.djwf ];
+    mainProgram = "empty";
   };
 }
diff --git a/pkgs/tools/misc/emv/default.nix b/pkgs/tools/misc/emv/default.nix
index 3e5a348c58232..a317805e463ce 100644
--- a/pkgs/tools/misc/emv/default.nix
+++ b/pkgs/tools/misc/emv/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation {
     description = "Editor Move: Rename files with your favourite text editor";
     license = lib.licenses.publicDomain;
     platforms = lib.platforms.unix;
+    mainProgram = "emv";
   };
 }
diff --git a/pkgs/tools/misc/encpipe/default.nix b/pkgs/tools/misc/encpipe/default.nix
index d8eea00c3107d..f3ab870b0f05e 100644
--- a/pkgs/tools/misc/encpipe/default.nix
+++ b/pkgs/tools/misc/encpipe/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jedisct1/encpipe";
     license = licenses.isc;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "encpipe";
   };
 }
diff --git a/pkgs/tools/misc/enjarify/default.nix b/pkgs/tools/misc/enjarify/default.nix
index 1828ddce7aacd..0a146dc02f321 100644
--- a/pkgs/tools/misc/enjarify/default.nix
+++ b/pkgs/tools/misc/enjarify/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/google/enjarify/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "enjarify";
   };
 }
diff --git a/pkgs/tools/misc/ent/default.nix b/pkgs/tools/misc/ent/default.nix
index bd9dfeafea6bd..3152e00503bb3 100644
--- a/pkgs/tools/misc/ent/default.nix
+++ b/pkgs/tools/misc/ent/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     homepage = "https://www.fourmilab.ch/random/";
     platforms = platforms.all;
     license = licenses.publicDomain;
+    mainProgram = "ent";
   };
 }
diff --git a/pkgs/tools/misc/entr/default.nix b/pkgs/tools/misc/entr/default.nix
index b46b94037083e..6d00d4128a51e 100644
--- a/pkgs/tools/misc/entr/default.nix
+++ b/pkgs/tools/misc/entr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "entr";
-  version = "5.4";
+  version = "5.5";
 
   src = fetchurl {
     url = "https://eradman.com/entrproject/code/${pname}-${version}.tar.gz";
-    hash = "sha256-SR3e0sw/Hc2NJvSWpMezqZa5HHqyCIPKN1A3o5giH54=";
+    hash = "sha256-EowM4u/qWua9P9M8PNMeFh6wwCYJ2HF6036VtBZW5SY=";
   };
 
   postPatch = ''
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ pSub synthetica ];
+    mainProgram = "entr";
   };
 }
diff --git a/pkgs/tools/misc/enumer/default.nix b/pkgs/tools/misc/enumer/default.nix
index 1eea3c699416c..c10cfdccd91f7 100644
--- a/pkgs/tools/misc/enumer/default.nix
+++ b/pkgs/tools/misc/enumer/default.nix
@@ -5,21 +5,22 @@
 
 buildGoModule rec {
   pname = "enumer";
-  version = "1.5.8";
+  version = "1.5.9";
 
   src = fetchFromGitHub {
     owner = "dmarkham";
     repo = "enumer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+YTsXYWVmJ32V/Eptip3WAiqIYv+6nqbdph0K2XzLdc=";
+    hash = "sha256-NYL36GBogFM48IgIWhFa1OLZNUeEi0ppS6KXybnPQks=";
   };
 
-  vendorHash = "sha256-+dCitvPz2JUbybXVJxUOo1N6+SUPCSjlacL8bTSlb7w=";
+  vendorHash = "sha256-CJCay24FlzDmLjfZ1VBxih0f+bgBNu+Xn57QgWT13TA=";
 
   meta = with lib; {
     description = "Go tool to auto generate methods for enums";
     homepage = "https://github.com/dmarkham/enumer";
     license = licenses.bsd2;
     maintainers = with maintainers; [ hexa ];
+    mainProgram = "enumer";
   };
 }
diff --git a/pkgs/tools/misc/envchain/default.nix b/pkgs/tools/misc/envchain/default.nix
index 938beff335323..a204f31a7484e 100644
--- a/pkgs/tools/misc/envchain/default.nix
+++ b/pkgs/tools/misc/envchain/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/sorah/envchain";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ bbigras ];
+    maintainers = with maintainers; [ ];
+    mainProgram = "envchain";
   };
 }
diff --git a/pkgs/tools/misc/envsubst/default.nix b/pkgs/tools/misc/envsubst/default.nix
index b3a1be04d9290..8cd59df31b1e5 100644
--- a/pkgs/tools/misc/envsubst/default.nix
+++ b/pkgs/tools/misc/envsubst/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/a8m/envsubst";
     license = licenses.mit;
     maintainers = with maintainers; [ nicknovitski ];
+    mainProgram = "envsubst";
   };
 }
diff --git a/pkgs/tools/misc/esphome/dashboard.nix b/pkgs/tools/misc/esphome/dashboard.nix
index ceb416c652905..f5bd9910569f3 100644
--- a/pkgs/tools/misc/esphome/dashboard.nix
+++ b/pkgs/tools/misc/esphome/dashboard.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "esphome-dashboard";
-  version = "20230904.0";
+  version = "20231107.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-b+NlWekNXbGvhLQlQqFtSSsO99J+ldS6NddlK3lykeA=";
+    hash = "sha256-84iM987nxNidMObnbY3lt78xRbN9USNtqQzfOzkd17k=";
   };
 
   # no tests
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index b791cac21bd48..16aa65b83bebb 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -1,31 +1,40 @@
 { lib
 , callPackage
-, python3
+, python3Packages
 , fetchFromGitHub
+, installShellFiles
 , platformio
-, esptool_3
+, esptool
 , git
+, inetutils
+, stdenv
 }:
 
 let
-  python = python3.override {
+  python = python3Packages.python.override {
     packageOverrides = self: super: {
-      esphome-dashboard = self.callPackage ./dashboard.nix {};
+      esphome-dashboard = self.callPackage ./dashboard.nix { };
     };
   };
 in
 python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "2023.9.3";
-  format = "setuptools";
+  version = "2023.12.9";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-SyXEiGh1/s9EJ0UPYC8R04JUYkCPhCtNUcGvVCycKGM=";
+    hash = "sha256-8SHf6cbPYPZctjJgIuEb7eOJVi5hWNONyRnMXK0iBXc=";
   };
 
+  nativeBuildInputs = with python.pkgs; [
+    setuptools
+    argcomplete
+    installShellFiles
+  ];
+
   postPatch = ''
     # remove all version pinning (E.g tornado==5.1.1 -> tornado)
     sed -i -e "s/==[0-9.]*//" requirements.txt
@@ -45,6 +54,7 @@ python.pkgs.buildPythonApplication rec {
   # - validate_pillow_installed
   propagatedBuildInputs = with python.pkgs; [
     aioesphomeapi
+    argcomplete
     click
     colorama
     cryptography
@@ -56,6 +66,7 @@ python.pkgs.buildPythonApplication rec {
     protobuf
     pyparsing
     pyserial
+    python-magic
     pyyaml
     requests
     tornado
@@ -65,14 +76,20 @@ python.pkgs.buildPythonApplication rec {
   ];
 
   makeWrapperArgs = [
-    # platformio is used in esphomeyaml/platformio_api.py
-    # esptool is used in esphomeyaml/__main__.py
-    # git is used in esphomeyaml/writer.py
-    "--prefix PATH : ${lib.makeBinPath [ platformio esptool_3 git ]}"
+    # platformio is used in esphome/platformio_api.py
+    # esptool is used in esphome/__main__.py
+    # git is used in esphome/writer.py
+    # inetutils is used in esphome/dashboard/status/ping.py
+    "--prefix PATH : ${lib.makeBinPath [ platformio esptool git inetutils ]}"
+    "--prefix PYTHONPATH : $PYTHONPATH" # will show better error messages
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}"
     "--set ESPHOME_USE_SUBPROCESS ''"
   ];
 
-  nativeCheckInputs = with python.pkgs; [
+  # Needed for tests
+  __darwinAllowLocalNetworking = true;
+
+  nativeCheckInputs = with python3Packages; [
     hypothesis
     mock
     pytest-asyncio
@@ -91,9 +108,20 @@ python.pkgs.buildPythonApplication rec {
     $out/bin/esphome --help > /dev/null
   '';
 
+  postInstall =
+    let
+      argcomplete = lib.getExe' python3Packages.argcomplete "register-python-argcomplete";
+    in
+    ''
+      installShellCompletion --cmd esphome \
+        --bash <(${argcomplete} --shell bash esphome) \
+        --zsh <(${argcomplete} --shell zsh esphome) \
+        --fish <(${argcomplete} --shell fish esphome)
+    '';
+
   passthru = {
     dashboard = python.pkgs.esphome-dashboard;
-    updateScript = callPackage ./update.nix {};
+    updateScript = callPackage ./update.nix { };
   };
 
   meta = with lib; {
@@ -105,5 +133,6 @@ python.pkgs.buildPythonApplication rec {
       gpl3Only # The python codebase and all other parts of this codebase
     ];
     maintainers = with maintainers; [ globin hexa ];
+    mainProgram = "esphome";
   };
 }
diff --git a/pkgs/tools/misc/esptool-ck/default.nix b/pkgs/tools/misc/esptool-ck/default.nix
index 0b4e8cecaf642..2dd6415324e48 100644
--- a/pkgs/tools/misc/esptool-ck/default.nix
+++ b/pkgs/tools/misc/esptool-ck/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "esptool";
   };
 }
diff --git a/pkgs/tools/misc/esptool/3.nix b/pkgs/tools/misc/esptool/3.nix
deleted file mode 100644
index a0b13ece16468..0000000000000
--- a/pkgs/tools/misc/esptool/3.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ lib, fetchFromGitHub, fetchpatch, python3 }:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "esptool";
-  version = "3.3.2";
-
-  src = fetchFromGitHub {
-    owner = "espressif";
-    repo = "esptool";
-    rev = "v${version}";
-    hash = "sha256-hpPL9KNPA+S57SJoKnQewBCOybDbKep0t5RKw9a9GjM=";
-  };
-
-  patches = [
-    # https://github.com/espressif/esptool/pull/802
-    (fetchpatch {
-      name = "bitstring-4-compatibility.patch";
-      url = "https://github.com/espressif/esptool/commit/16fa58415be2a7ff059ece40d4545288565d0a23.patch";
-      hash = "sha256-FYa9EvyET4P8VkdyMzJBkdxVYm0tFt2GPnfsjzBnevE=";
-      excludes = [ "setup.py" ];
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace test/test_imagegen.py \
-      --replace "sys.executable, ESPTOOL_PY" "ESPTOOL_PY"
-  '';
-
-  propagatedBuildInputs = with python3.pkgs; [
-    bitstring
-    cryptography
-    ecdsa
-    pyserial
-    reedsolo
-  ];
-
-  # wrapPythonPrograms will overwrite esptool.py with a bash script,
-  # but espefuse.py tries to import it. Since we don't add any binary paths,
-  # use patchPythonScript directly.
-  dontWrapPythonPrograms = true;
-  postFixup = ''
-    buildPythonPath "$out $pythonPath"
-    for f in $out/bin/*.py; do
-        echo "Patching $f"
-        patchPythonScript "$f"
-    done
-  '';
-
-  nativeCheckInputs = with python3.pkgs; [
-    pyelftools
-  ];
-
-  # tests mentioned in `.github/workflows/test_esptool.yml`
-  checkPhase = ''
-    runHook preCheck
-
-    export ESPTOOL_PY=$out/bin/esptool.py
-    ${python3.interpreter} test/test_imagegen.py
-    ${python3.interpreter} test/test_espsecure.py
-    ${python3.interpreter} test/test_merge_bin.py
-    ${python3.interpreter} test/test_modules.py
-
-    runHook postCheck
-  '';
-
-  meta = with lib; {
-    description = "ESP8266 and ESP32 serial bootloader utility";
-    homepage = "https://github.com/espressif/esptool";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ hexa ];
-    platforms = with platforms; linux ++ darwin;
-  };
-}
diff --git a/pkgs/tools/misc/etcher/default.nix b/pkgs/tools/misc/etcher/default.nix
index af9d5d6470d27..4b27f35cf53c9 100644
--- a/pkgs/tools/misc/etcher/default.nix
+++ b/pkgs/tools/misc/etcher/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
     description = "Flash OS images to SD cards and USB drives, safely and easily";
     homepage = "https://etcher.io/";
     license = licenses.asl20;
-    mainProgram = pname;
+    mainProgram = "etcher";
     maintainers = with maintainers; [ wegank ];
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 5850fada2a70f..eb1911170beb6 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "ethtool";
   };
 }
diff --git a/pkgs/tools/misc/ets/default.nix b/pkgs/tools/misc/ets/default.nix
index 43d26e2693921..7d9103e7b3508 100644
--- a/pkgs/tools/misc/ets/default.nix
+++ b/pkgs/tools/misc/ets/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/zmwangx/ets/";
     license = licenses.mit;
     maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "ets";
   };
 }
diff --git a/pkgs/tools/misc/eva/default.nix b/pkgs/tools/misc/eva/default.nix
index 934a19209d0e0..b15957a909a88 100644
--- a/pkgs/tools/misc/eva/default.nix
+++ b/pkgs/tools/misc/eva/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NerdyPepper/eva";
     license = licenses.mit;
     maintainers = with maintainers; [ nrdxp ma27 figsoda ];
+    mainProgram = "eva";
   };
 }
diff --git a/pkgs/tools/misc/evhz/default.nix b/pkgs/tools/misc/evhz/default.nix
index 703dcae083a35..712606c6913a1 100644
--- a/pkgs/tools/misc/evhz/default.nix
+++ b/pkgs/tools/misc/evhz/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ Tungsten842 ];
     platforms = platforms.linux;
+    mainProgram = "evhz";
   };
 }
diff --git a/pkgs/tools/misc/expect/default.nix b/pkgs/tools/misc/expect/default.nix
index 19ab5158a65b6..e2457ad63e137 100644
--- a/pkgs/tools/misc/expect/default.nix
+++ b/pkgs/tools/misc/expect/default.nix
@@ -6,18 +6,29 @@ tcl.mkTclDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/expect/Expect/${version}/expect${version}.tar.gz";
-    sha256 = "0d1cp5hggjl93xwc8h1y6adbnrvpkk0ywkd00inz9ndxn21xm9s9";
+    hash = "sha256-Safag7C92fRtBKBN7sGcd2e7mjI+QMR4H4nK92C5LDQ=";
   };
 
   patches = [
     (fetchpatch {
       url = "https://raw.githubusercontent.com/buildroot/buildroot/c05e6aa361a4049eabd8b21eb64a34899ef83fc7/package/expect/0001-enable-cross-compilation.patch";
-      sha256 = "1jwx2l1slidvcpahxbyqs942l81jd62rzbxliyd9lwysk38c8b6b";
+      hash = "sha256-yyzE0Jjac5qaj7Svn4VpMiAqSNLYrw7VZbtFqgMVncs=";
     })
     (substituteAll {
       src = ./fix-cross-compilation.patch;
       tcl = "${buildPackages.tcl}/bin/tclsh";
     })
+    # The following patches fix compilation with clang 15+
+    (fetchpatch {
+      url = "https://sourceforge.net/p/expect/patches/24/attachment/0001-Add-prototype-to-function-definitions.patch";
+      hash = "sha256-X2Vv6VVM3KjmBHo2ukVWe5YTVXRmqe//Kw2kr73OpZs=";
+    })
+    (fetchpatch {
+      url = "https://sourceforge.net/p/expect/patches/_discuss/thread/b813ca9895/6759/attachment/expect-configure-c99.patch";
+      hash = "sha256-PxQQ9roWgVXUoCMxkXEgu+it26ES/JuzHF6oML/nk54=";
+    })
+    # Include `sys/ioctl.h` and `util.h` on Darwin, which are required for `ioctl` and `openpty`.
+    ./fix-darwin-clang16.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/misc/expect/fix-darwin-clang16.patch b/pkgs/tools/misc/expect/fix-darwin-clang16.patch
new file mode 100644
index 0000000000000..9454769c99c8f
--- /dev/null
+++ b/pkgs/tools/misc/expect/fix-darwin-clang16.patch
@@ -0,0 +1,31 @@
+diff -ur a/exp_win.c b/exp_win.c
+--- a/exp_win.c	2018-02-02 14:15:52.000000000 -0500
++++ b/exp_win.c	2023-10-10 07:47:33.082690432 -0400
+@@ -39,7 +39,8 @@
+ /* Sigh.  On AIX 2.3, termios.h exists but does not define TIOCGWINSZ */
+ /* Instead, it has to come from ioctl.h.  However, As I said above, this */
+ /* can't be cavalierly included on all machines, even when it exists. */
+-#if defined(HAVE_TERMIOS) && !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H)
++/* Darwin also has termios.h, but it requires ioctl.h for `ioctl`. */
++#if defined(HAVE_TERMIOS) && (defined(__APPLE__) || !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H))
+ #  include <sys/ioctl.h>
+ #endif
+ 
+diff -ur d/pty_termios.c c/pty_termios.c
+--- d/pty_termios.c	2023-10-10 07:59:23.244452442 -0400
++++ c/pty_termios.c	2023-10-10 08:00:35.303231582 -0400
+@@ -7,7 +7,13 @@
+ 
+ */
+ 
+-#include <pty.h> /* openpty */
++/* openpty */
++#ifdef __APPLE__
++#include <util.h>
++#else /* pty.h is Linux-specific */
++#include <pty.h>
++#endif
++
+ #include <stdio.h>
+ #include <signal.h>
+ 
diff --git a/pkgs/tools/misc/f2/default.nix b/pkgs/tools/misc/f2/default.nix
index 43c9d52a3dd19..f97c2b8e80c6b 100644
--- a/pkgs/tools/misc/f2/default.nix
+++ b/pkgs/tools/misc/f2/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/ayoisaiah/f2";
     license = licenses.mit;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "f2";
   };
 }
diff --git a/pkgs/tools/misc/faketty/default.nix b/pkgs/tools/misc/faketty/default.nix
index 6ec144d5d693f..815eb5a631c9e 100644
--- a/pkgs/tools/misc/faketty/default.nix
+++ b/pkgs/tools/misc/faketty/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "faketty";
-  version = "1.0.13";
+  version = "1.0.14";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-jV5b6mB81Nz0Q+Toj5DTQq2QcM+EoQ7jRYV/OXgtemA=";
+    hash = "sha256-oma8Vmp1AMmEGyZG8i/ztiyYH0RrLZ/l/vXgPJs+5o0=";
   };
 
-  cargoHash = "sha256-9t1Km/ZXzxyO72CaWM81fWGcFkri7F+wMAVom0GV/YM=";
+  cargoHash = "sha256-+gojthIR5WMSjN1gCUyN0cKHWYBKBezsckVZJD7JncM=";
 
   postPatch = ''
     patchShebangs tests/test.sh
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/dtolnay/faketty/releases/tag/${version}";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "faketty";
   };
 }
diff --git a/pkgs/tools/misc/fastfetch/default.nix b/pkgs/tools/misc/fastfetch/default.nix
index da47c960ea3f9..2e5b5714827db 100644
--- a/pkgs/tools/misc/fastfetch/default.nix
+++ b/pkgs/tools/misc/fastfetch/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , chafa
 , cmake
+, darwin
 , dbus
 , dconf
 , ddcutil
@@ -27,28 +28,17 @@
 , xfce
 , yyjson
 , zlib
-, AppKit
-, Cocoa
-, CoreDisplay
-, CoreVideo
-, CoreWLAN
-, DisplayServices
-, Foundation
-, IOBluetooth
-, MediaRemote
-, OpenCL
-, moltenvk
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fastfetch";
-  version = "2.1.0";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "fastfetch-cli";
     repo = "fastfetch";
     rev = finalAttrs.version;
-    hash = "sha256-4FkBq7UxwZ2YuC4t/siC3CXqyP3Lff4jW3xheAQ9M6o=";
+    hash = "sha256-s0N3Rt3lLOCyaeXeNYu6hlGtNtGR+YC7Aj4/3SeVMpQ=";
   };
 
   nativeBuildInputs = [
@@ -82,25 +72,31 @@ stdenv.mkDerivation (finalAttrs: {
     xfce.xfconf
     zlib
   ]
-  ++ lib.optionals stdenv.isDarwin [
+  ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
+    Apple80211
     AppKit
     Cocoa
     CoreDisplay
     CoreVideo
     CoreWLAN
     DisplayServices
-    Foundation
     IOBluetooth
     MediaRemote
     OpenCL
-    moltenvk
-  ];
+    SystemConfiguration
+    darwin.moltenvk
+  ]);
 
   cmakeFlags = [
     "-DCMAKE_INSTALL_SYSCONFDIR=${placeholder "out"}/etc"
     "-DENABLE_SYSTEM_YYJSON=YES"
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString [
+    # Needed with GCC 12
+    "-Wno-error=uninitialized"
+  ];
+
   postInstall = ''
     wrapProgram $out/bin/fastfetch \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}"
diff --git a/pkgs/tools/misc/fclones/default.nix b/pkgs/tools/misc/fclones/default.nix
index 3966418245e2d..6db73d081a24b 100644
--- a/pkgs/tools/misc/fclones/default.nix
+++ b/pkgs/tools/misc/fclones/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fclones";
-  version = "0.32.1";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "pkolaczk";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-aNTmx94fWuwwlMckjZMOoU1hqSW+yUTKjobvRTxJX4s=";
+    hash = "sha256-JgeajCubRz9hR6uvRAw1HXdKa6Ua+l/Im/bYXdx1gL0=";
   };
 
-  cargoHash = "sha256-MGqQImBEH210IVvjyh/aceQr001T1cMHQfyQI1ZyVw8=";
+  cargoHash = "sha256-mEgFfg8I+JJuUEvj+sia2aL3BVg3HteQorZ2EOiLo64=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.AppKit
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/pkolaczk/fclones/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ cyounkins figsoda msfjarvis ];
+    mainProgram = "fclones";
   };
 }
diff --git a/pkgs/tools/misc/fcp/default.nix b/pkgs/tools/misc/fcp/default.nix
index 7124e90784573..61db506bc1aed 100644
--- a/pkgs/tools/misc/fcp/default.nix
+++ b/pkgs/tools/misc/fcp/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "fcp";
   };
 }
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index 0f78b752de00b..32d0d1b271244 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -1,20 +1,22 @@
-{ lib, rustPlatform, fetchFromGitHub, installShellFiles, testers, fd }:
+{ lib, rustPlatform, fetchFromGitHub, installShellFiles, rust-jemalloc-sys, testers, fd }:
 
 rustPlatform.buildRustPackage rec {
   pname = "fd";
-  version = "8.7.0";
+  version = "9.0.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "fd";
     rev = "v${version}";
-    hash = "sha256-y7IrwMLQnvz1PeKt8BE9hbEBwQBiUXM4geYbiTjMymw=";
+    hash = "sha256-xcrvAWbSvUUtbFXyENy3eQimxt5aXzFrHnL6VptyydA=";
   };
 
-  cargoHash = "sha256-AstE8KGICgPhqRKlJecrE9iPUUWaOvca6ocWf85IzNo=";
+  cargoHash = "sha256-z4PV8k6avaLwo58yJq47WEUJGw3JCW1GZGviBaPTs+8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildInputs = [ rust-jemalloc-sys ];
+
   # skip flaky test
   checkFlags = [
     "--skip=test_owner_current_group"
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index f92a6a69fe287..e4e52115c3563 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.maggesi ];
+    mainProgram = "fdupes";
   };
 }
diff --git a/pkgs/tools/misc/fedifetcher/default.nix b/pkgs/tools/misc/fedifetcher/default.nix
index 368157e9641c9..dbf8c3bce2816 100644
--- a/pkgs/tools/misc/fedifetcher/default.nix
+++ b/pkgs/tools/misc/fedifetcher/default.nix
@@ -2,17 +2,18 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fedifetcher";
-  version = "5.0.1";
+  version = "7.0.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "nanos";
     repo = "FediFetcher";
     rev = "v${version}";
-    hash = "sha256-O7YDxNQel1XFSjGrzdBI4PsejmzPVLvYLNF/vZgdh4w=";
+    hash = "sha256-ADf6ZVqO9v6GQbNWi3NDX5bNmFDX5LMJfM6ePEWwbrQ=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
+    defusedxml
     python-dateutil
     requests
   ];
@@ -35,5 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://blog.thms.uk/fedifetcher";
     license = licenses.mit;
     maintainers = with maintainers; [ delroth ];
+    mainProgram = "fedifetcher";
   };
 }
diff --git a/pkgs/tools/misc/fend/default.nix b/pkgs/tools/misc/fend/default.nix
index 7caff9523724a..a3e46fa4f18d9 100644
--- a/pkgs/tools/misc/fend/default.nix
+++ b/pkgs/tools/misc/fend/default.nix
@@ -8,20 +8,24 @@
 , copyDesktopItems
 , makeDesktopItem
 , nix-update-script
+, testers
+, writeText
+, runCommand
+, fend
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "fend";
-  version = "1.2.2";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "printfn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9O+2vCi3CagpIU5pZPA8tLVhyC7KHn93trYdNhsT4n4=";
+    sha256 = "sha256-s6b15FhVfEwsHtVt4bhd6LDxl/WW1PXlUrH2XFOTT5E=";
   };
 
-  cargoHash = "sha256-mRIwmZwO/uqfUJ12ZYKZFPoefvo055Tp+DrfKsoP9q4=";
+  cargoHash = "sha256-Ilsv0mo7/4eEdRH3jWZXdF4LSYYdWr6gCvnMMAZn5j0=";
 
   nativeBuildInputs = [ pandoc installShellFiles copyDesktopItems ];
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
@@ -58,12 +62,27 @@ rustPlatform.buildRustPackage rec {
     })
   ];
 
-  passthru.updateScript = nix-update-script { };
+  passthru = {
+    updateScript = nix-update-script { };
+    tests = {
+      version = testers.testVersion { package = fend; };
+      units = testers.testEqualContents {
+        assertion = "fend does simple math and unit conversions";
+        expected = writeText "expected" ''
+          36 kph
+        '';
+        actual = runCommand "actual" { } ''
+          ${lib.getExe fend} '(100 meters) / (10 seconds) to kph' > $out
+        '';
+      };
+    };
+  };
 
   meta = with lib; {
     description = "Arbitrary-precision unit-aware calculator";
     homepage = "https://github.com/printfn/fend";
-    license = licenses.mit;
+    changelog = "https://github.com/printfn/fend/releases/tag/v${version}";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ djanatyn liff ];
     mainProgram = "fend";
   };
diff --git a/pkgs/tools/misc/fetch-scm/default.nix b/pkgs/tools/misc/fetch-scm/default.nix
index 3e8a3e63e80a7..a5bc1f65a9041 100644
--- a/pkgs/tools/misc/fetch-scm/default.nix
+++ b/pkgs/tools/misc/fetch-scm/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ vel ];
+    mainProgram = "fetch-scm";
   };
 }
diff --git a/pkgs/tools/misc/fetchutils/default.nix b/pkgs/tools/misc/fetchutils/default.nix
index e9ee3fba516d4..d1c830f877d63 100644
--- a/pkgs/tools/misc/fetchutils/default.nix
+++ b/pkgs/tools/misc/fetchutils/default.nix
@@ -24,6 +24,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/lptstr/fetchutils";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ fortuneteller2k ];
+    maintainers = with maintainers; [ moni ];
   };
 }
diff --git a/pkgs/tools/misc/ffsend/default.nix b/pkgs/tools/misc/ffsend/default.nix
index 309abb973d310..18f5a0ee0a16c 100644
--- a/pkgs/tools/misc/ffsend/default.nix
+++ b/pkgs/tools/misc/ffsend/default.nix
@@ -88,5 +88,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lilyball equirosa marsam ];
     platforms = platforms.unix;
+    mainProgram = "ffsend";
   };
 }
diff --git a/pkgs/tools/misc/figlet/default.nix b/pkgs/tools/misc/figlet/default.nix
index b297b03d86ba0..746def80c6d9c 100644
--- a/pkgs/tools/misc/figlet/default.nix
+++ b/pkgs/tools/misc/figlet/default.nix
@@ -21,6 +21,11 @@ stdenv.mkDerivation rec {
       name = "musl-fix-cplusplus-decls.patch";
       sha256 = "1720zgrfk9makznqkbjrnlxm7nnhk6zx7g458fv53337n3g3zn7j";
     })
+    (fetchpatch {
+      url = "https://github.com/cmatsuoka/figlet/commit/9a50c1795bc32e5a698b855131ee87c8d7762c9e.patch";
+      name = "unistd-on-darwin.patch";
+      sha256 = "hyfY87N+yuAwjsBIjpgvcdJ1IbzlR4A2yUJQSzShCRI=";
+    })
   ];
 
   makeFlags = [ "prefix=$(out)" "CC:=$(CC)" "LD:=$(CC)" ];
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 6026f3c7adaab..8cff5ccd70afb 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -1,18 +1,20 @@
-{ lib, stdenv, fetchurl, file, zlib, libgnurx }:
+{ lib, stdenv, fetchurl, file, zlib, libgnurx
+, testers
+}:
 
 # 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 {
+stdenv.mkDerivation (finalAttrs: {
   pname = "file";
   version = "5.45";
 
   src = fetchurl {
     urls = [
-      "https://astron.com/pub/file/${pname}-${version}.tar.gz"
-      "https://distfiles.macports.org/file/${pname}-${version}.tar.gz"
+      "https://astron.com/pub/file/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"
+      "https://distfiles.macports.org/file/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"
     ];
     hash = "sha256-/Jf1ECm7DiyfTjv/79r2ePDgOe6HK53lwAKm0Jx4TYI=";
   };
@@ -37,12 +39,15 @@ stdenv.mkDerivation rec {
 
   makeFlags = lib.optional stdenv.hostPlatform.isWindows "FILE_COMPILE=file";
 
+  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+
   meta = with lib; {
     homepage = "https://darwinsys.com/file";
     description = "A program that shows the type of files";
     maintainers = with maintainers; [ doronbehar ];
     license = licenses.bsd2;
+    pkgConfigModules = [ "libmagic" ];
     platforms = platforms.all;
     mainProgram = "file";
   };
-}
+})
diff --git a/pkgs/tools/misc/filebench/default.nix b/pkgs/tools/misc/filebench/default.nix
index ca62c8c4a1a8f..b8d4c6fa7a89e 100644
--- a/pkgs/tools/misc/filebench/default.nix
+++ b/pkgs/tools/misc/filebench/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.cddl;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "filebench";
   };
 }
diff --git a/pkgs/tools/misc/fileschanged/default.nix b/pkgs/tools/misc/fileschanged/default.nix
index f44011a98a71a..5644a01fa75a0 100644
--- a/pkgs/tools/misc/fileschanged/default.nix
+++ b/pkgs/tools/misc/fileschanged/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     '';
 
     platforms = lib.platforms.linux;
+    mainProgram = "fileschanged";
   };
 }
diff --git a/pkgs/tools/misc/findup/default.nix b/pkgs/tools/misc/findup/default.nix
index d196192447d81..eaba884d79d9d 100644
--- a/pkgs/tools/misc/findup/default.nix
+++ b/pkgs/tools/misc/findup/default.nix
@@ -18,12 +18,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [ zig_0_10.hook ];
 
-  passthru.tests.version = testers.testVersion { package = finalAttrs.findup; };
+  passthru.tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
 
   meta = {
     homepage = "https://github.com/booniepepper/findup";
     description = "Search parent directories for sentinel files";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ booniepepper ];
+    mainProgram = "findup";
   };
 })
diff --git a/pkgs/tools/misc/flashrom-stable/default.nix b/pkgs/tools/misc/flashrom-stable/default.nix
index b943c22d25be7..81beb2346e348 100644
--- a/pkgs/tools/misc/flashrom-stable/default.nix
+++ b/pkgs/tools/misc/flashrom-stable/default.nix
@@ -2,7 +2,7 @@
 , installShellFiles
 , lib
 , libftdi1
-, libgpiod
+, libgpiod_1
 , libjaylink
 , libusb1
 , pciutils
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     libjaylink
     libusb1
   ] ++ lib.optionals (!stdenv.isDarwin) [
-    libgpiod
+    libgpiod_1
     pciutils
   ];
 
@@ -39,9 +39,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.flashrom.org";
-    description = "Utility for reading, writing, erasing and verifying flash ROM chips.";
+    description = "Utility for reading, writing, erasing and verifying flash ROM chips";
     license = with licenses; [ gpl2 gpl2Plus ];
     maintainers = with maintainers; [ felixsinger ];
     platforms = platforms.all;
+    mainProgram = "flashrom";
   };
 }
diff --git a/pkgs/tools/misc/flashrom/default.nix b/pkgs/tools/misc/flashrom/default.nix
index 6463595c28c8e..b2b9583db2328 100644
--- a/pkgs/tools/misc/flashrom/default.nix
+++ b/pkgs/tools/misc/flashrom/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ fpletz felixsinger ];
     platforms = platforms.all;
+    mainProgram = "flashrom";
   };
 }
diff --git a/pkgs/tools/misc/flitter/default.nix b/pkgs/tools/misc/flitter/default.nix
index 5df3d168a9b0a..958c5ebc32097 100644
--- a/pkgs/tools/misc/flitter/default.nix
+++ b/pkgs/tools/misc/flitter/default.nix
@@ -56,5 +56,6 @@ ocamlPackages.buildDunePackage {
     maintainers = with maintainers; [ fgaz ];
     homepage = "https://github.com/alexozer/flitter";
     platforms = platforms.unix;
+    mainProgram = "flitter";
   };
 }
diff --git a/pkgs/tools/misc/flowgger/default.nix b/pkgs/tools/misc/flowgger/default.nix
index 44908d67bb9ef..c9517043adc96 100644
--- a/pkgs/tools/misc/flowgger/default.nix
+++ b/pkgs/tools/misc/flowgger/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     description = "A fast, simple and lightweight data collector written in Rust";
     license = licenses.bsd2;
     maintainers = with maintainers; [];
+    mainProgram = "flowgger";
   };
 }
diff --git a/pkgs/tools/misc/fltrdr/default.nix b/pkgs/tools/misc/fltrdr/default.nix
index 3e51a4c8bbc22..25cbf80593357 100644
--- a/pkgs/tools/misc/fltrdr/default.nix
+++ b/pkgs/tools/misc/fltrdr/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     platforms   = platforms.linux; # can only test linux
     license     = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
+    mainProgram = "fltrdr";
   };
 }
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index f109056cc265c..b5b24e3faee34 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fluent-bit";
-  version = "2.1.10";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-6uq5eOHx0P2S3WsN0PooNlGQS2ty7DdPsCEgoQsLmRM=";
+    hash = "sha256-+AkIoGIAwz5dqQGtTJQjz+a9jgtxU1zwDuivj862Rw0=";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
@@ -26,16 +26,20 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ openssl libyaml postgresql ]
     ++ lib.optionals stdenv.isLinux [ systemd ];
 
-  cmakeFlags = [ "-DFLB_METRICS=ON" "-DFLB_HTTP_SERVER=ON" "-DFLB_OUT_PGSQL=ON"  ];
-
-  # _FORTIFY_SOURCE requires compiling with optimization (-O)
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [ "-O" ]
-    # Workaround build failure on -fno-common toolchains:
-    #   ld: /monkey/mk_tls.h:81: multiple definition of `mk_tls_server_timeout';
-    #     flb_config.c.o:include/monkey/mk_tls.h:81: first defined here
-    # TODO: drop when upstream gets a fix for it:
-    #   https://github.com/fluent/fluent-bit/issues/5537
-    ++ lib.optionals stdenv.isDarwin [ "-fcommon" ]);
+  cmakeFlags = [
+    "-DFLB_RELEASE=ON"
+    "-DFLB_METRICS=ON"
+    "-DFLB_HTTP_SERVER=ON"
+    "-DFLB_OUT_PGSQL=ON"
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString (
+    # Used by the embedded luajit, but is not predefined on older mac SDKs.
+    lib.optionals stdenv.isDarwin [ "-DTARGET_OS_IPHONE=0" ]
+    # Assumes GNU version of strerror_r, and the posix version has an
+    # incompatible return type.
+    ++ lib.optionals (!stdenv.hostPlatform.isGnu) [ "-Wno-int-conversion" ]
+  );
 
   outputs = [ "out" "dev" ];
 
@@ -50,6 +54,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://fluentbit.io";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.samrose lib.maintainers.fpletz ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 })
diff --git a/pkgs/tools/misc/fluentd/Gemfile.lock b/pkgs/tools/misc/fluentd/Gemfile.lock
index 4489fba02081f..f8d002614fe5a 100644
--- a/pkgs/tools/misc/fluentd/Gemfile.lock
+++ b/pkgs/tools/misc/fluentd/Gemfile.lock
@@ -13,6 +13,7 @@ GEM
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.5)
       jmespath (~> 1, >= 1.6.1)
+      nokogiri (~> 1.0)
     aws-sdk-firehose (1.50.0)
       aws-sdk-core (~> 3, >= 3.165.0)
       aws-sigv4 (~> 1.1)
@@ -120,12 +121,17 @@ GEM
     http_parser.rb (0.8.0)
     jmespath (1.6.2)
     ltsv (0.1.2)
+    mini_portile2 (2.8.2)
     mongo (2.18.2)
       bson (>= 4.14.1, < 5.0.0)
     msgpack (1.6.0)
     multi_json (1.15.0)
     multipart-post (2.2.3)
+    nokogiri (1.15.2)
+      mini_portile2 (2.8.2)
+      racc (1.6.2)
     public_suffix (5.0.1)
+    racc (1.6.2)
     rake (13.0.6)
     ruby-kafka (1.5.0)
       digest-crc
diff --git a/pkgs/tools/misc/fluentd/gemset.nix b/pkgs/tools/misc/fluentd/gemset.nix
index 9930456846767..16417bb0e4e97 100644
--- a/pkgs/tools/misc/fluentd/gemset.nix
+++ b/pkgs/tools/misc/fluentd/gemset.nix
@@ -1,4 +1,35 @@
 {
+  mini_portile2 = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6";
+      type = "gem";
+    };
+    version = "2.8.2";
+  };
+  racc = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09jgz6r0f7v84a7jz9an85q8vvmp743dqcsdm3z9c8rqcqv6pljq";
+      type = "gem";
+    };
+    version = "1.6.2";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mr2ibfk874ncv0qbdkynay738w2mfinlkhnbd5lyk5yiw5q1p10";
+      type = "gem";
+    };
+    version = "1.15.2";
+  };
   addressable = {
     dependencies = ["public_suffix"];
     groups = ["default"];
@@ -42,7 +73,7 @@
     version = "1.58.0";
   };
   aws-sdk-core = {
-    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath" "nokogiri"];
     groups = ["default"];
     platforms = [];
     source = {
diff --git a/pkgs/tools/misc/font-config-info/default.nix b/pkgs/tools/misc/font-config-info/default.nix
index 89f0d9060386b..20133eb0df775 100644
--- a/pkgs/tools/misc/font-config-info/default.nix
+++ b/pkgs/tools/misc/font-config-info/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ bsd3 ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "font-config-info";
   };
 }
diff --git a/pkgs/tools/misc/fontfor/default.nix b/pkgs/tools/misc/fontfor/default.nix
index 73d1085450e8c..b973317b722e3 100644
--- a/pkgs/tools/misc/fontfor/default.nix
+++ b/pkgs/tools/misc/fontfor/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fontfor";
-  version = "0.3.1";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "7sDream";
     repo = "fontfor";
     rev = "v${version}";
-    sha256 = "1b07hd41blwsnb91vh2ax9zigm4lh8n0i5man0cjmxhavvbfy12b";
+    sha256 = "sha256-/UoZ+5X6Csoyqc+RSP0Hree7NtCDs7BjsqcpALxAazc=";
   };
 
   nativeBuildInputs = [
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
     freetype
   ];
 
-  cargoSha256 = "1drfrq32lvmi1xlshynzh66gb1cah43pqcyxv3qxp487br9w1iyj";
+  cargoHash = "sha256-j1Qf0IKlAUEyiGAUoF7IlEbPIv2pGkn+YMCoFdF9oUE=";
 
   meta = with lib; {
     description = "Find fonts which can show a specified character and preview them in browser";
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "fontfor";
   };
 }
diff --git a/pkgs/tools/misc/fpart/default.nix b/pkgs/tools/misc/fpart/default.nix
index 5437345246498..d72a0bc9f85a8 100644
--- a/pkgs/tools/misc/fpart/default.nix
+++ b/pkgs/tools/misc/fpart/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fpart";
-  version = "1.5.1";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "martymac";
     repo = "fpart";
     rev = "${pname}-${version}";
-    sha256 = "sha256-SULtbfUUzYgD/Q6wmgYSIldiGgk9MY4dr0hveTTMwvw=";
+    sha256 = "sha256-kAvGLd5W633fRS+qVD/yclreFfcauyLygQGtzv7AP24=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/fpp/default.nix b/pkgs/tools/misc/fpp/default.nix
index ff514ceafb20f..d8f575b1363b1 100644
--- a/pkgs/tools/misc/fpp/default.nix
+++ b/pkgs/tools/misc/fpp/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://facebook.github.io/PathPicker/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.all;
+    mainProgram = "fpp";
   };
 }
diff --git a/pkgs/tools/misc/fre/default.nix b/pkgs/tools/misc/fre/default.nix
index 92393eb4fc27a..807529f200dc4 100644
--- a/pkgs/tools/misc/fre/default.nix
+++ b/pkgs/tools/misc/fre/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fre";
-  version = "0.3.1";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "camdencheek";
     repo = "fre";
-    rev = version;
-    hash = "sha256-nG2+LsmmzAsan3ZjFXGPMz/6hTdj9jiDfgeAwNpu7Eg=";
+    rev = "v${version}";
+    hash = "sha256-cYqEPohqUmewvBUoGJQfa4ATxw2uny5+nUKtNzrxK38=";
   };
 
-  cargoHash = "sha256-y0sWe7q5MKebwKObXRgRs348hmjZaklnhYdfUnHoYX0=";
+  cargoHash = "sha256-BEIrjHsIrNkFEEjCrTKwsJL9hptmVOI8x3ZWoo9ZUvQ=";
 
   meta = with lib; {
     description = "A CLI tool for tracking your most-used directories and files";
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/camdencheek/fre/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gaykitty ];
+    mainProgram = "fre";
   };
 }
diff --git a/pkgs/tools/misc/freshfetch/default.nix b/pkgs/tools/misc/freshfetch/default.nix
index 89ec74b20258e..0723c18048b97 100644
--- a/pkgs/tools/misc/freshfetch/default.nix
+++ b/pkgs/tools/misc/freshfetch/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/k4rakara/freshfetch";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "freshfetch";
   };
 }
diff --git a/pkgs/tools/misc/fselect/default.nix b/pkgs/tools/misc/fselect/default.nix
index fbad5f05ad3a3..feeb9f3a3d21a 100644
--- a/pkgs/tools/misc/fselect/default.nix
+++ b/pkgs/tools/misc/fselect/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fselect";
-  version = "0.8.4";
+  version = "0.8.5";
 
   src = fetchFromGitHub {
     owner = "jhspetersson";
     repo = "fselect";
     rev = version;
-    sha256 = "sha256-XCm4gWPuza+LxK6fnDq5wAn3GGC3njtWxWng+FXIwOs=";
+    sha256 = "sha256-gEiKv1YbNNWexNfzUULbe0fT0ueJ9TJojhBHp31i6OY=";
   };
 
-  cargoHash = "sha256-XGjXeA2tRJhFbADtrPR11JgmrQI8mK3Rp+ZSIY62H9s=";
+  cargoHash = "sha256-eqzqIyQHHklxo3aojCvY06TUPSqChoz6yZ2zzpgRNqs=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optional stdenv.isDarwin libiconv;
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jhspetersson/fselect";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "fselect";
   };
 }
diff --git a/pkgs/tools/misc/fsmark/default.nix b/pkgs/tools/misc/fsmark/default.nix
index 1a21156e64033..2c2aa2c6fef82 100644
--- a/pkgs/tools/misc/fsmark/default.nix
+++ b/pkgs/tools/misc/fsmark/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "fs_mark";
   };
 }
diff --git a/pkgs/tools/misc/fsmon/default.nix b/pkgs/tools/misc/fsmon/default.nix
index 6cde8a2150bee..f704de4f65157 100644
--- a/pkgs/tools/misc/fsmon/default.nix
+++ b/pkgs/tools/misc/fsmon/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "fsmon";
   };
 }
diff --git a/pkgs/tools/misc/fsql/default.nix b/pkgs/tools/misc/fsql/default.nix
index 96ce250499d50..d9f3b3ae8f90e 100644
--- a/pkgs/tools/misc/fsql/default.nix
+++ b/pkgs/tools/misc/fsql/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fsql";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "kshvmdn";
     repo = "fsql";
     rev = "v${version}";
-    sha256 = "sha256-6KqlpFBaAWrlEjkFQhOEic569+eoYVAsnhMrg8AEPV4=";
+    sha256 = "sha256-U6TPszqsZvoz+9GIB0wNYMRJqIDLOp/BZO3/k8FC0Gs=";
   };
 
-  vendorHash = "sha256-xuD7/gTssf1Iu1VuIRysjtUjve16gozOq0Wz4w6mIB8=";
+  vendorHash = "sha256-+laTnx6Xkrv3QQel5opqYQSuFmo54UMI2A653xbBWzQ=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/kshvmdn/fsql";
     license = licenses.mit;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "fsql";
   };
 }
diff --git a/pkgs/tools/misc/fsrx/default.nix b/pkgs/tools/misc/fsrx/default.nix
index ad1ad389f1be6..63f3b9728f1e0 100644
--- a/pkgs/tools/misc/fsrx/default.nix
+++ b/pkgs/tools/misc/fsrx/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/thatvegandev/fsrx";
     license = licenses.mit;
     maintainers = with maintainers; [ MoritzBoehme ];
+    mainProgram = "fsrx";
   };
 }
diff --git a/pkgs/tools/misc/fuc/default.nix b/pkgs/tools/misc/fuc/default.nix
index 33e34e2b63235..f30c26092a97a 100644
--- a/pkgs/tools/misc/fuc/default.nix
+++ b/pkgs/tools/misc/fuc/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fuc";
-  version = "1.1.7";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "SUPERCILEX";
     repo = "fuc";
     rev = version;
-    hash = "sha256-Ii0X2QGvUE+wDD7pKN3Mws4VqnwGJFdpjjv3oJRn/pY=";
+    hash = "sha256-Y43+LB6JXxpU94BrrjSBs2ge2g3NB7O3wYeU6rbF28U=";
   };
 
-  cargoHash = "sha256-08MQCKfkusnE9fuuJOlKeDESwmf8ajU7qMjujN2o5bU=";
+  cargoHash = "sha256-uNG+7a9EvGLkPIu/p8tnucZ3R6/LhZ2Lfv7V0e5YIxs=";
 
   RUSTC_BOOTSTRAP = 1;
 
diff --git a/pkgs/tools/misc/fw/default.nix b/pkgs/tools/misc/fw/default.nix
index 7cb9be3ccb55f..54d263fc112fb 100644
--- a/pkgs/tools/misc/fw/default.nix
+++ b/pkgs/tools/misc/fw/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fw";
-  version = "2.17.1";
+  version = "2.19.1";
 
   src = fetchFromGitHub {
     owner = "brocode";
     repo = "fw";
     rev = "v${version}";
-    hash = "sha256-8Jq7VjTKwq8n9lrwTzazkkrq8/mNacFTwz/M+eAwBWM=";
+    hash = "sha256-fG1N/3Er7BvXOJTMGooaIMa5I9iNwnH+1om2jcWkI68=";
   };
 
-  cargoHash = "sha256-tIrACx4KRjfxLyxTiP32PpdN8NegaHBIkINsPGgygVQ=";
+  cargoHash = "sha256-1d2uX/A1HZAmAI3d0iet1NkG0IFuJpVnhWxpY0jVVUI=";
 
   nativeBuildInputs = [
     pkg-config
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
     openssl
     zlib
   ] ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   env = {
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/brocode/fw";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "fw";
   };
 }
diff --git a/pkgs/tools/misc/fx-cast-bridge/default.nix b/pkgs/tools/misc/fx-cast-bridge/default.nix
index 5f2274101e56d..722905df951f7 100644
--- a/pkgs/tools/misc/fx-cast-bridge/default.nix
+++ b/pkgs/tools/misc/fx-cast-bridge/default.nix
@@ -1,9 +1,11 @@
-{ lib, buildNpmPackage, fetchFromGitHub, avahi-compat, nodejs, python3 }:
+{ lib, buildNpmPackage, fetchFromGitHub, avahi-compat, nodejs_18, python3 }:
 
 buildNpmPackage rec {
   pname = "fx-cast-bridge";
   version = "0.3.1";
 
+  nodejs = nodejs_18;
+
   src = fetchFromGitHub {
     owner = "hensm";
     repo = "fx_cast";
@@ -50,6 +52,7 @@ buildNpmPackage rec {
     description = "Implementation of the Chrome Sender API (Chromecast) within Firefox";
     homepage = "https://hensm.github.io/fx_cast/";
     license = licenses.mit;
-    maintainers = with maintainers; [ dtzWill pedrohlc ];
+    maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "fx_cast_bridge";
   };
 }
diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix
index 0116ee41104e1..a64246693ee16 100644
--- a/pkgs/tools/misc/fzf/default.nix
+++ b/pkgs/tools/misc/fzf/default.nix
@@ -8,7 +8,6 @@
 , bc
 , ncurses
 , perl
-, glibcLocales
 , testers
 , fzf
 }:
@@ -19,22 +18,22 @@ let
   # warnings on non-nixos machines
   ourPerl = if !stdenv.isLinux then perl else (
     writeShellScriptBin "perl" ''
-      export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
+      export PERL_BADLANG=0
       exec ${perl}/bin/perl "$@"
     '');
 in
 buildGoModule rec {
   pname = "fzf";
-  version = "0.42.0";
+  version = "0.46.1";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    hash = "sha256-+65R7cbj62UXw3ZYXIK9VcAeGnpP4pLigr21awoPLi4=";
+    hash = "sha256-gMSelLwIIYv/vkbdWi4Cw3FEy4lbC8P/5+T+c/e66+c=";
   };
 
-  vendorHash = "sha256-O6OjBbrVAxDQd27ar2mmFkU1XyVM2C8SJWJ54rgaf2s=";
+  vendorHash = "sha256-8ojmIETUyZ3jDhrqkHYnxptRG8vdj0GADYvEpw0wi6w=";
 
   CGO_ENABLED = 0;
 
@@ -60,6 +59,7 @@ buildGoModule rec {
     # Has a sneaky dependency on perl
     # Include first args to make sure we're patching the right thing
     substituteInPlace shell/key-bindings.bash \
+      --replace "command -v perl" "command -v ${ourPerl}/bin/perl" \
       --replace " perl -n " " ${ourPerl}/bin/perl -n "
     # fzf-tmux depends on bc
    substituteInPlace bin/fzf-tmux \
@@ -79,7 +79,10 @@ buildGoModule rec {
     install -D shell/* -t $out/share/fzf/
     install -D shell/key-bindings.fish $out/share/fish/vendor_functions.d/fzf_key_bindings.fish
     mkdir -p $out/share/fish/vendor_conf.d
-    echo fzf_key_bindings > $out/share/fish/vendor_conf.d/load-fzf-key-bindings.fish
+    cat << EOF > $out/share/fish/vendor_conf.d/load-fzf-key-bindings.fish
+      status is-interactive; or exit 0
+      fzf_key_bindings
+    EOF
 
     cat <<SCRIPT > $out/bin/fzf-share
     #!${runtimeShell}
diff --git a/pkgs/tools/misc/fzy/default.nix b/pkgs/tools/misc/fzy/default.nix
index f726adb0d4629..b7186e08d3dbb 100644
--- a/pkgs/tools/misc/fzy/default.nix
+++ b/pkgs/tools/misc/fzy/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
     platforms = platforms.all;
+    mainProgram = "fzy";
   };
 }
diff --git a/pkgs/tools/misc/g203-led/default.nix b/pkgs/tools/misc/g203-led/default.nix
index 7290b57a32368..f2db4f58d5918 100644
--- a/pkgs/tools/misc/g203-led/default.nix
+++ b/pkgs/tools/misc/g203-led/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ r-burns ];
     homepage = "https://github.com/smasty/g203-led";
     platforms = platforms.linux;
+    mainProgram = "g203-led";
   };
 }
diff --git a/pkgs/tools/misc/g933-utils/default.nix b/pkgs/tools/misc/g933-utils/default.nix
index a2671f946b05d..de084fb74bf44 100644
--- a/pkgs/tools/misc/g933-utils/default.nix
+++ b/pkgs/tools/misc/g933-utils/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
     platforms = platforms.linux;
+    mainProgram = "g933-utils";
   };
 }
diff --git a/pkgs/tools/misc/gay/default.nix b/pkgs/tools/misc/gay/default.nix
index 42887f85c6c06..d1129702f867a 100644
--- a/pkgs/tools/misc/gay/default.nix
+++ b/pkgs/tools/misc/gay/default.nix
@@ -17,5 +17,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Colour your text / terminal to be more gay";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres CodeLongAndProsper90 ];
+    mainProgram = "gay";
   };
 }
diff --git a/pkgs/tools/misc/gazelle-origin/default.nix b/pkgs/tools/misc/gazelle-origin/default.nix
index 19955c56d02c9..924c0ba8df7b3 100644
--- a/pkgs/tools/misc/gazelle-origin/default.nix
+++ b/pkgs/tools/misc/gazelle-origin/default.nix
@@ -33,5 +33,6 @@ buildPythonApplication rec {
     # TODO license is unspecified in the upstream, as well as the fork
     license = licenses.unfree;
     maintainers = with maintainers; [ somasis ];
+    mainProgram = "gazelle-origin";
   };
 }
diff --git a/pkgs/tools/misc/gbdfed/default.nix b/pkgs/tools/misc/gbdfed/default.nix
index ded2864dbc644..0d709117b9247 100644
--- a/pkgs/tools/misc/gbdfed/default.nix
+++ b/pkgs/tools/misc/gbdfed/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.linquize ];
     platforms = lib.platforms.all;
+    mainProgram = "gbdfed";
   };
 }
diff --git a/pkgs/tools/misc/geteltorito/default.nix b/pkgs/tools/misc/geteltorito/default.nix
index be2de1167e3c7..5fb2209ee8c17 100644
--- a/pkgs/tools/misc/geteltorito/default.nix
+++ b/pkgs/tools/misc/geteltorito/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     homepage = "https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/";
     maintainers = [ maintainers.Profpatsch ];
     license = licenses.gpl2;
+    mainProgram = "geteltorito";
   };
 
 }
diff --git a/pkgs/tools/misc/getopt/default.nix b/pkgs/tools/misc/getopt/default.nix
index 2090fcbd7aacf..6b6cbf66b13fb 100644
--- a/pkgs/tools/misc/getopt/default.nix
+++ b/pkgs/tools/misc/getopt/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.unix;
     homepage = "http://frodo.looijaard.name/project/getopt";
     description = "Parses command-line arguments from shell scripts";
+    mainProgram = "getopt";
   };
 }
diff --git a/pkgs/tools/misc/gh-actions-cache/default.nix b/pkgs/tools/misc/gh-actions-cache/default.nix
index 4c80d032ab10b..2575beabf82a2 100644
--- a/pkgs/tools/misc/gh-actions-cache/default.nix
+++ b/pkgs/tools/misc/gh-actions-cache/default.nix
@@ -5,24 +5,25 @@
 
 buildGoModule rec {
   pname = "gh-actions-cache";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "gh-actions-cache";
     rev = "v${version}";
-    hash = "sha256-5iCj6z4HCMVFeplb3dGP/V60z6zMUnUPVBMnPi4yU1Q=";
+    hash = "sha256-GVha3xxLTBTiKfAjGb2q9btsGYzWQivGLyZ4Gg0s/N0=";
   };
 
-  vendorHash = "sha256-i9akQ0IjH9NItjYvMWLiGnFQrfZhA7SOvPZiUvdtDrk=";
+  vendorHash = "sha256-4/Zt+ga3abEPtR0FjWIsDpOiG1bfVtVuLuXP8aHbzqk=";
 
   ldflags = [
     "-s"
     "-w"
   ];
 
-  # Tests need network
-  doCheck = false;
+  # Needed for tests.
+  # https://github.com/actions/gh-actions-cache/issues/53#issuecomment-1464954495
+  env.GH_TOKEN = "dummy-token-to-facilitate-rest-client";
 
   meta = {
     description = "gh extension to manage GitHub Actions caches";
@@ -30,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/actions/gh-actions-cache/releases/tag/${src.rev}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-actions-cache";
   };
 }
diff --git a/pkgs/tools/misc/gh-cal/default.nix b/pkgs/tools/misc/gh-cal/default.nix
index 3e38cdf9d752a..98334e0afd55e 100644
--- a/pkgs/tools/misc/gh-cal/default.nix
+++ b/pkgs/tools/misc/gh-cal/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mrshmllow/gh-cal";
     license = licenses.mit;
     maintainers = with maintainers; [ loicreynier ];
+    mainProgram = "gh-cal";
   };
 }
diff --git a/pkgs/tools/misc/gh-dash/default.nix b/pkgs/tools/misc/gh-dash/default.nix
index 1fc865feef822..a42d1d165b7fc 100644
--- a/pkgs/tools/misc/gh-dash/default.nix
+++ b/pkgs/tools/misc/gh-dash/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gh-dash";
-  version = "3.11.0";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
     owner = "dlvhdr";
     repo = "gh-dash";
     rev = "v${version}";
-    hash = "sha256-XvNc68pVwqBLthkr3jb578Avpnr1NKT1XWUD4aazBHw=";
+    hash = "sha256-ijqEsjBNncrtg1DaVvwH2gxTgB3QOJCF1RxetnPBVII=";
   };
 
-  vendorHash = "sha256-COPEgRqogRkGuJm56n9Cqljr7H8QT0RSKAdnXbHm+nw=";
+  vendorHash = "sha256-ezxwUfI8FevfeRmXN4Og9Gfw1GX9noagzWIg6GSPOPc=";
 
   ldflags = [
     "-s"
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://github.com/dlvhdr/gh-dash";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-dash";
   };
 }
diff --git a/pkgs/tools/misc/gh-eco/default.nix b/pkgs/tools/misc/gh-eco/default.nix
index 98f84659a40e7..329ef60c1b4e1 100644
--- a/pkgs/tools/misc/gh-eco/default.nix
+++ b/pkgs/tools/misc/gh-eco/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
     description = "gh extension to explore the ecosystem";
     license = licenses.mit;
     maintainers = with maintainers; [ helium ];
+    mainProgram = "gh-eco";
   };
 }
 
diff --git a/pkgs/tools/misc/gh-markdown-preview/default.nix b/pkgs/tools/misc/gh-markdown-preview/default.nix
index e4fe21fc09184..68f041dbbf2d4 100644
--- a/pkgs/tools/misc/gh-markdown-preview/default.nix
+++ b/pkgs/tools/misc/gh-markdown-preview/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     changelog = "https://github.com/yusukebe/gh-markdown-preview/releases/tag/${src.rev}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-markdown-preview";
   };
 }
diff --git a/pkgs/tools/misc/gh-ost/default.nix b/pkgs/tools/misc/gh-ost/default.nix
index 5692ac812deea..91798cfae8c9c 100644
--- a/pkgs/tools/misc/gh-ost/default.nix
+++ b/pkgs/tools/misc/gh-ost/default.nix
@@ -1,23 +1,32 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, gh-ost }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gh-ost";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "github";
     repo = "gh-ost";
     rev = "v${version}";
-    sha256 = "sha256-FTWKbZ/32cr/BUI+jtV0HYlWDFz+R2YQd6ZSzilDj64=";
+    hash = "sha256-dTz4w+OJXe2+ygsYsQ9tanDyaMXvdh8W3d8xpjQMapI=";
   };
 
-  goPackagePath = "github.com/github/gh-ost";
+  vendorHash = null;
 
-  ldflags = [ "-s" "-w" "-X main.AppVersion=${version}" "-X main.BuildDescribe=${src.rev}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.AppVersion=${version}"
+  ];
+
+  passthru.tests.version = testers.testVersion {
+    package = gh-ost;
+  };
 
   meta = with lib; {
     description = "Triggerless online schema migration solution for MySQL";
     homepage = "https://github.com/github/gh-ost";
     license = licenses.mit;
+    mainProgram = "gh-ost";
   };
 }
diff --git a/pkgs/tools/misc/ghostie/default.nix b/pkgs/tools/misc/ghostie/default.nix
index 2bda5af2af306..0a4e1cb695e0d 100644
--- a/pkgs/tools/misc/ghostie/default.nix
+++ b/pkgs/tools/misc/ghostie/default.nix
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
     broken = stdenv.isx86_64 && stdenv.isDarwin;
+    mainProgram = "ghostie";
   };
 }
diff --git a/pkgs/tools/misc/gibo/default.nix b/pkgs/tools/misc/gibo/default.nix
index 6ee4698d750c4..edd166f00f565 100644
--- a/pkgs/tools/misc/gibo/default.nix
+++ b/pkgs/tools/misc/gibo/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.publicDomain;
     description = "A shell script for easily accessing gitignore boilerplates";
     platforms = lib.platforms.unix;
+    mainProgram = "gibo";
   };
 }
diff --git a/pkgs/tools/misc/gif-for-cli/default.nix b/pkgs/tools/misc/gif-for-cli/default.nix
index 61690b5f41a90..3a2ad84a44300 100644
--- a/pkgs/tools/misc/gif-for-cli/default.nix
+++ b/pkgs/tools/misc/gif-for-cli/default.nix
@@ -51,5 +51,6 @@ python3Packages.buildPythonApplication {
     homepage = "https://github.com/google/gif-for-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ Scriptkiddi ];
+    mainProgram = "gif-for-cli";
   };
 }
diff --git a/pkgs/tools/misc/gigalixir/default.nix b/pkgs/tools/misc/gigalixir/default.nix
index 916193f61ec00..0ba75bbc82b9a 100644
--- a/pkgs/tools/misc/gigalixir/default.nix
+++ b/pkgs/tools/misc/gigalixir/default.nix
@@ -60,5 +60,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/gigalixir/gigalixir-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "gigalixir";
   };
 }
diff --git a/pkgs/tools/misc/github-backup/default.nix b/pkgs/tools/misc/github-backup/default.nix
index a753eaf937425..4f57b084ba604 100644
--- a/pkgs/tools/misc/github-backup/default.nix
+++ b/pkgs/tools/misc/github-backup/default.nix
@@ -7,14 +7,18 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "github-backup";
-  version = "0.43.1";
-  format = "setuptools";
+  version = "0.45.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-S0674oTUsXftXlbP8fbF09FIWnWwq/Mgbv960tg3FNg=";
+    hash = "sha256-bT5eqhpSK9u6Q4hO8FTgbpjjv0x2am1m2fOw5OqxixQ=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   makeWrapperArgs = [
     "--prefix" "PATH" ":" (lib.makeBinPath [ git git-lfs ])
   ];
@@ -28,5 +32,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/josegonzalez/python-github-backup/blob/${version}/CHANGES.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "github-backup";
   };
 }
diff --git a/pkgs/tools/misc/github-copilot-cli/default.nix b/pkgs/tools/misc/github-copilot-cli/default.nix
index a6c5e7477d496..644f3f983b8ea 100644
--- a/pkgs/tools/misc/github-copilot-cli/default.nix
+++ b/pkgs/tools/misc/github-copilot-cli/default.nix
@@ -2,14 +2,14 @@
 
 buildNpmPackage rec {
   pname = "github-copilot-cli";
-  version = "0.1.33";
+  version = "0.1.36";
 
   src = fetchzip {
     url = "https://registry.npmjs.org/@githubnext/${pname}/-/${pname}-${version}.tgz";
-    hash = "sha256-uTv6Z/AzvINinMiIfaaqRZDCmsAQ7tOE5SpuecpzGug=";
+    hash = "sha256-7n+7sN61OrqMVGaKll85+HwX7iGG9M/UW5lf2Pd5sRU=";
   };
 
-  npmDepsHash = "sha256-VIg9a63GH246SbmK4Q8CwA2jdaaOwNUXoJkuDVwy5jE=";
+  npmDepsHash = "sha256-h0StxzGbl3ZeOQ4Jy1BgJ5sJ0pAbubMCRsiIOYpU04w=";
 
   postPatch = ''
     cp ${./package-lock.json} package-lock.json
@@ -23,6 +23,7 @@ buildNpmPackage rec {
     license = licenses.unfree; # upstream has no license
     maintainers = [ maintainers.malo ];
     platforms = platforms.all;
+    mainProgram = "github-copilot-cli";
   };
 }
 
diff --git a/pkgs/tools/misc/github-copilot-cli/package-lock.json b/pkgs/tools/misc/github-copilot-cli/package-lock.json
index a25ef7cbd03e6..03bc0c1fc339b 100644
--- a/pkgs/tools/misc/github-copilot-cli/package-lock.json
+++ b/pkgs/tools/misc/github-copilot-cli/package-lock.json
@@ -1,15 +1,15 @@
 {
   "name": "@githubnext/github-copilot-cli",
-  "version": "0.1.33",
+  "version": "0.1.36",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "@githubnext/github-copilot-cli",
-      "version": "0.1.33",
+      "version": "0.1.36",
       "dependencies": {
-        "applicationinsights": "^2.3.6",
-        "axios": "^1.1.3",
+        "applicationinsights": "^2.9.1",
+        "axios": "^1.6.0",
         "chalk": "^5.1.0",
         "cli-highlight": "^2.1.11",
         "commander": "^9.4.1",
@@ -26,10 +26,13 @@
         "ora": "^6.1.2",
         "radash": "^9.1.0",
         "react": "17",
+        "react-devtools-core": "^4.28.4",
         "react-dom": "17",
         "react-query": "^3.39.2",
+        "semver": "^5.7.2",
         "simple-update-notifier": "^1.1.0",
         "tiny-invariant": "^1.3.1",
+        "tough-cookie": "^4.1.3",
         "ts-dedent": "^2.2.0",
         "use-zustand": "^0.0.1",
         "uuid": "^9.0.0",
@@ -60,15 +63,16 @@
       }
     },
     "node_modules/@azure/core-auth": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.4.0.tgz",
-      "integrity": "sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==",
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.5.0.tgz",
+      "integrity": "sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==",
       "dependencies": {
         "@azure/abort-controller": "^1.0.0",
+        "@azure/core-util": "^1.1.0",
         "tslib": "^2.2.0"
       },
       "engines": {
-        "node": ">=12.0.0"
+        "node": ">=14.0.0"
       }
     },
     "node_modules/@azure/core-rest-pipeline": {
@@ -134,15 +138,15 @@
       }
     },
     "node_modules/@azure/opentelemetry-instrumentation-azure-sdk": {
-      "version": "1.0.0-beta.3",
-      "resolved": "https://registry.npmjs.org/@azure/opentelemetry-instrumentation-azure-sdk/-/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.3.tgz",
-      "integrity": "sha512-9dvTQQ9OhjX0uh4PtDEMPGTP3WihTVLi+DHL9jRMQMPf0trYEbb8ZRIQNo+1JqchkR1YkBDBkki5hJstpUprtA==",
+      "version": "1.0.0-beta.5",
+      "resolved": "https://registry.npmjs.org/@azure/opentelemetry-instrumentation-azure-sdk/-/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.5.tgz",
+      "integrity": "sha512-fsUarKQDvjhmBO4nIfaZkfNSApm1hZBzcvpNbSrXdcUBxu7lRvKsV5DnwszX7cnhLyVOW9yl1uigtRQ1yDANjA==",
       "dependencies": {
         "@azure/core-tracing": "^1.0.0",
         "@azure/logger": "^1.0.0",
-        "@opentelemetry/api": "^1.4.0",
-        "@opentelemetry/core": "^1.9.0",
-        "@opentelemetry/instrumentation": "^0.35.0",
+        "@opentelemetry/api": "^1.4.1",
+        "@opentelemetry/core": "^1.15.2",
+        "@opentelemetry/instrumentation": "^0.41.2",
         "tslib": "^2.2.0"
       },
       "engines": {
@@ -150,11 +154,11 @@
       }
     },
     "node_modules/@babel/runtime": {
-      "version": "7.21.5",
-      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz",
-      "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==",
+      "version": "7.23.8",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz",
+      "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
       "dependencies": {
-        "regenerator-runtime": "^0.13.11"
+        "regenerator-runtime": "^0.14.0"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -201,40 +205,53 @@
         "node": ">=12"
       }
     },
+    "node_modules/@ljharb/through": {
+      "version": "2.3.11",
+      "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz",
+      "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==",
+      "dependencies": {
+        "call-bind": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/@microsoft/applicationinsights-web-snippet": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-snippet/-/applicationinsights-web-snippet-1.0.1.tgz",
       "integrity": "sha512-2IHAOaLauc8qaAitvWS+U931T+ze+7MNWrDHY47IENP5y2UA0vqJDu67kWZDdpCN1fFC77sfgfB+HV7SrKshnQ=="
     },
     "node_modules/@opentelemetry/api": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
-      "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==",
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz",
+      "integrity": "sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==",
       "engines": {
         "node": ">=8.0.0"
       }
     },
     "node_modules/@opentelemetry/core": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.12.0.tgz",
-      "integrity": "sha512-4DWYNb3dLs2mSCGl65jY3aEgbvPWSHVQV/dmDWiYeWUrMakZQFcymqZOSUNZO0uDrEJoxMu8O5tZktX6UKFwag==",
+      "version": "1.20.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.20.0.tgz",
+      "integrity": "sha512-lSRvk5AIdD6CtgYJcJXh0wGibQ3S/8bC2qbqKs9wK8e0K1tsWV6YkGFOqVc+jIRlCbZoIBeZzDe5UI+vb94uvg==",
       "dependencies": {
-        "@opentelemetry/semantic-conventions": "1.12.0"
+        "@opentelemetry/semantic-conventions": "1.20.0"
       },
       "engines": {
         "node": ">=14"
       },
       "peerDependencies": {
-        "@opentelemetry/api": ">=1.0.0 <1.5.0"
+        "@opentelemetry/api": ">=1.0.0 <1.8.0"
       }
     },
     "node_modules/@opentelemetry/instrumentation": {
-      "version": "0.35.1",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.35.1.tgz",
-      "integrity": "sha512-EZsvXqxenbRTSNsft6LDcrT4pjAiyZOx3rkDNeqKpwZZe6GmZtsXaZZKuDkJtz9fTjOGjDHjZj9/h80Ya9iIJw==",
-      "dependencies": {
-        "require-in-the-middle": "^5.0.3",
-        "semver": "^7.3.2",
+      "version": "0.41.2",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.41.2.tgz",
+      "integrity": "sha512-rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==",
+      "dependencies": {
+        "@types/shimmer": "^1.0.2",
+        "import-in-the-middle": "1.4.2",
+        "require-in-the-middle": "^7.1.1",
+        "semver": "^7.5.1",
         "shimmer": "^1.2.1"
       },
       "engines": {
@@ -244,41 +261,55 @@
         "@opentelemetry/api": "^1.3.0"
       }
     },
+    "node_modules/@opentelemetry/instrumentation/node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
     "node_modules/@opentelemetry/resources": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.12.0.tgz",
-      "integrity": "sha512-gunMKXG0hJrR0LXrqh7BVbziA/+iJBL3ZbXCXO64uY+SrExkwoyJkpiq9l5ismkGF/A20mDEV7tGwh+KyPw00Q==",
+      "version": "1.20.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.20.0.tgz",
+      "integrity": "sha512-nOpV0vGegSq+9ze2cEDvO3BMA5pGBhmhKZiAlj+xQZjiEjPmJtdHIuBLRvptu2ahcbFJw85gIB9BYHZOvZK1JQ==",
       "dependencies": {
-        "@opentelemetry/core": "1.12.0",
-        "@opentelemetry/semantic-conventions": "1.12.0"
+        "@opentelemetry/core": "1.20.0",
+        "@opentelemetry/semantic-conventions": "1.20.0"
       },
       "engines": {
         "node": ">=14"
       },
       "peerDependencies": {
-        "@opentelemetry/api": ">=1.0.0 <1.5.0"
+        "@opentelemetry/api": ">=1.0.0 <1.8.0"
       }
     },
     "node_modules/@opentelemetry/sdk-trace-base": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.12.0.tgz",
-      "integrity": "sha512-pfCOB3tNDlYVoWuz4D7Ji+Jmy9MHnATWHVpkERdCEiwUGEZ+4IvNPXUcPc37wJVmMpjGLeaWgPPrie0KIpWf1A==",
+      "version": "1.20.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.20.0.tgz",
+      "integrity": "sha512-BAIZ0hUgnhdb3OBQjn1FKGz/Iwie4l+uOMKklP7FGh7PTqEAbbzDNMJKaZQh6KepF7Fq+CZDRKslD3yrYy2Tzw==",
       "dependencies": {
-        "@opentelemetry/core": "1.12.0",
-        "@opentelemetry/resources": "1.12.0",
-        "@opentelemetry/semantic-conventions": "1.12.0"
+        "@opentelemetry/core": "1.20.0",
+        "@opentelemetry/resources": "1.20.0",
+        "@opentelemetry/semantic-conventions": "1.20.0"
       },
       "engines": {
         "node": ">=14"
       },
       "peerDependencies": {
-        "@opentelemetry/api": ">=1.0.0 <1.5.0"
+        "@opentelemetry/api": ">=1.0.0 <1.8.0"
       }
     },
     "node_modules/@opentelemetry/semantic-conventions": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.12.0.tgz",
-      "integrity": "sha512-hO+bdeGOlJwqowUBoZF5LyP3ORUFOP1G0GRv8N45W/cztXbT2ZEXaAzfokRS9Xc9FWmYrDj32mF6SzH6wuoIyA==",
+      "version": "1.20.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.20.0.tgz",
+      "integrity": "sha512-3zLJJCgTKYpbqFX8drl8hOCHtdchELC+kGqlVcV4mHW1DiElTtv1Nt9EKBptTd1IfL56QkuYnWJ3DeHd2Gtu/A==",
       "engines": {
         "node": ">=14"
       }
@@ -292,9 +323,9 @@
       }
     },
     "node_modules/@types/inquirer": {
-      "version": "9.0.3",
-      "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.3.tgz",
-      "integrity": "sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw==",
+      "version": "9.0.7",
+      "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz",
+      "integrity": "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==",
       "dev": true,
       "dependencies": {
         "@types/through": "*",
@@ -302,21 +333,24 @@
       }
     },
     "node_modules/@types/node": {
-      "version": "18.16.2",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.2.tgz",
-      "integrity": "sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg==",
-      "dev": true
+      "version": "18.19.8",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz",
+      "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==",
+      "dev": true,
+      "dependencies": {
+        "undici-types": "~5.26.4"
+      }
     },
     "node_modules/@types/prop-types": {
-      "version": "15.7.5",
-      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
-      "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
+      "version": "15.7.11",
+      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+      "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==",
       "devOptional": true
     },
     "node_modules/@types/react": {
-      "version": "18.2.0",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.0.tgz",
-      "integrity": "sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==",
+      "version": "18.2.48",
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz",
+      "integrity": "sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==",
       "devOptional": true,
       "dependencies": {
         "@types/prop-types": "*",
@@ -325,15 +359,20 @@
       }
     },
     "node_modules/@types/scheduler": {
-      "version": "0.16.3",
-      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
-      "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
+      "version": "0.16.8",
+      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
+      "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
       "devOptional": true
     },
+    "node_modules/@types/shimmer": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.5.tgz",
+      "integrity": "sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww=="
+    },
     "node_modules/@types/through": {
-      "version": "0.0.30",
-      "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz",
-      "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==",
+      "version": "0.0.33",
+      "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz",
+      "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==",
       "dev": true,
       "dependencies": {
         "@types/node": "*"
@@ -350,6 +389,25 @@
       "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz",
       "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw=="
     },
+    "node_modules/acorn": {
+      "version": "8.11.3",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-import-assertions": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
+      "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
+      "peerDependencies": {
+        "acorn": "^8"
+      }
+    },
     "node_modules/agent-base": {
       "version": "6.0.2",
       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
@@ -387,14 +445,11 @@
       }
     },
     "node_modules/ansi-regex": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
-      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
       "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+        "node": ">=8"
       }
     },
     "node_modules/ansi-styles": {
@@ -422,23 +477,23 @@
       "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
     },
     "node_modules/applicationinsights": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.6.0.tgz",
-      "integrity": "sha512-ldeFvbocbRoMxS361lOwmLL3ltWfgNxALrttge6BrpsPMTStGzevoiqaWieIjZ/3qNmljOd+xmwaNPpBoefdmA==",
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.9.2.tgz",
+      "integrity": "sha512-wlDiD7v0BQNM8oNzsf9C836R5ze25u+CuCEZsbA5xMIXYYBxkqkWE/mo9GFJM7rsKaiGqpxEwWmePHKD2Lwy2w==",
       "dependencies": {
-        "@azure/core-auth": "^1.4.0",
+        "@azure/core-auth": "^1.5.0",
         "@azure/core-rest-pipeline": "1.10.1",
         "@azure/core-util": "1.2.0",
-        "@azure/opentelemetry-instrumentation-azure-sdk": "^1.0.0-beta.3",
+        "@azure/opentelemetry-instrumentation-azure-sdk": "^1.0.0-beta.5",
         "@microsoft/applicationinsights-web-snippet": "^1.0.1",
-        "@opentelemetry/api": "^1.0.4",
-        "@opentelemetry/core": "^1.12.0",
-        "@opentelemetry/sdk-trace-base": "^1.12.0",
-        "@opentelemetry/semantic-conventions": "^1.12.0",
+        "@opentelemetry/api": "^1.7.0",
+        "@opentelemetry/core": "^1.19.0",
+        "@opentelemetry/sdk-trace-base": "^1.19.0",
+        "@opentelemetry/semantic-conventions": "^1.19.0",
         "cls-hooked": "^4.2.2",
         "continuation-local-storage": "^3.2.1",
-        "diagnostic-channel": "1.1.0",
-        "diagnostic-channel-publishers": "1.0.6"
+        "diagnostic-channel": "1.1.1",
+        "diagnostic-channel-publishers": "1.0.8"
       },
       "engines": {
         "node": ">=8.0.0"
@@ -468,6 +523,12 @@
         "node": ">=8"
       }
     },
+    "node_modules/async": {
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+      "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
+      "dev": true
+    },
     "node_modules/async-hook-jl": {
       "version": "1.7.6",
       "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz",
@@ -491,14 +552,6 @@
         "node": "<=0.11.8 || >0.11.10"
       }
     },
-    "node_modules/async-listener/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-      "bin": {
-        "semver": "bin/semver"
-      }
-    },
     "node_modules/asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -516,11 +569,11 @@
       }
     },
     "node_modules/axios": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz",
-      "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==",
+      "version": "1.6.5",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz",
+      "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
       "dependencies": {
-        "follow-redirects": "^1.15.0",
+        "follow-redirects": "^1.15.4",
         "form-data": "^4.0.0",
         "proxy-from-env": "^1.1.0"
       }
@@ -550,9 +603,9 @@
       ]
     },
     "node_modules/big-integer": {
-      "version": "1.6.51",
-      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
-      "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+      "version": "1.6.52",
+      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+      "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
       "engines": {
         "node": ">=0.6"
       }
@@ -614,6 +667,19 @@
         "ieee754": "^1.2.1"
       }
     },
+    "node_modules/call-bind": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+      "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+      "dependencies": {
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.1",
+        "set-function-length": "^1.1.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/cardinal": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
@@ -627,9 +693,9 @@
       }
     },
     "node_modules/chalk": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
-      "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+      "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
       "engines": {
         "node": "^12.17.0 || ^14.13 || >=16.0.0"
       },
@@ -647,6 +713,11 @@
       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
       "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
     },
+    "node_modules/cjs-module-lexer": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
+      "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ=="
+    },
     "node_modules/cli-boxes": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
@@ -705,9 +776,9 @@
       }
     },
     "node_modules/cli-spinners": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz",
-      "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==",
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+      "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
       "engines": {
         "node": ">=6"
       },
@@ -745,9 +816,9 @@
       }
     },
     "node_modules/cli-width": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz",
-      "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==",
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+      "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
       "engines": {
         "node": ">= 12"
       }
@@ -762,25 +833,6 @@
         "wrap-ansi": "^7.0.0"
       }
     },
-    "node_modules/cliui/node_modules/ansi-regex": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/cliui/node_modules/strip-ansi": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-      "dependencies": {
-        "ansi-regex": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/cliui/node_modules/wrap-ansi": {
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -818,14 +870,6 @@
         "node": "^4.7 || >=6.9 || >=7.3 || >=8.2.1"
       }
     },
-    "node_modules/cls-hooked/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-      "bin": {
-        "semver": "bin/semver"
-      }
-    },
     "node_modules/code-excerpt": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz",
@@ -895,9 +939,9 @@
       }
     },
     "node_modules/csstype": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
-      "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
       "devOptional": true
     },
     "node_modules/debug": {
@@ -927,6 +971,19 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/define-data-property": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
+      "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+      "dependencies": {
+        "get-intrinsic": "^1.2.1",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/delayed-stream": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -941,33 +998,49 @@
       "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
     },
     "node_modules/diagnostic-channel": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.0.tgz",
-      "integrity": "sha512-fwujyMe1gj6rk6dYi9hMZm0c8Mz8NDMVl2LB4iaYh3+LIAThZC8RKFGXWG0IML2OxAit/ZFRgZhMkhQ3d/bobQ==",
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.1.tgz",
+      "integrity": "sha512-r2HV5qFkUICyoaKlBEpLKHjxMXATUf/l+h8UZPGBHGLy4DDiY2sOLcIctax4eRnTw5wH2jTMExLntGPJ8eOJxw==",
       "dependencies": {
-        "semver": "^5.3.0"
+        "semver": "^7.5.3"
       }
     },
     "node_modules/diagnostic-channel-publishers": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.6.tgz",
-      "integrity": "sha512-RE5AP4JmEm/CV06gOyFdgWWm3gMNOoXulod2mq4ysiz9s77ZhHb1P1DGrfePHjNOmgvWglhegmj5q8DNtjRrEg==",
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.8.tgz",
+      "integrity": "sha512-HmSm9hXxSPxA9BaLGY98QU1zsdjeCk113KjAYGPCen1ZP6mhVaTPzHd6UYv5r21DnWANi+f+NyPOHruGT9jpqQ==",
       "peerDependencies": {
         "diagnostic-channel": "*"
       }
     },
     "node_modules/diagnostic-channel/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
       "bin": {
-        "semver": "bin/semver"
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
       }
     },
-    "node_modules/eastasianwidth": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
-      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
+    "node_modules/ejs": {
+      "version": "3.1.9",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+      "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+      "dev": true,
+      "dependencies": {
+        "jake": "^10.8.5"
+      },
+      "bin": {
+        "ejs": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
     "node_modules/emitter-listener": {
       "version": "1.1.2",
@@ -1394,6 +1467,36 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/filelist": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+      "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+      "dev": true,
+      "dependencies": {
+        "minimatch": "^5.0.1"
+      }
+    },
+    "node_modules/filelist/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/filelist/node_modules/minimatch": {
+      "version": "5.1.6",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+      "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
     "node_modules/find-package": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/find-package/-/find-package-1.0.0.tgz",
@@ -1404,9 +1507,9 @@
       }
     },
     "node_modules/follow-redirects": {
-      "version": "1.15.2",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
-      "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+      "version": "1.15.5",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
+      "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
       "funding": [
         {
           "type": "individual",
@@ -1441,17 +1544,21 @@
       "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
     },
     "node_modules/function-bind": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
     },
     "node_modules/genversion": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/genversion/-/genversion-3.1.1.tgz",
-      "integrity": "sha512-/H861PMsihhjgX2qqhTN8egM11V04imhA+3JRFY3jjPua2Sy1NqaqqQPjSP8rdM9jZoKpFhVj9g3Fs9XPCjBYQ==",
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/genversion/-/genversion-3.2.0.tgz",
+      "integrity": "sha512-OIYSX6XYA8PHecLDCTri30hadSZfAjZ8Iq1+BBDXqLWP4dRLuJNLoNjsSWtTpw97IccK2LDWzkEstxAB8GdN7g==",
       "dev": true,
       "dependencies": {
         "commander": "^7.2.0",
+        "ejs": "^3.1.9",
         "find-package": "^1.0.0"
       },
       "bin": {
@@ -1478,6 +1585,20 @@
         "node": "6.* || 8.* || >= 10.*"
       }
     },
+    "node_modules/get-intrinsic": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+      "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+      "dependencies": {
+        "function-bind": "^1.1.2",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/get-stream": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
@@ -1508,15 +1629,15 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
-    "node_modules/has": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+    "node_modules/gopd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+      "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
       "dependencies": {
-        "function-bind": "^1.1.1"
+        "get-intrinsic": "^1.1.3"
       },
-      "engines": {
-        "node": ">= 0.4.0"
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/has-flag": {
@@ -1527,6 +1648,50 @@
         "node": ">=8"
       }
     },
+    "node_modules/has-property-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+      "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+      "dependencies": {
+        "get-intrinsic": "^1.2.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+      "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+      "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+      "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/highlight.js": {
       "version": "10.7.3",
       "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
@@ -1599,6 +1764,17 @@
         "url": "https://opencollective.com/immer"
       }
     },
+    "node_modules/import-in-the-middle": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.4.2.tgz",
+      "integrity": "sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==",
+      "dependencies": {
+        "acorn": "^8.8.2",
+        "acorn-import-assertions": "^1.9.0",
+        "cjs-module-lexer": "^1.2.2",
+        "module-details-from-path": "^1.0.3"
+      }
+    },
     "node_modules/indent-string": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
@@ -1769,74 +1945,63 @@
       }
     },
     "node_modules/inquirer": {
-      "version": "9.2.0",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.0.tgz",
-      "integrity": "sha512-WWERbVqjsTXjXub1ZW0ZHDit1dyHqy0T9XIkky9TnmKAPrjU9Jkd59nZPK0dUuM3s73GZAZu2Jo4iFU3XSPVLA==",
+      "version": "9.2.12",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz",
+      "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==",
       "dependencies": {
-        "ansi-escapes": "^6.0.0",
-        "chalk": "^5.2.0",
-        "cli-cursor": "^4.0.0",
-        "cli-width": "^4.0.0",
-        "external-editor": "^3.0.3",
+        "@ljharb/through": "^2.3.11",
+        "ansi-escapes": "^4.3.2",
+        "chalk": "^5.3.0",
+        "cli-cursor": "^3.1.0",
+        "cli-width": "^4.1.0",
+        "external-editor": "^3.1.0",
         "figures": "^5.0.0",
         "lodash": "^4.17.21",
         "mute-stream": "1.0.0",
-        "ora": "^6.1.2",
-        "run-async": "^2.4.0",
-        "rxjs": "^7.8.0",
-        "string-width": "^5.1.2",
-        "strip-ansi": "^7.0.1",
-        "through": "^2.3.6",
-        "wrap-ansi": "^8.1.0"
+        "ora": "^5.4.1",
+        "run-async": "^3.0.0",
+        "rxjs": "^7.8.1",
+        "string-width": "^4.2.3",
+        "strip-ansi": "^6.0.1",
+        "wrap-ansi": "^6.2.0"
       },
       "engines": {
         "node": ">=14.18.0"
       }
     },
-    "node_modules/inquirer/node_modules/ansi-escapes": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
-      "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
+    "node_modules/inquirer/node_modules/bl": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+      "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
       "dependencies": {
-        "type-fest": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=14.16"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/inquirer/node_modules/ansi-styles": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
-      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+        "buffer": "^5.5.0",
+        "inherits": "^2.0.4",
+        "readable-stream": "^3.4.0"
       }
     },
-    "node_modules/inquirer/node_modules/cli-cursor": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
-      "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
+    "node_modules/inquirer/node_modules/buffer": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
       "dependencies": {
-        "restore-cursor": "^4.0.0"
-      },
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
+        "base64-js": "^1.3.1",
+        "ieee754": "^1.1.13"
       }
     },
-    "node_modules/inquirer/node_modules/emoji-regex": {
-      "version": "9.2.2",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
-      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
-    },
     "node_modules/inquirer/node_modules/escape-string-regexp": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
@@ -1863,62 +2028,101 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/inquirer/node_modules/restore-cursor": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
-      "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
+    "node_modules/inquirer/node_modules/is-interactive": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+      "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/inquirer/node_modules/log-symbols": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+      "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
       "dependencies": {
-        "onetime": "^5.1.0",
-        "signal-exit": "^3.0.2"
+        "chalk": "^4.1.0",
+        "is-unicode-supported": "^0.1.0"
       },
       "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+        "node": ">=10"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/inquirer/node_modules/string-width": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
-      "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+    "node_modules/inquirer/node_modules/log-symbols/node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
       "dependencies": {
-        "eastasianwidth": "^0.2.0",
-        "emoji-regex": "^9.2.2",
-        "strip-ansi": "^7.0.1"
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
       },
       "engines": {
-        "node": ">=12"
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/inquirer/node_modules/log-symbols/node_modules/is-unicode-supported": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+      "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+      "engines": {
+        "node": ">=10"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/inquirer/node_modules/type-fest": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.9.0.tgz",
-      "integrity": "sha512-hR8JP2e8UiH7SME5JZjsobBlEiatFoxpzCP+R3ZeCo7kAaG1jXQE5X/buLzogM6GJu8le9Y4OcfNuIQX0rZskA==",
+    "node_modules/inquirer/node_modules/ora": {
+      "version": "5.4.1",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+      "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+      "dependencies": {
+        "bl": "^4.1.0",
+        "chalk": "^4.1.0",
+        "cli-cursor": "^3.1.0",
+        "cli-spinners": "^2.5.0",
+        "is-interactive": "^1.0.0",
+        "is-unicode-supported": "^0.1.0",
+        "log-symbols": "^4.1.0",
+        "strip-ansi": "^6.0.0",
+        "wcwidth": "^1.0.1"
+      },
       "engines": {
-        "node": ">=14.16"
+        "node": ">=10"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/inquirer/node_modules/wrap-ansi": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
-      "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+    "node_modules/inquirer/node_modules/ora/node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
       "dependencies": {
-        "ansi-styles": "^6.1.0",
-        "string-width": "^5.0.1",
-        "strip-ansi": "^7.0.1"
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
       },
       "engines": {
-        "node": ">=12"
+        "node": ">=10"
       },
       "funding": {
-        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/inquirer/node_modules/ora/node_modules/is-unicode-supported": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+      "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/is-ci": {
@@ -1933,11 +2137,11 @@
       }
     },
     "node_modules/is-core-module": {
-      "version": "2.12.0",
-      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
-      "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
+      "version": "2.13.1",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+      "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
       "dependencies": {
-        "has": "^1.0.3"
+        "hasown": "^2.0.0"
       },
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
@@ -1973,6 +2177,40 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/jake": {
+      "version": "10.8.7",
+      "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
+      "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
+      "dev": true,
+      "dependencies": {
+        "async": "^3.2.3",
+        "chalk": "^4.0.2",
+        "filelist": "^1.0.4",
+        "minimatch": "^3.1.2"
+      },
+      "bin": {
+        "jake": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/jake/node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
     "node_modules/js-sha3": {
       "version": "0.8.0",
       "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
@@ -2042,56 +2280,56 @@
       }
     },
     "node_modules/marked-terminal": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz",
-      "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz",
+      "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==",
       "dependencies": {
-        "ansi-escapes": "^5.0.0",
+        "ansi-escapes": "^6.2.0",
         "cardinal": "^2.1.1",
-        "chalk": "^5.0.0",
-        "cli-table3": "^0.6.1",
+        "chalk": "^5.2.0",
+        "cli-table3": "^0.6.3",
         "node-emoji": "^1.11.0",
-        "supports-hyperlinks": "^2.2.0"
+        "supports-hyperlinks": "^2.3.0"
       },
       "engines": {
         "node": ">=14.13.1 || >=16.0.0"
       },
       "peerDependencies": {
-        "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0"
+        "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0"
       }
     },
     "node_modules/marked-terminal/node_modules/ansi-escapes": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz",
-      "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==",
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
+      "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
       "dependencies": {
-        "type-fest": "^1.0.2"
+        "type-fest": "^3.0.0"
       },
       "engines": {
-        "node": ">=12"
+        "node": ">=14.16"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/marked-terminal/node_modules/type-fest": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
-      "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+      "version": "3.13.1",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+      "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
       "engines": {
-        "node": ">=10"
+        "node": ">=14.16"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/match-sorter": {
-      "version": "6.3.1",
-      "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz",
-      "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==",
+      "version": "6.3.3",
+      "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.3.tgz",
+      "integrity": "sha512-sgiXxrRijEe0SzHKGX4HouCpfHRPnqteH42UdMEW7BlWy990ZkzcvonJGv4Uu9WE7Y1f8Yocm91+4qFPCbmNww==",
       "dependencies": {
-        "@babel/runtime": "^7.12.5",
-        "remove-accents": "0.4.2"
+        "@babel/runtime": "^7.23.8",
+        "remove-accents": "0.5.0"
       }
     },
     "node_modules/microseconds": {
@@ -2217,9 +2455,9 @@
       }
     },
     "node_modules/ora": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.0.tgz",
-      "integrity": "sha512-1/D8uRFY0ay2kgBpmAwmSA404w4OoPVhHMqRqtjvrcK/dnzcEZxMJ+V4DUbyICu8IIVRclHcOf5wlD1tMY4GUQ==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz",
+      "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==",
       "dependencies": {
         "chalk": "^5.0.0",
         "cli-cursor": "^4.0.0",
@@ -2238,6 +2476,17 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/ora/node_modules/ansi-regex": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
     "node_modules/ora/node_modules/cli-cursor": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
@@ -2267,6 +2516,20 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/ora/node_modules/strip-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
     "node_modules/os-tmpdir": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@@ -2347,6 +2610,24 @@
       "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
       "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
     },
+    "node_modules/psl": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+      "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+    },
+    "node_modules/punycode": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/querystringify": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+      "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
+    },
     "node_modules/radash": {
       "version": "9.5.0",
       "resolved": "https://registry.npmjs.org/radash/-/radash-9.5.0.tgz",
@@ -2368,9 +2649,9 @@
       }
     },
     "node_modules/react-devtools-core": {
-      "version": "4.27.6",
-      "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.6.tgz",
-      "integrity": "sha512-jeFNhEzcSwpiqmw+zix5IFibNEPmUodICN7ClrlRKGktzO/3FMteMb52l1NRUiz/ABSYt9hOZ9IPgVDrg5pyUw==",
+      "version": "4.28.5",
+      "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz",
+      "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==",
       "dependencies": {
         "shell-quote": "^1.6.1",
         "ws": "^7"
@@ -2457,14 +2738,14 @@
       }
     },
     "node_modules/regenerator-runtime": {
-      "version": "0.13.11",
-      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
-      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+      "version": "0.14.1",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+      "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
     },
     "node_modules/remove-accents": {
-      "version": "0.4.2",
-      "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz",
-      "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA=="
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
+      "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A=="
     },
     "node_modules/require-directory": {
       "version": "2.1.1",
@@ -2475,24 +2756,29 @@
       }
     },
     "node_modules/require-in-the-middle": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz",
-      "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==",
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz",
+      "integrity": "sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==",
       "dependencies": {
         "debug": "^4.1.1",
         "module-details-from-path": "^1.0.3",
         "resolve": "^1.22.1"
       },
       "engines": {
-        "node": ">=6"
+        "node": ">=8.6.0"
       }
     },
+    "node_modules/requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+    },
     "node_modules/resolve": {
-      "version": "1.22.2",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
-      "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
+      "version": "1.22.8",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+      "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
       "dependencies": {
-        "is-core-module": "^2.11.0",
+        "is-core-module": "^2.13.0",
         "path-parse": "^1.0.7",
         "supports-preserve-symlinks-flag": "^1.0.0"
       },
@@ -2530,9 +2816,9 @@
       }
     },
     "node_modules/run-async": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
-      "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz",
+      "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==",
       "engines": {
         "node": ">=0.12.0"
       }
@@ -2579,17 +2865,26 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.5.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
-      "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "bin": {
-        "semver": "bin/semver.js"
+        "semver": "bin/semver"
+      }
+    },
+    "node_modules/set-function-length": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz",
+      "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
+      "dependencies": {
+        "define-data-property": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.2",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.1"
       },
       "engines": {
-        "node": ">=10"
+        "node": ">= 0.4"
       }
     },
     "node_modules/shell-quote": {
@@ -2701,15 +2996,7 @@
         "node": ">=8"
       }
     },
-    "node_modules/string-width/node_modules/ansi-regex": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/string-width/node_modules/strip-ansi": {
+    "node_modules/strip-ansi": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
       "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
@@ -2720,20 +3007,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/strip-ansi": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
-      "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
-      "dependencies": {
-        "ansi-regex": "^6.0.1"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
-      }
-    },
     "node_modules/supports-color": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -2787,11 +3060,6 @@
         "node": ">=0.8"
       }
     },
-    "node_modules/through": {
-      "version": "2.3.8",
-      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-      "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
-    },
     "node_modules/tiny-invariant": {
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
@@ -2808,6 +3076,20 @@
         "node": ">=0.6.0"
       }
     },
+    "node_modules/tough-cookie": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+      "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+      "dependencies": {
+        "psl": "^1.1.33",
+        "punycode": "^2.1.1",
+        "universalify": "^0.2.0",
+        "url-parse": "^1.5.3"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
     "node_modules/ts-dedent": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
@@ -2817,9 +3099,9 @@
       }
     },
     "node_modules/tslib": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
-      "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
     },
     "node_modules/type-fest": {
       "version": "0.12.0",
@@ -2845,6 +3127,20 @@
         "node": ">=4.2.0"
       }
     },
+    "node_modules/undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+      "dev": true
+    },
+    "node_modules/universalify": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+      "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+      "engines": {
+        "node": ">= 4.0.0"
+      }
+    },
     "node_modules/unload": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz",
@@ -2854,6 +3150,15 @@
         "detect-node": "^2.0.4"
       }
     },
+    "node_modules/url-parse": {
+      "version": "1.5.10",
+      "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+      "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+      "dependencies": {
+        "querystringify": "^2.1.1",
+        "requires-port": "^1.0.0"
+      }
+    },
     "node_modules/use-sync-external-store": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
@@ -2876,9 +3181,13 @@
       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
     },
     "node_modules/uuid": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
-      "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+      "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+      "funding": [
+        "https://github.com/sponsors/broofa",
+        "https://github.com/sponsors/ctavan"
+      ],
       "bin": {
         "uuid": "dist/bin/uuid"
       }
@@ -2915,25 +3224,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/wrap-ansi/node_modules/ansi-regex": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/wrap-ansi/node_modules/strip-ansi": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-      "dependencies": {
-        "ansi-regex": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/wrappy": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -3009,9 +3299,9 @@
       }
     },
     "node_modules/zustand": {
-      "version": "4.3.7",
-      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.3.7.tgz",
-      "integrity": "sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==",
+      "version": "4.4.7",
+      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.4.7.tgz",
+      "integrity": "sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==",
       "dependencies": {
         "use-sync-external-store": "1.2.0"
       },
@@ -3019,10 +3309,14 @@
         "node": ">=12.7.0"
       },
       "peerDependencies": {
+        "@types/react": ">=16.8",
         "immer": ">=9.0",
         "react": ">=16.8"
       },
       "peerDependenciesMeta": {
+        "@types/react": {
+          "optional": true
+        },
         "immer": {
           "optional": true
         },
diff --git a/pkgs/tools/misc/glasgow/0001-Relax-Amaranth-git-dependency.patch b/pkgs/tools/misc/glasgow/0001-Relax-Amaranth-git-dependency.patch
deleted file mode 100644
index 3d4f674ff2c41..0000000000000
--- a/pkgs/tools/misc/glasgow/0001-Relax-Amaranth-git-dependency.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 95d86c080a559d9c9f0498fb93d43d3fef377080 Mon Sep 17 00:00:00 2001
-From: Jack Leightcap <jack@leightcap.com>
-Date: Sat, 13 May 2023 17:28:54 -0400
-Subject: [PATCH] Relax Amaranth git dependency
-
-Signed-off-by: Jack Leightcap <jack@leightcap.com>
----
- software/pyproject.toml | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/software/pyproject.toml b/software/pyproject.toml
-index 6d1e2f1..6dfcc9e 100644
---- a/software/pyproject.toml
-+++ b/software/pyproject.toml
-@@ -20,8 +20,8 @@ classifiers = [
- ]
- 
- dependencies = [
--  "amaranth @ git+https://github.com/amaranth-lang/amaranth.git",
--  "fx2>=0.11",
-+  "amaranth",
-+  "fx2",
-   "libusb1>=1.8.1",
-   "aiohttp~=3.8",
-   "pyvcd",
--- 
-2.38.4
-
diff --git a/pkgs/tools/misc/glasgow/default.nix b/pkgs/tools/misc/glasgow/default.nix
index 470f4016e5dd4..77f3eb01d96ad 100644
--- a/pkgs/tools/misc/glasgow/default.nix
+++ b/pkgs/tools/misc/glasgow/default.nix
@@ -77,5 +77,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/GlasgowEmbedded/Glasgow";
     license = licenses.bsd0;
     maintainers = with maintainers; [ emily thoughtpolice ];
+    mainProgram = "glasgow";
   };
 }
diff --git a/pkgs/tools/misc/go-ios/default.nix b/pkgs/tools/misc/go-ios/default.nix
index cca8c44d60ac7..a5f204c9d04d9 100644
--- a/pkgs/tools/misc/go-ios/default.nix
+++ b/pkgs/tools/misc/go-ios/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "go-ios";
-  version = "1.0.117";
+  version = "1.0.121";
 
   src = fetchFromGitHub {
     owner = "danielpaulus";
     repo = "go-ios";
     rev = "v${version}";
-    sha256 = "sha256-grkuUDhMusI8S2LhQ8m2z1CoX1Di0/CJK3RZR63N+LU=";
+    sha256 = "sha256-zWaEtfxrJYaROQ05nBQvM5fiIRSG+hCecU+BVnpIuck=";
   };
 
-  vendorHash = "sha256-lLpvpT0QVVyy12HmtOQxagT0JNwRO7CcfkGhCpouH8w=";
+  vendorHash = "sha256-0Wi9FCTaOD+kzO5cRjpqbXHqx5UAKSGu+hc9bpj+PWo=";
 
   excludedPackages = [
     "restapi"
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/danielpaulus/go-ios";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
+    mainProgram = "ios";
   };
 }
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index b147935c4483f..ac13cb69370ad 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -10,14 +10,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.8";
+  version = "1.8.1";
   pname = "goaccess";
 
   src = fetchFromGitHub {
     owner = "allinurl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nZqjC6PEpD/md+mWRhuro2hAxVAGiUhETfZMVHlfP5o=";
+    sha256 = "sha256-GTW7ECSHjFBw8O2NewvMgC+3aheusupDlSBTxZriHHc=";
   };
 
   nativeBuildInputs = [
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ederoyd46 ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "goaccess";
   };
 }
diff --git a/pkgs/tools/misc/godu/default.nix b/pkgs/tools/misc/godu/default.nix
index f4e1fc1c4fbee..7bd29ed43661e 100644
--- a/pkgs/tools/misc/godu/default.nix
+++ b/pkgs/tools/misc/godu/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/viktomas/godu";
     license = licenses.mit;
     maintainers = with maintainers; [ rople380 ];
+    mainProgram = "godu";
   };
 }
diff --git a/pkgs/tools/misc/gomi/default.nix b/pkgs/tools/misc/gomi/default.nix
index 4f8a4875b3e5d..76ef724332e5f 100644
--- a/pkgs/tools/misc/gomi/default.nix
+++ b/pkgs/tools/misc/gomi/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/b4b4r07/gomi";
     license = licenses.mit;
     maintainers = with maintainers; [ ozkutuk ];
+    mainProgram = "gomi";
   };
 }
diff --git a/pkgs/tools/misc/google-cloud-bigtable-tool/default.nix b/pkgs/tools/misc/google-cloud-bigtable-tool/default.nix
new file mode 100644
index 0000000000000..3c61159bf9729
--- /dev/null
+++ b/pkgs/tools/misc/google-cloud-bigtable-tool/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "google-cloud-bigtable-tool";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "googleapis";
+    repo = "cloud-bigtable-cbt-cli";
+    rev = "v.${version}";
+    hash = "sha256-N5nbWMj7kLIdRiwBUWFz4Rat88Wx01i3hceMxAvSjaA=";
+  };
+
+  vendorHash = "sha256-kwvEfvHs6XF84bB3Ss1307OjId0nh/0Imih1fRFdY0M=";
+
+  preCheck = ''
+    buildFlagsArray+="-short"
+  '';
+
+  meta = with lib; {
+    description = "Google Cloud Bigtable Tool";
+    longDescription = ''
+      `cbt` is the Google Cloud Bigtable Tool. A CLI utility to interact with Google Cloud Bigtable.
+      The cbt CLI is a command-line interface for performing several different operations on Cloud Bigtable.
+      It is written in Go using the Go client library for Cloud Bigtable.
+      An overview of its usage can be found in the [Google Cloud docs](https://cloud.google.com/bigtable/docs/cbt-overview).
+      For information about Bigtable in general, see the [overview of Bigtable](https://cloud.google.com/bigtable/docs/overview).
+    '';
+    homepage = "https://github.com/googleapis/cloud-bigtable-cbt-cli";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ totoroot ];
+    mainProgram = "cbt";
+  };
+}
diff --git a/pkgs/tools/misc/google-cloud-sql-proxy/default.nix b/pkgs/tools/misc/google-cloud-sql-proxy/default.nix
new file mode 100644
index 0000000000000..4b4cb64181bbf
--- /dev/null
+++ b/pkgs/tools/misc/google-cloud-sql-proxy/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "google-cloud-sql-proxy";
+  version = "2.8.1";
+
+  src = fetchFromGitHub {
+    owner = "GoogleCloudPlatform";
+    repo = "cloud-sql-proxy";
+    rev = "v${version}";
+    hash = "sha256-7BkzDfAXc06pEDz2gHwlJ2HKmWWkqbVwyre8NrQHY6M=";
+  };
+
+  subPackages = [ "." ];
+
+  vendorHash = "sha256-9xe/4yMkCSD7Tfm3CWvN940odeT67HPGbBAimNOGgIc=";
+
+  preCheck = ''
+    buildFlagsArray+="-short"
+  '';
+
+  meta = with lib; {
+    description = "Utility for ensuring secure connections to Google Cloud SQL instances";
+    longDescription = ''
+      The Cloud SQL Auth Proxy is a utility for ensuring secure connections to your Cloud SQL instances.
+      It provides IAM authorization, allowing you to control who can connect to your instance through IAM permissions,
+      and TLS 1.3 encryption, without having to manage certificates.
+      See the [Connecting Overview](https://cloud.google.com/sql/docs/mysql/connect-overview) page for more information
+      on connecting to a Cloud SQL instance, or the [About the Proxy](https://cloud.google.com/sql/docs/mysql/sql-proxy)
+      page for details on how the Cloud SQL Proxy works.
+    '';
+    homepage = "https://github.com/GoogleCloudPlatform/cloud-sql-proxy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nicknovitski totoroot ];
+    mainProgram = "cloud-sql-proxy";
+  };
+}
diff --git a/pkgs/tools/misc/goose/default.nix b/pkgs/tools/misc/goose/default.nix
index 8e163a3fb42b5..13de61b48e9d2 100644
--- a/pkgs/tools/misc/goose/default.nix
+++ b/pkgs/tools/misc/goose/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     homepage = "https://pressly.github.io/goose/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ yuka ];
+    mainProgram = "goose";
   };
 }
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index dcef5f026270a..104141f8097b5 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -9,16 +9,16 @@
 }:
 buildGoModule rec {
   pname = "goreleaser";
-  version = "1.21.2";
+  version = "1.23.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dH5Fh3F+UJRS/zZkxhZ7TzLWo0ncUNKbLZdjbnBPloE=";
+    hash = "sha256-b3yXabHqpw0npkTlO4eKy41agtDV1QnpfctBYv4BV/Q=";
   };
 
-  vendorHash = "sha256-Ua1Eey0trzha1WyPtwZYvfzOSywb7ThfWcI/VlMgD88=";
+  vendorHash = "sha256-c9fygb6ywTUwcF1jbgr8YQ0SR7u36C0bRDljakQRdGA=";
 
   ldflags =
     [ "-s" "-w" "-X main.version=${version}" "-X main.builtBy=nixpkgs" ];
@@ -57,5 +57,6 @@ buildGoModule rec {
       caarlos0
     ];
     license = licenses.mit;
+    mainProgram = "goreleaser";
   };
 }
diff --git a/pkgs/tools/misc/goss/default.nix b/pkgs/tools/misc/goss/default.nix
index 55fafb1059be2..83b6b2466fbf3 100644
--- a/pkgs/tools/misc/goss/default.nix
+++ b/pkgs/tools/misc/goss/default.nix
@@ -1,8 +1,14 @@
-{ buildGoModule
+{ bash
+, buildGoModule
 , fetchFromGitHub
+, getent
 , goss
-, nix-update-script
 , lib
+, makeWrapper
+, nix-update-script
+, nixosTests
+, stdenv
+, systemd
 , testers
 }:
 
@@ -10,33 +16,46 @@ buildGoModule rec {
   pname = "goss";
 
   # Don't forget to update dgoss to the same version.
-  version = "0.4.2";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "goss-org";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-FDn1OETkYIpMenk8QAAHvfNZcSzqGl5xrD0fAZPVmRM=";
+    hash = "sha256-dH052t30unWmrFTZK5niXNvbg1nngzWY7mwuZr4ULbM=";
   };
 
-  vendorHash = "sha256-n+k7f9e2iqf4KrcDkzX0CWk+Bq2WE3dyUEid4PTP1FA=";
+  vendorHash = "sha256-4fEEz/c/xIeWxIzyyjwgSn2/2FWLA2tIedK65jGgYhY=";
 
   CGO_ENABLED = 0;
   ldflags = [
     "-s" "-w" "-X main.version=v${version}"
   ];
 
+  nativeBuildInputs = [ makeWrapper ];
+
   checkFlags = [
     # Prometheus tests are skipped upstream
     # See https://github.com/goss-org/goss/blob/master/ci/go-test.sh
     "-skip" "^TestPrometheus"
   ];
 
+  postInstall = let
+    runtimeDependencies = [ bash getent ]
+      ++ lib.optionals stdenv.isLinux [ systemd ];
+  in ''
+    wrapProgram $out/bin/goss \
+      --prefix PATH : "${lib.makeBinPath runtimeDependencies}"
+  '';
+
   passthru = {
-    tests.version = testers.testVersion {
-      command = "goss --version";
-      package = goss;
-      version = "v${version}";
+    tests = {
+      inherit (nixosTests) goss;
+      version = testers.testVersion {
+        command = "goss --version";
+        package = goss;
+        version = "v${version}";
+      };
     };
     updateScript = nix-update-script { };
   };
@@ -51,7 +70,8 @@ buildGoModule rec {
       Once the test suite is written they can be executed, waited-on, or served as a health endpoint.
     '';
     license = licenses.asl20;
-    platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "goss";
     maintainers = with maintainers; [ hyzual jk anthonyroussel ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/misc/gosu/default.nix b/pkgs/tools/misc/gosu/default.nix
index 6f08e027d8f8c..bd3ba4c930d7e 100644
--- a/pkgs/tools/misc/gosu/default.nix
+++ b/pkgs/tools/misc/gosu/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gosu";
-  version = "1.16";
+  version = "1.17";
 
   src = fetchFromGitHub {
     owner = "tianon";
     repo = "gosu";
     rev = version;
-    hash = "sha256-UfrhrwsnDT7pfizQtQzqv/1FTMBTrk3qmtiR7ffwwhc=";
+    hash = "sha256-ziviUXqCpCGECewyZNLDKSjnpmz/3i5DKrIKZlLwl4o=";
   };
 
-  vendorHash = "sha256-3HIAPI1bbfwE2/cUsQnp2Vz2uvlvSFDUrp2xuGNr8Gk=";
+  vendorHash = "sha256-fygLYSO0kpMFJd6WQp/uLYkELkyaOPZ9V8BrJcIcMuU=";
 
   ldflags = [ "-d" "-s" "-w" ];
 
diff --git a/pkgs/tools/misc/gotify-desktop/default.nix b/pkgs/tools/misc/gotify-desktop/default.nix
index dd0af48ec64f3..f9ebbff548e99 100644
--- a/pkgs/tools/misc/gotify-desktop/default.nix
+++ b/pkgs/tools/misc/gotify-desktop/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gotify-desktop";
-  version = "1.3.1";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "desbma";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EDLOSxmODC7OzVSZJxwKNnFA2yh+QKE8aXmYJ+Dnv40=";
+    sha256 = "sha256-vyOXZQ2X/LT/saBxcEbD96U34ufxjcWTHAobGI3bAE4=";
   };
 
-  cargoSha256 = "sha256-opSXndOjdmYG5DJ3CDUHWhN6O7AQp4Cleldzq1Hfr1o=";
+  cargoHash = "sha256-MNxHJ1iirHj78wq6ChDjr6mQS0UmHPjVMs1EPFZyTV0=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bryanasdev000 genofire ];
     broken = stdenv.isDarwin;
+    mainProgram = "gotify-desktop";
   };
 }
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index 278dced6b6440..1c16795d40bdd 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gparted.org";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "gparted";
   };
 }
diff --git a/pkgs/tools/misc/gpick/default.nix b/pkgs/tools/misc/gpick/default.nix
index c7579802008b1..0d421212a3d44 100644
--- a/pkgs/tools/misc/gpick/default.nix
+++ b/pkgs/tools/misc/gpick/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.vanilla ];
     platforms = platforms.linux;
+    mainProgram = "gpick";
   };
 }
diff --git a/pkgs/tools/misc/grafterm/default.nix b/pkgs/tools/misc/grafterm/default.nix
index f21a8ba76fc5d..a15ab6e5ed0ff 100644
--- a/pkgs/tools/misc/grafterm/default.nix
+++ b/pkgs/tools/misc/grafterm/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/slok/grafterm";
     license = licenses.asl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "grafterm";
   };
 }
diff --git a/pkgs/tools/misc/grass-sass/default.nix b/pkgs/tools/misc/grass-sass/default.nix
index 5a9193873f1df..83cb03f90c1cf 100644
--- a/pkgs/tools/misc/grass-sass/default.nix
+++ b/pkgs/tools/misc/grass-sass/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/connorskees/grass/blob/master/CHANGELOG.md#${replaceStrings [ "." ] [ "" ] version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "grass";
   };
 }
diff --git a/pkgs/tools/misc/graylog/3.3.nix b/pkgs/tools/misc/graylog/3.3.nix
deleted file mode 100644
index fc93b9fc5829a..0000000000000
--- a/pkgs/tools/misc/graylog/3.3.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ callPackage, lib }:
-let
-  buildGraylog = callPackage ./graylog.nix {};
-in buildGraylog {
-  version = "3.3.16";
-  sha256 = "sha256-P/cnfYKnMSnDD4otEyirKlLaFduyfSO9sao4BY3c3Z4=";
-  maintainers = [ lib.maintainers.fadenb ];
-  license = lib.licenses.gpl3;
-}
diff --git a/pkgs/tools/misc/graylog/4.0.nix b/pkgs/tools/misc/graylog/4.0.nix
deleted file mode 100644
index cae23dd431d7c..0000000000000
--- a/pkgs/tools/misc/graylog/4.0.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ callPackage, lib, ...}:
-let
-  buildGraylog = callPackage ./graylog.nix {};
-in buildGraylog {
-  version = "4.0.8";
-  sha256 = "sha256-1JlJNJSU1wJiztLhYD87YM/7p3YCBXBKerEo/xfumUg=";
-  maintainers = [ lib.maintainers.f2k1de ];
-  license = lib.licenses.sspl;
-}
diff --git a/pkgs/tools/misc/graylog/4.3.nix b/pkgs/tools/misc/graylog/4.3.nix
deleted file mode 100644
index 1bd2ed3ec70d4..0000000000000
--- a/pkgs/tools/misc/graylog/4.3.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ callPackage, lib, ...}:
-let
-  buildGraylog = callPackage ./graylog.nix {};
-in buildGraylog {
-  version = "4.3.9";
-  sha256 = "sha256-BMw6U47LQQFFVM34rgadMetpYTtj6R3E+uU0dtTcH64=";
-  maintainers = [ lib.maintainers.f2k1de ];
-  license = lib.licenses.sspl;
-}
diff --git a/pkgs/tools/misc/graylog/5.1.nix b/pkgs/tools/misc/graylog/5.1.nix
index 3dc849eaeec76..cc033e50fee58 100644
--- a/pkgs/tools/misc/graylog/5.1.nix
+++ b/pkgs/tools/misc/graylog/5.1.nix
@@ -2,8 +2,8 @@
 let
   buildGraylog = callPackage ./graylog.nix {};
 in buildGraylog {
-  version = "5.1.4";
-  sha256 = "sha256-ZuzmNbc+qB6oYCnR5iAsSEQGTB+pk+ghF0/+O3BTLkA=";
+  version = "5.1.7";
+  sha256 = "sha256-OIdDBrLJEXhnQF98F0ncsoYcrH4KtHUz9Di1Jefsi6w=";
   maintainers = [ lib.maintainers.f2k1de ];
   license = lib.licenses.sspl;
 }
diff --git a/pkgs/tools/misc/graylog/plugins.nix b/pkgs/tools/misc/graylog/plugins.nix
index 8601d2c6e8052..e25aeb39f7aac 100644
--- a/pkgs/tools/misc/graylog/plugins.nix
+++ b/pkgs/tools/misc/graylog/plugins.nix
@@ -226,7 +226,7 @@ in {
     };
     meta = {
       homepage = "https://bitbucket.org/proximus/smseagle-graylog/";
-      description = "Alert/notification callback plugin for integrating the SMSEagle into Graylog.";
+      description = "Alert/notification callback plugin for integrating the SMSEagle into Graylog";
       license = lib.licenses.gpl3Only;
     };
   };
@@ -253,7 +253,7 @@ in {
     };
     meta = {
       homepage = "https://github.com/graylog-labs/graylog-plugin-spaceweather";
-      description = "Correlate proton density to the response time of your app and the ion temperature to your exception rate.";
+      description = "Correlate proton density to the response time of your app and the ion temperature to your exception rate";
     };
   };
   splunk = glPlugin rec {
@@ -266,7 +266,7 @@ in {
     };
     meta = {
       homepage = "https://github.com/graylog-labs/graylog-plugin-splunk";
-      description = "Graylog output plugin that forwards one or more streams of data to Splunk via TCP.";
+      description = "Graylog output plugin that forwards one or more streams of data to Splunk via TCP";
       license = lib.licenses.gpl3Only;
     };
   };
diff --git a/pkgs/tools/misc/grc/default.nix b/pkgs/tools/misc/grc/default.nix
index 5ba9ffb86f9ff..e8f4282fb1937 100644
--- a/pkgs/tools/misc/grc/default.nix
+++ b/pkgs/tools/misc/grc/default.nix
@@ -21,6 +21,10 @@ buildPythonApplication rec {
       substituteInPlace $f \
         --replace /usr/local/ $out/
     done
+
+    # Support for absolute store paths.
+    substituteInPlace grc.conf \
+      --replace "^([/\w\.]+\/)" "^([/\w\.\-]+\/)"
   '';
 
   nativeBuildInputs = [ installShellFiles ];
@@ -42,7 +46,8 @@ buildPythonApplication rec {
       beautifying your logfiles or output of commands.
     '';
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ lovek323 AndersonTorres peterhoeg ];
+    maintainers = with maintainers; [ azahi lovek323 AndersonTorres peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "grc";
   };
 }
diff --git a/pkgs/tools/misc/grit/default.nix b/pkgs/tools/misc/grit/default.nix
index 0b31627ece276..448224c9e9ad7 100644
--- a/pkgs/tools/misc/grit/default.nix
+++ b/pkgs/tools/misc/grit/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/climech/grit";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "grit";
   };
 }
diff --git a/pkgs/tools/misc/grizzly/default.nix b/pkgs/tools/misc/grizzly/default.nix
index a9b7bde2e7bd4..d16356d6d5ce6 100644
--- a/pkgs/tools/misc/grizzly/default.nix
+++ b/pkgs/tools/misc/grizzly/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "grizzly";
-  version = "0.2.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6z/6QZlCm4mRMKAVzLnOokv8ib7Y/7a17ojjMfeoJ4w=";
+    hash = "sha256-d/DUazWBT96+dnwVXo667RHALUM2FHxXoI54fFU2HZw=";
   };
 
-  vendorHash = "sha256-DDYhdRPcD5hfSW9nRmCWpsrVmIEU1sBoVvFz5Begx8w=";
+  vendorHash = "sha256-8myfB2LKDPUCFV9GBSXrBo9E+WrCOCm0ZHKTQ1dEb9U=";
 
   subPackages = [ "cmd/grr" ];
 
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ nrhtr ];
     platforms = platforms.unix;
+    mainProgram = "grr";
   };
 }
diff --git a/pkgs/tools/misc/grub/default.nix b/pkgs/tools/misc/grub/default.nix
index 5fc189a4de115..8f1ff2625d366 100644
--- a/pkgs/tools/misc/grub/default.nix
+++ b/pkgs/tools/misc/grub/default.nix
@@ -49,8 +49,8 @@ let
 
   src = fetchFromSavannah {
     repo = "grub";
-    rev = "grub-2.12-rc1";
-    hash = "sha256-DrNFzi2o7ZUfL3bMdG63xivZIjcTgv8RODJz7hLJ3WY=";
+    rev = "grub-2.12";
+    hash = "sha256-lathsBb2f7urh8R86ihpTdwo3h1hAHnRiHd5gCLVpBc=";
   };
 
   # HACK: the translations are stored on a different server,
@@ -61,7 +61,7 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-bQPQ65gAcuUQ8ELB2hKywuXZ0kdC2bBCsUII/b4FkvQ=";
+    outputHash = "sha256-XzW2e7Xe7Pi297eV/fD2B/6uONEz9UjL2EHDCY0huTA=";
   }
   ''
     mkdir -p po
@@ -77,20 +77,12 @@ assert !(efiSupport && xenSupport);
 
 stdenv.mkDerivation rec {
   pname = "grub";
-  version = "2.12-rc1";
+  version = "2.12";
   inherit src;
 
   patches = [
     ./fix-bash-completion.patch
     ./add-hidden-menu-entries.patch
-
-    # Revert upstream commit that breaks reading XFS filesystems
-    # FIXME: remove when fixed upstream
-    (fetchpatch {
-      url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ef7850c757fb3dd2462a512cfa0ff19c89fcc0b1";
-      revert = true;
-      hash = "sha256-p8Kcv9d7ri4eJU6Fgqyzdj0hV5MHSe50AF02FPDJx2Y=";
-    })
   ];
 
   postPatch = if kbdcompSupport then ''
diff --git a/pkgs/tools/misc/gti/default.nix b/pkgs/tools/misc/gti/default.nix
index 0246421e7fdc7..9e396f33e6a1e 100644
--- a/pkgs/tools/misc/gti/default.nix
+++ b/pkgs/tools/misc/gti/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gti";
-  version = "1.8.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "rwos";
     repo = "gti";
     rev = "v${version}";
-    sha256 = "sha256-x6ncvnZPPrVcQYwtwkSenW+ri0L6FpuDa7U7uYUqiyk=";
+    sha256 = "sha256-DUDCFcaB38Xkp3lLfEhjGC0j430dphXFBVhGzm7/Bp0=";
   };
 
   postPatch = ''
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     description = "Humorous typo-based git runner; drives a car over the terminal";
     maintainers = with maintainers; [ fadenb ];
     platforms = platforms.unix;
+    mainProgram = "gti";
   };
 }
diff --git a/pkgs/tools/misc/gtklp/default.nix b/pkgs/tools/misc/gtklp/default.nix
deleted file mode 100644
index af98ed1ae1b73..0000000000000
--- a/pkgs/tools/misc/gtklp/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv, lib, fetchurl
-, autoreconfHook, libtool, pkg-config
-, gtk2, glib, cups, gettext, openssl
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gtklp";
-  version = "1.3.4";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${pname}-${version}.src.tar.gz";
-    sha256 = "1arvnnvar22ipgnzqqq8xh0kkwyf71q2sfsf0crajpsr8a8601xy";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    autoreconfHook
-  ];
-
-  buildInputs = [
-    cups
-    gettext
-    glib
-    gtk2
-    libtool
-    openssl
-  ];
-
-  patches = [
-    ./patches/mdv-fix-str-fmt.patch
-    ./patches/autoconf.patch
-  ];
-
-  # Workaround build failure on -fno-common toolchains:
-  #   ld: libgtklp.a(libgtklp.o):libgtklp/libgtklp.h:83: multiple definition of `progressBar';
-  #     file.o:libgtklp/libgtklp.h:83: first defined here
-  env.NIX_CFLAGS_COMPILE = "-fcommon";
-
-  preConfigure = ''
-    substituteInPlace include/defaults.h --replace "netscape" "firefox"
-    substituteInPlace include/defaults.h --replace "http://localhost:631/sum.html#STANDARD_OPTIONS" \
-                                                   "http://localhost:631/help/"
-  '';
-
-  preInstall = ''
-    install -D -m0644 -t $out/share/doc AUTHORS BUGS ChangeLog README USAGE
-  '';
-
-  meta = with lib; {
-    description = "A graphical frontend for CUPS";
-    homepage = "https://gtklp.sirtobi.com";
-    license = licenses.gpl2Only;
-    maintainers = with maintainers; [ caadar ];
-    platforms = platforms.unix;
-  };
-
-}
diff --git a/pkgs/tools/misc/gtklp/patches/autoconf.patch b/pkgs/tools/misc/gtklp/patches/autoconf.patch
deleted file mode 100644
index c1698bee1fdc0..0000000000000
--- a/pkgs/tools/misc/gtklp/patches/autoconf.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Patch origin: http://sophie.zarb.org/rpms/68e90a72e0052022f558148d97c9ea2a/files/3
-
-diff --git a/configure.ac b/configure.ac
-index b7a30e9..3768ae9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -8,6 +8,7 @@ AC_CONFIG_HEADERS([config.h])
- 
- AC_CONFIG_MACRO_DIR([m4])
- AM_GNU_GETTEXT([external])
-+AM_GNU_GETTEXT_REQUIRE_VERSION([0.21])
- 
- dnl Extra params
- CUPSCONFIGPATH=""
-@@ -30,8 +31,6 @@ AC_SUBST(XLIBS)
- 
- dnl Checks for header files
- 
--dnl internationalization macros
--AM_GNU_GETTEXT
- 
- 
- # Forte Compiler ############################################################
diff --git a/pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch b/pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch
deleted file mode 100644
index 6cfc90beb02a8..0000000000000
--- a/pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Patch source: http://sophie.zarb.org/rpms/68e90a72e0052022f558148d97c9ea2a/files/1
-
---- a/libgtklp/libgtklp.c	2020-08-25 17:31:52.427298559 +0100
-+++ b/libgtklp/libgtklp.c	2020-08-25 17:36:37.728154682 +0100
-@@ -939,7 +939,7 @@
- 		gtk_widget_show(pixmapwid);
- 
- 		if (strlen(gerror2) == 0)
--			snprintf(tmplabel, (size_t) MAXLINE, gerror1);
-+			snprintf(tmplabel, (size_t) MAXLINE, "%s", gerror1);
- 		else
- 			snprintf(tmplabel, (size_t) MAXLINE, gerror1, gerror2);
- 		label = gtk_label_new(tmplabel);
-@@ -973,7 +973,7 @@
- #endif
- 	} else {
- 		if (strlen(gerror2) == 0)
--			g_warning(gerror1);
-+			g_warning("%s", gerror1);
- 		else
- 			g_warning(gerror1, gerror2);
- 	}
diff --git a/pkgs/tools/misc/gwe/default.nix b/pkgs/tools/misc/gwe/default.nix
index 7e68790b2dc9c..1b03756be25bf 100644
--- a/pkgs/tools/misc/gwe/default.nix
+++ b/pkgs/tools/misc/gwe/default.nix
@@ -28,16 +28,17 @@ let
    requests
    rx
    gtk3
+   reactivex
  ]);
 in stdenv.mkDerivation rec {
   pname = "gwe";
-  version = "0.15.5";
+  version = "0.15.6";
 
   src = fetchFromGitLab {
     owner = "leinardi";
     repo = pname;
     rev = version;
-    sha256 = "sha256-bey/G+muDZsMMU3lVdNS6E/BnAJr29zLPE0MMT4sh1c=";
+    sha256 = "sha256-xlAz67sThXZ5o2kABb+aQI/7N7jmRpWU/5m24u8TkII=";
   };
 
   prePatch = ''
@@ -84,5 +85,6 @@ in stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl3Only;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "gwe";
   };
 }
diff --git a/pkgs/tools/misc/hackertyper/default.nix b/pkgs/tools/misc/hackertyper/default.nix
index d72dd1798d5a1..da9af1eca922f 100644
--- a/pkgs/tools/misc/hackertyper/default.nix
+++ b/pkgs/tools/misc/hackertyper/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/Hurricane996/Hackertyper";
     license = licenses.gpl3;
     maintainers = [ maintainers.marius851000 ];
+    mainProgram = "hackertyper";
   };
 }
diff --git a/pkgs/tools/misc/hacksaw/default.nix b/pkgs/tools/misc/hacksaw/default.nix
index 6eecee46a380c..5532fa181f642 100644
--- a/pkgs/tools/misc/hacksaw/default.nix
+++ b/pkgs/tools/misc/hacksaw/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ TethysSvensson ];
     platforms = platforms.linux;
+    mainProgram = "hacksaw";
   };
 }
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
index bb7bf24cb659d..0ad8c5907a700 100644
--- a/pkgs/tools/misc/hakuneko/default.nix
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -93,5 +93,6 @@ stdenv.mkDerivation rec {
       "x86_64-linux"
       "i686-linux"
     ];
+    mainProgram = "hakuneko";
   };
 }
diff --git a/pkgs/tools/misc/halp/default.nix b/pkgs/tools/misc/halp/default.nix
index d9028a8392a8d..e88e23f7cfe7c 100644
--- a/pkgs/tools/misc/halp/default.nix
+++ b/pkgs/tools/misc/halp/default.nix
@@ -5,7 +5,6 @@
 , stdenv
 , darwin
 , unixtools
-, rust
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -48,7 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   postPatch = ''
     substituteInPlace src/helper/args/mod.rs \
-      --subst-var-by releaseDir target/${rust.toRustTargetSpec stdenv.hostPlatform}/$cargoCheckType
+      --subst-var-by releaseDir target/${stdenv.hostPlatform.rust.rustcTargetSpec}/$cargoCheckType
   '';
 
   preCheck = ''
@@ -76,5 +75,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/orhun/halp/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "halp";
   };
 }
diff --git a/pkgs/tools/misc/handlr-regex/default.nix b/pkgs/tools/misc/handlr-regex/default.nix
deleted file mode 100644
index 15b993564ee42..0000000000000
--- a/pkgs/tools/misc/handlr-regex/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, rustPlatform, fetchFromGitHub, shared-mime-info, libiconv, installShellFiles }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "handlr-regex";
-  version = "0.8.5";
-
-  src = fetchFromGitHub {
-    owner = "Anomalocaridid";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-X0j62Ntu/ouBVm09iKxU3pps8mbL5V5gA65Maa4b0AY=";
-  };
-
-  cargoSha256 = "sha256-byR7CM876z5tAXmbcUfI0CnJrc/D6CxfjBJhuJMSFmg=";
-
-  nativeBuildInputs = [ installShellFiles shared-mime-info ];
-  buildInputs = [ libiconv ];
-
-  preCheck = ''
-    export HOME=$TEMPDIR
-  '';
-
-  postInstall = ''
-    installShellCompletion \
-      --zsh assets/completions/_handlr \
-      --bash assets/completions/handlr \
-      --fish assets/completions/handlr.fish
-
-    installManPage assets/manual/man1/*
-  '';
-
-  meta = with lib; {
-    description = "Fork of handlr with support for regex";
-    homepage = "https://github.com/Anomalocaridid/handlr-regex";
-    license = licenses.mit;
-    maintainers = with maintainers; [ anomalocaris ];
-  };
-}
diff --git a/pkgs/tools/misc/handlr/default.nix b/pkgs/tools/misc/handlr/default.nix
index 19f02cdd1b192..1022763b7540f 100644
--- a/pkgs/tools/misc/handlr/default.nix
+++ b/pkgs/tools/misc/handlr/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/chmln/handlr";
     license = licenses.mit;
     maintainers = with maintainers; [ mredaelli artturin ];
+    mainProgram = "handlr";
   };
 }
diff --git a/pkgs/tools/misc/hashpump/default.nix b/pkgs/tools/misc/hashpump/default.nix
index bc1f019ab72c2..11b0650d849d7 100644
--- a/pkgs/tools/misc/hashpump/default.nix
+++ b/pkgs/tools/misc/hashpump/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ t4ccer ];
     platforms = lib.platforms.linux;
+    mainProgram = "hashpump";
   };
 })
diff --git a/pkgs/tools/misc/haste-client/default.nix b/pkgs/tools/misc/haste-client/default.nix
index 905d4bedf5460..eb4b6f868294f 100644
--- a/pkgs/tools/misc/haste-client/default.nix
+++ b/pkgs/tools/misc/haste-client/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.mit;
     maintainers = with maintainers; [ shamilton ];
     platforms   = platforms.unix;
+    mainProgram = "haste";
   };
 }
diff --git a/pkgs/tools/misc/hdaps-gl/default.nix b/pkgs/tools/misc/hdaps-gl/default.nix
index 8ea863f464179..1999d9ad0d56f 100644
--- a/pkgs/tools/misc/hdaps-gl/default.nix
+++ b/pkgs/tools/misc/hdaps-gl/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.symphorien ];
+    mainProgram = "hdaps-gl";
   };
 }
diff --git a/pkgs/tools/misc/hddtemp/default.nix b/pkgs/tools/misc/hddtemp/default.nix
index 3939d60144d9e..3bdd7e84f3ab2 100644
--- a/pkgs/tools/misc/hddtemp/default.nix
+++ b/pkgs/tools/misc/hddtemp/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
+    mainProgram = "hddtemp";
   };
 }
diff --git a/pkgs/tools/misc/hdf4/default.nix b/pkgs/tools/misc/hdf4/default.nix
index b6577a17bb195..2636cb71717bb 100644
--- a/pkgs/tools/misc/hdf4/default.nix
+++ b/pkgs/tools/misc/hdf4/default.nix
@@ -95,6 +95,13 @@ stdenv.mkDerivation rec {
   else [ "-DHDF4_BUILD_FORTRAN=OFF" ]
   );
 
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_CFLAGS_COMPILE = toString [
+      "-Wno-error=implicit-function-declaration"
+      "-Wno-error=implicit-int"
+    ];
+  };
+
   doCheck = true;
 
   excludedTests = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/tools/misc/hdf5/1.10.nix b/pkgs/tools/misc/hdf5/1.10.nix
index dcfcf4a6a5446..dda8fd3a8fa49 100644
--- a/pkgs/tools/misc/hdf5/1.10.nix
+++ b/pkgs/tools/misc/hdf5/1.10.nix
@@ -12,11 +12,11 @@
 let inherit (lib) optional; in
 
 stdenv.mkDerivation rec {
-  version = "1.10.9";
+  version = "1.10.11";
   pname = "hdf5";
   src = fetchurl {
     url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${lib.versions.majorMinor version}/${pname}-${version}/src/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-AMS+cJbzb9yvpPl04SbGwUEkKOOOvHsYHZB0WeeB8ZE=";
+    sha256 = "sha256-Cvx32lxGIXcJR1u++8qRwMtvHqYozNjDYZbPbFpN4wQ=";
   };
 
   outputs = [ "out" "dev" ];
@@ -51,11 +51,5 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3; # Lawrence Berkeley National Labs BSD 3-Clause variant
     homepage = "https://www.hdfgroup.org/HDF5/";
     platforms = lib.platforms.unix;
-    knownVulnerabilities = [
-      "CVE-2020-10809"
-      "CVE-2020-10810"
-      "CVE-2020-10811"
-      "CVE-2020-10812"
-    ];
   };
 }
diff --git a/pkgs/tools/misc/hdf5/bin-mv.patch b/pkgs/tools/misc/hdf5/bin-mv.patch
deleted file mode 100644
index 45649977e5669..0000000000000
--- a/pkgs/tools/misc/hdf5/bin-mv.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -rc hdf5-1.8.5/configure hdf5-1.8.5-new/configure
-*** hdf5-1.8.5/configure	2010-06-04 20:26:04.000000000 +0200
---- hdf5-1.8.5-new/configure	2010-08-02 10:30:26.000000000 +0200
-***************
-*** 30587,30598 ****
-    sed 's/#define /#define H5_/' <src/H5config.h |\
-      sed 's/#undef /#undef H5_/' >pubconf
-    if test ! -f src/H5pubconf.h; then
-!     /bin/mv -f pubconf src/H5pubconf.h
-    elif (diff pubconf src/H5pubconf.h >/dev/null); then
-      rm -f pubconf
-      echo "src/H5pubconf.h is unchanged"
-    else
-!     /bin/mv -f pubconf src/H5pubconf.h
-    fi
-    echo "Post process src/libhdf5.settings"
-    sed '/^#/d' < src/libhdf5.settings > libhdf5.settings.TMP
---- 30587,30598 ----
-    sed 's/#define /#define H5_/' <src/H5config.h |\
-      sed 's/#undef /#undef H5_/' >pubconf
-    if test ! -f src/H5pubconf.h; then
-!     mv -f pubconf src/H5pubconf.h
-    elif (diff pubconf src/H5pubconf.h >/dev/null); then
-      rm -f pubconf
-      echo "src/H5pubconf.h is unchanged"
-    else
-!     mv -f pubconf src/H5pubconf.h
-    fi
-    echo "Post process src/libhdf5.settings"
-    sed '/^#/d' < src/libhdf5.settings > libhdf5.settings.TMP
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index 3c9c6169192d8..89702cfd1a7f1 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, cmake
 , removeReferencesTo
 , cppSupport ? false
 , fortranSupport ? false
@@ -26,7 +27,7 @@ assert !cppSupport || !mpiSupport;
 let inherit (lib) optional optionals; in
 
 stdenv.mkDerivation rec {
-  version = "1.14.2";
+  version = "1.14.3";
   pname = "hdf5"
     + lib.optionalString cppSupport "-cpp"
     + lib.optionalString fortranSupport "-fortran"
@@ -34,11 +35,13 @@ stdenv.mkDerivation rec {
     + lib.optionalString threadsafe "-threadsafe";
 
   src = fetchurl {
-    url = let
+    url =
+      let
         majorMinor = lib.versions.majorMinor version;
         majorMinorPatch = with lib.versions; "${major version}.${minor version}.${patch version}";
-      in "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${majorMinor}/hdf5-${majorMinorPatch}/src/hdf5-${version}.tar.bz2";
-    sha256 = "sha256-6jxeJX7zIq9ed/weUurTrWvzu0rAZIDdF+45ANeiTPs=";
+      in
+      "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${majorMinor}/hdf5-${majorMinorPatch}/src/hdf5-${version}.tar.bz2";
+    sha256 = "sha256-lCXyJO110SgLtG1vJpI92Tj5BA5+rr9X5m7HNXwI+Rc=";
   };
 
   passthru = {
@@ -57,7 +60,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ removeReferencesTo ]
+  nativeBuildInputs = [ removeReferencesTo cmake ]
     ++ optional fortranSupport fortran;
 
   buildInputs = optional fortranSupport fortran
@@ -67,24 +70,18 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = optional zlibSupport zlib
     ++ optional mpiSupport mpi;
 
-  configureFlags = optional cppSupport "--enable-cxx"
-    ++ optional fortranSupport "--enable-fortran"
-    ++ optional szipSupport "--with-szlib=${szip}"
-    ++ optionals mpiSupport [ "--enable-parallel" "CC=${mpi}/bin/mpicc" ]
-    ++ optional enableShared "--enable-shared"
-    ++ optional javaSupport "--enable-java"
-    ++ optional usev110Api "--with-default-api-version=v110"
-    # hdf5 hl (High Level) library is not considered stable with thread safety and should be disabled.
-    ++ optionals threadsafe [ "--enable-threadsafe" "--disable-hl" ];
-
-  patches = [
-    # Avoid non-determinism in autoconf build system:
-    # - build time
-    # - build user
-    # - uname -a (kernel version)
-    # Can be dropped once/if we switch to cmake.
-    ./hdf5-more-determinism.patch
-  ];
+  cmakeFlags = [
+    "-DHDF5_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake"
+  ] ++ lib.optional stdenv.isDarwin "-DHDF5_BUILD_WITH_INSTALL_NAME=ON"
+    ++ lib.optional cppSupport "-DHDF5_BUILD_CPP_LIB=ON"
+    ++ lib.optional fortranSupport "-DHDF5_BUILD_FORTRAN=ON"
+    ++ lib.optional szipSupport "-DHDF5_ENABLE_SZIP_SUPPORT=ON"
+    ++ lib.optionals mpiSupport [ "-DHDF5_ENABLE_PARALLEL=ON" "CC=${mpi}/bin/mpicc" ]
+    ++ lib.optional enableShared "-DBUILD_SHARED_LIBS=ON"
+    ++ lib.optional javaSupport "-DHDF5_BUILD_JAVA=ON"
+    ++ lib.optional usev110Api "-DDEFAULT_API_VERSION=v110"
+    ++ lib.optionals threadsafe [ "-DDHDF5_ENABLE_THREADSAFE:BOOL=ON" "-DHDF5_BUILD_HL_LIB=OFF" ]
+  ;
 
   postInstall = ''
     find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
diff --git a/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch b/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch
deleted file mode 100644
index 9a9bfe24af7b5..0000000000000
--- a/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/libhdf5.settings.in b/src/libhdf5.settings.in
-index a4d4af6..70f1909 100644
---- a/src/libhdf5.settings.in
-+++ b/src/libhdf5.settings.in
-@@ -4,10 +4,7 @@
- General Information:
- -------------------
-                    HDF5 Version: @H5_VERSION@
--                  Configured on: @CONFIG_DATE@
--                  Configured by: @CONFIG_USER@
-                     Host system: @host_cpu@-@host_vendor@-@host_os@
--              Uname information: @UNAME_INFO@
-                        Byte sex: @BYTESEX@
-              Installation point: @prefix@
- 
diff --git a/pkgs/tools/misc/hdfview/default.nix b/pkgs/tools/misc/hdfview/default.nix
index 127d76ad560fa..b74e64386eb06 100644
--- a/pkgs/tools/misc/hdfview/default.nix
+++ b/pkgs/tools/misc/hdfview/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     homepage = "https://portal.hdfgroup.org/display/HDFVIEW/HDFView";
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
     maintainers = with lib.maintainers; [ jiegec ];
+    mainProgram = "HDFView";
   };
 }
diff --git a/pkgs/tools/misc/hebcal/default.nix b/pkgs/tools/misc/hebcal/default.nix
index 050cc63f6a5d5..80d52592c742a 100644
--- a/pkgs/tools/misc/hebcal/default.nix
+++ b/pkgs/tools/misc/hebcal/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.hhm ];
     platforms = platforms.all;
+    mainProgram = "hebcal";
   };
 }
diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
index 810413a7b09a2..422363ef418ab 100644
--- a/pkgs/tools/misc/heimdall/default.nix
+++ b/pkgs/tools/misc/heimdall/default.nix
@@ -50,5 +50,6 @@ mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "heimdall";
   };
 }
diff --git a/pkgs/tools/misc/hex/default.nix b/pkgs/tools/misc/hex/default.nix
index 618fbe1dda60f..ef64cbea05593 100644
--- a/pkgs/tools/misc/hex/default.nix
+++ b/pkgs/tools/misc/hex/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hex";
-  version = "0.4.2";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "sitkevij";
     repo = "hex";
     rev = "v${version}";
-    hash = "sha256-mxKjiciejnOTbSkCzOWdAtysRAnEv4JgntPS1qM9og8=";
+    hash = "sha256-YctXDhCMJvDQLPsuhzdyYDUIlFE2vKltNtrFFeE7YE8=";
   };
 
-  cargoHash = "sha256-kGe6XN03V+ILnlAcT0E8BvrYMa7ub05STFsFY6X5Gkk=";
+  cargoHash = "sha256-Nlha9Zn0qaQhpN2ivbBvpIPxCN2I7BtJJULb6sYdpdo=";
 
   passthru.tests.version = testers.testVersion {
     package = hex;
diff --git a/pkgs/tools/misc/hexd/default.nix b/pkgs/tools/misc/hexd/default.nix
index 510de6a8ee361..140db34350837 100644
--- a/pkgs/tools/misc/hexd/default.nix
+++ b/pkgs/tools/misc/hexd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.FireyFly ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "hexd";
   };
 }
diff --git a/pkgs/tools/misc/hexdiff/default.nix b/pkgs/tools/misc/hexdiff/default.nix
index 8205cfdd0ab4e..937a07bee78bc 100644
--- a/pkgs/tools/misc/hexdiff/default.nix
+++ b/pkgs/tools/misc/hexdiff/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ rogarb ];
     platforms = lib.platforms.linux;
+    mainProgram = "hexdiff";
   };
 }
diff --git a/pkgs/tools/misc/hexyl/default.nix b/pkgs/tools/misc/hexyl/default.nix
index 29a7b32ce3364..fa68fb4a2d439 100644
--- a/pkgs/tools/misc/hexyl/default.nix
+++ b/pkgs/tools/misc/hexyl/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hexyl";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+jmMy5Hi4EfMh/rBzBs5b+f48OZcR/Tw7IU1uTbwiCo=";
+    hash = "sha256-di7SBuB4LsnqlP3BdMcsSLj4zpyKA/ninVpRyR9AJaI=";
   };
 
-  cargoHash = "sha256-TjJ0645TRlNzduQgxYLZWz+rLFfRv12GuwXBcmNr/h8=";
+  cargoHash = "sha256-fXrdOiCmRgMPJxZIS/SkTkZZkag8ZUhNnMlU4k1m/+0=";
 
   meta = with lib; {
     description = "A command-line hex viewer";
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/hexyl/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir figsoda SuperSandro2000 ];
+    mainProgram = "hexyl";
   };
 }
diff --git a/pkgs/tools/misc/hhpc/default.nix b/pkgs/tools/misc/hhpc/default.nix
index 5f02121e59f54..71c39c68accec 100644
--- a/pkgs/tools/misc/hhpc/default.nix
+++ b/pkgs/tools/misc/hhpc/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nico202 ];
     platforms = platforms.unix;
     license = lib.licenses.bsd3;
+    mainProgram = "hhpc";
   };
 }
diff --git a/pkgs/tools/misc/hid-listen/default.nix b/pkgs/tools/misc/hid-listen/default.nix
index 1f69a3fe749bf..62c2d7beb2ff5 100644
--- a/pkgs/tools/misc/hid-listen/default.nix
+++ b/pkgs/tools/misc/hid-listen/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ tomsmeets ];
     platforms = platforms.linux;
+    mainProgram = "hid_listen";
   };
 }
diff --git a/pkgs/tools/misc/hidrd/default.nix b/pkgs/tools/misc/hidrd/default.nix
index 0c58a5e42f982..5ce3e969f2764 100644
--- a/pkgs/tools/misc/hidrd/default.nix
+++ b/pkgs/tools/misc/hidrd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ pacien ];
     platforms = platforms.all;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/hidrd.x86_64-darwin
+    mainProgram = "hidrd-convert";
   };
 }
diff --git a/pkgs/tools/misc/homesick/default.nix b/pkgs/tools/misc/homesick/default.nix
index 5cd11bc48d1f4..663990ffac805 100644
--- a/pkgs/tools/misc/homesick/default.nix
+++ b/pkgs/tools/misc/homesick/default.nix
@@ -24,5 +24,6 @@ bundlerEnv {
     license = licenses.mit;
     maintainers = with maintainers; [ aaronschif nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "homesick";
   };
 }
diff --git a/pkgs/tools/misc/hpcg/default.nix b/pkgs/tools/misc/hpcg/default.nix
index d6896527ad2a9..77621bd6f158e 100644
--- a/pkgs/tools/misc/hpcg/default.nix
+++ b/pkgs/tools/misc/hpcg/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.bsd3;
     maintainers = [ maintainers.markuskowa ];
+    mainProgram = "xhpcg";
   };
 }
 
diff --git a/pkgs/tools/misc/hpl/default.nix b/pkgs/tools/misc/hpl/default.nix
index c9a81ebb8a1bc..0521afc4ef26d 100644
--- a/pkgs/tools/misc/hpl/default.nix
+++ b/pkgs/tools/misc/hpl/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.bsdOriginal;
     maintainers = [ maintainers.markuskowa ];
+    mainProgram = "xhpl";
   };
 }
diff --git a/pkgs/tools/misc/hsd/default.nix b/pkgs/tools/misc/hsd/default.nix
index ebbba1de07d85..a1e82076cca4e 100644
--- a/pkgs/tools/misc/hsd/default.nix
+++ b/pkgs/tools/misc/hsd/default.nix
@@ -9,16 +9,16 @@
 
 buildNpmPackage rec {
   pname = "hsd";
-  version = "6.0.0";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     owner = "handshake-org";
     repo = "hsd";
     rev = "v${version}";
-    hash = "sha256-4dWCCybhcdrkLFqUVTajRMnhzNgjpXUN2a+TNIi+Dqo=";
+    hash = "sha256-T57kDEQwHIyW7xVXrzjJdUcocST9ks4x3JR8yytH8P4=";
   };
 
-  npmDepsHash = "sha256-ZbBu9hnRsC9LrHozny3OlHhgcDbp6ACjXRV4UHneHQc=";
+  npmDepsHash = "sha256-EBrCuRckBg42k6ZUoB25xObv3lULnSPNJ2nO9l/TWvA=";
 
   nativeBuildInputs = [
     python3
diff --git a/pkgs/tools/misc/html-proofer/default.nix b/pkgs/tools/misc/html-proofer/default.nix
index 73025a212b2a3..cc4f6f69f2633 100644
--- a/pkgs/tools/misc/html-proofer/default.nix
+++ b/pkgs/tools/misc/html-proofer/default.nix
@@ -16,5 +16,6 @@ bundlerEnv rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms   = platforms.unix;
+    mainProgram = "htmlproofer";
   };
 }
diff --git a/pkgs/tools/misc/hueadm/default.nix b/pkgs/tools/misc/hueadm/default.nix
index 393f4baa955b7..7eeb7b2eb7900 100644
--- a/pkgs/tools/misc/hueadm/default.nix
+++ b/pkgs/tools/misc/hueadm/default.nix
@@ -23,5 +23,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/bahamas10/hueadm";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ infinisil ];
+    mainProgram = "hueadm";
   };
 }
diff --git a/pkgs/tools/misc/hunt/default.nix b/pkgs/tools/misc/hunt/default.nix
index da466e7b98a76..38fbf9bc828d9 100644
--- a/pkgs/tools/misc/hunt/default.nix
+++ b/pkgs/tools/misc/hunt/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/LyonSyonII/hunt";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "hunt";
   };
 }
diff --git a/pkgs/tools/misc/hwatch/default.nix b/pkgs/tools/misc/hwatch/default.nix
index 6e3ad36af1634..2eb8be5d2f93e 100644
--- a/pkgs/tools/misc/hwatch/default.nix
+++ b/pkgs/tools/misc/hwatch/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ hamburger1984 ];
+    mainProgram = "hwatch";
   };
 }
diff --git a/pkgs/tools/misc/hyfetch/default.nix b/pkgs/tools/misc/hyfetch/default.nix
index 3621ad675b242..2e906541bda13 100644
--- a/pkgs/tools/misc/hyfetch/default.nix
+++ b/pkgs/tools/misc/hyfetch/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "hyfetch";
-  version = "1.4.10";
+  version = "1.4.11";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "hykilpikonna";
     repo = "hyfetch";
     rev = "refs/tags/${version}";
-    hash = "sha256-B8FAMXot+QV7Q2bJuTsRsrxHSr/2f+WNTKrZqFXewdE=";
+    hash = "sha256-xzN/tbS5BUvpKeozesE99gNp3NRDjvf4Qx7BHLc4svo=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
index 420d1ae04edac..16de5fa76f3d2 100644
--- a/pkgs/tools/misc/hyperfine/default.nix
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/hyperfine/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda thoughtpolice ];
+    mainProgram = "hyperfine";
   };
 }
diff --git a/pkgs/tools/misc/i3nator/default.nix b/pkgs/tools/misc/i3nator/default.nix
index 99f0edeeafd73..4c62e4ca80507 100644
--- a/pkgs/tools/misc/i3nator/default.nix
+++ b/pkgs/tools/misc/i3nator/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/pitkley/i3nator";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ mpoquet ];
+    mainProgram = "i3nator";
   };
 }
diff --git a/pkgs/tools/misc/iay/default.nix b/pkgs/tools/misc/iay/default.nix
index d48e48cc83b50..1ef3d332e75d2 100644
--- a/pkgs/tools/misc/iay/default.nix
+++ b/pkgs/tools/misc/iay/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/aaqaishtyaq/iay";
     license = licenses.mit;
     maintainers = with maintainers; [ aaqaishtyaq omasanori ];
+    mainProgram = "iay";
   };
 }
diff --git a/pkgs/tools/misc/ibus-theme-tools/default.nix b/pkgs/tools/misc/ibus-theme-tools/default.nix
index ee8a8719d1397..05c56edd36978 100644
--- a/pkgs/tools/misc/ibus-theme-tools/default.nix
+++ b/pkgs/tools/misc/ibus-theme-tools/default.nix
@@ -25,5 +25,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hollowman6 ];
     homepage = "https://github.com/openSUSE/IBus-Theme-Tools";
+    mainProgram = "ibus-theme-tools";
   };
 }
diff --git a/pkgs/tools/misc/ical2orgpy/default.nix b/pkgs/tools/misc/ical2orgpy/default.nix
index e9397e14430f7..ac5607b4a819f 100644
--- a/pkgs/tools/misc/ical2orgpy/default.nix
+++ b/pkgs/tools/misc/ical2orgpy/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/ical2org-py/ical2org.py";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ StillerHarpo ];
+    mainProgram = "ical2orgpy";
   };
 
 }
diff --git a/pkgs/tools/misc/ictree/default.nix b/pkgs/tools/misc/ictree/default.nix
index 16093dbc4d55f..c8ffdc090c20c 100644
--- a/pkgs/tools/misc/ictree/default.nix
+++ b/pkgs/tools/misc/ictree/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/NikitaIvanovV/ictree";
     platforms = platforms.unix;
     maintainers = with maintainers; [ foo-dogsquared ];
+    mainProgram = "ictree";
   };
 }
diff --git a/pkgs/tools/misc/ideviceinstaller/default.nix b/pkgs/tools/misc/ideviceinstaller/default.nix
index c140b9ba1a816..63bb1e7cb0fc3 100644
--- a/pkgs/tools/misc/ideviceinstaller/default.nix
+++ b/pkgs/tools/misc/ideviceinstaller/default.nix
@@ -30,6 +30,11 @@ stdenv.mkDerivation rec {
     libzip
   ];
 
+  # the package uses zip_get_num_entries, which is deprecated
+  env.NIX_CFLAGS_COMPILE = toString [
+    "-Wno-error=deprecated-declarations"
+  ];
+
   preAutoreconf = ''
     export RELEASE_VERSION=${version}
   '';
@@ -45,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ aristid infinisil ];
+    mainProgram = "ideviceinstaller";
   };
 }
diff --git a/pkgs/tools/misc/idevicerestore/default.nix b/pkgs/tools/misc/idevicerestore/default.nix
index 55b2918aa9bac..55fa9fcda8ba6 100644
--- a/pkgs/tools/misc/idevicerestore/default.nix
+++ b/pkgs/tools/misc/idevicerestore/default.nix
@@ -61,5 +61,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ nh2 ];
+    mainProgram = "idevicerestore";
   };
 }
diff --git a/pkgs/tools/misc/idutils/default.nix b/pkgs/tools/misc/idutils/default.nix
index 6a4fa89616150..cbdf1b7610499 100644
--- a/pkgs/tools/misc/idutils/default.nix
+++ b/pkgs/tools/misc/idutils/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, emacs, gnulib, autoconf, bison, automake, gettext, gperf, texinfo, perl, rsync}:
+{ fetchurl, lib, stdenv, emacs, gnulib, autoconf, bison, automake, gettext, gperf, texinfo, perl, rsync, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "idutils";
@@ -16,7 +16,12 @@ stdenv.mkDerivation rec {
     ./bootstrap --force --gnulib-srcdir=${gnulib} --skip-po --bootstrap-sync --no-git
     '';
 
-  buildInputs = lib.optional stdenv.isLinux emacs;
+  buildInputs = lib.optionals stdenv.isLinux [
+    emacs
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreServices
+  ];
+
   nativeBuildInputs = [ gnulib autoconf bison automake gettext gperf texinfo perl rsync ];
 
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/tools/misc/ikill/default.nix b/pkgs/tools/misc/ikill/default.nix
index 8ca69f8b44109..b5c18e5dfd975 100644
--- a/pkgs/tools/misc/ikill/default.nix
+++ b/pkgs/tools/misc/ikill/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ zendo ];
     license = [ licenses.mit ];
     platforms = platforms.linux;
+    mainProgram = "ikill";
   };
 }
diff --git a/pkgs/tools/misc/ili2c/default.nix b/pkgs/tools/misc/ili2c/default.nix
index 8e748efe7b4eb..ac4e3274e308b 100644
--- a/pkgs/tools/misc/ili2c/default.nix
+++ b/pkgs/tools/misc/ili2c/default.nix
@@ -1,30 +1,55 @@
-{ lib, stdenv, fetchFromGitHub, jdk8, ant, makeWrapper, jre8 }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, ant
+, jdk8
+, jre8
+, makeWrapper
+, canonicalize-jars-hook
+}:
 
-let jdk = jdk8; jre = jre8; in
-stdenv.mkDerivation rec {
+let
+  jdk = jdk8;
+  jre = jre8;
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "ili2c";
-  version = "5.1.1";
+  version = "5.1.1"; # There are newer versions, but they use gradle
 
-  nativeBuildInputs = [ ant jdk makeWrapper ];
+  nativeBuildInputs = [
+    ant
+    jdk
+    makeWrapper
+    canonicalize-jars-hook
+  ];
 
   src = fetchFromGitHub {
     owner = "claeis";
-    repo = pname;
-    rev = "${pname}-${version}";
-    sha256 = "sha256-FHhx+f253+UdbFjd2fOlUY1tpQ6pA2aVu9CBSwUVoKQ=";
+    repo = "ili2c";
+    rev = "ili2c-${finalAttrs.version}";
+    hash = "sha256-FHhx+f253+UdbFjd2fOlUY1tpQ6pA2aVu9CBSwUVoKQ=";
   };
 
-  buildPhase = "ant jar";
+  patches = [
+    # avoids modifying Version.properties file because that would insert the current timestamp into the file
+    ./dont-use-build-timestamp.patch
+  ];
 
-  installPhase =
-    ''
-      mkdir -p $out/share/${pname}
-      cp $build/build/source/build/jar/ili2c.jar $out/share/${pname}
+  buildPhase = ''
+    runHook preBuild
+    ant jar
+    runHook postBuild
+  '';
 
-      mkdir -p $out/bin
-      makeWrapper ${jre}/bin/java $out/bin/ili2c \
-        --add-flags "-jar $out/share/${pname}/ili2c.jar"
-    '';
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 build/jar/ili2c.jar -t $out/share/ili2c
+    makeWrapper ${jre}/bin/java $out/bin/ili2c \
+        --add-flags "-jar $out/share/ili2c/ili2c.jar"
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "The INTERLIS Compiler";
@@ -34,10 +59,11 @@ stdenv.mkDerivation rec {
     homepage = "https://www.interlis.ch/downloads/ili2c";
     sourceProvenance = with sourceTypes; [
       fromSource
-      binaryBytecode  # source bundles dependencies as jars
+      binaryBytecode # source bundles dependencies as jars
     ];
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.das-g ];
     platforms = platforms.linux;
+    mainProgram = "ili2c";
   };
-}
+})
diff --git a/pkgs/tools/misc/ili2c/dont-use-build-timestamp.patch b/pkgs/tools/misc/ili2c/dont-use-build-timestamp.patch
new file mode 100644
index 0000000000000..e3388c54ab536
--- /dev/null
+++ b/pkgs/tools/misc/ili2c/dont-use-build-timestamp.patch
@@ -0,0 +1,29 @@
+diff --git a/build.xml b/build.xml
+index d0493d8..50d4286 100644
+--- a/build.xml
++++ b/build.xml
+@@ -221,11 +221,6 @@
+     </jar>
+   </target>
+   <target depends="init,compile-core,copyres" name="jar-core">
+-    <propertyfile file="${versionfile}">
+-	<!-- <entry  key="versionMicro" type="int" value="1" operation="+"/> -->
+-	<entry  key="versionDate" type="date" value="now" pattern="yyyyMMdd"/>
+-    </propertyfile>
+-
+     <jar jarfile="${build}/jar/${ant.project.name}-core.jar">
+ 	<!-- fileset dir="${build}/classes" excludes="ch/interlis/ili2c/tests/**/*.class" includes="ch/interlis/models/**/*.class,ch/interlis/ili2c/parser/**/*.class,ch/interlis/ili2c/generator/**/*.class,ch/interlis/ili2c/modelscan/**/*.class,ch/interlis/ili2c/metamodel/**/*.class,ch/interlis/ili2c/config/**/*.class,ch/interlis/ili2c/CompilerLogEvent.class,ch/interlis/ili2c/Ili2cException.class,ch/interlis/ili2c/Ili2cFailure.class,ch/interlis/ili2c/gui/UserSettings.class,ch/interlis/ilirepository/ReposManager.class,ch/interlis/ilirepository/impl/RepositoryAccessException.class,ch/interlis/ilirepository/Dataset.class"/--> 
+ 	<fileset dir="${build}/classes-core" excludes="ch/interlis/ili2c/tests/**/*.class" />
+diff --git a/src-core/ch/interlis/ili2c/metamodel/TransferDescription.java b/src-core/ch/interlis/ili2c/metamodel/TransferDescription.java
+index 9e165af..86d8f89 100644
+--- a/src-core/ch/interlis/ili2c/metamodel/TransferDescription.java
++++ b/src-core/ch/interlis/ili2c/metamodel/TransferDescription.java
+@@ -219,7 +219,7 @@ public static final String MIMETYPE_XTF = "application/interlis+xml;version=2.3"
+       ret.append(branch);
+       ret.append('-');
+       }
+-      ret.append(resVersion.getString("versionDate"));
++      ret.append("nixpkgs");
+       version = ret.toString();
+   }
+   return version;
diff --git a/pkgs/tools/misc/immich-cli/default.nix b/pkgs/tools/misc/immich-cli/default.nix
index ec1483ccc0c9b..82d8e96ec798a 100644
--- a/pkgs/tools/misc/immich-cli/default.nix
+++ b/pkgs/tools/misc/immich-cli/default.nix
@@ -3,25 +3,29 @@
 , fetchFromGitHub
 }:
 
-buildNpmPackage rec {
+buildNpmPackage {
   pname = "immich-cli";
-  version = "0.41.0";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "immich-app";
-    repo = "CLI";
-    rev = "v${version}";
-    hash = "sha256-BpJNssNTJZASH5VTgTNJ0ILj0XucWvyn3Y7hQdfCEGQ=";
+    repo = "immich";
+    # Using a fixed commit until upstream has release tags for cli.
+    rev = "014adf175ad50a61f92804666940e267ab329064";
+    hash = "sha256-MK3Watq5/Zp+rymCIfWxAXSgBPDE13g23uDnW7A5x9g=";
   };
 
-  npmDepsHash = "sha256-GOYWPRAzV59iaX32I42dOOEv1niLiDIPagzQ/QBBbKc=";
+  npmDepsHash = "sha256-ssxOXKE1t/bSb972w/cBeK61IrqPLmx9ODMn6D+2Ezw=";
+
+  postPatch = ''
+    cd cli
+  '';
 
   meta = {
-    changelog = "https://github.com/immich-app/CLI/releases/tag/${src.rev}";
     description = "CLI utilities for Immich to help upload images and videos";
-    homepage = "https://github.com/immich-app/CLI";
+    homepage = "https://github.com/immich-app/immich";
     license = lib.licenses.mit;
     mainProgram = "immich";
-    maintainers = with lib.maintainers; [ felschr ];
+    maintainers = with lib.maintainers; [ felschr pineapplehunter ];
   };
 }
diff --git a/pkgs/tools/misc/infracost/default.nix b/pkgs/tools/misc/infracost/default.nix
index 26c0acdef4d01..2ed332b58fbd3 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.10.29";
+  version = "0.10.32";
 
   src = fetchFromGitHub {
     owner = "infracost";
     rev = "v${version}";
     repo = "infracost";
-    sha256 = "sha256-xtxTIC7DNTvcDMXtFJOJkJGn78HdzCWVrBMS5Ksmtcc=";
+    sha256 = "sha256-/GXT8ptoE6AjW0yTyQ8oLFqok59hIu+bOoE8FpdrOrY=";
   };
-  vendorHash = "sha256-ZKRtUlrEk/W2qZSbsh0ddwmspH6quzzY0cFSQmO0i10=";
+  vendorHash = "sha256-ji9TpUcq0aUAn5vV5dnaC15i0Uli2Qsz/BrOKB3/Rl4=";
 
   ldflags = [ "-s" "-w" "-X github.com/infracost/infracost/internal/version.Version=v${version}" ];
 
@@ -63,5 +63,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ davegallant jk kashw2 ];
+    mainProgram = "infracost";
   };
 }
diff --git a/pkgs/tools/misc/ink/default.nix b/pkgs/tools/misc/ink/default.nix
index 87173c9537913..30df6e9691fad 100644
--- a/pkgs/tools/misc/ink/default.nix
+++ b/pkgs/tools/misc/ink/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux ++ platforms.freebsd;
     maintainers = with maintainers; [ samb96 ];
+    mainProgram = "ink";
   };
 }
diff --git a/pkgs/tools/misc/inklingreader/default.nix b/pkgs/tools/misc/inklingreader/default.nix
index 8710da482a655..efe1eeb34aebc 100644
--- a/pkgs/tools/misc/inklingreader/default.nix
+++ b/pkgs/tools/misc/inklingreader/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ totoroot ];
     platforms = lib.platforms.linux;
+    mainProgram = "inklingreader";
   };
 }
diff --git a/pkgs/tools/misc/inspec/default.nix b/pkgs/tools/misc/inspec/default.nix
index f9108c7af6bd2..759b1fcaed874 100644
--- a/pkgs/tools/misc/inspec/default.nix
+++ b/pkgs/tools/misc/inspec/default.nix
@@ -15,5 +15,6 @@ bundlerApp {
     homepage = "https://inspec.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "inspec";
   };
 }
diff --git a/pkgs/tools/misc/instaloader/default.nix b/pkgs/tools/misc/instaloader/default.nix
index 7f9a33927db95..b648a55cb3dfc 100644
--- a/pkgs/tools/misc/instaloader/default.nix
+++ b/pkgs/tools/misc/instaloader/default.nix
@@ -2,13 +2,14 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, setuptools
 , sphinx
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "instaloader";
-  version = "4.9.6";
+  version = "4.10.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -17,9 +18,13 @@ buildPythonPackage rec {
     owner = "instaloader";
     repo = "instaloader";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-ZxvJPDj+r7KSyXpYNQIgnda5OS77GOFM901ZHgR6c4k=";
+    sha256 = "sha256-+K15MlyOONC5E8ZjtzbYnGGzQEMDGEGBFDbLZp7FeWQ=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
     sphinx
@@ -32,5 +37,6 @@ buildPythonPackage rec {
     description = "Download pictures (or videos) along with their captions and other metadata from Instagram";
     maintainers = with maintainers; [ creator54 ];
     license = licenses.mit;
+    mainProgram = "instaloader";
   };
 }
diff --git a/pkgs/tools/misc/interactsh/default.nix b/pkgs/tools/misc/interactsh/default.nix
index cbf023d79099e..3331e5aebc6cf 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.1.7";
+  version = "1.1.8";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-9mUyVFm/UZw0bQkI3JumFoyzYBz7X6m1YLdpEsypb7s=";
+    hash = "sha256-wGxviByvtn72OvFIdjhzUuHwJTWvXhGsL/jSIICW5ig=";
   };
 
-  vendorHash = "sha256-C4tlyvKQ2sG6uqbO06eT9E72JCPc44PhFAcek+O8sN4=";
+  vendorHash = "sha256-HguNO3Vb3+bTLGi1bm097IXVsRU3bnAFsX/vneOWxss=";
 
   modRoot = ".";
   subPackages = [
diff --git a/pkgs/tools/misc/invoice/default.nix b/pkgs/tools/misc/invoice/default.nix
index cffdec4063e38..ea7ce5c2205a7 100644
--- a/pkgs/tools/misc/invoice/default.nix
+++ b/pkgs/tools/misc/invoice/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/maaslalani/invoice";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "invoice";
   };
 }
diff --git a/pkgs/tools/misc/iotools/default.nix b/pkgs/tools/misc/iotools/default.nix
index 12411aac6c6f5..17330d9c19cb7 100644
--- a/pkgs/tools/misc/iotools/default.nix
+++ b/pkgs/tools/misc/iotools/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ felixsinger ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "iotools";
   };
 }
diff --git a/pkgs/tools/misc/ipad_charge/default.nix b/pkgs/tools/misc/ipad_charge/default.nix
index d92961be9c5ad..fdbab82aabcdc 100644
--- a/pkgs/tools/misc/ipad_charge/default.nix
+++ b/pkgs/tools/misc/ipad_charge/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "ipad_charge";
   };
 }
diff --git a/pkgs/tools/misc/ipbt/default.nix b/pkgs/tools/misc/ipbt/default.nix
index 25dad59c9fef9..3b9b6d1496ee3 100644
--- a/pkgs/tools/misc/ipbt/default.nix
+++ b/pkgs/tools/misc/ipbt/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.tckmn ];
     platforms = platforms.unix;
+    mainProgram = "ipbt";
   };
 }
diff --git a/pkgs/tools/misc/ipxe/default.nix b/pkgs/tools/misc/ipxe/default.nix
index bbb456eaaa8c0..aa0c74b114b52 100644
--- a/pkgs/tools/misc/ipxe/default.nix
+++ b/pkgs/tools/misc/ipxe/default.nix
@@ -11,6 +11,7 @@ let
     "bin-x86_64-efi/ipxe.efi" = null;
     "bin-x86_64-efi/ipxe.efirom" = null;
     "bin-x86_64-efi/ipxe.usb" = "ipxe-efi.usb";
+    "bin-x86_64-efi/snp.efi" = null;
   } // lib.optionalAttrs stdenv.hostPlatform.isx86 {
     "bin/ipxe.dsk" = null;
     "bin/ipxe.usb" = null;
@@ -21,16 +22,18 @@ let
     "bin-arm32-efi/ipxe.efi" = null;
     "bin-arm32-efi/ipxe.efirom" = null;
     "bin-arm32-efi/ipxe.usb" = "ipxe-efi.usb";
+    "bin-arm32-efi/snp.efi" = null;
   } // lib.optionalAttrs stdenv.isAarch64 {
     "bin-arm64-efi/ipxe.efi" = null;
     "bin-arm64-efi/ipxe.efirom" = null;
     "bin-arm64-efi/ipxe.usb" = "ipxe-efi.usb";
+    "bin-arm64-efi/snp.efi" = null;
   };
 in
 
 stdenv.mkDerivation rec {
   pname = "ipxe";
-  version = "unstable-2023-07-19";
+  version = "unstable-2024-01-19";
 
   nativeBuildInputs = [ gnu-efi mtools openssl perl xorriso xz ] ++ lib.optional stdenv.hostPlatform.isx86 syslinux;
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -40,8 +43,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "ipxe";
     repo = "ipxe";
-    rev = "c1834f323f4f6b9b46cd5895b1457a117381363f";
-    hash = "sha256-fJeDgm+OaItshWFliq08Y0BPDD2FCkezeEp7trqWNjA=";
+    rev = "de8a0821c7bc737e724fa3dfb6d89dc36f591d7a";
+    hash = "sha256-bVFr1fTulww6swWPKupWRGfQOAiXp2oP1/VC5GpzLnY=";
   };
 
   postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
diff --git a/pkgs/tools/misc/ised/default.nix b/pkgs/tools/misc/ised/default.nix
index 9032a2d245146..9f6b716b42930 100644
--- a/pkgs/tools/misc/ised/default.nix
+++ b/pkgs/tools/misc/ised/default.nix
@@ -13,5 +13,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ raskin ];
     platforms = with lib.platforms; linux;
     license = lib.licenses.gpl3Plus;
+    mainProgram = "ised";
   };
 }
diff --git a/pkgs/tools/misc/isoimagewriter/default.nix b/pkgs/tools/misc/isoimagewriter/default.nix
index e7ce4fd79acec..1ffb0f51db510 100644
--- a/pkgs/tools/misc/isoimagewriter/default.nix
+++ b/pkgs/tools/misc/isoimagewriter/default.nix
@@ -21,10 +21,11 @@ mkDerivation rec {
   ];
 
   meta = {
-    description = "ISO Image Writer is a tool to write a .iso file to a USB disk.";
+    description = "A program to write hybrid ISO files onto USB disks";
     homepage = "https://invent.kde.org/utilities/isoimagewriter";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ k900 ];
+    mainProgram = "isoimagewriter";
   };
 }
diff --git a/pkgs/tools/misc/ix/default.nix b/pkgs/tools/misc/ix/default.nix
index e3fc85406e8ea..52781f8a08bb3 100644
--- a/pkgs/tools/misc/ix/default.nix
+++ b/pkgs/tools/misc/ix/default.nix
@@ -32,5 +32,6 @@ resholve.mkDerivation {
     description = "Command line pastebin";
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.all;
+    mainProgram = "ix";
   };
 }
diff --git a/pkgs/tools/misc/jdiskreport/default.nix b/pkgs/tools/misc/jdiskreport/default.nix
index 57441e645df26..6490d68ce0b77 100644
--- a/pkgs/tools/misc/jdiskreport/default.nix
+++ b/pkgs/tools/misc/jdiskreport/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfreeRedistributable; #TODO freedist, libs under BSD-3
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ kylesferrazza ];
+    mainProgram = "jdiskreport";
   };
 }
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index 72970d2dc9b45..8e29307ad24a0 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -1,37 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, fetchFromGitea, libjodycode }:
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.21.0";
+  version = "1.27.3";
 
-  src = fetchFromGitHub {
+  src = fetchFromGitea {
+    domain = "codeberg.org";
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "sha256-nDyRaV49bLVHlyqKJ7hf6OBWOLCfmHrTeHryK091c3w=";
+    hash = "sha256-hR5nl8G7TYVm4ol/jgo7iOb4dLr2MovgjKSXCD2UwMg=";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
     postFetch = "rm -r $out/testdir";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "darwin-stack-size.patch";
-      url = "https://github.com/jbruchon/jdupes/commit/8f5b06109b44a9e4316f9445da3044590a6c63e2.patch";
-      sha256 = "0saq92v0mm5g979chr062psvwp3i3z23mgqrcliq4m07lvwc7i3s";
-    })
-    (fetchpatch {
-      name = "linux-header-ioctl.patch";
-      url = "https://github.com/jbruchon/jdupes/commit/0d4d98f51c99999d2c6dbbb89d554af551b5b69b.patch";
-      sha256 = "sha256-lyuZeRp0Laa8I9nDl1HGdlKa59OvGRQJnRg2fTWv7mQ=";
-    })
-    (fetchpatch {
-      name = "darwin-apfs-comp.patch";
-      url = "https://github.com/jbruchon/jdupes/commit/517b7035945eacd82323392b13bc17b044bcc89d.patch";
-      sha256 = "sha256-lvOab6tyEyKUtik3JBdIs5SHpVjcQEDfN7n2bfUszBw=";
-    })
-  ];
+  buildInputs = [ libjodycode ];
 
   dontConfigure = true;
 
@@ -49,7 +34,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # broken Makefile, the above also removes tests
 
   postInstall = ''
-    install -Dm444 -t $out/share/doc/jdupes CHANGES LICENSE README.md
+    install -Dm444 -t $out/share/doc/jdupes CHANGES.txt LICENSE.txt README.md
   '';
 
   meta = with lib; {
@@ -61,6 +46,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/jbruchon/jdupes";
     license = licenses.mit;
-    maintainers = with maintainers; [ romildo ];
+    maintainers = with maintainers; [ ];
+    mainProgram = "jdupes";
   };
 }
diff --git a/pkgs/tools/misc/jfrog-cli/default.nix b/pkgs/tools/misc/jfrog-cli/default.nix
index 4deaa1736ba04..1f46369070573 100644
--- a/pkgs/tools/misc/jfrog-cli/default.nix
+++ b/pkgs/tools/misc/jfrog-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "jfrog-cli";
-  version = "2.48.0";
+  version = "2.52.9";
 
   src = fetchFromGitHub {
     owner = "jfrog";
     repo = "jfrog-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OrJUnvDCJPQcz3doY8bn8O1jA6boNs+7ReN8/0OF6vU=";
+    hash = "sha256-VzItfVmt/+B+rTBxKIjhdrI1B+Xq2ca/VG+EXm99Bw4=";
   };
 
-  vendorHash = "sha256-uwfiRLsT0o2gDozHrMq6iY9tg1sYK721lLv3UtBCe78=";
+  vendorHash = "sha256-zGhVAcTQN//YIQQhD9qLN5BTJZ54cVGj1NZd6NXNgjI=";
 
   postInstall = ''
     # Name the output the same way as the original build script does
diff --git a/pkgs/tools/misc/journaldriver/default.nix b/pkgs/tools/misc/journaldriver/default.nix
index bf835e8bcff66..a5174c4b309e2 100644
--- a/pkgs/tools/misc/journaldriver/default.nix
+++ b/pkgs/tools/misc/journaldriver/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.tazjin ];
     platforms = platforms.linux;
+    mainProgram = "journaldriver";
   };
 }
diff --git a/pkgs/tools/misc/jsonwatch/default.nix b/pkgs/tools/misc/jsonwatch/default.nix
index 11e2e2d0e8d10..2f0e3b89149cc 100644
--- a/pkgs/tools/misc/jsonwatch/default.nix
+++ b/pkgs/tools/misc/jsonwatch/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ fab ];
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "jsonwatch";
   };
 }
diff --git a/pkgs/tools/misc/jstest-gtk/default.nix b/pkgs/tools/misc/jstest-gtk/default.nix
index 6824753c73ce5..1b201396b7ad7 100644
--- a/pkgs/tools/misc/jstest-gtk/default.nix
+++ b/pkgs/tools/misc/jstest-gtk/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wucke13 ];
     platforms = platforms.linux;
+    mainProgram = "jstest-gtk";
   };
 }
diff --git a/pkgs/tools/misc/jugglinglab/default.nix b/pkgs/tools/misc/jugglinglab/default.nix
index ccacd89a85b0b..64b91a68d9480 100644
--- a/pkgs/tools/misc/jugglinglab/default.nix
+++ b/pkgs/tools/misc/jugglinglab/default.nix
@@ -1,36 +1,73 @@
-{ lib, stdenv, fetchFromGitHub, jre, makeWrapper, ant, jdk }:
-stdenv.mkDerivation rec {
-  version = "1.6.3";
+{ lib
+, stdenv
+, maven
+, fetchFromGitHub
+, makeWrapper
+, wrapGAppsHook
+, jre
+}:
+
+let
+  platformName = {
+    "x86_64-linux" = "linux-x86-64";
+    "aarch64-linux" = "linux-aarch64";
+    "x86_64-darwin" = "darwin-x86-64";
+    "aarch64-darwin" = "darwin-aarch64";
+  }.${stdenv.system} or null;
+in
+maven.buildMavenPackage rec {
   pname = "jugglinglab";
+  version = "1.6.5";
+
   src = fetchFromGitHub {
     owner = "jkboyce";
     repo = "jugglinglab";
     rev = "v${version}";
-    sha256 = "sha256-Gq8V7gLl9IakQi7xaK8TCI/B2+6LlLjoLdcv9zlalIE=";
+    hash = "sha256-Y87uHFpVs4A/wErNO2ZF6Su0v4LEvaE9nIysrqFoY8w=";
   };
-  buildInputs = [ jre ];
-  nativeBuildInputs = [ ant jdk makeWrapper ];
-  buildPhase = "ant";
+
+  patches = [
+    # make sure mvnHash doesn't change when maven is updated
+    ./fix-default-maven-plugin-versions.patch
+  ];
+
+  mvnHash = "sha256-1Uzo9nRw+YR/sd7CC9MTPe/lttkRX6BtmcsHaagP1Do=";
+
+  # fix jar timestamps for reproducibility
+  mvnParameters = "-Dproject.build.outputTimestamp=1980-01-01T00:00:02Z";
+
+  nativeBuildInputs = [
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  dontWrapGApps = true;
 
   installPhase = ''
-    mkdir -p "$out/bin"
-    mkdir -p "$out/lib"
-    cp bin/*.jar $out/lib/
+    runHook preInstall
 
-    # copied from the upstream shell wrapper
-    classpath=$out/lib/JugglingLab.jar:$out/lib/commons-math3-3.6.1.jar:$out/lib/protobuf.jar:$out/lib/com.google.ortools.jar
+    install -Dm644 bin/JugglingLab.jar -t $out/share/jugglinglab
+    ${lib.optionalString (platformName != null) ''
+      install -Dm755 bin/ortools-lib/ortools-${platformName}/* -t $out/lib/ortools-lib
+    ''}
+
+    runHook postInstall
+  '';
 
+  # gappsWrapperArgs are set in preFixup
+  postFixup = ''
     makeWrapper ${jre}/bin/java $out/bin/jugglinglab \
-      --add-flags "-cp $classpath" \
-      --add-flags "-Xss2048k -Djava.library.path=ortools-lib" \
-      --add-flags jugglinglab.JugglingLab
+        "''${gappsWrapperArgs[@]}" \
+        --add-flags "-Xss2048k -Djava.library.path=$out/lib/ortools-lib" \
+        --add-flags "-jar $out/share/jugglinglab/JugglingLab.jar"
   '';
 
   meta = with lib; {
-      description = "A program to visualize different juggling pattens";
-      homepage = "https://jugglinglab.org/";
-      license = licenses.gpl2;
-      maintainers = with maintainers; [ wnklmnn ];
-      platforms = platforms.all;
+    description = "A program to visualize different juggling pattens";
+    homepage = "https://jugglinglab.org/";
+    license = licenses.gpl2Only;
+    mainProgram = "jugglinglab";
+    maintainers = with maintainers; [ wnklmnn tomasajt ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/jugglinglab/fix-default-maven-plugin-versions.patch b/pkgs/tools/misc/jugglinglab/fix-default-maven-plugin-versions.patch
new file mode 100644
index 0000000000000..a2f74b19b61fd
--- /dev/null
+++ b/pkgs/tools/misc/jugglinglab/fix-default-maven-plugin-versions.patch
@@ -0,0 +1,70 @@
+diff --git a/pom.xml b/pom.xml
+index 93fd6be..5f929c3 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -42,6 +43,65 @@
+ 
+     <build>
+         <plugins>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-enforcer-plugin</artifactId>
++                <version>3.4.1</version>
++                <executions>
++                    <execution>
++                        <id>require-all-plugin-versions-to-be-set</id>
++                        <phase>validate</phase>
++                        <goals>
++                            <goal>enforce</goal>
++                        </goals>
++                        <configuration>
++                            <rules>
++                                <requirePluginVersions />
++                            </rules>
++                        </configuration>
++                    </execution>
++                </executions>
++            </plugin>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-compiler-plugin</artifactId>
++                <version>3.12.1</version>
++            </plugin>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-surefire-plugin</artifactId>
++                <version>3.2.3</version>
++            </plugin>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-jar-plugin</artifactId>
++                <version>3.3.0</version>
++            </plugin>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-clean-plugin</artifactId>
++                <version>3.3.2</version>
++            </plugin>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-install-plugin</artifactId>
++                <version>3.1.1</version>
++            </plugin>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-site-plugin</artifactId>
++                <version>4.0.0-M13</version>
++            </plugin>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-resources-plugin</artifactId>
++                <version>3.3.1</version>
++            </plugin>
++            <plugin>
++                <groupId>org.apache.maven.plugins</groupId>
++                <artifactId>maven-deploy-plugin</artifactId>
++                <version>3.1.1</version>
++            </plugin>
+ 
+             <!-- remove existing `bin/JugglingLab.jar` -->
+             <!-- otherwise on overwrite Maven creates `bin/original-JugglingLab.jar` -->
diff --git a/pkgs/tools/misc/kak-lsp/0001-Use-full-Perl-path.patch b/pkgs/tools/misc/kak-lsp/0001-Use-full-Perl-path.patch
new file mode 100644
index 0000000000000..38f0d38cb2156
--- /dev/null
+++ b/pkgs/tools/misc/kak-lsp/0001-Use-full-Perl-path.patch
@@ -0,0 +1,37 @@
+From b93660cfa8a80a5e5bf72e1f06fb7bf95272c7e4 Mon Sep 17 00:00:00 2001
+From: PoweredByPie <poweredbypie@users.noreply.github.com>
+Date: Fri, 8 Dec 2023 04:39:01 -0800
+Subject: [PATCH] Use full Perl path
+
+---
+ rc/lsp.kak | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/rc/lsp.kak b/rc/lsp.kak
+index d695a2e..7c6a436 100644
+--- a/rc/lsp.kak
++++ b/rc/lsp.kak
+@@ -2339,11 +2339,6 @@ define-command -hidden lsp-snippets-insert-completion -params 1 %{ evaluate-comm
+ }}
+ 
+ define-command lsp-snippets-insert -hidden -params 1 %[
+-    evaluate-commands %sh{
+-        if ! command -v perl > /dev/null 2>&1; then
+-            printf "fail '''perl'' must be installed to use the ''snippets-insert'' command'"
+-        fi
+-    }
+     evaluate-commands -draft -save-regs '^"' %[
+         set-register '"' %arg{1}
+         execute-keys <a-P>
+@@ -2397,7 +2392,7 @@ define-command lsp-snippets-insert -hidden -params 1 %[
+ 
+ define-command -hidden lsp-snippets-insert-perl-impl %[
+     evaluate-commands %sh[ # $kak_quoted_selections
+-        perl -e '
++        @perlPath@/bin/perl -e '
+ use strict;
+ use warnings;
+ use Text::ParseWords();
+-- 
+2.42.0
+
diff --git a/pkgs/tools/misc/kak-lsp/default.nix b/pkgs/tools/misc/kak-lsp/default.nix
index 4b40b6131453b..a49847f8e11f5 100644
--- a/pkgs/tools/misc/kak-lsp/default.nix
+++ b/pkgs/tools/misc/kak-lsp/default.nix
@@ -1,24 +1,32 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, Security, SystemConfiguration }:
+{ stdenv, lib, fetchFromGitHub, rustPlatform, perl, CoreServices, Security, SystemConfiguration }:
 
 rustPlatform.buildRustPackage rec {
   pname = "kak-lsp";
-  version = "14.1.0";
+  version = "15.0.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5eGp11qPLT1fen39bZmICReK2Ly8Kg9Y3g30ZV0gk04=";
+    sha256 = "sha256-W4z2YtOEBCTM+NsL1HBHSYCXJXN459chE4RW0CPMjD4=";
   };
 
-  cargoSha256 = "sha256-+Sj+QSSXJAgGulMLRCWLgddVG8sIiHaB1xWPojVCgas=";
+  cargoHash = "sha256-tAA9eu4y1h6huNmEgY3L6v29itP5I4a8UZgoA+ANoq0=";
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
+  buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
+
+  patches = [ ./0001-Use-full-Perl-path.patch ];
+
+  postPatch = ''
+    substituteInPlace rc/lsp.kak \
+      --subst-var-by perlPath ${lib.getBin perl}
+  '';
 
   meta = with lib; {
     description = "Kakoune Language Server Protocol Client";
     homepage = "https://github.com/kak-lsp/kak-lsp";
     license = with licenses; [ unlicense /* or */ mit ];
-    maintainers = [ maintainers.spacekookie ];
+    maintainers = with maintainers; [ spacekookie poweredbypie ];
+    mainProgram = "kak-lsp";
   };
 }
diff --git a/pkgs/tools/misc/kalker/default.nix b/pkgs/tools/misc/kalker/default.nix
index b076ab351d733..2df69dd8f252e 100644
--- a/pkgs/tools/misc/kalker/default.nix
+++ b/pkgs/tools/misc/kalker/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda lovesegfault ];
+    mainProgram = "kalker";
   };
 }
diff --git a/pkgs/tools/misc/kargo/default.nix b/pkgs/tools/misc/kargo/default.nix
index 91fcbf43ed886..2097d47aa1ba2 100644
--- a/pkgs/tools/misc/kargo/default.nix
+++ b/pkgs/tools/misc/kargo/default.nix
@@ -34,5 +34,6 @@ buildPythonApplication rec {
     platforms = platforms.all;
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "kargo";
   };
 }
diff --git a/pkgs/tools/misc/kb/default.nix b/pkgs/tools/misc/kb/default.nix
index 76db4d7deca4d..85a72adebcddc 100644
--- a/pkgs/tools/misc/kb/default.nix
+++ b/pkgs/tools/misc/kb/default.nix
@@ -54,5 +54,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/gnebbia/kb/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wesleyjrz ];
+    mainProgram = "kb";
   };
 }
diff --git a/pkgs/tools/misc/kcollectd/default.nix b/pkgs/tools/misc/kcollectd/default.nix
index e38cb6f5a7911..a5c1039274a4d 100644
--- a/pkgs/tools/misc/kcollectd/default.nix
+++ b/pkgs/tools/misc/kcollectd/default.nix
@@ -52,5 +52,6 @@ mkDerivation rec {
     maintainers = [ maintainers.symphorien ];
     license = [ lib.licenses.gpl3Plus ];
     platforms = lib.platforms.linux;
+    mainProgram = "kcollectd";
   };
 }
diff --git a/pkgs/tools/misc/keychain/default.nix b/pkgs/tools/misc/keychain/default.nix
index dacffc30a2d4b..edb0bc34e776b 100644
--- a/pkgs/tools/misc/keychain/default.nix
+++ b/pkgs/tools/misc/keychain/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sigma ];
+    mainProgram = "keychain";
   };
 }
diff --git a/pkgs/tools/misc/keymapviz/default.nix b/pkgs/tools/misc/keymapviz/default.nix
index b02bb0a00fefb..6ed68a43b31f2 100644
--- a/pkgs/tools/misc/keymapviz/default.nix
+++ b/pkgs/tools/misc/keymapviz/default.nix
@@ -18,5 +18,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/yskoht/keymapviz";
     license = licenses.mit;
     maintainers = with maintainers; [ lom ];
+    mainProgram = "keymapviz";
   };
 }
diff --git a/pkgs/tools/misc/kicli/default.nix b/pkgs/tools/misc/kicli/default.nix
index 76516f4e4ac31..61eb8fe28ae60 100644
--- a/pkgs/tools/misc/kicli/default.nix
+++ b/pkgs/tools/misc/kicli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ poelzi ];
     platforms = platforms.all;
+    mainProgram = "kicli";
   };
 }
diff --git a/pkgs/tools/misc/killport/default.nix b/pkgs/tools/misc/killport/default.nix
index 714beb78dccd4..d043385f2069e 100644
--- a/pkgs/tools/misc/killport/default.nix
+++ b/pkgs/tools/misc/killport/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "killport";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-aaKvrWJGZ26wyqoblAcUkGUPkbt8XNx9Z4xT+qI2B3o=";
+    hash = "sha256-eyRI4ZVp9HPMvpzyV9sQdh2r966pCdyUPnEhxGkzH3Q=";
   };
 
-  cargoHash = "sha256-4CUMt5aDHq943uU5PAY1TJtmCqlBvgOruGQ69OG5fB4=";
+  cargoHash = "sha256-QQ43dT9BTu7qCzpnTGKzlVL6jKDXofXStYWYNLHSuVs=";
 
   nativeBuildInputs = [ rustPlatform.bindgenHook ];
 
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jkfran/killport";
     license = licenses.mit;
     maintainers = with maintainers; [ sno2wman ];
+    mainProgram = "killport";
   };
 }
diff --git a/pkgs/tools/misc/kitty-img/default.nix b/pkgs/tools/misc/kitty-img/default.nix
index 75a2b81d7d752..c47c4e6fc80de 100644
--- a/pkgs/tools/misc/kitty-img/default.nix
+++ b/pkgs/tools/misc/kitty-img/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://git.sr.ht/~zethra/kitty-img/refs/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gaykitty ];
+    mainProgram = "kitty-img";
   };
 }
diff --git a/pkgs/tools/misc/krapslog/default.nix b/pkgs/tools/misc/krapslog/default.nix
index 379612ea38629..909d047f834af 100644
--- a/pkgs/tools/misc/krapslog/default.nix
+++ b/pkgs/tools/misc/krapslog/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "krapslog";
-  version = "0.5.3";
+  version = "0.5.4";
 
   src = fetchFromGitHub {
     owner = "acj";
     repo = "krapslog-rs";
     rev = version;
-    sha256 = "sha256-Y5OdRi9OhVeT04BnHCCcNBr1G9vxSFwvNl1aL38AFWQ=";
+    sha256 = "sha256-nYKqPaO7sA9aWPqngLoTq2PkpAi9zCADFZhYwIK1L2s=";
   };
 
-  cargoHash = "sha256-fdrcV4XmxaWiAVOL51sRUfTEDnnCKduYgj7I5unLpRI=";
+  cargoHash = "sha256-Ybz2hNRMWSRuF6tWKsm0Ka7TOKwKvssA9/i6Hqk1tEE=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/acj/krapslog-rs";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ yanganto ];
+    mainProgram = "krapslog";
   };
 }
diff --git a/pkgs/tools/misc/kronometer/default.nix b/pkgs/tools/misc/kronometer/default.nix
index 828f0d80c11c4..06fafedf42ef4 100644
--- a/pkgs/tools/misc/kronometer/default.nix
+++ b/pkgs/tools/misc/kronometer/default.nix
@@ -18,6 +18,7 @@ mkDerivation rec {
     description = "A stopwatch application";
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "kronometer";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [ kconfig kcrash kinit ];
diff --git a/pkgs/tools/misc/ksnip/default.nix b/pkgs/tools/misc/ksnip/default.nix
index bae675b49599a..60ba06a299305 100644
--- a/pkgs/tools/misc/ksnip/default.nix
+++ b/pkgs/tools/misc/ksnip/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ x3ro ];
     platforms = platforms.linux;
+    mainProgram = "ksnip";
   };
 }
diff --git a/pkgs/tools/misc/kt/default.nix b/pkgs/tools/misc/kt/default.nix
index af837ee3cebb0..2e0bfbc1b1021 100644
--- a/pkgs/tools/misc/kt/default.nix
+++ b/pkgs/tools/misc/kt/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ utdemir ];
     platforms = with platforms; unix;
     license = licenses.mit;
+    mainProgram = "kt";
   };
 }
diff --git a/pkgs/tools/misc/lavat/default.nix b/pkgs/tools/misc/lavat/default.nix
index f63bfdffa3357..6cd38f6f34a18 100644
--- a/pkgs/tools/misc/lavat/default.nix
+++ b/pkgs/tools/misc/lavat/default.nix
@@ -4,7 +4,7 @@
 ,
 }:
 let
-  version = "2.0.0";
+  version = "2.1.0";
 in
 stdenv.mkDerivation {
   pname = "lavat";
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     owner = "AngelJumbo";
     repo = "lavat";
     rev = "v${version}";
-    hash = "sha256-xDjqKhwoaqCqo7tkpcEe2MBEpVTJUOpKtu7Fi9aPOPo=";
+    hash = "sha256-wGtuYgZS03gXYgdNdugGu/UlROQTrQ3C1inJ/aTUBKk=";
   };
 
   installPhase = ''
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     homepage = "https://github.com/AngelJumbo/lavat";
     platforms = platforms.all;
+    mainProgram = "lavat";
   };
 }
diff --git a/pkgs/tools/misc/lazycli/default.nix b/pkgs/tools/misc/lazycli/default.nix
index d3ef8192b38b5..70b5f345690ee 100644
--- a/pkgs/tools/misc/lazycli/default.nix
+++ b/pkgs/tools/misc/lazycli/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jesseduffield/lazycli";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lazycli";
   };
 }
diff --git a/pkgs/tools/misc/lazydocker/default.nix b/pkgs/tools/misc/lazydocker/default.nix
index 1fdb0ef0d44bc..59a6ad16ce9d5 100644
--- a/pkgs/tools/misc/lazydocker/default.nix
+++ b/pkgs/tools/misc/lazydocker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazydocker";
-  version = "0.23.0";
+  version = "0.23.1";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = "lazydocker";
     rev = "v${version}";
-    sha256 = "sha256-BxIv0HCdrR9U9mmJnBdQqiUf/vbK+XEnL8ALPkuap0M=";
+    sha256 = "sha256-nW3eaSisXLqoWZ+5YLLCfC1k4lTXWd5ZqY2xTM/I0PY=";
   };
 
   vendorHash = null;
@@ -30,5 +30,6 @@ buildGoModule rec {
     homepage = "https://github.com/jesseduffield/lazydocker";
     license = licenses.mit;
     maintainers = with maintainers; [ das-g Br1ght0ne ];
+    mainProgram = "lazydocker";
   };
 }
diff --git a/pkgs/tools/misc/lcdf-typetools/default.nix b/pkgs/tools/misc/lcdf-typetools/default.nix
index 3c4fd39713b48..eaa2ce01347b6 100644
--- a/pkgs/tools/misc/lcdf-typetools/default.nix
+++ b/pkgs/tools/misc/lcdf-typetools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lcdf-typetools";
-  version = "2.108";
+  version = "2.110";
 
   src = fetchFromGitHub {
     owner = "kohler";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0a6jqaqwq43ldjjjlnsh6mczs2la9363qav7v9fyrfzkfj8kw9ad";
+    sha256 = "sha256-hoILYYCef2R1v6aN9V+FoYnXYaKsnGN2jlpb/QFAN/w=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/ldapvi/default.nix b/pkgs/tools/misc/ldapvi/default.nix
index 2b9ba694d3f62..4be3b9e9024c3 100644
--- a/pkgs/tools/misc/ldapvi/default.nix
+++ b/pkgs/tools/misc/ldapvi/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
     platforms = lib.platforms.linux;
+    mainProgram = "ldapvi";
   };
 }
diff --git a/pkgs/tools/misc/ldmtool/default.nix b/pkgs/tools/misc/ldmtool/default.nix
index 51e3a77d8d68d..6a1527ea8fe2e 100644
--- a/pkgs/tools/misc/ldmtool/default.nix
+++ b/pkgs/tools/misc/ldmtool/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ jensbin ];
     license = licenses.gpl3;
     platforms = platforms.linux;
+    mainProgram = "ldmtool";
   };
 }
diff --git a/pkgs/tools/misc/leanify/default.nix b/pkgs/tools/misc/leanify/default.nix
index bcb936694fd74..8a6cfbe338272 100644
--- a/pkgs/tools/misc/leanify/default.nix
+++ b/pkgs/tools/misc/leanify/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.mynacol ];
     platforms = platforms.all;
+    mainProgram = "leanify";
   };
 }
diff --git a/pkgs/tools/misc/ledit/default.nix b/pkgs/tools/misc/ledit/default.nix
index 01810ceaf2f4c..e6470ea3fb8c2 100644
--- a/pkgs/tools/misc/ledit/default.nix
+++ b/pkgs/tools/misc/ledit/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     description = "A line editor, allowing to use shell commands with control characters like in emacs";
     license = licenses.bsd3;
     maintainers = [ maintainers.delta ];
+    mainProgram = "ledit";
   };
 }
diff --git a/pkgs/tools/misc/lektor/default.nix b/pkgs/tools/misc/lektor/default.nix
index 638ce2ee3ce7c..1b20b4355d8e4 100644
--- a/pkgs/tools/misc/lektor/default.nix
+++ b/pkgs/tools/misc/lektor/default.nix
@@ -46,8 +46,6 @@ in python.pkgs.buildPythonApplication rec {
     npmHooks.npmConfigHook
   ];
 
-  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   propagatedBuildInputs = with python.pkgs; [
     babel
     click
diff --git a/pkgs/tools/misc/lemmeknow/default.nix b/pkgs/tools/misc/lemmeknow/default.nix
index f18b741d11497..aa5c3786831a8 100644
--- a/pkgs/tools/misc/lemmeknow/default.nix
+++ b/pkgs/tools/misc/lemmeknow/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/swanandx/lemmeknow/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda Br1ght0ne ];
+    mainProgram = "lemmeknow";
   };
 }
diff --git a/pkgs/tools/misc/lemmy-help/default.nix b/pkgs/tools/misc/lemmy-help/default.nix
index 7cb5e2ddfd234..8c0f7110226e5 100644
--- a/pkgs/tools/misc/lemmy-help/default.nix
+++ b/pkgs/tools/misc/lemmy-help/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/numToStr/lemmy-help/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lemmy-help";
   };
 }
diff --git a/pkgs/tools/misc/lerpn/default.nix b/pkgs/tools/misc/lerpn/default.nix
index 24ada72baa555..8e35a5b0b1079 100644
--- a/pkgs/tools/misc/lerpn/default.nix
+++ b/pkgs/tools/misc/lerpn/default.nix
@@ -29,5 +29,6 @@ python3.pkgs.buildPythonApplication {
     description = "Curses RPN calculator written in straight Python";
     maintainers = with maintainers; [ ckie ];
     license = licenses.gpl3Plus;
+    mainProgram = "lerpn";
   };
 }
diff --git a/pkgs/tools/misc/lesspipe/default.nix b/pkgs/tools/misc/lesspipe/default.nix
index 37b0edcf982b0..c7978485c7e47 100644
--- a/pkgs/tools/misc/lesspipe/default.nix
+++ b/pkgs/tools/misc/lesspipe/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, perl, procps, file, gnused, bash }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, perl, procps, file, gnused, bash, binutils }:
 
 stdenv.mkDerivation rec {
   pname = "lesspipe";
-  version = "2.08";
+  version = "2.11";
 
   src = fetchFromGitHub {
     owner = "wofr06";
     repo = "lesspipe";
     rev = "v${version}";
-    sha256 = "sha256-jN8x5qd9zRr0bpjGYOWfFbiXbWSDDQ8CLZJo79fnegI=";
+    hash = "sha256-jJrKiRdrargk0JzcPWxBZGyOpMfTIONHG8HNRecazVo=";
   };
 
   nativeBuildInputs = [ perl makeWrapper ];
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     for f in lesspipe.sh lesscomplete; do
-      wrapProgram "$out/bin/$f" --prefix-each PATH : "${lib.makeBinPath [ file gnused procps ]}"
+      wrapProgram "$out/bin/$f" --prefix-each PATH : "${lib.makeBinPath [ binutils file gnused procps ]}"
     done
   '';
 
diff --git a/pkgs/tools/misc/libbitcoin/fix-gcc11-compilation.patch b/pkgs/tools/misc/libbitcoin/fix-gcc11-compilation.patch
deleted file mode 100644
index fe1b9777275e2..0000000000000
--- a/pkgs/tools/misc/libbitcoin/fix-gcc11-compilation.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/include/bitcoin/bitcoin/wallet/dictionary.hpp b/include/bitcoin/bitcoin/wallet/dictionary.hpp
-index 632f1afc..63a51764 100644
---- a/include/bitcoin/bitcoin/wallet/dictionary.hpp
-+++ b/include/bitcoin/bitcoin/wallet/dictionary.hpp
-@@ -19,6 +19,7 @@
- #ifndef LIBBITCOIN_WALLET_DICTIONARY_HPP
- #define LIBBITCOIN_WALLET_DICTIONARY_HPP
- 
-+#include <cstddef>
- #include <array>
- #include <vector>
- #include <bitcoin/bitcoin/compat.hpp>
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix b/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix
index a940fba29676b..266ef9accca6b 100644
--- a/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix
@@ -1,18 +1,15 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
 , boost, libbitcoin, libbitcoin-protocol }:
 
-let
+stdenv.mkDerivation rec {
   pname = "libbitcoin-client";
-  version = "3.5.0";
-
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "libbitcoin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0a9c00f1pfi8wczbfd1djkvr7di3iw1ynak6if910w01dkhbm6v4";
+    hash = "sha256-5qbxixaozHFsOcBxnuGEfNJyGL8UaYCOPwPakfc0bAg=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix b/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix
index 7d00e4c09adda..48c8e9a4f7213 100644
--- a/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix
@@ -1,18 +1,15 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
 , boost, libbitcoin-client, libbitcoin-network }:
 
-let
+stdenv.mkDerivation rec {
   pname = "libbitcoin-explorer";
-  version = "3.5.0";
-
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "libbitcoin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "033nrdzrha4kypxk4biixjsbjd16r4m2mjvpid4gdj5hzbbj1p93";
+    hash = "sha256-NUAtjrfRbZg5ewQo4PZ1HEoG8GRrsPcNb78UYMHqdyo=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix b/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
index 5d330ee3cacc8..ee9cb1da687f0 100644
--- a/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
@@ -1,18 +1,15 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
 , boost, libbitcoin, zeromq }:
 
-let
+stdenv.mkDerivation rec {
   pname = "libbitcoin-network";
-  version = "3.5.0";
-
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "libbitcoin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vqg3i40kwmbys4lyp82xvg2nx3ik4qhc66gcm8k66a86wpj9ji6";
+    hash = "sha256-zDT92bvA779mzTodpKugCoxapB6vY2jCMSGZEkJLTXQ=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix b/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
index 06f6546e964d8..57e55400aa273 100644
--- a/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
@@ -1,18 +1,15 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
 , boost, libbitcoin, secp256k1, zeromq }:
 
-let
+stdenv.mkDerivation rec {
   pname = "libbitcoin-protocol";
-  version = "3.5.0";
-
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "libbitcoin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ln9r04hlnc7qmv17rakyhrnzw1a541pg5jc1sw3ccn90a5x6cfv";
+    hash = "sha256-xf0qQQnZ8h6ent1sgkVTo55+9drZM8Zbx0deYZnLBho=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin.nix b/pkgs/tools/misc/libbitcoin/libbitcoin.nix
index 347d6eae7ce42..70a0f9bff6ef6 100644
--- a/pkgs/tools/misc/libbitcoin/libbitcoin.nix
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libbitcoin";
-  version = "3.6.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rppyp3zpb6ymwangjpblwf6qh4y3d1hczrjx8aavmrq7hznnrhq";
+    hash = "sha256-7fxj2hnuGRUS4QSQ1w0s3looe9pMvE2U50/yhNyBMf0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -18,8 +18,6 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  patches = [ ./fix-gcc11-compilation.patch ];
-
   configureFlags = [
     "--with-tests=no"
     "--with-boost=${boost.dev}"
diff --git a/pkgs/tools/misc/libcpuid/default.nix b/pkgs/tools/misc/libcpuid/default.nix
deleted file mode 100644
index cb3de44757261..0000000000000
--- a/pkgs/tools/misc/libcpuid/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
-
-stdenv.mkDerivation rec {
-  pname = "libcpuid";
-  version = "0.6.3";
-
-  src = fetchFromGitHub {
-    owner = "anrieff";
-    repo = "libcpuid";
-    rev = "v${version}";
-    sha256 = "sha256-lhoHqdS5tke462guORg+PURjVmjAgviT5KJHp6PyvUA=";
-  };
-
-  patches = [
-    # Fixes cross-compilation to NetBSD
-    # https://github.com/anrieff/libcpuid/pull/190
-    (fetchpatch {
-      name = "pass-pthread-to-linker.patch";
-      url = "https://github.com/anrieff/libcpuid/commit/c28436e7239f28dab0e2a3bcdbce95f41e1363b1.patch";
-      sha256 = "sha256-J2mB010JcE4si0rERjcrL9kJgbWHKaQCIZPDkmRvcq4=";
-    })
-  ];
-
-  nativeBuildInputs = [ autoreconfHook ];
-
-  meta = with lib; {
-    homepage = "https://libcpuid.sourceforge.net/";
-    description = "A small C library for x86 CPU detection and feature extraction";
-    changelog = "https://raw.githubusercontent.com/anrieff/libcpuid/master/ChangeLog";
-    license = licenses.bsd2;
-    maintainers = with maintainers; [ orivej artuuge ];
-    platforms = platforms.x86;
-  };
-}
diff --git a/pkgs/tools/misc/libgen-cli/default.nix b/pkgs/tools/misc/libgen-cli/default.nix
index eb01d43344752..45192447bdca7 100644
--- a/pkgs/tools/misc/libgen-cli/default.nix
+++ b/pkgs/tools/misc/libgen-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "libgen-cli";
-  version = "1.0.11";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "ciehanski";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EscXn+di1BXJSoc1Eml654/ieRuIOfryd5b7f+vcAOA=";
+    sha256 = "sha256-EicXsxAvVe/umpcOn4dVlTexaAol1qYPg/h5MU5dysM=";
   };
 
-  vendorHash = "sha256-WAGFZ2HKnhS5gStJW8orF45vsrHaTmUomzbHqFuAsFE=";
+  vendorHash = "sha256-q1EPjnVq382gEKVmGKWYgKRcU6Y0rm1Et5ExzOmyeo4=";
 
   doCheck = false;
 
@@ -39,5 +39,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ zaninime ];
+    mainProgram = "libgen-cli";
   };
 }
diff --git a/pkgs/tools/misc/librespeed-cli/default.nix b/pkgs/tools/misc/librespeed-cli/default.nix
index 175deef985e30..8751d9ab43d4d 100644
--- a/pkgs/tools/misc/librespeed-cli/default.nix
+++ b/pkgs/tools/misc/librespeed-cli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/librespeed/speedtest-cli";
     license = with licenses; [ lgpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "speedtest-cli";
   };
 }
diff --git a/pkgs/tools/misc/lice/default.nix b/pkgs/tools/misc/lice/default.nix
index 59b2cef38ad0e..f873907c51efd 100644
--- a/pkgs/tools/misc/lice/default.nix
+++ b/pkgs/tools/misc/lice/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ swflint ];
     platforms = platforms.unix;
+    mainProgram = "lice";
   };
 
 }
diff --git a/pkgs/tools/misc/license-generator/default.nix b/pkgs/tools/misc/license-generator/default.nix
index 5662b356f34eb..2aa2235e7c3cc 100644
--- a/pkgs/tools/misc/license-generator/default.nix
+++ b/pkgs/tools/misc/license-generator/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/azu/license-generator";
     license = licenses.mit;
     maintainers = with maintainers; [ loicreynier ];
+    mainProgram = "license-generator";
   };
 }
diff --git a/pkgs/tools/misc/lighthouse-steamvr/default.nix b/pkgs/tools/misc/lighthouse-steamvr/default.nix
index 5328c14cdbfe5..4ddd33ff18722 100644
--- a/pkgs/tools/misc/lighthouse-steamvr/default.nix
+++ b/pkgs/tools/misc/lighthouse-steamvr/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ShayBox/Lighthouse";
     license = licenses.mit;
     maintainers = with maintainers; [ expipiplus1 bddvlpr ];
+    mainProgram = "lighthouse";
   };
 }
diff --git a/pkgs/tools/misc/limitcpu/default.nix b/pkgs/tools/misc/limitcpu/default.nix
index e9649b4be6594..830eed9d94ae3 100644
--- a/pkgs/tools/misc/limitcpu/default.nix
+++ b/pkgs/tools/misc/limitcpu/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux ++ freebsd;
     license = licenses.gpl2;
     maintainers = [maintainers.rycee];
+    mainProgram = "cpulimit";
   };
 }
diff --git a/pkgs/tools/misc/lineselect/default.nix b/pkgs/tools/misc/lineselect/default.nix
index ff3aeedcf93d9..a99908b2e70ef 100644
--- a/pkgs/tools/misc/lineselect/default.nix
+++ b/pkgs/tools/misc/lineselect/default.nix
@@ -33,5 +33,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/chfritz/lineselect";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lineselect";
   };
 }
diff --git a/pkgs/tools/misc/lipl/default.nix b/pkgs/tools/misc/lipl/default.nix
index 2ce54451bb8db..1f6b8437af301 100644
--- a/pkgs/tools/misc/lipl/default.nix
+++ b/pkgs/tools/misc/lipl/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/yxdunc/lipl";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lipl";
   };
 }
diff --git a/pkgs/tools/misc/livedl/default.nix b/pkgs/tools/misc/livedl/default.nix
index f5c68be68d604..6db5006959339 100644
--- a/pkgs/tools/misc/livedl/default.nix
+++ b/pkgs/tools/misc/livedl/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ wakira ];
     platforms = platforms.linux ++ platforms.darwin;
     broken = stdenv.isDarwin; # build fails with go > 1.17
+    mainProgram = "livedl";
   };
 }
diff --git a/pkgs/tools/misc/lnav/default.nix b/pkgs/tools/misc/lnav/default.nix
index 5f116711aa800..ffaea930b5d33 100644
--- a/pkgs/tools/misc/lnav/default.nix
+++ b/pkgs/tools/misc/lnav/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ dochang ];
     platforms = platforms.unix;
+    mainProgram = "lnav";
   };
 
 }
diff --git a/pkgs/tools/misc/lnch/default.nix b/pkgs/tools/misc/lnch/default.nix
index 70d52d2ea8bd5..30759303efbd6 100644
--- a/pkgs/tools/misc/lnch/default.nix
+++ b/pkgs/tools/misc/lnch/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/oem/lnch";
     description = "Launches a process and moves it out of the process group";
     license = licenses.mit;
+    mainProgram = "lnch";
   };
 }
diff --git a/pkgs/tools/misc/loadlibrary/default.nix b/pkgs/tools/misc/loadlibrary/default.nix
index a299a85b6b822..f919facf21b42 100644
--- a/pkgs/tools/misc/loadlibrary/default.nix
+++ b/pkgs/tools/misc/loadlibrary/default.nix
@@ -27,5 +27,6 @@ stdenv_32bit.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.eleanor ];
     license = licenses.gpl2;
+    mainProgram = "mpclient";
   };
 }
diff --git a/pkgs/tools/misc/locate-dominating-file/default.nix b/pkgs/tools/misc/locate-dominating-file/default.nix
index 7e0d0664b563e..6d599440a8e3a 100644
--- a/pkgs/tools/misc/locate-dominating-file/default.nix
+++ b/pkgs/tools/misc/locate-dominating-file/default.nix
@@ -63,5 +63,6 @@ resholve.mkDerivation {
     license = licenses.mit;
     maintainers = [ maintainers.roman ];
     platforms = platforms.all;
+    mainProgram = "locate-dominating-file";
   };
 }
diff --git a/pkgs/tools/misc/logstash/7.x.nix b/pkgs/tools/misc/logstash/7.x.nix
index f7c096249b0f8..c7e21e0521d4b 100644
--- a/pkgs/tools/misc/logstash/7.x.nix
+++ b/pkgs/tools/misc/logstash/7.x.nix
@@ -16,14 +16,14 @@ let
   hashes =
     if enableUnfree
     then {
-      x86_64-linux  = "sha512-U5G/7wnEA6NlUYo6jo8HW7eXSxNwlbPH/SoBc8+m29SnRRFwo2V6/vPmpGjpCjjW56W2aXmYePk4n6RP+P7gJg==";
-      x86_64-darwin = "sha512-jjUWuCMppHUFNY+36rSGyjlCOtxEofBhw19roiWsLzczDyr8PjfrZStlNuXKNdd6wkhd7HQ/qNmd1PzGC928IQ==";
-      aarch64-linux = "sha512-BvkaWqv/D4akFQ3mwf0C+20KRLBKxmBZfLTINWzx0iVSqqd4mdtCpJpeNbPK1zvl17rYys+0sX5iKUkynN95Gg==";
+      x86_64-linux  = "sha512-ze0hJxUHCN52bOxUs5upDj64tIE58P2BTow2kaCo6HreRiF9rfTTzNkNr/hCmEgE+/oFbgSEuOQLz+6G373RDQ==";
+      x86_64-darwin = "sha512-FOFd8d+4UddSGorjuUWW/JbQ5fQH4LU1f1HJLmdbfnb8Q5L4GEveb2LmWNILU8/a85V4HGmD6lL8mCJqH9CULQ==";
+      aarch64-linux = "sha512-giYqW88/6iT3haXzJVn/+b7uxjYhHq4GERmiq3tMIvjxDyu7B6g+X7JneaTYxhpNdn6gOD/hfXgNv+hFRq6lgg==";
     }
     else {
-      x86_64-linux  = "sha512-uiLExBT0dRU4e7KMxHYSvqWK/5fEB/JXGGPoMXSivvJzYn9l3VMe2DPkBmjHkUSlAdScPsaRwbHE2PsMsSSwUg==";
-      x86_64-darwin = "sha512-gal8oGwIb6wz8y6QEk9knV3c4J1kkCECD0NLdbW/9jBl+dyKome3LO3VgQibwk2xISL3Be+Laaz49Z8Rdxy/dw==";
-      aarch64-linux = "sha512-ZK20GnobFLIdRjszPz9EcKTbkUDiiNN5v3lRDIMJHVyifpl5YddXzuIym4XRbabaihA4oArqux50q4+VuEGtCg==";
+      x86_64-linux  = "sha512-OC9gx76k+RMdjqcDkrJCNbPYSQameyddaYMxUIB0foVxCmo6UvbdcwZGXRLPPn95in8rYOCjvPoBkmupiQw9xQ==";
+      x86_64-darwin = "sha512-1OEfEED/jjlT3Fd095Y5VYiWKnovytI3UYCCy1Rs3tEvkZPHYwqIQHfMQYeAvGgUci37ADwEDu8xrSQULHToLw==";
+      aarch64-linux = "sha512-QWW0AXOMNIXThxpUiRomvINm+917MvGrSDndrEw11IYYuvi0d0dckJiRytfnBbBNoOKpVhB68uOmfjIcZBNpWQ==";
     };
   this = stdenv.mkDerivation rec {
     version = elk7Version;
@@ -74,7 +74,7 @@ let
       ];
       license = if enableUnfree then licenses.elastic20 else licenses.asl20;
       platforms = platforms.unix;
-      maintainers = with maintainers; [ wjlroe offline basvandijk ];
+      maintainers = with maintainers; [ offline basvandijk ];
     };
     passthru.tests =
       lib.optionalAttrs (config.allowUnfree && enableUnfree) (
diff --git a/pkgs/tools/misc/logtop/default.nix b/pkgs/tools/misc/logtop/default.nix
index 0aa99fd18aa75..ff0b3cdac0003 100644
--- a/pkgs/tools/misc/logtop/default.nix
+++ b/pkgs/tools/misc/logtop/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/JulienPalard/logtop";
     platforms = platforms.unix;
     maintainers = [ maintainers.starcraft66 ];
+    mainProgram = "logtop";
   };
 }
diff --git a/pkgs/tools/misc/lolcat/default.nix b/pkgs/tools/misc/lolcat/default.nix
index f62be23108eb6..a10c81416053d 100644
--- a/pkgs/tools/misc/lolcat/default.nix
+++ b/pkgs/tools/misc/lolcat/default.nix
@@ -12,5 +12,6 @@ bundlerApp {
     homepage    = "https://github.com/busyloop/lolcat";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ StillerHarpo manveru nicknovitski ];
+    mainProgram = "lolcat";
   };
 }
diff --git a/pkgs/tools/misc/lorri/default.nix b/pkgs/tools/misc/lorri/default.nix
index aabc9d0e773fa..a2cd0ef600d15 100644
--- a/pkgs/tools/misc/lorri/default.nix
+++ b/pkgs/tools/misc/lorri/default.nix
@@ -68,5 +68,6 @@ in (rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/target/lorri";
     license = licenses.asl20;
     maintainers = with maintainers; [ grahamc Profpatsch ];
+    mainProgram = "lorri";
   };
 })
diff --git a/pkgs/tools/misc/lottieconverter/default.nix b/pkgs/tools/misc/lottieconverter/default.nix
index e7ee6e9b74f2e..557ac293aaa26 100644
--- a/pkgs/tools/misc/lottieconverter/default.nix
+++ b/pkgs/tools/misc/lottieconverter/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = with maintainers; [ CRTified nickcao ];
+    mainProgram = "lottieconverter";
   };
 })
diff --git a/pkgs/tools/misc/lrzsz/default.nix b/pkgs/tools/misc/lrzsz/default.nix
index e097ab12f082e..867e492b33e27 100644
--- a/pkgs/tools/misc/lrzsz/default.nix
+++ b/pkgs/tools/misc/lrzsz/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--program-transform-name=s/^l//" ];
 
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration -Wno-error=implicit-int";
+
   meta = with lib; {
     homepage = "https://ohse.de/uwe/software/lrzsz.html";
     description = "Communication package providing the XMODEM, YMODEM ZMODEM file transfer protocols";
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index 83d7580a7eed7..99dee32424fa9 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -48,5 +48,6 @@ rustPlatform.buildRustPackage rec {
     description = "The next gen ls command";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam zowoq SuperSandro2000 ];
+    mainProgram = "lsd";
   };
 }
diff --git a/pkgs/tools/misc/ltunify/default.nix b/pkgs/tools/misc/ltunify/default.nix
index df425162d8479..b85e3da4a5c0d 100644
--- a/pkgs/tools/misc/ltunify/default.nix
+++ b/pkgs/tools/misc/ltunify/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
+    mainProgram = "ltunify";
   };
 }
diff --git a/pkgs/tools/misc/lwc/default.nix b/pkgs/tools/misc/lwc/default.nix
index f4c2e57eef488..77e6d5033f31e 100644
--- a/pkgs/tools/misc/lwc/default.nix
+++ b/pkgs/tools/misc/lwc/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/timdp/lwc";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lwc";
   };
 }
diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix
index 0bde6b5baf547..3da4d9b07fbb3 100644
--- a/pkgs/tools/misc/macchina/default.nix
+++ b/pkgs/tools/misc/macchina/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Macchina-CLI/macchina/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ _414owen figsoda ];
+    mainProgram = "macchina";
   };
 }
diff --git a/pkgs/tools/misc/mailman-rss/default.nix b/pkgs/tools/misc/mailman-rss/default.nix
index 93a3d1e16ac20..d71ee8795528c 100644
--- a/pkgs/tools/misc/mailman-rss/default.nix
+++ b/pkgs/tools/misc/mailman-rss/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/kyamagu/mailman-rss";
     license = licenses.mit;
     maintainers = with maintainers; [ samueldr ];
+    mainProgram = "mailman-rss";
   };
 }
diff --git a/pkgs/tools/misc/makebootfat/default.nix b/pkgs/tools/misc/makebootfat/default.nix
index d55b5727d00cb..b2e93bb140ad6 100644
--- a/pkgs/tools/misc/makebootfat/default.nix
+++ b/pkgs/tools/misc/makebootfat/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.ehmry ];
     platforms = platforms.linux;
+    mainProgram = "makebootfat";
   };
 }
diff --git a/pkgs/tools/misc/maker-panel/default.nix b/pkgs/tools/misc/maker-panel/default.nix
index 96c4d6ad61c6a..cbe618d406fe0 100644
--- a/pkgs/tools/misc/maker-panel/default.nix
+++ b/pkgs/tools/misc/maker-panel/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "Make mechanical PCBs by combining shapes together.";
+    description = "Make mechanical PCBs by combining shapes together";
     homepage = "https://github.com/twitchyliquid64/maker-panel";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ twitchyliquid64 ];
diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix
index b52628373594f..e5829a56a8b43 100644
--- a/pkgs/tools/misc/man-db/default.nix
+++ b/pkgs/tools/misc/man-db/default.nix
@@ -1,7 +1,6 @@
 { buildPackages
 , db
 , fetchurl
-, fetchpatch
 , groff
 , gzip
 , lib
@@ -17,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "man-db";
-  version = "2.11.2";
+  version = "2.12.0";
 
   src = fetchurl {
     url = "mirror://savannah/man-db/man-db-${version}.tar.xz";
-    hash = "sha256-z/oe5Ol0vnhkbEZQjm3S8358WJqqspOMwQZPBY/vn40=";
+    hash = "sha256-QVpihKInZK0i/w9mcQ2FO+d5DdRRzXFDbj0lx02ZapU=";
   };
 
   outputs = [ "out" "doc" ];
@@ -34,32 +33,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./systemwide-man-db-conf.patch
-    # Remove the patches below when updating to the next man-db release.
-    # Patches addressing https://gitlab.com/man-db/man-db/-/issues/25 ...
-    (fetchpatch {
-      name = "update-warning-regex";
-      url = "https://gitlab.com/man-db/man-db/-/commit/b12ffb9df7.patch";
-      hash = "sha256-F+whRppaMZwgmGPKTXu2j1vZMNAm3vGNzNZcz9pg8Jc=";
-    })
-    (fetchpatch {
-      name = "fix-test-failures-when-iconv-not-available";
-      url = "https://gitlab.com/man-db/man-db/-/commit/26f46a60e5.patch";
-      hash = "sha256-W1a6GkYn4J3py7GLZc37xmQBQR18Xvcvj4fJoZ21+0k=";
-      # The following files are excluded from the patch as they fail to apply
-      # cleanly on the 2.11.2 sources and are deemed irrelevant for building man-db.
-      excludes = [ "NEWS.md" ];
-    })
-    # ... and https://gitlab.com/man-db/man-db/-/issues/26.
-    (fetchpatch {
-      name = "improve-lexgrog-portability";
-      url = "https://gitlab.com/man-db/man-db/-/commit/bbf7701c4f.patch";
-      hash = "sha256-QLOVgV0S2NxxTBObD8bJFR1QDH0p2RGMJXLVNagfddc=";
-    })
-    (fetchpatch {
-      name = "avoid-translation-fallout-from-lexgrog-fix";
-      url = "https://gitlab.com/man-db/man-db/-/commit/043c3cb83c.patch";
-      hash = "sha256-w12/LOGN9gO85zmqX7zookA55w3WUxBMJgWInpH5wms=";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/misc/mandown/default.nix b/pkgs/tools/misc/mandown/default.nix
index 4851c764d0eb0..308605e1172fe 100644
--- a/pkgs/tools/misc/mandown/default.nix
+++ b/pkgs/tools/misc/mandown/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/kornelski/mandown";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ ];
+    mainProgram = "mandown";
   };
 }
diff --git a/pkgs/tools/misc/manga-cli/default.nix b/pkgs/tools/misc/manga-cli/default.nix
index 3f57b529e51ad..65d45cf60e3c0 100644
--- a/pkgs/tools/misc/manga-cli/default.nix
+++ b/pkgs/tools/misc/manga-cli/default.nix
@@ -35,5 +35,6 @@ stdenvNoCC.mkDerivation {
     description = "Bash script for reading mangas via the terminal by scraping manganato";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ baitinq ];
+    mainProgram = "manga-cli";
   };
 }
diff --git a/pkgs/tools/misc/mapcidr/default.nix b/pkgs/tools/misc/mapcidr/default.nix
index 00abf2e563051..6bb2f43677b66 100644
--- a/pkgs/tools/misc/mapcidr/default.nix
+++ b/pkgs/tools/misc/mapcidr/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "mapcidr";
-  version = "1.1.11";
+  version = "1.1.16";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-gi1saAav8VrlssXW8ezLAze2kp1hnATd3RCIZUspEcM=";
+    hash = "sha256-O0HVlrLOz4+hxhf/BTSZs0qDCbYokbzmg5KbzUD1UHg=";
   };
 
-  vendorHash = "sha256-9mX+EUeLp4zpVHAzdlmrr31vjWjG1VjHwSDwbTxMufM=";
+  vendorHash = "sha256-j/3Z2KxbybJoE6/PXkwMLivzmTnZSi7tgO8IQKCoaEQ=";
 
   modRoot = ".";
   subPackages = [
@@ -31,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/projectdiscovery/mapcidr/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ hanemile ];
+    mainProgram = "mapcidr";
   };
 }
diff --git a/pkgs/tools/misc/markdown-anki-decks/default.nix b/pkgs/tools/misc/markdown-anki-decks/default.nix
index 17e3bf860fcab..082bdf5a5f98a 100644
--- a/pkgs/tools/misc/markdown-anki-decks/default.nix
+++ b/pkgs/tools/misc/markdown-anki-decks/default.nix
@@ -43,5 +43,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "mdankideck";
   };
 }
diff --git a/pkgs/tools/misc/marlin-calc/default.nix b/pkgs/tools/misc/marlin-calc/default.nix
index 38a4f4ffb3589..dc8ff42210099 100644
--- a/pkgs/tools/misc/marlin-calc/default.nix
+++ b/pkgs/tools/misc/marlin-calc/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.unix;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/marlin-calc.x86_64-darwin
+    mainProgram = "marlin-calc";
   };
 }
diff --git a/pkgs/tools/misc/massren/default.nix b/pkgs/tools/misc/massren/default.nix
index 885ab1b0176a5..4ca386c1374a7 100644
--- a/pkgs/tools/misc/massren/default.nix
+++ b/pkgs/tools/misc/massren/default.nix
@@ -40,5 +40,6 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/laurent22/massren";
     maintainers = with maintainers; [ andrew-d ];
+    mainProgram = "massren";
   };
 }
diff --git a/pkgs/tools/misc/mastotool/default.nix b/pkgs/tools/misc/mastotool/default.nix
index 3fb0c0034c351..a75f97c4a6ece 100644
--- a/pkgs/tools/misc/mastotool/default.nix
+++ b/pkgs/tools/misc/mastotool/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     changelog = "https://github.com/muesli/mastotool/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "mastotool";
   };
 }
diff --git a/pkgs/tools/misc/mathpix-snipping-tool/default.nix b/pkgs/tools/misc/mathpix-snipping-tool/default.nix
index f6015f3928d6c..2a3e45dd6367b 100644
--- a/pkgs/tools/misc/mathpix-snipping-tool/default.nix
+++ b/pkgs/tools/misc/mathpix-snipping-tool/default.nix
@@ -22,10 +22,11 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "OCR tool to convert pictures to LaTeX.";
+    description = "OCR tool to convert pictures to LaTeX";
     homepage = "https://mathpix.com/";
     license = licenses.unfree;
     maintainers = [ maintainers.hiro98 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "mathpix-snipping-tool";
   };
 }
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index 3e23d042f916a..45510dafa8cb9 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mbuffer";
-  version = "20230301";
+  version = "20240107";
 
   src = fetchurl {
     url = "http://www.maier-komor.de/software/mbuffer/mbuffer-${version}.tgz";
-    sha256 = "sha256-U/diCd7AD6soPcC8UyKw5jRrCdou27ZDWi1Kj0glLQE=";
+    sha256 = "sha256-14YG4X3ZAmpTI21ezAenAgLSZC0X49kHRxzbWKBFiBQ=";
   };
 
   buildInputs = [
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tokudan ];
     platforms = platforms.linux; # Maybe other non-darwin Unix
+    mainProgram = "mbuffer";
   };
 }
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index 179dbe1dec3c6..675639a032941 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.8.1";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    hash = "sha256-9muBKJXsXiSxSmLRygGATEbwpiz6B8oTFQIkVMJMWAk=";
+    hash = "sha256-beoXLTy3XikdZBS0Lh3cugHflNJ51PbqsCE3xtCHpj0=";
   };
 
   postPatch = ''
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     substituteInPlace mcfly.fish --replace '(command which mcfly)'  '${placeholder "out"}/bin/mcfly'
   '';
 
-  cargoHash = "sha256-LhIAJ3JI7cp+vzEH5vthefgExPORF6Xnjj3cQkIkhSA=";
+  cargoHash = "sha256-wWYpDU6oXT+sDCzX8VWJ6GfNPOi7T02LK0JKcWHFGi8=";
 
   meta = with lib; {
     homepage = "https://github.com/cantino/mcfly";
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/cantino/mcfly/raw/v${version}/CHANGELOG.txt";
     license = licenses.mit;
     maintainers = [ maintainers.melkor333 ];
+    mainProgram = "mcfly";
   };
 }
diff --git a/pkgs/tools/misc/mcrypt/default.nix b/pkgs/tools/misc/mcrypt/default.nix
index ef5b8e56fa0a9..c5013eb46a045 100644
--- a/pkgs/tools/misc/mcrypt/default.nix
+++ b/pkgs/tools/misc/mcrypt/default.nix
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libmcrypt libmhash ];
 
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration";
+  };
+
   meta = {
     description = "Replacement for old UNIX crypt(1)";
     longDescription = ''
diff --git a/pkgs/tools/misc/mdbtools/default.nix b/pkgs/tools/misc/mdbtools/default.nix
index 95d8f9e3bb7b9..327b58d8d78b9 100644
--- a/pkgs/tools/misc/mdbtools/default.nix
+++ b/pkgs/tools/misc/mdbtools/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-scrollkeeper" ];
 
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=unused-but-set-variable";
+
   nativeBuildInputs = [
     pkg-config bison flex autoreconfHook txt2man which
   ];
diff --git a/pkgs/tools/misc/mdr/default.nix b/pkgs/tools/misc/mdr/default.nix
index 13af7192cf502..b33c51c99ca04 100644
--- a/pkgs/tools/misc/mdr/default.nix
+++ b/pkgs/tools/misc/mdr/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/MichaelMure/mdr";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "mdr";
   };
 }
diff --git a/pkgs/tools/misc/mdslides/default.nix b/pkgs/tools/misc/mdslides/default.nix
index d9265cd7863bf..f329d02237a0f 100644
--- a/pkgs/tools/misc/mdslides/default.nix
+++ b/pkgs/tools/misc/mdslides/default.nix
@@ -18,5 +18,6 @@ python3Packages.buildPythonApplication rec {
     homepage    = "https://github.com/dadoomer/markdown-slides";
     license     = licenses.mit;
     maintainers = [ maintainers.qjoly ];
+    mainProgram = "mdslides";
   };
 }
diff --git a/pkgs/tools/misc/me_cleaner/default.nix b/pkgs/tools/misc/me_cleaner/default.nix
index 4872c349b20da..ec742b11c98ef 100644
--- a/pkgs/tools/misc/me_cleaner/default.nix
+++ b/pkgs/tools/misc/me_cleaner/default.nix
@@ -20,5 +20,6 @@ python3.pkgs.buildPythonPackage rec {
     '';
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "me_cleaner.py";
   };
 }
diff --git a/pkgs/tools/misc/megacli/default.nix b/pkgs/tools/misc/megacli/default.nix
index e2eef587f27c5..b198b030f3ea3 100644
--- a/pkgs/tools/misc/megacli/default.nix
+++ b/pkgs/tools/misc/megacli/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
+    mainProgram = "MegaCli64";
   };
 }
diff --git a/pkgs/tools/misc/melody/default.nix b/pkgs/tools/misc/melody/default.nix
index 7f3f7f29f2145..b4284a63eec15 100644
--- a/pkgs/tools/misc/melody/default.nix
+++ b/pkgs/tools/misc/melody/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/yoav-lavi/melody";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "melody";
   };
 }
diff --git a/pkgs/tools/misc/memtest86+/default.nix b/pkgs/tools/misc/memtest86+/default.nix
index 53f9efac5fc47..297ef5dff0413 100644
--- a/pkgs/tools/misc/memtest86+/default.nix
+++ b/pkgs/tools/misc/memtest86+/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "memtest86+";
-  version = "6.20";
+  version = "7.00";
 
   src = fetchFromGitHub {
     owner = "memtest86plus";
     repo = "memtest86plus";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-JzQJrAnPsa3GKNdy1PidOAZk7IQvRBi/YtmK2O9rWfM=";
+    hash = "sha256-DVYiE9yi20IR2AZs8bya1h9vK4si7nKdg9Nqef4WTrw=";
   };
 
   # Binaries are booted directly by BIOS/UEFI or bootloader
diff --git a/pkgs/tools/misc/mermaid-filter/default.nix b/pkgs/tools/misc/mermaid-filter/default.nix
index fd9d537dec4eb..3ed315784569d 100644
--- a/pkgs/tools/misc/mermaid-filter/default.nix
+++ b/pkgs/tools/misc/mermaid-filter/default.nix
@@ -7,16 +7,16 @@
 
 buildNpmPackage rec {
   pname = "mermaid-filter";
-  version = "1.4.6";
+  version = "1.4.7";
 
   src = fetchFromGitHub {
     owner = "raghur";
     repo = "mermaid-filter";
     rev = "v${version}";
-    hash = "sha256-5MKiUeiqEeWicOIdqOJ22x3VswYKiK4RSxZRzJntO6M=";
+    hash = "sha256-GG2RWr5nVe6PCcTEJLmPyKL2j7ggSyNnHZAffNvPukg=";
   };
 
-  npmDepsHash = "sha256-pnylo3dPgj7aD5czTWSV+uP5Cj8rVAsjZYoJ/WPRuuc=";
+  npmDepsHash = "sha256-Hj4h8xTch2Z3ByUhxzPhbCTSXNOXuTXC6XUrBkRvQ/U=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -35,5 +35,6 @@ buildNpmPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ ners ];
     platforms = chromium.meta.platforms;
+    mainProgram = "mermaid-filter";
   };
 }
diff --git a/pkgs/tools/misc/mimeo/default.nix b/pkgs/tools/misc/mimeo/default.nix
index 6c221ac75798b..49a86807017f2 100644
--- a/pkgs/tools/misc/mimeo/default.nix
+++ b/pkgs/tools/misc/mimeo/default.nix
@@ -35,5 +35,6 @@ in python3Packages.buildPythonApplication {
     license = [ licenses.gpl2Only ];
     maintainers = [ maintainers.rycee ];
     platforms = platforms.unix;
+    mainProgram = "mimeo";
   };
 }
diff --git a/pkgs/tools/misc/minicom/default.nix b/pkgs/tools/misc/minicom/default.nix
index 4da38a1a0c69c..361909ebddf29 100644
--- a/pkgs/tools/misc/minicom/default.nix
+++ b/pkgs/tools/misc/minicom/default.nix
@@ -1,19 +1,28 @@
-{ lib, stdenv, fetchFromGitLab, autoreconfHook, makeWrapper, pkg-config
-, lrzsz, ncurses, libiconv }:
+{ lib
+, stdenv
+, fetchFromGitLab
+, autoreconfHook
+, makeWrapper
+, pkg-config
+, lrzsz
+, ncurses
+, libiconv
+, IOKit
+}:
 
 stdenv.mkDerivation rec {
   pname = "minicom";
-  version = "2.8";
+  version = "2.9";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "minicom-team";
     repo = pname;
     rev = version;
-    sha256 = "165zhi88swvkhl3v17223r0f27hb3y0qzrgl51jkk0my2m4xscgg";
+    sha256 = "sha256-+fKvHrApDXm94LItXv+xSDIE5zD7rTY5IeNSuzQglpg=";
   };
 
-  buildInputs = [ ncurses ] ++ lib.optional stdenv.isDarwin libiconv;
+  buildInputs = [ ncurses ] ++ lib.optionals stdenv.isDarwin [ libiconv IOKit ];
 
   nativeBuildInputs = [ autoreconfHook makeWrapper pkg-config ];
 
diff --git a/pkgs/tools/misc/minipro/default.nix b/pkgs/tools/misc/minipro/default.nix
index 305f2a8857908..870c4706f8820 100644
--- a/pkgs/tools/misc/minipro/default.nix
+++ b/pkgs/tools/misc/minipro/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     description = "An open source program for controlling the MiniPRO TL866xx series of chip programmers";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.bmwalters ];
+    mainProgram = "minipro";
   };
 }
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index 141d32ec80ab9..7ba0165b0e017 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.24.0";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    hash = "sha256-dTJK+M7kccyqNWAz/cYoPTNM3pew7cT21hZhjCf2jDA=";
+    hash = "sha256-f+k7ONX9bDrkyIhFxxaJvZYH2WBxYwCssbfM2fBPtRk=";
   };
 
-  cargoHash = "sha256-lMqoBQRK0Wop1sAdydTVYFR3pzwtQDluDVXFJ4v+GHM=";
+  cargoHash = "sha256-Omxd0ZgvtEiciFnKWkYupyts2QT9LUTXxaTdfu0Jnx8=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   nativeCheckInputs = [
@@ -36,6 +37,8 @@ rustPlatform.buildRustPackage rec {
     "--skip=bind_ipv4_ipv6::case_2"
     "--skip=qrcode_hidden_in_tty_when_disabled"
     "--skip=qrcode_shown_in_tty_when_enabled"
+    "--skip=show_root_readme_contents"
+    "--skip=validate_printed_urls"
   ];
 
   postInstall = ''
@@ -56,5 +59,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/svenstaro/miniserve/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "miniserve";
   };
 }
diff --git a/pkgs/tools/misc/ministat/default.nix b/pkgs/tools/misc/ministat/default.nix
index 0cd3ff3a5c1f9..d0f88e5d1b1cb 100644
--- a/pkgs/tools/misc/ministat/default.nix
+++ b/pkgs/tools/misc/ministat/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.beerware;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.all;
+    mainProgram = "ministat";
   };
 }
diff --git a/pkgs/tools/misc/rtx/default.nix b/pkgs/tools/misc/mise/default.nix
index 6e70b3b046a8c..9c0fec19d6474 100644
--- a/pkgs/tools/misc/rtx/default.nix
+++ b/pkgs/tools/misc/mise/default.nix
@@ -11,26 +11,32 @@
 , direnv
 , Security
 , SystemConfiguration
+, mise
+, testers
 }:
 
 rustPlatform.buildRustPackage rec {
-  pname = "rtx";
-  version = "2023.10.1";
+  pname = "mise";
+  version = "2024.1.35";
 
   src = fetchFromGitHub {
-    owner = "jdxcode";
-    repo = "rtx";
+    owner = "jdx";
+    repo = "mise";
     rev = "v${version}";
-    hash = "sha256-E0jBTnfp8asLC2V8TtYSCh6fTxqkFwCMZjsjjBKEN0s=";
+    hash = "sha256-U5L66cZXgvKLQKTYIAKWcYVs5IV4OKegKxYvLr83g8k=";
   };
 
-  cargoHash = "sha256-n/GxC5wDfhPboynFu8S1f9+kNDVmcKoSHaT96khyi2Q=";
+  cargoHash = "sha256-Hn6uDDA/RJ9d5s3bLsR90Gd8mahYwnBmkkJ3ToGwpyM=";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
-  buildInputs = [ openssl  ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
   postPatch = ''
-    patchShebangs --build ./test/data/plugins/**/bin/* ./src/fake_asdf.rs ./src/cli/reshim.rs
+    patchShebangs --build \
+      ./test/data/plugins/**/bin/* \
+      ./src/fake_asdf.rs \
+      ./src/cli/reshim.rs \
+      ./test/cwd/.mise/tasks/filetask
 
     substituteInPlace ./src/env_diff.rs \
       --replace '"bash"' '"${bash}/bin/bash"'
@@ -49,24 +55,25 @@ rustPlatform.buildRustPackage rec {
   dontUseCargoParallelTests = true;
 
   postInstall = ''
-    installManPage ./man/man1/rtx.1
+    installManPage ./man/man1/mise.1
 
     installShellCompletion \
-      --bash ./completions/rtx.bash \
-      --fish ./completions/rtx.fish \
-      --zsh ./completions/_rtx
+      --bash ./completions/mise.bash \
+      --fish ./completions/mise.fish \
+      --zsh ./completions/_mise
   '';
 
   passthru = {
     updateScript = nix-update-script { };
+    tests.version = testers.testVersion { package = mise; };
   };
 
   meta = {
-    homepage = "https://github.com/jdxcode/rtx";
-    description = "Polyglot runtime manager (asdf rust clone)";
-    changelog = "https://github.com/jdxcode/rtx/releases/tag/v${version}";
+    homepage = "https://mise.jdx.dev";
+    description = "The front-end to your dev env";
+    changelog = "https://github.com/jdx/mise/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ konradmalik ];
-    mainProgram = "rtx";
+    mainProgram = "mise";
   };
 }
diff --git a/pkgs/tools/misc/mktorrent/default.nix b/pkgs/tools/misc/mktorrent/default.nix
index 36aee2034c87b..74f449969a661 100644
--- a/pkgs/tools/misc/mktorrent/default.nix
+++ b/pkgs/tools/misc/mktorrent/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ Profpatsch winter ];
     platforms = platforms.all;
+    mainProgram = "mktorrent";
   };
 }
diff --git a/pkgs/tools/misc/mloader/default.nix b/pkgs/tools/misc/mloader/default.nix
index 9021724f8e0a0..9790b169651d7 100644
--- a/pkgs/tools/misc/mloader/default.nix
+++ b/pkgs/tools/misc/mloader/default.nix
@@ -31,5 +31,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/hurlenko/mloader";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "mloader";
   };
 }
diff --git a/pkgs/tools/misc/mmake/default.nix b/pkgs/tools/misc/mmake/default.nix
index acf571f7c5ace..32f089f1a7714 100644
--- a/pkgs/tools/misc/mmake/default.nix
+++ b/pkgs/tools/misc/mmake/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = [ maintainers.gabesoft ];
+    mainProgram = "mmake";
   };
 }
diff --git a/pkgs/tools/misc/mmctl/0001-module-replace-public.patch b/pkgs/tools/misc/mmctl/0001-module-replace-public.patch
new file mode 100644
index 0000000000000..2ac563dbbf4b5
--- /dev/null
+++ b/pkgs/tools/misc/mmctl/0001-module-replace-public.patch
@@ -0,0 +1,8 @@
+--- a/go.mod
++++ b/go.mod
+@@ -218,3 +218,5 @@ exclude (
+ 	github.com/dyatlov/go-opengraph v0.0.0-20210112100619-dae8665a5b09
+ 	github.com/willf/bitset v1.2.0
+ )
++
++replace github.com/mattermost/mattermost/server/public => ./public
diff --git a/pkgs/tools/misc/mmctl/default.nix b/pkgs/tools/misc/mmctl/default.nix
index 7084ef0acb118..197d145fc6c7d 100644
--- a/pkgs/tools/misc/mmctl/default.nix
+++ b/pkgs/tools/misc/mmctl/default.nix
@@ -5,29 +5,39 @@
 
 buildGoModule rec {
   pname = "mmctl";
-  version = "7.10.5";
+  version = "9.2.2";
 
   src = fetchFromGitHub {
     owner = "mattermost";
-    repo = "mmctl";
+    repo = "mattermost";
     rev = "v${version}";
-    sha256 = "sha256-FQdxFvYJ+YrOc1p3/Ju3ZOGFH32WeZjHXtsIYG+O0U0=";
-  };
+    hash = "sha256-53L2F20vaLLxtQS3DP/u0ZxLtnXHmjfcOMbXd4i+A6Y=";
+  } + "/server";
+
+  vendorHash = "sha256-v8aKZyb4emrwuIgSBDgla5wzwyt6PVGakbXjB9JVaCk=";
+
+  patches = [ ./0001-module-replace-public.patch ];
 
-  vendorHash = null;
+  subPackages = [ "cmd/mmctl" ];
 
-  checkPhase = "make test";
+  checkPhase = "go test -tags unit -timeout 30m ./cmd/mmctl/...";
 
   ldflags = [
     "-s"
     "-w"
-    "-X github.com/mattermost/mmctl/v6/commands.Version=${version}"
+    "-X github.com/mattermost/mattermost/server/public/model.Version=${version}"
+    "-X github.com/mattermost/mattermost/server/public/model.BuildNumber=${version}-nixpkgs"
+    "-X github.com/mattermost/mattermost/server/public/model.BuildDate=1970-01-01"
+    "-X github.com/mattermost/mattermost/server/public/model.BuildHash=v${version}"
+    "-X github.com/mattermost/mattermost/server/public/model.BuildHashEnterprise=none"
+    "-X github.com/mattermost/mattermost/server/public/model.BuildEnterpriseReady=false"
   ];
 
   meta = with lib; {
     description = "A remote CLI tool for Mattermost";
     homepage = "https://github.com/mattermost/mmctl";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ppom ];
+    maintainers = with maintainers; [ ppom mgdelacroix ];
+    mainProgram = "mmctl";
   };
 }
diff --git a/pkgs/tools/misc/mmv/default.nix b/pkgs/tools/misc/mmv/default.nix
index b396de5002d95..c8ce33207787a 100644
--- a/pkgs/tools/misc/mmv/default.nix
+++ b/pkgs/tools/misc/mmv/default.nix
@@ -20,6 +20,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ gengetopt m4 git gnupg perl autoconf automake help2man pkg-config ];
   buildInputs = [ boehmgc ];
 
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_CFLAGS_COMPILE = toString [
+      "-Wno-error=implicit-function-declaration"
+      "-Wno-error=implicit-int"
+    ];
+  };
+
   meta = {
     homepage = "https://github.com/rrthomas/mmv";
     description = "Utility for wildcard renaming, copying, etc";
diff --git a/pkgs/tools/misc/mnc/default.nix b/pkgs/tools/misc/mnc/default.nix
index d84ff6643aec5..b4b033c94f65f 100644
--- a/pkgs/tools/misc/mnc/default.nix
+++ b/pkgs/tools/misc/mnc/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ wentam ];
+    mainProgram = "mnc";
   };
 }
diff --git a/pkgs/tools/misc/moar/default.nix b/pkgs/tools/misc/moar/default.nix
index dc63dd7a8b55d..e5d949a2e4a62 100644
--- a/pkgs/tools/misc/moar/default.nix
+++ b/pkgs/tools/misc/moar/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "moar";
-  version = "1.17.1";
+  version = "1.23.0";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ifpPShDI0JNkFXrrZEsQ+bvHMe7AgaZm30dnvsj8vDA=";
+    hash = "sha256-tnFJKHrK1QlACYsiLlc5EX3du4H+nekEaeV+7wUsx48=";
   };
 
-  vendorHash = "sha256-aFCv6VxHD1bOLhCHXhy4ubik8Z9uvU6AeqcMqIZI2Oo=";
+  vendorHash = "sha256-1u/2OlMX2FuZaxWnpU4n5r/4xKe+rK++GoCJiSq/BdE=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/mods/default.nix b/pkgs/tools/misc/mods/default.nix
index ecb306d4aef67..fda8944c330f7 100644
--- a/pkgs/tools/misc/mods/default.nix
+++ b/pkgs/tools/misc/mods/default.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "mods";
-  version = "0.2.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "mods";
     rev = "v${version}";
-    hash = "sha256-jOvXT/KAfSN9E4ZgntCbTu05VJu1jhGtv6gEgLStd98=";
+    hash = "sha256-ZWH3YuN1cmdw96/HVzsp1u70ziUfupUeBjJiNI5a538=";
   };
 
-  vendorHash = "sha256-GNGX8dyTtzRSUznEV/do1H7GEf6nYf0w+CLCZfkktfg=";
+  vendorHash = "sha256-PgaxqfgtwBYnzyL2F/OPJP1rdmLOtBCTKEPhMgvC6XA=";
 
-  ldflags = [ "-s" "-w" "-X=main.version=${version}" ];
+  ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
   passthru = {
     updateScript = gitUpdater {
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/charmbracelet/mods";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "mods";
   };
 }
diff --git a/pkgs/tools/misc/mommy/default.nix b/pkgs/tools/misc/mommy/default.nix
deleted file mode 100644
index ae04e92c630b8..0000000000000
--- a/pkgs/tools/misc/mommy/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, makeWrapper
-, writeText
-, shellspec
-, fetchpatch
-  # usage:
-  # pkgs.mommy.override {
-  #  mommySettings.sweetie = "catgirl";
-  # }
-  #
-  # $ mommy
-  # who's my good catgirl~
-, mommySettings ? null
-}:
-
-let
-  variables = lib.mapAttrs'
-    (name: value: lib.nameValuePair "MOMMY_${lib.toUpper name}" value)
-    mommySettings;
-  configFile = writeText "mommy-config" (lib.toShellVars variables);
-in
-stdenv.mkDerivation rec {
-  pname = "mommy";
-  version = "1.2.3";
-
-  src = fetchFromGitHub {
-    owner = "FWDekker";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-LT21MJg2rF84o2rWKguEP4UUOOu27nNGls95sBYgICw=";
-  };
-
-  patches = [
-    # 🫣 mommy finds your config with an environment variable now~
-    (fetchpatch {
-      url = "https://github.com/FWDekker/mommy/commit/d5785521fe2ce9ec832dbfe20abc483545b1df97.patch";
-      hash = "sha256-GacUjQyvvwRRYKIHHTTAL0mQSPMZbbxacqilBaw807Y=";
-    })
-    # 💜 mommy follows the XDG base directory specification now~
-    (fetchpatch {
-      url = "https://github.com/FWDekker/mommy/commit/71806bc0ace2822ac32dc8dd5bb0b0881d849982.patch";
-      hash = "sha256-Znq3VOgYI7a13Fqyz9nevtrvn7S5Jb2uBc78D0BG8rY=";
-    })
-  ];
-
-  nativeBuildInputs = [ makeWrapper ];
-  nativeCheckInputs = [ shellspec ];
-  installFlags = [ "prefix=$(out)" ];
-
-  doCheck = true;
-  checkTarget = "test/unit";
-
-  postInstall = ''
-    ${lib.optionalString (mommySettings != null) ''
-      wrapProgram $out/bin/mommy \
-        --set-default MOMMY_OPT_CONFIG_FILE "${configFile}"
-    ''}
-  '';
-
-  meta = with lib; {
-    description = "mommy's here to support you, in any shell, on any system~ ❤️";
-    homepage = "https://github.com/FWDekker/mommy";
-    changelog = "https://github.com/FWDekker/mommy/blob/v${version}/CHANGELOG.md";
-    license = licenses.unlicense;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ ckie ];
-    mainProgram = "mommy";
-  };
-}
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index 8f0790b67df35..6c1c2b81f90c3 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.39.4";
+  version = "1.41.0";
 
   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-FK42DJLxY9gMNt92/UEdrseT3p1xPDVn1+5Cnbc+WnY=";
+        sha256 = "sha256-uVIN2oSpaRSeJK1bhjzMqSMmnQm+1i6xsw1RWjmsvGY=";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
@@ -134,5 +134,6 @@ in stdenv.mkDerivation {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.sspl;
     platforms = [ "x86_64-linux" ];
+    mainProgram = "mongodb-compass";
   };
 }
diff --git a/pkgs/tools/misc/mongodb-tools/default.nix b/pkgs/tools/misc/mongodb-tools/default.nix
index 2df98d5a00b36..0ed70de2e8e10 100644
--- a/pkgs/tools/misc/mongodb-tools/default.nix
+++ b/pkgs/tools/misc/mongodb-tools/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "mongo-tools";
-  version = "100.7.5";
+  version = "100.9.4";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-tools";
     rev = version;
-    sha256 = "sha256-7osM21fLDwO5eFv+28hbkzmqFCVbmI7vOria5vbnrP0=";
+    sha256 = "sha256-FGgO8JNUU0+WqIh13I0i9cprN8qE/020wDXjFsZdFy0=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/misc/mons/default.nix b/pkgs/tools/misc/mons/default.nix
index e9bd96b41b5e8..d386c901e7c07 100644
--- a/pkgs/tools/misc/mons/default.nix
+++ b/pkgs/tools/misc/mons/default.nix
@@ -91,5 +91,6 @@ resholve.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ thiagokokada ];
     platforms = platforms.unix;
+    mainProgram = "mons";
   };
 }
diff --git a/pkgs/tools/misc/moon-phases/default.nix b/pkgs/tools/misc/moon-phases/default.nix
index c1b58c7cce1ae..f4d5a850efc9c 100644
--- a/pkgs/tools/misc/moon-phases/default.nix
+++ b/pkgs/tools/misc/moon-phases/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mirrorwitch/moon-phases";
     license = licenses.acsl14;
     maintainers = with maintainers; [ mirrorwitch ];
+    mainProgram = "moon-phases";
   };
 }
diff --git a/pkgs/tools/misc/moreutils/default.nix b/pkgs/tools/misc/moreutils/default.nix
index 0a7423ec55766..6975d4878c52f 100644
--- a/pkgs/tools/misc/moreutils/default.nix
+++ b/pkgs/tools/misc/moreutils/default.nix
@@ -9,16 +9,17 @@
 , makeWrapper
 , perl # for pod2man
 , darwin
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "moreutils";
-  version = "0.67";
+  version = "0.68";
 
   src = fetchgit {
     url = "git://git.joeyh.name/moreutils";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-8Mu7L3KqOsW9OmidMkWB+q9TofHd1P1sbsNrtE4MUoA=";
+    hash = "sha256-kOY12oejH0xKaaPrKem+l0PACqyPqD4P1jEjOYfNntM=";
   };
 
   preBuild = ''
@@ -39,6 +40,11 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/ts --prefix PERL5LIB : $PERL5LIB
   '';
 
+  passthru.updateScript = gitUpdater {
+    # No nicer place to find latest release.
+    url = "git://git.joeyh.name/moreutils";
+  };
+
   meta = with lib; {
     description = "Growing collection of the unix tools that nobody thought to write long ago when unix was young";
     homepage = "https://joeyh.name/code/moreutils/";
diff --git a/pkgs/tools/misc/moserial/default.nix b/pkgs/tools/misc/moserial/default.nix
index 278182ae5f06e..8ac7091e003c2 100644
--- a/pkgs/tools/misc/moserial/default.nix
+++ b/pkgs/tools/misc/moserial/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ linsui ];
     platforms = platforms.linux;
+    mainProgram = "moserial";
   };
 }
diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix
index 2073e066ae73e..87280b9f295ef 100644
--- a/pkgs/tools/misc/most/default.nix
+++ b/pkgs/tools/misc/most/default.nix
@@ -2,18 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "most";
-  version = "5.1.0";
+  version = "5.2.0";
 
   src = fetchurl {
     url = "https://www.jedsoft.org/releases/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "008537ns659pw2aag15imwjrxj73j26aqq90h285is6kz8gmv06v";
+    hash = "sha256-lFWuuPgm+oOFyFDcIr8PIs+QabPDQj+6S/LG9iJtmQM=";
   };
 
-  patches = [
-    # Upstream patch to fix parallel build failure
-    ./parallel-make.patch
-  ];
-
   outputs = [ "out" "doc" ];
 
   makeFlags = [
@@ -43,5 +38,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.jedsoft.org/most/index.html";
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "most";
   };
 }
diff --git a/pkgs/tools/misc/most/parallel-make.patch b/pkgs/tools/misc/most/parallel-make.patch
deleted file mode 100644
index 07c2e47c673e3..0000000000000
--- a/pkgs/tools/misc/most/parallel-make.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream commit c9cfad50a ("src/Makefile.in: Avoid a race condition
-when performing a parallel build")
-
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -54,6 +54,12 @@ COMPILE_CMD = $(CC) -c $(ALL_CFLAGS) -DMOST_SYSTEM_INITFILE='"$(SYS_INITFILE)"'
- all: $(EXEC)
- $(EXEC): $(OBJDIR) $(CONFIG_H) slangversion $(OBJDIR)/$(EXEC)
- 	@echo $(EXEC) created in $(OBJDIR)
-+
-+# C source files include autogenrated "config.h". Make sure
-+# it's available before the compilation. Pessimistically assume
-+# any source file can depend on "config.h".
-+$(OBJS) $(OBJDIR)/chkslang.o: $(CONFIG_H)
-+
- $(OBJDIR)/$(EXEC): $(OBJS)
- 	cd $(OBJDIR); $(CC) $(OFILES) -o $(EXEC) $(LDFLAGS) $(EXECLIBS)
- #
diff --git a/pkgs/tools/misc/mpdscribble/default.nix b/pkgs/tools/misc/mpdscribble/default.nix
index 46bf31ed667ed..335dedf12fe21 100644
--- a/pkgs/tools/misc/mpdscribble/default.nix
+++ b/pkgs/tools/misc/mpdscribble/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.sohalt ];
     platforms = platforms.unix;
+    mainProgram = "mpdscribble";
   };
 }
diff --git a/pkgs/tools/misc/mpremote/default.nix b/pkgs/tools/misc/mpremote/default.nix
index aa7b847dfb5a9..18b6dc9a4cde2 100644
--- a/pkgs/tools/misc/mpremote/default.nix
+++ b/pkgs/tools/misc/mpremote/default.nix
@@ -9,17 +9,16 @@
 }:
 buildPythonApplication rec {
   pname = "mpremote";
-  version = "1.20.0";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "micropython";
     repo = "micropython";
-    rev = "v${version}";
-    hash = "sha256-udIyNcRjwwoWju0Qob0CFtMibbVKwc7j2ji83BC1rX0=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-tGFXJW1RkUs/64Yatgg/1zZFPDQdu76uiMjNU8ebdvg=";
   };
   sourceRoot = "source/tools/mpremote";
   format = "pyproject";
-  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   nativeBuildInputs = [
     hatchling
@@ -39,5 +38,6 @@ buildPythonApplication rec {
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ _999eagle ];
+    mainProgram = "mpremote";
   };
 }
diff --git a/pkgs/tools/misc/mprime/default.nix b/pkgs/tools/misc/mprime/default.nix
index 159159ce902aa..e55f8ca50fe0b 100644
--- a/pkgs/tools/misc/mprime/default.nix
+++ b/pkgs/tools/misc/mprime/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     # Untested on linux-32 and osx. Works in theory.
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+    mainProgram = "mprime";
   };
 }
diff --git a/pkgs/tools/misc/mprocs/default.nix b/pkgs/tools/misc/mprocs/default.nix
index 4f47476f5f51c..c42c17bd53c9a 100644
--- a/pkgs/tools/misc/mprocs/default.nix
+++ b/pkgs/tools/misc/mprocs/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/pvolok/mprocs";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage thehedgeh0g ];
+    mainProgram = "mprocs";
   };
 }
diff --git a/pkgs/tools/misc/ms-sys/default.nix b/pkgs/tools/misc/ms-sys/default.nix
index c0f807318bbb0..5d736952d2328 100644
--- a/pkgs/tools/misc/ms-sys/default.nix
+++ b/pkgs/tools/misc/ms-sys/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://ms-sys.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux;
+    mainProgram = "ms-sys";
   };
 }
diff --git a/pkgs/tools/misc/mslink/default.nix b/pkgs/tools/misc/mslink/default.nix
index 6db1ae3275c57..82c60ab926f0c 100644
--- a/pkgs/tools/misc/mslink/default.nix
+++ b/pkgs/tools/misc/mslink/default.nix
@@ -29,5 +29,6 @@ gccStdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mkg20001 ];
     platforms = platforms.unix;
+    mainProgram = "mslink";
   };
 }
diff --git a/pkgs/tools/misc/mstflint/default.nix b/pkgs/tools/misc/mstflint/default.nix
index 51fd22b0c35e7..619858cbe3594 100644
--- a/pkgs/tools/misc/mstflint/default.nix
+++ b/pkgs/tools/misc/mstflint/default.nix
@@ -1,26 +1,109 @@
 { lib
 , stdenv
 , fetchurl
-, libibmad
+, rdma-core
 , openssl
 , zlib
+, xz
+, expat
+, boost
+, curl
+, pkg-config
+, libxml2
+, pciutils
+, busybox
+, python3
+, automake
+, autoconf
+, libtool
+, git
+# use this to shrink the package's footprint if necessary (e.g. for hardened appliances)
+, onlyFirmwareUpdater ? false
+# contains binary-only libraries
+, enableDPA ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "mstflint";
-  version = "4.17.0-1";
+  version = "4.26.0-1";
 
   src = fetchurl {
     url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/mstflint-${version}.tar.gz";
-    sha256 = "030vpiv44sxmjf0dng91ziq1cggwj33yp0l4xc6cdhnrv2prjs7y";
+    hash = "sha256-P8XACcz6d8UTOhFFeTijfFOthBqnUghGlDj9K145sZ8=";
   };
 
+  nativeBuildInputs = [
+    autoconf
+    automake
+    libtool
+    pkg-config
+    libxml2
+    git
+  ];
+
   buildInputs = [
-    libibmad
-    openssl
+    rdma-core
     zlib
+    libxml2
+    openssl
+  ] ++ lib.optionals (!onlyFirmwareUpdater) [
+    boost
+    curl
+    expat
+    xz
+    python3
+  ];
+
+  preConfigure = ''
+    export CPPFLAGS="-I$(pwd)/tools_layouts -isystem ${libxml2.dev}/include/libxml2"
+    export INSTALL_BASEDIR=$out
+    ./autogen.sh
+  '';
+
+  # Cannot use wrapProgram since the python script's logic depends on the
+  # filename and will get messed up if the executable is named ".xyz-wrapped".
+  # That is why the python executable and runtime dependencies are injected
+  # this way.
+  #
+  # Remove host_cpu replacement again (see https://github.com/Mellanox/mstflint/pull/865),
+  # needs to hit master or a release. master_devel may be rebased.
+  #
+  # Remove patch for regex check, after https://github.com/Mellanox/mstflint/pull/871
+  # got merged.
+  prePatch = [
+  ''
+    patchShebangs eval_git_sha.sh
+    substituteInPlace configure.ac \
+        --replace "build_cpu" "host_cpu"
+    substituteInPlace common/compatibility.h \
+        --replace "#define ROOT_PATH \"/\"" "#define ROOT_PATH \"$out/\""
+    substituteInPlace configure.ac \
+        --replace 'Whether to use GNU C regex])' 'Whether to use GNU C regex])],[AC_MSG_RESULT([yes])'
+  ''
+  (lib.optionals (!onlyFirmwareUpdater) ''
+    substituteInPlace common/python_wrapper.sh \
+      --replace \
+      'exec $PYTHON_EXEC $SCRIPT_PATH "$@"' \
+      'export PATH=$PATH:${lib.makeBinPath [ (placeholder "out") pciutils busybox]}; exec ${python3}/bin/python3 $SCRIPT_PATH "$@"'
+  '')
   ];
 
+  configureFlags = [
+    "--enable-xml2"
+    "--datarootdir=${placeholder "out"}/share"
+  ] ++ lib.optionals (!onlyFirmwareUpdater) [
+    "--enable-adb-generic-tools"
+    "--enable-cs"
+    "--enable-dc"
+    "--enable-fw-mgr"
+    "--enable-inband"
+    "--enable-rdmem"
+  ] ++ lib.optionals enableDPA [
+    "--enable-dpa"
+  ];
+
+  enableParallelBuilding = true;
+
   hardeningDisable = [ "format" ];
 
   dontDisableStatic = true;  # the build fails without this. should probably be reported upstream
@@ -29,6 +112,7 @@ stdenv.mkDerivation rec {
     description = "Open source version of Mellanox Firmware Tools (MFT)";
     homepage = "https://github.com/Mellanox/mstflint";
     license = with licenses; [ gpl2 bsd2 ];
+    maintainers = with maintainers; [ thillux ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/mtm/default.nix b/pkgs/tools/misc/mtm/default.nix
index c142c1f290369..ffd7eefce8ae7 100644
--- a/pkgs/tools/misc/mtm/default.nix
+++ b/pkgs/tools/misc/mtm/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "mtm";
   };
 }
diff --git a/pkgs/tools/misc/multitail/default.nix b/pkgs/tools/misc/multitail/default.nix
index 6918e8fe3ecf0..3732d64dd9290 100644
--- a/pkgs/tools/misc/multitail/default.nix
+++ b/pkgs/tools/misc/multitail/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, ncurses, pkg-config, cmake }:
 
 stdenv.mkDerivation rec {
-  version = "7.0.0";
+  version = "7.1.2";
   pname = "multitail";
 
   src = fetchFromGitHub {
     owner = "folkertvanheusden";
     repo = pname;
     rev = version;
-    sha256 = "sha256-AMW55Bmwn0BsD36qGXI5WmEfydrMBob8NRY3Tyq92vA=";
+    sha256 = "sha256-00NZI/KFcgEAkvESnx0KQFW1GvX6FgZLA4Z1Fv2qi+E=";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
@@ -23,10 +23,11 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = {
-    homepage = "https://github.com/halturin/multitail";
+    homepage = "https://github.com/folkertvanheusden/multitail";
     description = "tail on Steroids";
     maintainers = with lib.maintainers; [ matthiasbeyer ];
     platforms = lib.platforms.unix;
-    license = lib.licenses.gpl2Plus;
+    license = lib.licenses.asl20;
+    mainProgram = "multitail";
   };
 }
diff --git a/pkgs/tools/misc/multitime/default.nix b/pkgs/tools/misc/multitime/default.nix
index 015f50fa57fa7..e6f6280abab1a 100644
--- a/pkgs/tools/misc/multitime/default.nix
+++ b/pkgs/tools/misc/multitime/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     homepage = "https://tratt.net/laurie/src/multitime/";
     platforms = lib.platforms.unix;
+    mainProgram = "multitime";
   };
 }
diff --git a/pkgs/tools/misc/mutagen-compose/default.nix b/pkgs/tools/misc/mutagen-compose/default.nix
index 5b379b2773f42..fe8f2b06505d6 100644
--- a/pkgs/tools/misc/mutagen-compose/default.nix
+++ b/pkgs/tools/misc/mutagen-compose/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mutagen-compose";
-  version = "0.17.2";
+  version = "0.17.5";
 
   src = fetchFromGitHub {
     owner = "mutagen-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-FEUVRDGVYYpgNSOSSR9hyUyz9mP8B8qWy3MnTtuE3fQ=";
+    hash = "sha256-EkUaxk+zCm1ta1/vjClZHki/MghLvUkCeiW7hST7WEc=";
   };
 
-  vendorHash = "sha256-u4vRQjqBSsugEcBzteV7yOTizbXGpCH+M/zAvdWusK0=";
+  vendorHash = "sha256-siLS53YVQfCwqyuvXXvHFtlpr3RQy2GP2/ZV+Tv/Lqc=";
 
   doCheck = false;
 
@@ -25,5 +25,6 @@ buildGoModule rec {
     changelog = "https://github.com/mutagen-io/mutagen-compose/releases/tag/v${version}";
     maintainers = [ maintainers.matthewpi ];
     license = licenses.mit;
+    mainProgram = "mutagen-compose";
   };
 }
diff --git a/pkgs/tools/misc/mvebu64boot/default.nix b/pkgs/tools/misc/mvebu64boot/default.nix
index c2bb63186c3f0..0c682cebd5e66 100644
--- a/pkgs/tools/misc/mvebu64boot/default.nix
+++ b/pkgs/tools/misc/mvebu64boot/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lukegb ];
     platforms = platforms.all;
+    mainProgram = "mvebu64boot";
   };
 }
diff --git a/pkgs/tools/misc/mysqltuner/default.nix b/pkgs/tools/misc/mysqltuner/default.nix
index 61dba7569867d..f13b455e523bf 100644
--- a/pkgs/tools/misc/mysqltuner/default.nix
+++ b/pkgs/tools/misc/mysqltuner/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/major/MySQLTuner-perl";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ peterhoeg shamilton ];
+    mainProgram = "mysqltuner";
   };
 }
diff --git a/pkgs/tools/misc/nanoemoji/default.nix b/pkgs/tools/misc/nanoemoji/default.nix
index 401783bcc4a1a..a4fb6768d0bb7 100644
--- a/pkgs/tools/misc/nanoemoji/default.nix
+++ b/pkgs/tools/misc/nanoemoji/default.nix
@@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
     toml
     tomlkit
     ufo2ft
-    ufoLib2
+    ufolib2
     zopfli
   ];
 
diff --git a/pkgs/tools/misc/natls/default.nix b/pkgs/tools/misc/natls/default.nix
index 368291f60d9a7..205905224f838 100644
--- a/pkgs/tools/misc/natls/default.nix
+++ b/pkgs/tools/misc/natls/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/willdoescode/nat";
     license = licenses.mit;
     maintainers = with maintainers; [ msfjarvis ];
+    mainProgram = "natls";
   };
 }
diff --git a/pkgs/tools/misc/nautilus-open-any-terminal/default.nix b/pkgs/tools/misc/nautilus-open-any-terminal/default.nix
index 4a115499d7a23..54e85c063633b 100644
--- a/pkgs/tools/misc/nautilus-open-any-terminal/default.nix
+++ b/pkgs/tools/misc/nautilus-open-any-terminal/default.nix
@@ -14,13 +14,14 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "nautilus-open-any-terminal";
-  version = "0.4.0";
+  version = "0.5.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Stunkymonkey";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EAI60Mw+OTPfjOS6lkGMul7QvTR7NXyNfevWY2JP1yI=";
+    hash = "sha256-fcTbt8O/7KEme5+GlDD7hMMcE2RaYqFdfojzJ1KhnA0=";
   };
 
   patches = [ ./hardcode-gsettings.patch ];
@@ -30,6 +31,7 @@ python3.pkgs.buildPythonPackage rec {
     gobject-introspection
     pkg-config
     wrapGAppsHook
+    python3.pkgs.setuptools
   ];
 
   buildInputs = [
@@ -43,7 +45,7 @@ python3.pkgs.buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace nautilus_open_any_terminal/open_any_terminal_extension.py \
+    substituteInPlace nautilus_open_any_terminal/nautilus_open_any_terminal.py \
       --subst-var-by gsettings_path ${glib.makeSchemaPath "$out" "$name"}
   '';
 
diff --git a/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch b/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch
index 194bb55902aec..5116d5110ca13 100644
--- a/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch
+++ b/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch
@@ -1,22 +1,22 @@
-diff --git a/nautilus_open_any_terminal/open_any_terminal_extension.py b/nautilus_open_any_terminal/open_any_terminal_extension.py
+diff --git a/nautilus_open_any_terminal/nautilus_open_any_terminal.py b/nautilus_open_any_terminal/nautilus_open_any_terminal.py
 index b02a995..a616399 100644
---- a/nautilus_open_any_terminal/open_any_terminal_extension.py
-+++ b/nautilus_open_any_terminal/open_any_terminal_extension.py
-@@ -205,9 +205,10 @@ def set_terminal_args(*args):
- 
-     class OpenAnyTerminalShortcutProvider(GObject.GObject, Nautilus.LocationWidgetProvider):
+--- a/nautilus_open_any_terminal/nautilus_open_any_terminal.py
++++ b/nautilus_open_any_terminal/nautilus_open_any_terminal.py
+@@ -228,9 +228,10 @@ def set_terminal_args(*args):
+         """Provide keyboard shortcuts for opening terminals in Nautilus."""
+
          def __init__(self):
--            source = Gio.SettingsSchemaSource.get_default()
--            if source.lookup(GSETTINGS_PATH, True):
+-            gsettings_source = Gio.SettingsSchemaSource.get_default()
+-            if gsettings_source.lookup(GSETTINGS_PATH, True):
 -                self._gsettings = Gio.Settings.new(GSETTINGS_PATH)
-+            source = Gio.SettingsSchemaSource.new_from_directory("@gsettings_path@", Gio.SettingsSchemaSource.get_default(), True)
++            gsettings_source = Gio.SettingsSchemaSource.new_from_directory("@gsettings_path@", Gio.SettingsSchemaSource.get_default(), True)
 +            if True:
-+                _schema = source.lookup(GSETTINGS_PATH, False)
++                _schema = gsettings_source.lookup(GSETTINGS_PATH, False)
 +                self._gsettings = Gio.Settings.new_full(_schema, None, None);
                  self._gsettings.connect("changed", self._bind_shortcut)
                  self._create_accel_group()
              self._window = None
-@@ -232,9 +233,10 @@ class OpenAnyTerminalExtension(GObject.GObject, Nautilus.MenuProvider):
+@@ -326,9 +327,10 @@ class OpenAnyTerminalExtension(GObject.GObject, Nautilus.MenuProvider):
          return items
  
  
diff --git a/pkgs/tools/misc/nb/default.nix b/pkgs/tools/misc/nb/default.nix
index 55f4682fb9942..0804ed58e4139 100644
--- a/pkgs/tools/misc/nb/default.nix
+++ b/pkgs/tools/misc/nb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nb";
-  version = "7.7.1";
+  version = "7.9.1";
 
   src = fetchFromGitHub {
     owner = "xwmx";
     repo = "nb";
     rev = version;
-    sha256 = "sha256-v5HBz3N8H1LBtCRjw+033TRokgVPX5MQ+f7fPvCGBpA=";
+    sha256 = "sha256-GS/8UpW99VofpY7R1V5A/Td8niLFthJcNzLS0hI89SI=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -63,5 +63,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.toonn ];
     platforms = platforms.all;
+    mainProgram = "nb";
   };
 }
diff --git a/pkgs/tools/misc/nbench/default.nix b/pkgs/tools/misc/nbench/default.nix
index 0ce1d66cf2142..f1af32cc0e3f5 100644
--- a/pkgs/tools/misc/nbench/default.nix
+++ b/pkgs/tools/misc/nbench/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     description = "A synthetic computing benchmark program";
     platforms = platforms.unix;
     maintainers = with lib.maintainers; [ bennofs ];
+    mainProgram = "nbench";
   };
 }
diff --git a/pkgs/tools/misc/nbqa/default.nix b/pkgs/tools/misc/nbqa/default.nix
index 214ab79abd63a..0c55c78f7b496 100644
--- a/pkgs/tools/misc/nbqa/default.nix
+++ b/pkgs/tools/misc/nbqa/default.nix
@@ -7,15 +7,20 @@
 }:
 python3.pkgs.buildPythonApplication rec {
   pname = "nbqa";
-  version = "1.7.0";
+  version = "1.7.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nbQA-dev";
     repo = "nbQA";
-    rev = version;
-    hash = "sha256-CTF5HisBS44Ta18cVT04UrMIF30WmEBwZBGW7fkKXwk=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-a/FuhJyf8BmZekUibzEiGgkHL51A+75R4a6S+h5i28s=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   passthru.optional-dependencies = {
     black = [ black ];
     blacken-docs = [ blacken-docs ];
@@ -89,5 +94,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Run ruff, isort, pyupgrade, mypy, pylint, flake8, black, blacken-docs, and more on Jupyter Notebooks";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "nbqa";
   };
 }
diff --git a/pkgs/tools/misc/netbootxyz-efi/default.nix b/pkgs/tools/misc/netbootxyz-efi/default.nix
index 55588f46ac9f2..efa16daaeacfd 100644
--- a/pkgs/tools/misc/netbootxyz-efi/default.nix
+++ b/pkgs/tools/misc/netbootxyz-efi/default.nix
@@ -4,12 +4,12 @@
 
 let
   pname = "netboot.xyz-efi";
-  version = "2.0.60";
+  version = "2.0.75";
 in fetchurl {
   name = "${pname}-${version}";
 
   url = "https://github.com/netbootxyz/netboot.xyz/releases/download/${version}/netboot.xyz.efi";
-  sha256 = "sha256-E4NiziF1W1U0FcV2KWj3YVCGtbrKI48RDBpSw2NAMc0=";
+  sha256 = "sha256-VaTUwX3S5Bj5eUZAspXNaVm8Y51hURL3xBb1tRdj6Zw=";
 
   meta = with lib; {
     homepage = "https://netboot.xyz/";
diff --git a/pkgs/tools/misc/nginx-config-formatter/default.nix b/pkgs/tools/misc/nginx-config-formatter/default.nix
index 9d5f9c445b49d..edfe912f39835 100644
--- a/pkgs/tools/misc/nginx-config-formatter/default.nix
+++ b/pkgs/tools/misc/nginx-config-formatter/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ Baughn ];
     license = licenses.asl20;
     homepage = "https://github.com/slomkowski/nginx-config-formatter";
+    mainProgram = "nginxfmt";
   };
 }
diff --git a/pkgs/tools/misc/nitch/default.nix b/pkgs/tools/misc/nitch/default.nix
deleted file mode 100644
index a050b4133e306..0000000000000
--- a/pkgs/tools/misc/nitch/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, nimPackages, fetchFromGitHub, fetchpatch }:
-nimPackages.buildNimPackage rec {
-  pname = "nitch";
-  version = "0.1.6";
-  nimBinOnly = true;
-  src = fetchFromGitHub {
-    owner = "ssleert";
-    repo = "nitch";
-    rev = "42ad6899931dd5e0cec7b021c2b7e383fcc891f3";
-    hash = "sha256-QI7CbP0lvvjD+g29FR/YJjuZboZ+PoHynsNbpYC9SvE=";
-  };
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/unxsh/nitch/commit/6831cf96144f58c4da298a0bc9b50d33056f6c08.patch";
-      sha256 = "sha256-uZUzUBLHBsssNqDxZ0NuTRMN9/gBxIlIiGgQkqCqEFc=";
-    })
-    (fetchpatch {
-      url = "https://github.com/ssleert/nitch/commit/ff10dea47dbc4d9736bd839b87869f53166cf395.patch";
-      hash = "sha256-n7JtI1Td0xMqhuScnMvxTkbY2I+l+FcUTz7aytxFasE=";
-    })
-  ];
-
-  meta = with lib; {
-    description = "Incredibly fast system fetch written in nim";
-    homepage = "https://github.com/unxsh/nitch";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ michaelBelsanti ];
-  };
-}
diff --git a/pkgs/tools/misc/nix-direnv/default.nix b/pkgs/tools/misc/nix-direnv/default.nix
deleted file mode 100644
index 93c7456bcb1c5..0000000000000
--- a/pkgs/tools/misc/nix-direnv/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, gnugrep
-, nix
-}:
-stdenv.mkDerivation (finalAttrs:{
-  pname = "nix-direnv";
-  version = "2.4.0";
-
-  src = fetchFromGitHub {
-    owner = "nix-community";
-    repo = "nix-direnv";
-    rev = finalAttrs.version;
-    hash = "sha256-h49uz+/YDRwbusiVx6I3HP9P3UZROIOlwjlYYqRjesE=";
-  };
-
-  # Substitute instead of wrapping because the resulting file is
-  # getting sourced, not executed:
-  postPatch = ''
-    sed -i "1a NIX_BIN_PREFIX=${nix}/bin/" direnvrc
-    substituteInPlace direnvrc --replace "grep" "${lib.getExe gnugrep}"
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -m500 -D direnvrc $out/share/nix-direnv/direnvrc
-    runHook postInstall
-  '';
-
-  meta = {
-    description = "A fast, persistent use_nix implementation for direnv";
-    homepage    = "https://github.com/nix-community/nix-direnv";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ mic92 bbenne10 ];
-  };
-})
diff --git a/pkgs/tools/misc/nncp/default.nix b/pkgs/tools/misc/nncp/default.nix
deleted file mode 100644
index eb929c9923b18..0000000000000
--- a/pkgs/tools/misc/nncp/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ cfgPath ? "/etc/nncp.hjson"
-, curl
-, fetchurl
-, lib
-, genericUpdater
-, go
-, perl
-, stdenv
-, writeShellScript
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "nncp";
-  version = "8.9.0";
-  outputs = [ "out" "doc" "info" ];
-
-  src = fetchurl {
-    url = "http://www.nncpgo.org/download/nncp-${finalAttrs.version}.tar.xz";
-    hash = "sha256-JZ+svDNU7cwW58ZOJ4qszbR/+j7Cr+oLNig/RqqCS10=";
-  };
-
-  nativeBuildInputs = [
-    go
-  ];
-
-  # Build parameters
-  CFGPATH = cfgPath;
-  SENDMAIL = "sendmail";
-
-  preConfigure = "export GOCACHE=$NIX_BUILD_TOP/gocache";
-
-  buildPhase = ''
-    runHook preBuild
-    ./bin/build
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    PREFIX=$out ./install
-    runHook postInstall
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = genericUpdater {
-    versionLister = writeShellScript "nncp-versionLister" ''
-      ${curl}/bin/curl -s ${finalAttrs.meta.downloadPage} | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
-    '';
-  };
-
-  meta = {
-    broken = stdenv.isDarwin;
-    changelog = "http://www.nncpgo.org/News.html";
-    description = "Secure UUCP-like store-and-forward exchanging";
-    downloadPage = "http://www.nncpgo.org/Tarballs.html";
-    homepage = "http://www.nncpgo.org/";
-    license = lib.licenses.gpl3Only;
-    longDescription = ''
-      This utilities are intended to help build up small size (dozens of
-      nodes) ad-hoc friend-to-friend (F2F) statically routed darknet
-      delay-tolerant networks for fire-and-forget secure reliable files,
-      file requests, Internet mail and commands transmission. All
-      packets are integrity checked, end-to-end encrypted, explicitly
-      authenticated by known participants public keys. Onion encryption
-      is applied to relayed packets. Each node acts both as a client and
-      server, can use push and poll behaviour model.
-
-      Out-of-box offline sneakernet/floppynet, dead drops, sequential
-      and append-only CD-ROM/tape storages, air-gapped computers
-      support. But online TCP daemon with full-duplex resumable data
-      transmission exists.
-    '';
-    maintainers = with lib.maintainers; [ ehmry woffs ];
-    platforms = lib.platforms.all;
-  };
-})
diff --git a/pkgs/tools/misc/nomino/default.nix b/pkgs/tools/misc/nomino/default.nix
index 1eb472ee8fa17..e4b7acfa8883e 100644
--- a/pkgs/tools/misc/nomino/default.nix
+++ b/pkgs/tools/misc/nomino/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nomino";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "yaa110";
     repo = pname;
     rev = version;
-    hash = "sha256-pzAL7e72sO94qLEwsH/5RuiuzvnsSelIq47jdU8INDw=";
+    hash = "sha256-XT8+mwfDFsBVEcpttus1KeIS+4sKqJMJTwqYI3LfW5k=";
   };
 
-  cargoHash = "sha256-gDOZ3nD7pTIRNXG3S+qTkl+HInBcAErvwPqa0NZWxY4=";
+  cargoHash = "sha256-KpjGwqjVORyxXJbMi2Ok7s6gRmM/aJRTsPtu/0PgGr8=";
 
   meta = with lib; {
     description = "Batch rename utility for developers";
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/yaa110/nomino/releases/tag/${src.rev}";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "nomino";
   };
 }
diff --git a/pkgs/tools/misc/noteshrink/default.nix b/pkgs/tools/misc/noteshrink/default.nix
index 67c49c3ad0d5c..4c76c332645fa 100644
--- a/pkgs/tools/misc/noteshrink/default.nix
+++ b/pkgs/tools/misc/noteshrink/default.nix
@@ -20,5 +20,6 @@ buildPythonApplication rec {
     homepage    = "https://mzucker.github.io/2016/09/20/noteshrink.html";
     license     = licenses.mit;
     maintainers = with maintainers; [ rnhmjoj ];
+    mainProgram = "noteshrink";
   };
 }
diff --git a/pkgs/tools/misc/noti/default.nix b/pkgs/tools/misc/noti/default.nix
index 40c060b631551..82d3dd4c2ef42 100644
--- a/pkgs/tools/misc/noti/default.nix
+++ b/pkgs/tools/misc/noti/default.nix
@@ -48,5 +48,6 @@ buildGoModule rec {
     homepage = "https://github.com/variadico/noti";
     license = licenses.mit;
     maintainers = with maintainers; [ stites marsam ];
+    mainProgram = "noti";
   };
 }
diff --git a/pkgs/tools/misc/notify-desktop/default.nix b/pkgs/tools/misc/notify-desktop/default.nix
index 22b5035da5144..0265e5dd8974b 100644
--- a/pkgs/tools/misc/notify-desktop/default.nix
+++ b/pkgs/tools/misc/notify-desktop/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ylwghst ];
+    mainProgram = "notify-desktop";
   };
 }
diff --git a/pkgs/tools/misc/notify/default.nix b/pkgs/tools/misc/notify/default.nix
index 09f1d238fbb1b..be7c6daf8e471 100644
--- a/pkgs/tools/misc/notify/default.nix
+++ b/pkgs/tools/misc/notify/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/projectdiscovery/notify";
     license = licenses.mit;
     maintainers = with maintainers; [ hanemile ];
+    mainProgram = "notify";
   };
 }
diff --git a/pkgs/tools/misc/ntfy-sh/default.nix b/pkgs/tools/misc/ntfy-sh/default.nix
index 76a8e4a3c9338..1bfde93c39e50 100644
--- a/pkgs/tools/misc/ntfy-sh/default.nix
+++ b/pkgs/tools/misc/ntfy-sh/default.nix
@@ -5,21 +5,21 @@
 
 buildGoModule rec {
   pname = "ntfy-sh";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "binwiederhier";
     repo = "ntfy";
     rev = "v${version}";
-    hash = "sha256-cL/vvwwFH3ztQUVqjZmO2nPmqCyuFMPCtMcRwNvEfNc=";
+    hash = "sha256-YO6nf1tY+tEgPlvq7JDgeG0ywE8+HEpZH7ToFzvYfvY=";
   };
 
-  vendorHash = "sha256-nCzBWANnNAwUw17EPs0G9ezpKJG+Ix1E7IhdvxFe3Xc=";
+  vendorHash = "sha256-Gvk/EI5b6AIYBCKYqSFKva0SfiWI/oNCeq7cTyVRpwY=";
 
   ui = buildNpmPackage {
     inherit src version;
     pname = "ntfy-sh-ui";
-    npmDepsHash = "sha256-qDpCI65r3S9WMEmYQeyY2KRpLnP6oxEL6rrhj0MGeWk=";
+    npmDepsHash = "sha256-G2yEIiKc/gxcUPS+97B68C/HukabGZAX2XY1gstGBvg=";
 
     prePatch = ''
       cd web/
@@ -42,7 +42,7 @@ buildGoModule rec {
     mkdocs
     python3
     python3Packages.mkdocs-material
-    python3Packages.mkdocs-minify
+    python3Packages.mkdocs-minify-plugin
     python3Packages.mkdocs-simple-hooks
   ];
 
diff --git a/pkgs/tools/misc/ntfy/default.nix b/pkgs/tools/misc/ntfy/default.nix
index 1f15f217eca2b..fc9fd078ab205 100644
--- a/pkgs/tools/misc/ntfy/default.nix
+++ b/pkgs/tools/misc/ntfy/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , python39
-, fetchPypi
 , fetchFromGitHub
 , fetchpatch
 , withXmpp ? !stdenv.isDarwin
@@ -18,18 +17,9 @@ let
       ntfy-webpush = self.callPackage ./webpush.nix { };
 
       # databases, on which slack-sdk depends, is incompatible with SQLAlchemy 2.0
-      sqlalchemy = super.sqlalchemy.overridePythonAttrs rec {
-        version = "1.4.46";
-        src = fetchPypi {
-          pname = "SQLAlchemy";
-          inherit version;
-          hash = "sha256-aRO4JH2KKS74MVFipRkx4rQM6RaB8bbxj2lwRSAMSjA=";
-        };
-        disabledTestPaths = [
-           "test/aaa_profiling"
-           "test/ext/mypy"
-        ];
-      };
+      sqlalchemy = super.sqlalchemy_1_4;
+
+      django = super.django_3;
     };
   };
 in python.pkgs.buildPythonApplication rec {
@@ -97,6 +87,7 @@ in python.pkgs.buildPythonApplication rec {
     description = "A utility for sending notifications, on demand and when commands finish";
     homepage = "http://ntfy.rtfd.org/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ jfrankenau kamilchm ];
+    maintainers = with maintainers; [ kamilchm ];
+    mainProgram = "ntfy";
   };
 }
diff --git a/pkgs/tools/misc/nux/default.nix b/pkgs/tools/misc/nux/default.nix
index a852f830937ba..89aea5e9dd9d9 100644
--- a/pkgs/tools/misc/nux/default.nix
+++ b/pkgs/tools/misc/nux/default.nix
@@ -34,5 +34,6 @@ rustPlatform.buildRustPackage {
     description = "A wrapper over the nix cli";
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "nux";
   };
 }
diff --git a/pkgs/tools/misc/nvfancontrol/default.nix b/pkgs/tools/misc/nvfancontrol/default.nix
index 2bfdb9896e4a9..1b2bebfce8955 100644
--- a/pkgs/tools/misc/nvfancontrol/default.nix
+++ b/pkgs/tools/misc/nvfancontrol/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ devins2518 ];
+    mainProgram = "nvfancontrol";
   };
 }
diff --git a/pkgs/tools/misc/nvimpager/default.nix b/pkgs/tools/misc/nvimpager/default.nix
index 1aee06ddf5646..f2679259fa1f6 100644
--- a/pkgs/tools/misc/nvimpager/default.nix
+++ b/pkgs/tools/misc/nvimpager/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = [ maintainers.lucc ];
+    mainProgram = "nvimpager";
   };
 }
diff --git a/pkgs/tools/misc/nyancat/default.nix b/pkgs/tools/misc/nyancat/default.nix
index 3aca7cc1729cc..89acccd66fc1b 100644
--- a/pkgs/tools/misc/nyancat/default.nix
+++ b/pkgs/tools/misc/nyancat/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.ncsa;
     maintainers = with maintainers; [ midchildan ];
     platforms = platforms.unix;
+    mainProgram = "nyancat";
   };
 }
diff --git a/pkgs/tools/misc/ocs-url/default.nix b/pkgs/tools/misc/ocs-url/default.nix
index 564c7b81c742f..52c65d4b5b26a 100644
--- a/pkgs/tools/misc/ocs-url/default.nix
+++ b/pkgs/tools/misc/ocs-url/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SohamG ];
     platforms = platforms.linux;
+    mainProgram = "ocs-url";
   };
 }
diff --git a/pkgs/tools/misc/octofetch/default.nix b/pkgs/tools/misc/octofetch/default.nix
index 634120d539cc7..4c4083d9555d1 100644
--- a/pkgs/tools/misc/octofetch/default.nix
+++ b/pkgs/tools/misc/octofetch/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     description = "Github user information on terminal";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "octofetch";
   };
 }
diff --git a/pkgs/tools/misc/octosql/default.nix b/pkgs/tools/misc/octosql/default.nix
index 6f928fd61f34a..a42f80d95ff95 100644
--- a/pkgs/tools/misc/octosql/default.nix
+++ b/pkgs/tools/misc/octosql/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/cube2222/octosql";
     license = licenses.mpl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "octosql";
   };
 }
diff --git a/pkgs/tools/misc/odyssey/default.nix b/pkgs/tools/misc/odyssey/default.nix
index 086c1eea58a85..2f3ccb0e154b7 100644
--- a/pkgs/tools/misc/odyssey/default.nix
+++ b/pkgs/tools/misc/odyssey/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "odyssey";
   };
 }
diff --git a/pkgs/tools/misc/ollama/default.nix b/pkgs/tools/misc/ollama/default.nix
index be18640248882..2176582e1fe9f 100644
--- a/pkgs/tools/misc/ollama/default.nix
+++ b/pkgs/tools/misc/ollama/default.nix
@@ -1,35 +1,50 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, stdenv
-, darwin
+, llama-cpp
 }:
 
 buildGoModule rec {
   pname = "ollama";
-  version = "0.0.17";
+  version = "0.1.17";
 
   src = fetchFromGitHub {
     owner = "jmorganca";
     repo = "ollama";
     rev = "v${version}";
-    hash = "sha256-idsFcjsRD1zPmG742gnYQJcgSWDA2DLMHksCFNe2GiY=";
+    hash = "sha256-eXukNn9Lu1hF19GEi7S7a96qktsjnmXCUp38gw+3MzY=";
   };
 
-  buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
-    Accelerate
-    MetalPerformanceShaders
-    MetalKit
-  ]);
+  patches = [
+    # disable passing the deprecated gqa flag to llama-cpp-server
+    # see https://github.com/ggerganov/llama.cpp/issues/2975
+    ./disable-gqa.patch
 
-  vendorHash = "sha256-IgEf/WOc1eNGCif1fViIFxbgZAd6mHBqfxcaqH/WvGg=";
+    # replace the call to the bundled llama-cpp-server with the one in the llama-cpp package
+    ./set-llamacpp-path.patch
+  ];
 
-  ldflags = [ "-s" "-w" ];
+  postPatch = ''
+    substituteInPlace llm/llama.go \
+      --subst-var-by llamaCppServer "${llama-cpp}/bin/llama-cpp-server"
+    substituteInPlace server/routes_test.go --replace "0.0.0" "${version}"
+  '';
+
+  vendorHash = "sha256-yGdCsTJtvdwHw21v0Ot6I8gxtccAvNzZyRu1T0vaius=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=github.com/jmorganca/ollama/version.Version=${version}"
+    "-X=github.com/jmorganca/ollama/server.mode=release"
+  ];
 
   meta = with lib; {
     description = "Get up and running with large language models locally";
     homepage = "https://github.com/jmorganca/ollama";
     license = licenses.mit;
-    maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "ollama";
+    maintainers = with maintainers; [ dit7ya elohmeier ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/ollama/disable-gqa.patch b/pkgs/tools/misc/ollama/disable-gqa.patch
new file mode 100644
index 0000000000000..b54440cd3d539
--- /dev/null
+++ b/pkgs/tools/misc/ollama/disable-gqa.patch
@@ -0,0 +1,15 @@
+diff --git a/llm/llama.go b/llm/llama.go
+index 0b460e9..b79e04a 100644
+--- a/llm/llama.go
++++ b/llm/llama.go
+@@ -299,10 +299,6 @@ func newLlama(model string, adapters []string, runners []ModelRunner, numLayers
+ 		params = append(params, "--n-gpu-layers", fmt.Sprintf("%d", numGPU))
+ 	}
+ 
+-	if opts.NumGQA > 0 {
+-		params = append(params, "--gqa", fmt.Sprintf("%d", opts.NumGQA))
+-	}
+-
+ 	if len(adapters) > 0 {
+ 		// TODO: applying multiple adapters is not supported by the llama.cpp server yet
+ 		params = append(params, "--lora", adapters[0])
diff --git a/pkgs/tools/misc/ollama/set-llamacpp-path.patch b/pkgs/tools/misc/ollama/set-llamacpp-path.patch
new file mode 100644
index 0000000000000..e90e552bab45a
--- /dev/null
+++ b/pkgs/tools/misc/ollama/set-llamacpp-path.patch
@@ -0,0 +1,23 @@
+diff --git a/llm/llama.go b/llm/llama.go
+index f23d5d8..6563550 100644
+--- a/llm/llama.go
++++ b/llm/llama.go
+@@ -25,7 +25,6 @@ import (
+ 	"github.com/jmorganca/ollama/api"
+ )
+ 
+-//go:embed llama.cpp/*/build/*/bin/*
+ var llamaCppEmbed embed.FS
+ 
+ type ModelRunner struct {
+@@ -33,6 +32,10 @@ type ModelRunner struct {
+ }
+ 
+ func chooseRunners(workDir, runnerType string) []ModelRunner {
++	return []ModelRunner{
++		{Path: "@llamaCppServer@"},
++	}
++
+ 	buildPath := path.Join("llama.cpp", runnerType, "build")
+ 	var runners []string
+ 
diff --git a/pkgs/tools/misc/ondir/default.nix b/pkgs/tools/misc/ondir/default.nix
index 2e8605c33abc3..1b32f474fc04e 100644
--- a/pkgs/tools/misc/ondir/default.nix
+++ b/pkgs/tools/misc/ondir/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/alecthomas/ondir/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.michaelCTS ];
+    mainProgram = "ondir";
   };
 }
diff --git a/pkgs/tools/misc/onefetch/default.nix b/pkgs/tools/misc/onefetch/default.nix
index 9a1391b4614c7..fe509320a7122 100644
--- a/pkgs/tools/misc/onefetch/default.nix
+++ b/pkgs/tools/misc/onefetch/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "onefetch";
-  version = "2.18.1";
+  version = "2.19.0";
 
   src = fetchFromGitHub {
     owner = "o2sh";
     repo = pname;
     rev = version;
-    hash = "sha256-xa7LdIeeSzCoSUVe9CzC3hKDiKlQdr011+iF/WOVGx0=";
+    hash = "sha256-IaXQyTQMvgfm3CWU6z0T4nTJNgA8/8urG+hhuthB4+U=";
   };
 
-  cargoHash = "sha256-zaRoL5fV0Vyca0Ay1WIl/1jAlPSeuoBevgrEFER6XJU=";
+  cargoHash = "sha256-8brPYBVqoBg9wO/Y6LdNgVasJgmyZvdNIC0Cclpyk68=";
 
   cargoPatches = [
     # enable pkg-config feature of zstd
@@ -60,5 +60,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/o2sh/onefetch/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne figsoda kloenk ];
+    mainProgram = "onefetch";
   };
 }
diff --git a/pkgs/tools/misc/onefetch/zstd-pkg-config.patch b/pkgs/tools/misc/onefetch/zstd-pkg-config.patch
index 0539dc6ca5420..9bfc271dc9125 100644
--- a/pkgs/tools/misc/onefetch/zstd-pkg-config.patch
+++ b/pkgs/tools/misc/onefetch/zstd-pkg-config.patch
@@ -1,6 +1,8 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index f6d5b6c..a631bbf 100644
 --- a/Cargo.lock
 +++ b/Cargo.lock
-@@ -2534,6 +2534,7 @@ dependencies = [
+@@ -2544,6 +2544,7 @@ dependencies = [
   "typetag",
   "winres",
   "yaml-rust",
@@ -8,15 +10,11 @@
  ]
  
  [[package]]
-@@ -4113,4 +4114,5 @@ checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b"
- dependencies = [
-  "cc",
-  "libc",
-+ "pkg-config",
- ]
+diff --git a/Cargo.toml b/Cargo.toml
+index b77f70d..861f1ac 100644
 --- a/Cargo.toml
 +++ b/Cargo.toml
-@@ -51,6 +51,7 @@ tokei = "12.1.2"
+@@ -65,6 +65,7 @@ tokei = "12.1.2"
  typetag = "0.2"
  yaml-rust = "0.4.5"
  parking_lot = "0.12"
diff --git a/pkgs/tools/misc/open-pdf-sign/default.nix b/pkgs/tools/misc/open-pdf-sign/default.nix
index 1a8b647933a0b..282ad778db5f5 100644
--- a/pkgs/tools/misc/open-pdf-sign/default.nix
+++ b/pkgs/tools/misc/open-pdf-sign/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "0.1.6";
+  version = "0.1.7";
   pname = "open-pdf-sign";
 
   src = fetchurl {
     url = "https://github.com/open-pdf-sign/open-pdf-sign/releases/download/v${finalAttrs.version}/open-pdf-sign.jar";
-    hash = "sha256-GpMDgN4P8neHOQsXtg2AKXNeCMnv3nEHH50ZVU0uVvY=";
+    hash = "sha256-pUIE2pTa+5Rt8PNYtfbtqoX0dxdS6lViqdqjJU5feoo=";
   };
 
   nativeBuildInputs = [
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with lib.maintainers; [ drupol ];
     platforms = lib.platforms.unix;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    mainProgram = "open-pdf-sign";
   };
 })
diff --git a/pkgs/tools/misc/opencorsairlink/default.nix b/pkgs/tools/misc/opencorsairlink/default.nix
index ed11232065e9c..40b747f203052 100644
--- a/pkgs/tools/misc/opencorsairlink/default.nix
+++ b/pkgs/tools/misc/opencorsairlink/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ lib.maintainers.expipiplus1 ];
+    mainProgram = "OpenCorsairLink.elf";
   };
 }
diff --git a/pkgs/tools/misc/opentelemetry-collector/contrib.nix b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
index d5cddeb6e245e..e928544d240a5 100644
--- a/pkgs/tools/misc/opentelemetry-collector/contrib.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
@@ -8,17 +8,18 @@
 
 buildGoModule rec {
   pname = "opentelemetry-collector-contrib";
-  version = "0.78.0";
+  version = "0.87.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector-contrib";
     rev = "v${version}";
-    sha256 = "sha256-5oTXPQU1aT8Xm1bTjbnauBUqzBqBH+yBzC1tmLHA0v0=";
+    sha256 = "sha256-b1TCj3aKupqUMQ74O58O5WJfQM9tj1G0ny5YeeilFAM=";
   };
+
   # proxy vendor to avoid hash missmatches between linux and macOS
   proxyVendor = true;
-  vendorHash = "sha256-ABaRedZXPr2q2AmslVNIJUvONZa4tv7OkxBLR9GuBRE=";
+  vendorHash = "sha256-o/51Z2Zmdza3pNZa0u3j4uG46orE9S7pUsZOXjHKrnI=";
 
   # there is a nested go.mod
   sourceRoot = "${src.name}/cmd/otelcontribcol";
@@ -38,6 +39,8 @@ buildGoModule rec {
   # it instead of trusting the global $PATH.
   propagatedBuildInputs = lib.optionals withSystemd [ systemdMinimal ];
 
+  preCheck = "export CGO_ENABLED=1";
+
   # This test fails on darwin for mysterious reasons.
   checkFlags = lib.optionals stdenv.isDarwin
     [ "-skip" "TestDefaultExtensions/memory_ballast" ];
diff --git a/pkgs/tools/misc/opentelemetry-collector/default.nix b/pkgs/tools/misc/opentelemetry-collector/default.nix
index d91c0cb665af5..3559ee5beae58 100644
--- a/pkgs/tools/misc/opentelemetry-collector/default.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/default.nix
@@ -1,21 +1,26 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
+, testers
+, opentelemetry-collector
 }:
 
 buildGoModule rec {
   pname = "opentelemetry-collector";
-  version = "0.86.0";
+  version = "0.93.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector";
     rev = "v${version}";
-    hash = "sha256-Ucp00OjyPtHA6so/NOzTLtPSuhXwz6A2708w2WIZb/E=";
+    hash = "sha256-caDBVB1ChAAU5fGip8HbC4hXcTomsRoLIobtMSvX/HY=";
   };
   # there is a nested go.mod
   sourceRoot = "${src.name}/cmd/otelcorecol";
-  vendorHash = "sha256-DfbG2qrhwVMXYjg2yJ6XlhrL27oPplvWIoP3C/JBKuA=";
+  vendorHash = "sha256-Mx+3Ml5BQ3Z+H9mX5xvfdG7fmHm+Cz3ws+cW/6iZddY=";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   # upstream strongly recommends disabling CGO
   # additionally dependencies have had issues when GCO was enabled that weren't caught upstream
@@ -29,6 +34,19 @@ buildGoModule rec {
 
   ldflags = [ "-s" "-w" ];
 
+  postInstall = ''
+    installShellCompletion --cmd otelcorecol \
+      --bash <($out/bin/otelcorecol completion bash) \
+      --fish <($out/bin/otelcorecol completion fish) \
+      --zsh <($out/bin/otelcorecol completion zsh)
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    inherit version;
+    package = opentelemetry-collector;
+    command = "otelcorecol -v";
+  };
+
   meta = with lib; {
     homepage = "https://github.com/open-telemetry/opentelemetry-collector";
     changelog = "https://github.com/open-telemetry/opentelemetry-collector/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/tools/misc/opentsdb/default.nix b/pkgs/tools/misc/opentsdb/default.nix
index 3662c9793c430..abce03cae02fa 100644
--- a/pkgs/tools/misc/opentsdb/default.nix
+++ b/pkgs/tools/misc/opentsdb/default.nix
@@ -347,5 +347,6 @@ in stdenv.mkDerivation rec {
       binaryBytecode  # maven dependencies
     ];
     maintainers = [ ];
+    mainProgram = "tsdb";
   };
 }
diff --git a/pkgs/tools/misc/org-stats/default.nix b/pkgs/tools/misc/org-stats/default.nix
index 7c79f526fb8a6..ead4f9e18d333 100644
--- a/pkgs/tools/misc/org-stats/default.nix
+++ b/pkgs/tools/misc/org-stats/default.nix
@@ -58,5 +58,6 @@ buildGoModule rec {
     changelog = "https://github.com/caarlos0/org-stats/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "org-stats";
   };
 }
diff --git a/pkgs/tools/misc/os-prober/default.nix b/pkgs/tools/misc/os-prober/default.nix
index b38cb81748a65..5d15b7077385b 100644
--- a/pkgs/tools/misc/os-prober/default.nix
+++ b/pkgs/tools/misc/os-prober/default.nix
@@ -4,7 +4,7 @@ coreutils,  # mktemp
 grub2,      # grub-mount and grub-probe
 cryptsetup, # cryptsetup
 libuuid,    # blkid and blockdev
-udev,    # udevadm udevinfo
+systemd,    # udevadm
 ntfs3g,     # ntfs3g
 dmraid,     # dmraid
 lvm2        # lvs
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     done;
     for file in $out/bin/*; do
       wrapProgram $file \
-        --suffix PATH : ${lib.makeBinPath [ grub2 udev coreutils cryptsetup libuuid ntfs3g lvm2 dmraid ]} \
+        --suffix PATH : ${lib.makeBinPath [ grub2 systemd coreutils cryptsetup libuuid ntfs3g lvm2 dmraid ]} \
         --run "[ -d /var/lib/os-prober ] || mkdir /var/lib/os-prober"
     done;
   '';
diff --git a/pkgs/tools/misc/oscclip/default.nix b/pkgs/tools/misc/oscclip/default.nix
index 6c68c4a6f24a0..3020998d93929 100644
--- a/pkgs/tools/misc/oscclip/default.nix
+++ b/pkgs/tools/misc/oscclip/default.nix
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
   nativeBuildInputs = with python3Packages; [ poetry-core ];
 
   meta = with lib; {
-    description = "A program that allows to copy/paste from a terminal using osc-52 control sequences.";
+    description = "A program that allows to copy/paste from a terminal using osc-52 control sequences";
     longDescription = ''
       oscclip provides two commands: osc-copy and osc-paste. These commands allow to interact with the clipboard through the terminal directly.
       This means that they work through ssh sessions for example (given that the terminal supports osc-52 sequences).
diff --git a/pkgs/tools/misc/osinfo-db-tools/default.nix b/pkgs/tools/misc/osinfo-db-tools/default.nix
index cf0ab2776ba57..774ccd946aa72 100644
--- a/pkgs/tools/misc/osinfo-db-tools/default.nix
+++ b/pkgs/tools/misc/osinfo-db-tools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , pkg-config
 , meson
 , ninja
@@ -19,13 +20,25 @@
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db-tools";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "sha256-gCzdU7QWcG6lhE8Ebdz7ZYwbSQa5+UDHmserxQmBymg=";
+    sha256 = "sha256-i6bTG7XvBwVuOIeeBwZxr7z+wOtBqH+ZUEULu4MbCh0=";
   };
 
+  patches = [
+    # Fix build with libxml 2.12
+    (fetchpatch {
+      url = "https://gitlab.com/libosinfo/osinfo-db-tools/-/commit/019487cbc79925e49988789bf533c78dab7e1842.patch";
+      hash = "sha256-skuspjHDRilwym+hFInrSvIZ+rrzBOoI7WeFj2SrGkc=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.com/libosinfo/osinfo-db-tools/-/commit/34378a4ac257f2f5fcf364786d1634a8c36b304f.patch";
+      hash = "sha256-I9vRRbnotqRi8+7q1eZLJwQLaT9J4G3h+3rKxlaCME4=";
+    })
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/tools/misc/osm2pgsql/default.nix b/pkgs/tools/misc/osm2pgsql/default.nix
index 2cc2ba926ef57..addfb26dfe3fd 100644
--- a/pkgs/tools/misc/osm2pgsql/default.nix
+++ b/pkgs/tools/misc/osm2pgsql/default.nix
@@ -7,7 +7,6 @@
 , bzip2
 , zlib
 , boost
-, cimg
 , postgresql
 , python3
 , withLuaJIT ? false
@@ -15,6 +14,7 @@
 , luajit
 , libosmium
 , nlohmann_json
+, opencv
 , potrace
 , protozero
 , testers
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "osm2pgsql";
-  version = "1.9.2";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "osm2pgsql-dev";
     repo = "osm2pgsql";
     rev = finalAttrs.version;
-    hash = "sha256-RzJpaOEpgKm2IN6CK2Z67CUG0WU2ELvCpGhdQehjGKU=";
+    hash = "sha256-IFAQ7iA37QXnWOSxUjh9EW7ss85k0h948JGuuUcpr5w=";
   };
 
   postPatch = ''
@@ -41,11 +41,11 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [
     boost
     bzip2
-    cimg
     expat
     fmt
     libosmium
     nlohmann_json
+    opencv
     postgresql
     potrace
     proj
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index c8485d4a2fa45..dcb4065a02c0e 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -119,6 +119,10 @@ in stdenv.mkDerivation rec {
   makeFlags = [
     "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/libostree"
     "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/libostree"
+    # Setting this flag was required as workaround for a clang bug, but seems not relevant anymore.
+    # https://github.com/ostreedev/ostree/commit/fd8795f3874d623db7a82bec56904648fe2c1eb7
+    # See also Makefile-libostree.am
+    "INTROSPECTION_SCANNER_ENV="
   ];
 
   preConfigure = ''
diff --git a/pkgs/tools/misc/otel-cli/default.nix b/pkgs/tools/misc/otel-cli/default.nix
index 9a2aca663972d..de35952f184a1 100644
--- a/pkgs/tools/misc/otel-cli/default.nix
+++ b/pkgs/tools/misc/otel-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "otel-cli";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "equinix-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-xIvxjmrZd/2eT2JAagH+mMyYkDjc7La5dUqsmNnOtrc=";
+    hash = "sha256-kOTReHG7byOqKsaVrXXNq9DAyawTz4hUeR4Q5lJKmiM=";
   };
 
-  vendorHash = "sha256-mnMtvR2r5HbKC0P5iGFkwLcpx3IvmhgCI8/CCVJunXw=";
+  vendorHash = "sha256-HwbEqWtOqiTe5Z/MtMAs63Lzvll/vgmbCpMTREXgtXA=";
 
   preCheck = ''
     ln -s $GOPATH/bin/otel-cli .
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/equinix-labs/otel-cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ emattiza urandom ];
+    mainProgram = "otel-cli";
   };
 }
diff --git a/pkgs/tools/misc/otfcc/default.nix b/pkgs/tools/misc/otfcc/default.nix
index b6c971dd3c2ef..aa0d86253d77a 100644
--- a/pkgs/tools/misc/otfcc/default.nix
+++ b/pkgs/tools/misc/otfcc/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/caryll/otfcc";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ jfrankenau ttuegel ];
+    maintainers = with maintainers; [ ttuegel ];
   };
 
 }
diff --git a/pkgs/tools/misc/owofetch/default.nix b/pkgs/tools/misc/owofetch/default.nix
index 4b312f0cea45b..b623721ec9b2f 100644
--- a/pkgs/tools/misc/owofetch/default.nix
+++ b/pkgs/tools/misc/owofetch/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     platforms = platforms.x86_64;
     maintainers = with maintainers; [ nullishamy ];
+    mainProgram = "owofetch";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-acro/default.nix b/pkgs/tools/misc/pandoc-acro/default.nix
index 1a2aff12ec77b..36bd518f5b2b9 100644
--- a/pkgs/tools/misc/pandoc-acro/default.nix
+++ b/pkgs/tools/misc/pandoc-acro/default.nix
@@ -5,7 +5,7 @@
 , lib
 , pandoc
 , pandoc-acro
-, texlive
+, texliveTeTeX
 , runCommand
 }:
 
@@ -35,13 +35,7 @@ buildPythonApplication {
           nativeBuildInputs = [
             pandoc
             pandoc-acro
-            (texlive.combine {
-              inherit (texlive)
-                scheme-tetex
-                acro
-                translations
-                ;
-            })
+            (texliveTeTeX.withPackages (ps: with ps; [ acro translations ]))
           ];
         };
       in
@@ -65,5 +59,6 @@ buildPythonApplication {
     description = "Pandoc filter which manages acronyms in Pandoc flavored Markdown sources";
     license = licenses.bsd2;
     maintainers = with maintainers; [ tfc ];
+    mainProgram = "pandoc-acro";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-drawio-filter/default.nix b/pkgs/tools/misc/pandoc-drawio-filter/default.nix
index f868b36a5b254..9a5ff8949ba64 100644
--- a/pkgs/tools/misc/pandoc-drawio-filter/default.nix
+++ b/pkgs/tools/misc/pandoc-drawio-filter/default.nix
@@ -5,7 +5,7 @@
 , pandoc
 , pandocfilters
 , runCommand
-, texlive
+, texliveTeTeX
 }:
 
 let
@@ -34,7 +34,7 @@ let
           nativeBuildInputs = [
             pandoc
             pandoc-drawio-filter
-            texlive.combined.scheme-tetex
+            texliveTeTeX
           ];
         };
       in
@@ -48,6 +48,7 @@ let
       description = "Pandoc filter which converts draw.io diagrams to PDF";
       license = licenses.mit;
       maintainers = with maintainers; [ tfc ];
+      mainProgram = "pandoc-drawio";
     };
   };
 
diff --git a/pkgs/tools/misc/pandoc-eqnos/default.nix b/pkgs/tools/misc/pandoc-eqnos/default.nix
index d808060fc23a6..5ee4e9587d61a 100644
--- a/pkgs/tools/misc/pandoc-eqnos/default.nix
+++ b/pkgs/tools/misc/pandoc-eqnos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-eqnos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-eqnos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-fignos/default.nix b/pkgs/tools/misc/pandoc-fignos/default.nix
index 7ed7a8e710a70..eb8d0154ffcec 100644
--- a/pkgs/tools/misc/pandoc-fignos/default.nix
+++ b/pkgs/tools/misc/pandoc-fignos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-fignos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-fignos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-imagine/default.nix b/pkgs/tools/misc/pandoc-imagine/default.nix
index 67e27da960fc5..ae94c31153661 100644
--- a/pkgs/tools/misc/pandoc-imagine/default.nix
+++ b/pkgs/tools/misc/pandoc-imagine/default.nix
@@ -24,5 +24,6 @@ buildPythonApplication rec {
     '';
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "pandoc-imagine";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-include/default.nix b/pkgs/tools/misc/pandoc-include/default.nix
index 684af986b017c..a5c9ea00bfdf7 100644
--- a/pkgs/tools/misc/pandoc-include/default.nix
+++ b/pkgs/tools/misc/pandoc-include/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/DCsunset/pandoc-include";
     license = licenses.mit;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-include";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-katex/default.nix b/pkgs/tools/misc/pandoc-katex/default.nix
index fdcfef878449e..d2b9f03e51a47 100644
--- a/pkgs/tools/misc/pandoc-katex/default.nix
+++ b/pkgs/tools/misc/pandoc-katex/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/xu-cheng/pandoc-katex";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ minijackson pacien ];
+    mainProgram = "pandoc-katex";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-plantuml-filter/default.nix b/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
index cdf0ab862df49..d8c1bb2ea8a38 100644
--- a/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
+++ b/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     description = "Pandoc filter which converts PlantUML code blocks to PlantUML images";
     license = licenses.mit;
     maintainers = with maintainers; [ cmcdragonkai ];
+    mainProgram = "pandoc-plantuml";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-secnos/default.nix b/pkgs/tools/misc/pandoc-secnos/default.nix
index 507d7df400e3f..0880214e218e3 100644
--- a/pkgs/tools/misc/pandoc-secnos/default.nix
+++ b/pkgs/tools/misc/pandoc-secnos/default.nix
@@ -35,5 +35,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-secnos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-secnos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-tablenos/default.nix b/pkgs/tools/misc/pandoc-tablenos/default.nix
index e1fb785a7a9fc..6ee5ef65861e8 100644
--- a/pkgs/tools/misc/pandoc-tablenos/default.nix
+++ b/pkgs/tools/misc/pandoc-tablenos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-tablenos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-tablenos";
   };
 }
diff --git a/pkgs/tools/misc/panicparse/default.nix b/pkgs/tools/misc/panicparse/default.nix
index 9c87e1fb87c74..6cf97eca5a971 100644
--- a/pkgs/tools/misc/panicparse/default.nix
+++ b/pkgs/tools/misc/panicparse/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "panicparse";
-  version = "2.2.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "maruel";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Bwvxj9Ifcq2WpicUBK+03fbGuoVAVF2Zmtpy/utUxoo=";
+    sha256 = "sha256-KjWUubrHPJUJWvoa13EGEwTd5uNC0nrHAF8hzdnxEmY=";
   };
 
-  vendorHash = "sha256-ZHUxzGqsGX1c4mBA4TBO2+WnGDhwAOGi0uYQx+3OgL8=";
+  vendorHash = "sha256-udkh/6Bu+7djxugMIuVsZvZ3JN2JooihsmcS2wJT0Wo=";
 
   subPackages = [ "." ];
 
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/maruel/panicparse";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "panicparse";
   };
 }
diff --git a/pkgs/tools/misc/panoply/default.nix b/pkgs/tools/misc/panoply/default.nix
index db72f76e1a057..d0c86c1275f57 100644
--- a/pkgs/tools/misc/panoply/default.nix
+++ b/pkgs/tools/misc/panoply/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "panoply";
-  version = "5.2.9";
+  version = "5.3.2";
 
   src = fetchurl {
     url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
-    sha256 = "sha256-InnHiaPvSCCtRmWStyrYQMhNQnoG+lhSBe7ECrPFKFc=";
+    sha256 = "sha256-+B/k3MqoefD3AVSYuR006eYyNe+njsfiqwBtQ+1YIHA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -33,5 +33,6 @@ stdenvNoCC.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.markuskowa ];
     license = licenses.unfree;  # Package does not state a license
+    mainProgram = "panoply";
   };
 }
diff --git a/pkgs/tools/misc/paperlike-go/default.nix b/pkgs/tools/misc/paperlike-go/default.nix
index 63390f427d403..59d477b62fe2a 100644
--- a/pkgs/tools/misc/paperlike-go/default.nix
+++ b/pkgs/tools/misc/paperlike-go/default.nix
@@ -19,10 +19,11 @@ buildGoModule {
   subPackages = [ "cmd/paperlike-cli" ];
 
   meta = {
-    description = "paperlike-go is a Linux Go library and CLI utility to control a Dasung Paperlike display via I2C DDC.";
+    description = "A Linux Go library and CLI utility to control a Dasung Paperlike display via I2C DDC";
     homepage = "https://github.com/leoluk/paperlike-go";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.adisbladis ];
     platforms = lib.platforms.linux;
+    mainProgram = "paperlike-cli";
   };
 }
diff --git a/pkgs/tools/misc/paps/default.nix b/pkgs/tools/misc/paps/default.nix
index 75cd8f3535cb2..ab9c9e433c68f 100644
--- a/pkgs/tools/misc/paps/default.nix
+++ b/pkgs/tools/misc/paps/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "paps";
   };
 }
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index 704f30d9dbe2f..d196de07f648f 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,12 +1,12 @@
-{ fetchurl, lib, stdenv, perl, makeWrapper, procps, coreutils, buildPackages }:
+{ fetchurl, lib, stdenv, perl, makeWrapper, procps, coreutils, gawk, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "parallel";
-  version = "20230822";
+  version = "20240122";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-S1lFmaPBE8KVLWsMG3zlRGAJjqIVrF9oUSAfme5r/F4=";
+    sha256 = "sha256-hZaIy7VkHNe2sWsrlgviSqTjfmVcyP/NivlxzX1bRJ8=";
   };
 
   outputs = [ "out" "man" "doc" ];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram $out/bin/parallel \
-      --prefix PATH : "${lib.makeBinPath [ procps perl coreutils ]}"
+      --prefix PATH : "${lib.makeBinPath [ procps perl coreutils gawk ]}"
   '';
 
   doCheck = true;
diff --git a/pkgs/tools/misc/parcellite/default.nix b/pkgs/tools/misc/parcellite/default.nix
index 04fe534984ed4..d39115fcecc9a 100644
--- a/pkgs/tools/misc/parcellite/default.nix
+++ b/pkgs/tools/misc/parcellite/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rickyrockrat/parcellite";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "parcellite";
   };
 }
diff --git a/pkgs/tools/misc/parquet-tools/default.nix b/pkgs/tools/misc/parquet-tools/default.nix
index 36a80202447f5..bd35304f3cf1d 100644
--- a/pkgs/tools/misc/parquet-tools/default.nix
+++ b/pkgs/tools/misc/parquet-tools/default.nix
@@ -70,5 +70,6 @@ buildPythonApplication rec {
     changelog = "https://github.com/ktrueda/parquet-tools/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "parquet-tools";
   };
 }
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
deleted file mode 100644
index 6fdc0e32bea61..0000000000000
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{ mkDerivation
-, fetchurl
-, lib
-, extra-cmake-modules
-, kdoctools
-, wrapGAppsHook
-, kconfig
-, kcrash
-, kinit
-, kpmcore
-, polkit-qt
-, cryptsetup
-, lvm2
-, mdadm
-, smartmontools
-, systemdMinimal
-, util-linux
-, btrfs-progs
-, dosfstools
-, e2fsprogs
-, exfat
-, f2fs-tools
-, fatresize
-, hfsprogs
-, jfsutils
-, nilfs-utils
-, ntfs3g
-, reiser4progs
-, reiserfsprogs
-, udftools
-, xfsprogs
-, zfs
-}:
-
-let
-  # External programs are resolved by `partition-manager` and then
-  # invoked by `kpmcore_externalcommand` from `kpmcore` as root.
-  # So these packages should be in PATH of `partition-manager`.
-  # https://github.com/KDE/kpmcore/blob/06f15334ecfbe871730a90dbe2b694ba060ee998/src/util/externalcommand_whitelist.h
-  runtimeDeps = lib.makeBinPath [
-    cryptsetup
-    lvm2
-    mdadm
-    smartmontools
-    systemdMinimal
-    util-linux
-
-    btrfs-progs
-    dosfstools
-    e2fsprogs
-    exfat
-    f2fs-tools
-    fatresize
-    hfsprogs
-    jfsutils
-    nilfs-utils
-    ntfs3g
-    reiser4progs
-    reiserfsprogs
-    udftools
-    xfsprogs
-    zfs
-
-    # FIXME: Missing command: tune.exfat hfsck hformat fsck.nilfs2 {fsck,mkfs,debugfs,tunefs}.ocfs2
-  ];
-
-in
-mkDerivation rec {
-  pname = "partitionmanager";
-  # NOTE: When changing this version, also change the version of `kpmcore`.
-  version = "23.04.1";
-
-  src = fetchurl {
-    url = "mirror://kde/stable/release-service/${version}/src/${pname}-${version}.tar.xz";
-    hash = "sha256-iMf6/QOJIDTKHAsCg3ey4GX0QHwrYl2LcCWxZsolMl8=";
-  };
-
-  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
-
-  propagatedBuildInputs = [ kconfig kcrash kinit kpmcore polkit-qt ];
-
-  dontWrapGApps = true;
-  preFixup = ''
-    qtWrapperArgs+=(
-      "''${gappsWrapperArgs[@]}"
-      --prefix PATH : "${runtimeDeps}"
-    )
-  '';
-
-  meta = with lib; {
-    description = "KDE Partition Manager";
-    longDescription = ''
-      KDE Partition Manager is a utility to help you manage the disks, partitions, and file systems on your computer.
-      It allows you to easily create, copy, move, delete, back up, restore, and resize them without losing data.
-      It supports a large number of file systems, including ext2/3/4, btrfs, reiserfs, NTFS, FAT16/32, JFS, XFS and more.
-
-      To install on NixOS, use the option `programs.partition-manager.enable = true`.
-    '';
-    license = with licenses; [ cc-by-40 cc0 gpl3Plus lgpl3Plus mit ];
-    homepage = "https://www.kde.org/applications/system/kdepartitionmanager/";
-    maintainers = with maintainers; [ peterhoeg oxalica ];
-  };
-}
diff --git a/pkgs/tools/misc/past-time/default.nix b/pkgs/tools/misc/past-time/default.nix
index 4e551a041bdd8..cb36808ea3662 100644
--- a/pkgs/tools/misc/past-time/default.nix
+++ b/pkgs/tools/misc/past-time/default.nix
@@ -35,5 +35,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/fabaff/past-time/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "past-time";
   };
 }
diff --git a/pkgs/tools/misc/pastebinit/default.nix b/pkgs/tools/misc/pastebinit/default.nix
index c5419b27fece3..ba597934ebbed 100644
--- a/pkgs/tools/misc/pastebinit/default.nix
+++ b/pkgs/tools/misc/pastebinit/default.nix
@@ -1,52 +1,55 @@
-{ lib, stdenv
-, fetchurl
-, fetchpatch
+{ lib
+, stdenv
+, fetchFromGitHub
 , python3
+, libxslt
+, docbook_xsl
+, installShellFiles
+, callPackage
 }:
-
 stdenv.mkDerivation rec {
-  version = "1.5";
+  version = "1.6.2";
   pname = "pastebinit";
 
-  src = fetchurl {
-    url = "https://launchpad.net/pastebinit/trunk/${version}/+download/${pname}-${version}.tar.bz2";
-    sha256 = "0mw48fgm9lyh9d3pw997fccmglzsjccf2y347gxjas74wx6aira2";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    hash = "sha256-vuAWkHlQM6QTWarThpSbY0qrxzej0GvLU0jT2JOS/qc=";
   };
 
-  buildInputs = [
-    (python3.withPackages (p: [ p.distro ]))
+  patches = [
+    ./use-drv-etc.patch
   ];
 
-  patchFlags = [ "-p0" ];
+  nativeBuildInputs = [
+    libxslt
+    installShellFiles
+  ];
 
-  patches = [
-    # Required to allow pastebinit 1.5 to run on Python 3.8
-    (fetchpatch {
-      name = "use-distro-module.patch";
-      url = "https://bazaar.launchpad.net/~arnouten/pastebinit/python38/diff/264?context=3";
-      sha256 = "1gp5inp4xald65xbb7fc5aqq5s2fhw464niwjjja9anqyp3zhawj";
-    })
-    # Required because pastebin.com now redirects http requests to https
-    (fetchpatch {
-      name = "pastebin-com-https.patch";
-      url = "https://bazaar.launchpad.net/~arnouten/pastebinit/pastebin-com-https/diff/264?context=3";
-      sha256 = "0hxhhfcai0mll8qfyhdl3slmbf34ynb759b648x63274m9nd2kji";
-    })
+  buildInputs = [
+    (python3.withPackages (p: [ p.distro ]))
   ];
 
+  buildPhase = ''
+    xsltproc --nonet ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl pastebinit.xml
+  '';
+
   installPhase = ''
     mkdir -p $out/bin
     mkdir -p $out/etc
     cp -a pastebinit $out/bin
+    cp -a utils/* $out/bin
     cp -a pastebin.d $out/etc
-    substituteInPlace $out/bin/pastebinit --replace "'/etc/pastebin.d" "'$out/etc/pastebin.d"
+    substituteInPlace $out/bin/pastebinit --subst-var-by "etc" "$out/etc"
+    installManPage pastebinit.1
   '';
 
   meta = with lib; {
-    homepage = "https://launchpad.net/pastebinit";
+    homepage = "https://stgraber.org/category/pastebinit/";
     description = "A software that lets you send anything you want directly to a pastebin from the command line";
-    maintainers = with maintainers; [ raboof ];
+    maintainers = with maintainers; [ raboof samuel-martineau ];
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ lib.platforms.darwin;
   };
 }
diff --git a/pkgs/tools/misc/pastebinit/use-drv-etc.patch b/pkgs/tools/misc/pastebinit/use-drv-etc.patch
new file mode 100644
index 0000000000000..6ccd7897ddf27
--- /dev/null
+++ b/pkgs/tools/misc/pastebinit/use-drv-etc.patch
@@ -0,0 +1,13 @@
+diff --git a/pastebinit b/pastebinit
+index 4e5f9ce..fe06bd3 100755
+--- a/pastebinit
++++ b/pastebinit
+@@ -91,7 +91,7 @@ try:
+         # Files found later override files found earlier.
+         pastebind = {}
+         confdirs = []
+-        for confdir in ['/usr/share', '/usr/local/share'] \
++        for confdir in ['@etc@', '/usr/share', '/usr/local/share'] \
+                 + list(reversed(os.environ.get('XDG_DATA_DIRS', '').split(':'))) \
+                 + list(reversed(os.environ.get('XDG_CONFIG_DIRS', '').split(':'))) \
+                 + ['/etc', '/usr/local/etc',
diff --git a/pkgs/tools/misc/pazi/default.nix b/pkgs/tools/misc/pazi/default.nix
index 08adb3c199de2..c4c1ea18b549b 100644
--- a/pkgs/tools/misc/pazi/default.nix
+++ b/pkgs/tools/misc/pazi/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
     description = "An autojump \"zap to directory\" helper";
     homepage = "https://github.com/euank/pazi";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ bbigras ];
+    maintainers = with maintainers; [ ];
+    mainProgram = "pazi";
   };
 }
diff --git a/pkgs/tools/misc/pb/default.nix b/pkgs/tools/misc/pb/default.nix
index 84e92b79088ba..1cbe8eded5cbe 100644
--- a/pkgs/tools/misc/pb/default.nix
+++ b/pkgs/tools/misc/pb/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pb";
-  version = "0.1.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "parseablehq";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MCWDCFW37OTy6Hd9pVem+gwKGdZ7htIXFbdUciqAjU8=";
+    hash = "sha256-ckRvtEtagyYpXJ0hh8jsgpE/16bu7b9IdNn2stvb2iI=";
   };
 
-  vendorHash = "sha256-WDBjAAaeKeMJOwX8w9PLq9Y8IX2o5yzH2o+MNFSgYc4=";
+  vendorHash = "sha256-dNSr0bQz7XdC2fTD82TI8tfmwKBuAcbxjaMC9KAjxlI=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/misc/pb_cli/default.nix b/pkgs/tools/misc/pb_cli/default.nix
index 48b819d5bfdd6..b884b28658385 100644
--- a/pkgs/tools/misc/pb_cli/default.nix
+++ b/pkgs/tools/misc/pb_cli/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/ptpb/pb_cli";
     maintainers = [ maintainers.ar1a ];
     license = licenses.gpl3Plus;
+    mainProgram = "pb";
   };
 }
diff --git a/pkgs/tools/misc/pcp/default.nix b/pkgs/tools/misc/pcp/default.nix
index eb73e128533e8..e9d245c8129d8 100644
--- a/pkgs/tools/misc/pcp/default.nix
+++ b/pkgs/tools/misc/pcp/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ matthewcroughan ];
     platforms = platforms.linux;
+    mainProgram = "pcp";
   };
 }
diff --git a/pkgs/tools/misc/pdd/default.nix b/pkgs/tools/misc/pdd/default.nix
index db80139098bf1..2e34e94ad0139 100644
--- a/pkgs/tools/misc/pdd/default.nix
+++ b/pkgs/tools/misc/pdd/default.nix
@@ -30,5 +30,6 @@ buildPythonApplication rec {
     '';
     maintainers = [ maintainers.infinisil ];
     license = licenses.gpl3;
+    mainProgram = "pdd";
   };
 }
diff --git a/pkgs/tools/misc/pdf-parser/default.nix b/pkgs/tools/misc/pdf-parser/default.nix
index 90c128f8ac35e..593960c4d2cf8 100644
--- a/pkgs/tools/misc/pdf-parser/default.nix
+++ b/pkgs/tools/misc/pdf-parser/default.nix
@@ -30,5 +30,6 @@ python3Packages.buildPythonApplication {
     license = licenses.publicDomain;
     maintainers = [ maintainers.lightdiscord ];
     platforms = platforms.all;
+    mainProgram = "pdf-parser.py";
   };
 }
diff --git a/pkgs/tools/misc/peep/default.nix b/pkgs/tools/misc/peep/default.nix
index 1ecad087ccfbe..301b04cbb816f 100644
--- a/pkgs/tools/misc/peep/default.nix
+++ b/pkgs/tools/misc/peep/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/ryochack/peep/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "peep";
   };
 }
diff --git a/pkgs/tools/misc/peruse/default.nix b/pkgs/tools/misc/peruse/default.nix
index 264631120068b..09c39385c8b7d 100644
--- a/pkgs/tools/misc/peruse/default.nix
+++ b/pkgs/tools/misc/peruse/default.nix
@@ -1,9 +1,9 @@
-{ mkDerivation
-, fetchFromGitHub
+{ stdenv
+, fetchurl
 , lib
 , extra-cmake-modules
 , kdoctools
-, wrapGAppsHook
+, wrapQtAppsHook
 , baloo
 , karchive
 , kconfig
@@ -12,25 +12,25 @@
 , kinit
 , kirigami2
 , knewstuff
+, okular
 , plasma-framework
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "peruse";
-  version = "1.2.20200208";
+  # while technically a beta, the latest release is from 2016 and doesn't build without a lot of
+  # patching
+  version = "1.80";
 
-  # The last formal release from 2016 uses kirigami1 which is deprecated
-  src = fetchFromGitHub {
-    owner = "KDE";
-    repo = pname;
-    rev = "4a1b3f954d2fe7e4919c0c5dbee1917776da582e";
-    sha256 = "1s5yy240x4cvrk93acygnrp5m10xp7ln013gdfbm0r5xvd8xy19k";
+  src = fetchurl {
+    url = "mirror://kde/stable/peruse/peruse-${finalAttrs.version}.tar.xz";
+    hash = "sha256-xnSVnKF20jbxVoFW41A22NZWVZUry/F7G+Ts5NK6M1E=";
   };
 
   nativeBuildInputs = [
     extra-cmake-modules
     kdoctools
-    wrapGAppsHook
+    wrapQtAppsHook
   ];
 
   propagatedBuildInputs = [
@@ -42,16 +42,21 @@ mkDerivation rec {
     kinit
     kirigami2
     knewstuff
+    okular
     plasma-framework
   ];
 
+  # the build is otherwise crazy loud
+  cmakeFlags = [ "-Wno-dev" ];
+
   pathsToLink = [ "/etc/xdg/peruse.knsrc" ];
 
   meta = with lib; {
     description = "A comic book reader";
     homepage = "https://peruse.kde.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "peruse";
+    inherit (kirigami2.meta) platforms;
   };
-
-}
+})
diff --git a/pkgs/tools/misc/pferd/default.nix b/pkgs/tools/misc/pferd/default.nix
index 46b525cd578bc..af343a19d9697 100644
--- a/pkgs/tools/misc/pferd/default.nix
+++ b/pkgs/tools/misc/pferd/default.nix
@@ -32,5 +32,6 @@ python3Packages.buildPythonApplication rec {
     description = "Tool for downloading course-related files from ILIAS";
     license = licenses.mit;
     maintainers = with maintainers; [ _0xbe7a ];
+    mainProgram = "pferd";
   };
 }
diff --git a/pkgs/tools/misc/pfetch-rs/default.nix b/pkgs/tools/misc/pfetch-rs/default.nix
index 4ceed388cd4bf..88f832db82a9b 100644
--- a/pkgs/tools/misc/pfetch-rs/default.nix
+++ b/pkgs/tools/misc/pfetch-rs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pfetch-rs";
-  version = "2.7.0";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "Gobidev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-KNd6EKYxuSNvWXNERZ+ZGq3HzRbE75LZPcAlfB4Aoyw=";
+    hash = "sha256-/eVtI+Uvb0r1af20MlQU8sDSNf6YyIBvFKSVp47JMfQ=";
   };
 
-  cargoHash = "sha256-Zxtf1OPsafm/BexDsHKb4Ei/ca3Nxz7c/U/A0AnAAI4=";
+  cargoHash = "sha256-eEBtrMF6dl5TzOZHnqjX4Yz2SfknGM2bzJcQWQIctPc=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.AppKit
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Gobidev/pfetch-rs/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ gobidev ];
+    mainProgram = "pfetch";
   };
 }
diff --git a/pkgs/tools/misc/pfetch/default.nix b/pkgs/tools/misc/pfetch/default.nix
index bbecf4656e749..5f9e8bf7676a6 100644
--- a/pkgs/tools/misc/pfetch/default.nix
+++ b/pkgs/tools/misc/pfetch/default.nix
@@ -23,5 +23,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ equirosa ];
+    mainProgram = "pfetch";
   };
 }
diff --git a/pkgs/tools/misc/pfsshell/default.nix b/pkgs/tools/misc/pfsshell/default.nix
index 10cde1385bb21..24eb379adf5cd 100644
--- a/pkgs/tools/misc/pfsshell/default.nix
+++ b/pkgs/tools/misc/pfsshell/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
       afl20    # APA, PFS, and iomanX libraries which are compiled together with this package
     ];
     maintainers = with maintainers; [ makefu ];
+    mainProgram = "pfsshell";
   };
 }
diff --git a/pkgs/tools/misc/pg_flame/default.nix b/pkgs/tools/misc/pg_flame/default.nix
index f35706bfc674d..da9cc6c77d591 100644
--- a/pkgs/tools/misc/pg_flame/default.nix
+++ b/pkgs/tools/misc/pg_flame/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/mgartner/pg_flame";
     license = licenses.asl20;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "pg_flame";
   };
 }
diff --git a/pkgs/tools/misc/pg_top/default.nix b/pkgs/tools/misc/pg_top/default.nix
index 9521136977f31..0999c9456d536 100644
--- a/pkgs/tools/misc/pg_top/default.nix
+++ b/pkgs/tools/misc/pg_top/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "http://ptop.projects.postgresql.org/";
     platforms = platforms.linux;
     license = licenses.free; # see commands.c
+    mainProgram = "pg_top";
   };
 }
diff --git a/pkgs/tools/misc/pgbadger/default.nix b/pkgs/tools/misc/pgbadger/default.nix
index ed1646c04f824..4054e6b20e94d 100644
--- a/pkgs/tools/misc/pgbadger/default.nix
+++ b/pkgs/tools/misc/pgbadger/default.nix
@@ -1,4 +1,4 @@
-{ buildPerlPackage, stdenv, lib, fetchFromGitHub, which, bzip2, PodMarkdown, JSONXS
+{ buildPerlPackage, shortenPerlShebang, stdenv, lib, fetchFromGitHub, which, bzip2, PodMarkdown, JSONXS
 , TextCSV_XS }:
 buildPerlPackage rec {
   pname = "pgbadger";
@@ -14,11 +14,19 @@ buildPerlPackage rec {
     patchShebangs ./pgbadger
   '';
 
+  # pgbadger has too many `-Idir` flags on its shebang line on Darwin,
+  # causing the build to fail when trying to generate the documentation.
+  # Rewrite the -I flags in `use lib` form.
+  preBuild = lib.optionalString stdenv.isDarwin ''
+    shortenPerlShebang ./pgbadger
+  '';
+
   outputs = [ "out" ];
 
   PERL_MM_OPT = "INSTALL_BASE=${placeholder "out"}";
 
   buildInputs = [ PodMarkdown JSONXS TextCSV_XS ];
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [ shortenPerlShebang ];
 
   nativeCheckInputs = [ which bzip2 ];
 
@@ -28,6 +36,6 @@ buildPerlPackage rec {
     changelog = "https://github.com/darold/pgbadger/raw/v${version}/ChangeLog";
     license = lib.licenses.postgresql;
     maintainers = lib.teams.determinatesystems.members;
-    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/pgbadger.x86_64-darwin
+    mainProgram = "pgbadger";
   };
 }
diff --git a/pkgs/tools/misc/pgcenter/default.nix b/pkgs/tools/misc/pgcenter/default.nix
index 507beb4989523..ba962a3936656 100644
--- a/pkgs/tools/misc/pgcenter/default.nix
+++ b/pkgs/tools/misc/pgcenter/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "Command-line admin tool for observing and troubleshooting PostgreSQL";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "pgcenter";
   };
 }
diff --git a/pkgs/tools/misc/pgmetrics/default.nix b/pkgs/tools/misc/pgmetrics/default.nix
index 7a24a87ca767c..0df0070e18b97 100644
--- a/pkgs/tools/misc/pgmetrics/default.nix
+++ b/pkgs/tools/misc/pgmetrics/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "Collect and display information and stats from a running PostgreSQL server";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "pgmetrics";
   };
 }
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index 1456cb4b142f2..cb4762c412f18 100644
--- a/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ davidak ];
     license = licenses.gpl3;
     platforms = with platforms; unix;
+    mainProgram = "phoronix-test-suite";
   };
 }
diff --git a/pkgs/tools/misc/phrase-cli/default.nix b/pkgs/tools/misc/phrase-cli/default.nix
index 51daa59b19ef3..a856ef8cf3d96 100644
--- a/pkgs/tools/misc/phrase-cli/default.nix
+++ b/pkgs/tools/misc/phrase-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "phrase-cli";
-  version = "2.12.0";
+  version = "2.19.3";
 
   src = fetchFromGitHub {
     owner = "phrase";
     repo = "phrase-cli";
     rev = version;
-    sha256 = "sha256-VGuVDlIn0SnE3ZHcYbfQ0lWESf0tEyb6CTk8G8jnRlg=";
+    sha256 = "sha256-Picdgy4CnMnKjENPfRvu0zLhykbH/uM0JfHh7cwDdoQ=";
   };
 
-  vendorHash = "sha256-YzOPt02zbgT0wglWGEkUiDJhSNQnzazPs5nnNFDI0+g=";
+  vendorHash = "sha256-an43wSx5zhMirKAUnYv+5kDcUlv1fe1+mLGbBS7p4Qs=";
 
   ldflags = [ "-X=github.com/phrase/phrase-cli/cmd.PHRASE_CLIENT_VERSION=${version}" ];
 
diff --git a/pkgs/tools/misc/pick/default.nix b/pkgs/tools/misc/pick/default.nix
index 9a6c6881f7df5..cee77d3a15880 100644
--- a/pkgs/tools/misc/pick/default.nix
+++ b/pkgs/tools/misc/pick/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "pick";
   };
 
 }
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
index 9685c80f06e55..d8422e3679fd2 100644
--- a/pkgs/tools/misc/picocom/default.nix
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/npat-efault/picocom/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "picocom";
   };
 }
diff --git a/pkgs/tools/misc/pipe-rename/default.nix b/pkgs/tools/misc/pipe-rename/default.nix
index 826d77815bc3d..dc8e545a7d8e4 100644
--- a/pkgs/tools/misc/pipe-rename/default.nix
+++ b/pkgs/tools/misc/pipe-rename/default.nix
@@ -13,6 +13,12 @@ rustPlatform.buildRustPackage rec {
 
   nativeCheckInputs = [ python3 ];
 
+  checkFlags = [
+    # tests are failing upstream
+    "--skip=test_dot"
+    "--skip=test_dotdot"
+  ];
+
   preCheck = ''
     patchShebangs tests/editors/env-editor.py
   '';
diff --git a/pkgs/tools/misc/pipectl/default.nix b/pkgs/tools/misc/pipectl/default.nix
index 9ce250bef78e6..f3e80655279f7 100644
--- a/pkgs/tools/misc/pipectl/default.nix
+++ b/pkgs/tools/misc/pipectl/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     description = "a simple named pipe management utility";
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "pipectl";
   };
 }
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index cdf77b0af427e..90c1e8d1e86aa 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -61,7 +61,8 @@ in stdenv.mkDerivation rec {
     homepage = "http://pipelight.net/";
     license = with lib.licenses; [ mpl11 gpl2 lgpl21 ];
     description = "A wrapper for using Windows plugins in Linux browsers";
-    maintainers = with lib.maintainers; [ skeidel ];
+    maintainers = with lib.maintainers; [ ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "pipelight-plugin";
   };
 }
diff --git a/pkgs/tools/misc/pipreqs/default.nix b/pkgs/tools/misc/pipreqs/default.nix
index 2689581b6c062..49062b3a5cb85 100644
--- a/pkgs/tools/misc/pipreqs/default.nix
+++ b/pkgs/tools/misc/pipreqs/default.nix
@@ -21,5 +21,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/bndr/pipreqs";
     license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
+    mainProgram = "pipreqs";
   };
 }
diff --git a/pkgs/tools/misc/pistol/default.nix b/pkgs/tools/misc/pistol/default.nix
index 22ddde837612c..79826e6f79249 100644
--- a/pkgs/tools/misc/pistol/default.nix
+++ b/pkgs/tools/misc/pistol/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     homepage = "https://github.com/doronbehar/pistol";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "pistol";
   };
 }
diff --git a/pkgs/tools/misc/piston-cli/default.nix b/pkgs/tools/misc/piston-cli/default.nix
index 8c78f3f7b30bc..44ec8eabc149b 100644
--- a/pkgs/tools/misc/piston-cli/default.nix
+++ b/pkgs/tools/misc/piston-cli/default.nix
@@ -33,5 +33,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/Shivansh-007/piston-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 ];
+    mainProgram = "piston";
   };
 }
diff --git a/pkgs/tools/misc/pixd/default.nix b/pkgs/tools/misc/pixd/default.nix
index 2e8f552e1a818..84ad2c92e2074 100644
--- a/pkgs/tools/misc/pixd/default.nix
+++ b/pkgs/tools/misc/pixd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.FireyFly ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "pixd";
   };
 }
diff --git a/pkgs/tools/misc/pk2cmd/default.nix b/pkgs/tools/misc/pk2cmd/default.nix
index b6678f52d7482..9b04a668dadbe 100644
--- a/pkgs/tools/misc/pk2cmd/default.nix
+++ b/pkgs/tools/misc/pk2cmd/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.microchip.com/pickit2";
     license = lib.licenses.unfree; #MicroChip-PK2
     description = "Microchip PIC programming software for the PICKit2 programmer";
+    mainProgram = "pk2cmd";
   };
 }
diff --git a/pkgs/tools/misc/pkgdiff/default.nix b/pkgs/tools/misc/pkgdiff/default.nix
index 2f68e9505edb2..45ec2df2beaf5 100644
--- a/pkgs/tools/misc/pkgdiff/default.nix
+++ b/pkgs/tools/misc/pkgdiff/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ sweber ];
     platforms = platforms.unix;
+    mainProgram = "pkgdiff";
   };
 }
diff --git a/pkgs/tools/misc/pkgtop/default.nix b/pkgs/tools/misc/pkgtop/default.nix
index 1d2f0c048f264..acb56dd47d4b0 100644
--- a/pkgs/tools/misc/pkgtop/default.nix
+++ b/pkgs/tools/misc/pkgtop/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "pkgtop";
-  version = "2.4.1";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "pkgtop";
     rev = version;
-    hash = "sha256-Skk7Zur2UMxNjrJmcp+FvUuNvbh9HmzuZ5mWcvhxcKk=";
+    hash = "sha256-NY8nx4BKAUq1nGBlzRzm2OH1k01TV6qs2IcoErhuxTc=";
   };
 
   vendorHash = "sha256-dlDbNym7CNn5088znMNgGAr2wBM3+nYv3q362353aLs=";
@@ -26,5 +26,6 @@ buildGoModule rec {
     changelog = "https://github.com/orhun/pkgtop/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "pkgtop";
   };
 }
diff --git a/pkgs/tools/misc/plantuml-server/default.nix b/pkgs/tools/misc/plantuml-server/default.nix
index 113da6a8f406f..6252425580d69 100644
--- a/pkgs/tools/misc/plantuml-server/default.nix
+++ b/pkgs/tools/misc/plantuml-server/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, nixosTests }:
 
 let
-  version = "1.2023.10";
+  version = "1.2023.13";
 in
 stdenv.mkDerivation rec {
   pname = "plantuml-server";
   inherit version;
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml-server/releases/download/v${version}/plantuml-v${version}.war";
-    sha256 = "sha256-EIdqY8sonLaHZCfOfAaUhm4M1XOek2M1OqPZkb/CTg4=";
+    sha256 = "sha256-8MfInkDJ57Usm4KTESwEig/X9xfoxXTf+oA9F3bgMT0=";
   };
 
   dontUnpack = true;
@@ -17,8 +17,12 @@ stdenv.mkDerivation rec {
     cp "$src" "$out/webapps/plantuml.war"
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) plantuml-server;
+  };
+
   meta = with lib; {
-    description = "A web application to generate UML diagrams on-the-fly.";
+    description = "A web application to generate UML diagrams on-the-fly";
     homepage = "https://plantuml.com/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 8ba527f0ffc2a..24f8187aadd94 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.2023.11";
+  version = "1.2024.0";
   pname = "plantuml";
 
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml/releases/download/v${version}/plantuml-pdf-${version}.jar";
-    sha256 = "sha256-WYulV/UuFE6xGAJvontHsLKSm7TAtgLrZe4m9WuCSpc=";
+    sha256 = "sha256-jpO4BhOyTS9y2e9d3AK911HDQa04zhPeFGyhz1FJN+Q=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -25,11 +25,12 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Draw UML diagrams using a simple and human readable text description";
-    homepage = "http://plantuml.sourceforge.net/";
+    homepage = "https://plantuml.com/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     # "plantuml -license" says GPLv3 or later
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bjornfor Mogria ];
     platforms = platforms.unix;
+    mainProgram = "plantuml";
   };
 }
diff --git a/pkgs/tools/misc/plantuml/plantuml-c4.nix b/pkgs/tools/misc/plantuml/plantuml-c4.nix
index a8d0001054fd8..2829d0a31eabc 100644
--- a/pkgs/tools/misc/plantuml/plantuml-c4.nix
+++ b/pkgs/tools/misc/plantuml/plantuml-c4.nix
@@ -12,13 +12,13 @@
 
 let
   c4-lib = fetchzip {
-    url = "https://github.com/plantuml-stdlib/C4-PlantUML/archive/88a3f99150c6ff7953c4a99b184d03412ffdedb1.zip";
-    sha256 = "sha256-vk4YWdGb47OsI9mApGTQ7OfELRZdBouzKfUZq3kchcM=";
+    url = "https://github.com/plantuml-stdlib/C4-PlantUML/archive/refs/tags/v2.8.0.zip";
+    hash = "sha256-pGtTFg7HcAFYPrjd+CAaxS4C6Cqaj94aq45v3NpiAxM=";
   };
 
   sprites = fetchzip {
     url = "https://github.com/tupadr3/plantuml-icon-font-sprites/archive/fa3f885dbd45c9cd0cdf6c0e5e4fb51ec8b76582.zip";
-    sha256 = "sha256-lt9+NNMIaZSkKNsGyHoqXUCTlKmZFGfNYYGjer6X0Xc=";
+    hash = "sha256-lt9+NNMIaZSkKNsGyHoqXUCTlKmZFGfNYYGjer6X0Xc=";
   };
 
   # In order to pre-fix the plantuml.jar parameter with the argument
@@ -41,7 +41,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "plantuml-c4";
-  version = "unstable-2022-08-21";
+  version = "2.8.0";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/misc/plocate/default.nix b/pkgs/tools/misc/plocate/default.nix
index 2a55841d7e538..b44cb0b148607 100644
--- a/pkgs/tools/misc/plocate/default.nix
+++ b/pkgs/tools/misc/plocate/default.nix
@@ -10,12 +10,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "plocate";
-  version = "1.1.19";
+  version = "1.1.22";
 
   src = fetchgit {
     url = "https://git.sesse.net/plocate";
     rev = version;
-    sha256 = "sha256-Vf/NgUPDL3KWMpjnyB2QR2sU6rQfPIADNU6OlpN+O0M=";
+    sha256 = "sha256-ejv1IsjbImnvI1oorvMoIvTBu3HuVy7VtgHNTIkqqro=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/plowshare/default.nix b/pkgs/tools/misc/plowshare/default.nix
index b5396f130f1da..4a87e5787bd29 100644
--- a/pkgs/tools/misc/plowshare/default.nix
+++ b/pkgs/tools/misc/plowshare/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
       A command-line download/upload tool for popular file sharing websites
     '';
     license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [ aforemny jfrankenau ];
+    maintainers = with lib.maintainers; [ aforemny ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/pls/default.nix b/pkgs/tools/misc/pls/default.nix
deleted file mode 100644
index c6d6d2e52835f..0000000000000
--- a/pkgs/tools/misc/pls/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, python3, fetchFromGitHub }:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "pls";
-  version = "5.4.0";
-  format = "pyproject";
-
-  src = fetchFromGitHub {
-    owner = "dhruvkb";
-    repo = "pls";
-    rev = version;
-    sha256 = "sha256-h93Kz+ETdHfnzypa8JjMvbzA1o/KS1UuTG8/vhEt7Vo=";
-  };
-
-  nativeBuildInputs = [ python3.pkgs.poetry-core ];
-
-  propagatedBuildInputs = with python3.pkgs; [
-    pyyaml
-    requests
-    rich
-  ];
-
-  nativeCheckInputs = with python3.pkgs; [
-    freezegun
-    jsonschema
-    pytestCheckHook
-  ];
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'rich = "^12.5.1"' 'rich = "*"' \
-  '';
-
-  pytestFlagsArray = [ "tests/" "--ignore=tests/e2e" ];
-
-  pythonImportsCheck = [ "pls" ];
-
-  meta = with lib; {
-    homepage = "https://dhruvkb.github.io/pls/";
-    description = "Prettier and powerful ls";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ arjan-s ];
-  };
-}
diff --git a/pkgs/tools/misc/pmbootstrap/default.nix b/pkgs/tools/misc/pmbootstrap/default.nix
index d982e94403c1c..6f11a2b3f3b57 100644
--- a/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/pkgs/tools/misc/pmbootstrap/default.nix
@@ -1,21 +1,20 @@
 { stdenv, lib, git, openssl, buildPythonApplication, pytestCheckHook, ps
-, fetchPypi, fetchFromGitLab, sudo }:
+, fetchPypi, fetchFromSourcehut, sudo }:
 
 buildPythonApplication rec {
   pname = "pmbootstrap";
-  version = "1.50.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2S3I3J3wmRkVSUshyQCUTuYgHLsDMnXZQHt7KySBzIY=";
+    hash = "sha256-buCfQsi10LezDzYeplArmFRSc3vbjtl+FuTm/VUS2us=";
   };
 
-  repo = fetchFromGitLab {
-    domain = "gitlab.com";
-    owner = "postmarketOS";
+  repo = fetchFromSourcehut {
+    owner = "~postmarketos";
     repo = pname;
     rev = version;
-    hash = "sha256-UkgCNob4nazFO8xXyosV+11Sj4yveYBfgh7aw+/6Rlg=";
+    hash = "sha256-3GZ4PeMnG/a46WwvWPQFeYbJPp+NGU7A98QasnlMIL0=";
   };
 
   pmb_test = "${repo}/test";
@@ -45,6 +44,7 @@ buildPythonApplication rec {
     "test_chroot_arguments"
     "test_chroot_interactive_shell"
     "test_chroot_interactive_shell_user"
+    "test_chroot_mount"
     "test_clean_worktree"
     "test_config_user"
     "test_cross_compile_distcc"
@@ -87,6 +87,12 @@ buildPythonApplication rec {
     "test_skip_already_built"
     "test_switch_to_channel_branch"
     "test_version"
+    "test_build_abuild_leftovers"
+    "test_get_all_component_names"
+    "test_check_config"
+    "test_extract_arch"
+    "test_extract_version"
+    "test_check"
   ];
 
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ git openssl ]}" ];
@@ -96,5 +102,6 @@ buildPythonApplication rec {
     homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "pmbootstrap";
   };
 }
diff --git a/pkgs/tools/misc/pod2mdoc/default.nix b/pkgs/tools/misc/pod2mdoc/default.nix
index 4e919e2848926..eba487a57fb7d 100644
--- a/pkgs/tools/misc/pod2mdoc/default.nix
+++ b/pkgs/tools/misc/pod2mdoc/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "pod2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/pokeget-rs/default.nix b/pkgs/tools/misc/pokeget-rs/default.nix
index 9dcd70219a443..55995e8b0bce3 100644
--- a/pkgs/tools/misc/pokeget-rs/default.nix
+++ b/pkgs/tools/misc/pokeget-rs/default.nix
@@ -5,17 +5,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pokeget-rs";
-  version = "1.3.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "talwat";
     repo = "pokeget-rs";
     rev = version;
-    hash = "sha256-UAkSMdHukwxDzOU/sIOuTazBbD68ORIGAWuwRxoC+EY=";
+    hash = "sha256-++MD7XYWJ4Oim/VSYSisu/DwazOEfQ4CJNLfR5sjP3M=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-A5bDZU/L3G2RWbc3Y6KEQAmLS4RuNSG+ROypxINlwLk=";
+  cargoHash = "sha256-lWImtmtoo3ujbHvaeijuVjt0NQhdp+mxuu8oxNutr2E=";
 
   meta = with lib; {
     description = "A better rust version of pokeget";
diff --git a/pkgs/tools/misc/poop/default.nix b/pkgs/tools/misc/poop/default.nix
index fe595f76ffaa4..d3b444d9472f9 100644
--- a/pkgs/tools/misc/poop/default.nix
+++ b/pkgs/tools/misc/poop/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "poop";
   };
 }
diff --git a/pkgs/tools/misc/portal/default.nix b/pkgs/tools/misc/portal/default.nix
index 978d3632da1f7..3577f0f0b31a5 100644
--- a/pkgs/tools/misc/portal/default.nix
+++ b/pkgs/tools/misc/portal/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/SpatiumPortae/portal/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ tennox ];
+    mainProgram = "portal";
   };
 }
diff --git a/pkgs/tools/misc/pouf/default.nix b/pkgs/tools/misc/pouf/default.nix
index 9206e16463edf..e114af2c2c1eb 100644
--- a/pkgs/tools/misc/pouf/default.nix
+++ b/pkgs/tools/misc/pouf/default.nix
@@ -24,10 +24,11 @@ rustPlatform.buildRustPackage rec {
   postInstall = "make PREFIX=$out copy-data";
 
   meta = with lib; {
-    description = "A cli program for produce fake datas.";
+    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 ];
+    mainProgram = "pouf";
   };
 }
diff --git a/pkgs/tools/misc/poweralertd/default.nix b/pkgs/tools/misc/poweralertd/default.nix
index 58d54f5707bad..677d85e18f090 100644
--- a/pkgs/tools/misc/poweralertd/default.nix
+++ b/pkgs/tools/misc/poweralertd/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ thibautmarty ];
+    mainProgram = "poweralertd";
   };
 }
diff --git a/pkgs/tools/misc/powerline-rs/default.nix b/pkgs/tools/misc/powerline-rs/default.nix
index 7222ac9be7d8c..5edde7b3653f9 100644
--- a/pkgs/tools/misc/powerline-rs/default.nix
+++ b/pkgs/tools/misc/powerline-rs/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "powerline-rs";
   };
 }
diff --git a/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix b/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
index ebe41abb8e333..3b0fcacd4892e 100644
--- a/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
+++ b/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
@@ -46,5 +46,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/yuvipanda/pre-commit-hook-ensure-sops";
     maintainers = with maintainers; [ nialov ];
     license = licenses.bsd3;
+    mainProgram = "pre-commit-hook-ensure-sops";
   };
 }
diff --git a/pkgs/tools/misc/pre-commit/default.nix b/pkgs/tools/misc/pre-commit/default.nix
index ded7b3290d3c4..11d76add076fc 100644
--- a/pkgs/tools/misc/pre-commit/default.nix
+++ b/pkgs/tools/misc/pre-commit/default.nix
@@ -10,6 +10,7 @@
 , go
 , nodejs
 , perl
+, cabal-install
 , testers
 , pre-commit
 }:
@@ -17,21 +18,22 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "pre-commit";
-  version = "3.3.3";
+  version = "3.6.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "pre-commit";
     repo = "pre-commit";
     rev = "v${version}";
-    hash = "sha256-6FKf4jLHUt2c7LSxFcq53IsfHOWeUSI+P9To0eh48+o=";
+    hash = "sha256-OTduVg8uhMdXs2gQ7KaMVOO1zQK4m489W9SU7PWIvcM=";
   };
 
   patches = [
     ./languages-use-the-hardcoded-path-to-python-binaries.patch
     ./hook-tmpl.patch
+    ./pygrep-pythonpath.patch
   ];
 
   propagatedBuildInputs = [
@@ -58,6 +60,7 @@ buildPythonApplication rec {
     pytest-xdist
     pytestCheckHook
     re-assert
+    cabal-install
   ];
 
   # i686-linux: dotnet-sdk not available
@@ -156,6 +159,8 @@ buildPythonApplication rec {
     "test_run_versioned_node_hook"
     "test_rust_cli_additional_dependencies"
     "test_swift_language"
+    "test_run_example_executable"
+    "test_run_dep"
 
     # i don't know why these fail
     "test_install_existing_hooks_no_overwrite"
@@ -181,5 +186,6 @@ buildPythonApplication rec {
     homepage = "https://pre-commit.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ borisbabic ];
+    mainProgram = "pre-commit";
   };
 }
diff --git a/pkgs/tools/misc/pre-commit/pygrep-pythonpath.patch b/pkgs/tools/misc/pre-commit/pygrep-pythonpath.patch
new file mode 100644
index 0000000000000..722b436169bef
--- /dev/null
+++ b/pkgs/tools/misc/pre-commit/pygrep-pythonpath.patch
@@ -0,0 +1,13 @@
+diff --git a/pre_commit/languages/pygrep.py b/pre_commit/languages/pygrep.py
+index ec55560..44e08a1 100644
+--- a/pre_commit/languages/pygrep.py
++++ b/pre_commit/languages/pygrep.py
+@@ -98,7 +98,7 @@ def run_hook(
+         color: bool,
+ ) -> tuple[int, bytes]:
+     cmd = (sys.executable, '-m', __name__, *args, entry)
+-    return xargs(cmd, file_args, color=color)
++    return xargs(cmd, file_args, color=color, env={ "PYTHONPATH": ':'.join(sys.path) })
+ 
+ 
+ def main(argv: Sequence[str] | None = None) -> int:
diff --git a/pkgs/tools/misc/precice-config-visualizer/default.nix b/pkgs/tools/misc/precice-config-visualizer/default.nix
index be6e7f0a9bb61..9b6d40a0c7338 100644
--- a/pkgs/tools/misc/precice-config-visualizer/default.nix
+++ b/pkgs/tools/misc/precice-config-visualizer/default.nix
@@ -23,5 +23,6 @@ python3Packages.buildPythonApplication rec {
     description = "Small python tool for visualizing the preCICE xml configuration ";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Scriptkiddi ];
+    mainProgram = "precice-config-visualizer";
   };
 }
diff --git a/pkgs/tools/misc/present-cli/default.nix b/pkgs/tools/misc/present-cli/default.nix
index 99427833ddff3..7c1c87647a190 100644
--- a/pkgs/tools/misc/present-cli/default.nix
+++ b/pkgs/tools/misc/present-cli/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/terror/present/";
     license = licenses.cc0;
     maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "present";
   };
 }
diff --git a/pkgs/tools/misc/pridecat/default.nix b/pkgs/tools/misc/pridecat/default.nix
index d7bf2b86d6da6..4d4ed57fc2352 100644
--- a/pkgs/tools/misc/pridecat/default.nix
+++ b/pkgs/tools/misc/pridecat/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/lunasorcery/pridecat";
     license = licenses.cc-by-nc-sa-40;
     maintainers = with maintainers; [ lunarequest ];
+    mainProgram = "pridecat";
   };
 }
diff --git a/pkgs/tools/misc/pridefetch/default.nix b/pkgs/tools/misc/pridefetch/default.nix
index 22e5c7a0afb20..dedd3b336d78a 100644
--- a/pkgs/tools/misc/pridefetch/default.nix
+++ b/pkgs/tools/misc/pridefetch/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation {
       maintainers.minion3665
     ];
     platforms = platforms.all;
+    mainProgram = "pridefetch";
   };
 }
diff --git a/pkgs/tools/misc/procyon/default.nix b/pkgs/tools/misc/procyon/default.nix
index e5ef58e3a3e19..7026ce6febfbb 100644
--- a/pkgs/tools/misc/procyon/default.nix
+++ b/pkgs/tools/misc/procyon/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mstrobel/procyon/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "procyon";
   };
 }
diff --git a/pkgs/tools/misc/profetch/default.nix b/pkgs/tools/misc/profetch/default.nix
index c113f48fd13dd..fc5f3cea4a0f6 100644
--- a/pkgs/tools/misc/profetch/default.nix
+++ b/pkgs/tools/misc/profetch/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.vel ];
+    mainProgram = "profetch";
   };
 }
diff --git a/pkgs/tools/misc/profile-cleaner/default.nix b/pkgs/tools/misc/profile-cleaner/default.nix
index a33199efa7da2..8e5d8325d0596 100644
--- a/pkgs/tools/misc/profile-cleaner/default.nix
+++ b/pkgs/tools/misc/profile-cleaner/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     platforms = lib.platforms.all;
     maintainers = [ lib.maintainers.devhell ];
+    mainProgram = "profile-cleaner";
   };
 }
diff --git a/pkgs/tools/misc/profile-sync-daemon/default.nix b/pkgs/tools/misc/profile-sync-daemon/default.nix
index b2e6deea725f5..20b6c1aed3665 100644
--- a/pkgs/tools/misc/profile-sync-daemon/default.nix
+++ b/pkgs/tools/misc/profile-sync-daemon/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "profile-sync-daemon";
-  version = "6.48";
+  version = "6.50";
 
   src = fetchFromGitHub {
     owner = "graysky2";
     repo = "profile-sync-daemon";
     rev = "v${version}";
-    hash = "sha256-EHzRuE24Bj+lqRiPTCAPEAV4zVMK8iW2cF6OgO1izZw=";
+    hash = "sha256-Wb9YLxuu9i9s/Y6trz5NZDU9WRywe3138cp5Q2gWbxM=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/progress/default.nix b/pkgs/tools/misc/progress/default.nix
index 94eeace1dc2e6..063d4d122acb4 100644
--- a/pkgs/tools/misc/progress/default.nix
+++ b/pkgs/tools/misc/progress/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "progress";
-  version = "0.16";
+  version = "0.17";
 
   src = fetchFromGitHub {
     owner = "Xfennec";
     repo = "progress";
     rev = "v${version}";
-    sha256 = "sha256-kkEyflyBaQ5hUVo646NUuC1u54uzLJJsVFej9pMEwT0=";
+    sha256 = "sha256-riewkageSZIlwDNMjYep9Pb2q1GJ+WMXazokJGbb4bE=";
   };
 
   nativeBuildInputs = [ pkg-config which ];
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "progress";
   };
 }
diff --git a/pkgs/tools/misc/promexplorer/default.nix b/pkgs/tools/misc/promexplorer/default.nix
deleted file mode 100644
index efdbbe4e6da58..0000000000000
--- a/pkgs/tools/misc/promexplorer/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, nimPackages, fetchFromGitHub }:
-nimPackages.buildNimPackage rec {
-  pname = "promexplorer";
-  version = "0.0.5";
-  nimBinOnly = true;
-  src = fetchFromGitHub {
-    owner = "marcusramberg";
-    repo = "promexplorer";
-    rev = "v${version}";
-    hash = "sha256-a+9afqdgLgGf2hOWf/QsElq+CurDfE1qDmYCzodZIDU=";
-  };
-
-  buildInputs = with nimPackages; [ illwill illwillwidgets ];
-
-  meta = with lib; {
-    description = "A simple tool to explore prometheus exporter metrics";
-    homepage = "https://github.com/marcusramberg/promexplorer";
-    license = licenses.mit;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ marcusramberg ];
-  };
-}
diff --git a/pkgs/tools/misc/promql-cli/default.nix b/pkgs/tools/misc/promql-cli/default.nix
index a65dfb87ea0a8..d5188e83f2935 100644
--- a/pkgs/tools/misc/promql-cli/default.nix
+++ b/pkgs/tools/misc/promql-cli/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/nalbury/promql-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "promql";
   };
 }
diff --git a/pkgs/tools/misc/proximity-sort/default.nix b/pkgs/tools/misc/proximity-sort/default.nix
index 8ad6e5c1c176e..3b0f1ca5be3d5 100644
--- a/pkgs/tools/misc/proximity-sort/default.nix
+++ b/pkgs/tools/misc/proximity-sort/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jonhoo/proximity-sort";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "proximity-sort";
   };
 }
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index f14339e007f5a..2449fd30171d8 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "5.8.0";
+  version = "5.8.1";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "sha256-VkWGVKLN8arc6BOivmjSk8MtMbp2WYqZE9lM8oTQe+U=";
+    sha256 = "sha256-nsGBBGw66LCwOuNdBjlz6u9RT+BX6iZmZeDY9yJoc+c=";
   };
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = [ maintainers.jlesquembre ];
+    mainProgram = "pspg";
   };
 }
diff --git a/pkgs/tools/misc/psql2csv/default.nix b/pkgs/tools/misc/psql2csv/default.nix
index 21b58583bcca4..729582f2e404a 100644
--- a/pkgs/tools/misc/psql2csv/default.nix
+++ b/pkgs/tools/misc/psql2csv/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     inherit (postgresql.meta) platforms;
+    mainProgram = "psql2csv";
   };
 }
diff --git a/pkgs/tools/misc/psrecord/default.nix b/pkgs/tools/misc/psrecord/default.nix
index 2f2b14e4875a3..04b1970fe02b0 100644
--- a/pkgs/tools/misc/psrecord/default.nix
+++ b/pkgs/tools/misc/psrecord/default.nix
@@ -27,5 +27,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/astrofrog/psrecord";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    mainProgram = "psrecord";
   };
 }
diff --git a/pkgs/tools/misc/pubs/default.nix b/pkgs/tools/misc/pubs/default.nix
index 4c52b9b239b46..b02aeb8aefb6a 100644
--- a/pkgs/tools/misc/pubs/default.nix
+++ b/pkgs/tools/misc/pubs/default.nix
@@ -7,11 +7,12 @@
 python3.pkgs.buildPythonApplication rec {
   pname = "pubs";
   version = "0.9.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pubs";
     repo = "pubs";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-U/9MLqfXrzYVGttFSafw4pYDy26WgdsJMCxciZzO1pw=";
   };
 
@@ -28,22 +29,26 @@ python3.pkgs.buildPythonApplication rec {
     })
   ];
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
-    pyyaml
+    argcomplete
+    beautifulsoup4
     bibtexparser
-    python-dateutil
-    six
-    requests
     configobj
-    beautifulsoup4
     feedparser
-    argcomplete
+    python-dateutil
+    pyyaml
+    requests
+    six
   ];
 
   nativeCheckInputs = with python3.pkgs; [
-    pyfakefs
-    mock
     ddt
+    mock
+    pyfakefs
     pytestCheckHook
   ];
 
@@ -57,11 +62,18 @@ python3.pkgs.buildPythonApplication rec {
   disabledTests = [
     # https://github.com/pubs/pubs/issues/276
     "test_readme"
+    # AssertionError: Lists differ: ['Ini[112 chars]d to...
+    "test_add_non_standard"
+  ];
+
+  pythonImportsCheck = [
+    "pubs"
   ];
 
   meta = with lib; {
     description = "Command-line bibliography manager";
     homepage = "https://github.com/pubs/pubs";
+    changelog = "https://github.com/pubs/pubs/blob/v${version}/changelog.md";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ gebner dotlambda ];
   };
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index bd06fadee1ee1..2c8f0d5521ba3 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pv";
-  version = "1.8.0";
+  version = "1.8.5";
 
   src = fetchurl {
     url = "https://www.ivarch.com/programs/sources/pv-${version}.tar.gz";
-    sha256 = "sha256-XOxPc3gmoO3atHHdO3Wlh70poufPowBo1X8pQ5olH98=";
+    sha256 = "sha256-0ilI0GvgalvjczYxjeVAoiFb4QqwFj+M0jogFJZHt4A=";
   };
 
   meta = {
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.artistic2;
     maintainers = with lib.maintainers; [ matthiasbeyer ];
     platforms = lib.platforms.all;
+    mainProgram = "pv";
   };
 }
diff --git a/pkgs/tools/misc/pws/default.nix b/pkgs/tools/misc/pws/default.nix
index 783bb9b5a384f..97f4585686778 100644
--- a/pkgs/tools/misc/pws/default.nix
+++ b/pkgs/tools/misc/pws/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ swistak35 nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "pws";
   };
 }
diff --git a/pkgs/tools/misc/q-text-as-data/default.nix b/pkgs/tools/misc/q-text-as-data/default.nix
index 69d11ab34589f..5a63752b82383 100644
--- a/pkgs/tools/misc/q-text-as-data/default.nix
+++ b/pkgs/tools/misc/q-text-as-data/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.taneb ];
     platforms = platforms.all;
+    mainProgram = "q";
   };
 }
diff --git a/pkgs/tools/misc/qdl/default.nix b/pkgs/tools/misc/qdl/default.nix
index e00b4f352e8f2..02435272535fd 100644
--- a/pkgs/tools/misc/qdl/default.nix
+++ b/pkgs/tools/misc/qdl/default.nix
@@ -1,16 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, libxml2, systemd }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, libxml2
+, systemd
+}:
 
 stdenv.mkDerivation {
   pname   = "qdl";
-  version = "unstable-2021-05-06";
+  version = "unstable-2023-04-11";
 
   src = fetchFromGitHub {
-    owner  = "andersson";
-    repo   = "qdl";
-    rev    = "2021b303a81ca1bcf21b7f1f23674b5c8747646f";
-    sha256 = "0akrdca4jjdkfdya36vy1y5vzimrc4pp5jm24rmlw8hbqxvj72ri";
+    owner = "linux-msm";
+    repo = "qdl";
+    rev = "3b22df2bc7de02d867334af3a7aa8606db4f8cdd";
+    sha256 = "sha256-2sL9HX73APTn9nQOx1Efdkz9F4bNASPMVFMx6YOqxyc=";
   };
 
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ systemd libxml2 ];
 
   installPhase = ''
@@ -20,10 +27,11 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    homepage    = "https://github.com/andersson/qdl";
+    homepage = "https://github.com/linux-msm/qdl";
     description = "Tool for flashing images to Qualcomm devices";
-    license     = licenses.bsd3;
+    license = licenses.bsd3;
     maintainers = with maintainers; [ muscaln ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
+    mainProgram = "qdl";
   };
 }
diff --git a/pkgs/tools/misc/qflipper/default.nix b/pkgs/tools/misc/qflipper/default.nix
index 86043f7b0ba45..5c139d017c864 100644
--- a/pkgs/tools/misc/qflipper/default.nix
+++ b/pkgs/tools/misc/qflipper/default.nix
@@ -24,8 +24,8 @@
 }:
 let
   pname = "qFlipper";
-  version = "1.3.2";
-  sha256 = "sha256-n/vvLR4p7ZmQC+FuYOvarmgydfYwxRBRktzs7CfiNQg=";
+  version = "1.3.3";
+  sha256 = "sha256-/Xzy+OA0Nl/UlSkOOZW2YsOHdJvS/7X3Z3ITkPByAOc=";
   timestamp = "99999999999";
   commit = "nix-${version}";
 
diff --git a/pkgs/tools/misc/qjoypad/default.nix b/pkgs/tools/misc/qjoypad/default.nix
index 6770ec133d3ca..a602e7b7fad62 100644
--- a/pkgs/tools/misc/qjoypad/default.nix
+++ b/pkgs/tools/misc/qjoypad/default.nix
@@ -35,5 +35,6 @@ mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with maintainers; [ astsmtl ];
     platforms = with platforms; linux;
+    mainProgram = "qjoypad";
   };
 }
diff --git a/pkgs/tools/misc/qmake2cmake/default.nix b/pkgs/tools/misc/qmake2cmake/default.nix
index ea70325cee8ee..b3c3468973b86 100644
--- a/pkgs/tools/misc/qmake2cmake/default.nix
+++ b/pkgs/tools/misc/qmake2cmake/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "qmake2cmake";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchgit {
     url = "https://codereview.qt-project.org/qt/qmake2cmake";
     rev = "v${version}";
-    hash = "sha256-6a1CIzHj9kmNgWN6QPNNUbiugkyfSrrIb7Fbz0ocr6o=";
+    hash = "sha256-M5XVQ8MXo2Yxg5eZCho2YAGFtB0h++mEAg8NcQVuP/w=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/qmk/default.nix b/pkgs/tools/misc/qmk/default.nix
index 598258d5cf040..42361d5e63cc4 100644
--- a/pkgs/tools/misc/qmk/default.nix
+++ b/pkgs/tools/misc/qmk/default.nix
@@ -5,6 +5,7 @@
 , avrdude
 , dfu-programmer
 , dfu-util
+, wb32-dfu-updater
 , gcc-arm-embedded
 , gnumake
 , teensy-loader-cli
@@ -38,6 +39,7 @@ python3.pkgs.buildPythonApplication rec {
     avrdude
     dfu-programmer
     dfu-util
+    wb32-dfu-updater
     teensy-loader-cli
     gcc-arm-embedded
     gnumake
@@ -69,5 +71,6 @@ python3.pkgs.buildPythonApplication rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple babariviere ekleog ];
+    mainProgram = "qmk";
   };
 }
diff --git a/pkgs/tools/misc/qmk_hid/default.nix b/pkgs/tools/misc/qmk_hid/default.nix
index c8f3ae9b91950..f5d1b61868a3a 100644
--- a/pkgs/tools/misc/qmk_hid/default.nix
+++ b/pkgs/tools/misc/qmk_hid/default.nix
@@ -7,28 +7,35 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "qmk_hid";
-  version = "0.1.5";
+  version = "0.1.11";
 
   src = fetchFromGitHub {
     owner = "FrameworkComputer";
     repo = "qmk_hid";
     rev = "v${version}";
-    hash = "sha256-k5D+Ph4DtdTafdNhclK3t4SmHmktuOKRlMMGMmKp48E=";
+    hash = "sha256-k5cZcrjen7nNJM9mKQEwNTVfBPawXwbwNlCyTARdH/g=";
   };
 
-  cargoHash = "sha256-+frWup9sbxCAxl2oiHAn1ccpuGkfa3kjerUByd65oSI=";
+  cargoHash = "sha256-GrerrNDoSFtOEAf0vB9MlkBl+yLnzd/szrpFsAmkB6s=";
 
   nativeBuildInputs = [
     pkg-config
   ];
+
   buildInputs = [
     systemd
   ];
 
+  checkFlags = [
+    # test doesn't compile
+    "--skip=src/lib.rs"
+  ];
+
   meta = with lib; {
     description = "Commandline tool for interactng with QMK devices over HID";
     homepage = "https://github.com/FrameworkComputer/qmk_hid";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ janik ];
+    mainProgram = "qmk_hid";
   };
 }
diff --git a/pkgs/tools/misc/qrscan/default.nix b/pkgs/tools/misc/qrscan/default.nix
index 91b8cfc18db37..6ac80bb7f746d 100644
--- a/pkgs/tools/misc/qrscan/default.nix
+++ b/pkgs/tools/misc/qrscan/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub, stdenv }:
+{ clang_15, lib, rustPlatform, fetchFromGitHub, stdenv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "qrscan";
@@ -12,7 +12,9 @@ rustPlatform.buildRustPackage rec {
   };
 
   nativeBuildInputs = [
-    rustPlatform.bindgenHook
+    (rustPlatform.bindgenHook.overrideAttrs {
+      libclang = clang_15.cc.lib;
+    })
   ];
 
   cargoHash = "sha256-P40IwFRtEQp6BGRgmt1x3UXtAKtWaMjR3kqhYq+p7wQ=";
diff --git a/pkgs/tools/misc/qt5ct/default.nix b/pkgs/tools/misc/qt5ct/default.nix
index d031168a6935f..38f9f10d9838c 100644
--- a/pkgs/tools/misc/qt5ct/default.nix
+++ b/pkgs/tools/misc/qt5ct/default.nix
@@ -23,9 +23,10 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Qt5 Configuration Tool";
-    homepage = "https://www.opendesktop.org/content/show.php?content=168066";
+    homepage = "https://sourceforge.net/projects/qt5ct/";
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ ralith ];
+    mainProgram = "qt5ct";
   };
 }
diff --git a/pkgs/tools/misc/qt6ct/default.nix b/pkgs/tools/misc/qt6ct/default.nix
index c011ae1b78aa0..248bc3a48e4cc 100644
--- a/pkgs/tools/misc/qt6ct/default.nix
+++ b/pkgs/tools/misc/qt6ct/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ Flakebi Scrumplex ];
+    mainProgram = "qt6ct";
   };
 })
diff --git a/pkgs/tools/misc/quich/default.nix b/pkgs/tools/misc/quich/default.nix
index 1b54eb01112c0..effd7993b8037 100644
--- a/pkgs/tools/misc/quich/default.nix
+++ b/pkgs/tools/misc/quich/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.xdhampus ];
     platforms = platforms.all;
+    mainProgram = "quich";
   };
 }
diff --git a/pkgs/tools/misc/radeon-profile/default.nix b/pkgs/tools/misc/radeon-profile/default.nix
index acadda5c549b3..8c42cccfcdf0d 100644
--- a/pkgs/tools/misc/radeon-profile/default.nix
+++ b/pkgs/tools/misc/radeon-profile/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
     homepage    = "https://github.com/marazmista/radeon-profile";
     license     = licenses.gpl2Plus;
     platforms   = platforms.linux;
+    mainProgram = "radeon-profile";
   };
 
 }
diff --git a/pkgs/tools/misc/ramfetch/default.nix b/pkgs/tools/misc/ramfetch/default.nix
index a60315eaa58c1..136c335982771 100644
--- a/pkgs/tools/misc/ramfetch/default.nix
+++ b/pkgs/tools/misc/ramfetch/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.markbeep ];
+    mainProgram = "ramfetch";
   };
 }
diff --git a/pkgs/tools/misc/rargs/default.nix b/pkgs/tools/misc/rargs/default.nix
index ed15e81709d9b..54c7e393d2d26 100644
--- a/pkgs/tools/misc/rargs/default.nix
+++ b/pkgs/tools/misc/rargs/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/lolabout/rargs";
     license     = with licenses; [ mit ];
     maintainers = with maintainers; [ pblkt ];
+    mainProgram = "rargs";
   };
 }
diff --git a/pkgs/tools/misc/rates/default.nix b/pkgs/tools/misc/rates/default.nix
index 5d8b648469100..3989074d2461c 100644
--- a/pkgs/tools/misc/rates/default.nix
+++ b/pkgs/tools/misc/rates/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lunush/rates";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "rates";
   };
 }
diff --git a/pkgs/tools/misc/rauc/default.nix b/pkgs/tools/misc/rauc/default.nix
index 2bd41d21a5220..d6e8486681acc 100644
--- a/pkgs/tools/misc/rauc/default.nix
+++ b/pkgs/tools/misc/rauc/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rauc";
-  version = "1.10.1";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KxU8/ExRsyqhV3np1EqAzpFm0Uy4fY/oi9lS2GBYHZE=";
+    sha256 = "sha256-xvuBMOAXnuRYCkripjwfv64BCTLySNxebyHF3sB8EQw=";
   };
 
   passthru = {
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux;
+    mainProgram = "rauc";
   };
 }
diff --git a/pkgs/tools/misc/remind/default.nix b/pkgs/tools/misc/remind/default.nix
index 945e592e848a3..46a69bbbc2b22 100644
--- a/pkgs/tools/misc/remind/default.nix
+++ b/pkgs/tools/misc/remind/default.nix
@@ -15,11 +15,11 @@ let
 in
 tcl.mkTclDerivation rec {
   pname = "remind";
-  version = "04.02.05";
+  version = "04.02.08";
 
   src = fetchurl {
     url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
-    sha256 = "sha256-nOEFhVwZvgUod+j/5ifllFgTS7I8+hOAeMSDlRH4+Ag=";
+    sha256 = "sha256-GBuX5sQbY7oXcm8QTlWXcX6lrwgqQRF1UTBZ3zPTChU=";
   };
 
   propagatedBuildInputs = tclLibraries;
diff --git a/pkgs/tools/misc/remote-exec/default.nix b/pkgs/tools/misc/remote-exec/default.nix
index afedab81cbd6e..557bde26c4650 100644
--- a/pkgs/tools/misc/remote-exec/default.nix
+++ b/pkgs/tools/misc/remote-exec/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , buildPythonApplication
 , click
-, pydantic
+, pydantic_1
 , toml
 , watchdog
 , pytestCheckHook
@@ -29,7 +29,7 @@ buildPythonApplication rec {
 
   propagatedBuildInputs = [
     click
-    pydantic
+    pydantic_1
     toml
     watchdog
   ];
diff --git a/pkgs/tools/misc/rename/default.nix b/pkgs/tools/misc/rename/default.nix
index a8b5f4a54ace9..d7eed90d06397 100644
--- a/pkgs/tools/misc/rename/default.nix
+++ b/pkgs/tools/misc/rename/default.nix
@@ -15,5 +15,6 @@ perlPackages.buildPerlPackage rec {
     homepage = "https://github.com/pstray/rename";
     maintainers = with maintainers; [ mkg cyplo ];
     license = with licenses; [ gpl1Plus ];
+    mainProgram = "rename";
   };
 }
diff --git a/pkgs/tools/misc/rfc/default.nix b/pkgs/tools/misc/rfc/default.nix
index e58c35fef3bdc..60d77bfbaca21 100644
--- a/pkgs/tools/misc/rfc/default.nix
+++ b/pkgs/tools/misc/rfc/default.nix
@@ -44,5 +44,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.all;
+    mainProgram = "rfc";
   };
 }
diff --git a/pkgs/tools/misc/riemann-c-client/default.nix b/pkgs/tools/misc/riemann-c-client/default.nix
index 0302a423a4fb7..7c744935064f6 100644
--- a/pkgs/tools/misc/riemann-c-client/default.nix
+++ b/pkgs/tools/misc/riemann-c-client/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchFromGitea, autoreconfHook, pkg-config, file , protobufc }:
+{ lib, stdenv, fetchFromGitea, autoreconfHook, check, pkg-config, file, protobufc
+,withWolfSSL ? false, wolfssl
+,withGnuTLS ? false, gnutls
+,withJSON ? true, json_c
+}:
 
 stdenv.mkDerivation rec {
   pname = "riemann-c-client";
@@ -9,20 +13,30 @@ stdenv.mkDerivation rec {
     owner = "algernon";
     repo = "riemann-c-client";
     rev = "riemann-c-client-${version}";
-    sha256 = "sha256-FIhTT57g2uZBaH3EPNxNUNJn9n+0ZOhI6WMyF+xIr/Q=";
+    hash = "sha256-FIhTT57g2uZBaH3EPNxNUNJn9n+0ZOhI6WMyF+xIr/Q=";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ file protobufc ];
+  outputs = [ "bin" "dev" "out" ];
 
-  preBuild = ''
-    make lib/riemann/proto/riemann.pb-c.h
-  '';
+  nativeBuildInputs = [ autoreconfHook check pkg-config ];
+  buildInputs = [ file protobufc ]
+    ++ lib.optional withWolfSSL wolfssl
+    ++ lib.optional withGnuTLS gnutls
+    ++ lib.optional withJSON json_c
+  ;
+
+  configureFlags = []
+    ++ lib.optional withWolfSSL "--with-tls=wolfssl"
+    ++ lib.optional withGnuTLS "--with-tls=gnutls"
+  ;
+
+  doCheck = true;
+  enableParallelBuilding = true;
 
   meta = with lib; {
     homepage = "https://git.madhouse-project.org/algernon/riemann-c-client";
     description = "A C client library for the Riemann monitoring system";
-    license = licenses.gpl3;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ pradeepchhetri ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/misc/rig/default.nix b/pkgs/tools/misc/rig/default.nix
index f21873df15e10..b9a3e0951e3c7 100644
--- a/pkgs/tools/misc/rig/default.nix
+++ b/pkgs/tools/misc/rig/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ tomberek ];
     platforms = with lib.platforms; all;
+    mainProgram = "rig";
   };
 }
diff --git a/pkgs/tools/misc/ripdrag/default.nix b/pkgs/tools/misc/ripdrag/default.nix
index 3417382bab91c..fd9d5a8a3514b 100644
--- a/pkgs/tools/misc/ripdrag/default.nix
+++ b/pkgs/tools/misc/ripdrag/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ripdrag";
-  version = "0.4.4";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "nik012003";
     repo = "ripdrag";
     rev = "v${version}";
-    hash = "sha256-GWNu970nyD4E2mWghOtHnuvVYGhgZ87zNCNxSpxOsgQ=";
+    hash = "sha256-42sfSrwRlpaO4Dkw6m6wcKXef5yKZjw9MMoYNwIF6/o=";
   };
 
-  cargoHash = "sha256-aN+25hhE6LhI8M+enyzsfSTARIxbY36mdeP70rjBJQ8=";
+  cargoHash = "sha256-mW334GTAUAUw8xs2Idpr2ThGyN1P0GbP/RjDqj5Ttr0=";
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
 
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/nik012003/ripdrag/releases/tag/${src.rev}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "ripdrag";
   };
 }
diff --git a/pkgs/tools/misc/ristate/default.nix b/pkgs/tools/misc/ristate/default.nix
index 7c8dbb52181df..3c4baea4d3c1e 100644
--- a/pkgs/tools/misc/ristate/default.nix
+++ b/pkgs/tools/misc/ristate/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/snakedye/ristate";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "ristate";
   };
 }
diff --git a/pkgs/tools/misc/rkvm/default.nix b/pkgs/tools/misc/rkvm/default.nix
new file mode 100644
index 0000000000000..bf6ef6e482d00
--- /dev/null
+++ b/pkgs/tools/misc/rkvm/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, libevdev
+, openssl
+, makeWrapper
+, nixosTests
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rkvm";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "htrefil";
+    repo = pname;
+    rev = version;
+    hash = "sha256-bWDVc5pWc5gtwGF3vwUgjDhqZP7E79nteKiuAEEbw6E=";
+  };
+
+  cargoHash = "sha256-FUaycVxW7QJ5gTZ/8bWjqSaMSepRF5iqlBNJLaDRNxc=";
+
+  nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook makeWrapper ];
+  buildInputs = [ libevdev ];
+
+  postInstall = ''
+    install -Dm444 -t "$out/lib/systemd/system" systemd/rkvm-*.service
+    install -Dm444 example/server.toml "$out/etc/rkvm/server.example.toml"
+    install -Dm444 example/client.toml "$out/etc/rkvm/client.example.toml"
+
+    wrapProgram $out/bin/rkvm-certificate-gen --prefix PATH : ${lib.makeBinPath [ openssl ]}
+  '';
+
+  passthru.tests = {
+    inherit (nixosTests) rkvm;
+  };
+
+  meta = with lib; {
+    description = "Virtual KVM switch for Linux machines";
+    homepage = "https://github.com/htrefil/rkvm";
+    changelog = "https://github.com/htrefil/rkvm/releases/tag/${version}";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ckie ];
+  };
+}
diff --git a/pkgs/tools/misc/rlwrap/default.nix b/pkgs/tools/misc/rlwrap/default.nix
index 34465b4e251e5..f1c2d6a58971e 100644
--- a/pkgs/tools/misc/rlwrap/default.nix
+++ b/pkgs/tools/misc/rlwrap/default.nix
@@ -20,11 +20,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline ];
 
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error=implicit-function-declaration";
+
   meta = with lib; {
     description = "Readline wrapper for console programs";
     homepage = "https://github.com/hanslub42/rlwrap";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ srapenne jlesquembre ];
+    maintainers = with maintainers; [ jlesquembre ];
+    mainProgram = "rlwrap";
   };
 }
diff --git a/pkgs/tools/misc/rmate-sh/default.nix b/pkgs/tools/misc/rmate-sh/default.nix
index 7fb51344edd1b..bc93c6e437fe2 100644
--- a/pkgs/tools/misc/rmate-sh/default.nix
+++ b/pkgs/tools/misc/rmate-sh/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl3;
     maintainers = with maintainers; [ pbsds ];
+    mainProgram = "rmate";
   };
 }
diff --git a/pkgs/tools/misc/rmlint/default.nix b/pkgs/tools/misc/rmlint/default.nix
index ec59a661ffcf0..502761dc94261 100644
--- a/pkgs/tools/misc/rmlint/default.nix
+++ b/pkgs/tools/misc/rmlint/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3;
     maintainers = with maintainers; [ aaschmid koral ];
+    mainProgram = "rmlint";
   };
 }
diff --git a/pkgs/tools/misc/rmw/default.nix b/pkgs/tools/misc/rmw/default.nix
index 46f5d9ae50ce9..a6bbb40840297 100644
--- a/pkgs/tools/misc/rmw/default.nix
+++ b/pkgs/tools/misc/rmw/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/theimpossibleastronaut/rmw/blob/${src.rev}/ChangeLog";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "rmw";
   };
 }
diff --git a/pkgs/tools/misc/rot8/default.nix b/pkgs/tools/misc/rot8/default.nix
index aa4d925f5aedb..6a62d05b5a5d5 100644
--- a/pkgs/tools/misc/rot8/default.nix
+++ b/pkgs/tools/misc/rot8/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/efernau/rot8";
     license = licenses.mit;
     maintainers = [ maintainers.smona ];
-    mainProgram = pname;
+    mainProgram = "rot8";
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/roundup/default.nix b/pkgs/tools/misc/roundup/default.nix
index fd2272e6cd560..efe220fd5f9b5 100644
--- a/pkgs/tools/misc/roundup/default.nix
+++ b/pkgs/tools/misc/roundup/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.all;
+    mainProgram = "roundup";
   };
 }
diff --git a/pkgs/tools/misc/rpcsvc-proto/default.nix b/pkgs/tools/misc/rpcsvc-proto/default.nix
index b84bbb7d9d511..2de8bdefc880d 100644
--- a/pkgs/tools/misc/rpcsvc-proto/default.nix
+++ b/pkgs/tools/misc/rpcsvc-proto/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
+    mainProgram = "rpcgen";
   };
 }
diff --git a/pkgs/tools/misc/rpi-imager/default.nix b/pkgs/tools/misc/rpi-imager/default.nix
index 61ca001563f59..6049efe04f802 100644
--- a/pkgs/tools/misc/rpi-imager/default.nix
+++ b/pkgs/tools/misc/rpi-imager/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , wrapQtAppsHook
 , cmake
+, pkg-config
 , util-linux
 , curl
 , libarchive
@@ -12,23 +13,26 @@
 , qttools
 , qtquickcontrols2
 , qtgraphicaleffects
+, xz
+, testers
 , nix-update-script
 , enableTelemetry ? false
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "rpi-imager";
-  version = "1.7.5";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-yB+H1zWL40KzxOrBuvg7nBC3zmWilsOgOW7ndiDWuDA=";
+    repo = "rpi-imager";
+    rev = "refs/tags/v${finalAttrs.version}";
+    sha256 = "sha256-ZuS/fhPpVlLSdaD+t+qIw6fdEbi7c82X+BxcgWlPntg=";
   };
 
   nativeBuildInputs = [
     cmake
+    pkg-config
     util-linux
     wrapQtAppsHook
   ];
@@ -48,40 +52,33 @@ stdenv.mkDerivation rec {
     qttools
     qtquickcontrols2
     qtgraphicaleffects
+    xz
   ];
 
-  sourceRoot = "${src.name}/src";
+  sourceRoot = "${finalAttrs.src.name}/src";
 
   /* By default, the builder checks for JSON support in lsblk by running "lsblk --json",
     but that throws an error, as /sys/dev doesn't exist in the sandbox.
     This patch removes the check. */
   patches = [ ./lsblkCheckFix.patch ];
 
-  doInstallCheck = true;
-
-  installCheckPhase = ''
-    runHook preInstallCheck
-
-    # Without this, the tests fail because they cannot create the QT Window
-    export QT_QPA_PLATFORM=offscreen
-    $out/bin/rpi-imager --version
-
-    runHook postInstallCheck
-  '';
-
   passthru = {
+    tests.version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      command = "QT_QPA_PLATFORM=offscreen rpi-imager --version";
+    };
     updateScript = nix-update-script { };
   };
 
   meta = with lib; {
     description = "Raspberry Pi Imaging Utility";
-    homepage = "https://www.raspberrypi.com/software/";
-    changelog = "https://github.com/raspberrypi/rpi-imager/releases/tag/v${version}";
-    downloadPage = "https://github.com/raspberrypi/rpi-imager/";
+    homepage = "https://github.com/raspberrypi/rpi-imager/";
+    changelog = "https://github.com/raspberrypi/rpi-imager/releases/tag/v${finalAttrs.version}";
     license = licenses.asl20;
+    mainProgram = "rpi-imager";
     maintainers = with maintainers; [ ymarkus anthonyroussel ];
     platforms = platforms.all;
     # does not build on darwin
     broken = stdenv.isDarwin;
   };
-}
+})
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index b84bc955c46af..de0fcdbe6142f 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -120,5 +120,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ copumpkin ];
     platforms = platforms.linux;
+    mainProgram = "rpm-ostree";
   };
 }
diff --git a/pkgs/tools/misc/rrdtool/default.nix b/pkgs/tools/misc/rrdtool/default.nix
index 58070c3b1b1c4..e852374e2a88d 100644
--- a/pkgs/tools/misc/rrdtool/default.nix
+++ b/pkgs/tools/misc/rrdtool/default.nix
@@ -1,16 +1,33 @@
-{ fetchurl, lib, stdenv, gettext, perl, pkg-config, libxml2, pango, cairo, groff
-, tcl, darwin }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, gettext
+, perl
+, pkg-config
+, libxml2
+, pango
+, cairo
+, groff
+, tcl
+, darwin
+}:
 
 perl.pkgs.toPerlModule (stdenv.mkDerivation rec {
   pname = "rrdtool";
-  version = "1.7.2";
+  version = "1.8.0";
 
-  src = fetchurl {
-    url = "https://oss.oetiker.ch/rrdtool/pub/rrdtool-${version}.tar.gz";
-    sha256 = "1nsqra0g2nja19akmf9x5y9hhgc35ml3w9dcdz2ayz7zgvmzm6d1";
+  src = fetchFromGitHub {
+    owner = "oetiker";
+    repo = "rrdtool-1.x";
+    rev = "v${version}";
+    hash = "sha256-a+AxU1+YpkGoFs1Iu/CHAEZ4XIkWs7Vsnr6RcfXzsBE=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+  ];
 
   buildInputs = [ gettext perl libxml2 pango cairo groff ]
     ++ lib.optionals stdenv.isDarwin [ tcl darwin.apple_sdk.frameworks.ApplicationServices ];
diff --git a/pkgs/tools/misc/rshim-user-space/default.nix b/pkgs/tools/misc/rshim-user-space/default.nix
index 79b795f869a3b..a8bdd356a2cc7 100644
--- a/pkgs/tools/misc/rshim-user-space/default.nix
+++ b/pkgs/tools/misc/rshim-user-space/default.nix
@@ -3,28 +3,32 @@
 , fetchFromGitHub
 , autoconf
 , automake
+, makeBinaryWrapper
 , pkg-config
 , pciutils
 , libusb1
 , fuse
+, busybox
+, pv
+, withBfbInstall ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "rshim-user-space";
-  version = "2.0.11";
+  version = "2.0.12";
 
   src = fetchFromGitHub {
     owner = "Mellanox";
     repo = pname;
     rev = "rshim-${version}";
-    hash = "sha256-LbAs4IFfYT6OhrtwRXmuQR9rD7ulmmUB20Au5fO8j9w=";
+    hash = "sha256-jR9Q1i2p4weKuGPTAylNIVglgcZH0UtvXBVVCEquxu8=";
   };
 
   nativeBuildInputs = [
     autoconf
     automake
     pkg-config
-  ];
+  ] ++ lib.optionals withBfbInstall [ makeBinaryWrapper ];
 
   buildInputs = [
     pciutils
@@ -39,6 +43,13 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p "$out"/bin
     cp -a src/rshim "$out"/bin/
+  '' + lib.optionalString withBfbInstall ''
+    cp -a scripts/bfb-install "$out"/bin/
+  '';
+
+  postFixup = lib.optionalString withBfbInstall ''
+    wrapProgram $out/bin/bfb-install \
+      --set PATH ${lib.makeBinPath [ busybox pv ]}
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/rtz/default.nix b/pkgs/tools/misc/rtz/default.nix
index 7ae6525e5b649..ba66935d0a951 100644
--- a/pkgs/tools/misc/rtz/default.nix
+++ b/pkgs/tools/misc/rtz/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/twitchax/rtz/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "rtz";
   };
 }
diff --git a/pkgs/tools/misc/rust-motd/default.nix b/pkgs/tools/misc/rust-motd/default.nix
index 7d2125a1e1ee5..26b582e5e9448 100644
--- a/pkgs/tools/misc/rust-motd/default.nix
+++ b/pkgs/tools/misc/rust-motd/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/rust-motd/rust-motd/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "rust-motd";
   };
 }
diff --git a/pkgs/tools/misc/rw/default.nix b/pkgs/tools/misc/rw/default.nix
index 5299d2491465b..e77009f7969f0 100644
--- a/pkgs/tools/misc/rw/default.nix
+++ b/pkgs/tools/misc/rw/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.isc;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "rw";
   };
 }
diff --git a/pkgs/tools/misc/sacad/default.nix b/pkgs/tools/misc/sacad/default.nix
index aca6e18e372c8..cd948505301e3 100644
--- a/pkgs/tools/misc/sacad/default.nix
+++ b/pkgs/tools/misc/sacad/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sacad";
-  version = "2.4.0";
+  version = "2.7.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-KLVkyiXjpqskM67W9uPl9aPKc3pYMu0nAfwI0OpOniE=";
+    sha256 = "sha256-ZJPcxKc0G8V7x9nyzKXaXpfNpMB3/qRoX0d4lfBZTFY=";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -34,6 +34,6 @@ python3Packages.buildPythonApplication rec {
     description = "Smart Automatic Cover Art Downloader";
     homepage = "https://github.com/desbma/sacad";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ fortuneteller2k ];
+    maintainers = with maintainers; [ moni ];
   };
 }
diff --git a/pkgs/tools/misc/sagoin/default.nix b/pkgs/tools/misc/sagoin/default.nix
index 7e6d3e26bd039..b3fdd6e99405d 100644
--- a/pkgs/tools/misc/sagoin/default.nix
+++ b/pkgs/tools/misc/sagoin/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/figsoda/sagoin/blob/v${version}/CHANGELOG.md";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "sagoin";
   };
 }
diff --git a/pkgs/tools/misc/sanctity/default.nix b/pkgs/tools/misc/sanctity/default.nix
index cdfc1b89e634e..7c892bb16894b 100644
--- a/pkgs/tools/misc/sanctity/default.nix
+++ b/pkgs/tools/misc/sanctity/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/sanctity";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "sanctity";
   };
 }
diff --git a/pkgs/tools/misc/savepagenow/default.nix b/pkgs/tools/misc/savepagenow/default.nix
index d9166d07b74c7..da29fa3b05a9c 100644
--- a/pkgs/tools/misc/savepagenow/default.nix
+++ b/pkgs/tools/misc/savepagenow/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/pastpages/savepagenow";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "savepagenow";
   };
 }
diff --git a/pkgs/tools/misc/scdl/default.nix b/pkgs/tools/misc/scdl/default.nix
index c49e819d91bf2..611326d554030 100644
--- a/pkgs/tools/misc/scdl/default.nix
+++ b/pkgs/tools/misc/scdl/default.nix
@@ -30,5 +30,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/flyingrub/scdl";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "scdl";
   };
 }
diff --git a/pkgs/tools/misc/scfbuild/default.nix b/pkgs/tools/misc/scfbuild/default.nix
index 78434414b1a4d..e881a288f9599 100644
--- a/pkgs/tools/misc/scfbuild/default.nix
+++ b/pkgs/tools/misc/scfbuild/default.nix
@@ -30,5 +30,6 @@ buildPythonApplication {
     homepage = "https://github.com/13rac1/scfbuild";
     license = licenses.gpl3;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "scfbuild";
   };
 }
diff --git a/pkgs/tools/misc/screenfetch/default.nix b/pkgs/tools/misc/screenfetch/default.nix
index 83edfec258123..e3ad0e5c51c80 100644
--- a/pkgs/tools/misc/screenfetch/default.nix
+++ b/pkgs/tools/misc/screenfetch/default.nix
@@ -58,5 +58,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/KittyKatt/screenFetch";
     maintainers = with maintainers; [ relrod ];
     platforms = platforms.all;
+    mainProgram = "screenfetch";
   };
 }
diff --git a/pkgs/tools/misc/scrub/default.nix b/pkgs/tools/misc/scrub/default.nix
index f3a1ae619305c..2fc2b43ea29c2 100644
--- a/pkgs/tools/misc/scrub/default.nix
+++ b/pkgs/tools/misc/scrub/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ j0hax ];
     platforms = platforms.unix;
+    mainProgram = "scrub";
   };
 }
diff --git a/pkgs/tools/misc/sd-mux-ctrl/default.nix b/pkgs/tools/misc/sd-mux-ctrl/default.nix
index d42909a5c7777..4f832a35eb30e 100644
--- a/pkgs/tools/misc/sd-mux-ctrl/default.nix
+++ b/pkgs/tools/misc/sd-mux-ctrl/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers =  with maintainers; [ sarcasticadmin ];
     platforms = platforms.unix;
+    mainProgram = "sd-mux-ctrl";
   };
 }
diff --git a/pkgs/tools/misc/sdate/default.nix b/pkgs/tools/misc/sdate/default.nix
index abc046bb6d024..71ab04c807d8a 100644
--- a/pkgs/tools/misc/sdate/default.nix
+++ b/pkgs/tools/misc/sdate/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ edef ];
     platforms = platforms.all;
+    mainProgram = "sdate";
   };
 }
diff --git a/pkgs/tools/misc/seaborn-data/default.nix b/pkgs/tools/misc/seaborn-data/default.nix
index 2ff8c4d40a5c0..5ac78f1eef25e 100644
--- a/pkgs/tools/misc/seaborn-data/default.nix
+++ b/pkgs/tools/misc/seaborn-data/default.nix
@@ -4,7 +4,7 @@ let
     version = "unstable-2023-01-26";
     dontBuild = true;
     meta = with lib; {
-      description = "Data repository for seaborn examples.";
+      description = "Data repository for seaborn examples";
       homepage = "https://github.com/mwaskom/seaborn-data";
       platforms = platforms.all;
       maintainers = with maintainers; [ mbalatsko ];
diff --git a/pkgs/tools/misc/see/default.nix b/pkgs/tools/misc/see/default.nix
index 60f55e8144c5e..592bc59262ca4 100644
--- a/pkgs/tools/misc/see/default.nix
+++ b/pkgs/tools/misc/see/default.nix
@@ -23,9 +23,10 @@ python3.pkgs.buildPythonApplication {
   ];
 
   meta = {
-    description = "Textualize See is a command line tool to open files in the terminal.";
+    description = "A CLI tool to open files in the terminal";
     homepage = "https://github.com/Textualize/textualize-see";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ anselmschueler ];
+    mainProgram = "see";
   };
 }
diff --git a/pkgs/tools/misc/semiphemeral/default.nix b/pkgs/tools/misc/semiphemeral/default.nix
index 67a5fb0149b69..7208dca811760 100644
--- a/pkgs/tools/misc/semiphemeral/default.nix
+++ b/pkgs/tools/misc/semiphemeral/default.nix
@@ -5,11 +5,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "semiphemeral";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c90d73b14c826f262b1339d1f5926c5abc6431181090ea87177af821c0866fb7";
+    sha256 = "sha256-KRi3zfRWGRZJjQ6KPqBI9wQ6yU8Ohx0TDtA5qoak35U=";
   };
 
   doCheck = false; # upstream has no tests
@@ -23,5 +23,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/micahflee/semiphemeral";
     license = licenses.mit;
     maintainers = with maintainers; [ amanjeev ];
+    mainProgram = "semiphemeral";
   };
 }
diff --git a/pkgs/tools/misc/sensible-utils/default.nix b/pkgs/tools/misc/sensible-utils/default.nix
index d585632810f4f..238b9f400b89f 100644
--- a/pkgs/tools/misc/sensible-utils/default.nix
+++ b/pkgs/tools/misc/sensible-utils/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The package provides utilities used by programs to sensibly select and spawn an appropriate browser, editor, or pager.";
+    description = "A collection of utilities used by programs to sensibly select and spawn an appropriate browser, editor, or pager";
     longDescription = ''
        The specific utilities included are:
        - sensible-browser
diff --git a/pkgs/tools/misc/serverspec/default.nix b/pkgs/tools/misc/serverspec/default.nix
index 162b9d90cc03b..28196efc18a34 100644
--- a/pkgs/tools/misc/serverspec/default.nix
+++ b/pkgs/tools/misc/serverspec/default.nix
@@ -15,5 +15,6 @@ bundlerApp {
     homepage = "https://serverspec.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "serverspec-init";
   };
 }
diff --git a/pkgs/tools/misc/setconf/default.nix b/pkgs/tools/misc/setconf/default.nix
index fdb80bfb25ba8..8384617e5e5d0 100644
--- a/pkgs/tools/misc/setconf/default.nix
+++ b/pkgs/tools/misc/setconf/default.nix
@@ -20,5 +20,6 @@ buildPythonApplication rec {
     description = "A small utility for changing settings in configuration textfiles";
     changelog = "https://github.com/xyproto/setconf/releases/tag/${version}";
     maintainers = [ lib.maintainers.AndersonTorres ];
+    mainProgram = "setconf";
   };
 }
diff --git a/pkgs/tools/misc/sfeed/default.nix b/pkgs/tools/misc/sfeed/default.nix
index 2fa9d806933ef..c12ddec63c948 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.9";
+  version = "2.0";
 
   src = fetchgit {
     url = "git://git.codemadness.org/sfeed";
     rev = version;
-    sha256 = "sha256-VZChiJ1m2d0iEM5ATXMqCJVpHZcBIkqIorFvQlY0/mw=";
+    sha256 = "sha256-DbzJWi9wAc7w2Z0bQt5PEFOuu9L3xzNrJvCocvCer34=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/tools/misc/sfz/default.nix b/pkgs/tools/misc/sfz/default.nix
index 0114858c99d91..41841d2ef2b92 100644
--- a/pkgs/tools/misc/sfz/default.nix
+++ b/pkgs/tools/misc/sfz/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/weihanglo/sfz";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "sfz";
   };
 }
diff --git a/pkgs/tools/misc/shadowenv/default.nix b/pkgs/tools/misc/shadowenv/default.nix
index 12723000cef78..06b7cb4e82c29 100644
--- a/pkgs/tools/misc/shadowenv/default.nix
+++ b/pkgs/tools/misc/shadowenv/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     description = "reversible directory-local environment variable manipulations";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "shadowenv";
   };
 }
diff --git a/pkgs/tools/misc/shallot/default.nix b/pkgs/tools/misc/shallot/default.nix
index 46c5714ce9667..4fbd07f38e329 100644
--- a/pkgs/tools/misc/shallot/default.nix
+++ b/pkgs/tools/misc/shallot/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     homepage = "https://github.com/katmagic/Shallot";
     platforms = lib.platforms.linux;
+    mainProgram = "shallot";
   };
 }
diff --git a/pkgs/tools/misc/sharedown/default.nix b/pkgs/tools/misc/sharedown/default.nix
index 47e97fa25520e..5d1d31b35ac18 100644
--- a/pkgs/tools/misc/sharedown/default.nix
+++ b/pkgs/tools/misc/sharedown/default.nix
@@ -6,7 +6,7 @@
 , libsecret
 , python3
 , pkg-config
-, nodejs
+, nodePackages
 , electron
 , makeWrapper
 , makeDesktopItem
@@ -63,6 +63,7 @@ stdenvNoCC.mkDerivation rec {
             nativeBuildInputs = [
               python3
               pkg-config
+              nodePackages.node-gyp
             ];
             buildInputs = [
               libsecret
@@ -75,17 +76,6 @@ stdenvNoCC.mkDerivation rec {
           };
         };
 
-        preBuild = ''
-          # Set up headers for node-gyp, which is needed to build keytar.
-          mkdir -p "$HOME/.cache/node-gyp/${nodejs.version}"
-
-          # Set up version which node-gyp checks in <https://github.com/nodejs/node-gyp/blob/4937722cf597ccd1953628f3d5e2ab5204280051/lib/install.js#L87-L96> against the version in <https://github.com/nodejs/node-gyp/blob/4937722cf597ccd1953628f3d5e2ab5204280051/package.json#L15>.
-          echo 9 > "$HOME/.cache/node-gyp/${nodejs.version}/installVersion"
-
-          # Link node headers so that node-gyp does not try to download them.
-          ln -sfv "${nodejs}/include" "$HOME/.cache/node-gyp/${nodejs.version}"
-        '';
-
         packageJSON = "${src}/package.json";
         yarnLock = ./yarn.lock;
 
@@ -124,5 +114,6 @@ stdenvNoCC.mkDerivation rec {
     maintainers = with maintainers; [
     ];
     platforms = platforms.unix;
+    mainProgram = "Sharedown";
   };
 }
diff --git a/pkgs/tools/misc/sheldon/default.nix b/pkgs/tools/misc/sheldon/default.nix
index 73e9cb57d366e..ddff13c9bcfd4 100644
--- a/pkgs/tools/misc/sheldon/default.nix
+++ b/pkgs/tools/misc/sheldon/default.nix
@@ -62,5 +62,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ seqizz ];
     platforms = platforms.linux;
+    mainProgram = "sheldon";
   };
 }
diff --git a/pkgs/tools/misc/shell-hist/default.nix b/pkgs/tools/misc/shell-hist/default.nix
index 48e8667cc7e87..438b687c73f1b 100644
--- a/pkgs/tools/misc/shell-hist/default.nix
+++ b/pkgs/tools/misc/shell-hist/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/jamesmunns/shell-hist";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.spacekookie ];
+    mainProgram = "shell-hist";
   };
 }
diff --git a/pkgs/tools/misc/shelldap/default.nix b/pkgs/tools/misc/shelldap/default.nix
index b383c9692a9ca..045c5732c3e09 100644
--- a/pkgs/tools/misc/shelldap/default.nix
+++ b/pkgs/tools/misc/shelldap/default.nix
@@ -48,5 +48,6 @@ perlPackages.buildPerlPackage rec {
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ clerie tobiasBora ];
     platforms = platforms.unix;
+    mainProgram = "shelldap";
   };
 }
diff --git a/pkgs/tools/misc/shellspec/default.nix b/pkgs/tools/misc/shellspec/default.nix
index 480ada8d57166..b355f0fc02328 100644
--- a/pkgs/tools/misc/shellspec/default.nix
+++ b/pkgs/tools/misc/shellspec/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
     platforms = platforms.unix;
+    mainProgram = "shellspec";
   };
 }
diff --git a/pkgs/tools/misc/shim/default.nix b/pkgs/tools/misc/shim/default.nix
index 1615a6d8c794a..0b8f6dbe5a9f6 100644
--- a/pkgs/tools/misc/shim/default.nix
+++ b/pkgs/tools/misc/shim/default.nix
@@ -3,7 +3,7 @@
 
 let
 
-  inherit (stdenv.targetPlatform) system;
+  inherit (stdenv.hostPlatform) system;
   throwSystem = throw "Unsupported system: ${system}";
 
   target = {
@@ -12,13 +12,13 @@ let
   }.${system} or throwSystem;
 in stdenv.mkDerivation rec {
   pname = "shim";
-  version = "15.7";
+  version = "15.8";
 
   src = fetchFromGitHub {
     owner = "rhboot";
     repo = pname;
     rev = version;
-    hash = "sha256-CfUuq0anbXlCVo9r9NIb76oJzDqaPMIhL9cmXK1iqXo=";
+    hash = "sha256-xnr9HBfYP035C7p2YTRZasx5SF4a2ZkOl9IpsVduNm4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/misc/shunit2/default.nix b/pkgs/tools/misc/shunit2/default.nix
index 1120c756895b3..017d19264798e 100644
--- a/pkgs/tools/misc/shunit2/default.nix
+++ b/pkgs/tools/misc/shunit2/default.nix
@@ -86,5 +86,6 @@ resholve.mkDerivation rec {
     maintainers = with maintainers; [ abathur utdemir ];
     license = licenses.asl20;
     platforms = platforms.unix;
+    mainProgram = "shunit2";
   };
 }
diff --git a/pkgs/tools/misc/silicon/Cargo.lock b/pkgs/tools/misc/silicon/Cargo.lock
deleted file mode 100644
index 1902b848c0830..0000000000000
--- a/pkgs/tools/misc/silicon/Cargo.lock
+++ /dev/null
@@ -1,1621 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "ab_glyph_rasterizer"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "330223a1aecc308757b9926e9391c9b47f8ef2dbd8aea9df88312aea18c5e8d6"
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.65"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602"
-
-[[package]]
-name = "approx"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "base64"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
-
-[[package]]
-name = "bincode"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "block"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-
-[[package]]
-name = "bytemuck"
-version = "1.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "cc"
-version = "1.0.73"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim",
- "term_size",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "clipboard"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25a904646c0340239dcf7c51677b33928bf24fdf424b79a57909c0109075b2e7"
-dependencies = [
- "clipboard-win 2.2.0",
- "objc",
- "objc-foundation",
- "objc_id",
- "x11-clipboard",
-]
-
-[[package]]
-name = "clipboard-win"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3a093d6fed558e5fe24c3dfc85a68bb68f1c824f440d3ba5aca189e2998786b"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "clipboard-win"
-version = "4.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219"
-dependencies = [
- "error-code",
- "str-buf",
- "winapi",
-]
-
-[[package]]
-name = "cmake"
-version = "0.1.48"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "cocoa"
-version = "0.24.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832"
-dependencies = [
- "bitflags",
- "block",
- "cocoa-foundation",
- "core-foundation",
- "core-graphics",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "cocoa-foundation"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
-dependencies = [
- "bitflags",
- "block",
- "core-foundation",
- "core-graphics-types",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "color_quant"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-
-[[package]]
-name = "const-cstr"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
-
-[[package]]
-name = "conv"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"
-dependencies = [
- "custom_derive",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-
-[[package]]
-name = "core-graphics"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
-dependencies = [
- "bitflags",
- "core-foundation",
- "core-graphics-types",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-graphics-types"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
-dependencies = [
- "bitflags",
- "core-foundation",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-text"
-version = "19.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
-dependencies = [
- "core-foundation",
- "core-graphics",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "custom_derive"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"
-
-[[package]]
-name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-next"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
-dependencies = [
- "cfg-if",
- "dirs-sys-next",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[package]]
-name = "dirs-sys-next"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[package]]
-name = "dlib"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
-dependencies = [
- "libloading",
-]
-
-[[package]]
-name = "dwrote"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
-dependencies = [
- "lazy_static",
- "libc",
- "winapi",
- "wio",
-]
-
-[[package]]
-name = "either"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
-
-[[package]]
-name = "env_logger"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "termcolor",
-]
-
-[[package]]
-name = "error-code"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
-
-[[package]]
-name = "fastrand"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[package]]
-name = "float-ord"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "font-kit"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21fe28504d371085fae9ac7a3450f0b289ab71e07c8e57baa3fb68b9e57d6ce5"
-dependencies = [
- "bitflags",
- "byteorder",
- "core-foundation",
- "core-graphics",
- "core-text",
- "dirs-next",
- "dwrote",
- "float-ord",
- "freetype",
- "lazy_static",
- "libc",
- "log",
- "pathfinder_geometry",
- "pathfinder_simd",
- "walkdir",
- "winapi",
- "yeslogic-fontconfig-sys",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "freetype"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6"
-dependencies = [
- "freetype-sys",
- "libc",
-]
-
-[[package]]
-name = "freetype-sys"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a"
-dependencies = [
- "cmake",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "harfbuzz-sys"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf8c27ca13930dc4ffe474880040fe9e0f03c2121600dc9c95423624cab3e467"
-dependencies = [
- "cc",
- "core-graphics",
- "core-text",
- "foreign-types",
- "freetype",
- "pkg-config",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "image"
-version = "0.24.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd8e4fb07cf672b1642304e731ef8a6a4c7891d67bb4fd4f5ce58cd6ed86803c"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "jpeg-decoder",
- "num-rational",
- "num-traits",
- "png",
-]
-
-[[package]]
-name = "imageproc"
-version = "0.23.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6aee993351d466301a29655d628bfc6f5a35a0d062b6160ca0808f425805fd7"
-dependencies = [
- "approx",
- "conv",
- "image",
- "itertools",
- "nalgebra",
- "num",
- "rand",
- "rand_distr",
- "rayon",
- "rusttype",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
-dependencies = [
- "autocfg",
- "hashbrown",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "itertools"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
-
-[[package]]
-name = "jpeg-decoder"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9478aa10f73e7528198d75109c8be5cd7d15fb530238040148d5f9a22d4c5b3b"
-dependencies = [
- "rayon",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.135"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c"
-
-[[package]]
-name = "libloading"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
-dependencies = [
- "cfg-if",
- "winapi",
-]
-
-[[package]]
-name = "line-wrap"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
-dependencies = [
- "safemem",
-]
-
-[[package]]
-name = "linked-hash-map"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-
-[[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "malloc_buf"
-version = "0.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "matrixmultiply"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84"
-dependencies = [
- "rawpointer",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "nalgebra"
-version = "0.30.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb2d0de08694bed883320212c18ee3008576bfe8c306f4c3c4a58b4876998be"
-dependencies = [
- "approx",
- "matrixmultiply",
- "num-complex",
- "num-rational",
- "num-traits",
- "simba",
- "typenum",
-]
-
-[[package]]
-name = "num"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
-dependencies = [
- "num-bigint",
- "num-complex",
- "num-integer",
- "num-iter",
- "num-rational",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-complex"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-bigint",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "num_threads"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "objc"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
-dependencies = [
- "malloc_buf",
-]
-
-[[package]]
-name = "objc-foundation"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
-dependencies = [
- "block",
- "objc",
- "objc_id",
-]
-
-[[package]]
-name = "objc_id"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-dependencies = [
- "objc",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
-
-[[package]]
-name = "onig"
-version = "6.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
-dependencies = [
- "bitflags",
- "libc",
- "once_cell",
- "onig_sys",
-]
-
-[[package]]
-name = "onig_sys"
-version = "69.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
-dependencies = [
- "cc",
- "pkg-config",
-]
-
-[[package]]
-name = "os_info"
-version = "3.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f"
-dependencies = [
- "log",
- "serde",
- "winapi",
-]
-
-[[package]]
-name = "owned_ttf_parser"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f923fb806c46266c02ab4a5b239735c144bdeda724a50ed058e5226f594cde3"
-dependencies = [
- "ttf-parser",
-]
-
-[[package]]
-name = "paste"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1"
-
-[[package]]
-name = "pasteboard"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "639c0cdcf01a242098cf6a9e6f06a2661267dcf3c918d53b5a78c2dd40c05ce6"
-dependencies = [
- "cocoa",
- "objc",
- "os_info",
- "structopt",
-]
-
-[[package]]
-name = "pathfinder_geometry"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3"
-dependencies = [
- "log",
- "pathfinder_simd",
-]
-
-[[package]]
-name = "pathfinder_simd"
-version = "0.5.1"
-source = "git+https://github.com/servo/pathfinder#9e0331742dedfed41d9e7791a9afbead0e0fbcd5"
-dependencies = [
- "rustc_version",
-]
-
-[[package]]
-name = "pest"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a"
-dependencies = [
- "thiserror",
- "ucd-trie",
-]
-
-[[package]]
-name = "pkg-config"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
-
-[[package]]
-name = "plist"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225"
-dependencies = [
- "base64",
- "indexmap",
- "line-wrap",
- "serde",
- "time",
- "xml-rs",
-]
-
-[[package]]
-name = "png"
-version = "0.17.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c"
-dependencies = [
- "bitflags",
- "crc32fast",
- "flate2",
- "miniz_oxide",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-
-[[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.46"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha",
- "rand_core",
- "rand_hc",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
-
-[[package]]
-name = "rand_distr"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2"
-dependencies = [
- "rand",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
-name = "rawpointer"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
-
-[[package]]
-name = "rayon"
-version = "1.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
-dependencies = [
- "autocfg",
- "crossbeam-deque",
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "redox_users"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
-dependencies = [
- "getrandom 0.2.7",
- "redox_syscall",
- "thiserror",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "rustc_version"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rusttype"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc7c727aded0be18c5b80c1640eae0ac8e396abf6fa8477d96cb37d18ee5ec59"
-dependencies = [
- "ab_glyph_rasterizer",
- "owned_ttf_parser",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
-
-[[package]]
-name = "safe_arch"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529"
-dependencies = [
- "bytemuck",
-]
-
-[[package]]
-name = "safemem"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-
-[[package]]
-name = "same-file"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "semver"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver-parser"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
-dependencies = [
- "pest",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.145"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.145"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.86"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "shell-words"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
-
-[[package]]
-name = "silicon"
-version = "0.5.1"
-dependencies = [
- "anyhow",
- "clipboard",
- "clipboard-win 4.4.2",
- "conv",
- "dirs",
- "env_logger",
- "font-kit",
- "harfbuzz-sys",
- "image",
- "imageproc",
- "lazy_static",
- "log",
- "pasteboard",
- "pathfinder_geometry",
- "rayon",
- "shell-words",
- "structopt",
- "syntect",
- "tempfile",
-]
-
-[[package]]
-name = "simba"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c48e45e5961033db030b56ad67aef22e9c908c493a6e8348c0a0f6b93433cd77"
-dependencies = [
- "approx",
- "num-complex",
- "num-traits",
- "paste",
- "wide",
-]
-
-[[package]]
-name = "str-buf"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "structopt"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
-dependencies = [
- "clap",
- "lazy_static",
- "structopt-derive",
-]
-
-[[package]]
-name = "structopt-derive"
-version = "0.4.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
-dependencies = [
- "heck",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.102"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syntect"
-version = "5.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c454c27d9d7d9a84c7803aaa3c50cd088d2906fe3c6e42da3209aa623576a8"
-dependencies = [
- "bincode",
- "bitflags",
- "flate2",
- "fnv",
- "lazy_static",
- "once_cell",
- "onig",
- "plist",
- "regex-syntax",
- "serde",
- "serde_derive",
- "serde_json",
- "thiserror",
- "walkdir",
- "yaml-rust",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
-dependencies = [
- "cfg-if",
- "fastrand",
- "libc",
- "redox_syscall",
- "remove_dir_all",
- "winapi",
-]
-
-[[package]]
-name = "term_size"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "term_size",
- "unicode-width",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "time"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c"
-dependencies = [
- "itoa",
- "libc",
- "num_threads",
-]
-
-[[package]]
-name = "ttf-parser"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e5d7cd7ab3e47dda6e56542f4bbf3824c15234958c6e1bd6aaa347e93499fdc"
-
-[[package]]
-name = "typenum"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-
-[[package]]
-name = "ucd-trie"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "walkdir"
-version = "2.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
-dependencies = [
- "same-file",
- "winapi",
- "winapi-util",
-]
-
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wide"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae41ecad2489a1655c8ef8489444b0b113c0a0c795944a3572a0931cf7d2525c"
-dependencies = [
- "bytemuck",
- "safe_arch",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "wio"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "x11-clipboard"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89bd49c06c9eb5d98e6ba6536cf64ac9f7ee3a009b2f53996d405b3944f6bcea"
-dependencies = [
- "xcb",
-]
-
-[[package]]
-name = "xcb"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e917a3f24142e9ff8be2414e36c649d47d6cc2ba81f16201cdef96e533e02de"
-dependencies = [
- "libc",
- "log",
-]
-
-[[package]]
-name = "xml-rs"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
-
-[[package]]
-name = "yaml-rust"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
-dependencies = [
- "linked-hash-map",
-]
-
-[[package]]
-name = "yeslogic-fontconfig-sys"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2bbd69036d397ebbff671b1b8e4d918610c181c5a16073b96f984a38d08c386"
-dependencies = [
- "const-cstr",
- "dlib",
- "once_cell",
- "pkg-config",
-]
diff --git a/pkgs/tools/misc/silicon/default.nix b/pkgs/tools/misc/silicon/default.nix
deleted file mode 100644
index eadfd64b60f07..0000000000000
--- a/pkgs/tools/misc/silicon/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ lib
-, stdenv
-, rustPlatform
-, fetchFromGitHub
-, fetchpatch
-, pkg-config
-, cmake
-, expat
-, freetype
-, libxcb
-, python3
-, libiconv
-, AppKit
-, CoreText
-, Security
-, fira-code
-, fontconfig
-, harfbuzz
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "silicon";
-  version = "0.5.1";
-
-  src = fetchFromGitHub {
-    owner = "Aloxaf";
-    repo = "silicon";
-    rev = "v${version}";
-    sha256 = "sha256-RuzaRJr1n21MbHSeHBt8CjEm5AwbDbvX9Nw5PeBTl+w=";
-  };
-
-  patches = [
-   # fix build on aarch64-linux, see https://github.com/Aloxaf/silicon/pull/210
-    (fetchpatch {
-      url = "https://github.com/Aloxaf/silicon/commit/f666c95d3dab85a81d60067e2f25d29ee8ab59e7.patch";
-      hash = "sha256-L6tF9ndC38yVn5ZNof1TMxSImmaqZ6bJ/NYhb0Ebji4=";
-    })
-  ];
-
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "pathfinder_simd-0.5.1" = "sha256-jQCa8TpGHLWvDT9kXWmlw51QtpKImPlWi082Va721cE=";
-    };
-  };
-
-  buildInputs = [ expat freetype fira-code fontconfig harfbuzz ]
-    ++ lib.optionals stdenv.isLinux [ libxcb ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv AppKit CoreText Security ];
-
-  nativeBuildInputs = [ cmake pkg-config rustPlatform.bindgenHook ]
-    ++ lib.optionals stdenv.isLinux [ python3 ];
-
-  preCheck = ''
-    export HOME=$TMPDIR
-  '';
-
-  meta = with lib; {
-    description = "Create beautiful image of your source code";
-    homepage = "https://github.com/Aloxaf/silicon";
-    license = with licenses; [ mit /* or */ asl20 ];
-    maintainers = with maintainers; [ evanjs _0x4A6F ];
-  };
-}
diff --git a/pkgs/tools/misc/sixpair/default.nix b/pkgs/tools/misc/sixpair/default.nix
index 71a0af158246d..fa444a86a0ace 100644
--- a/pkgs/tools/misc/sixpair/default.nix
+++ b/pkgs/tools/misc/sixpair/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.tomsmeets ];
     platforms = lib.platforms.linux;
+    mainProgram = "sixpair";
   };
 }
diff --git a/pkgs/tools/misc/sl/default.nix b/pkgs/tools/misc/sl/default.nix
index dc55a8e783b94..bcb8de78c6130 100644
--- a/pkgs/tools/misc/sl/default.nix
+++ b/pkgs/tools/misc/sl/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     };
     maintainers = with maintainers; [ eyjhb ];
     platforms = platforms.unix;
+    mainProgram = "sl";
   };
 }
diff --git a/pkgs/tools/misc/slop/default.nix b/pkgs/tools/misc/slop/default.nix
index 05b008997b7fd..b3903bd951536 100644
--- a/pkgs/tools/misc/slop/default.nix
+++ b/pkgs/tools/misc/slop/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
+    mainProgram = "slop";
   };
 }
diff --git a/pkgs/tools/misc/sloth/default.nix b/pkgs/tools/misc/sloth/default.nix
index c0621419fd37f..2386b5a54a86e 100644
--- a/pkgs/tools/misc/sloth/default.nix
+++ b/pkgs/tools/misc/sloth/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ nrhtr ];
     platforms = lib.platforms.unix;
+    mainProgram = "sloth";
   };
 }
diff --git a/pkgs/tools/misc/slsnif/default.nix b/pkgs/tools/misc/slsnif/default.nix
index fd2b4c53d60a8..04bc462350f15 100644
--- a/pkgs/tools/misc/slsnif/default.nix
+++ b/pkgs/tools/misc/slsnif/default.nix
@@ -14,5 +14,6 @@ stdenv.mkDerivation rec {
     homepage = "http://slsnif.sourceforge.net/";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
+    mainProgram = "slsnif";
   };
 }
diff --git a/pkgs/tools/misc/smc/default.nix b/pkgs/tools/misc/smc/default.nix
index f3db213c84fe3..99ed8de45e451 100644
--- a/pkgs/tools/misc/smc/default.nix
+++ b/pkgs/tools/misc/smc/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl11;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "smc";
   };
 }
diff --git a/pkgs/tools/misc/smenu/default.nix b/pkgs/tools/misc/smenu/default.nix
index 9768b33c5ce9f..d2d893936f50c 100644
--- a/pkgs/tools/misc/smenu/default.nix
+++ b/pkgs/tools/misc/smenu/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ matthiasbeyer ];
     platforms = platforms.unix;
+    mainProgram = "smenu";
   };
 }
diff --git a/pkgs/tools/misc/smug/default.nix b/pkgs/tools/misc/smug/default.nix
index c620ba67b0cff..e528b21287593 100644
--- a/pkgs/tools/misc/smug/default.nix
+++ b/pkgs/tools/misc/smug/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "Smug - tmux session manager";
     license = licenses.mit;
     maintainers = with maintainers; [ juboba ];
+    mainProgram = "smug";
   };
 }
diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix
index 06eb7d920082e..dd50b9a040892 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -1,20 +1,22 @@
 { lib, stdenv, fetchFromGitHub
 , autoreconfHook, pkg-config, docbook_xsl, libxslt, docbook_xml_dtd_45
-, acl, attr, boost, btrfs-progs, dbus, diffutils, e2fsprogs, libxml2
+, acl, attr, boost, btrfs-progs, coreutils, dbus, diffutils, e2fsprogs, libxml2
 , lvm2, pam, util-linux, json_c, nixosTests
 , ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.10.6";
+  version = "0.10.7";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "sha256-tKxjzJ69wr48QQEgYLp7G6aOqxs9CCUiTHV1kaRCiHM=";
+    sha256 = "sha256-ELhWVimZWKaHL/PK7HtALKCTmzjcZN2ScDS0yOX3lVs=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     autoreconfHook pkg-config
     docbook_xsl libxslt docbook_xml_dtd_45
@@ -40,6 +42,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--disable-ext4"	# requires patched kernel & e2fsprogs
+    "DIFFBIN=${diffutils}/bin/diff"
+    "RMBIN=${coreutils}/bin/rm"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/misc/snore/default.nix b/pkgs/tools/misc/snore/default.nix
index a5351794acf7c..a3b9d67bba461 100644
--- a/pkgs/tools/misc/snore/default.nix
+++ b/pkgs/tools/misc/snore/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.unix;
+    mainProgram = "snore";
   };
 }
diff --git a/pkgs/tools/misc/sonota/default.nix b/pkgs/tools/misc/sonota/default.nix
index d111e0b2b7176..5f341bbc98ee9 100644
--- a/pkgs/tools/misc/sonota/default.nix
+++ b/pkgs/tools/misc/sonota/default.nix
@@ -50,5 +50,6 @@ in buildPythonApplication rec {
     homepage = src.meta.homepage;
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "sonota";
   };
 }
diff --git a/pkgs/tools/misc/spacer/default.nix b/pkgs/tools/misc/spacer/default.nix
index 0101b581f6a7c..5bf584c07a144 100644
--- a/pkgs/tools/misc/spacer/default.nix
+++ b/pkgs/tools/misc/spacer/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/samwho/spacer/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "spacer";
   };
 }
diff --git a/pkgs/tools/misc/spigot/default.nix b/pkgs/tools/misc/spigot/default.nix
deleted file mode 100644
index 5f50307537b63..0000000000000
--- a/pkgs/tools/misc/spigot/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, cmake
-, gmp
-, halibut
-, ncurses
-, perl
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "spigot";
-  version = "20220606.eb585f8";
-
-  src = fetchurl {
-    url = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/spigot-${finalAttrs.version}.tar.gz";
-    hash = "sha256-JyNNZo/HUPWv5rYtlNYp8Hl0C7i3yxEyKm+77ysN7Ao=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    halibut
-    perl
-  ];
-
-  buildInputs = [
-    gmp
-    ncurses
-  ];
-
-  outputs = [ "out" "man" ];
-
-  strictDeps = true;
-
-  meta = {
-    homepage = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/";
-    description = "A command-line exact real calculator";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ AndersonTorres ];
-    platforms = lib.platforms.unix;
-  };
-})
diff --git a/pkgs/tools/misc/sqlite3-to-mysql/default.nix b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
index b8fc4fce50c9e..a4947eb6c8bd3 100644
--- a/pkgs/tools/misc/sqlite3-to-mysql/default.nix
+++ b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
@@ -4,26 +4,26 @@
 , nixosTests
 , testers
 , sqlite3-to-mysql
-, fetchPypi
 , mysql80
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "sqlite3-to-mysql";
-  version = "2.0.3";
+  version = "2.1.7";
   format = "pyproject";
 
-  disabled = python3Packages.pythonOlder "3.7";
+  disabled = python3Packages.pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "techouse";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-rlKJKthop9BQnqjTUq1hZM/NP69gPdEFTq1rU+CbpWA=";
+    hash = "sha256-TglHny0HgVth3o73GQYddh9sdyQ0L+4J4dJBAeJToiM=";
   };
 
   nativeBuildInputs = with python3Packages; [
     hatchling
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = with python3Packages; [
@@ -42,6 +42,10 @@ python3Packages.buildPythonApplication rec {
     mysql80
   ];
 
+  pythonRelaxDeps = [
+    "mysql-connector-python"
+  ];
+
   # tests require a mysql server instance
   doCheck = false;
 
@@ -59,5 +63,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/techouse/sqlite3-to-mysql";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
+    mainProgram = "sqlite3mysql";
   };
 }
diff --git a/pkgs/tools/misc/srisum/default.nix b/pkgs/tools/misc/srisum/default.nix
index 04fe962f97ade..8412e48d7907c 100644
--- a/pkgs/tools/misc/srisum/default.nix
+++ b/pkgs/tools/misc/srisum/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ pjjw ];
     platforms = platforms.all;
+    mainProgram = "srisum";
   };
 }
diff --git a/pkgs/tools/misc/sshx/default.nix b/pkgs/tools/misc/sshx/default.nix
new file mode 100644
index 0000000000000..9ae65dcaee1ce
--- /dev/null
+++ b/pkgs/tools/misc/sshx/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, callPackage
+, rustPlatform
+, fetchFromGitHub
+, protobuf
+, darwin
+, stdenv
+, buildNpmPackage
+}:
+let
+  version = "unstable-2023-11-23";
+
+  src = fetchFromGitHub {
+    owner = "ekzhang";
+    repo = "sshx";
+    rev = "2677f7e1fa3b369132cc7f27f6028a04b92ba5cf";
+    hash = "sha256-9fo8hNUzJr4gse0J2tw7j+alqE82+y8McADzTkxryWk=";
+  };
+
+  mkSshxPackage = { pname, cargoHash, ... }@args:
+    rustPlatform.buildRustPackage (rec {
+      inherit
+        pname
+        version
+        src
+        cargoHash;
+
+      nativeBuildInputs = [ protobuf ];
+      buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+
+      cargoBuildFlags = [ "--package" pname ];
+      cargoTestFlags = cargoBuildFlags;
+
+      meta = {
+        description = "Fast, collaborative live terminal sharing over the web";
+        homepage = "https://github.com/ekzhang/sshx";
+        license = lib.licenses.mit;
+        maintainers = with lib.maintainers; [ pinpox kranzes ];
+        mainProgram = pname;
+      };
+    } // args);
+in
+{
+  sshx = mkSshxPackage {
+    pname = "sshx";
+    cargoHash = "sha256-dA5Aen/qANW8si75pj/RsBknvOo3KDyU5UISAmmcfRE=";
+  };
+
+  sshx-server = mkSshxPackage rec {
+    pname = "sshx-server";
+    cargoHash = "sha256-1GRWCMXsOzqvORgtwfuywV4wLyX3r4nURhM3Dl5V9Ss=";
+
+    postPatch = ''
+      substituteInPlace crates/sshx-server/src/web.rs \
+        --replace 'ServeDir::new("build")' 'ServeDir::new("${passthru.web.outPath}")' \
+        --replace 'ServeFile::new("build/spa.html")' 'ServeFile::new("${passthru.web.outPath}/spa.html")'
+    '';
+
+    passthru.web = buildNpmPackage {
+      pname = "sshx-web";
+
+      inherit
+        version
+        src;
+
+      postPatch = ''
+        substituteInPlace vite.config.ts \
+          --replace 'execSync("git rev-parse --short HEAD").toString().trim()' '"${src.rev}"'
+      '';
+
+      npmDepsHash = "sha256-bKePCxo6+n0EG+4tbbMimPedJ0Hu1O8yZsgspmhobOs=";
+
+      installPhase = ''
+        mkdir -p "$out"
+        cp -r build/* "$out"
+      '';
+    };
+  };
+}
diff --git a/pkgs/tools/misc/star-history/default.nix b/pkgs/tools/misc/star-history/default.nix
index caa584a020645..5eae603c70a96 100644
--- a/pkgs/tools/misc/star-history/default.nix
+++ b/pkgs/tools/misc/star-history/default.nix
@@ -1,27 +1,27 @@
 { lib
 , rustPlatform
+, darwin
 , fetchCrate
 , pkg-config
 , openssl
 , stdenv
-, Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "star-history";
-  version = "1.0.15";
+  version = "1.0.17";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-9/r01j/47rbgmXQy9qVOeY1E3LDMe9A/1SOB2l9zpJU=";
+    sha256 = "sha256-r1mDMpnu0/xWLtfM7WsVdO8nbkqNBXvYn31hB9qzgVY=";
   };
 
-  cargoSha256 = "sha256-kUpGBtgircX8/fACed4WO7rHTCah+3BFuQQV/A5pivg=";
+  cargoHash = "sha256-e65WlmHfo6zIXkQ/7RqqX4wYjbATfC1ke9Zwcm+EQ7M=";
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
-    Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   meta = with lib; {
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dtolnay/star-history";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "star-history";
   };
 }
diff --git a/pkgs/tools/misc/starfetch/default.nix b/pkgs/tools/misc/starfetch/default.nix
index ba6309c97ecbd..962409d21763e 100755..100644
--- a/pkgs/tools/misc/starfetch/default.nix
+++ b/pkgs/tools/misc/starfetch/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "starfetch";
   };
 }
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index 523532904e356..605867e285c25 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "1.16.0";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-CrD65nHE40n83HO+4QM1sLHvdFaqTvOb96hPBgXKuwk=";
+    hash = "sha256-e+vhisUzSYKUUoYfSaQwpfMz2OzNcZbeHgbvyPon18g=";
   };
 
   nativeBuildInputs = [ installShellFiles cmake ];
@@ -28,6 +28,11 @@ rustPlatform.buildRustPackage rec {
 
   NIX_LDFLAGS = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ "-framework" "AppKit" ];
 
+  # tries to access HOME only in aarch64-darwin environment when building mac-notification-sys
+  preBuild = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+    export HOME=$TMPDIR
+  '';
+
   postInstall = ''
     installShellCompletion --cmd starship \
       --bash <($out/bin/starship completions bash) \
@@ -39,7 +44,7 @@ rustPlatform.buildRustPackage rec {
     cp docs/.vuepress/public/presets/toml/*.toml $presetdir
   '';
 
-  cargoHash = "sha256-ZHHrpepKZnSGufyEAjNDozaIKAt2GFRt+hU2ej7LceA=";
+  cargoHash = "sha256-xLlZyLvS9AcXQHxjyL4Dden1rEwCLB8/comfRyqXXCI=";
 
   nativeCheckInputs = [ git ];
 
@@ -55,7 +60,7 @@ rustPlatform.buildRustPackage rec {
     description = "A minimal, blazing fast, and extremely customizable prompt for any shell";
     homepage = "https://starship.rs";
     license = licenses.isc;
-    maintainers = with maintainers; [ bbigras danth davidtwco Br1ght0ne Frostman marsam ];
+    maintainers = with maintainers; [ danth davidtwco Br1ght0ne Frostman marsam ];
     mainProgram = "starship";
   };
 }
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
index 388a407a52b75..058c2118db54a 100644
--- a/pkgs/tools/misc/staruml/default.nix
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.unfree;
     maintainers = with maintainers; [ kashw2 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "staruml";
   };
 })
diff --git a/pkgs/tools/misc/statserial/default.nix b/pkgs/tools/misc/statserial/default.nix
index 8b5ae4cdc86e9..526729dcd31cf 100644
--- a/pkgs/tools/misc/statserial/default.nix
+++ b/pkgs/tools/misc/statserial/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.unix;
     maintainers = with maintainers; [ rps ];
+    mainProgram = "statserial";
   };
 }
diff --git a/pkgs/tools/misc/steampipe/default.nix b/pkgs/tools/misc/steampipe/default.nix
index 44f0cb5f17da0..9fb79497ed8b3 100644
--- a/pkgs/tools/misc/steampipe/default.nix
+++ b/pkgs/tools/misc/steampipe/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.20.12";
+  version = "0.21.4";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "v${version}";
-    sha256 = "sha256-/vcxK/tX4kvDnQCqO8olHZodAbPDDvz1domJZ1WJqPU=";
+    hash = "sha256-cO6LlcCUn+Fovuqh82Ttymf8kFyBMCHOZrcZWvtBsKo=";
   };
 
-  vendorHash = "sha256-VuUzo+afUazXH7jaR4Qm5Kfr6qiyHqdGLJWS3MX8oOA=";
+  vendorHash = "sha256-XwFBXQw6OfxIQWYidTj+TLn0TrVTrfVry6MgiQWIoV4=";
   proxyVendor = true;
 
   patchPhase = ''
@@ -27,6 +27,9 @@ buildGoModule rec {
 
   ldflags = [ "-s" "-w" ];
 
+  # panic: could not create backups directory: mkdir /var/empty/.steampipe: operation not permitted
+  doCheck = !stdenv.isDarwin;
+
   postInstall = ''
     INSTALL_DIR=$(mktemp -d)
     installShellCompletion --cmd steampipe \
diff --git a/pkgs/tools/misc/subberthehut/default.nix b/pkgs/tools/misc/subberthehut/default.nix
index b9698e1e53642..913bc49a5116d 100644
--- a/pkgs/tools/misc/subberthehut/default.nix
+++ b/pkgs/tools/misc/subberthehut/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jqueiroz ];
+    mainProgram = "subberthehut";
   };
 }
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index d91d3b44933c6..f777c73e0bebc 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -12,10 +12,10 @@
 let
 
   inherit (python3Packages)
-    python pytest nose cryptography pyyaml requests mock requests-mock
+    python pytest nose3 cryptography pyyaml requests mock requests-mock
     python-dateutil setuptools;
 
-  version = "4.25";
+  version = "4.69";
 
 in
 
@@ -27,13 +27,13 @@ stdenv.mkDerivation rec {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    hash = "sha256-vYcBK7jgoBEC7dZ+5osJ/Q85wSNLXO02wcv9GHaa0Ds=";
+    hash = "sha256-F8VyeIj9I7oDpHTyGw1T8ZvC6kxYf15soY9ni0Zg7u4=";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
   buildInputs = [ python perl python-dateutil setuptools ] ++ pythonPaths;
   nativeBuildInputs = [ gitMinimal zip makeWrapper ];
-  nativeCheckInputs = [ nose pytest mock requests-mock ];
+  nativeCheckInputs = [ nose3 pytest mock requests-mock ];
 
   postPatch = ''
     substituteInPlace scripts/run-tests.sh \
@@ -68,5 +68,6 @@ stdenv.mkDerivation rec {
     description = "Command-line tool to download videos from svtplay.se and other sites";
     license = licenses.mit;
     platforms = lib.platforms.unix;
+    mainProgram = "svtplay-dl";
   };
 }
diff --git a/pkgs/tools/misc/svu/default.nix b/pkgs/tools/misc/svu/default.nix
index a3dddeba0e691..0fafaffc153b4 100644
--- a/pkgs/tools/misc/svu/default.nix
+++ b/pkgs/tools/misc/svu/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "svu";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "caarlos0";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FmSBh2XxwxmIbX2TILnk+YUYbMQQbOb89uvnpl4b+7Y=";
+    sha256 = "sha256-MztFramrNqxYmdTRf857HOC7H66dLvezG6LL9njxWUs=";
   };
 
   vendorHash = "sha256-+e1oL08KvBSNaRepGR2SBBrEDJaGxl5V9rOBysGEfQs=";
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/caarlos0/svu";
     maintainers = with maintainers; [ caarlos0 ];
     license = licenses.mit;
+    mainProgram = "svu";
   };
 }
diff --git a/pkgs/tools/misc/swaglyrics/default.nix b/pkgs/tools/misc/swaglyrics/default.nix
index 730290f8cf389..4b9095ff59d74 100644
--- a/pkgs/tools/misc/swaglyrics/default.nix
+++ b/pkgs/tools/misc/swaglyrics/default.nix
@@ -62,5 +62,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/SwagLyrics/SwagLyrics-For-Spotify";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "swaglyrics";
   };
 }
diff --git a/pkgs/tools/misc/systrayhelper/default.nix b/pkgs/tools/misc/systrayhelper/default.nix
index cc000d62d08af..1635054b56c66 100644
--- a/pkgs/tools/misc/systrayhelper/default.nix
+++ b/pkgs/tools/misc/systrayhelper/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     license = licenses.mit;
     # It depends on the inputs, i guess? not sure about solaris, for instance. go supports it though
     # I hope nix can figure this out?! ¯\\_(ツ)_/¯
+    mainProgram = "systrayhelper";
   };
 }
diff --git a/pkgs/tools/misc/sysz/default.nix b/pkgs/tools/misc/sysz/default.nix
index bf45983c106a8..37b34aec2d273 100644
--- a/pkgs/tools/misc/sysz/default.nix
+++ b/pkgs/tools/misc/sysz/default.nix
@@ -29,5 +29,6 @@ stdenvNoCC.mkDerivation rec {
     maintainers = with maintainers; [ hleboulanger ];
     platforms = platforms.unix;
     changelog = "https://github.com/joehillen/sysz/blob/${version}/CHANGELOG.md";
+    mainProgram = "sysz";
   };
 }
diff --git a/pkgs/tools/misc/szyszka/default.nix b/pkgs/tools/misc/szyszka/default.nix
index 58d839acf0785..335bc81febe0c 100755..100644
--- a/pkgs/tools/misc/szyszka/default.nix
+++ b/pkgs/tools/misc/szyszka/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/qarmin/szyszka";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "szyszka";
   };
 }
diff --git a/pkgs/tools/misc/t/default.nix b/pkgs/tools/misc/t/default.nix
index dd0eda67ce55a..4d0c961847cee 100644
--- a/pkgs/tools/misc/t/default.nix
+++ b/pkgs/tools/misc/t/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.asl20;
     maintainers = with maintainers; [ offline manveru nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "t";
   };
 }
diff --git a/pkgs/tools/misc/t1utils/default.nix b/pkgs/tools/misc/t1utils/default.nix
index 8e91013521fb3..be9cf659160bd 100644
--- a/pkgs/tools/misc/t1utils/default.nix
+++ b/pkgs/tools/misc/t1utils/default.nix
@@ -20,9 +20,12 @@ stdenv.mkDerivation rec {
       file from a PFA or PFB font.
     '';
     homepage = "https://www.lcdf.org/type/";
-    # README from tarball says "BSD-like" and points to non-existing LICENSE
-    # file...
-    license = "Click"; # MIT with extra clause, https://github.com/kohler/t1utils/blob/master/LICENSE
+    license = {
+      shortName = "Click"; # README.md says BSD-like, see LICENSE
+      url = "https://github.com/kohler/t1utils/blob/master/LICENSE";
+      free = true;
+      redistributable = true;
+    };
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
   };
diff --git a/pkgs/tools/misc/tab-rs/default.nix b/pkgs/tools/misc/tab-rs/default.nix
index 3b463f22df078..26b4fa724b48a 100644
--- a/pkgs/tools/misc/tab-rs/default.nix
+++ b/pkgs/tools/misc/tab-rs/default.nix
@@ -22,7 +22,8 @@ rustPlatform.buildRustPackage rec {
     description = "Intuitive, config-driven terminal multiplexer designed for software & systems engineers";
     homepage = "https://github.com/austinjones/tab-rs";
     license = licenses.mit;
-    maintainers = with maintainers; [ bbigras ];
+    maintainers = with maintainers; [ ];
     mainProgram = "tab";
+    broken = (stdenv.isDarwin && stdenv.isAarch64); # Added 2023-11-13
   };
 }
diff --git a/pkgs/tools/misc/tagref/default.nix b/pkgs/tools/misc/tagref/default.nix
index 67745de84f2aa..928945f4daa6d 100644
--- a/pkgs/tools/misc/tagref/default.nix
+++ b/pkgs/tools/misc/tagref/default.nix
@@ -1,4 +1,5 @@
 { lib, fetchFromGitHub, rustPlatform }:
+
 rustPlatform.buildRustPackage rec {
   pname = "tagref";
   version = "1.8.4";
@@ -13,10 +14,11 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-Wis6C4Wlz7NScFeKXWODA8BKmRtL7adaYxPVR13wNsg=";
 
   meta = with lib; {
-    description = "Tagref helps you refer to other locations in your codebase.";
+    description = "Manage cross-references in your code";
     homepage = "https://github.com/stepchowfun/tagref";
     license = licenses.mit;
     maintainers = [ maintainers.yusdacra ];
     platforms = platforms.unix;
+    mainProgram = "tagref";
   };
 }
diff --git a/pkgs/tools/misc/tailer/default.nix b/pkgs/tools/misc/tailer/default.nix
index f3c4d3545252c..96631875f5a49 100644
--- a/pkgs/tools/misc/tailer/default.nix
+++ b/pkgs/tools/misc/tailer/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/hionay/tailer";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "tailer";
   };
 }
diff --git a/pkgs/tools/misc/tailspin/default.nix b/pkgs/tools/misc/tailspin/default.nix
index 06678de835892..c3262cb26ac1f 100644
--- a/pkgs/tools/misc/tailspin/default.nix
+++ b/pkgs/tools/misc/tailspin/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tailspin";
-  version = "1.5.1";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "bensadeh";
     repo = "tailspin";
-    rev = "refs/tags/${version}";
-    hash = "sha256-Uqo47g0AXyRNFb1RmVVJzdFI2g1Oakx85Sg+zIN5B2A=";
+    rev = version;
+    hash = "sha256-cZG4Yu//MKLkQeGP7q+8O0Iy72iyyxfOERsS6kzT7ts=";
   };
 
-  cargoHash = "sha256-0ROLrdS3oBZuh+nXW9mTS2Jn/D+iLAUaYqhKvmKAPTo=";
+  cargoHash = "sha256-rOKJAmqL58UHuG6X5fcQ4UEw2U3g81lKftmFeKy25+w=";
 
   meta = with lib; {
     description = "A log file highlighter";
@@ -22,6 +22,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/bensadeh/tailspin/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
-    mainProgram = "spin";
+    mainProgram = "tspin";
   };
 }
diff --git a/pkgs/tools/misc/taoup/default.nix b/pkgs/tools/misc/taoup/default.nix
index 3924625f1313c..4d991a88cf114 100644
--- a/pkgs/tools/misc/taoup/default.nix
+++ b/pkgs/tools/misc/taoup/default.nix
@@ -4,13 +4,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "taoup";
-  version = "1.1.19";
+  version = "1.21";
 
   src = fetchFromGitHub {
     owner = "globalcitizen";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-axMpQICvxWBlNJ5D06DYI7b4zFGeadfWFcpTN6lPvpg=";
+    hash = "sha256-UHo3c+DQn77CJONy/QXM55rpIdhVkJbhR82tqmUltPQ=";
   };
 
   buildInputs = [ rubyEnv bash ncurses ];
diff --git a/pkgs/tools/misc/tbls/default.nix b/pkgs/tools/misc/tbls/default.nix
index 5b2d160971641..7d0921abb8d0f 100644
--- a/pkgs/tools/misc/tbls/default.nix
+++ b/pkgs/tools/misc/tbls/default.nix
@@ -1,52 +1,57 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 , testers
 , tbls
 }:
 
 buildGoModule rec {
   pname = "tbls";
-  version = "1.68.2";
+  version = "1.73.2";
 
   src = fetchFromGitHub {
     owner = "k1LoW";
     repo = "tbls";
     rev = "v${version}";
-    hash = "sha256-yDWAKkzRb487iZ+5tmIH1qfuHj0TldOT+tTQwtVyX7s=";
+    hash = "sha256-UXvUewArdClOolWFgN4Ta11vzq9C9zBjEzVGTtWSjiA=";
   };
 
-  vendorHash = "sha256-V6TF7Q+9XxBeSVXlotu8tUrNCWDr80BZsQcVSBGikl8=";
+  vendorHash = "sha256-zNQADZkAaohTZReD8qTnNJsfy58NXdQjUdd5j8KcOyY=";
 
-  CGO_CFLAGS = [ "-Wno-format-security" ];
+  nativeBuildInputs = [ installShellFiles ];
+
+  ldflags = [ "-s" "-w" ];
 
-  ldflags = [
-    "-s"
-    "-w"
-    "-X github.com/k1LoW/tbls.commit=unspecified"
-    "-X github.com/k1LoW/tbls.date=unspecified"
-    "-X github.com/k1LoW/tbls.version=${src.rev}"
-    "-X github.com/k1LoW/tbls/version.Version=${src.rev}"
-  ];
+  CGO_CFLAGS = [ "-Wno-format-security" ];
 
   preCheck = ''
     # Remove tests that require additional services.
     rm -f \
-       datasource/datasource_test.go \
+       datasource/*_test.go \
        drivers/*/*_test.go
   '';
 
+  postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+    installShellCompletion --cmd tbls \
+      --bash <($out/bin/tbls completion bash) \
+      --fish <($out/bin/tbls completion fish) \
+      --zsh <($out/bin/tbls completion zsh)
+  '';
+
   passthru.tests.version = testers.testVersion {
     package = tbls;
     command = "tbls version";
-    version = src.rev;
+    inherit version;
   };
 
   meta = with lib; {
-    description = "A tool to generate documentation based on a database";
+    description = "A tool to generate documentation based on a database structure";
     homepage = "https://github.com/k1LoW/tbls";
     changelog = "https://github.com/k1LoW/tbls/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
+    mainProgram = "tbls";
   };
 }
diff --git a/pkgs/tools/misc/tcat/default.nix b/pkgs/tools/misc/tcat/default.nix
index 1f6c45f32dc1c..5afa7e83affaa 100644
--- a/pkgs/tools/misc/tcat/default.nix
+++ b/pkgs/tools/misc/tcat/default.nix
@@ -17,5 +17,6 @@ buildGoModule rec {
     homepage = "https://github.com/rsc/tcat";
     maintainers = with maintainers; [ mmlb ];
     license = licenses.bsd3;
+    mainProgram = "tcat";
   };
 }
diff --git a/pkgs/tools/misc/td/default.nix b/pkgs/tools/misc/td/default.nix
index bca5bd601d416..ebfe642a27d27 100644
--- a/pkgs/tools/misc/td/default.nix
+++ b/pkgs/tools/misc/td/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.asl20;
     maintainers =  with maintainers; [ groodt nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "td";
   };
 }
diff --git a/pkgs/tools/misc/tdfgo/default.nix b/pkgs/tools/misc/tdfgo/default.nix
index 91a0345c99f80..0d9e5950b51a4 100644
--- a/pkgs/tools/misc/tdfgo/default.nix
+++ b/pkgs/tools/misc/tdfgo/default.nix
@@ -14,11 +14,12 @@ buildGoModule rec {
   vendorHash = "sha256-T6PSs5NfXSXvzlq67rIDbzURyA+25df3nMMfufo0fow=";
 
   meta = with lib; {
-    description = "TheDraw font parser and console text renderer.";
+    description = "TheDraw font parser and console text renderer";
     longDescription = "Supports more fonts than `tdfiglet`, and packs more features.";
     homepage = "https://github.com/digitallyserviced/tdfgo";
     license = licenses.cc0;
     platforms = platforms.linux;
     maintainers = with maintainers; [ crinklywrappr ];
+    mainProgram = "tdfgo";
   };
 }
diff --git a/pkgs/tools/misc/tea/default.nix b/pkgs/tools/misc/tea/default.nix
index 13bd0f8f2b3f8..8e985c9ec13dc 100644
--- a/pkgs/tools/misc/tea/default.nix
+++ b/pkgs/tools/misc/tea/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage    = "https://gitea.com/gitea/tea";
     license     = licenses.mit;
     maintainers = with maintainers; [ j4m3s techknowlogick ];
+    mainProgram = "tea";
   };
 }
diff --git a/pkgs/tools/misc/teamocil/default.nix b/pkgs/tools/misc/teamocil/default.nix
index 5218453d15e3b..4344668809cef 100644
--- a/pkgs/tools/misc/teamocil/default.nix
+++ b/pkgs/tools/misc/teamocil/default.nix
@@ -16,5 +16,6 @@ bundlerEnv {
       zachcoyle
       nicknovitski
     ];
+    mainProgram = "teamocil";
   };
 }
diff --git a/pkgs/tools/misc/tensorman/default.nix b/pkgs/tools/misc/tensorman/default.nix
index c5742b21afa40..b6f11d190c105 100644
--- a/pkgs/tools/misc/tensorman/default.nix
+++ b/pkgs/tools/misc/tensorman/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/pop-os/tensorman";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ thefenriswolf ];
+    mainProgram = "tensorman";
   };
 }
diff --git a/pkgs/tools/misc/tere/default.nix b/pkgs/tools/misc/tere/default.nix
index a2a4a506bc0d0..70bd03ccaa49b 100644
--- a/pkgs/tools/misc/tere/default.nix
+++ b/pkgs/tools/misc/tere/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mgunyho/tere";
     license = licenses.eupl12;
     maintainers = with maintainers; [ ProducerMatt ];
+    mainProgram = "tere";
   };
 }
diff --git a/pkgs/tools/misc/termplay/default.nix b/pkgs/tools/misc/termplay/default.nix
index 2d493b857fc1c..aa35e24da0172 100644
--- a/pkgs/tools/misc/termplay/default.nix
+++ b/pkgs/tools/misc/termplay/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "termplay";
   };
 }
diff --git a/pkgs/tools/misc/termtosvg/default.nix b/pkgs/tools/misc/termtosvg/default.nix
index 0f9816fe10e5b..86217693a58fd 100644
--- a/pkgs/tools/misc/termtosvg/default.nix
+++ b/pkgs/tools/misc/termtosvg/default.nix
@@ -16,5 +16,6 @@ python3Packages.buildPythonApplication rec {
     description = "Record terminal sessions as SVG animations";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    mainProgram = "termtosvg";
   };
 }
diff --git a/pkgs/tools/misc/tewisay/default.nix b/pkgs/tools/misc/tewisay/default.nix
index 35b66a0936839..f4ae05711285f 100644
--- a/pkgs/tools/misc/tewisay/default.nix
+++ b/pkgs/tools/misc/tewisay/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     description = "Cowsay replacement with unicode and partial ansi escape support";
     license = with licenses; [ cc0 ];
     maintainers = with maintainers; [ Madouura ];
+    mainProgram = "tewisay";
   };
 }
diff --git a/pkgs/tools/misc/texi2mdoc/default.nix b/pkgs/tools/misc/texi2mdoc/default.nix
index 2b73c4f34dbbc..94219a0042509 100644
--- a/pkgs/tools/misc/texi2mdoc/default.nix
+++ b/pkgs/tools/misc/texi2mdoc/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "texi2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/tfk8s/default.nix b/pkgs/tools/misc/tfk8s/default.nix
index a694360db373f..52795b7540025 100644
--- a/pkgs/tools/misc/tfk8s/default.nix
+++ b/pkgs/tools/misc/tfk8s/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/jrhouston/tfk8s/";
     maintainers = with maintainers; [ bryanasdev000 ];
+    mainProgram = "tfk8s";
   };
 }
diff --git a/pkgs/tools/misc/tgpt/default.nix b/pkgs/tools/misc/tgpt/default.nix
index 2282715bd83d3..cf100e5d33fda 100644
--- a/pkgs/tools/misc/tgpt/default.nix
+++ b/pkgs/tools/misc/tgpt/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "tgpt";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "aandrew-me";
     repo = "tgpt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4zm2dsYhN5itGto39p2Aq+9vF4iqqjCGwMWACuKSMs0=";
+    hash = "sha256-+5hNcemVVuCX1FCL6U9SoJ/Jsef9exQXQFCdPj8qhCk=";
   };
 
   vendorHash = "sha256-HXpSoihk0s218DVCHe9VCGLBggWY8I25sw2qSaiUz4I=";
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/aandrew-me/tgpt/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "tgpt";
   };
 }
diff --git a/pkgs/tools/misc/time-decode/default.nix b/pkgs/tools/misc/time-decode/default.nix
index 5d6f3ed8a958a..edd0eba43a246 100644
--- a/pkgs/tools/misc/time-decode/default.nix
+++ b/pkgs/tools/misc/time-decode/default.nix
@@ -33,5 +33,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/digitalsleuth/time_decode/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "time-decode";
   };
 }
diff --git a/pkgs/tools/misc/timelimit/default.nix b/pkgs/tools/misc/timelimit/default.nix
index 01de2c01c8782..534cd320bf1a3 100644
--- a/pkgs/tools/misc/timelimit/default.nix
+++ b/pkgs/tools/misc/timelimit/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "timelimit";
   };
 }
diff --git a/pkgs/tools/misc/timer/default.nix b/pkgs/tools/misc/timer/default.nix
index 29e087c86581f..908127575e7a4 100644
--- a/pkgs/tools/misc/timer/default.nix
+++ b/pkgs/tools/misc/timer/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "timer";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "caarlos0";
     repo = "timer";
     rev = "v${version}";
-    hash = "sha256-9p/L3Hj3VqlNiyY3lfUAhCjwTl1iSTegWxaVEGB4qHM=";
+    hash = "sha256-8BVzijAXsJ8Q8BhDmhzFbEQ23fUEBdmbUsCPxfpXyBA=";
   };
 
-  vendorHash = "sha256-j7Xik0te6GdjfhXHT7DRf+MwM+aKjfgTGvroxnlD3MM=";
+  vendorHash = "sha256-1n5vZKlOWoB2SFdDdv+pPWLybzCIJG/wdBYqLMatjNA=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/caarlos0/timer";
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq caarlos0 ];
+    mainProgram = "timer";
   };
 }
diff --git a/pkgs/tools/misc/timetagger_cli/default.nix b/pkgs/tools/misc/timetagger_cli/default.nix
index 38b0cc88bb1ee..f6204e2d8fe12 100644
--- a/pkgs/tools/misc/timetagger_cli/default.nix
+++ b/pkgs/tools/misc/timetagger_cli/default.nix
@@ -28,6 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/almarklein/timetagger_cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "timetagger";
   };
 }
 
diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix
index e88ba3fea3527..65d154476f02c 100644
--- a/pkgs/tools/misc/timidity/default.nix
+++ b/pkgs/tools/misc/timidity/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     mkdir -p $out/share/timidity/;
     cp ${./timidity.cfg} $out/share/timidity/timidity.cfg
+    substituteAllInPlace $out/share/timidity/timidity.cfg
     tar --strip-components=1 -xf $instruments -C $out/share/timidity/
   '';
   # This fixup step is unnecessary and fails on Darwin
@@ -91,5 +92,6 @@ stdenv.mkDerivation rec {
     description = "A software MIDI renderer";
     maintainers = [ maintainers.marcweber ];
     platforms = platforms.unix;
+    mainProgram = "timidity";
   };
 }
diff --git a/pkgs/tools/misc/timidity/timidity.cfg b/pkgs/tools/misc/timidity/timidity.cfg
index fa07eb43eee6b..f4a260d249e2d 100644
--- a/pkgs/tools/misc/timidity/timidity.cfg
+++ b/pkgs/tools/misc/timidity/timidity.cfg
@@ -41,8 +41,7 @@
 # point to the library directory: 
 #
 
-dir /run/current-system/sw/share/timidity/instruments
-dir /run/current-system/sw/share/timidity/patch
+dir @out@/share/timidity
 
 ##############################################################################
 # This sets up the default patches in the TiMidity support package
diff --git a/pkgs/tools/misc/tio/default.nix b/pkgs/tools/misc/tio/default.nix
index c179614cfae50..88e121368e669 100644
--- a/pkgs/tools/misc/tio/default.nix
+++ b/pkgs/tools/misc/tio/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
+    mainProgram = "tio";
   };
 }
diff --git a/pkgs/tools/misc/tldr/default.nix b/pkgs/tools/misc/tldr/default.nix
index 01d50e5f7cf87..0d4df99a952d8 100644
--- a/pkgs/tools/misc/tldr/default.nix
+++ b/pkgs/tools/misc/tldr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tldr";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "tldr-pages";
     repo = "tldr-c-client";
     rev = "v${version}";
-    sha256 = "sha256-9pBMo+t/44tuT/CisS0w60KaKXjPfNTMr2v6Ftjaf1k=";
+    sha256 = "sha256-1L9frURnzfq0XvPBs8D+hBikybAw8qkb0DyZZtkZleY=";
   };
 
   buildInputs = [ curl libzip ];
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ taeer carlosdagos kbdharun];
     platforms = platforms.all;
+    mainProgram = "tldr";
   };
 }
diff --git a/pkgs/tools/misc/tmate/default.nix b/pkgs/tools/misc/tmate/default.nix
index 1956f25fb97f7..9e1cbdee12774 100644
--- a/pkgs/tools/misc/tmate/default.nix
+++ b/pkgs/tools/misc/tmate/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation {
     license     = licenses.mit;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ ck3d ];
+    mainProgram = "tmate";
   };
 }
diff --git a/pkgs/tools/misc/tmpwatch/default.nix b/pkgs/tools/misc/tmpwatch/default.nix
index 9d9bb853f2f99..873b7c0f6f0a2 100644
--- a/pkgs/tools/misc/tmpwatch/default.nix
+++ b/pkgs/tools/misc/tmpwatch/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ vlstill ];
     platforms = platforms.unix;
+    mainProgram = "tmpwatch";
   };
 }
diff --git a/pkgs/tools/misc/tmux-cssh/default.nix b/pkgs/tools/misc/tmux-cssh/default.nix
index c69853635e909..7da4293dc0c81 100644
--- a/pkgs/tools/misc/tmux-cssh/default.nix
+++ b/pkgs/tools/misc/tmux-cssh/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation {
 
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ zimbatm ];
+    mainProgram = "tmux-cssh";
   };
 }
diff --git a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
index e384f0f72d7bb..1e197ef162eab 100644
--- a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
+++ b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ thomasjm ];
     platforms = platforms.all;
+    mainProgram = "tmux-mem-cpu-load";
   };
 }
diff --git a/pkgs/tools/misc/tmux-sessionizer/default.nix b/pkgs/tools/misc/tmux-sessionizer/default.nix
index 0c0075b2a6b5f..53aeb3982fea2 100644
--- a/pkgs/tools/misc/tmux-sessionizer/default.nix
+++ b/pkgs/tools/misc/tmux-sessionizer/default.nix
@@ -5,20 +5,29 @@
 , openssl
 , pkg-config
 , Security
-}:
+, testers
+, tmux-sessionizer
+}: let
 
-rustPlatform.buildRustPackage rec {
-  pname = "tmux-sessionizer";
-  version = "0.2.3";
+  name = "tmux-sessionizer";
+  version = "0.3.2";
+
+in rustPlatform.buildRustPackage {
+  pname = name;
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "jrmoulton";
-    repo = pname;
+    repo = name;
     rev = "v${version}";
-    sha256 = "sha256-TTt4pEWlt1cL9SBM6C5dX88MqhBqr4Qt8INnWny8WL4=";
+    hash = "sha256-8RQ67v2Cw681zikxYnq0Pb2ybh26w8mUbHKAC4TjYWA=";
   };
 
-  cargoHash = "sha256-Jq4wpSKo5kq6xSr/qRPlMy9QREUHQ33oQgXrvKi25lM=";
+  cargoHash = "sha256-ZOWoUBna8U0A/sYwXMf4Z7Vi+KqM7VinWhmtO8Q0HtU=";
+
+  passthru.tests.version = testers.testVersion {
+    package = tmux-sessionizer;
+  };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
@@ -27,6 +36,7 @@ rustPlatform.buildRustPackage rec {
     description = "The fastest way to manage projects as tmux sessions";
     homepage = "https://github.com/jrmoulton/tmux-sessionizer";
     license = licenses.mit;
-    maintainers = with maintainers; [ vinnymeller ];
+    maintainers = with maintainers; [ vinnymeller mrcjkb ];
+    mainProgram = "tms";
   };
 }
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 34707ce834d40..3cf6172891bd7 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -103,6 +103,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
     mainProgram = "tmux";
-    maintainers = with lib.maintainers; [ thammers fpletz srapenne ];
+    maintainers = with lib.maintainers; [ thammers fpletz ];
   };
 })
diff --git a/pkgs/tools/misc/tmuxinator/default.nix b/pkgs/tools/misc/tmuxinator/default.nix
index 239f3cc2e7eb4..379430761399f 100644
--- a/pkgs/tools/misc/tmuxinator/default.nix
+++ b/pkgs/tools/misc/tmuxinator/default.nix
@@ -49,5 +49,6 @@ buildRubyGem rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ auntie ericsagnes ];
     platforms   = platforms.unix;
+    mainProgram = "tmuxinator";
   };
 }
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index cd80aa3495cbe..1d1eaa53e7bb7 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.29.0";
+  version = "1.34.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MiXG4MVzomyc4LjovPsvhmPngtJv85s6Ypo/Cm2Whho=";
+    hash = "sha256-G93YtgXo4li+tLWKgJFaxx4Ax4sK4F+vK6M3WTXIeiU=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +37,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://tmuxp.git-pull.com/";
     changelog = "https://github.com/tmux-python/tmuxp/raw/v${version}/CHANGES";
     license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = with maintainers; [ peterhoeg otavio ];
+    mainProgram = "tmuxp";
   };
 }
diff --git a/pkgs/tools/misc/toastify/default.nix b/pkgs/tools/misc/toastify/default.nix
index 21e0d7091c18a..2de5877c0f057 100644
--- a/pkgs/tools/misc/toastify/default.nix
+++ b/pkgs/tools/misc/toastify/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "toastify";
-  version = "0.5.2";
+  version = "0.5.4";
 
   src = fetchFromGitHub {
     owner = "hoodie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fCwxFdpwtG83xw3DDt9rlnbY8V3eKemRFK/6E1Bhm4c=";
+    sha256 = "sha256-hSBh1LTfe3rQDPUryo2Swdf/yLYrOQ/Fg3Dz7ZqV3gw=";
   };
 
-  cargoHash = "sha256-ecc3z0T82pYR9gSYZYxRYhse9IroydPOAtRgDWqHTbo=";
+  cargoHash = "sha256-Ps2pRLpPxw+OS1ungQtVQ8beoKpc8pjzQEndMNni08k=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.Cocoa
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/hoodie/toastify/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ colemickens ];
+    mainProgram = "toastify";
   };
 }
diff --git a/pkgs/tools/misc/toilet/default.nix b/pkgs/tools/misc/toilet/default.nix
index d67383e4d5212..8fdeb8b40739c 100644
--- a/pkgs/tools/misc/toilet/default.nix
+++ b/pkgs/tools/misc/toilet/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.wtfpl;
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.all;
+    mainProgram = "toilet";
   };
 }
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index f900eafaacd13..3b632348f2639 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "12.0.2";
+  version = "14.0.1";
 
   src = fetchFromGitHub {
     owner = "topgrade-rs";
     repo = "topgrade";
     rev = "v${version}";
-    hash = "sha256-PfrtTegJULzPAmKUk/6P9rD+ttPJOhaf2505og64C0Y=";
+    hash = "sha256-opTMV+OH8PR9SxBWj1o8xSngK0QdindDcXyd6TRjdvI=";
   };
 
-  cargoHash = "sha256-S6jSI/KuHocYD2dhg3o1NSyA8Q04Xo215TWl8Y1C7g8=";
+  cargoHash = "sha256-pgYrUZAxoyllQp1HuVhbLR3za+Gx0l8Z2/Zq/KCOKZg=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/topgrade-rs/topgrade/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SuperSandro2000 xyenon ];
+    mainProgram = "topgrade";
   };
 }
diff --git a/pkgs/tools/misc/topicctl/default.nix b/pkgs/tools/misc/topicctl/default.nix
index 23ab910924158..0807f68a55c8e 100644
--- a/pkgs/tools/misc/topicctl/default.nix
+++ b/pkgs/tools/misc/topicctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "topicctl";
-  version = "1.10.2";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = "topicctl";
     rev = "v${version}";
-    sha256 = "sha256-VyzWaoGOGDtB4fe0Wa6ldeOSEN+Ihu8xapiHcHJos0w=";
+    sha256 = "sha256-sCjlEG34j8+uDI/W1mzzcrXn0c/B3/ca5N4VL9gKEjc=";
   };
 
-  vendorHash = "sha256-UJ7U9CfQHKgK7wfb8zqLZ7na4OBBZBYiGayII3RTaiQ=";
+  vendorHash = "sha256-+mnnvdna1g6JE29weOJZmdO3jFp2a75dV9wK2XcWJ9s=";
 
   ldflags = [
     "-X main.BuildVersion=${version}"
@@ -27,5 +27,6 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     license = licenses.mit;
     maintainers = with maintainers; [ eskytthe srhb ];
+    mainProgram = "topicctl";
   };
 }
diff --git a/pkgs/tools/misc/torrenttools/default.nix b/pkgs/tools/misc/torrenttools/default.nix
index f8da452c52f7d..0fa5dbffafbbb 100644
--- a/pkgs/tools/misc/torrenttools/default.nix
+++ b/pkgs/tools/misc/torrenttools/default.nix
@@ -95,5 +95,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.unix;
+    mainProgram = "torrenttools";
   };
 }
diff --git a/pkgs/tools/misc/traefik-certs-dumper/default.nix b/pkgs/tools/misc/traefik-certs-dumper/default.nix
index 410f85de4d12b..60cc47969afa0 100644
--- a/pkgs/tools/misc/traefik-certs-dumper/default.nix
+++ b/pkgs/tools/misc/traefik-certs-dumper/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "traefik-certs-dumper";
-  version = "2.8.1";
+  version = "2.8.3";
 
   src = fetchFromGitHub {
     owner = "ldez";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-o5nTxTyLuKtWcJvcWZuVwK970DMJfEaJw8vDcShulr0=";
+    sha256 = "sha256-dSVtowebmDA0X/PtLKktvb1+FhQ+evMoxFBXIXqZujw=";
   };
 
-  vendorHash = "sha256-rBSRZ7gKUx3tBXqhkTOmAyEx9pLw41/Bt3O+AiHqXpw=";
+  vendorHash = "sha256-a23kTtjIaMYs3+S9rYZ6ttyCyyK6Wm2wUZQw+In/hG4=";
   excludedPackages = "integrationtest";
 
   meta = with lib; {
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/ldez/traefik-certs-dumper";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
+    mainProgram = "traefik-certs-dumper";
   };
 }
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 87f36a082b6ad..7b1e286a8ebd3 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.23.9.23";
+  version = "0.23.11.10";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    hash = "sha256-EbW7P9fl7CDA6etOba7qcOtcxB2GkCd+zoi+NW0ZP9c=";
+    hash = "sha256-bP1x+yYAsPQ1vXS3rmHD11UiJ7r/02akb84hr+o8JLs=";
   };
 
   propagatedBuildInputs = with python3Packages; [ psutil six ];
diff --git a/pkgs/tools/misc/triehash/default.nix b/pkgs/tools/misc/triehash/default.nix
index b916214fab520..9e70db4114a55 100644
--- a/pkgs/tools/misc/triehash/default.nix
+++ b/pkgs/tools/misc/triehash/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = with licenses; mit;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = perlPackages.perl.meta.platforms;
+    mainProgram = "triehash";
   };
 }
diff --git a/pkgs/tools/misc/trillian/default.nix b/pkgs/tools/misc/trillian/default.nix
index 74cd8e4425e9b..f52c8f518dd73 100644
--- a/pkgs/tools/misc/trillian/default.nix
+++ b/pkgs/tools/misc/trillian/default.nix
@@ -5,14 +5,14 @@
 
 buildGoModule rec {
   pname = "trillian";
-  version = "1.5.2";
-  vendorHash = "sha256-DlqezeMZsOaCoqvGMiU+fHMq+p3tZ+XBulB/G3BJESM=";
+  version = "1.6.0";
+  vendorHash = "sha256-tLhq6ILiKzFM1lIK0DbiIKsn1NWEI168BMaf/MOAtEo=";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-m+22UK37IBCo48AgzINxKvudhEwvStz6fLWjE49saIg=";
+    sha256 = "sha256-YHwT+ddVRyHkmXkw2vROL4PS948pOMj9UwOtHorbTAQ=";
   };
 
   subPackages = [
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/google/trillian";
-    description = "A transparent, highly scalable and cryptographically verifiable data store.";
+    description = "A transparent, highly scalable and cryptographically verifiable data store";
     license = [ licenses.asl20 ];
     maintainers = [ maintainers.adisbladis ];
   };
diff --git a/pkgs/tools/misc/ttchat/default.nix b/pkgs/tools/misc/ttchat/default.nix
index 46d366dee379d..5aad1527df42d 100644
--- a/pkgs/tools/misc/ttchat/default.nix
+++ b/pkgs/tools/misc/ttchat/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/atye/ttchat";
     license = licenses.asl20;
     maintainers = with maintainers; [ wolfangaukang ];
+    mainProgram = "ttchat";
   };
 }
diff --git a/pkgs/tools/misc/ttmkfdir/default.nix b/pkgs/tools/misc/ttmkfdir/default.nix
index 47ff95c14f5f7..6edf9cc4ef986 100644
--- a/pkgs/tools/misc/ttmkfdir/default.nix
+++ b/pkgs/tools/misc/ttmkfdir/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation {
   meta = {
     description = "Create fonts.dir for TTF font directory";
     platforms = lib.platforms.linux;
+    mainProgram = "ttmkfdir";
   };
 }
diff --git a/pkgs/tools/misc/tty-clock/default.nix b/pkgs/tools/misc/tty-clock/default.nix
index 03be10bf10b63..32701caa64de4 100644
--- a/pkgs/tools/misc/tty-clock/default.nix
+++ b/pkgs/tools/misc/tty-clock/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     description = "Digital clock in ncurses";
     platforms = platforms.all;
     maintainers = [ maintainers.koral ];
+    mainProgram = "tty-clock";
   };
 }
diff --git a/pkgs/tools/misc/ttygif/default.nix b/pkgs/tools/misc/ttygif/default.nix
index d9a97f6c23509..689138186cb6b 100644
--- a/pkgs/tools/misc/ttygif/default.nix
+++ b/pkgs/tools/misc/ttygif/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ moaxcp ];
+    mainProgram = "ttygif";
   };
 }
diff --git a/pkgs/tools/misc/ttylog/default.nix b/pkgs/tools/misc/ttylog/default.nix
index ae521167431d7..ca90481ba9e63 100644
--- a/pkgs/tools/misc/ttylog/default.nix
+++ b/pkgs/tools/misc/ttylog/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "ttylog";
   };
 }
diff --git a/pkgs/tools/misc/ttyplot/default.nix b/pkgs/tools/misc/ttyplot/default.nix
index 7becc090a83bf..1f5e5911d7a1c 100644
--- a/pkgs/tools/misc/ttyplot/default.nix
+++ b/pkgs/tools/misc/ttyplot/default.nix
@@ -1,31 +1,28 @@
-{ lib, stdenv, fetchFromGitHub, ncurses }:
+{ lib, stdenv, fetchFromGitHub, ncurses, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "ttyplot";
-  version = "1.4";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "tenox7";
     repo = "ttyplot";
     rev = version;
-    sha256 = "19qm0hx9ljdw9qg78lydn3c627xy7xnx3knq5f7caw9lf0cdp7kf";
+    hash = "sha256-SQ5keCcwzQsSxfSevQwRa1eNf+8JXsrh1vljehI4tPc=";
   };
 
-  buildInputs = [ ncurses ];
+  buildInputs = [
+    pkg-config
+    ncurses
+  ];
 
-  buildPhase = ''
-   ${stdenv.cc}/bin/cc ./ttyplot.c -lncurses -o ttyplot
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp ttyplot $out/bin/
-  '';
+  makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
     description = "A simple general purpose plotting utility for tty with data input from stdin";
     homepage = "https://github.com/tenox7/ttyplot";
-    license = licenses.unlicense;
+    license = licenses.asl20;
     maintainers = with maintainers; [ lassulus ];
+    mainProgram = "ttyplot";
   };
 }
diff --git a/pkgs/tools/misc/turbo/default.nix b/pkgs/tools/misc/turbo/default.nix
index f3fcd8cd0f306..904e89da76ce3 100644
--- a/pkgs/tools/misc/turbo/default.nix
+++ b/pkgs/tools/misc/turbo/default.nix
@@ -1,9 +1,10 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, buildGoModule
+, buildGo120Module
 , git
 , nodejs
+, capnproto
 , protobuf
 , protoc-gen-go
 , protoc-gen-go-grpc
@@ -12,6 +13,7 @@
 , openssl
 , extra-cmake-modules
 , fontconfig
+, rust-jemalloc-sys
 , testers
 , turbo
 , nix-update-script
@@ -24,12 +26,12 @@
 , CoreFoundation
 }:
 let
-  version = "1.10.13";
+  version = "1.11.3";
   src = fetchFromGitHub {
     owner = "vercel";
     repo = "turbo";
     rev = "v${version}";
-    sha256 = "sha256-7bEHE/bHRVOXMP7+oo+4k8yn6d+LkXBi8JcDeR0ajww";
+    hash = "sha256-hjJXbGct9ZmriKdVjB7gwfmFsV1Tv57V7DfUMFZ8Xv0=";
   };
 
   ffi = rustPlatform.buildRustPackage {
@@ -37,7 +39,7 @@ let
     inherit src version;
     cargoBuildFlags = [ "--package" "turborepo-ffi" ];
 
-    cargoHash = "sha256-CIKuW8qKJiqgDBPfuCIBcWUP41BHwAa1m9vmcQ9ZmAY=";
+    cargoHash = "sha256-3eN8/nBARuaezlzPjAL0YPEPvNqm6jNQAREth8PgcSQ=";
 
     RUSTC_BOOTSTRAP = 1;
     nativeBuildInputs = [
@@ -58,12 +60,13 @@ let
   };
 
 
-  go-turbo = buildGoModule {
+  go-turbo = buildGo120Module {
     inherit src version;
     pname = "go-turbo";
     modRoot = "cli";
 
-    vendorHash = "sha256-8quDuT8VwT3B56jykkbX8ov+DNFZwxPf31+NLdfX1p0=";
+    proxyVendor = true;
+    vendorHash = "sha256-JHTg9Gcc0DVdltTGCUaOPSVxL0XVkwPJQm/LoKffU/o=";
 
     nativeBuildInputs = [
       git
@@ -78,7 +81,7 @@ let
       libiconv
     ];
 
-    ldFlags = [
+    ldflags = [
       "-s -w"
       "-X main.version=${version}"
       "-X main.commit=${src.rev}"
@@ -109,22 +112,6 @@ let
       # expected: env.DetailedMap{All:env.EnvironmentVariableMap(nil), BySource:env.BySource{Explicit:env.EnvironmentVariableMap{}, Matching:env.EnvironmentVariableMap{}}}
       #  actual  : env.DetailedMap{All:env.EnvironmentVariableMap{}, BySource:env.BySource{Explicit:env.EnvironmentVariableMap{}, Matching:env.EnvironmentVariableMap{}}}
       rm ./internal/run/global_hash_test.go
-    '' + lib.optionalString stdenv.isLinux ''
-      #  filewatcher_test.go:122: got event {/build/TestFileWatching1921149570/001/test-1689172679812 1}
-      # filewatcher_test.go:122: got event {/build/TestFileWatching1921149570/001/parent/test-1689172679812 1}
-      # filewatcher_test.go:122: got event {/build/TestFileWatching1921149570/001/parent/child/test-1689172679812 1}
-      # filewatcher_test.go:122: got event {/build/TestFileWatching1921149570/001/parent/sibling/test-1689172679812 1}
-      # filewatcher_test.go:127: got event {/build/TestFileWatching1921149570/001/parent/child/foo 1}
-      # filewatcher_test.go:137: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep 1}
-      # filewatcher_test.go:141: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep/path 1}
-      # filewatcher_test.go:146: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep 1}
-      # filewatcher_test.go:146: Timed out waiting for filesystem event at /build/TestFileWatching1921149570/001/test-1689172679812
-      # filewatcher_test.go:146: Timed out waiting for filesystem event at /build/TestFileWatching1921149570/001/parent/test-1689172679812
-      # filewatcher_test.go:146: Timed out waiting for filesystem event at /build/TestFileWatching1921149570/001/parent/child/test-1689172679812
-      # filewatcher_test.go:146: Timed out waiting for filesystem event at /build/TestFileWatching1921149570/001/parent/sibling/test-1689172679812
-      # filewatcher_test.go:146: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep/path/test-1689172679812 1}
-      # filewatcher_test.go:146: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep/test-1689172679812 1}
-      rm ./internal/filewatcher/filewatcher_test.go
     '';
 
   };
@@ -138,17 +125,19 @@ rustPlatform.buildRustPackage {
   ];
   RELEASE_TURBO_CLI = "true";
 
-  cargoHash = "sha256-rKdonANA6WvXPMpK8sC95hsX9Yb5zedeBezY4LWzsZE=";
+  cargoHash = "sha256-bAXO4Lqv4ibo+fz3679MjNgP2MMY8TbxhG0+DRy0xcA=";
 
   RUSTC_BOOTSTRAP = 1;
   nativeBuildInputs = [
     pkg-config
     extra-cmake-modules
     protobuf
+    capnproto
   ];
   buildInputs = [
     openssl
     fontconfig
+    rust-jemalloc-sys
   ] ++ lib.optionals stdenv.isDarwin [
       IOKit
       CoreServices
diff --git a/pkgs/tools/misc/tvnamer/default.nix b/pkgs/tools/misc/tvnamer/default.nix
index 459e3889efc63..d1ddb319dc190 100644
--- a/pkgs/tools/misc/tvnamer/default.nix
+++ b/pkgs/tools/misc/tvnamer/default.nix
@@ -38,15 +38,16 @@ pypkgs.buildPythonApplication rec {
     sha256 = "dc2ea8188df6ac56439343630466b874c57756dd0b2538dd8e7905048f425f04";
   };
 
-  propagatedBuildInputs = with pypkgs; [ tvdb_api ];
+  propagatedBuildInputs = with pypkgs; [ tvdb-api ];
 
   # no tests from pypi
   doCheck = false;
 
   meta = with lib; {
-    description = "Automatic TV episode file renamer, uses data from thetvdb.com via tvdb_api.";
+    description = "Automatic TV episode file renamer, uses data from thetvdb.com via tvdb_api";
     homepage = "https://github.com/dbr/tvnamer";
     license = licenses.unlicense;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "tvnamer";
   };
 }
diff --git a/pkgs/tools/misc/twitch-dl/default.nix b/pkgs/tools/misc/twitch-dl/default.nix
index e42e26a989aa7..15a3e262e5752 100644
--- a/pkgs/tools/misc/twitch-dl/default.nix
+++ b/pkgs/tools/misc/twitch-dl/default.nix
@@ -7,7 +7,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "twitch-dl";
-  version = "2.1.3";
+  version = "2.1.4";
 
   format = "setuptools";
 
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
     owner = "ihabunek";
     repo = "twitch-dl";
     rev = "refs/tags/${version}";
-    hash = "sha256-uxIBt/mGmld8bxUWQvAspaX39EVfguX5qDgJ/ecz3hM=";
+    hash = "sha256-0mITsNQQWG6lVQSxnDdU4ta548AR9q+zs/E96uwtG/U=";
   };
 
   nativeCheckInputs = [
@@ -49,5 +49,6 @@ python3Packages.buildPythonApplication rec {
     changelog = "https://github.com/ihabunek/twitch-dl/blob/${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "twitch-dl";
   };
 }
diff --git a/pkgs/tools/misc/twm/default.nix b/pkgs/tools/misc/twm/default.nix
index 68a58d04602dc..3e15aa2564184 100644
--- a/pkgs/tools/misc/twm/default.nix
+++ b/pkgs/tools/misc/twm/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "twm";
-  version = "0.7.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "vinnymeller";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Q8WdNmO5uSm4PvitBXQ7YEkjJhlCz4qfJO/F6+XckXY=";
+    sha256 = "sha256-gvo5+lZNe5QOHNI4nrPbCR65D+VFf/anmLVdu5RXJiY=";
   };
 
-  cargoHash = "sha256-fxDUUfC7mBgVHN+M6pb5leRp28wzO69ZdStdYmQFxQE=";
+  cargoHash = "sha256-5+1B+SbrIrswGjtNLlwbtLEhARMZNs75DFK8wQI2O0M=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
@@ -27,7 +27,8 @@ rustPlatform.buildRustPackage rec {
     description = "A customizable workspace manager for tmux";
     homepage = "https://github.com/vinnymeller/twm";
     changelog = "https://github.com/vinnymeller/twm/releases/tag/v${version}";
-    license = licenses.gpl2Only;
+    license = licenses.mit;
     maintainers = with maintainers; [ vinnymeller ];
+    mainProgram = "twm";
   };
 }
diff --git a/pkgs/tools/misc/twspace-crawler/default.nix b/pkgs/tools/misc/twspace-crawler/default.nix
index df1ef6e6e2c24..34a1c72e20486 100644
--- a/pkgs/tools/misc/twspace-crawler/default.nix
+++ b/pkgs/tools/misc/twspace-crawler/default.nix
@@ -19,5 +19,6 @@ buildNpmPackage rec {
     changelog = "https://github.com/HitomaruKonpaku/twspace-crawler/blob/${src.rev}/CHANGELOG.md";
     license = licenses.isc;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "twspace-crawler";
   };
 }
diff --git a/pkgs/tools/misc/twurl/default.nix b/pkgs/tools/misc/twurl/default.nix
index dccb67fbaf6c2..ff332e88de917 100644
--- a/pkgs/tools/misc/twurl/default.nix
+++ b/pkgs/tools/misc/twurl/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = "MIT";
     maintainers = with maintainers; [ brecht ];
     platforms   = platforms.unix;
+    mainProgram = "twurl";
   };
 }
diff --git a/pkgs/tools/misc/txtw/default.nix b/pkgs/tools/misc/txtw/default.nix
index e8a14b57634a7..9f8783491b11a 100644
--- a/pkgs/tools/misc/txtw/default.nix
+++ b/pkgs/tools/misc/txtw/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ lihop ];
     license = licenses.unlicense;
     platforms = platforms.linux;
+    mainProgram = "txtw";
   };
 }
diff --git a/pkgs/tools/misc/tydra/default.nix b/pkgs/tools/misc/tydra/default.nix
index fd8e8e6ee5a84..551519695c432 100644
--- a/pkgs/tools/misc/tydra/default.nix
+++ b/pkgs/tools/misc/tydra/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Mange/tydra";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "tydra";
   };
 }
diff --git a/pkgs/tools/misc/tz/default.nix b/pkgs/tools/misc/tz/default.nix
index c86d8a48c4eec..4059125353f71 100644
--- a/pkgs/tools/misc/tz/default.nix
+++ b/pkgs/tools/misc/tz/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tz";
-  version = "0.6.3";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "oz";
     repo = "tz";
     rev = "v${version}";
-    sha256 = "sha256-yeCoBDorwwj3+tqKzoAjtMdYmjqscks/qU8EkmO/D5k=";
+    sha256 = "sha256-Mnb0GdJ9dgaUanWBP5JOo6++6MfrUgncBRp4NIbhxf0=";
   };
 
   vendorHash = "sha256-lcCra4LyebkmelvBs0Dd2mn6R64Q5MaUWc5AP8V9pec=";
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/oz/tz";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "tz";
   };
 }
diff --git a/pkgs/tools/misc/ugs/default.nix b/pkgs/tools/misc/ugs/default.nix
index 61a124faaa1b5..9364b1f871eac 100644
--- a/pkgs/tools/misc/ugs/default.nix
+++ b/pkgs/tools/misc/ugs/default.nix
@@ -18,11 +18,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ugs";
-  version = "2.0.20";
+  version = "2.1.4";
 
   src = fetchzip {
     url = "https://github.com/winder/Universal-G-Code-Sender/releases/download/v${version}/UniversalGcodeSender.zip";
-    hash = "sha256-EPB7irROvFSGeo8XwOGoN9OLcIVJIDUySJ4DLomZPgM=";
+    hash = "sha256-2WGRHdxmGa2b8ca20xNJoA0NAY9a0pngzdf94ROfirk=";
   };
 
   dontUnpack = true;
@@ -42,11 +42,12 @@ stdenv.mkDerivation rec {
   desktopItems = [ desktopItem ];
 
   meta = with lib; {
-    description = "A cross-platform G-Code sender for GRBL, Smoothieware, TinyG and G2core.";
+    description = "A cross-platform G-Code sender for GRBL, Smoothieware, TinyG and G2core";
     homepage = "https://github.com/winder/Universal-G-Code-Sender";
     maintainers = with maintainers; [ matthewcroughan ];
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "ugs";
   };
 }
diff --git a/pkgs/tools/misc/uhubctl/default.nix b/pkgs/tools/misc/uhubctl/default.nix
index 39db9c09785f5..e148e03f820e0 100644
--- a/pkgs/tools/misc/uhubctl/default.nix
+++ b/pkgs/tools/misc/uhubctl/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ prusnak ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "uhubctl";
   };
 }
diff --git a/pkgs/tools/misc/umlet/default.nix b/pkgs/tools/misc/umlet/default.nix
index 67cf61ebe5a12..b9d3e5d315380 100644
--- a/pkgs/tools/misc/umlet/default.nix
+++ b/pkgs/tools/misc/umlet/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ oxzi ];
     platforms = platforms.all;
+    mainProgram = "umlet";
   };
 }
diff --git a/pkgs/tools/misc/unclutter-xfixes/default.nix b/pkgs/tools/misc/unclutter-xfixes/default.nix
index 93e0d750a2acb..81db6449eb14e 100644
--- a/pkgs/tools/misc/unclutter-xfixes/default.nix
+++ b/pkgs/tools/misc/unclutter-xfixes/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "Rewrite of unclutter using the X11 Xfixes extension";
     platforms = platforms.unix;
     license = lib.licenses.mit;
-    maintainers = [ maintainers.globin ];
+    maintainers = [ ];
     mainProgram = "unclutter";
   };
 }
diff --git a/pkgs/tools/misc/unclutter/default.nix b/pkgs/tools/misc/unclutter/default.nix
index b11df6655bf35..5d711c5fd03d0 100644
--- a/pkgs/tools/misc/unclutter/default.nix
+++ b/pkgs/tools/misc/unclutter/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ domenkozar ];
     platforms = platforms.unix;
     license = lib.licenses.publicDomain;
+    mainProgram = "unclutter";
   };
 }
diff --git a/pkgs/tools/misc/undocker/default.nix b/pkgs/tools/misc/undocker/default.nix
index f80642f1e8129..a2ce7dfb7aa16 100644
--- a/pkgs/tools/misc/undocker/default.nix
+++ b/pkgs/tools/misc/undocker/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "A CLI tool to convert a Docker image to a flattened rootfs tarball";
     license = licenses.asl20;
     maintainers = with maintainers; [ jordanisaacs ];
+    mainProgram = "undocker";
   };
 }
diff --git a/pkgs/tools/misc/unparam/default.nix b/pkgs/tools/misc/unparam/default.nix
index 3f87e0edd64be..6578f08c59aec 100644
--- a/pkgs/tools/misc/unparam/default.nix
+++ b/pkgs/tools/misc/unparam/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/mvdan/unparam";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "unparam";
   };
 }
diff --git a/pkgs/tools/misc/up/default.nix b/pkgs/tools/misc/up/default.nix
index d9ce59f965724..9fa0c700b8c37 100644
--- a/pkgs/tools/misc/up/default.nix
+++ b/pkgs/tools/misc/up/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/akavel/up";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.asl20;
+    mainProgram = "up";
   };
 }
diff --git a/pkgs/tools/misc/url-parser/default.nix b/pkgs/tools/misc/url-parser/default.nix
index 27df534d8756c..d55639b8be800 100644
--- a/pkgs/tools/misc/url-parser/default.nix
+++ b/pkgs/tools/misc/url-parser/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "url-parser";
-  version = "1.0.5";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "thegeeklab";
     repo = "url-parser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-A+uoxwPdWdy12Avl2Ci+zd9TFmQFA22pMbsxtWpNPpc=";
+    hash = "sha256-1KNe2sYr2DtRJGdgqs7JAA788Qa3+Z7iTntCkiJd29I=";
   };
 
-  vendorHash = "sha256-8doDVHyhQKsBeN1H73KV/rxhpumDLIzjahdjtW79Bek=";
+  vendorHash = "sha256-DAwPYihfOorC61/UhRNNOsOaAjbu8mDBaikGJIOzk6Y=";
 
   ldflags = [
     "-s"
@@ -29,5 +29,6 @@ buildGoModule rec {
     changelog = "https://github.com/thegeeklab/url-parser/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "url-parser";
   };
 }
diff --git a/pkgs/tools/misc/urlencode/default.nix b/pkgs/tools/misc/urlencode/default.nix
index 896f77398bd11..6b8097a6b5278 100644
--- a/pkgs/tools/misc/urlencode/default.nix
+++ b/pkgs/tools/misc/urlencode/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dead10ck/urlencode";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "urlencode";
   };
 }
diff --git a/pkgs/tools/misc/usbimager/default.nix b/pkgs/tools/misc/usbimager/default.nix
index a3660d71da4cb..b845062c1783e 100644
--- a/pkgs/tools/misc/usbimager/default.nix
+++ b/pkgs/tools/misc/usbimager/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "usbimager";
-  version = "1.0.9";
+  version = "1.0.10";
 
   src = fetchFromGitLab {
     owner = "bztsrc";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CEGUXJXqXmD8uT93T9dg49Lf5vTpAzQjdnhYmbR5zTI=";
+    sha256 = "sha256-HTFopc2xrhp0XYubQtOwMKWTQ+3JSKAyL4mMyQ82kAs=";
   };
 
   sourceRoot = "${src.name}/src";
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux;
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
+    mainProgram = "usbimager";
   };
 }
diff --git a/pkgs/tools/misc/usbmuxd/default.nix b/pkgs/tools/misc/usbmuxd/default.nix
index 2e9c2318081e8..5a391762cd082 100644
--- a/pkgs/tools/misc/usbmuxd/default.nix
+++ b/pkgs/tools/misc/usbmuxd/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "usbmuxd";
   };
 }
diff --git a/pkgs/tools/misc/usbmuxd2/default.nix b/pkgs/tools/misc/usbmuxd2/default.nix
index 18014b60371fd..2eee1bb71324c 100644
--- a/pkgs/tools/misc/usbmuxd2/default.nix
+++ b/pkgs/tools/misc/usbmuxd2/default.nix
@@ -1,30 +1,29 @@
 { lib
 , clangStdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , pkg-config
 , libimobiledevice
 , libusb1
 , avahi
 , clang
+, git
 }: let
 
   libgeneral = clangStdenv.mkDerivation rec {
     pname = "libgeneral";
-    version = "unstable-2021-12-12";
+    version = "74";
     src = fetchFromGitHub {
       owner = "tihmstar";
       repo = pname;
-      rev = "017d71edb0a12ff4fa01a39d12cd297d8b3d8d34";
-      hash = "sha256-NrSl/BeKe3wahiYTHGRVSq3PLgQfu76kHCC5ziY7cgQ=";
+      rev = "refs/tags/${version}";
+      hash = "sha256-6aowcIYssc1xqH6kTi/cpH2F7rgc8+lGC8HgZWYH2w0=";
+      # Leave DotGit so that autoconfigure can read version from git tags
+      leaveDotGit = true;
     };
-    postPatch = ''
-      # Set package version so we don't require git
-      sed -i '/AC_INIT/s/m4_esyscmd.*/${version})/' configure.ac
-    '';
     nativeBuildInputs = [
       autoreconfHook
+      git
       pkg-config
     ];
     meta = with lib; {
@@ -38,33 +37,26 @@
 in
 clangStdenv.mkDerivation rec {
   pname = "usbmuxd2";
-  version = "unstable-2022-02-07";
+  version = "unstable-2023-12-12";
 
   src = fetchFromGitHub {
     owner = "tihmstar";
     repo = pname;
-    rev = "753b79eaf317c56df6c8b1fb6da5847cc54a0bb0";
-    hash = "sha256-T9bt3KOJwFpdPeFuXfBhkBZNaNzix3Q3D47vASR+fVg=";
+    rev = "2ce399ddbacb110bd5a83a6b8232d42c9a9b6e84";
+    hash = "sha256-UVLLE73XuWTgGlpTMxUDykFmiBDqz6NCRO2rpRAYfow=";
+    # Leave DotGit so that autoconfigure can read version from git tags
+    leaveDotGit = true;
   };
 
-  patches = [
-    (fetchpatch {
-      name = "libplist-2.3.0-compatibility.patch";
-      url = "https://github.com/tihmstar/usbmuxd2/commit/e527bce2360afc22c95542f1252f94c994f45c72.patch";
-      hash = "sha256-ig4j4z2HH8gitXxZYW9fm74Ix9XmJeX2Lz9HBCuDsuk=";
-    })
-  ];
-
   postPatch = ''
-    # Set package version so we don't require git
-    sed -i '/AC_INIT/s/m4_esyscmd.*/${version})/' configure.ac
-    # Do not check libgeneral version
-    sed -i 's/libgeneral >= 39/libgeneral/' configure.ac
+    # Checking for libgeneral version still fails
+    sed -i 's/libgeneral >= $LIBGENERAL_MINVERS_STR/libgeneral/' configure.ac
   '';
 
   nativeBuildInputs = [
     autoreconfHook
     clang
+    git
     pkg-config
   ];
 
@@ -90,5 +82,6 @@ clangStdenv.mkDerivation rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "usbmuxd";
   };
 }
diff --git a/pkgs/tools/misc/usbview/default.nix b/pkgs/tools/misc/usbview/default.nix
index 2f417ea86de55..17402fe76120c 100644
--- a/pkgs/tools/misc/usbview/default.nix
+++ b/pkgs/tools/misc/usbview/default.nix
@@ -3,23 +3,25 @@
 , fetchFromGitHub
 , autoreconfHook
 , pkg-config
+, imagemagick
 , gtk3
 }:
 
 stdenv.mkDerivation rec {
   pname = "usbview";
-  version = "2.0";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = "gregkh";
     repo = "usbview";
     rev = "v${version}";
-    sha256 = "1cw5jjpidjn34rxdjslpdlj99k4dqaq1kz6mplv5hgjdddijvn5p";
+    hash = "sha256-h+sB83BYsrB2VxwtatPWNiM0WdTCMY289nh+/0o8GOw=";
   };
 
   nativeBuildInputs = [
     autoreconfHook
     pkg-config
+    imagemagick
   ];
 
   buildInputs = [
@@ -30,7 +32,8 @@ stdenv.mkDerivation rec {
     description = "USB viewer for Linux";
     license = licenses.gpl2Only;
     homepage = "http://www.kroah.com/linux-usb/";
-    maintainers = with maintainers; [ shamilton ];
+    maintainers = with maintainers; [ shamilton h7x4 ];
     platforms = platforms.linux;
+    mainProgram = "usbview";
   };
 }
diff --git a/pkgs/tools/misc/uutils-coreutils/default.nix b/pkgs/tools/misc/uutils-coreutils/default.nix
index 697396f0817ae..45a1c3f8a28ff 100644
--- a/pkgs/tools/misc/uutils-coreutils/default.nix
+++ b/pkgs/tools/misc/uutils-coreutils/default.nix
@@ -12,19 +12,19 @@
 
 stdenv.mkDerivation rec {
   pname = "uutils-coreutils";
-  version = "0.0.20";
+  version = "0.0.22";
 
   src = fetchFromGitHub {
     owner = "uutils";
     repo = "coreutils";
     rev = version;
-    sha256 = "sha256-Xr+RcWvAHyMMaHhcd3ArGeRZzpL76v7fXiHUSSxgj10=";
+    hash = "sha256-aEhU4O4xoj7hrnmNXA9GQYn8nc6XEJCGQIcx/xRtLMc=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-3hUEDE+Yup/+u/ACyAWXYTLerOqB/jtOzECdI540Ag0=";
+    hash = "sha256-zQN6EVRyd4FWeNNDXI3NY6XWmJTD+n8c+w7BHtXvs1k=";
   };
 
   nativeBuildInputs = [ rustPlatform.cargoSetupHook sphinx ];
diff --git a/pkgs/tools/misc/uwufetch/default.nix b/pkgs/tools/misc/uwufetch/default.nix
index f86320a59b32c..a7241e6488be4 100644
--- a/pkgs/tools/misc/uwufetch/default.nix
+++ b/pkgs/tools/misc/uwufetch/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ lourkeur ];
+    mainProgram = "uwufetch";
   };
 }
diff --git a/pkgs/tools/misc/uwuify/default.nix b/pkgs/tools/misc/uwuify/default.nix
index 2722610d0e3f8..abcf5e9b23da9 100644
--- a/pkgs/tools/misc/uwuify/default.nix
+++ b/pkgs/tools/misc/uwuify/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = lib.platforms.x86; # uses SSE instructions
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "uwuify";
   };
 }
diff --git a/pkgs/tools/misc/valeronoi/default.nix b/pkgs/tools/misc/valeronoi/default.nix
index 95669bbeeb320..9826ce510bfc5 100644
--- a/pkgs/tools/misc/valeronoi/default.nix
+++ b/pkgs/tools/misc/valeronoi/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "valeronoi";
-  version = "0.1.9";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "ccoors";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-Xa70kOPQLavuJTF9PxCgpKYj15C2fna++cFlCId0a08=";
+    sha256 = "sha256-7z967y1hWpitZfXNlHHM8qEBdyuBQSFlJElS4ldsAaE=";
   };
 
   buildInputs = [
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ nova-madeline maeve ];
+    mainProgram = "valeronoi";
   };
 }
diff --git a/pkgs/tools/misc/vcs_query/default.nix b/pkgs/tools/misc/vcs_query/default.nix
index 7e1387df1f826..ccfdc62b12968 100644
--- a/pkgs/tools/misc/vcs_query/default.nix
+++ b/pkgs/tools/misc/vcs_query/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     description = "eMail query-command to use vCards in mutt and Vim";
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
+    mainProgram = "vcs_query";
   };
 }
diff --git a/pkgs/tools/misc/vector/Cargo.lock b/pkgs/tools/misc/vector/Cargo.lock
index e74b6b2c2107c..193099d1733d5 100644
--- a/pkgs/tools/misc/vector/Cargo.lock
+++ b/pkgs/tools/misc/vector/Cargo.lock
@@ -20,9 +20,9 @@ checksum = "8b5ace29ee3216de37c0546865ad08edef58b0f9e76838ed8959a84a990e58c5"
 
 [[package]]
 name = "addr2line"
-version = "0.19.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -51,9 +51,9 @@ dependencies = [
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -62,41 +62,48 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
  "once_cell",
  "version_check",
 ]
 
 [[package]]
 name = "ahash"
-version = "0.8.2"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf6ccdb167abbf410dcb915cabd428929d7f6a04980b54a11f26a39f1c7f7107"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
 dependencies = [
  "cfg-if",
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
 name = "amq-protocol"
-version = "7.0.1"
+version = "7.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acc7cad07d1b4533fcb46f0819a6126fa201fd0385469aba75e405424f3fe009"
+checksum = "1d40d8b2465c7959dd40cee32ba6ac334b5de57e9fca0cc756759894a4152a5d"
 dependencies = [
  "amq-protocol-tcp",
  "amq-protocol-types",
@@ -108,20 +115,20 @@ dependencies = [
 
 [[package]]
 name = "amq-protocol-tcp"
-version = "7.0.1"
+version = "7.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d8b20aba8c35a0b885e1e978eff456ced925730a4e012e63e4ff89a1deb602b"
+checksum = "9cb2100adae7da61953a2c3a01935d86caae13329fadce3333f524d6d6ce12e2"
 dependencies = [
  "amq-protocol-uri",
  "tcp-stream",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
 name = "amq-protocol-types"
-version = "7.0.1"
+version = "7.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e245e0e9083b6a6db5f8c10013074cb382266eb9e2a37204d19c651b8d3b8114"
+checksum = "156ff13c8a3ced600b4e54ed826a2ae6242b6069d00dd98466827cef07d3daff"
 dependencies = [
  "cookie-factory",
  "nom",
@@ -131,9 +138,9 @@ dependencies = [
 
 [[package]]
 name = "amq-protocol-uri"
-version = "7.0.1"
+version = "7.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56987108bf48d2eb500cae8896cd9291564eedd8744776ecc5c3338a8b2ca5f8"
+checksum = "751bbd7d440576066233e740576f1b31fdc6ab86cfabfbd48c548de77eca73e4"
 dependencies = [
  "amq-protocol-types",
  "percent-encoding",
@@ -172,11 +179,11 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.5.0"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
+checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
 dependencies = [
- "anstyle 1.0.0",
+ "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
@@ -186,21 +193,15 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80c697cc33851b02ab0c26b2e8a211684fbe627ff1cc506131f35026dd7686dd"
-
-[[package]]
-name = "anstyle"
-version = "1.0.0"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
 dependencies = [
  "utf8parse",
 ]
@@ -216,33 +217,26 @@ dependencies = [
 
 [[package]]
 name = "anstyle-wincon"
-version = "2.1.0"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
+checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
 dependencies = [
- "anstyle 1.0.0",
+ "anstyle",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
-
-[[package]]
-name = "anymap"
-version = "1.0.0-beta.2"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f1f8f5a6f3d50d89e3797d7593a50f96bb2aaa20ca0cc7be1fb673232c91d72"
+checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355"
 
 [[package]]
 name = "apache-avro"
-version = "0.15.0"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c0fdddc3fdac97394ffcc5c89c634faa9c1c166ced54189af34e407c97b6ee7"
+checksum = "ceb7c683b2f8f40970b70e39ff8be514c95b96fcb9c4af87e1ed2cb2e10801a0"
 dependencies = [
- "byteorder",
  "digest",
  "lazy_static",
  "libflate",
@@ -250,15 +244,14 @@ dependencies = [
  "num-bigint",
  "quad-rand",
  "rand 0.8.5",
- "regex",
+ "regex-lite",
  "serde",
  "serde_json",
  "strum",
  "strum_macros",
  "thiserror",
- "typed-builder 0.14.0",
+ "typed-builder 0.16.2",
  "uuid",
- "zerocopy",
 ]
 
 [[package]]
@@ -272,9 +265,9 @@ dependencies = [
 
 [[package]]
 name = "arbitrary"
-version = "1.3.0"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
 dependencies = [
  "derive_arbitrary",
 ]
@@ -303,15 +296,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c6368f9ae5c6ec403ca910327ae0c9437b0a85255b6950c90d497e6177f6e5e"
 dependencies = [
  "proc-macro-hack",
- "quote 1.0.33",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "arrayvec"
-version = "0.7.2"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
 name = "ascii"
@@ -355,8 +348,8 @@ version = "2.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
 dependencies = [
- "anstyle 1.0.0",
- "bstr 1.6.2",
+ "anstyle",
+ "bstr 1.9.0",
  "doc-comment",
  "predicates",
  "predicates-core",
@@ -366,20 +359,20 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.7.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
 dependencies = [
- "concurrent-queue 1.2.4",
- "event-listener",
+ "concurrent-queue",
+ "event-listener 2.5.3",
  "futures-core",
 ]
 
 [[package]]
 name = "async-compat"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b48b4ff0c2026db683dea961cd8ea874737f56cffca86fa84415eaddc51c00d"
+checksum = "f68a707c1feb095d8c07f8a65b9f506b117d30af431cab89374357de7c11461b"
 dependencies = [
  "futures-core",
  "futures-io",
@@ -390,29 +383,29 @@ dependencies = [
 
 [[package]]
 name = "async-compression"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb42b2197bf15ccb092b62c74515dbd8b86d0effd934795f6687c93b6e679a2c"
+checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
 dependencies = [
  "flate2",
  "futures-core",
  "memchr",
  "pin-project-lite",
  "tokio",
- "zstd 0.12.4",
- "zstd-safe 6.0.3+zstd.1.5.2",
+ "zstd 0.13.0",
+ "zstd-safe 7.0.0",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
+checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "async-task",
- "concurrent-queue 2.0.0",
- "fastrand",
+ "concurrent-queue",
+ "fastrand 2.0.1",
  "futures-lite",
  "slab",
 ]
@@ -423,7 +416,7 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "blocking",
  "futures-lite",
@@ -437,8 +430,8 @@ checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
 dependencies = [
  "async-channel",
  "async-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "blocking",
  "futures-lite",
  "once_cell",
@@ -457,43 +450,13 @@ dependencies = [
 
 [[package]]
 name = "async-graphql"
-version = "5.0.10"
+version = "6.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b35ef8f9be23ee30fe1eb1cf175c689bc33517c6c6d0fd0669dade611e5ced7f"
+checksum = "298a5d587d6e6fdb271bf56af2dc325a80eb291fd0fc979146584b9a05494a8c"
 dependencies = [
- "async-graphql-derive 5.0.10",
- "async-graphql-parser 5.0.10",
- "async-graphql-value 5.0.10",
- "async-stream",
- "async-trait",
- "base64 0.13.1",
- "bytes 1.5.0",
- "fnv",
- "futures-util",
- "http",
- "indexmap 1.9.3",
- "mime",
- "multer",
- "num-traits",
- "once_cell",
- "pin-project-lite",
- "regex",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "static_assertions",
- "thiserror",
-]
-
-[[package]]
-name = "async-graphql"
-version = "6.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d1f56ef571e325930c41685502269651505160ae0d7e0d7413dd84afe86432c"
-dependencies = [
- "async-graphql-derive 6.0.0",
- "async-graphql-parser 6.0.0",
- "async-graphql-value 6.0.0",
+ "async-graphql-derive",
+ "async-graphql-parser",
+ "async-graphql-value",
  "async-stream",
  "async-trait",
  "base64 0.13.1",
@@ -501,8 +464,8 @@ dependencies = [
  "chrono",
  "fnv",
  "futures-util",
- "http",
- "indexmap 2.0.0",
+ "http 0.2.9",
+ "indexmap 2.1.0",
  "mime",
  "multer",
  "num-traits",
@@ -518,56 +481,28 @@ dependencies = [
 
 [[package]]
 name = "async-graphql-derive"
-version = "5.0.10"
+version = "6.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a0f6ceed3640b4825424da70a5107e79d48d9b2bc6318dfc666b2fc4777f8c4"
+checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0"
 dependencies = [
  "Inflector",
- "async-graphql-parser 5.0.10",
- "darling 0.14.2",
- "proc-macro-crate 1.2.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
- "thiserror",
-]
-
-[[package]]
-name = "async-graphql-derive"
-version = "6.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a3a4c50aafce65a48d1aba749aaa946173a52d274abb5b9f76360a966ce17c6"
-dependencies = [
- "Inflector",
- "async-graphql-parser 6.0.0",
+ "async-graphql-parser",
  "darling 0.20.3",
- "proc-macro-crate 1.2.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro-crate 1.3.1",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "strum",
- "syn 2.0.37",
+ "syn 2.0.46",
  "thiserror",
 ]
 
 [[package]]
 name = "async-graphql-parser"
-version = "5.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc308cd3bc611ee86c9cf19182d2b5ee583da40761970e41207f088be3db18f"
-dependencies = [
- "async-graphql-value 5.0.10",
- "pest",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "async-graphql-parser"
-version = "6.0.0"
+version = "6.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a64488a0f0afd284f829977437a2e49e9f62cb72ea5fbd96aec19f87351576df"
+checksum = "6139181845757fd6a73fbb8839f3d036d7150b798db0e9bb3c6e83cdd65bd53b"
 dependencies = [
- "async-graphql-value 6.0.0",
+ "async-graphql-value",
  "pest",
  "serde",
  "serde_json",
@@ -575,35 +510,23 @@ dependencies = [
 
 [[package]]
 name = "async-graphql-value"
-version = "5.0.10"
+version = "6.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d461325bfb04058070712296601dfe5e5bd6cdff84780a0a8c569ffb15c87eb3"
+checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750"
 dependencies = [
  "bytes 1.5.0",
- "indexmap 1.9.3",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "async-graphql-value"
-version = "6.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86046bbced96c0fab3ff5d2b3c769c0c55b0b3a7d67f9e2f2044f349f2e7d501"
-dependencies = [
- "bytes 1.5.0",
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "serde",
  "serde_json",
 ]
 
 [[package]]
 name = "async-graphql-warp"
-version = "6.0.0"
+version = "6.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4de785650dd90a223b5f5968c5345215160a36d196c9295c6c9a316cb29cba04"
+checksum = "fa68237ec9f2190cae295122ba45612b992658fbc372d142c6c6981cc70a9eac"
 dependencies = [
- "async-graphql 6.0.0",
+ "async-graphql",
  "futures-util",
  "serde_json",
  "warp",
@@ -611,52 +534,82 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
- "concurrent-queue 2.0.0",
+ "cfg-if",
+ "concurrent-queue",
  "futures-lite",
- "libc",
  "log",
  "parking",
- "polling",
+ "polling 2.8.0",
+ "rustix 0.37.27",
  "slab",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "waker-fn",
- "windows-sys 0.42.0",
 ]
 
 [[package]]
-name = "async-lock"
-version = "2.6.0"
+name = "async-io"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685"
+checksum = "10da8f3146014722c89e7859e1d7bb97873125d7346d10ca642ffab794355828"
 dependencies = [
- "event-listener",
+ "async-lock 2.8.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
  "futures-lite",
+ "parking",
+ "polling 3.3.0",
+ "rustix 0.38.28",
+ "slab",
+ "tracing 0.1.40",
+ "waker-fn",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed"
+dependencies = [
+ "event-listener 3.0.1",
+ "event-listener-strategy",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-nats"
-version = "0.32.0"
+version = "0.33.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df2ea11ebe42f65b91c125042bdf8cfb0cccbd344c75e64b98fa3177040e0de9"
+checksum = "dbc1f1a75fd07f0f517322d103211f12d757658e91676def9a2e688774656c60"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
- "futures 0.3.28",
- "http",
+ "futures 0.3.30",
+ "http 0.2.9",
  "memchr",
- "nkeys",
+ "nkeys 0.3.2",
  "nuid",
  "once_cell",
  "rand 0.8.5",
  "regex",
- "ring",
- "rustls 0.21.7",
+ "ring 0.17.5",
+ "rustls 0.21.8",
  "rustls-native-certs",
  "rustls-pemfile",
  "rustls-webpki",
@@ -669,38 +622,36 @@ dependencies = [
  "tokio",
  "tokio-retry",
  "tokio-rustls 0.24.1",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "url",
 ]
 
 [[package]]
 name = "async-net"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f"
+checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f"
 dependencies = [
- "async-io",
- "autocfg",
+ "async-io 1.13.0",
  "blocking",
  "futures-lite",
 ]
 
 [[package]]
 name = "async-process"
-version = "1.6.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6381ead98388605d0d9ff86371043b5aa922a3905824244de40dc263a14fcba4"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
 dependencies = [
- "async-io",
- "async-lock",
- "autocfg",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
  "blocking",
  "cfg-if",
- "event-listener",
+ "event-listener 3.0.1",
  "futures-lite",
- "libc",
- "signal-hook",
- "windows-sys 0.42.0",
+ "rustix 0.38.28",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -709,7 +660,7 @@ version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a6012d170ad00de56c9ee354aef2e358359deb1ec504254e0e5a3774771de0e"
 dependencies = [
- "async-io",
+ "async-io 1.13.0",
  "async-trait",
  "futures-core",
  "reactor-trait",
@@ -721,9 +672,27 @@ version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.1.0",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.28",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -743,33 +712,33 @@ version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.3.0"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
 
 [[package]]
 name = "async-trait"
-version = "0.1.73"
+version = "0.1.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "atomic-waker"
-version = "1.0.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "atty"
@@ -806,13 +775,13 @@ dependencies = [
  "aws-types",
  "bytes 1.5.0",
  "hex",
- "http",
+ "http 0.2.9",
  "hyper",
- "ring",
+ "ring 0.16.20",
  "time",
  "tokio",
  "tower",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "zeroize",
 ]
 
@@ -824,7 +793,7 @@ dependencies = [
  "aws-smithy-async",
  "aws-smithy-types",
  "tokio",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "zeroize",
 ]
 
@@ -836,9 +805,9 @@ dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
  "aws-types",
- "http",
+ "http 0.2.9",
  "regex",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -851,12 +820,12 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "http-body",
  "lazy_static",
  "percent-encoding",
  "pin-project-lite",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -878,7 +847,7 @@ dependencies = [
  "aws-smithy-xml",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tokio-stream",
  "tower",
@@ -901,7 +870,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tokio-stream",
  "tower",
@@ -924,7 +893,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tokio-stream",
  "tower",
@@ -947,7 +916,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tower",
 ]
@@ -969,7 +938,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tokio-stream",
  "tower",
@@ -997,15 +966,15 @@ dependencies = [
  "aws-types",
  "bytes 1.5.0",
  "bytes-utils",
- "fastrand",
- "http",
+ "fastrand 1.9.0",
+ "http 0.2.9",
  "http-body",
  "once_cell",
  "percent-encoding",
  "regex",
  "tokio-stream",
  "tower",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "url",
 ]
 
@@ -1028,7 +997,7 @@ dependencies = [
  "aws-smithy-xml",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tokio-stream",
  "tower",
@@ -1053,7 +1022,7 @@ dependencies = [
  "aws-smithy-xml",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tokio-stream",
  "tower",
@@ -1076,7 +1045,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tokio-stream",
  "tower",
@@ -1101,10 +1070,10 @@ dependencies = [
  "aws-smithy-xml",
  "aws-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "regex",
  "tower",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1117,8 +1086,8 @@ dependencies = [
  "aws-smithy-eventstream",
  "aws-smithy-http",
  "aws-types",
- "http",
- "tracing 0.1.37",
+ "http 0.2.9",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1132,13 +1101,13 @@ dependencies = [
  "form_urlencoded",
  "hex",
  "hmac",
- "http",
+ "http 0.2.9",
  "once_cell",
  "percent-encoding",
  "regex",
  "sha2",
  "time",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1163,13 +1132,13 @@ dependencies = [
  "crc32c",
  "crc32fast",
  "hex",
- "http",
+ "http 0.2.9",
  "http-body",
  "md-5",
  "pin-project-lite",
  "sha1",
  "sha2",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1183,18 +1152,18 @@ dependencies = [
  "aws-smithy-protocol-test",
  "aws-smithy-types",
  "bytes 1.5.0",
- "fastrand",
- "http",
+ "fastrand 1.9.0",
+ "http 0.2.9",
  "http-body",
  "hyper",
- "hyper-rustls 0.23.1",
+ "hyper-rustls 0.23.2",
  "hyper-tls",
  "lazy_static",
  "pin-project-lite",
  "serde",
  "tokio",
  "tower",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1217,14 +1186,14 @@ dependencies = [
  "bytes 1.5.0",
  "bytes-utils",
  "futures-core",
- "http",
+ "http 0.2.9",
  "http-body",
  "hyper",
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
  "pin-utils",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1235,11 +1204,11 @@ dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "http-body",
  "pin-project-lite",
  "tower",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1256,7 +1225,7 @@ version = "0.54.1"
 source = "git+https://github.com/vectordotdev/aws-sdk-rust?rev=3d6aefb7fcfced5fc2a7e761a87e4ddbda1ee670#3d6aefb7fcfced5fc2a7e761a87e4ddbda1ee670"
 dependencies = [
  "assert-json-diff 1.1.0",
- "http",
+ "http 0.2.9",
  "pretty_assertions",
  "regex",
  "roxmltree 0.14.1",
@@ -1303,9 +1272,9 @@ dependencies = [
  "aws-smithy-client",
  "aws-smithy-http",
  "aws-smithy-types",
- "http",
+ "http 0.2.9",
  "rustc_version 0.4.0",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1319,7 +1288,7 @@ dependencies = [
  "bitflags 1.3.2",
  "bytes 1.5.0",
  "futures-util",
- "http",
+ "http 0.2.9",
  "http-body",
  "hyper",
  "itoa",
@@ -1346,7 +1315,7 @@ dependencies = [
  "async-trait",
  "bytes 1.5.0",
  "futures-util",
- "http",
+ "http 0.2.9",
  "http-body",
  "mime",
  "rustversion",
@@ -1356,21 +1325,21 @@ dependencies = [
 
 [[package]]
 name = "azure_core"
-version = "0.15.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f20eb684aea745292c540173304383c9cba9697d1c31d307620a57d6f878fa9"
+checksum = "4ccd63c07d1fbfb3d4543d7ea800941bf5a30db1911b9b9e4db3b2c4210a434f"
 dependencies = [
  "async-trait",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
  "dyn-clone",
- "futures 0.3.28",
- "getrandom 0.2.10",
+ "futures 0.3.30",
+ "getrandom 0.2.11",
  "http-types",
  "log",
  "paste",
  "pin-project",
- "quick-xml 0.30.0",
+ "quick-xml 0.31.0",
  "rand 0.8.5",
  "reqwest",
  "rustc_version 0.4.0",
@@ -1383,39 +1352,38 @@ dependencies = [
 
 [[package]]
 name = "azure_identity"
-version = "0.15.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e15ab021e72fa7196fa8406951f7e85a3476e4968568b2ce3866d2ceed831655"
+checksum = "8bd7ea32ca7eb66ff4757f83baac702ff11d469e5de365b6bc6f79f9c25d3436"
 dependencies = [
- "async-lock",
+ "async-lock 3.0.0",
  "async-trait",
  "azure_core",
- "fix-hidden-lifetime-bug",
- "futures 0.3.28",
+ "futures 0.3.30",
  "log",
  "oauth2",
  "pin-project",
  "serde",
  "serde_json",
  "time",
+ "tz-rs",
  "url",
  "uuid",
 ]
 
 [[package]]
 name = "azure_storage"
-version = "0.15.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf64f9d78e573f64e189fa7188c4e6a0f605e27740105a8d32038b3ba8c913be"
+checksum = "83ca0a07f89fd72a006da4713e93af3d6c44a693e61a1c3c2e7985de39c182e8"
 dependencies = [
  "RustyXML",
  "async-trait",
  "azure_core",
  "bytes 1.5.0",
- "futures 0.3.28",
+ "futures 0.3.30",
  "hmac",
  "log",
- "once_cell",
  "serde",
  "serde_derive",
  "serde_json",
@@ -1427,15 +1395,15 @@ dependencies = [
 
 [[package]]
 name = "azure_storage_blobs"
-version = "0.15.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a61299a8b65b88acba1a079a0b5e8a39970a12cb53e35ada2641687edb022d5a"
+checksum = "8096c04d370118323c42b2752aa1883e4880a56ef65239f317b359f263b6e194"
 dependencies = [
  "RustyXML",
  "azure_core",
  "azure_storage",
  "bytes 1.5.0",
- "futures 0.3.28",
+ "futures 0.3.30",
  "log",
  "serde",
  "serde_derive",
@@ -1451,34 +1419,34 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
  "instant",
  "rand 0.8.5",
 ]
 
 [[package]]
 name = "backon"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f34fac4d7cdaefa2deded0eda2d5d59dbfd43370ff3f856209e72340ae84c294"
+checksum = "0c1a6197b2120bb2185a267f6515038558b019e92b832bb0320e96d66268dcf9"
 dependencies = [
- "futures 0.3.28",
+ "fastrand 1.9.0",
+ "futures-core",
  "pin-project",
- "rand 0.8.5",
  "tokio",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
  "cfg-if",
  "libc",
- "miniz_oxide 0.6.2",
+ "miniz_oxide",
  "object",
  "rustc-demangle",
 ]
@@ -1490,6 +1458,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d27c3610c36aee21ce8ac510e6224498de4228ad772a171ed65643a24693a5a8"
 
 [[package]]
+name = "base16ct"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+
+[[package]]
 name = "base64"
 version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1503,9 +1477,9 @@ checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5"
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "base64-simd"
@@ -1518,9 +1492,9 @@ dependencies = [
 
 [[package]]
 name = "base64ct"
-version = "1.5.3"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
 name = "bit-set"
@@ -1545,18 +1519,18 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "bitmask-enum"
-version = "2.2.2"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49fb8528abca6895a5ada33d62aedd538a5c33e77068256483b44a3230270163"
+checksum = "9990737a6d5740ff51cdbbc0f0503015cb30c390f6623968281eb214a520cfc0"
 dependencies = [
- "quote 1.0.33",
- "syn 2.0.37",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -1573,34 +1547,36 @@ dependencies = [
 
 [[package]]
 name = "block-buffer"
-version = "0.10.3"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
 dependencies = [
  "generic-array",
 ]
 
 [[package]]
 name = "block-padding"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
 dependencies = [
  "generic-array",
 ]
 
 [[package]]
 name = "blocking"
-version = "1.3.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8"
+checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
 dependencies = [
  "async-channel",
- "async-lock",
+ "async-lock 2.8.0",
  "async-task",
- "atomic-waker",
- "fastrand",
+ "fastrand 2.0.1",
+ "futures-io",
  "futures-lite",
+ "piper",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -1618,7 +1594,7 @@ version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f03db470b3c0213c47e978da93200259a1eb4dae2e5512cba9955e2b540a6fc6"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "bollard-stubs",
  "bytes 1.5.0",
  "chrono",
@@ -1626,13 +1602,13 @@ dependencies = [
  "futures-util",
  "hex",
  "home",
- "http",
+ "http 0.2.9",
  "hyper",
- "hyper-rustls 0.24.0",
+ "hyper-rustls 0.24.2",
  "hyperlocal",
  "log",
  "pin-project-lite",
- "rustls 0.21.7",
+ "rustls 0.21.8",
  "rustls-native-certs",
  "rustls-pemfile",
  "rustls-webpki",
@@ -1645,7 +1621,7 @@ dependencies = [
  "tokio",
  "tokio-util",
  "url",
- "webpki-roots 0.25.2",
+ "webpki-roots",
  "winapi",
 ]
 
@@ -1658,67 +1634,46 @@ dependencies = [
  "chrono",
  "serde",
  "serde_repr",
- "serde_with 3.3.0",
+ "serde_with 3.4.0",
 ]
 
 [[package]]
 name = "borsh"
-version = "0.10.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "822462c1e7b17b31961798a6874b36daea6818e99e0cb7d3b7b0fa3c477751c3"
+checksum = "bf617fabf5cdbdc92f774bfe5062d870f228b80056d41180797abf48bed4056e"
 dependencies = [
  "borsh-derive",
- "hashbrown 0.13.1",
+ "cfg_aliases",
 ]
 
 [[package]]
 name = "borsh-derive"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37626c9e941a687ee9abef6065b44c379478ae563b7483c613dd705ef1dff59e"
-dependencies = [
- "borsh-derive-internal",
- "borsh-schema-derive-internal",
- "proc-macro-crate 0.1.5",
- "proc-macro2 1.0.67",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "borsh-derive-internal"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61820b4c5693eafb998b1e67485423c923db4a75f72585c247bdee32bad81e7b"
-dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "borsh-schema-derive-internal"
-version = "0.10.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c76cdbfa13def20d1f8af3ae7b3c6771f06352a74221d8851262ac384c122b8e"
+checksum = "f404657a7ea7b5249e36808dff544bc88a28f26e0ac40009f674b7a009d14be3"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
+ "once_cell",
+ "proc-macro-crate 2.0.0",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
+ "syn_derive",
 ]
 
 [[package]]
 name = "bson"
-version = "2.6.1"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aeb8bae494e49dbc330dd23cf78f6f7accee22f640ce3ab17841badaa4ce232"
+checksum = "61570f4de0cc9c03b481c96057b3ae7c6ff7b5b35da8b0832c44f0131987a718"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.8.6",
  "base64 0.13.1",
  "bitvec",
  "hex",
  "indexmap 1.9.3",
  "js-sys",
- "lazy_static",
+ "once_cell",
  "rand 0.8.5",
  "serde",
  "serde_bytes",
@@ -1740,53 +1695,54 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.6.2"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
 dependencies = [
  "memchr",
- "regex-automata 0.3.8",
+ "regex-automata 0.4.3",
  "serde",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.11.1"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "bytecheck"
-version = "0.6.9"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f"
+checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627"
 dependencies = [
  "bytecheck_derive",
  "ptr_meta",
+ "simdutf8",
 ]
 
 [[package]]
 name = "bytecheck_derive"
-version = "0.6.9"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf"
+checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "bytemuck"
-version = "1.12.3"
+version = "1.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
@@ -1824,20 +1780,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
 
 [[package]]
-name = "cache-padded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
-
-[[package]]
 name = "cached"
-version = "0.45.1"
+version = "0.46.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90eb5776f28a149524d1d8623035760b4454ec881e8cf3838fa8d7e1b11254b3"
+checksum = "c7c8c50262271cdf5abc979a5f76515c234e764fa025d1ba4862c0f0bcda0e95"
 dependencies = [
+ "ahash 0.8.6",
  "cached_proc_macro",
  "cached_proc_macro_types",
- "hashbrown 0.13.1",
+ "hashbrown 0.14.3",
  "instant",
  "once_cell",
  "thiserror",
@@ -1845,13 +1796,13 @@ dependencies = [
 
 [[package]]
 name = "cached_proc_macro"
-version = "0.18.0"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7da8245dd5f576a41c3b76247b54c15b0e43139ceeb4f732033e15be7c005176"
+checksum = "c878c71c2821aa2058722038a59a67583a4240524687c6028571c9b395ded61f"
 dependencies = [
- "darling 0.14.2",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "darling 0.14.4",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -1863,12 +1814,12 @@ checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
 
 [[package]]
 name = "cargo_toml"
-version = "0.16.3"
+version = "0.17.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3f9629bc6c4388ea699781dc988c2b99766d7679b151c81990b4fa1208fafd3"
+checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719"
 dependencies = [
  "serde",
- "toml 0.8.0",
+ "toml 0.8.8",
 ]
 
 [[package]]
@@ -1894,9 +1845,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.82"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
  "libc",
@@ -1924,10 +1875,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "chacha20"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7fc89c7c5b9e7a02dfe45cd2367bae382f9ed31c61ca8debe5f827c420a2f08"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -1959,9 +1916,9 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.30"
+version = "0.4.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -1969,14 +1926,14 @@ dependencies = [
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "chrono-tz"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1369bc6b9e9a7dfdae2055f6ec151fe9c554a9d23d357c0237cee2e25eaabb7"
+checksum = "91d7b79e99bfaa0d47da0687c43aa3b7381938a62ad3a6498599039321f660b7"
 dependencies = [
  "chrono",
  "chrono-tz-build",
@@ -1986,9 +1943,9 @@ dependencies = [
 
 [[package]]
 name = "chrono-tz-build"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2f5ebdc942f57ed96d560a6d1a459bae5851102a25d5bf89dc04ae453e31ecf"
+checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
 dependencies = [
  "parse-zoneinfo",
  "phf",
@@ -1997,9 +1954,9 @@ dependencies = [
 
 [[package]]
 name = "ciborium"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
+checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -2008,21 +1965,27 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
+checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
+checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
 dependencies = [
  "ciborium-io",
  "half",
 ]
 
 [[package]]
+name = "cidr"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d18b093eba54c9aaa1e3784d4361eb2ba944cf7d0a932a830132238f483e8d8"
+
+[[package]]
 name = "cidr-utils"
 version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2036,10 +1999,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "cidr-utils"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25c0a9fb70c2c2cc2a520aa259b1d1345650046a07df1b6da1d3cefcd327f43e"
+dependencies = [
+ "cidr",
+ "num-bigint",
+ "num-traits",
+]
+
+[[package]]
 name = "cipher"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
 dependencies = [
  "crypto-common",
  "inout",
@@ -2063,9 +2037,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.5"
+version = "4.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "824956d0dca8334758a5b7f7e50518d66ea319330cbceedcf76905c2f6ab30e3"
+checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -2073,70 +2047,68 @@ dependencies = [
 
 [[package]]
 name = "clap-verbosity-flag"
-version = "2.0.1"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1eef05769009513df2eb1c3b4613e7fad873a14c600ff025b08f250f59fee7de"
+checksum = "3c90e95e5bd4e8ac34fa6f37c774b0c6f8ed06ea90c79931fd448fcf941a9767"
 dependencies = [
- "clap 4.4.5",
+ "clap 4.4.12",
  "log",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.4.5"
+version = "4.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "122ec64120a49b4563ccaedcbea7818d069ed8e9aa6d829b82d8a4128936b2ab"
+checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9"
 dependencies = [
  "anstream",
- "anstyle 1.0.0",
+ "anstyle",
  "clap_lex",
  "strsim 0.10.0",
- "terminal_size 0.3.0",
+ "terminal_size",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.4.2"
+version = "4.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8baeccdb91cd69189985f87f3c7e453a3a451ab5746cf3be6acc92120bd16d24"
+checksum = "97aeaa95557bd02f23fbb662f981670c3d20c5a26e69f7354b28f57092437fcd"
 dependencies = [
- "clap 4.4.5",
+ "clap 4.4.12",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "clipboard-win"
-version = "4.5.0"
+version = "5.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+checksum = "c57002a5d9be777c1ef967e33674dac9ebd310d8893e4e3437b14d5f0f6372cc"
 dependencies = [
  "error-code",
- "str-buf",
- "winapi",
 ]
 
 [[package]]
 name = "cmake"
-version = "0.1.49"
+version = "0.1.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
+checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
 dependencies = [
  "cc",
 ]
@@ -2151,14 +2123,15 @@ dependencies = [
  "csv-core",
  "derivative",
  "dyn-clone",
- "futures 0.3.28",
+ "futures 0.3.30",
  "indoc",
  "memchr",
  "once_cell",
- "ordered-float 4.1.0",
- "prost 0.12.1",
+ "ordered-float 4.2.0",
+ "prost 0.12.3",
  "prost-reflect",
  "regex",
+ "rstest",
  "serde",
  "serde_json",
  "similar-asserts",
@@ -2167,7 +2140,8 @@ dependencies = [
  "syslog_loose",
  "tokio",
  "tokio-util",
- "tracing 0.1.37",
+ "tracing 0.1.40",
+ "uuid",
  "vector-common",
  "vector-config",
  "vector-config-common",
@@ -2195,11 +2169,10 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "colored"
-version = "2.0.4"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
 dependencies = [
- "is-terminal",
  "lazy_static",
  "windows-sys 0.48.0",
 ]
@@ -2233,12 +2206,12 @@ dependencies = [
 
 [[package]]
 name = "community-id"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a97e158411823bf87634e2e47552f712e51fa4119cdb2255da799e7cb5c90a9"
+checksum = "4f6af96839c04974cf381e427792a99913ecf3f7bfb348f153dc8a8e5f9803ad"
 dependencies = [
  "anyhow",
- "base64 0.21.4",
+ "base64 0.21.5",
  "hex",
  "lazy_static",
  "num_enum 0.6.1",
@@ -2247,18 +2220,9 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "1.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
-dependencies = [
- "cache-padded",
-]
-
-[[package]]
-name = "concurrent-queue"
-version = "2.0.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b"
+checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -2277,51 +2241,51 @@ dependencies = [
 
 [[package]]
 name = "console"
-version = "0.15.2"
+version = "0.15.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c"
+checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
 dependencies = [
  "encode_unicode 0.3.6",
  "lazy_static",
  "libc",
- "terminal_size 0.1.17",
  "unicode-width",
- "winapi",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
 name = "console-api"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2895653b4d9f1538a83970077cb01dfc77a4810524e51a110944688e916b18e"
+checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787"
 dependencies = [
- "prost 0.11.9",
- "prost-types 0.11.9",
- "tonic 0.9.2",
- "tracing-core 0.1.30",
+ "futures-core",
+ "prost 0.12.3",
+ "prost-types 0.12.3",
+ "tonic 0.10.2",
+ "tracing-core 0.1.32",
 ]
 
 [[package]]
 name = "console-subscriber"
-version = "0.1.10"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4cf42660ac07fcebed809cfe561dd8730bcd35b075215e6479c516bcd0d11cb"
+checksum = "7481d4c57092cd1c19dd541b92bdce883de840df30aa5d03fd48a3935c01842e"
 dependencies = [
  "console-api",
  "crossbeam-channel",
  "crossbeam-utils",
- "futures 0.3.28",
+ "futures-task",
  "hdrhistogram",
  "humantime",
- "prost-types 0.11.9",
+ "prost-types 0.12.3",
  "serde",
  "serde_json",
  "thread_local",
  "tokio",
  "tokio-stream",
- "tonic 0.9.2",
- "tracing 0.1.37",
- "tracing-core 0.1.30",
+ "tonic 0.10.2",
+ "tracing 0.1.40",
+ "tracing-core 0.1.32",
  "tracing-subscriber",
 ]
 
@@ -2332,6 +2296,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
 
 [[package]]
+name = "const_fn"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
+
+[[package]]
 name = "convert_case"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2364,15 +2334,24 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.3"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "core2"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
 dependencies = [
  "libc",
 ]
@@ -2388,15 +2367,15 @@ dependencies = [
 
 [[package]]
 name = "crc-catalog"
-version = "2.1.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d0165d2900ae6778e36e80bbc4da3b5eefccee9ba939761f9c2882a5d9af3ff"
+checksum = "4939f9ed1444bd8c896d37f3090012fa6e7834fe84ef8c9daa166109515732f9"
 
 [[package]]
 name = "crc32c"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfea2db42e9927a3845fb268a10a72faed6d416065f77873f05e411457c363e"
+checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74"
 dependencies = [
  "rustc_version 0.4.0",
 ]
@@ -2419,9 +2398,9 @@ dependencies = [
  "anes",
  "cast",
  "ciborium",
- "clap 4.4.5",
+ "clap 4.4.12",
  "criterion-plot",
- "futures 0.3.28",
+ "futures 0.3.30",
  "is-terminal",
  "itertools 0.10.5",
  "num-traits",
@@ -2450,9 +2429,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.6"
+version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -2460,9 +2439,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
  "cfg-if",
  "crossbeam-epoch",
@@ -2471,14 +2450,14 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.13"
+version = "0.9.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
  "autocfg",
  "cfg-if",
  "crossbeam-utils",
- "memoffset 0.7.1",
+ "memoffset 0.9.0",
  "scopeguard",
 ]
 
@@ -2494,9 +2473,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c"
 dependencies = [
  "cfg-if",
 ]
@@ -2507,7 +2486,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "crossterm_winapi",
  "futures-core",
  "libc",
@@ -2534,6 +2513,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
+name = "crypto-bigint"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
+dependencies = [
+ "generic-array",
+ "rand_core 0.6.4",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "crypto-common"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2561,9 +2552,9 @@ dependencies = [
 
 [[package]]
 name = "csv"
-version = "1.2.2"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
 dependencies = [
  "csv-core",
  "itoa",
@@ -2573,24 +2564,14 @@ dependencies = [
 
 [[package]]
 name = "csv-core"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "ctor"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
-dependencies = [
- "quote 1.0.33",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "ctr"
 version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2600,80 +2581,31 @@ dependencies = [
 ]
 
 [[package]]
-name = "cty"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
-
-[[package]]
 name = "curve25519-dalek"
-version = "4.0.0"
+version = "4.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2"
+checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
 dependencies = [
  "cfg-if",
  "cpufeatures",
  "curve25519-dalek-derive",
  "digest",
  "fiat-crypto",
- "platforms 3.0.2",
+ "platforms 3.1.2",
  "rustc_version 0.4.0",
  "subtle",
+ "zeroize",
 ]
 
 [[package]]
 name = "curve25519-dalek-derive"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
-dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
-]
-
-[[package]]
-name = "cxx"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453"
-dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
-]
-
-[[package]]
-name = "cxx-build"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0"
-dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "scratch",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "cxxbridge-flags"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71"
-
-[[package]]
-name = "cxxbridge-macro"
-version = "1.0.82"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -2688,12 +2620,12 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.14.2"
+version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
 dependencies = [
- "darling_core 0.14.2",
- "darling_macro 0.14.2",
+ "darling_core 0.14.4",
+ "darling_macro 0.14.4",
 ]
 
 [[package]]
@@ -2714,22 +2646,22 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "strsim 0.10.0",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "darling_core"
-version = "0.14.2"
+version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "strsim 0.10.0",
  "syn 1.0.109",
 ]
@@ -2742,10 +2674,10 @@ checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "strsim 0.10.0",
- "syn 2.0.37",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -2755,18 +2687,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
 dependencies = [
  "darling_core 0.13.4",
- "quote 1.0.33",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.14.2"
+version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
 dependencies = [
- "darling_core 0.14.2",
- "quote 1.0.33",
+ "darling_core 0.14.4",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -2777,18 +2709,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core 0.20.3",
- "quote 1.0.33",
- "syn 2.0.37",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
+name = "dary_heap"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca"
+
+[[package]]
 name = "dashmap"
 version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "lock_api",
  "once_cell",
  "parking_lot_core",
@@ -2796,15 +2734,15 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "data-url"
-version = "0.2.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
+checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
 
 [[package]]
 name = "db-key"
@@ -2827,9 +2765,9 @@ dependencies = [
 
 [[package]]
 name = "deadpool-runtime"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaa37046cc0f6c3cc6090fbdbf73ef0b8ef4cfcc37f6befc0020f63e8cf121e1"
+checksum = "63dfa964fe2a66f3fde91fc70b267fe193d822c7e603e2a675a49a7f46ad3f49"
 
 [[package]]
 name = "debug-helper"
@@ -2850,10 +2788,11 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
 dependencies = [
+ "powerfmt",
  "serde",
 ]
 
@@ -2863,20 +2802,20 @@ version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.1"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
+checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -2886,8 +2825,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 dependencies = [
  "convert_case 0.4.0",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "rustc_version 0.4.0",
  "syn 1.0.109",
 ]
@@ -2911,6 +2850,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
+ "const-oid",
  "crypto-common",
  "subtle",
 ]
@@ -2934,15 +2874,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys 0.3.7",
-]
-
-[[package]]
 name = "dirs-next"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2988,13 +2919,13 @@ dependencies = [
 
 [[package]]
 name = "dns-lookup"
-version = "2.0.3"
+version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d0fa3cd8dc96ada974e126a940d37d4079bbbe6a24aca15b1113c2f362441c5"
+checksum = "e5766087c2235fec47fafa4cfecc81e494ee679d0fd4a59887ea0919bfb0e4fc"
 dependencies = [
  "cfg-if",
  "libc",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "windows-sys 0.48.0",
 ]
 
@@ -3004,8 +2935,8 @@ version = "0.1.0"
 dependencies = [
  "criterion",
  "data-encoding",
+ "hickory-proto",
  "thiserror",
- "trust-dns-proto 0.23.0",
 ]
 
 [[package]]
@@ -3022,7 +2953,7 @@ dependencies = [
  "serde",
  "serde_json",
  "snafu",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "tracing-subscriber",
  "vector-config",
  "vector-config-common",
@@ -3030,9 +2961,9 @@ dependencies = [
 
 [[package]]
 name = "duct"
-version = "0.13.5"
+version = "0.13.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc6a0a59ed0888e0041cf708e66357b7ae1a82f1c67247e1f93b5e0818f7d8d"
+checksum = "37ae3fc31835f74c2a7ceda3aeede378b0ae2e74c8f1c36559fcc9ae2a4e7d3e"
 dependencies = [
  "libc",
  "once_cell",
@@ -3048,16 +2979,31 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 
 [[package]]
 name = "dyn-clone"
-version = "1.0.14"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+
+[[package]]
+name = "ecdsa"
+version = "0.16.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
+dependencies = [
+ "der",
+ "digest",
+ "elliptic-curve",
+ "rfc6979",
+ "signature",
+ "spki",
+]
 
 [[package]]
 name = "ed25519"
-version = "2.2.2"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
 dependencies = [
+ "pkcs8",
  "signature",
 ]
 
@@ -3069,21 +3015,44 @@ checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
+ "serde",
  "sha2",
  "signature",
+ "zeroize",
 ]
 
 [[package]]
 name = "either"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "elliptic-curve"
+version = "0.13.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205"
+dependencies = [
+ "base16ct",
+ "crypto-bigint",
+ "digest",
+ "ff",
+ "generic-array",
+ "group",
+ "hkdf",
+ "pem-rfc7468",
+ "pkcs8",
+ "rand_core 0.6.4",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
 
 [[package]]
 name = "ena"
-version = "0.14.0"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3"
+checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1"
 dependencies = [
  "log",
 ]
@@ -3133,8 +3102,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -3145,9 +3114,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -3157,9 +3126,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e"
 dependencies = [
  "once_cell",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -3177,9 +3146,9 @@ version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -3200,9 +3169,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -3213,38 +3182,27 @@ dependencies = [
 
 [[package]]
 name = "equivalent"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "erased-serde"
-version = "0.3.27"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f94c0e13118e7d7533271f754a168ae8400e6a1cc043f2bfd53cc7290f1a1de3"
+checksum = "a3286168faae03a0e583f6fde17c02c8b8bba2dcc2061d0f7817066e5b0af706"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "errno"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3258,13 +3216,9 @@ dependencies = [
 
 [[package]]
 name = "error-code"
-version = "2.3.1"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
+checksum = "281e452d3bad4005426416cdba5ccfd4f5c1280e10099e21db27f7c1c28347fc"
 
 [[package]]
 name = "event-listener"
@@ -3273,6 +3227,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+dependencies = [
+ "event-listener 3.0.1",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "executor-trait"
 version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3294,8 +3269,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f47da3a72ec598d9c8937a7ebca8962a5c7a1f28444e38c2b33c771ba3f55f05"
 dependencies = [
  "proc-macro-error",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -3310,11 +3285,12 @@ dependencies = [
 
 [[package]]
 name = "fakedata_generator"
-version = "0.2.4"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6815202b22ccd0dd16957e52e254c52392c84edafb4d3cc0161b9f30a85dbb88"
+checksum = "302a45f60d105c247c9d3131107392da80df844f9215260b7f8ccfa301a6a6f4"
 dependencies = [
- "rand 0.7.3",
+ "passt",
+ "rand 0.8.5",
  "serde",
  "serde_json",
 ]
@@ -3327,33 +3303,49 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
 
 [[package]]
 name = "fastrand"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
 dependencies = [
  "instant",
 ]
 
 [[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "ff"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+dependencies = [
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
 name = "fiat-crypto"
-version = "0.1.20"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
+checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7"
 
 [[package]]
 name = "file-source"
 version = "0.1.0"
 dependencies = [
- "bstr 1.6.2",
+ "bstr 1.9.0",
  "bytes 1.5.0",
  "chrono",
  "crc",
  "criterion",
  "dashmap",
  "flate2",
- "futures 0.3.28",
+ "futures 0.3.30",
  "glob",
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "libc",
  "quickcheck",
  "scan_fmt",
@@ -3362,7 +3354,7 @@ dependencies = [
  "similar-asserts",
  "tempfile",
  "tokio",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "vector-config",
  "vector-config-common",
  "vector-config-macros",
@@ -3382,24 +3374,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "fix-hidden-lifetime-bug"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4ae9c2016a663983d4e40a9ff967d6dcac59819672f0b47f2b17574e99c33c8"
-dependencies = [
- "fix-hidden-lifetime-bug-proc_macros",
-]
-
-[[package]]
-name = "fix-hidden-lifetime-bug-proc_macros"
-version = "0.2.5"
+name = "finl_unicode"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4c81935e123ab0741c4c4f0d9b8377e5fb21d3de7e062fa4b1263b1fbcba1ea"
-dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
-]
+checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6"
 
 [[package]]
 name = "fixedbitset"
@@ -3409,18 +3387,18 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flagset"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda653ca797810c02f7ca4b804b40b8b95ae046eb989d356bce17919a8c25499"
+checksum = "d52a7e408202050813e6f1d9addadcaafef3dca7530c7ddfb005d4081cce6779"
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.7.1",
+ "miniz_oxide",
 ]
 
 [[package]]
@@ -3438,7 +3416,7 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "pin-project",
- "spin 0.9.4",
+ "spin 0.9.8",
 ]
 
 [[package]]
@@ -3464,20 +3442,14 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
-name = "fs_extra"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
-
-[[package]]
 name = "fsevent-sys"
 version = "4.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3510,9 +3482,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -3525,9 +3497,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -3535,15 +3507,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -3552,17 +3524,17 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
  "futures-core",
  "futures-io",
  "memchr",
@@ -3573,26 +3545,26 @@ dependencies = [
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-timer"
@@ -3602,9 +3574,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures 0.1.31",
  "futures-channel",
@@ -3644,9 +3616,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3657,9 +3629,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.3"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
 
 [[package]]
 name = "glob"
@@ -3682,12 +3654,12 @@ dependencies = [
 
 [[package]]
 name = "goauth"
-version = "0.13.1"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8af59a261bcf42f45d1b261232847b9b850ba0a1419d6100698246fb66e9240"
+checksum = "d351469a584f3b3565e2e740d4da60839bddc4320dadd7d61da8bdd77ffb373b"
 dependencies = [
  "arc-swap",
- "futures 0.3.28",
+ "futures 0.3.30",
  "log",
  "reqwest",
  "serde",
@@ -3707,7 +3679,7 @@ checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4"
 dependencies = [
  "cfg-if",
  "dashmap",
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-timer",
  "no-std-compat",
  "nonzero_ext",
@@ -3756,8 +3728,8 @@ dependencies = [
  "graphql-parser",
  "heck 0.4.1",
  "lazy_static",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "serde",
  "serde_json",
  "syn 1.0.109",
@@ -3770,7 +3742,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "00bda454f3d313f909298f626115092d348bc231025699f557b27e248475f48c"
 dependencies = [
  "graphql_client_codegen",
- "proc-macro2 1.0.67",
+ "proc-macro2 1.0.74",
  "syn 1.0.109",
 ]
 
@@ -3793,7 +3765,7 @@ source = "git+https://github.com/GreptimeTeam/greptimedb-client-rust.git?rev=bc3
 dependencies = [
  "dashmap",
  "enum_dispatch",
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-util",
  "greptime-proto",
  "parking_lot",
@@ -3818,22 +3790,52 @@ dependencies = [
 ]
 
 [[package]]
+name = "group"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+dependencies = [
+ "ff",
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
 dependencies = [
  "bytes 1.5.0",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
- "indexmap 1.9.3",
+ "http 0.2.9",
+ "indexmap 2.1.0",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing 0.1.40",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d308f63daf4181410c242d34c11f928dcb3aa105852019e043c9d1f4e4368a"
+dependencies = [
+ "bytes 1.5.0",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 1.0.0",
+ "indexmap 2.1.0",
  "slab",
  "tokio",
  "tokio-util",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -3854,7 +3856,7 @@ version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.7",
 ]
 
 [[package]]
@@ -3863,25 +3865,26 @@ version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038"
 dependencies = [
- "ahash 0.8.2",
+ "ahash 0.8.6",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.2",
+ "ahash 0.8.6",
+ "allocator-api2",
 ]
 
 [[package]]
 name = "hdrhistogram"
-version = "7.5.2"
+version = "7.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8"
+checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.21.5",
  "byteorder",
  "crossbeam-channel",
  "flate2",
@@ -3895,10 +3898,10 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
  "headers-core",
- "http",
+ "http 0.2.9",
  "httpdate",
  "mime",
  "sha1",
@@ -3910,7 +3913,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
 dependencies = [
- "http",
+ "http 0.2.9",
 ]
 
 [[package]]
@@ -3954,7 +3957,7 @@ dependencies = [
  "lazy_static",
  "libc",
  "mach",
- "nix 0.23.1",
+ "nix 0.23.2",
  "pin-utils",
  "uom",
  "winapi",
@@ -3966,7 +3969,7 @@ version = "0.1.0-rc.1"
 source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#76fa765c7ed7fbe43d1465bf52da6b8d19f2d2a9"
 dependencies = [
  "cfg-if",
- "futures 0.3.28",
+ "futures 0.3.30",
  "glob",
  "heim-common",
  "heim-runtime",
@@ -4036,7 +4039,7 @@ dependencies = [
  "heim-runtime",
  "libc",
  "macaddr",
- "nix 0.23.1",
+ "nix 0.23.2",
  "widestring 0.4.3",
  "winapi",
 ]
@@ -4046,7 +4049,7 @@ name = "heim-runtime"
 version = "0.1.0-rc.1"
 source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#76fa765c7ed7fbe43d1465bf52da6b8d19f2d2a9"
 dependencies = [
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-timer",
  "once_cell",
  "smol",
@@ -4063,9 +4066,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "hex"
@@ -4074,6 +4077,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
+name = "hickory-proto"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "091a6fbccf4860009355e3efc52ff4acf37a63489aad7435372d44ceeb6fbbcf"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner 0.6.0",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand 0.8.5",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing 0.1.40",
+ "url",
+]
+
+[[package]]
+name = "hkdf"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+dependencies = [
+ "hmac",
+]
+
+[[package]]
 name = "hmac"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4114,21 +4150,32 @@ dependencies = [
 ]
 
 [[package]]
+name = "http"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+dependencies = [
+ "bytes 1.5.0",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
 name = "http-body"
 version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
 dependencies = [
  "bytes 1.5.0",
- "http",
+ "http 0.2.9",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "http-range-header"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29"
+checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
 
 [[package]]
 name = "http-serde"
@@ -4136,7 +4183,7 @@ version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee"
 dependencies = [
- "http",
+ "http 0.2.9",
  "serde",
 ]
 
@@ -4150,7 +4197,7 @@ dependencies = [
  "async-channel",
  "base64 0.13.1",
  "futures-lite",
- "http",
+ "http 0.2.9",
  "infer 0.2.3",
  "pin-project-lite",
  "rand 0.7.3",
@@ -4169,9 +4216,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "humantime"
@@ -4181,25 +4228,25 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes 1.5.0",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2",
- "http",
+ "h2 0.3.22",
+ "http 0.2.9",
  "http-body",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.5.5",
  "tokio",
  "tower-service",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "want",
 ]
 
@@ -4209,7 +4256,7 @@ version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b"
 dependencies = [
- "http",
+ "http 0.2.9",
  "hyper",
  "linked_hash_set",
  "once_cell",
@@ -4228,9 +4275,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc"
 dependencies = [
  "bytes 1.5.0",
- "futures 0.3.28",
+ "futures 0.3.30",
  "headers",
- "http",
+ "http 0.2.9",
  "hyper",
  "openssl",
  "tokio",
@@ -4240,14 +4287,14 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.23.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59df7c4e19c950e6e0e868dcc0a300b09a9b88e9ec55bd879ca819087a77355d"
+checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"
 dependencies = [
- "http",
+ "http 0.2.9",
  "hyper",
  "log",
- "rustls 0.20.7",
+ "rustls 0.20.9",
  "rustls-native-certs",
  "tokio",
  "tokio-rustls 0.23.4",
@@ -4255,14 +4302,15 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.24.0"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
- "http",
+ "futures-util",
+ "http 0.2.9",
  "hyper",
  "log",
- "rustls 0.21.7",
+ "rustls 0.21.8",
  "rustls-native-certs",
  "tokio",
  "tokio-rustls 0.24.1",
@@ -4308,26 +4356,25 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.53"
+version = "0.1.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "winapi",
+ "windows-core",
 ]
 
 [[package]]
 name = "iana-time-zone-haiku"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
 dependencies = [
- "cxx",
- "cxx-build",
+ "cc",
 ]
 
 [[package]]
@@ -4358,6 +4405,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
 name = "indexmap"
 version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4370,12 +4427,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "serde",
 ]
 
@@ -4452,9 +4509,9 @@ dependencies = [
 
 [[package]]
 name = "inventory"
-version = "0.3.12"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1be380c410bf0595e94992a648ea89db4dd3f3354ba54af206fd2a68cf5ac8e"
+checksum = "c8573b2b1fb643a372c73b23f4da5f888677feef3305146d68a539250a9bccc7"
 
 [[package]]
 name = "io-lifetimes"
@@ -4462,7 +4519,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.1",
+ "hermit-abi 0.3.3",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -4478,21 +4535,21 @@ dependencies = [
 
 [[package]]
 name = "ipconfig"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be"
+checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.4.9",
- "widestring 0.5.1",
- "winapi",
- "winreg 0.10.1",
+ "socket2 0.5.5",
+ "widestring 1.0.2",
+ "windows-sys 0.48.0",
+ "winreg",
 ]
 
 [[package]]
 name = "ipnet"
-version = "2.5.1"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "ipnetwork"
@@ -4505,13 +4562,12 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.7"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
- "rustix 0.37.19",
+ "hermit-abi 0.3.3",
+ "rustix 0.38.28",
  "windows-sys 0.48.0",
 ]
 
@@ -4540,10 +4596,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "jni"
@@ -4569,27 +4634,27 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jobserver"
-version = "0.1.25"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.60"
+version = "0.3.65"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "json-patch"
-version = "1.0.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f54898088ccb91df1b492cc80029a6fdf1c48ca0db7c6822a8babad69c94658"
+checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6"
 dependencies = [
  "serde",
  "serde_json",
@@ -4612,8 +4677,8 @@ dependencies = [
 name = "k8s-e2e-tests"
 version = "0.1.0"
 dependencies = [
- "env_logger 0.10.0",
- "futures 0.3.28",
+ "env_logger 0.10.1",
+ "futures 0.3.30",
  "indoc",
  "k8s-openapi 0.16.0",
  "k8s-test-framework",
@@ -4622,7 +4687,7 @@ dependencies = [
  "reqwest",
  "serde_json",
  "tokio",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -4645,10 +4710,10 @@ version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cd990069640f9db34b3b0f7a1afc62a05ffaa3be9b66aa3c313f58346df7f788"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
  "chrono",
- "http",
+ "http 0.2.9",
  "percent-encoding",
  "serde",
  "serde-value",
@@ -4669,18 +4734,18 @@ dependencies = [
 
 [[package]]
 name = "keccak"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768"
+checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940"
 dependencies = [
  "cpufeatures",
 ]
 
 [[package]]
 name = "kqueue"
-version = "1.0.7"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
 dependencies = [
  "kqueue-sys",
  "libc",
@@ -4688,9 +4753,9 @@ dependencies = [
 
 [[package]]
 name = "kqueue-sys"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
 dependencies = [
  "bitflags 1.3.2",
  "libc",
@@ -4707,9 +4772,9 @@ dependencies = [
 
 [[package]]
 name = "kube"
-version = "0.82.0"
+version = "0.82.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca82ee1786dc8770d1ad4e319003e3d68cd86bc1204ed9e40f591ffef8e6492c"
+checksum = "dc7d3d52dd5c871991679102e80dfb192faaaa09fecdbccdd8c55af264ce7a8f"
 dependencies = [
  "k8s-openapi 0.18.0",
  "kube-client",
@@ -4719,17 +4784,17 @@ dependencies = [
 
 [[package]]
 name = "kube-client"
-version = "0.82.0"
+version = "0.82.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90b1d8deb705ef2463b2ce142b0ff98c815f8f0ac393d13c8f4c2b26491daf66"
+checksum = "544339f1665488243f79080441cacb09c997746fd763342303e66eebb9d3ba13"
 dependencies = [
  "base64 0.20.0",
  "bytes 1.5.0",
  "chrono",
  "dirs-next",
  "either",
- "futures 0.3.28",
- "http",
+ "futures 0.3.30",
+ "http 0.2.9",
  "http-body",
  "hyper",
  "hyper-openssl",
@@ -4738,29 +4803,29 @@ dependencies = [
  "k8s-openapi 0.18.0",
  "kube-core",
  "openssl",
- "pem",
+ "pem 1.1.1",
  "pin-project",
  "secrecy",
  "serde",
  "serde_json",
- "serde_yaml 0.9.25",
+ "serde_yaml 0.9.29",
  "thiserror",
  "tokio",
  "tokio-util",
  "tower",
  "tower-http",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
 name = "kube-core"
-version = "0.82.0"
+version = "0.82.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b16c1653fd0bda69a6bdb363167edbb72d28817db340d2fe8cb89dc07d354e05"
+checksum = "25983d07f414dfffba08c5951fe110f649113416b1d8e22f7c89c750eb2555a7"
 dependencies = [
  "chrono",
  "form_urlencoded",
- "http",
+ "http 0.2.9",
  "json-patch",
  "k8s-openapi 0.18.0",
  "once_cell",
@@ -4771,15 +4836,15 @@ dependencies = [
 
 [[package]]
 name = "kube-runtime"
-version = "0.82.0"
+version = "0.82.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed8442b2f1d6c1d630677ade9e5d5ebe793dec099a75fb582d56d77b8eb8cee8"
+checksum = "125331201e3073707ac79c294c89021faa76c84da3a566a3749a2a93d295c98a"
 dependencies = [
- "ahash 0.8.2",
+ "ahash 0.8.6",
  "async-trait",
  "backoff",
  "derivative",
- "futures 0.3.28",
+ "futures 0.3.30",
  "json-patch",
  "k8s-openapi 0.18.0",
  "kube-client",
@@ -4791,7 +4856,7 @@ dependencies = [
  "thiserror",
  "tokio",
  "tokio-util",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -4840,7 +4905,7 @@ dependencies = [
  "pinky-swear",
  "reactor-trait",
  "serde",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "waker-fn",
 ]
 
@@ -4849,44 +4914,51 @@ name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin 0.5.2",
+]
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.151"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 
 [[package]]
 name = "libflate"
-version = "1.2.0"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05605ab2bce11bcfc0e9c635ff29ef8b2ea83f29be257ee7d730cac3ee373093"
+checksum = "9f7d5654ae1795afc7ff76f4365c2c8791b0feb18e8996a96adad8ffd7c3b2bf"
 dependencies = [
  "adler32",
+ "core2",
  "crc32fast",
+ "dary_heap",
  "libflate_lz77",
 ]
 
 [[package]]
 name = "libflate_lz77"
-version = "1.1.0"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39a734c0493409afcd49deee13c006a04e3586b9761a03543c6272c9c51f2f5a"
+checksum = "be5f52fb8c451576ec6b79d3f4deb327398bc05bbdbd99021a6e77a4c855d524"
 dependencies = [
+ "core2",
+ "hashbrown 0.13.1",
  "rle-decode-fast",
 ]
 
 [[package]]
 name = "libm"
-version = "0.2.6"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libz-sys"
-version = "1.1.8"
+version = "1.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
 dependencies = [
  "cc",
  "libc",
@@ -4895,15 +4967,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "link-cplusplus"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
-dependencies = [
- "cc",
-]
-
-[[package]]
 name = "linked-hash-map"
 version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4926,9 +4989,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.7"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 
 [[package]]
 name = "listenfd"
@@ -4943,9 +5006,9 @@ dependencies = [
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -4953,9 +5016,9 @@ dependencies = [
 
 [[package]]
 name = "lockfree-object-pool"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8166fbddef141acbea89cf3425ed97d4c22d14a68161977fc01c301175a4fb89"
+checksum = "ee33defb27b106378a6efcfcde4dda6226dfdac8ba7a2904f5bc93363cb88557"
 
 [[package]]
 name = "log"
@@ -4975,17 +5038,20 @@ version = "0.1.0"
 dependencies = [
  "bytes 1.5.0",
  "chrono",
- "prost 0.12.1",
- "prost-build 0.12.1",
- "prost-types 0.12.1",
+ "prost 0.12.3",
+ "prost-build 0.12.3",
+ "prost-types 0.12.3",
  "snap",
 ]
 
 [[package]]
 name = "lru"
-version = "0.11.1"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"
+checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
+dependencies = [
+ "hashbrown 0.14.3",
+]
 
 [[package]]
 name = "lru-cache"
@@ -4998,21 +5064,21 @@ dependencies = [
 
 [[package]]
 name = "lua-src"
-version = "546.0.0"
+version = "546.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cb00c1380f1b4b4928dd211c07301ffa34872a239e590bd3219d9e5b213face"
+checksum = "7c26d4af78361e025a3d03a2b964cd1592aff7495f4d4f7947218c084c6fdca8"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "luajit-src"
-version = "210.4.8+resty107baaf"
+version = "210.5.2+113a168"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e05167e8b2a2185758d83ed23541e5bd8bce37072e4204e0ef2c9b322bc87c4e"
+checksum = "823ec7bedb1819b11633bd583ae981b0082db08492b0c3396412b85dd329ffee"
 dependencies = [
  "cc",
- "which",
+ "which 5.0.0",
 ]
 
 [[package]]
@@ -5085,22 +5151,23 @@ dependencies = [
 
 [[package]]
 name = "matches"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 
 [[package]]
 name = "matchit"
-version = "0.7.0"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40"
+checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 
 [[package]]
 name = "matrixmultiply"
-version = "0.3.2"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84"
+checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
 dependencies = [
+ "autocfg",
  "rawpointer",
 ]
 
@@ -5128,15 +5195,15 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
-version = "0.7.1"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
+checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
 dependencies = [
  "libc",
 ]
@@ -5160,12 +5227,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
 name = "metrics"
 version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5"
 dependencies = [
- "ahash 0.8.2",
+ "ahash 0.8.6",
  "metrics-macros",
  "portable-atomic",
 ]
@@ -5176,9 +5252,9 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -5192,8 +5268,8 @@ dependencies = [
  "metrics",
  "metrics-util",
  "once_cell",
- "tracing 0.1.37",
- "tracing-core 0.1.30",
+ "tracing 0.1.40",
+ "tracing-core 0.1.32",
  "tracing-subscriber",
 ]
 
@@ -5210,8 +5286,8 @@ dependencies = [
  "indexmap 1.9.3",
  "metrics",
  "num_cpus",
- "ordered-float 3.9.1",
- "quanta",
+ "ordered-float 3.9.2",
+ "quanta 0.11.1",
  "radix_trie",
  "sketches-ddsketch",
 ]
@@ -5240,15 +5316,6 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "miniz_oxide"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
@@ -5258,9 +5325,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
 dependencies = [
  "libc",
  "log",
@@ -5270,11 +5337,11 @@ dependencies = [
 
 [[package]]
 name = "mlua"
-version = "0.9.1"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c3a7a7ff4481ec91b951a733390211a8ace1caba57266ccb5f4d4966704e560"
+checksum = "7c81f8ac20188feb5461a73eabb22a34dd09d6d58513535eb587e46bff6ba250"
 dependencies = [
- "bstr 1.6.2",
+ "bstr 1.9.0",
  "mlua-sys",
  "mlua_derive",
  "num-traits",
@@ -5284,9 +5351,9 @@ dependencies = [
 
 [[package]]
 name = "mlua-sys"
-version = "0.3.2"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ec8b54eddb76093069cce9eeffb4c7b3a1a0fe66962d7bd44c4867928149ca3"
+checksum = "fc29228347d6bdc9e613dc95c69df2817f755434ee0f7f3b27b57755fe238b7f"
 dependencies = [
  "cc",
  "cfg-if",
@@ -5304,10 +5371,10 @@ dependencies = [
  "itertools 0.11.0",
  "once_cell",
  "proc-macro-error",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "regex",
- "syn 2.0.37",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -5318,9 +5385,9 @@ checksum = "6c1a54de846c4006b88b1516731cc1f6026eb5dc4bcb186aa071ef66d40524ec"
 
 [[package]]
 name = "mongodb"
-version = "2.6.1"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16928502631c0db72214720aa479c722397fe5aed6bf1c740a3830b3fe4bfcfe"
+checksum = "46c30763a5c6c52079602be44fa360ca3bfacee55fca73f4734aecd23706a7f2"
 dependencies = [
  "async-trait",
  "base64 0.13.1",
@@ -5341,43 +5408,43 @@ dependencies = [
  "percent-encoding",
  "rand 0.8.5",
  "rustc_version_runtime",
- "rustls 0.20.7",
+ "rustls 0.21.8",
  "rustls-pemfile",
  "serde",
  "serde_bytes",
  "serde_with 1.14.0",
  "sha-1",
  "sha2",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "stringprep",
  "strsim 0.10.0",
  "take_mut",
  "thiserror",
  "tokio",
- "tokio-rustls 0.23.4",
+ "tokio-rustls 0.24.1",
  "tokio-util",
- "trust-dns-proto 0.21.2",
+ "trust-dns-proto",
  "trust-dns-resolver",
  "typed-builder 0.10.0",
  "uuid",
- "webpki-roots 0.22.5",
+ "webpki-roots",
 ]
 
 [[package]]
 name = "multer"
-version = "2.0.4"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ed4198ce7a4cbd2a57af78d28c6fbb57d81ac5f1d6ad79ac6c5587419cbdf22"
+checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2"
 dependencies = [
  "bytes 1.5.0",
  "encoding_rs",
  "futures-util",
- "http",
+ "http 0.2.9",
  "httparse",
  "log",
  "memchr",
  "mime",
- "spin 0.9.4",
+ "spin 0.9.8",
  "version_check",
 ]
 
@@ -5456,9 +5523,9 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.23.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
+checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
 dependencies = [
  "bitflags 1.3.2",
  "cc",
@@ -5480,6 +5547,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.4.1",
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
 name = "nkeys"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5489,7 +5567,23 @@ dependencies = [
  "data-encoding",
  "ed25519",
  "ed25519-dalek",
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
+ "log",
+ "rand 0.8.5",
+ "signatory",
+]
+
+[[package]]
+name = "nkeys"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6eafe79aeb8066a6f1f84dc44c03ae97403013e946bf0b13626468e0d5e26c6f"
+dependencies = [
+ "byteorder",
+ "data-encoding",
+ "ed25519",
+ "ed25519-dalek",
+ "getrandom 0.2.11",
  "log",
  "rand 0.8.5",
  "signatory",
@@ -5501,7 +5595,7 @@ version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b41e7479dc3678ea792431e04bafd62a31879035f4a5fa707602df062f58c77"
 dependencies = [
- "cidr-utils",
+ "cidr-utils 0.5.11",
  "serde",
 ]
 
@@ -5542,7 +5636,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "filetime",
  "fsevent-sys",
  "inotify",
@@ -5583,9 +5677,9 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -5593,10 +5687,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-bigint-dig"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
+dependencies = [
+ "byteorder",
+ "lazy_static",
+ "libm",
+ "num-integer",
+ "num-iter",
+ "num-traits",
+ "rand 0.8.5",
+ "smallvec",
+ "zeroize",
+]
+
+[[package]]
 name = "num-complex"
-version = "0.4.2"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19"
+checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
 dependencies = [
  "num-traits",
 ]
@@ -5623,6 +5734,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-iter"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
 name = "num-rational"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5635,9 +5757,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
  "libm",
@@ -5645,11 +5767,11 @@ dependencies = [
 
 [[package]]
 name = "num_cpus"
-version = "1.14.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.1.19",
+ "hermit-abi 0.3.3",
  "libc",
 ]
 
@@ -5673,11 +5795,11 @@ dependencies = [
 
 [[package]]
 name = "num_enum"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb"
+checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0"
 dependencies = [
- "num_enum_derive 0.7.0",
+ "num_enum_derive 0.7.1",
 ]
 
 [[package]]
@@ -5686,9 +5808,9 @@ version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
 dependencies = [
- "proc-macro-crate 1.2.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro-crate 1.3.1",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -5698,22 +5820,22 @@ version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
 dependencies = [
- "proc-macro-crate 1.2.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro-crate 1.3.1",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "num_enum_derive"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597"
+checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e"
 dependencies = [
- "proc-macro-crate 1.2.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro-crate 2.0.0",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -5733,14 +5855,14 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
 
 [[package]]
 name = "oauth2"
-version = "4.3.0"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eeaf26a72311c087f8c5ba617c96fac67a5c04f430e716ac8d8ab2de62e23368"
+checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f"
 dependencies = [
  "base64 0.13.1",
  "chrono",
- "getrandom 0.2.10",
- "http",
+ "getrandom 0.2.11",
+ "http 0.2.9",
  "rand 0.8.5",
  "reqwest",
  "serde",
@@ -5762,9 +5884,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.30.4"
+version = "0.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
 dependencies = [
  "memchr",
 ]
@@ -5780,9 +5902,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "onig"
@@ -5820,28 +5942,28 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
 
 [[package]]
 name = "opendal"
-version = "0.38.1"
+version = "0.44.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4df645b6012162c04c8949e9b96ae2ef002e79189cfb154e507e51ac5be76a09"
+checksum = "c32736a48ef08a5d2212864e2295c8e54f4d6b352b7f49aa0c29a12fc410ff66"
 dependencies = [
  "anyhow",
  "async-compat",
  "async-trait",
  "backon",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
  "chrono",
  "flagset",
- "futures 0.3.28",
- "http",
- "hyper",
+ "futures 0.3.30",
+ "getrandom 0.2.11",
+ "http 0.2.9",
  "log",
  "md-5",
  "once_cell",
  "parking_lot",
  "percent-encoding",
  "pin-project",
- "quick-xml 0.27.1",
+ "quick-xml 0.30.0",
  "reqwest",
  "serde",
  "serde_json",
@@ -5851,35 +5973,43 @@ dependencies = [
 
 [[package]]
 name = "openidconnect"
-version = "2.4.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87af7097640fedbe64718ac1c9b0549d72da747a3f527cd089215f96c6f691d5"
+checksum = "62d6050f6a84b81f23c569f5607ad883293e57491036e318fafe6fc4895fadb1"
 dependencies = [
  "base64 0.13.1",
  "chrono",
- "http",
+ "dyn-clone",
+ "ed25519-dalek",
+ "hmac",
+ "http 0.2.9",
  "itertools 0.10.5",
  "log",
- "num-bigint",
  "oauth2",
+ "p256",
+ "p384",
  "rand 0.8.5",
- "ring",
+ "rsa",
  "serde",
  "serde-value",
  "serde_derive",
  "serde_json",
  "serde_path_to_error",
+ "serde_plain",
+ "serde_with 3.4.0",
+ "sha2",
+ "subtle",
  "thiserror",
  "url",
 ]
 
 [[package]]
 name = "openssl"
-version = "0.10.57"
+version = "0.10.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
+checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -5890,13 +6020,13 @@ dependencies = [
 
 [[package]]
 name = "openssl-macros"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -5907,18 +6037,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.1.5+3.1.3"
+version = "300.2.1+3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "559068e4c12950d7dcaa1857a61725c0d38d4fc03ff8e070ab31a75d6e316491"
+checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.93"
+version = "0.9.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
 dependencies = [
  "cc",
  "libc",
@@ -5934,11 +6064,11 @@ dependencies = [
  "bytes 1.5.0",
  "chrono",
  "hex",
- "ordered-float 4.1.0",
- "prost 0.12.1",
- "prost-build 0.12.1",
- "tonic 0.10.1",
- "tonic-build 0.10.1",
+ "ordered-float 4.2.0",
+ "prost 0.12.3",
+ "prost-build 0.12.3",
+ "tonic 0.10.2",
+ "tonic-build 0.10.2",
  "vector-core",
  "vector-lookup",
  "vrl",
@@ -5952,27 +6082,27 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "ordered-float"
-version = "2.10.0"
+version = "2.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
+checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
 name = "ordered-float"
-version = "3.9.1"
+version = "3.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a54938017eacd63036332b4ae5c8a49fc8c0c1d6d629893057e4f13609edd06"
+checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
 name = "ordered-float"
-version = "4.1.0"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3a540f3e3b3d7929c884e46d093d344e4e5bdeed54d08bf007df50c93cc85d5"
+checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e"
 dependencies = [
  "num-traits",
 ]
@@ -5989,21 +6119,12 @@ dependencies = [
 
 [[package]]
 name = "os_pipe"
-version = "0.9.2"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb233f06c2307e1f5ce2ecad9f8121cffbbee2c95428f44ea85222e460d0d213"
+checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177"
 dependencies = [
  "libc",
- "winapi",
-]
-
-[[package]]
-name = "output_vt100"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -6020,14 +6141,38 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
 name = "owo-colors"
-version = "3.5.0"
+version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
+checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
 dependencies = [
  "supports-color",
 ]
 
 [[package]]
+name = "p256"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "sha2",
+]
+
+[[package]]
+name = "p384"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "sha2",
+]
+
+[[package]]
 name = "pad"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6038,9 +6183,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.0.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -6054,15 +6199,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
+ "redox_syscall 0.4.1",
  "smallvec",
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -6075,6 +6220,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "passt"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13242a5ce97f39a8095d03c8b273e91d09f2690c0b7d69a2af844941115bab24"
+
+[[package]]
 name = "paste"
 version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6097,14 +6248,24 @@ checksum = "9e9ed2178b0575fff8e1b83b58ba6f75e727aafac2e1b6c795169ad3b17eb518"
 
 [[package]]
 name = "pem"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4"
+checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
 dependencies = [
  "base64 0.13.1",
 ]
 
 [[package]]
+name = "pem"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923"
+dependencies = [
+ "base64 0.21.5",
+ "serde",
+]
+
+[[package]]
 name = "pem-rfc7468"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6115,15 +6276,15 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
 dependencies = [
  "memchr",
  "thiserror",
@@ -6132,9 +6293,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
 dependencies = [
  "pest",
  "pest_generator",
@@ -6142,22 +6303,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
 dependencies = [
  "pest",
  "pest_meta",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
 dependencies = [
  "once_cell",
  "pest",
@@ -6166,40 +6327,40 @@ dependencies = [
 
 [[package]]
 name = "petgraph"
-version = "0.6.2"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
 ]
 
 [[package]]
 name = "phf"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
 dependencies = [
- "phf_shared 0.11.1",
+ "phf_shared 0.11.2",
 ]
 
 [[package]]
 name = "phf_codegen"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770"
+checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
 dependencies = [
  "phf_generator",
- "phf_shared 0.11.1",
+ "phf_shared 0.11.2",
 ]
 
 [[package]]
 name = "phf_generator"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
 dependencies = [
- "phf_shared 0.11.1",
+ "phf_shared 0.11.2",
  "rand 0.8.5",
 ]
 
@@ -6214,9 +6375,9 @@ dependencies = [
 
 [[package]]
 name = "phf_shared"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
 dependencies = [
  "siphasher",
 ]
@@ -6236,16 +6397,16 @@ version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.12"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -6262,7 +6423,29 @@ dependencies = [
  "doc-comment",
  "flume",
  "parking_lot",
- "tracing 0.1.37",
+ "tracing 0.1.40",
+]
+
+[[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
+name = "pkcs1"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
+dependencies = [
+ "der",
+ "pkcs8",
+ "spki",
 ]
 
 [[package]]
@@ -6277,9 +6460,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.26"
+version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "platforms"
@@ -6289,15 +6472,15 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325"
 
 [[package]]
 name = "platforms"
-version = "3.0.2"
+version = "3.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
+checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8"
 
 [[package]]
 name = "plotters"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
+checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
 dependencies = [
  "num-traits",
  "plotters-backend",
@@ -6308,31 +6491,47 @@ dependencies = [
 
 [[package]]
 name = "plotters-backend"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
+checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
 
 [[package]]
 name = "plotters-svg"
-version = "0.3.3"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
+checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
 dependencies = [
  "plotters-backend",
 ]
 
 [[package]]
 name = "polling"
-version = "2.5.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7d73f1eaed1ca1fb37b54dcc9b38e3b17d6c7b8ecb7abfffcac8d0351f17d4"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
  "autocfg",
+ "bitflags 1.3.2",
  "cfg-if",
+ "concurrent-queue",
  "libc",
  "log",
- "wepoll-ffi",
- "windows-sys 0.42.0",
+ "pin-project-lite",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.28",
+ "tracing 0.1.40",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -6348,9 +6547,9 @@ dependencies = [
 
 [[package]]
 name = "portable-atomic"
-version = "1.3.1"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bbda379e6e462c97ea6afe9f6233619b202bbc4968d7caa6917788d2070a044"
+checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b"
 
 [[package]]
 name = "portpicker"
@@ -6365,7 +6564,7 @@ version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1de0ea6504e07ca78355a6fb88ad0f36cafe9e696cbc6717f16a207f3a60be72"
 dependencies = [
- "futures 0.3.28",
+ "futures 0.3.30",
  "openssl",
  "tokio",
  "tokio-openssl",
@@ -6378,7 +6577,7 @@ version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "byteorder",
  "bytes 1.5.0",
  "fallible-iterator",
@@ -6403,6 +6602,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6416,13 +6621,13 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
 
 [[package]]
 name = "predicates"
-version = "3.0.1"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba7d6ead3e3966038f68caa9fc1f860185d95a793180bbcfe0d0da47b3961ed"
+checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
 dependencies = [
- "anstyle 0.3.1",
+ "anstyle",
  "difflib",
- "itertools 0.10.5",
+ "itertools 0.11.0",
  "predicates-core",
 ]
 
@@ -6434,9 +6639,9 @@ checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.7"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
 dependencies = [
  "predicates-core",
  "termtree",
@@ -6444,13 +6649,11 @@ dependencies = [
 
 [[package]]
 name = "pretty_assertions"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
 dependencies = [
- "ctor",
  "diff",
- "output_vt100",
  "yansi",
 ]
 
@@ -6468,22 +6671,22 @@ dependencies = [
 
 [[package]]
 name = "prettyplease"
-version = "0.1.21"
+version = "0.1.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c142c0e46b57171fe0c528bee8c5b7569e80f0c17e377cd0e30ea57dbc11bb51"
+checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
 dependencies = [
- "proc-macro2 1.0.67",
+ "proc-macro2 1.0.74",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "prettyplease"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"
+checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
 dependencies = [
- "proc-macro2 1.0.67",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -6501,23 +6704,31 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-crate"
-version = "0.1.5"
+name = "primeorder"
+version = "0.13.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
+checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
 dependencies = [
- "toml 0.5.11",
+ "elliptic-curve",
 ]
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.2.1"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
  "once_cell",
- "thiserror",
- "toml 0.5.11",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+dependencies = [
+ "toml_edit 0.20.7",
 ]
 
 [[package]]
@@ -6527,8 +6738,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 dependencies = [
  "proc-macro-error-attr",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
  "version_check",
 ]
@@ -6539,16 +6750,16 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "version_check",
 ]
 
 [[package]]
 name = "proc-macro-hack"
-version = "0.5.19"
+version = "0.5.20+deprecated"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
 
 [[package]]
 name = "proc-macro-nested"
@@ -6567,9 +6778,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db"
 dependencies = [
  "unicode-ident",
 ]
@@ -6578,31 +6789,31 @@ dependencies = [
 name = "prometheus-parser"
 version = "0.1.0"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "nom",
- "num_enum 0.7.0",
- "prost 0.12.1",
- "prost-build 0.12.1",
- "prost-types 0.12.1",
+ "num_enum 0.7.1",
+ "prost 0.12.3",
+ "prost-build 0.12.3",
+ "prost-types 0.12.3",
  "snafu",
  "vector-common",
 ]
 
 [[package]]
 name = "proptest"
-version = "1.2.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65"
+checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
 dependencies = [
  "bit-set",
- "bitflags 1.3.2",
- "byteorder",
+ "bit-vec",
+ "bitflags 2.4.1",
  "lazy_static",
  "num-traits",
  "rand 0.8.5",
  "rand_chacha 0.3.1",
  "rand_xorshift",
- "regex-syntax 0.6.29",
+ "regex-syntax 0.8.2",
  "rusty-fork",
  "tempfile",
  "unarray",
@@ -6620,12 +6831,12 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d"
+checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
 dependencies = [
  "bytes 1.5.0",
- "prost-derive 0.12.1",
+ "prost-derive 0.12.3",
 ]
 
 [[package]]
@@ -6641,20 +6852,20 @@ dependencies = [
  "log",
  "multimap",
  "petgraph",
- "prettyplease 0.1.21",
+ "prettyplease 0.1.25",
  "prost 0.11.9",
  "prost-types 0.11.9",
  "regex",
  "syn 1.0.109",
  "tempfile",
- "which",
+ "which 4.4.2",
 ]
 
 [[package]]
 name = "prost-build"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bdf592881d821b83d471f8af290226c8d51402259e9bb5be7f9f8bdebbb11ac"
+checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2"
 dependencies = [
  "bytes 1.5.0",
  "heck 0.4.1",
@@ -6663,13 +6874,13 @@ dependencies = [
  "multimap",
  "once_cell",
  "petgraph",
- "prettyplease 0.2.12",
- "prost 0.12.1",
- "prost-types 0.12.1",
+ "prettyplease 0.2.15",
+ "prost 0.12.3",
+ "prost-types 0.12.3",
  "regex",
- "syn 2.0.37",
+ "syn 2.0.46",
  "tempfile",
- "which",
+ "which 4.4.2",
 ]
 
 [[package]]
@@ -6680,22 +6891,22 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
 dependencies = [
  "anyhow",
  "itertools 0.10.5",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "prost-derive"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32"
+checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
 dependencies = [
  "anyhow",
  "itertools 0.11.0",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -6704,10 +6915,10 @@ version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "once_cell",
- "prost 0.12.1",
- "prost-types 0.12.1",
+ "prost 0.12.3",
+ "prost-types 0.12.3",
  "serde",
  "serde-value",
 ]
@@ -6723,11 +6934,11 @@ dependencies = [
 
 [[package]]
 name = "prost-types"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf"
+checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e"
 dependencies = [
- "prost 0.12.1",
+ "prost 0.12.3",
 ]
 
 [[package]]
@@ -6745,16 +6956,16 @@ version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "pulsar"
-version = "6.0.1"
+version = "6.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6eb95b2e36b92d3e0536be87eaf7accb17db39f5a44452759b43f1328e82dc9"
+checksum = "5d21c6a837986cf25d22ac5b951c267d95808f3c830ff009c2879fff259a0268"
 dependencies = [
  "async-trait",
  "bit-vec",
@@ -6763,7 +6974,7 @@ dependencies = [
  "crc",
  "data-url",
  "flate2",
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-io",
  "futures-timer",
  "log",
@@ -6772,7 +6983,7 @@ dependencies = [
  "nom",
  "oauth2",
  "openidconnect",
- "pem",
+ "pem 3.0.2",
  "prost 0.11.9",
  "prost-build 0.11.9",
  "prost-derive 0.11.9",
@@ -6786,7 +6997,7 @@ dependencies = [
  "tokio-util",
  "url",
  "uuid",
- "zstd 0.11.2+zstd.1.5.2",
+ "zstd 0.12.4",
 ]
 
 [[package]]
@@ -6805,7 +7016,22 @@ dependencies = [
  "libc",
  "mach2",
  "once_cell",
- "raw-cpuid",
+ "raw-cpuid 10.7.0",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "quanta"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ca0b7bac0b97248c40bb77288fc52029cf1459c0461ea1b05ee32ccf011de2c"
+dependencies = [
+ "crossbeam-utils",
+ "libc",
+ "once_cell",
+ "raw-cpuid 11.0.1",
  "wasi 0.11.0+wasi-snapshot-preview1",
  "web-sys",
  "winapi",
@@ -6819,9 +7045,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quick-xml"
-version = "0.27.1"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffc053f057dd768a56f62cd7e434c42c831d296968997e9ac1f76ea7c2d14c41"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
 dependencies = [
  "memchr",
  "serde",
@@ -6829,9 +7055,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
  "serde",
@@ -6854,8 +7080,8 @@ version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -6870,11 +7096,11 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
- "proc-macro2 1.0.67",
+ "proc-macro2 1.0.74",
 ]
 
 [[package]]
@@ -6958,7 +7184,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
 ]
 
 [[package]]
@@ -6991,16 +7217,18 @@ dependencies = [
 
 [[package]]
 name = "ratatui"
-version = "0.23.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad"
+checksum = "a5659e52e4ba6e07b2dad9f1158f578ef84a73762625ddb51536019f34d180eb"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cassowary",
  "crossterm",
  "indoc",
- "itertools 0.11.0",
+ "itertools 0.12.0",
+ "lru",
  "paste",
+ "stability",
  "strum",
  "unicode-segmentation",
  "unicode-width",
@@ -7008,23 +7236,29 @@ dependencies = [
 
 [[package]]
 name = "raw-cpuid"
-version = "10.6.0"
+version = "10.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6823ea29436221176fe662da99998ad3b4db2c7f31e7b6f5fe43adccd6320bb"
+checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
-name = "raw-window-handle"
-version = "0.5.0"
+name = "raw-cpuid"
+version = "11.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a"
+checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1"
 dependencies = [
- "cty",
+ "bitflags 2.4.1",
 ]
 
 [[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
+[[package]]
 name = "rawpointer"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7032,32 +7266,29 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
 
 [[package]]
 name = "rayon"
-version = "1.6.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
 dependencies = [
- "crossbeam-deque",
  "either",
  "rayon-core",
 ]
 
 [[package]]
 name = "rayon-core"
-version = "1.10.1"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "rdkafka"
-version = "0.34.0"
+version = "0.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "053adfa02fab06e86c01d586cc68aa47ee0ff4489a59469081dc12cbcde578bf"
+checksum = "f16c17f411935214a5870e40aff9291f8b40a73e97bf8de29e5959c473d5ef33"
 dependencies = [
  "futures-channel",
  "futures-util",
@@ -7073,9 +7304,9 @@ dependencies = [
 
 [[package]]
 name = "rdkafka-sys"
-version = "4.6.0+2.2.0"
+version = "4.7.0+2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad63c279fca41a27c231c450a2d2ad18288032e9cbb159ad16c9d96eba35aaaf"
+checksum = "55e0d2f9ba6253f6ec72385e453294f8618e9e15c2c6aba2a5c01ccf9622d615"
 dependencies = [
  "cmake",
  "libc",
@@ -7100,15 +7331,15 @@ dependencies = [
 
 [[package]]
 name = "redis"
-version = "0.23.3"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f49cdc0bb3f412bf8e7d1bd90fe1d9eb10bc5c399ba90973c14662a27b3f8ba"
+checksum = "c580d9cbbe1d1b479e8d67cf9daf6a62c957e6846048408b80b43ac3f6af84cd"
 dependencies = [
  "arc-swap",
  "async-trait",
  "bytes 1.5.0",
  "combine 4.6.6",
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-util",
  "itoa",
  "native-tls",
@@ -7141,26 +7372,35 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
 name = "redox_users"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
  "redox_syscall 0.2.16",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.3.8",
- "regex-syntax 0.7.5",
+ "regex-automata 0.4.3",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -7174,16 +7414,22 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.7.5",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
+name = "regex-lite"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
+
+[[package]]
 name = "regex-syntax"
 version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7196,6 +7442,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
 name = "relative-path"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7203,29 +7455,29 @@ checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca"
 
 [[package]]
 name = "rend"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "581008d2099240d37fb08d77ad713bcaec2c4d89d50b5b21a8bb1996bbab68ab"
+checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd"
 dependencies = [
  "bytecheck",
 ]
 
 [[package]]
 name = "reqwest"
-version = "0.11.20"
+version = "0.11.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2",
- "http",
+ "h2 0.3.22",
+ "http 0.2.9",
  "http-body",
  "hyper",
- "hyper-rustls 0.24.0",
+ "hyper-rustls 0.24.2",
  "hyper-tls",
  "ipnet",
  "js-sys",
@@ -7235,11 +7487,12 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls 0.21.7",
+ "rustls 0.21.8",
  "rustls-pemfile",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "system-configuration",
  "tokio",
  "tokio-native-tls",
  "tokio-rustls 0.24.1",
@@ -7250,8 +7503,8 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
- "webpki-roots 0.25.2",
- "winreg 0.50.0",
+ "webpki-roots",
+ "winreg",
 ]
 
 [[package]]
@@ -7271,6 +7524,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086"
 
 [[package]]
+name = "rfc6979"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
+dependencies = [
+ "hmac",
+ "subtle",
+]
+
+[[package]]
 name = "ring"
 version = "0.16.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7280,33 +7543,51 @@ dependencies = [
  "libc",
  "once_cell",
  "spin 0.5.2",
- "untrusted",
+ "untrusted 0.7.1",
  "web-sys",
  "winapi",
 ]
 
 [[package]]
+name = "ring"
+version = "0.17.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
+dependencies = [
+ "cc",
+ "getrandom 0.2.11",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rkyv"
-version = "0.7.40"
+version = "0.7.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c30f1d45d9aa61cbc8cd1eb87705470892289bb2d01943e7803b873a57404dc3"
+checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5"
 dependencies = [
+ "bitvec",
  "bytecheck",
+ "bytes 1.5.0",
  "hashbrown 0.12.3",
  "ptr_meta",
  "rend",
  "rkyv_derive",
  "seahash",
+ "tinyvec",
+ "uuid",
 ]
 
 [[package]]
 name = "rkyv_derive"
-version = "0.7.40"
+version = "0.7.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff26ed6c7c4dfc2aa9480b86a60e3c7233543a270a680e10758a507c5a4ce476"
+checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -7318,9 +7599,9 @@ checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422"
 
 [[package]]
 name = "rmp"
-version = "0.8.11"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f"
+checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20"
 dependencies = [
  "byteorder",
  "num-traits",
@@ -7372,11 +7653,28 @@ dependencies = [
 
 [[package]]
 name = "roxmltree"
-version = "0.18.0"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
+
+[[package]]
+name = "rsa"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8"
+checksum = "86ef35bf3e7fe15a53c4ab08a998e42271eab13eb0db224126bc7bc4c4bad96d"
 dependencies = [
- "xmlparser",
+ "const-oid",
+ "digest",
+ "num-bigint-dig",
+ "num-integer",
+ "num-traits",
+ "pkcs1",
+ "pkcs8",
+ "rand_core 0.6.4",
+ "signature",
+ "spki",
+ "subtle",
+ "zeroize",
 ]
 
 [[package]]
@@ -7385,7 +7683,7 @@ version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
 dependencies = [
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-timer",
  "rstest_macros",
  "rustc_version 0.4.0",
@@ -7399,25 +7697,23 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
 dependencies = [
  "cfg-if",
  "glob",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "regex",
  "relative-path",
  "rustc_version 0.4.0",
- "syn 2.0.37",
+ "syn 2.0.46",
  "unicode-ident",
 ]
 
 [[package]]
 name = "rust_decimal"
-version = "1.29.1"
+version = "1.33.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26bd36b60561ee1fb5ec2817f198b6fd09fa571c897a5e86d1487cfc2b096dfc"
+checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4"
 dependencies = [
  "arrayvec",
  "borsh",
- "bytecheck",
- "byteorder",
  "bytes 1.5.0",
  "num-traits",
  "rand 0.8.5",
@@ -7453,7 +7749,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.18",
+ "semver 1.0.20",
 ]
 
 [[package]]
@@ -7468,9 +7764,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.19"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
@@ -7482,37 +7778,37 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.14"
+version = "0.38.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
- "linux-raw-sys 0.4.7",
- "windows-sys 0.48.0",
+ "linux-raw-sys 0.4.12",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.20.7"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c"
+checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"
 dependencies = [
  "log",
- "ring",
+ "ring 0.16.20",
  "sct",
  "webpki",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.7"
+version = "0.21.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
 dependencies = [
  "log",
- "ring",
+ "ring 0.17.5",
  "rustls-webpki",
  "sct",
 ]
@@ -7535,24 +7831,24 @@ version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
 ]
 
 [[package]]
 name = "rustls-webpki"
-version = "0.101.4"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring",
- "untrusted",
+ "ring 0.17.5",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.9"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rusty-fork"
@@ -7568,18 +7864,17 @@ dependencies = [
 
 [[package]]
 name = "rustyline"
-version = "12.0.0"
+version = "13.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9"
+checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cfg-if",
  "clipboard-win",
  "libc",
  "log",
  "memchr",
- "nix 0.26.2",
- "scopeguard",
+ "nix 0.27.1",
  "unicode-segmentation",
  "unicode-width",
  "utf8parse",
@@ -7588,9 +7883,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "salsa20"
@@ -7634,11 +7929,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -7649,24 +7944,18 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "scratch"
-version = "1.0.2"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring",
- "untrusted",
+ "ring 0.17.5",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
@@ -7676,6 +7965,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
 
 [[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
+dependencies = [
+ "base16ct",
+ "der",
+ "generic-array",
+ "pkcs8",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "secrecy"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7700,9 +8003,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -7719,9 +8022,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 dependencies = [
  "serde",
 ]
@@ -7734,20 +8037,20 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.194"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde-toml-merge"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "250c08954c1c279a877fd44909e7c50d366082d301d23821353f8b9327baf648"
+checksum = "af5ae5f42c16d60b098ae5d4afd75c1d3b6512e6ca5d0b9b916e2ced30df264c"
 dependencies = [
- "toml 0.8.0",
+ "toml 0.8.8",
 ]
 
 [[package]]
@@ -7756,15 +8059,15 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
 dependencies = [
- "ordered-float 2.10.0",
+ "ordered-float 2.10.1",
  "serde",
 ]
 
 [[package]]
 name = "serde-wasm-bindgen"
-version = "0.6.0"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30c9933e5689bd420dc6c87b7a1835701810cbc10cd86a26e4da45b73e6b1d78"
+checksum = "b9b713f70513ae1f8d92665bbbbda5c295c2cf1da5542881ae5eefe20c9af132"
 dependencies = [
  "js-sys",
  "serde",
@@ -7782,13 +8085,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.194"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -7797,18 +8100,18 @@ version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "itoa",
  "ryu",
  "serde",
@@ -7825,9 +8128,19 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.8"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+dependencies = [
+ "itoa",
+ "serde",
+]
+
+[[package]]
+name = "serde_plain"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d"
+checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50"
 dependencies = [
  "serde",
 ]
@@ -7845,20 +8158,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
 dependencies = [
  "serde",
 ]
@@ -7887,18 +8200,18 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237"
+checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "serde",
  "serde_json",
- "serde_with_macros 3.3.0",
+ "serde_with_macros 3.4.0",
  "time",
 ]
 
@@ -7909,21 +8222,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
 dependencies = [
  "darling 0.13.4",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "serde_with_macros"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c"
+checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788"
 dependencies = [
  "darling 0.20.3",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -7940,11 +8253,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.25"
+version = "0.9.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
+checksum = "a15e0ef66bf939a7c890a0bf6d5a733c70202225f9888a89ed5c62298b019129"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "itoa",
  "ryu",
  "serde",
@@ -7964,9 +8277,9 @@ dependencies = [
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -7975,9 +8288,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -7986,9 +8299,9 @@ dependencies = [
 
 [[package]]
 name = "sha3"
-version = "0.10.6"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9"
+checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
 dependencies = [
  "digest",
  "keccak",
@@ -7996,18 +8309,18 @@ dependencies = [
 
 [[package]]
 name = "sharded-slab"
-version = "0.1.4"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
 dependencies = [
  "lazy_static",
 ]
 
 [[package]]
 name = "shared_child"
-version = "0.3.5"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6be9f7d5565b1483af3e72975e2dee33879b3b86bd48c0929fccf6585d79e65a"
+checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
 dependencies = [
  "libc",
  "winapi",
@@ -8036,9 +8349,9 @@ dependencies = [
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
 dependencies = [
  "libc",
 ]
@@ -8062,6 +8375,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d"
 dependencies = [
  "digest",
+ "rand_core 0.6.4",
 ]
 
 [[package]]
@@ -8074,10 +8388,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
 name = "similar"
-version = "2.2.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"
+checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
 dependencies = [
  "bstr 0.2.17",
  "unicode-segmentation",
@@ -8101,59 +8421,58 @@ checksum = "2a30f10c911c0355f80f1c2faa8096efc4a58cdf8590b954d5b395efa071c711"
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "sketches-ddsketch"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceb945e54128e09c43d8e4f1277851bd5044c6fc540bbaa2ad888f60b3da9ae7"
+checksum = "68a406c1882ed7f29cd5e248c9848a80e7cb6ae0fea82346d2746f2f941c07e1"
 
 [[package]]
 name = "slab"
-version = "0.4.7"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "smol"
-version = "1.2.5"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cf3b5351f3e783c1d79ab5fc604eeed8b8ae9abd36b166e8b87a089efd85e4"
+checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1"
 dependencies = [
  "async-channel",
  "async-executor",
  "async-fs",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "async-net",
  "async-process",
  "blocking",
  "futures-lite",
- "once_cell",
 ]
 
 [[package]]
 name = "smpl_jwt"
-version = "0.7.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b6ff8c21c74ce7744643a7cddbb02579a44f1f77e4316bff1ddb741aca8ac9"
+checksum = "fff23fdd767425c13e6f354b7443b3cc0c23097ae077e2211ef8143fa68ad014"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.21.5",
  "log",
  "openssl",
  "serde",
@@ -8182,22 +8501,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "snap"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"
+checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
@@ -8205,9 +8524,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
@@ -8221,9 +8540,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 
 [[package]]
 name = "spin"
-version = "0.9.4"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 dependencies = [
  "lock_api",
 ]
@@ -8239,22 +8558,26 @@ dependencies = [
 ]
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
+name = "stability"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "ebd1b177894da2a2d9120208c3386066af06a488255caabc5de8ddca22dbc3ce"
+dependencies = [
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
 
 [[package]]
-name = "str-buf"
-version = "1.0.6"
+name = "static_assertions"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "stream-cancel"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0a9eb2715209fb8cc0d942fcdff45674bfc9f0090a0d897e85a22955ad159b"
+checksum = "5f9fbf9bd71e4cf18d68a8a0951c0e5b7255920c0cd992c4ff51cddd6ef514a3"
 dependencies = [
  "futures-core",
  "pin-project",
@@ -8263,9 +8586,9 @@ dependencies = [
 
 [[package]]
 name = "string_cache"
-version = "0.8.4"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
 dependencies = [
  "new_debug_unreachable",
  "once_cell",
@@ -8276,10 +8599,11 @@ dependencies = [
 
 [[package]]
 name = "stringprep"
-version = "0.1.2"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1"
+checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6"
 dependencies = [
+ "finl_unicode",
  "unicode-bidi",
  "unicode-normalization",
 ]
@@ -8324,8 +8648,8 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
 dependencies = [
  "heck 0.3.3",
  "proc-macro-error",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -8340,30 +8664,30 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.25.1"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6069ca09d878a33f883cc06aaa9718ede171841d3832450354410b718b097232"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "rustversion",
- "syn 2.0.37",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "supports-color"
-version = "1.3.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ba6faf2ca7ee42fdd458f4347ae0a9bd6bcc445ad7cb57ad82b383f18870d6f"
+checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89"
 dependencies = [
- "atty",
+ "is-terminal",
  "is_ci",
 ]
 
@@ -8384,27 +8708,39 @@ version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "unicode-ident",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.37"
+version = "2.0.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
+checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "unicode-ident",
 ]
 
 [[package]]
+name = "syn_derive"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
+dependencies = [
+ "proc-macro-error",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
+]
+
+[[package]]
 name = "sync_wrapper"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
 name = "syslog"
@@ -8421,15 +8757,36 @@ dependencies = [
 
 [[package]]
 name = "syslog_loose"
-version = "0.19.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acf5252d1adec0a489a0225f867c1a7fd445e41674530a396d0629cff0c4b211"
+checksum = "161028c00842709450114c39db3b29f44c898055ed8833bb9b535aba7facf30e"
 dependencies = [
  "chrono",
  "nom",
 ]
 
 [[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "take_mut"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8443,9 +8800,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
 
 [[package]]
 name = "tcp-stream"
-version = "0.24.4"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09a4b0a70bac0a58ca6a7659d1328e34ee462339c70b0fa49f72bad1f278910a"
+checksum = "4da30af7998f51ee1aa48ab24276fe303a697b004e31ff542b192c088d5630a5"
 dependencies = [
  "cfg-if",
  "native-tls",
@@ -8454,22 +8811,21 @@ dependencies = [
 
 [[package]]
 name = "temp-dir"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
+checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
 
 [[package]]
 name = "tempfile"
-version = "3.6.0"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
- "autocfg",
  "cfg-if",
- "fastrand",
- "redox_syscall 0.3.5",
- "rustix 0.37.19",
- "windows-sys 0.48.0",
+ "fastrand 2.0.1",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.28",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -8485,38 +8841,28 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "terminal_size"
-version = "0.1.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "terminal_size"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.38.14",
+ "rustix 0.38.28",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "termtree"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "test-generator"
@@ -8541,41 +8887,41 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
 dependencies = [
+ "cfg-if",
  "once_cell",
 ]
 
 [[package]]
 name = "tikv-jemalloc-sys"
-version = "0.5.2+5.3.0-patched"
+version = "0.5.4+5.3.0-patched"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec45c14da997d0925c7835883e4d5c181f196fa142f8c19d7643d1e9af2592c3"
+checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1"
 dependencies = [
  "cc",
- "fs_extra",
  "libc",
 ]
 
@@ -8591,14 +8937,16 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
 dependencies = [
  "deranged",
  "itoa",
+ "js-sys",
  "libc",
  "num_threads",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -8606,15 +8954,15 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
+checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
 dependencies = [
  "time-core",
 ]
@@ -8649,15 +8997,15 @@ dependencies = [
 
 [[package]]
 name = "tinyvec_macros"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes 1.5.0",
@@ -8667,9 +9015,9 @@ dependencies = [
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tokio-macros",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "windows-sys 0.48.0",
 ]
 
@@ -8696,20 +9044,20 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "tokio-native-tls"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
 dependencies = [
  "native-tls",
  "tokio",
@@ -8717,9 +9065,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-openssl"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a"
+checksum = "6ffab79df67727f6acf57f1ff743091873c24c579b1e2ce4d8f53e47ded4d63d"
 dependencies = [
  "futures-util",
  "openssl",
@@ -8747,7 +9095,7 @@ dependencies = [
  "postgres-protocol",
  "postgres-types",
  "rand 0.8.5",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tokio",
  "tokio-util",
  "whoami",
@@ -8770,7 +9118,7 @@ version = "0.23.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
 dependencies = [
- "rustls 0.20.7",
+ "rustls 0.20.9",
  "tokio",
  "webpki",
 ]
@@ -8781,7 +9129,7 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls 0.21.7",
+ "rustls 0.21.8",
  "tokio",
 ]
 
@@ -8812,27 +9160,15 @@ dependencies = [
 
 [[package]]
 name = "tokio-tungstenite"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd"
-dependencies = [
- "futures-util",
- "log",
- "tokio",
- "tungstenite 0.18.0",
-]
-
-[[package]]
-name = "tokio-tungstenite"
-version = "0.20.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2dbec703c26b00d74844519606ef15d09a7d6857860f84ad223dec002ddea2"
+checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
 dependencies = [
  "futures-util",
  "log",
- "rustls 0.21.7",
+ "rustls 0.21.8",
  "tokio",
- "tungstenite 0.20.0",
+ "tungstenite",
 ]
 
 [[package]]
@@ -8847,7 +9183,7 @@ dependencies = [
  "pin-project-lite",
  "slab",
  "tokio",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -8861,32 +9197,54 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.0"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c226a7bba6d859b63c92c4b4fe69c5b6b72d0cb897dbc8e6012298e6154cb56e"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.21.0",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.20.0"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.1.0",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.20.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ff63e60a958cefbb518ae1fd6566af80d9d4be430a33f3723dfc47d1d411d95"
+checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+dependencies = [
+ "indexmap 2.1.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -8902,12 +9260,12 @@ dependencies = [
  "async-stream",
  "async-trait",
  "axum",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
  "futures-core",
  "futures-util",
- "h2",
- "http",
+ "h2 0.3.22",
+ "http 0.2.9",
  "http-body",
  "hyper",
  "hyper-timeout",
@@ -8921,30 +9279,30 @@ dependencies = [
  "tower",
  "tower-layer",
  "tower-service",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
 name = "tonic"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c00bc15e49625f3d2f20b17082601e5e17cf27ead69e805174026c194b6664"
+checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e"
 dependencies = [
  "async-stream",
  "async-trait",
  "axum",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
  "flate2",
- "h2",
- "http",
+ "h2 0.3.22",
+ "http 0.2.9",
  "http-body",
  "hyper",
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
- "prost 0.12.1",
- "rustls 0.21.7",
+ "prost 0.12.3",
+ "rustls 0.21.8",
  "rustls-native-certs",
  "rustls-pemfile",
  "tokio",
@@ -8953,7 +9311,7 @@ dependencies = [
  "tower",
  "tower-layer",
  "tower-service",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -8962,24 +9320,24 @@ version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07"
 dependencies = [
- "prettyplease 0.1.21",
- "proc-macro2 1.0.67",
+ "prettyplease 0.1.25",
+ "proc-macro2 1.0.74",
  "prost-build 0.11.9",
- "quote 1.0.33",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "tonic-build"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9d37bb15da06ae9bb945963066baca6561b505af93a52e949a85d28558459a2"
+checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889"
 dependencies = [
- "prettyplease 0.2.12",
- "proc-macro2 1.0.67",
- "prost-build 0.12.1",
- "quote 1.0.33",
- "syn 2.0.37",
+ "prettyplease 0.2.15",
+ "proc-macro2 1.0.74",
+ "prost-build 0.12.3",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
@@ -8999,7 +9357,7 @@ dependencies = [
  "tokio-util",
  "tower-layer",
  "tower-service",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -9009,12 +9367,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
 dependencies = [
  "async-compression",
- "base64 0.21.4",
- "bitflags 2.4.0",
+ "base64 0.21.5",
+ "bitflags 2.4.1",
  "bytes 1.5.0",
  "futures-core",
  "futures-util",
- "http",
+ "http 0.2.9",
  "http-body",
  "http-range-header",
  "mime",
@@ -9023,7 +9381,7 @@ dependencies = [
  "tokio-util",
  "tower-layer",
  "tower-service",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -9054,15 +9412,14 @@ dependencies = [
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "log",
  "pin-project-lite",
  "tracing-attributes",
- "tracing-core 0.1.30",
+ "tracing-core 0.1.32",
 ]
 
 [[package]]
@@ -9077,20 +9434,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.23"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.30"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
  "valuable",
@@ -9110,8 +9467,8 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "12de1a8c6bcfee614305e836308b596bbac831137a04c61f7e5b0b0bf2cfeaf6"
 dependencies = [
- "tracing 0.1.37",
- "tracing-core 0.1.30",
+ "tracing 0.1.40",
+ "tracing-core 0.1.32",
  "tracing-subscriber",
 ]
 
@@ -9121,10 +9478,10 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
 dependencies = [
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-task",
  "pin-project",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -9143,20 +9500,20 @@ dependencies = [
  "criterion",
  "dashmap",
  "mock_instant",
- "tracing 0.1.37",
- "tracing-core 0.1.30",
+ "tracing 0.1.40",
+ "tracing-core 0.1.32",
  "tracing-subscriber",
 ]
 
 [[package]]
 name = "tracing-log"
-version = "0.1.3"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 dependencies = [
- "lazy_static",
  "log",
- "tracing-core 0.1.30",
+ "once_cell",
+ "tracing-core 0.1.32",
 ]
 
 [[package]]
@@ -9166,14 +9523,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
 dependencies = [
  "serde",
- "tracing-core 0.1.30",
+ "tracing-core 0.1.32",
 ]
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "matchers",
  "nu-ansi-term",
@@ -9183,8 +9540,8 @@ dependencies = [
  "serde_json",
  "sharded-slab",
  "thread_local",
- "tracing 0.1.37",
- "tracing-core 0.1.30",
+ "tracing 0.1.40",
+ "tracing-core 0.1.32",
  "tracing-log",
  "tracing-serde",
 ]
@@ -9194,7 +9551,7 @@ name = "tracing-tower"
 version = "0.1.0"
 source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd"
 dependencies = [
- "futures 0.3.28",
+ "futures 0.3.30",
  "tower-service",
  "tracing 0.2.0",
  "tracing-futures 0.3.0",
@@ -9235,31 +9592,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "trust-dns-proto"
-version = "0.23.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dc775440033cb114085f6f2437682b194fa7546466024b1037e82a48a052a69"
-dependencies = [
- "async-trait",
- "cfg-if",
- "data-encoding",
- "enum-as-inner 0.6.0",
- "futures-channel",
- "futures-io",
- "futures-util",
- "idna 0.4.0",
- "ipnet",
- "once_cell",
- "rand 0.8.5",
- "smallvec",
- "thiserror",
- "tinyvec",
- "tokio",
- "tracing 0.1.37",
- "url",
-]
-
-[[package]]
 name = "trust-dns-resolver"
 version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9276,44 +9608,25 @@ dependencies = [
  "smallvec",
  "thiserror",
  "tokio",
- "trust-dns-proto 0.21.2",
+ "trust-dns-proto",
 ]
 
 [[package]]
 name = "try-lock"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
-
-[[package]]
-name = "tungstenite"
-version = "0.18.0"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788"
-dependencies = [
- "base64 0.13.1",
- "byteorder",
- "bytes 1.5.0",
- "http",
- "httparse",
- "log",
- "rand 0.8.5",
- "sha1",
- "thiserror",
- "url",
- "utf-8",
-]
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
 
 [[package]]
 name = "tungstenite"
-version = "0.20.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649"
+checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
 dependencies = [
  "byteorder",
  "bytes 1.5.0",
  "data-encoding",
- "http",
+ "http 0.2.9",
  "httparse",
  "log",
  "rand 0.8.5",
@@ -9339,33 +9652,42 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "typed-builder"
-version = "0.14.0"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64cba322cb9b7bc6ca048de49e83918223f35e7a86311267013afff257004870"
+checksum = "34085c17941e36627a879208083e25d357243812c30e7d7387c3b954f30ade16"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
+ "typed-builder-macro",
+]
+
+[[package]]
+name = "typed-builder-macro"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e"
+dependencies = [
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "typenum"
-version = "1.15.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "typetag"
-version = "0.2.13"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80960fd143d4c96275c0e60b08f14b81fbb468e79bc0ef8fbda69fb0afafae43"
+checksum = "c43148481c7b66502c48f35b8eef38b6ccdc7a9f04bd4cc294226d901ccc9bc7"
 dependencies = [
  "erased-serde",
  "inventory",
@@ -9376,13 +9698,22 @@ dependencies = [
 
 [[package]]
 name = "typetag-impl"
-version = "0.2.13"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291db8a81af4840c10d636e047cac67664e343be44e24dfdbd1492df9a5d3390"
+dependencies = [
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
+]
+
+[[package]]
+name = "tz-rs"
+version = "0.6.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfc13d450dc4a695200da3074dacf43d449b968baee95e341920e47f61a3b40f"
+checksum = "33851b15c848fad2cf4b105c6bb66eb9512b6f6c44a4b13f57c53c73c707e2b4"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "const_fn",
 ]
 
 [[package]]
@@ -9401,9 +9732,9 @@ dependencies = [
 
 [[package]]
 name = "ucd-trie"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "unarray"
@@ -9413,9 +9744,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
 
 [[package]]
 name = "unicase"
-version = "2.6.0"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
 dependencies = [
  "version_check",
 ]
@@ -9428,9 +9759,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.5"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
@@ -9443,15 +9774,15 @@ dependencies = [
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.0"
+version = "1.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unicode-xid"
@@ -9486,9 +9817,9 @@ dependencies = [
 
 [[package]]
 name = "unsafe-libyaml"
-version = "0.2.7"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad2024452afd3874bf539695e04af6732ba06517424dbf958fdb16a01f3bef6c"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
 
 [[package]]
 name = "untrusted"
@@ -9497,6 +9828,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
 
 [[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
 name = "uom"
 version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9509,21 +9846,21 @@ dependencies = [
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna 0.4.0",
+ "idna 0.5.0",
  "percent-encoding",
  "serde",
 ]
 
 [[package]]
 name = "urlencoding"
-version = "2.1.2"
+version = "2.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
 
 [[package]]
 name = "utf-8"
@@ -9533,9 +9870,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 
 [[package]]
 name = "utf8-width"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
+checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
 
 [[package]]
 name = "utf8parse"
@@ -9545,11 +9882,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.4.1"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
  "rand 0.8.5",
  "serde",
  "wasm-bindgen",
@@ -9572,10 +9909,9 @@ name = "vdev"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "atty",
  "cached",
  "chrono",
- "clap 4.4.5",
+ "clap 4.4.12",
  "clap-verbosity-flag",
  "clap_complete",
  "confy",
@@ -9583,9 +9919,9 @@ dependencies = [
  "dunce",
  "glob",
  "hex",
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "indicatif",
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "log",
  "once_cell",
  "os_info",
@@ -9595,10 +9931,10 @@ dependencies = [
  "reqwest",
  "serde",
  "serde_json",
- "serde_yaml 0.9.25",
+ "serde_yaml 0.9.29",
  "sha2",
  "tempfile",
- "toml 0.8.0",
+ "toml 0.8.8",
 ]
 
 [[package]]
@@ -9609,7 +9945,7 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 
 [[package]]
 name = "vector"
-version = "0.33.0"
+version = "0.35.0"
 dependencies = [
  "apache-avro",
  "approx",
@@ -9617,12 +9953,11 @@ dependencies = [
  "arr_macro",
  "assert_cmd",
  "async-compression",
- "async-graphql 6.0.0",
+ "async-graphql",
  "async-graphql-warp",
  "async-nats",
  "async-stream",
  "async-trait",
- "atty",
  "aws-config",
  "aws-credential-types",
  "aws-sdk-cloudwatch",
@@ -9645,15 +9980,15 @@ dependencies = [
  "azure_identity",
  "azure_storage",
  "azure_storage_blobs",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bloomy",
  "bollard",
  "bytes 1.5.0",
  "bytesize",
  "chrono",
- "cidr-utils",
- "clap 4.4.5",
- "codecs",
+ "chrono-tz",
+ "cidr-utils 0.6.1",
+ "clap 4.4.12",
  "colored",
  "console-subscriber",
  "criterion",
@@ -9664,37 +9999,36 @@ dependencies = [
  "dnsmsg-parser",
  "dyn-clone",
  "encoding_rs",
- "enrichment",
  "enum_dispatch",
  "exitcode",
  "fakedata",
- "file-source",
  "flate2",
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-util",
  "glob",
  "goauth",
  "governor",
  "greptimedb-client",
  "grok",
- "h2",
+ "h2 0.4.0",
  "hash_hasher",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "headers",
  "heim",
  "hex",
+ "hickory-proto",
  "hostname",
- "http",
+ "http 0.2.9",
  "http-body",
  "http-serde",
  "hyper",
  "hyper-openssl",
  "hyper-proxy",
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "indoc",
  "infer 0.15.0",
  "inventory",
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "k8s-openapi 0.18.0",
  "kube",
  "lapin",
@@ -9710,7 +10044,7 @@ dependencies = [
  "mlua",
  "mongodb",
  "nix 0.26.2",
- "nkeys",
+ "nkeys 0.4.0",
  "nom",
  "notify",
  "num-format",
@@ -9720,19 +10054,17 @@ dependencies = [
  "openssl",
  "openssl-probe",
  "openssl-src",
- "opentelemetry-proto",
- "ordered-float 4.1.0",
+ "ordered-float 4.2.0",
  "paste",
  "percent-encoding",
  "pin-project",
  "portpicker",
  "postgres-openssl",
- "prometheus-parser",
  "proptest",
- "prost 0.12.1",
- "prost-build 0.12.1",
+ "prost 0.12.3",
+ "prost-build 0.12.3",
  "prost-reflect",
- "prost-types 0.12.1",
+ "prost-types 0.12.3",
  "pulsar",
  "quickcheck",
  "rand 0.8.5",
@@ -9747,20 +10079,20 @@ dependencies = [
  "roaring",
  "rstest",
  "seahash",
- "semver 1.0.18",
+ "semver 1.0.20",
  "serde",
  "serde-toml-merge",
  "serde_bytes",
  "serde_json",
- "serde_with 3.3.0",
- "serde_yaml 0.9.25",
+ "serde_with 3.4.0",
+ "serde_yaml 0.9.29",
  "sha2",
  "similar-asserts",
  "smallvec",
  "smpl_jwt",
  "snafu",
  "snap",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "stream-cancel",
  "strip-ansi-escapes",
  "syslog",
@@ -9772,38 +10104,30 @@ dependencies = [
  "tokio-postgres",
  "tokio-stream",
  "tokio-test",
- "tokio-tungstenite 0.20.0",
+ "tokio-tungstenite",
  "tokio-util",
- "toml 0.8.0",
- "tonic 0.10.1",
- "tonic-build 0.10.1",
+ "toml 0.8.8",
+ "tonic 0.10.2",
+ "tonic-build 0.10.2",
  "tower",
  "tower-http",
  "tower-test",
- "tracing 0.1.37",
- "tracing-core 0.1.30",
+ "tracing 0.1.40",
+ "tracing-core 0.1.32",
  "tracing-futures 0.2.5",
  "tracing-limit",
  "tracing-subscriber",
  "tracing-tower",
- "trust-dns-proto 0.23.0",
  "typetag",
  "url",
  "uuid",
- "vector-api-client",
- "vector-buffers",
- "vector-common",
- "vector-config",
- "vector-config-common",
- "vector-config-macros",
- "vector-core",
- "vector-lookup",
+ "vector-lib",
  "vector-vrl-functions",
  "vrl",
  "warp",
  "windows-service",
  "wiremock",
- "zstd 0.12.4",
+ "zstd 0.13.0",
 ]
 
 [[package]]
@@ -9813,8 +10137,8 @@ dependencies = [
  "anyhow",
  "async-trait",
  "chrono",
- "clap 4.4.5",
- "futures 0.3.28",
+ "clap 4.4.12",
+ "futures 0.3.30",
  "graphql_client",
  "indoc",
  "reqwest",
@@ -9822,7 +10146,7 @@ dependencies = [
  "serde_json",
  "tokio",
  "tokio-stream",
- "tokio-tungstenite 0.20.0",
+ "tokio-tungstenite",
  "url",
  "uuid",
 ]
@@ -9836,13 +10160,14 @@ dependencies = [
  "async-trait",
  "bytecheck",
  "bytes 1.5.0",
- "clap 4.4.5",
+ "clap 4.4.12",
  "crc32fast",
  "criterion",
  "crossbeam-queue",
  "crossbeam-utils",
+ "derivative",
  "fslock",
- "futures 0.3.28",
+ "futures 0.3.30",
  "hdrhistogram",
  "memmap2",
  "metrics",
@@ -9850,19 +10175,20 @@ dependencies = [
  "metrics-util",
  "num-traits",
  "once_cell",
+ "paste",
  "pin-project",
  "proptest",
  "quickcheck",
  "rand 0.8.5",
  "rkyv",
  "serde",
- "serde_yaml 0.9.25",
+ "serde_yaml 0.9.29",
  "snafu",
  "temp-dir",
  "tokio",
  "tokio-test",
  "tokio-util",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "tracing-fluent-assertions",
  "tracing-subscriber",
  "vector-common",
@@ -9881,11 +10207,11 @@ dependencies = [
  "chrono-tz",
  "crossbeam-utils",
  "derivative",
- "futures 0.3.28",
- "indexmap 2.0.0",
+ "futures 0.3.30",
+ "indexmap 2.1.0",
  "metrics",
  "nom",
- "ordered-float 4.1.0",
+ "ordered-float 4.2.0",
  "paste",
  "pin-project",
  "quickcheck",
@@ -9897,7 +10223,7 @@ dependencies = [
  "snafu",
  "stream-cancel",
  "tokio",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "vector-config",
  "vector-config-common",
  "vector-config-macros",
@@ -9912,17 +10238,17 @@ dependencies = [
  "chrono",
  "chrono-tz",
  "encoding_rs",
- "http",
- "indexmap 2.0.0",
+ "http 0.2.9",
+ "indexmap 2.1.0",
  "inventory",
  "no-proxy",
  "num-traits",
  "serde",
  "serde_json",
- "serde_with 3.3.0",
+ "serde_with 3.4.0",
  "snafu",
- "toml 0.8.0",
- "tracing 0.1.37",
+ "toml 0.8.8",
+ "tracing 0.1.40",
  "url",
  "vector-config-common",
  "vector-config-macros",
@@ -9937,12 +10263,12 @@ dependencies = [
  "convert_case 0.6.0",
  "darling 0.20.3",
  "once_cell",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "serde",
  "serde_json",
- "syn 2.0.37",
- "tracing 0.1.37",
+ "syn 2.0.46",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -9950,11 +10276,11 @@ name = "vector-config-macros"
 version = "0.1.0"
 dependencies = [
  "darling 0.20.3",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
  "serde",
  "serde_derive_internals",
- "syn 2.0.37",
+ "syn 2.0.46",
  "vector-config",
  "vector-config-common",
 ]
@@ -9963,10 +10289,9 @@ dependencies = [
 name = "vector-core"
 version = "0.1.0"
 dependencies = [
- "async-graphql 5.0.10",
- "async-stream",
+ "async-graphql",
  "async-trait",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bitmask-enum",
  "bytes 1.5.0",
  "chrono",
@@ -9979,12 +10304,12 @@ dependencies = [
  "enumflags2",
  "env-test-util",
  "float_eq",
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-util",
  "headers",
- "http",
+ "http 0.2.9",
  "hyper-proxy",
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "metrics",
  "metrics-tracing-context",
  "metrics-util",
@@ -9995,14 +10320,14 @@ dependencies = [
  "noisy_float",
  "once_cell",
  "openssl",
- "ordered-float 4.1.0",
+ "ordered-float 4.2.0",
  "parking_lot",
  "pin-project",
  "proptest",
- "prost 0.12.1",
- "prost-build 0.12.1",
- "prost-types 0.12.1",
- "quanta",
+ "prost 0.12.3",
+ "prost-build 0.12.3",
+ "prost-types 0.12.3",
+ "quanta 0.12.2",
  "quickcheck",
  "quickcheck_macros",
  "rand 0.8.5",
@@ -10013,24 +10338,21 @@ dependencies = [
  "security-framework",
  "serde",
  "serde_json",
- "serde_with 3.3.0",
+ "serde_with 3.4.0",
  "similar-asserts",
  "smallvec",
  "snafu",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tokio",
  "tokio-openssl",
  "tokio-stream",
  "tokio-test",
  "tokio-util",
- "toml 0.8.0",
- "tonic 0.10.1",
- "tower",
- "tracing 0.1.37",
- "tracing-core 0.1.30",
- "tracing-log",
+ "toml 0.8.8",
+ "tonic 0.10.2",
+ "tracing 0.1.40",
+ "tracing-core 0.1.32",
  "tracing-subscriber",
- "twox-hash",
  "typetag",
  "url",
  "vector-buffers",
@@ -10043,6 +10365,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "vector-lib"
+version = "0.1.0"
+dependencies = [
+ "codecs",
+ "enrichment",
+ "file-source",
+ "opentelemetry-proto",
+ "prometheus-parser",
+ "vector-api-client",
+ "vector-buffers",
+ "vector-common",
+ "vector-config",
+ "vector-core",
+ "vector-lookup",
+ "vector-stream",
+]
+
+[[package]]
 name = "vector-lookup"
 version = "0.1.0"
 dependencies = [
@@ -10053,10 +10393,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "vector-stream"
+version = "0.1.0"
+dependencies = [
+ "async-stream",
+ "futures 0.3.30",
+ "futures-util",
+ "pin-project",
+ "proptest",
+ "rand 0.8.5",
+ "rand_distr",
+ "tokio",
+ "tokio-util",
+ "tower",
+ "tracing 0.1.40",
+ "twox-hash",
+ "vector-common",
+ "vector-core",
+]
+
+[[package]]
 name = "vector-vrl-cli"
 version = "0.1.0"
 dependencies = [
- "clap 4.4.5",
+ "clap 4.4.12",
  "vector-vrl-functions",
  "vrl",
 ]
@@ -10075,7 +10435,7 @@ dependencies = [
  "ansi_term",
  "chrono",
  "chrono-tz",
- "clap 4.4.5",
+ "clap 4.4.12",
  "enrichment",
  "glob",
  "prettydiff",
@@ -10094,7 +10454,7 @@ version = "0.1.0"
 dependencies = [
  "cargo_toml",
  "enrichment",
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
  "gloo-utils",
  "serde",
  "serde-wasm-bindgen",
@@ -10117,16 +10477,15 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
 
 [[package]]
 name = "vrl"
-version = "0.7.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10d3c3ffe5322a8a7f63cf422aebb5000774e4152955fca1cd024c262893db5d"
+checksum = "0c13adaad36ee7b6f8cb7e7baa17ac05d84439d787b0b058df7be1cd9b04f485"
 dependencies = [
  "aes",
  "ansi_term",
- "anymap",
  "arbitrary",
  "base16",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes 1.5.0",
  "cbc",
  "cfb-mode",
@@ -10135,8 +10494,8 @@ dependencies = [
  "charset",
  "chrono",
  "chrono-tz",
- "cidr-utils",
- "clap 4.4.5",
+ "cidr-utils 0.6.1",
+ "clap 4.4.12",
  "codespan-reporting",
  "community-id",
  "crypto_secretbox",
@@ -10151,9 +10510,9 @@ dependencies = [
  "hex",
  "hmac",
  "hostname",
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "indoc",
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "lalrpop",
  "lalrpop-util",
  "md-5",
@@ -10162,7 +10521,7 @@ dependencies = [
  "ofb",
  "once_cell",
  "onig",
- "ordered-float 4.1.0",
+ "ordered-float 4.2.0",
  "paste",
  "peeking_take_while",
  "percent-encoding",
@@ -10174,7 +10533,7 @@ dependencies = [
  "quoted_printable",
  "rand 0.8.5",
  "regex",
- "roxmltree 0.18.0",
+ "roxmltree 0.19.0",
  "rust_decimal",
  "rustyline",
  "seahash",
@@ -10184,18 +10543,19 @@ dependencies = [
  "sha2",
  "sha3",
  "snafu",
+ "snap",
  "strip-ansi-escapes",
  "syslog_loose",
  "termcolor",
  "thiserror",
- "tracing 0.1.37",
+ "tracing 0.1.40",
  "uaparser",
  "url",
  "utf8-width",
  "uuid",
  "webbrowser",
  "woothee",
- "zstd 0.12.4",
+ "zstd 0.13.0",
 ]
 
 [[package]]
@@ -10214,8 +10574,8 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
 ]
 
 [[package]]
@@ -10229,42 +10589,40 @@ dependencies = [
 
 [[package]]
 name = "waker-fn"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.3.2"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
- "winapi",
  "winapi-util",
 ]
 
 [[package]]
 name = "want"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
 dependencies = [
- "log",
  "try-lock",
 ]
 
 [[package]]
 name = "warp"
-version = "0.3.5"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba431ef570df1287f7f8b07e376491ad54f84d26ac473489427231e1718e1f69"
+checksum = "c1e92e22e03ff1230c03a1a8ee37d2f89cd489e2e541b7550d6afad96faed169"
 dependencies = [
  "bytes 1.5.0",
  "futures-channel",
  "futures-util",
  "headers",
- "http",
+ "http 0.2.9",
  "hyper",
  "log",
  "mime",
@@ -10278,10 +10636,10 @@ dependencies = [
  "serde_urlencoded",
  "tokio",
  "tokio-stream",
- "tokio-tungstenite 0.18.0",
+ "tokio-tungstenite",
  "tokio-util",
  "tower-service",
- "tracing 0.1.37",
+ "tracing 0.1.40",
 ]
 
 [[package]]
@@ -10298,9 +10656,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -10308,24 +10666,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.33"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
+checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -10335,32 +10693,32 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
- "quote 1.0.33",
+ "quote 1.0.35",
  "wasm-bindgen-macro-support",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 2.0.37",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "wasm-streams"
@@ -10377,9 +10735,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.60"
+version = "0.3.65"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
+checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -10387,12 +10745,12 @@ dependencies = [
 
 [[package]]
 name = "webbrowser"
-version = "0.8.8"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579cc485bd5ce5bfa0d738e4921dd0b956eca9800be1fd2e5257ebe95bc4617e"
+checksum = "82b2391658b02c27719fc5a0a73d6e696285138e8b12fba9d4baa70451023c71"
 dependencies = [
  "core-foundation",
- "dirs",
+ "home",
  "jni",
  "log",
  "ndk-context",
@@ -10404,21 +10762,12 @@ dependencies = [
 
 [[package]]
 name = "webpki"
-version = "0.22.1"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0e74f82d49d545ad128049b7e88f6576df2da6b02e9ce565c6f533be576957e"
+checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
 dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "webpki-roots"
-version = "0.22.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be"
-dependencies = [
- "webpki",
+ "ring 0.17.5",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
@@ -10428,24 +10777,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
 
 [[package]]
-name = "wepoll-ffi"
-version = "0.1.2"
+name = "which"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
 dependencies = [
- "cc",
+ "either",
+ "home",
+ "once_cell",
+ "rustix 0.38.28",
 ]
 
 [[package]]
 name = "which"
-version = "4.4.2"
+version = "5.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14"
 dependencies = [
  "either",
  "home",
  "once_cell",
- "rustix 0.38.14",
+ "rustix 0.38.28",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -10466,12 +10819,6 @@ checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
 
 [[package]]
 name = "widestring"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983"
-
-[[package]]
-name = "widestring"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
@@ -10494,9 +10841,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -10508,6 +10855,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "windows-service"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -10520,167 +10876,209 @@ dependencies = [
 
 [[package]]
 name = "windows-sys"
-version = "0.42.0"
+version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
+ "windows-targets 0.42.2",
 ]
 
 [[package]]
 name = "windows-sys"
-version = "0.45.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.42.1",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "windows-sys"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
 dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
-name = "winnow"
-version = "0.5.15"
+name = "windows_x86_64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
-dependencies = [
- "memchr",
-]
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
-name = "winreg"
-version = "0.10.1"
+name = "winnow"
+version = "0.5.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+checksum = "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32"
 dependencies = [
- "winapi",
+ "memchr",
 ]
 
 [[package]]
@@ -10695,15 +11093,15 @@ dependencies = [
 
 [[package]]
 name = "wiremock"
-version = "0.5.19"
+version = "0.5.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6f71803d3a1c80377a06221e0530be02035d5b3e854af56c6ece7ac20ac441d"
+checksum = "13a3a53eaf34f390dd30d7b1b078287dd05df2aa2e21a589ccb80f5c7253c2e9"
 dependencies = [
  "assert-json-diff 2.0.2",
  "async-trait",
- "base64 0.21.4",
+ "base64 0.21.5",
  "deadpool",
- "futures 0.3.28",
+ "futures 0.3.30",
  "futures-timer",
  "http-types",
  "hyper",
@@ -10736,9 +11134,9 @@ dependencies = [
 
 [[package]]
 name = "xmlparser"
-version = "0.13.5"
+version = "0.13.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
+checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
 
 [[package]]
 name = "yaml-rust"
@@ -10757,54 +11155,53 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
 name = "zerocopy"
-version = "0.6.1"
+version = "0.7.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "332f188cc1bcf1fe1064b8c58d150f497e697f49774aa846f2dc949d9a25f236"
+checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d"
 dependencies = [
- "byteorder",
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.3.2"
+version = "0.7.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6505e6815af7de1746a08f69c69606bb45695a17149517680f3b2149713b19a3"
+checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
 dependencies = [
- "proc-macro2 1.0.67",
- "quote 1.0.33",
- "syn 1.0.109",
+ "proc-macro2 1.0.74",
+ "quote 1.0.35",
+ "syn 2.0.46",
 ]
 
 [[package]]
 name = "zeroize"
-version = "1.5.7"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
 
 [[package]]
 name = "zstd"
-version = "0.11.2+zstd.1.5.2"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
+checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
 dependencies = [
- "zstd-safe 5.0.2+zstd.1.5.2",
+ "zstd-safe 6.0.6",
 ]
 
 [[package]]
 name = "zstd"
-version = "0.12.4"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
+checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110"
 dependencies = [
- "zstd-safe 6.0.3+zstd.1.5.2",
+ "zstd-safe 7.0.0",
 ]
 
 [[package]]
 name = "zstd-safe"
-version = "5.0.2+zstd.1.5.2"
+version = "6.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
+checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
 dependencies = [
  "libc",
  "zstd-sys",
@@ -10812,21 +11209,19 @@ dependencies = [
 
 [[package]]
 name = "zstd-safe"
-version = "6.0.3+zstd.1.5.2"
+version = "7.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68e4a3f57d13d0ab7e478665c60f35e2a613dcd527851c2c7287ce5c787e134a"
+checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e"
 dependencies = [
- "libc",
  "zstd-sys",
 ]
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
  "cc",
- "libc",
  "pkg-config",
 ]
diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix
index b1fd29e746734..de9341c1c6bc1 100644
--- a/pkgs/tools/misc/vector/default.nix
+++ b/pkgs/tools/misc/vector/default.nix
@@ -8,10 +8,13 @@
 , rdkafka
 , oniguruma
 , zstd
+, rust-jemalloc-sys
+, rust-jemalloc-sys-unprefixed
 , Security
 , libiconv
 , coreutils
 , CoreServices
+, SystemConfiguration
 , tzdata
 , cmake
 , perl
@@ -26,14 +29,14 @@
     # 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?/gssapi-vendored" ]
-    ++ lib.optional stdenv.targetPlatform.isUnix "unix")
+    ++ lib.optional stdenv.hostPlatform.isUnix "unix")
 , nixosTests
 , nix-update-script
 }:
 
 let
   pname = "vector";
-  version = "0.33.0";
+  version = "0.35.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -42,7 +45,7 @@ rustPlatform.buildRustPackage {
     owner = "vectordotdev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ZhRvQQ0MxEd0Ry6sfEWUzYpEN80GhBOzpbEG5ZhCA2E=";
+    hash = "sha256-hScmHDkKkR6g1rrVRzBjtkrq59w1efIjeRJdDxmb+nY=";
   };
 
   cargoLock = {
@@ -59,8 +62,10 @@ rustPlatform.buildRustPackage {
     };
   };
   nativeBuildInputs = [ pkg-config cmake perl git rustPlatform.bindgenHook ];
-  buildInputs = [ oniguruma openssl protobuf rdkafka zstd ]
-    ++ lib.optionals stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
+  buildInputs =
+    [ oniguruma openssl protobuf rdkafka zstd ]
+    ++ lib.optionals stdenv.isLinux [ rust-jemalloc-sys-unprefixed ]
+    ++ lib.optionals stdenv.isDarwin [ rust-jemalloc-sys Security libiconv coreutils CoreServices SystemConfiguration ];
 
   # needed for internal protobuf c wrapper library
   PROTOC = "${protobuf}/bin/protoc";
@@ -94,6 +99,8 @@ rustPlatform.buildRustPackage {
     "--skip=sources::aws_kinesis_firehose::tests::handles_acknowledgement_failure"
   ];
 
+  patches = [ ./vector-pr19518.patch ];
+
   # recent overhauls of DNS support in 0.9 mean that we try to resolve
   # vector.dev during the checkPhase, which obviously isn't going to work.
   # these tests in the DNS module are trivial though, so stubbing them out is
diff --git a/pkgs/tools/misc/vector/vector-pr19518.patch b/pkgs/tools/misc/vector/vector-pr19518.patch
new file mode 100644
index 0000000000000..a8ee5334eda95
--- /dev/null
+++ b/pkgs/tools/misc/vector/vector-pr19518.patch
@@ -0,0 +1,25 @@
+diff --git a/src/config/loading/mod.rs b/src/config/loading/mod.rs
+index 58c464a58..40656fd29 100644
+--- a/src/config/loading/mod.rs
++++ b/src/config/loading/mod.rs
+@@ -13,7 +13,6 @@ use std::{
+ };
+ 
+ use config_builder::ConfigBuilderLoader;
+-pub use config_builder::*;
+ use glob::glob;
+ use loader::process::Process;
+ pub use loader::*;
+diff --git a/src/sinks/prometheus/remote_write/mod.rs b/src/sinks/prometheus/remote_write/mod.rs
+index 3ebda7df8..cf5b37a70 100644
+--- a/src/sinks/prometheus/remote_write/mod.rs
++++ b/src/sinks/prometheus/remote_write/mod.rs
+@@ -24,8 +24,6 @@ mod tests;
+ #[cfg(all(test, feature = "prometheus-integration-tests"))]
+ mod integration_tests;
+ 
+-pub use config::RemoteWriteConfig;
+-
+ #[derive(Debug, Snafu)]
+ enum Errors {
+     #[cfg(feature = "aws-core")]
diff --git a/pkgs/tools/misc/veikk-linux-driver-gui/default.nix b/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
index a018604a84fce..28e3194f56ec0 100644
--- a/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
+++ b/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
@@ -28,5 +28,6 @@ mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ nicbk ];
+    mainProgram = "veikk-linux-driver-gui";
   };
 }
diff --git a/pkgs/tools/misc/via/default.nix b/pkgs/tools/misc/via/default.nix
index 5fd808cd1d810..47f3df7743780 100644
--- a/pkgs/tools/misc/via/default.nix
+++ b/pkgs/tools/misc/via/default.nix
@@ -37,5 +37,6 @@ appimageTools.wrapType2 {
     license = licenses.gpl3;
     maintainers = with maintainers; [ emilytrau ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "via";
   };
 }
diff --git a/pkgs/tools/misc/viddy/default.nix b/pkgs/tools/misc/viddy/default.nix
index 385663f40c856..280cf82c4b414 100644
--- a/pkgs/tools/misc/viddy/default.nix
+++ b/pkgs/tools/misc/viddy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "viddy";
-  version = "0.3.7";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "sachaos";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-82q73L0641d5qNmB+WLkUmDP5OHMoj2SNFc+FhknhwU=";
+    hash = "sha256-iF5b5e3HPT3GJLRDxz9wN1U5rO9Ey51Cpw4p2zjffTI=";
   };
 
-  vendorHash = "sha256-FMSgLI1W5keRnSYVyY0XuarMzLWvm9D1ufUYmZttfxk=";
+  vendorHash = "sha256-/lx2D2FIByRnK/097M4SQKRlmqtPTvbFo1dwbThJ5Fs=";
 
   ldflags = [
     "-s"
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/sachaos/viddy";
     license = licenses.mit;
     maintainers = with maintainers; [ j-hui ];
+    mainProgram = "viddy";
   };
 }
diff --git a/pkgs/tools/misc/vimer/default.nix b/pkgs/tools/misc/vimer/default.nix
index bbab2d64bb008..684ecfc5fe387 100644
--- a/pkgs/tools/misc/vimer/default.nix
+++ b/pkgs/tools/misc/vimer/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.all;
+    mainProgram = "vimer";
   };
 
 }
diff --git a/pkgs/tools/misc/vimv-rs/default.nix b/pkgs/tools/misc/vimv-rs/default.nix
index 0fbcbcf7a0d8a..2b419e5403c0c 100644
--- a/pkgs/tools/misc/vimv-rs/default.nix
+++ b/pkgs/tools/misc/vimv-rs/default.nix
@@ -2,15 +2,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vimv-rs";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchCrate {
     inherit version;
     crateName = "vimv";
-    hash = "sha256-DpdozP/xaMoRAl8YMj5BmhNedGFhVzscM/eFOcVt+Lk=";
+    hash = "sha256-jbRsgEsRYF5hlvo0jEB4jhy5jzCAXNzOsNWWyh4XULQ=";
   };
 
-  cargoHash = "sha256-zKJ8A36/ibAiznm3bK2JSHVRItIAqQ4YFDxvjcZLn3g=";
+  cargoHash = "sha256-rYQxIttuGBGEkYkFtSBl8ce1I/Akm6FxeITJcaIeP6M=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Foundation ];
 
diff --git a/pkgs/tools/misc/vimwiki-markdown/default.nix b/pkgs/tools/misc/vimwiki-markdown/default.nix
index 3375b86df0fc9..b285d18a90ede 100644
--- a/pkgs/tools/misc/vimwiki-markdown/default.nix
+++ b/pkgs/tools/misc/vimwiki-markdown/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonApplication rec {
-  version = "0.4.0";
+  version = "0.4.1";
   pname = "vimwiki-markdown";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "e898c58fa6ecbb7474738d79c44db2b6ab3adfa958bffe80089194c2a70b1ec0";
+    sha256 = "sha256-hJl0OTE6kHucVGOxgOZBG0noYRfxma3yZSrUWEssLN4=";
   };
 
   propagatedBuildInputs= [
@@ -24,5 +24,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/WnP/vimwiki_markdown";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
+    mainProgram = "vimwiki_markdown";
   };
 }
diff --git a/pkgs/tools/misc/vivid/default.nix b/pkgs/tools/misc/vivid/default.nix
index 01c432cd6a250..3115735ed9be8 100644
--- a/pkgs/tools/misc/vivid/default.nix
+++ b/pkgs/tools/misc/vivid/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.dtzWill ];
     platforms = platforms.unix;
+    mainProgram = "vivid";
   };
 }
diff --git a/pkgs/tools/misc/vix/default.nix b/pkgs/tools/misc/vix/default.nix
index cf060218889a7..9e759536d74ce 100644
--- a/pkgs/tools/misc/vix/default.nix
+++ b/pkgs/tools/misc/vix/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     homepage = "http://actinid.org/vix/";
     license = licenses.gpl3;
     maintainers = [ maintainers.ehmry ];
+    mainProgram = "vix";
   };
 }
diff --git a/pkgs/tools/misc/vmtouch/default.nix b/pkgs/tools/misc/vmtouch/default.nix
index 276389205f053..120012019a72a 100644
--- a/pkgs/tools/misc/vmtouch/default.nix
+++ b/pkgs/tools/misc/vmtouch/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.garrison ];
     platforms = lib.platforms.all;
+    mainProgram = "vmtouch";
   };
 }
diff --git a/pkgs/tools/misc/void/default.nix b/pkgs/tools/misc/void/default.nix
index 7057fed8ca13e..1204206d34b6a 100644
--- a/pkgs/tools/misc/void/default.nix
+++ b/pkgs/tools/misc/void/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/spacejam/void";
     license = licenses.gpl3;
     maintainers = with maintainers; [ spacekookie ];
+    mainProgram = "void";
   };
 }
diff --git a/pkgs/tools/misc/vorbisgain/default.nix b/pkgs/tools/misc/vorbisgain/default.nix
index b0b4e5e34e12e..e5a85049df0af 100644
--- a/pkgs/tools/misc/vorbisgain/default.nix
+++ b/pkgs/tools/misc/vorbisgain/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "vorbisgain";
   };
 }
diff --git a/pkgs/tools/misc/vrc-get/default.nix b/pkgs/tools/misc/vrc-get/default.nix
index c0099d822e401..e89d4d4758341 100644
--- a/pkgs/tools/misc/vrc-get/default.nix
+++ b/pkgs/tools/misc/vrc-get/default.nix
@@ -1,30 +1,30 @@
-{ fetchFromGitHub, lib, rustPlatform, pkg-config, openssl, stdenv, Security }:
+{ fetchFromGitHub, lib, rustPlatform, pkg-config, openssl, stdenv, Security, SystemConfiguration }:
 
 rustPlatform.buildRustPackage rec {
   pname = "vrc-get";
-  version = "1.1.3";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "anatawa12";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-CJBwW2QsLNLyNubawBPD+Cy74JrrdSUHe7JBSdbMnjY=";
-    fetchSubmodules = true;
+    hash = "sha256-DTiYyTZKYNprQSsAjHmpGdnS6dkXa3hSRGmIiLT/xr8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
   # Make openssl-sys use pkg-config.
   OPENSSL_NO_VENDOR = 1;
 
-  cargoHash = "sha256-PnNo+MmBo/Ke7pL6KwRKXz3gycJmbYefTRMWOvlCQaQ=";
+  cargoHash = "sha256-4bhle98/zfw1uGNx+m1/4H9n63DnIezg/ZdV+zj0JNA=";
 
   meta = with lib; {
     description = "Command line client of VRChat Package Manager, the main feature of VRChat Creator Companion (VCC)";
     homepage = "https://github.com/anatawa12/vrc-get";
     license = licenses.mit;
     maintainers = with maintainers; [ bddvlpr ];
+    mainProgram = "vrc-get";
   };
 }
diff --git a/pkgs/tools/misc/vsh/default.nix b/pkgs/tools/misc/vsh/default.nix
index cfe014d3f9aa5..c061a14f2e30c 100644
--- a/pkgs/tools/misc/vsh/default.nix
+++ b/pkgs/tools/misc/vsh/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/fishi0x01/vsh";
     license = licenses.mit;
     maintainers = with maintainers; [ fishi0x01 ];
+    mainProgram = "vsh";
   };
 }
diff --git a/pkgs/tools/misc/vtm/default.nix b/pkgs/tools/misc/vtm/default.nix
index bd4941afe5bf1..7a5bdf2bdb4e2 100644
--- a/pkgs/tools/misc/vtm/default.nix
+++ b/pkgs/tools/misc/vtm/default.nix
@@ -4,26 +4,29 @@
 , cmake
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "vtm";
-  version = "0.9.9u";
+  version = "0.9.57";
 
   src = fetchFromGitHub {
     owner = "netxs-group";
     repo = "vtm";
-    rev = "v${version}";
-    sha256 = "sha256-ySelsabe5J3Wne8L/F01R/CMPibUR18ZKWH2s25t+KY=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-QdlEi8L9WwzPJK4mE+5Z7BDYKsT4QMtAjaui0LWH4q4=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+  ];
 
   cmakeFlags = [ "../src" ];
 
-  meta = with lib; {
+  meta = {
     description = "Terminal multiplexer with window manager and session sharing";
     homepage = "https://vtm.netxs.online/";
-    license = licenses.mit;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ ahuzik ];
+    license = lib.licenses.mit;
+    mainProgram = "vtm";
+    maintainers = with lib.maintainers; [ ahuzik ];
+    platforms = lib.platforms.all;
   };
-}
+})
diff --git a/pkgs/tools/misc/vttest/default.nix b/pkgs/tools/misc/vttest/default.nix
index 96915f5c9fdf5..962322ba3437c 100644
--- a/pkgs/tools/misc/vttest/default.nix
+++ b/pkgs/tools/misc/vttest/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vttest";
-  version = "20230201";
+  version = "20231230";
 
   src = fetchurl {
     urls = [
       "https://invisible-mirror.net/archives/${pname}/${pname}-${version}.tgz"
       "ftp://ftp.invisible-island.net/${pname}/${pname}-${version}.tgz"
     ];
-    sha256 = "sha256-J/QwB5Hny8+dFfiEIfmONdOu5mMRNoQwYk4sGlqL5oM=";
+    sha256 = "sha256-SuYjx3t5fn+UlGlI0LJ+RqtOAdhD9iYIAMVzkKoEy/U=";
   };
 
   meta = with lib; {
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "https://invisible-island.net/vttest/";
     license = licenses.mit;
     platforms = platforms.all;
+    mainProgram = "vttest";
   };
 }
 
diff --git a/pkgs/tools/misc/wagyu/default.nix b/pkgs/tools/misc/wagyu/default.nix
index dfcefa56b6ff5..39e1085d4c965 100644
--- a/pkgs/tools/misc/wagyu/default.nix
+++ b/pkgs/tools/misc/wagyu/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/AleoHQ/wagyu";
     license = with licenses; [ mit asl20 ];
     maintainers = [ maintainers.offline ];
+    mainProgram = "wagyu";
   };
 }
diff --git a/pkgs/tools/misc/wakapi/default.nix b/pkgs/tools/misc/wakapi/default.nix
index 5a68dd7a79554..2488335fb56c3 100644
--- a/pkgs/tools/misc/wakapi/default.nix
+++ b/pkgs/tools/misc/wakapi/default.nix
@@ -2,20 +2,23 @@
 
 buildGoModule rec {
   pname = "wakapi";
-  version = "2.8.2";
+  version = "2.10.4";
 
   src = fetchFromGitHub {
     owner = "muety";
     repo = pname;
     rev = version;
-    sha256 = "sha256-r6CTWBsaaYzQE9pe3rj/BQudloKGlkf310r39Y0kYuM=";
+    sha256 = "sha256-xUFYwV9fuTMDEqp4FEyPRDQCB6I/3sqcmEX8pm6BDfw=";
   };
 
-  vendorHash = "sha256-uVdjMgQ1zWFKNwTKIHd7O47oekE9tLBh8LgFgI1SATM=";
+  vendorHash = "sha256-TeKVhG1V9inyDWfILwtpU9QknJ9bt3Dja5GVHrK9PkA=";
 
   # Not a go module required by the project, contains development utilities
   excludedPackages = [ "scripts" ];
 
+  # Fix up reported version
+  postPatch = ''echo ${version} > version.txt'';
+
   ldflags = [
     "-s"
     "-w"
@@ -27,5 +30,6 @@ buildGoModule rec {
     description = "A minimalist self-hosted WakaTime-compatible backend for coding statistics";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ t4ccer ];
+    mainProgram = "wakapi";
   };
 }
diff --git a/pkgs/tools/misc/wasm-tools/default.nix b/pkgs/tools/misc/wasm-tools/default.nix
index 3a878ba87f3c9..1906fb318efec 100644
--- a/pkgs/tools/misc/wasm-tools/default.nix
+++ b/pkgs/tools/misc/wasm-tools/default.nix
@@ -5,17 +5,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-tools";
-  version = "1.0.45";
+  version = "1.0.57";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-8iIYExnWK9W9gVTV66ygY2gu3N1pwylUeOf6LOz51qA=";
+    hash = "sha256-3syV4zPoSJtMiogmRu90pYTwNw2T/dRKFWczYI2J1r0=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-KwtlgBcijeYRQ5Yfrqd6GirHkbZqAVd2/yP6aJT3pWM=";
+  # Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
+  auditable = false;
+  cargoHash = "sha256-w1BVh7/L4+CXTgjkQKzbzgqw3XE49hYrkWtaNmcfDi4=";
   cargoBuildFlags = [ "--package" "wasm-tools" ];
   cargoTestFlags = [ "--all" ];
 
@@ -24,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bytecodealliance/wasm-tools";
     license = licenses.asl20;
     maintainers = with maintainers; [ ereslibre ];
+    mainProgram = "wasm-tools";
   };
 }
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
index a4d87973a2428..cf21202dc810c 100644
--- a/pkgs/tools/misc/watchexec/default.nix
+++ b/pkgs/tools/misc/watchexec/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "watchexec";
-  version = "1.22.2";
+  version = "1.25.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dO1vIzjsBrrMQ0H3Yv4X5rYPlCrWSlPbFmyooaODPeo=";
+    hash = "sha256-0zBY0PS7qJCAabg9ZKX1JC+gaTM/WSs2U6Avcq3MHmQ=";
   };
 
-  cargoHash = "sha256-6bLY9m6g7hSlYI3KrLS3fN4ATRkkbtq3Wf5xqS1G30s=";
+  cargoHash = "sha256-RSJOGiSziI2OJkRJAxPZ57uyPPjd3uExijHdIy52dr4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://watchexec.github.io/";
     license = with licenses; [ asl20 ];
     maintainers = [ maintainers.michalrus ];
+    mainProgram = "watchexec";
   };
 }
diff --git a/pkgs/tools/misc/wayback-machine-archiver/default.nix b/pkgs/tools/misc/wayback-machine-archiver/default.nix
index 71c0b63ad8e9e..c3ebc937eb353 100644
--- a/pkgs/tools/misc/wayback-machine-archiver/default.nix
+++ b/pkgs/tools/misc/wayback-machine-archiver/default.nix
@@ -27,5 +27,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/agude/wayback-machine-archiver";
     license = licenses.mit;
     maintainers = with maintainers; [ dandellion ];
+    mainProgram = "archiver";
   };
 }
diff --git a/pkgs/tools/misc/waylevel/default.nix b/pkgs/tools/misc/waylevel/default.nix
index 78ebcf6c5a6e8..b3b1ddfeeebfd 100644
--- a/pkgs/tools/misc/waylevel/default.nix
+++ b/pkgs/tools/misc/waylevel/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "waylevel";
   };
 }
diff --git a/pkgs/tools/misc/webcat/default.nix b/pkgs/tools/misc/webcat/default.nix
index 52b9e78bccaaa..7c8c56dc86c16 100644
--- a/pkgs/tools/misc/webcat/default.nix
+++ b/pkgs/tools/misc/webcat/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     description = "The lightweight swiss army knife for websockets";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ montag451 ];
+    mainProgram = "webcat";
   };
 }
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index cfc225ea75f84..baef5b2645023 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/vi/websocat/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice Br1ght0ne ];
+    mainProgram = "websocat";
   };
 }
diff --git a/pkgs/tools/misc/wemux/default.nix b/pkgs/tools/misc/wemux/default.nix
index 0eee60187f20a..99adf8bb0823d 100644
--- a/pkgs/tools/misc/wemux/default.nix
+++ b/pkgs/tools/misc/wemux/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ bsima ];
+    mainProgram = "wemux";
   };
 }
diff --git a/pkgs/tools/misc/whatsapp-chat-exporter/default.nix b/pkgs/tools/misc/whatsapp-chat-exporter/default.nix
index e6d2f7af0b7ba..9b2281d07a6f4 100644
--- a/pkgs/tools/misc/whatsapp-chat-exporter/default.nix
+++ b/pkgs/tools/misc/whatsapp-chat-exporter/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "whatsapp-chat-exporter";
-  version = "0.9.1";
+  version = "0.9.7";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "KnugiHK";
     repo = "Whatsapp-Chat-Exporter";
     rev = "refs/tags/${version}";
-    hash = "sha256-DvCYMfR9GgdP9rVpcoIR5nG9b4ToOBMG1a9OTvjfIiU=";
+    hash = "sha256-ySKZM7zmPKb+AHAK7IDpn07qinwz0YY8btb4KWGfy7w=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/misc/wimboot/default.nix b/pkgs/tools/misc/wimboot/default.nix
index 3c686c3093748..e8d8098ad95c6 100644
--- a/pkgs/tools/misc/wimboot/default.nix
+++ b/pkgs/tools/misc/wimboot/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     homepage = "https://ipxe.org/wimboot";
     description = "Windows Imaging Format bootloader";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ das_j ajs124 ];
+    maintainers = teams.helsinki-systems.members;
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/tools/misc/wit-bindgen/default.nix b/pkgs/tools/misc/wit-bindgen/default.nix
index db2d5c1470fb7..17cb5ce9ed241 100644
--- a/pkgs/tools/misc/wit-bindgen/default.nix
+++ b/pkgs/tools/misc/wit-bindgen/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wit-bindgen";
-  version = "0.9.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "wit-bindgen";
     rev = "wit-bindgen-cli-${version}";
-    hash = "sha256-ghWwFjpIOTM6//WQ8WySLzKzy2UlaahUjIxxwYUTQWo=";
+    hash = "sha256-QqLTXvzBobDsdwo30yUFK2bHedawiYPni2zhKk6I7j8=";
   };
 
-  cargoHash = "sha256-Ch/S0/ON2HVEGHJ7jDE9k5q9+/2ANtt8uGv3ze60I6M=";
+  cargoHash = "sha256-R2F/6f9BRN9omLFBQbP5Vi3szWifEyLMHMILFzLN0cU=";
 
   # Some tests fail because they need network access to install the `wasm32-unknown-unknown` target.
   # However, GitHub Actions ensures a proper build.
diff --git a/pkgs/tools/misc/wlc/default.nix b/pkgs/tools/misc/wlc/default.nix
index 73ae91c2e9855..3b52d7eb284d6 100644
--- a/pkgs/tools/misc/wlc/default.nix
+++ b/pkgs/tools/misc/wlc/default.nix
@@ -28,9 +28,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "wlc is a Weblate commandline client using Weblate's REST API.";
+    description = "A Weblate commandline client using Weblate's REST API";
     homepage = "https://github.com/WeblateOrg/wlc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ paperdigits ];
+    mainProgram = "wlc";
   };
 }
diff --git a/pkgs/tools/misc/woeusb-ng/default.nix b/pkgs/tools/misc/woeusb-ng/default.nix
index f8078c525541f..821eb73a4a896 100644
--- a/pkgs/tools/misc/woeusb-ng/default.nix
+++ b/pkgs/tools/misc/woeusb-ng/default.nix
@@ -35,7 +35,7 @@ buildPythonApplication rec {
     parted
     grub2
     termcolor
-    wxPython_4_2
+    wxpython
     six
   ];
 
diff --git a/pkgs/tools/misc/woeusb/default.nix b/pkgs/tools/misc/woeusb/default.nix
index a1d371eafd499..9add255896f75 100644
--- a/pkgs/tools/misc/woeusb/default.nix
+++ b/pkgs/tools/misc/woeusb/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.linux;
+    mainProgram = "woeusb";
   };
 }
diff --git a/pkgs/tools/misc/woof/default.nix b/pkgs/tools/misc/woof/default.nix
index c958d9f65a678..b73ad5615dd09 100644
--- a/pkgs/tools/misc/woof/default.nix
+++ b/pkgs/tools/misc/woof/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "woof";
   };
 }
diff --git a/pkgs/tools/misc/wootility/default.nix b/pkgs/tools/misc/wootility/default.nix
index ddb3c770e6413..a4f3cb2f92d85 100644
--- a/pkgs/tools/misc/wootility/default.nix
+++ b/pkgs/tools/misc/wootility/default.nix
@@ -34,5 +34,6 @@ appimageTools.wrapType2 rec {
     platforms = [ "x86_64-linux" ];
     license = "unknown";
     maintainers = with maintainers; [ davidtwco ];
+    mainProgram = "wootility";
   };
 }
diff --git a/pkgs/tools/misc/wsl-open/default.nix b/pkgs/tools/misc/wsl-open/default.nix
index e89ef91b4f9ef..e4698ccbabd04 100644
--- a/pkgs/tools/misc/wsl-open/default.nix
+++ b/pkgs/tools/misc/wsl-open/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "wsl-open";
   };
 }
diff --git a/pkgs/tools/misc/wwcd/default.nix b/pkgs/tools/misc/wwcd/default.nix
index 41c66d945f40a..0e83ada195b0b 100644
--- a/pkgs/tools/misc/wwcd/default.nix
+++ b/pkgs/tools/misc/wwcd/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://git.sr.ht/~bitfehler/wwcd";
     license = licenses.mit;
     maintainers = with maintainers; [ laalsaas ];
+    mainProgram = "wwcd";
   };
 }
diff --git a/pkgs/tools/misc/wyrd/default.nix b/pkgs/tools/misc/wyrd/default.nix
index df8b4933aa696..4010a0b42d0fd 100644
--- a/pkgs/tools/misc/wyrd/default.nix
+++ b/pkgs/tools/misc/wyrd/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.prikhi ];
     platforms = platforms.linux;
+    mainProgram = "wyrd";
   };
 }
diff --git a/pkgs/tools/misc/x11idle/default.nix b/pkgs/tools/misc/x11idle/default.nix
index ee64f69897d2f..e349b54eecae5 100644
--- a/pkgs/tools/misc/x11idle/default.nix
+++ b/pkgs/tools/misc/x11idle/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.swflint ];
+    mainProgram = "x11idle";
   };
 }
diff --git a/pkgs/tools/misc/xcd/default.nix b/pkgs/tools/misc/xcd/default.nix
index 7e34021041923..350da6c93925b 100644
--- a/pkgs/tools/misc/xcd/default.nix
+++ b/pkgs/tools/misc/xcd/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.xfnw ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "xcd";
   };
 }
diff --git a/pkgs/tools/misc/xcp/default.nix b/pkgs/tools/misc/xcp/default.nix
index 9b06c11890dc7..b1c11c4465e99 100644
--- a/pkgs/tools/misc/xcp/default.nix
+++ b/pkgs/tools/misc/xcp/default.nix
@@ -2,24 +2,25 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xcp";
-  version = "0.12.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "tarka";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QCoH8N6HDpXQXWchccGIG/pbDx9qZ8YKM6VP6lxoYzU=";
+    sha256 = "sha256-uZnKrWD3a3TpdKplLxzCKacfpuoo3vrCZmFsePIxR18=";
   };
 
   # no such file or directory errors
   doCheck = false;
 
-  cargoHash = "sha256-F51BHBUaQx1xg0Y2eVnXGRCMykbzk3q5IyJ528JyA5o=";
+  cargoHash = "sha256-QaLNc05fI6V/5hbSfOL+uKnjkyxDclAmULx45z9gigs=";
 
   meta = with lib; {
     description = "An extended cp(1)";
     homepage = "https://github.com/tarka/xcp";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lom ];
+    mainProgram = "xcp";
   };
 }
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
index 73e648cf83c55..7201ffcbbe998 100644
--- a/pkgs/tools/misc/xdaliclock/default.nix
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux ++ freebsd;
     license = licenses.free; #TODO BSD on Gentoo, looks like MIT
     downloadPage = "http://www.jwz.org/xdaliclock/";
+    mainProgram = "xdaliclock";
   };
 }
diff --git a/pkgs/tools/misc/xdg-ninja/default.nix b/pkgs/tools/misc/xdg-ninja/default.nix
index e0c59260a454c..351a7c0e8c0cb 100644
--- a/pkgs/tools/misc/xdg-ninja/default.nix
+++ b/pkgs/tools/misc/xdg-ninja/default.nix
@@ -31,6 +31,7 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/b3nj5m1n/xdg-ninja";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ patricksjackson ];
+    maintainers = with maintainers; [ arcuru ];
+    mainProgram = "xdg-ninja";
   };
 }
diff --git a/pkgs/tools/misc/xdiskusage/default.nix b/pkgs/tools/misc/xdiskusage/default.nix
index 28620f3bf6eff..9db3563ca247b 100644
--- a/pkgs/tools/misc/xdiskusage/default.nix
+++ b/pkgs/tools/misc/xdiskusage/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = with lib.licenses; [ gpl2Plus ];
     maintainers = with lib.maintainers; [ fuzzdk ];
     platforms = with lib.platforms; linux;
+    mainProgram = "xdiskusage";
   };
 })
diff --git a/pkgs/tools/misc/xdo/default.nix b/pkgs/tools/misc/xdo/default.nix
index 31df9552accd8..268dfcd66e041 100644
--- a/pkgs/tools/misc/xdo/default.nix
+++ b/pkgs/tools/misc/xdo/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
      maintainers = with maintainers; [ meisternu ];
      license = licenses.bsd2;
      platforms = platforms.linux;
+     mainProgram = "xdo";
    };
 }
diff --git a/pkgs/tools/misc/xdxf2slob/default.nix b/pkgs/tools/misc/xdxf2slob/default.nix
index a24f9196efb9d..e23d68f8fccb6 100644
--- a/pkgs/tools/misc/xdxf2slob/default.nix
+++ b/pkgs/tools/misc/xdxf2slob/default.nix
@@ -18,5 +18,6 @@ python3Packages.buildPythonApplication {
     homepage = "https://github.com/itkach/xdxf2slob/";
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "xdxf2slob";
   };
 }
diff --git a/pkgs/tools/misc/xflux/default.nix b/pkgs/tools/misc/xflux/default.nix
index 55a72dc4a7345..5cfda2df174f3 100644
--- a/pkgs/tools/misc/xflux/default.nix
+++ b/pkgs/tools/misc/xflux/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = lib.licenses.unfree;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.paholg ];
+    mainProgram = "xflux";
   };
 }
diff --git a/pkgs/tools/misc/xfstests/default.nix b/pkgs/tools/misc/xfstests/default.nix
index e06aa0cc57259..5080c85924920 100644
--- a/pkgs/tools/misc/xfstests/default.nix
+++ b/pkgs/tools/misc/xfstests/default.nix
@@ -1,5 +1,5 @@
 { stdenv, acl, attr, autoconf, automake, bash, bc, coreutils, e2fsprogs
-, fetchgit, fio, gawk, keyutils, killall, lib, libaio, libcap, libtool
+, fetchzip, fio, gawk, keyutils, killall, lib, libaio, libcap, libtool
 , libuuid, libxfs, lvm2, openssl, perl, procps, quota
 , time, util-linux, which, writeScript, xfsprogs, runtimeShell }:
 
@@ -7,10 +7,9 @@ stdenv.mkDerivation rec {
   pname = "xfstests";
   version = "2023.05.14";
 
-  src = fetchgit {
-    url = "https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git";
-    rev = "v${version}";
-    sha256 = "sha256-yyjY9Q3eUH+q+o15zFUjOcNz1HpXPCwdcxWXoycOx98=";
+  src = fetchzip {
+    url = "https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/snapshot/xfstests-dev-v${version}.tar.gz";
+    hash = "sha256-yyjY9Q3eUH+q+o15zFUjOcNz1HpXPCwdcxWXoycOx98=";
   };
 
   nativeBuildInputs = [
@@ -107,5 +106,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "xfstests-check";
   };
 }
diff --git a/pkgs/tools/misc/xiccd/default.nix b/pkgs/tools/misc/xiccd/default.nix
index 7569045fa4f1d..4ffb5b689e3ba 100644
--- a/pkgs/tools/misc/xiccd/default.nix
+++ b/pkgs/tools/misc/xiccd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
+    mainProgram = "xiccd";
   };
 }
diff --git a/pkgs/tools/misc/xilinx-bootgen/default.nix b/pkgs/tools/misc/xilinx-bootgen/default.nix
index f6619e025d3e7..1eece16d35111 100644
--- a/pkgs/tools/misc/xilinx-bootgen/default.nix
+++ b/pkgs/tools/misc/xilinx-bootgen/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xilinx-bootgen";
-  version = "xilinx_v2023.1";
+  version = "xilinx_v2023.2";
 
   src = fetchFromGitHub {
     owner = "xilinx";
     repo = "bootgen";
     rev = version;
-    sha256 = "sha256-pEkpZachZX2tOhH2Odb2fZWqJehLILE/0Z500xRuRzU=";
+    hash = "sha256-YRaq36N6uBHyjuHQ5hCO35Y+y818NuSjg/js181iItA=";
   };
 
   buildInputs = [ openssl ];
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = [ maintainers.flokli ];
+    mainProgram = "bootgen";
   };
 }
diff --git a/pkgs/tools/misc/xjobs/default.nix b/pkgs/tools/misc/xjobs/default.nix
index 5edb365a33279..9dfa605fbc474 100644
--- a/pkgs/tools/misc/xjobs/default.nix
+++ b/pkgs/tools/misc/xjobs/default.nix
@@ -61,5 +61,6 @@ stdenv.mkDerivation rec {
       It works similar to xargs, but starts several processes simultaneously
       and gives only one line of arguments to each utility call.
     '';
+    mainProgram = "xjobs";
   };
 }
diff --git a/pkgs/tools/misc/xmonad-log/default.nix b/pkgs/tools/misc/xmonad-log/default.nix
index acd4a9e1d46de..9ba7941b45f79 100644
--- a/pkgs/tools/misc/xmonad-log/default.nix
+++ b/pkgs/tools/misc/xmonad-log/default.nix
@@ -21,5 +21,6 @@ buildGoPackage rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ joko ];
+    mainProgram = "xmonad-log";
   };
 }
diff --git a/pkgs/tools/misc/xq/default.nix b/pkgs/tools/misc/xq/default.nix
index c02321a6a7c39..deddb3306440a 100644
--- a/pkgs/tools/misc/xq/default.nix
+++ b/pkgs/tools/misc/xq/default.nix
@@ -5,19 +5,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xq";
-  version = "0.2.44";
+  version = "0.3.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-szrt5msjAfiWFMBHVXxqXmLCpvKre8WM/zqCOHwBEP0=";
+    sha256 = "sha256-mgvs3/gseLnFtAciW5txtYqo+8DyyQC7y/tN1kDqcb4=";
   };
 
-  cargoHash = "sha256-T8H9Xnvfewf6B60AzBDn3gEps/0/dXiVl2g+eTw+OaQ=";
+  cargoHash = "sha256-lSyJqGWlk3ldgAkyebuyUDLp8mJdwnw8ee6ZHQXU2Y4=";
 
   meta = with lib; {
     description = "Pure rust implementation of jq";
     homepage = "https://github.com/MiSawa/xq";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "xq";
   };
 }
diff --git a/pkgs/tools/misc/xstow/default.nix b/pkgs/tools/misc/xstow/default.nix
index 694634cf0bfe3..e40cffb516599 100644
--- a/pkgs/tools/misc/xstow/default.nix
+++ b/pkgs/tools/misc/xstow/default.nix
@@ -1,11 +1,20 @@
-{ stdenv, lib, fetchurl, ncurses, autoreconfHook }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, ncurses
+, autoreconfHook
+}:
+
 stdenv.mkDerivation rec {
   pname = "xstow";
-  version = "1.1.0";
+  version = "1.1.1";
 
-  src = fetchurl {
-    url = "http://downloads.sourceforge.net/sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-wXQ5XSmogAt1torfarrqIU4nBYj69MGM/HBYqeIE+dw=";
+  src = fetchFromGitHub {
+    owner = "majorkingleo";
+    repo = "xstow";
+    rev = version;
+    fetchSubmodules = true;
+    hash = "sha256-c89+thw5N3Cgl1Ww+W7c3YsyhNJMLlreedvdWJFY3WY=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -23,9 +32,8 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "A replacement of GNU Stow written in C++";
-    homepage = "https://xstow.sourceforge.net";
+    homepage = "https://github.com/majorkingleo/xstow";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ nzbr ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/xtitle/default.nix b/pkgs/tools/misc/xtitle/default.nix
index e3454538bf84e..94e650144956a 100644
--- a/pkgs/tools/misc/xtitle/default.nix
+++ b/pkgs/tools/misc/xtitle/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ meisternu ];
     license = "Custom";
     platforms = platforms.linux;
+    mainProgram = "xtitle";
   };
 }
diff --git a/pkgs/tools/misc/xvfb-run/default.nix b/pkgs/tools/misc/xvfb-run/default.nix
index fc87723208ede..eb1e7c5b01b79 100644
--- a/pkgs/tools/misc/xvfb-run/default.nix
+++ b/pkgs/tools/misc/xvfb-run/default.nix
@@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation rec {
     chmod a+x $out/bin/xvfb-run
     patchShebangs $out/bin/xvfb-run
     wrapProgram $out/bin/xvfb-run \
-      --set FONTCONFIG_FILE "${fontsConf}" \
+      --set-default FONTCONFIG_FILE "${fontsConf}" \
       --prefix PATH : ${lib.makeBinPath [ getopt xorgserver xauth which util-linux gawk coreutils ]}
   '';
 
diff --git a/pkgs/tools/misc/xxv/default.nix b/pkgs/tools/misc/xxv/default.nix
index e5852e5f51b01..0068de3c92459 100644
--- a/pkgs/tools/misc/xxv/default.nix
+++ b/pkgs/tools/misc/xxv/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://chrisvest.github.io/xxv/";
     license     = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ lilyball ];
+    mainProgram = "xxv";
   };
 }
diff --git a/pkgs/tools/misc/yafetch/default.nix b/pkgs/tools/misc/yafetch/default.nix
index 4ebaea963c29e..49611df587af9 100644
--- a/pkgs/tools/misc/yafetch/default.nix
+++ b/pkgs/tools/misc/yafetch/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ivar ashley ];
     platforms = platforms.linux;
+    mainProgram = "yafetch";
   };
 }
diff --git a/pkgs/tools/misc/yai/default.nix b/pkgs/tools/misc/yai/default.nix
index 916328cdcde62..958b88bc22976 100644
--- a/pkgs/tools/misc/yai/default.nix
+++ b/pkgs/tools/misc/yai/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ georgesalkhouri ];
+    mainProgram = "yai";
   };
 }
diff --git a/pkgs/tools/misc/yajsv/default.nix b/pkgs/tools/misc/yajsv/default.nix
index aaeba02ae35e5..d6293c74399d2 100644
--- a/pkgs/tools/misc/yajsv/default.nix
+++ b/pkgs/tools/misc/yajsv/default.nix
@@ -29,5 +29,6 @@ buildGoModule {
     homepage = "https://github.com/neilpa/yajsv";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ rycee ];
+    mainProgram = "yajsv";
   };
 }
diff --git a/pkgs/tools/misc/yank/default.nix b/pkgs/tools/misc/yank/default.nix
index 9579b3fa3f50b..50d883759130f 100644
--- a/pkgs/tools/misc/yank/default.nix
+++ b/pkgs/tools/misc/yank/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.dochang ];
     platforms = platforms.unix;
+    mainProgram = "yank";
   };
 
 }
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index 8db40b7c0b2e0..75855109e2006 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -33,5 +33,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg ];
     platforms = platforms.unix;
+    mainProgram = "yle-dl";
   };
 }
diff --git a/pkgs/tools/misc/you-get/default.nix b/pkgs/tools/misc/you-get/default.nix
index 3bccdf28df3cd..225c37e4ba464 100644
--- a/pkgs/tools/misc/you-get/default.nix
+++ b/pkgs/tools/misc/you-get/default.nix
@@ -48,5 +48,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/soimort/you-get/raw/v${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ ryneeverett ];
+    mainProgram = "you-get";
   };
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 4aee6bdeb5f51..77a6eceb8a2fa 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -91,5 +91,6 @@ buildPythonPackage rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ bluescreen303 fpletz ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "youtube-dl";
   };
 }
diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix
index 00fee804206cf..eeb05dd4012eb 100644
--- a/pkgs/tools/misc/yt-dlp/default.nix
+++ b/pkgs/tools/misc/yt-dlp/default.nix
@@ -22,11 +22,11 @@ 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 = "2023.10.7";
+  version = "2023.12.30";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/IZlepskDPZf7z/2J+Sg3jNeclk2/nDUQCxx3ZdFLzY=";
+    hash = "sha256-oRhi5XchsKDwiD3+taTXm6ITotTEXhiA6f1w+OZXDDg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/misc/ytarchive/default.nix b/pkgs/tools/misc/ytarchive/default.nix
index 67698c4fdc6bb..d2c836402e50c 100644
--- a/pkgs/tools/misc/ytarchive/default.nix
+++ b/pkgs/tools/misc/ytarchive/default.nix
@@ -1,14 +1,14 @@
-{ lib, buildGoModule, fetchFromGitHub, makeBinaryWrapper, ffmpeg }:
+{ lib, buildGoModule, fetchFromGitHub, makeBinaryWrapper, ffmpeg-headless }:
 
 buildGoModule rec {
   pname = "ytarchive";
-  version = "unstable-2023-02-21";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "Kethsar";
     repo = "ytarchive";
-    rev = "90aaf17b5e86eec52a95752e3c2dba4f54ee1068";
-    hash = "sha256-JRjQRbMqtd04/aO6NkInoDqfOrHnDrXj4C4/URiU6yo=";
+    rev = "v${version}";
+    hash = "sha256-mQgpwuTIEHeDv/PzBHpK1sraxFj8Ef3y8vN5bLw5E94=";
   };
 
   vendorHash = "sha256-sjwQ/zEYJRkeWUDB7TzV8z+kET8lVRnQkXYbZbcUeHY=";
@@ -18,7 +18,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.Commit=-${src.rev}" ];
 
   postInstall = ''
-    wrapProgram $out/bin/ytarchive --prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
+    wrapProgram $out/bin/ytarchive --prefix PATH : ${lib.makeBinPath [ ffmpeg-headless ]}
   '';
 
   meta = with lib; {
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "Garbage Youtube livestream downloader";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "ytarchive";
   };
 }
diff --git a/pkgs/tools/misc/ytcast/default.nix b/pkgs/tools/misc/ytcast/default.nix
index 163329a60da17..798508f2451e5 100644
--- a/pkgs/tools/misc/ytcast/default.nix
+++ b/pkgs/tools/misc/ytcast/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ytcast";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "MarcoLucidi01";
     repo = "ytcast";
     rev = "v${version}";
-    sha256 = "0f45ai1s4njhcvbv088yn10i3vdvlm6wlfi0ijq5gak1dg02klma";
+    sha256 = "sha256-iy9+MgXwP4ALz4NHJyn2ghC5boR53H3ioB2+7tcJunE=";
   };
 
   vendorHash = null;
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/MarcoLucidi01/ytcast";
     license = licenses.mit;
     maintainers = with maintainers; [ waelwindows ];
+    mainProgram = "ytcast";
   };
 }
diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix
index 92b9864c35896..905c7776f1c27 100644
--- a/pkgs/tools/misc/ytfzf/default.nix
+++ b/pkgs/tools/misc/ytfzf/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "ytfzf";
   };
 }
diff --git a/pkgs/tools/misc/ytmdl/default.nix b/pkgs/tools/misc/ytmdl/default.nix
index 9e20b1480e18a..9baf2888d78b4 100644
--- a/pkgs/tools/misc/ytmdl/default.nix
+++ b/pkgs/tools/misc/ytmdl/default.nix
@@ -7,12 +7,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ytmdl";
-  version = "2023.07.27";
+  version = "2023.11.26";
 
   src = fetchPypi {
     inherit pname;
     version = builtins.replaceStrings [ ".0" ] [ "." ] version;
-    sha256 = "sha256-sBRzbUR+zqS8Zzg/uU4bjJUr/n1/tb0K6u/FVTEIRsk=";
+    sha256 = "sha256-Im3rQAs/TYookv6FeGpU6tJxUGBMb6/UW1ZMDg9FW4s=";
   };
 
   postPatch = ''
@@ -54,5 +54,6 @@ python3Packages.buildPythonApplication rec {
     description = "YouTube Music Downloader";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
+    mainProgram = "ytmdl";
   };
 }
diff --git a/pkgs/tools/misc/yubico-piv-tool/default.nix b/pkgs/tools/misc/yubico-piv-tool/default.nix
index a8a7dfd3ee687..002dbed4fcd68 100644
--- a/pkgs/tools/misc/yubico-piv-tool/default.nix
+++ b/pkgs/tools/misc/yubico-piv-tool/default.nix
@@ -1,38 +1,53 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
 , pkg-config
 , openssl
 , check
 , pcsclite
 , PCSC
 , gengetopt
+, help2man
 , cmake
+, zlib
 , withApplePCSC ? stdenv.isDarwin
-, gitUpdater
+, nix-update-script
 , testers
-, yubico-piv-tool
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "yubico-piv-tool";
-  version = "2.3.1";
+  version = "2.5.0";
 
-  src = fetchurl {
-    url = "https://developers.yubico.com/yubico-piv-tool/Releases/yubico-piv-tool-${version}.tar.gz";
-    hash = "sha256-2ona/YthhapjU0Z1P53bKa8pvEq9kt2B832dZWC11k4=";
+  outputs = [ "out" "dev" "man" ];
+
+  src = fetchFromGitHub {
+    owner = "Yubico";
+    repo = "yubico-piv-tool";
+    rev = "refs/tags/yubico-piv-tool-${finalAttrs.version}";
+    hash = "sha256-KSM/p6PMzgpVtXIR9GjGiP/UqXhbc1xSQ71elbE4JQE=";
   };
 
   postPatch = ''
     substituteInPlace CMakeLists.txt --replace "-Werror" ""
   '';
 
-  nativeBuildInputs = [ pkg-config cmake gengetopt ];
-  buildInputs = [ openssl check ]
-    ++ (if withApplePCSC then [ PCSC ] else [ pcsclite ]);
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    gengetopt
+    help2man
+  ];
+
+  buildInputs = [
+    openssl
+    check
+    zlib.dev
+  ]
+  ++ (if withApplePCSC then [ PCSC ] else [ pcsclite ]);
 
   cmakeFlags = [
-    "-DGENERATE_MAN_PAGES=OFF" # Use the man page generated at release time
+    "-DGENERATE_MAN_PAGES=ON"
     "-DCMAKE_INSTALL_BINDIR=bin"
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
     "-DCMAKE_INSTALL_MANDIR=share/man"
@@ -42,13 +57,11 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-backend=${if withApplePCSC then "macscard" else "pcsc"}" ];
 
   passthru = {
-    updateScript = gitUpdater {
-      url = "https://github.com/Yubico/yubico-piv-tool.git";
-      rev-prefix = "yubico-piv-tool-";
+    updateScript = nix-update-script {
+      extraArgs = [ "--version-regex" "yubico-piv-tool-([0-9.]+)$" ];
     };
     tests.version = testers.testVersion {
-      inherit version;
-      package = yubico-piv-tool;
+      package = finalAttrs.finalPackage;
       command = "yubico-piv-tool --version";
     };
   };
@@ -70,5 +83,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ viraptor anthonyroussel ];
+    mainProgram = "yubico-piv-tool";
   };
-}
+})
diff --git a/pkgs/tools/misc/yubikey-manager-qt/default.nix b/pkgs/tools/misc/yubikey-manager-qt/default.nix
index 3d21dc82af9e7..ce0d06bb089a2 100644
--- a/pkgs/tools/misc/yubikey-manager-qt/default.nix
+++ b/pkgs/tools/misc/yubikey-manager-qt/default.nix
@@ -9,7 +9,7 @@
 , qtbase
 , qtgraphicaleffects
 , qtquickcontrols2
-, yubikey-manager4
+, yubikey-manager
 , yubikey-personalization
 }:
 
@@ -18,8 +18,8 @@ mkDerivation rec {
   version = "1.2.5";
 
   src = fetchurl {
-    url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-6bKeR3UX2DhXGcKJ1bxvT1aLTgCfc+aNo6ckE89NV+I=";
+    url = "https://developers.yubico.com/yubikey-manager-qt/Releases/yubikey-manager-qt-${version}.tar.gz";
+    hash = "sha256-6bKeR3UX2DhXGcKJ1bxvT1aLTgCfc+aNo6ckE89NV+I=";
   };
 
   nativeBuildInputs = [
@@ -41,7 +41,7 @@ mkDerivation rec {
   ];
 
   pythonPath = [
-    (yubikey-manager4.override { python3Packages = python3.pkgs; })
+    (yubikey-manager.override { python3Packages = python3.pkgs; })
   ];
 
   postInstall = ''
diff --git a/pkgs/tools/misc/yubikey-manager/4.nix b/pkgs/tools/misc/yubikey-manager/4.nix
deleted file mode 100644
index b03e5fa93bb1d..0000000000000
--- a/pkgs/tools/misc/yubikey-manager/4.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ python3Packages, fetchFromGitHub, lib, installShellFiles, yubikey-personalization, libu2f-host, libusb1, procps
-, stdenv, pyOpenSSLSupport ? !(stdenv.isDarwin && stdenv.isAarch64) }:
-
-python3Packages.buildPythonPackage rec {
-  pname = "yubikey-manager";
-  version = "4.0.9";
-  format = "pyproject";
-
-  src = fetchFromGitHub {
-    owner = "Yubico";
-    repo = "yubikey-manager";
-    rev = "refs/tags/${version}";
-    sha256 = "sha256-MwM/b1QP6pkyBjz/r6oC4sW1mKC0CKMay45a0wCktk0=";
-  };
-
-  patches = lib.optionals (!pyOpenSSLSupport) [
-    ./remove-pyopenssl-tests.patch
-  ];
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'cryptography = ">=2.1, <39"' 'cryptography = ">=2.1"'
-    substituteInPlace "ykman/pcsc/__init__.py" \
-      --replace 'pkill' '${if stdenv.isLinux then "${procps}" else "/usr"}/bin/pkill'
-  '';
-
-  nativeBuildInputs = [ installShellFiles ]
-    ++ (with python3Packages; [ poetry-core ]);
-
-  propagatedBuildInputs = with python3Packages; ([
-    click
-    cryptography
-    pyscard
-    pyusb
-    six
-    fido2
-  ] ++ lib.optionals pyOpenSSLSupport [
-    pyopenssl
-  ]) ++ [
-    libu2f-host
-    libusb1
-    yubikey-personalization
-  ];
-
-  makeWrapperArgs = [
-    "--prefix" "LD_LIBRARY_PATH" ":"
-    (lib.makeLibraryPath [ libu2f-host libusb1 yubikey-personalization ])
-  ];
-
-  postInstall = ''
-    installManPage man/ykman.1
-
-    mkdir -p $out/share/bash-completion/completions
-    _YKMAN_COMPLETE=source $out/bin/ykman > $out/share/bash-completion/completions/ykman || :
-    mkdir -p $out/share/zsh/site-functions/
-    _YKMAN_COMPLETE=source_zsh "$out/bin/ykman" > "$out/share/zsh/site-functions/_ykman" || :
-    substituteInPlace "$out/share/zsh/site-functions/_ykman" \
-      --replace 'compdef _ykman_completion ykman;' '_ykman_completion "$@"'
-  '';
-
-  nativeCheckInputs = with python3Packages; [ pytestCheckHook makefun ];
-
-  meta = with lib; {
-    homepage = "https://developers.yubico.com/yubikey-manager";
-    description = "Previous release of command line tool for configuring any YubiKey over all USB transports";
-    license = licenses.bsd2;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ benley lassulus pinpox ];
-    mainProgram = "ykman";
-  };
-}
diff --git a/pkgs/tools/misc/yubikey-manager/default.nix b/pkgs/tools/misc/yubikey-manager/default.nix
index b5240e8becd7c..eb25d052e9086 100644
--- a/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/pkgs/tools/misc/yubikey-manager/default.nix
@@ -8,19 +8,19 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
-  version = "5.2.1";
-  format = "pyproject";
+  version = "5.3.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Yubico";
     repo = "yubikey-manager";
     rev = version;
-    hash = "sha256-CUe/oB/+Hq9evnLwl8r0k5ObhI3vDt7oX79+20yMfjY=";
+    hash = "sha256-c5edonnvvGIZ6SJ6+gd2xcAy0/HiAEUEPMGQzOKK2Sw=";
   };
 
   postPatch = ''
     substituteInPlace "ykman/pcsc/__init__.py" \
-      --replace 'pkill' '${if stdenv.isLinux then "${procps}" else "/usr"}/bin/pkill'
+      --replace 'pkill' '${if stdenv.isLinux then procps else "/usr"}/bin/pkill'
   '';
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/misc/yubikey-manager/remove-pyopenssl-tests.patch b/pkgs/tools/misc/yubikey-manager/remove-pyopenssl-tests.patch
deleted file mode 100644
index 5be08f4ddbb98..0000000000000
--- a/pkgs/tools/misc/yubikey-manager/remove-pyopenssl-tests.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/pyproject.toml b/pyproject.toml
-index 65a5943..e6932e0 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -30,7 +30,6 @@ packages = [
- python = "^3.6"
- dataclasses = {version = "^0.8", python = "<3.7"}
- cryptography = ">=2.1, <39"
--pyOpenSSL = {version = ">=0.15.1", optional = true}
- pyscard = "^1.9 || ^2.0"
- fido2 = ">=0.9, <2.0"
- click = "^7.0 || ^8.0"
-diff --git a/tests/test_util.py b/tests/test_util.py
-index 6ccda6c..b4460e4 100644
---- a/tests/test_util.py
-+++ b/tests/test_util.py
-@@ -8,7 +8,6 @@ from ykman.util import _parse_pkcs12_pyopenssl, _parse_pkcs12_cryptography
- from ykman.otp import format_oath_code, generate_static_pw, time_challenge
- from .util import open_file
- from cryptography.hazmat.primitives.serialization import pkcs12
--from OpenSSL import crypto
- 
- import unittest
- 
-@@ -114,16 +113,6 @@ class TestUtilityFunctions(unittest.TestCase):
-         ) as rsa_2048_key_cert_encrypted_pfx:
-             self.assertTrue(is_pkcs12(rsa_2048_key_cert_encrypted_pfx.read()))
- 
--    def test_parse_pkcs12(self):
--        with open_file("rsa_2048_key_cert.pfx") as rsa_2048_key_cert_pfx:
--            data = rsa_2048_key_cert_pfx.read()
--
--        key1, certs1 = _parse_pkcs12_cryptography(pkcs12, data, None)
--        key2, certs2 = _parse_pkcs12_pyopenssl(crypto, data, None)
--        self.assertEqual(key1.private_numbers(), key2.private_numbers())
--        self.assertEqual(1, len(certs1))
--        self.assertEqual(certs1, certs2)
--
-     def test_is_pem(self):
-         self.assertFalse(is_pem(b"just a byte string"))
-         self.assertFalse(is_pem(None))
diff --git a/pkgs/tools/misc/yubikey-personalization-gui/default.nix b/pkgs/tools/misc/yubikey-personalization-gui/default.nix
index 66f43ad9bfcac..a63ab7a7ce193 100644
--- a/pkgs/tools/misc/yubikey-personalization-gui/default.nix
+++ b/pkgs/tools/misc/yubikey-personalization-gui/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     description = "A QT based cross-platform utility designed to facilitate reconfiguration of the Yubikey";
     license = licenses.bsd2;
     platforms = platforms.unix;
+    mainProgram = "yubikey-personalization-gui";
   };
 }
diff --git a/pkgs/tools/misc/yutto/default.nix b/pkgs/tools/misc/yutto/default.nix
index 890f3b41c2766..5af50d54ad6fd 100644
--- a/pkgs/tools/misc/yutto/default.nix
+++ b/pkgs/tools/misc/yutto/default.nix
@@ -9,14 +9,14 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "yutto";
-  version = "2.0.0b28";
+  version = "2.0.0b33";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jN9KDQjEaTf7BUDtGd07W3TtijRKzD+StMReLmX4QI0=";
+    hash = "sha256-TUyjppAHmWCZxifeQeOpFMPBksqLRSYdqgG7NEMVILY=";
   };
 
   nativeBuildInputs = [
@@ -44,5 +44,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/yutto-dev/yutto";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linsui ];
+    mainProgram = "yutto";
   };
 }
diff --git a/pkgs/tools/misc/zabbixctl/default.nix b/pkgs/tools/misc/zabbixctl/default.nix
index e42ccb86c417d..ce45196fdba73 100644
--- a/pkgs/tools/misc/zabbixctl/default.nix
+++ b/pkgs/tools/misc/zabbixctl/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/kovetskiy/zabbixctl";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "zabbixctl";
   };
 }
diff --git a/pkgs/tools/misc/zalgo/default.nix b/pkgs/tools/misc/zalgo/default.nix
index 71cc7f8b7ddbc..0ca9f3366ce40 100644
--- a/pkgs/tools/misc/zalgo/default.nix
+++ b/pkgs/tools/misc/zalgo/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     platforms = platforms.unix;
     maintainers = with maintainers; [ djanatyn ];
+    mainProgram = "zalgo";
   };
 }
diff --git a/pkgs/tools/misc/zellij/default.nix b/pkgs/tools/misc/zellij/default.nix
index 670ad866dff87..160bb2bab62d4 100644
--- a/pkgs/tools/misc/zellij/default.nix
+++ b/pkgs/tools/misc/zellij/default.nix
@@ -3,6 +3,7 @@
 , rustPlatform
 , stdenv
 , installShellFiles
+, perl
 , pkg-config
 , libiconv
 , openssl
@@ -15,20 +16,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zellij";
-  version = "0.38.2";
+  version = "0.39.2";
 
   src = fetchFromGitHub {
     owner = "zellij-org";
     repo = "zellij";
     rev = "v${version}";
-    hash = "sha256-rq7M4g+s44j9jh5GzOjOCBr7VK3m/EQej/Qcnp67NhY=";
+    hash = "sha256-FSLbRfxSWY0a9H9iHT3oQ2SXwB70AwyH0Cm8sDZGaUk=";
   };
 
-  cargoHash = "sha256-xK7lLgjVFUISo4stF6MgfgI4mT5qHuph70cyYaLYZ30=";
+  cargoHash = "sha256-a5dFtK5czOGqE6mKeeI0kkY2da1kS3IRZ1NTluZ9Syc=";
 
   nativeBuildInputs = [
     mandown
     installShellFiles
+    perl
     pkg-config
   ];
 
diff --git a/pkgs/tools/misc/zf/default.nix b/pkgs/tools/misc/zf/default.nix
index 1b441687d3166..cf63e211d2612 100644
--- a/pkgs/tools/misc/zf/default.nix
+++ b/pkgs/tools/misc/zf/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ dit7ya figsoda mmlb ];
+    mainProgram = "zf";
   };
 })
diff --git a/pkgs/tools/misc/zitadel-tools/default.nix b/pkgs/tools/misc/zitadel-tools/default.nix
index 64bf37eefbb4d..cd5ae370805bb 100644
--- a/pkgs/tools/misc/zitadel-tools/default.nix
+++ b/pkgs/tools/misc/zitadel-tools/default.nix
@@ -1,30 +1,42 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 }:
 
 buildGoModule rec {
   pname = "zitadel-tools";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "zitadel";
     repo = "zitadel-tools";
     rev = "v${version}";
-    hash = "sha256-yKSpWvv/xW7ID0KhPIsrZOEWuuhEqpJuiswqO71ooEw=";
+    hash = "sha256-r9GEHpfDlpK98/dnsxjhUgWKn6vHQla8Z+jQUVrHGyo=";
   };
 
-  vendorHash = "sha256-ZS8m3zjLWvX3kFty2jpObw+rfyozJ3yDfZBcFCdD96U=";
+  nativeBuildInputs = [ installShellFiles ];
+
+  vendorHash = "sha256-y2PYj0XRSgfiaYpeqAh4VR/+NKUPKd1c0w9pPCWsUrY=";
 
   ldflags = [
     "-s" "-w"
     "-X main.version=${version}"
   ];
 
+  postInstall = ''
+    local INSTALL="$out/bin/zitadel-tools"
+    installShellCompletion --cmd zitadel-tools \
+      --bash <($out/bin/zitadel-tools completion bash) \
+      --fish <($out/bin/zitadel-tools completion fish) \
+      --zsh <($out/bin/zitadel-tools completion zsh)
+  '';
+
   meta = with lib; {
     description = "Helper tools for zitadel";
     homepage = "https://github.com/zitadel/zitadel-tools";
     license = licenses.asl20;
     maintainers = with maintainers; [ janik ];
+    mainProgram = "zitadel-tools";
   };
 }
diff --git a/pkgs/tools/misc/zotero-translation-server/default.nix b/pkgs/tools/misc/zotero-translation-server/default.nix
index 21428cf124584..d44ec426fee5b 100644
--- a/pkgs/tools/misc/zotero-translation-server/default.nix
+++ b/pkgs/tools/misc/zotero-translation-server/default.nix
@@ -31,5 +31,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/zotero/translation-server";
     license = licenses.agpl3Only;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "translation-server";
   };
 }
diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix
index 2489a21a19253..44863361a088e 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.9.2";
+  version = "unstable-2023-11-20";
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
-    rev = "v${version}";
-    sha256 = "sha256-h/T3McaKKASwQt+0SBBxFXMnYyt+0Xl+5i8IulUAdnU=";
+    rev = "3022cf3686b85288e6fbecb2bd23ad113fd83f3b";
+    sha256 = "sha256-ut+/F7cQ5Xamb7T45a78i0mjqnNG9/73jPNaDLxzAx8=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
       --replace '"fzf"' '"${fzf}/bin/fzf"'
   '';
 
-  cargoSha256 = "sha256-uu7zi6prnfbi4EQ0+0QcTEo/t5CIwNEQgJkIgxSk5u4=";
+  cargoSha256 = "sha256-JRWlHwPFqNC/IIKQqRQszx4HHW1XsmROA67KmnxkmWQ=";
 
   postInstall = ''
     installManPage man/man*/*
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "A fast cd command that learns your habits";
     homepage = "https://github.com/ajeetdsouza/zoxide";
-    changelog = "https://github.com/ajeetdsouza/zoxide/raw/v${version}/CHANGELOG.md";
+    # changelog = "https://github.com/ajeetdsouza/zoxide/raw/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ysndr cole-h SuperSandro2000 ];
     mainProgram = "zoxide";
diff --git a/pkgs/tools/misc/zsh-history-to-fish/default.nix b/pkgs/tools/misc/zsh-history-to-fish/default.nix
index ddb8098cdaafb..4e8da001f8350 100644
--- a/pkgs/tools/misc/zsh-history-to-fish/default.nix
+++ b/pkgs/tools/misc/zsh-history-to-fish/default.nix
@@ -29,5 +29,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/rsalmei/zsh-history-to-fish";
     license = licenses.mit;
     maintainers = with maintainers; [ alanpearce ];
+    mainProgram = "zsh-history-to-fish";
   };
 }
diff --git a/pkgs/tools/misc/zthrottle/default.nix b/pkgs/tools/misc/zthrottle/default.nix
index 2743dbf76bbbd..1598215e0eb94 100644
--- a/pkgs/tools/misc/zthrottle/default.nix
+++ b/pkgs/tools/misc/zthrottle/default.nix
@@ -18,10 +18,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A program that throttles a pipeline, only letting a line through at most every $1 seconds.";
+    description = "A program that throttles a pipeline, only letting a line through at most every $1 seconds";
     homepage = "https://github.com/anko/zthrottle";
     license = licenses.unlicense;
     maintainers = [ maintainers.ckie ];
     platforms = platforms.unix;
+    mainProgram = "zthrottle";
   };
 }
diff --git a/pkgs/tools/networking/aardvark-dns/default.nix b/pkgs/tools/networking/aardvark-dns/default.nix
index 59eb35cfe832f..8ecc0442ecc3b 100644
--- a/pkgs/tools/networking/aardvark-dns/default.nix
+++ b/pkgs/tools/networking/aardvark-dns/default.nix
@@ -1,29 +1,21 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
-, fetchpatch
 , nixosTests
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "aardvark-dns";
-  version = "1.7.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-bScL8hFV/Kot7P9nJRMDDhB8pllPUsejtJpbjmQ8skI=";
+    hash = "sha256-ZpZlmAlHtlg7a/81TEGRj80Z6Vahk0CFgQmjU9W/tc8=";
   };
 
-  cargoHash = "sha256-rrn+ZTAsFs7UTP4xQL3Cy8G6RG7vwT0wMKnXHHIkB90=";
-
-  patches = [
-    (fetchpatch { # https://github.com/containers/aardvark-dns/issues/379
-      url = "https://github.com/containers/aardvark-dns/commit/b13f0434f410934b515f086334414c6f5f55096e.diff";
-      hash = "sha256-6XReIShEe8+WKc5jK5NzCNMEd4INdOn9Sf8UrQLbj+s=";
-    })
-  ];
+  cargoHash = "sha256-6OMiLcSTndX/c5xHe896PMuRpvT21jFpDfCxH15UQIA=";
 
   passthru.tests = { inherit (nixosTests) podman; };
 
diff --git a/pkgs/tools/networking/airgeddon/default.nix b/pkgs/tools/networking/airgeddon/default.nix
index 5574a877c0d05..cba25cae74f01 100644
--- a/pkgs/tools/networking/airgeddon/default.nix
+++ b/pkgs/tools/networking/airgeddon/default.nix
@@ -161,7 +161,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/v1s1t0r1sh3r3/airgeddon";
     changelog = "https://github.com/v1s1t0r1sh3r3/airgeddon/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ pedrohlc ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix
index 6c972bb239714..094cc8733bdcd 100644
--- a/pkgs/tools/networking/aria2/default.nix
+++ b/pkgs/tools/networking/aria2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
+{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, autoreconfHook
 , gnutls, c-ares, libxml2, sqlite, zlib, libssh2
 , cppunit, sphinx
 , Security
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aria2";
-  version = "1.36.0";
+  version = "1.37.0";
 
   src = fetchFromGitHub {
     owner = "aria2";
     repo = "aria2";
     rev = "release-${version}";
-    sha256 = "sha256-ErjFfSJDIgZq0qy0Zn5uZ9bZS2AtJq4FuBVuUuQgPTI=";
+    sha256 = "sha256-xbiNSg/Z+CA0x0DQfMNsWdA+TATyX6dCeW2Nf3L3Kfs=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/networking/arping/default.nix b/pkgs/tools/networking/arping/default.nix
index 10765befd4dd5..672ccc2bcdb10 100644
--- a/pkgs/tools/networking/arping/default.nix
+++ b/pkgs/tools/networking/arping/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "arping";
-  version = "2.23";
+  version = "2.24";
 
   src = fetchFromGitHub {
     owner = "ThomasHabets";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-Yn0EFb23VJvcVluQhwGHg9cdnZ8LKlBEds7cq8Irftc=";
+    hash = "sha256-rME4IDzwYHOURbyuG7G5gnXvUIVoQH2WIeLWacHyoBA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/bacnet-stack/default.nix b/pkgs/tools/networking/bacnet-stack/default.nix
index 9e47993df6029..d5f126c19bbb5 100644
--- a/pkgs/tools/networking/bacnet-stack/default.nix
+++ b/pkgs/tools/networking/bacnet-stack/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bacnet-stack";
-  version = "1.0.0";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "bacnet-stack";
     repo = "bacnet-stack";
     rev = "bacnet-stack-${version}";
-    sha256 = "078p7qsy9v6fl7pzwgcr72pgjqxfxmfxyqajih2zqlb5g5sf88vh";
+    sha256 = "sha256-hgUntojq10gYoY/inO46MzwK6o2q8ELKTaJbAbCx8Vc=";
   };
 
   hardeningDisable = [ "all" ];
diff --git a/pkgs/tools/networking/bandwhich/Cargo.lock b/pkgs/tools/networking/bandwhich/Cargo.lock
index 5d28b7691ca62..2742af2bd33cd 100644
--- a/pkgs/tools/networking/bandwhich/Cargo.lock
+++ b/pkgs/tools/networking/bandwhich/Cargo.lock
@@ -29,15 +29,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "ahash"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
 name = "aho-corasick"
-version = "1.1.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f2135563fb5c609d2b2b87c1e8ce7bc41b0b45430fa9661f457981503dd5bf0"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
 name = "android-tzdata"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -54,9 +72,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.5.0"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -68,56 +86,56 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "2.1.0"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 dependencies = [
  "backtrace",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.73"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -143,17 +161,24 @@ dependencies = [
 
 [[package]]
 name = "bandwhich"
-version = "0.21.0"
+version = "0.22.2"
 dependencies = [
  "anyhow",
  "async-trait",
  "chrono",
  "clap",
+ "clap-verbosity-flag",
+ "clap_complete",
+ "clap_mangen",
  "crossterm",
+ "derivative",
  "http_req",
  "insta",
  "ipnetwork",
+ "itertools",
+ "log",
  "netstat2",
+ "once_cell",
  "packet-builder",
  "pnet",
  "pnet_base",
@@ -162,6 +187,9 @@ dependencies = [
  "ratatui",
  "regex",
  "resolv-conf",
+ "rstest",
+ "simplelog",
+ "strum",
  "sysinfo",
  "thiserror",
  "tokio",
@@ -184,9 +212,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "block-buffer"
@@ -205,9 +233,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
@@ -260,16 +288,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -284,19 +312,29 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.4"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d7b8d5ec32af0fadc644bf1fd509a688c2103b185644bb1e29d164e0703136"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive",
 ]
 
 [[package]]
+name = "clap-verbosity-flag"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b57f73ca21b17a0352944b9bb61803b6007bd911b6cccfef7153f7f0600ac495"
+dependencies = [
+ "clap",
+ "log",
+]
+
+[[package]]
 name = "clap_builder"
-version = "4.4.4"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5179bb514e4d7c2051749d8fcefa2ed6d06a9f4e6d69faf3805f5d80b8cf8d56"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstream",
  "anstyle",
@@ -305,22 +343,41 @@ dependencies = [
 ]
 
 [[package]]
+name = "clap_complete"
+version = "4.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106"
+dependencies = [
+ "clap",
+]
+
+[[package]]
 name = "clap_derive"
-version = "4.4.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.1"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+
+[[package]]
+name = "clap_mangen"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+checksum = "4a7c2b01e5e779c19f46a94bbd398f33ae63b0f78c07108351fb4536845bb7fd"
+dependencies = [
+ "clap",
+ "roff",
+]
 
 [[package]]
 name = "colorchoice"
@@ -330,14 +387,14 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "console"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
 dependencies = [
  "encode_unicode",
  "lazy_static",
  "libc",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -348,9 +405,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -358,15 +415,15 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -381,47 +438,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
@@ -429,7 +468,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "crossterm_winapi",
  "libc",
  "mio",
@@ -460,15 +499,29 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "deranged"
-version = "0.3.8"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
 
 [[package]]
 name = "derive-new"
@@ -513,41 +566,30 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "errno"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "fastrand"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -570,48 +612,103 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
+ "futures-sink",
 ]
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-timer"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
+ "futures-channel",
  "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
  "futures-task",
+ "memchr",
  "pin-project-lite",
  "pin-utils",
  "slab",
@@ -629,9 +726,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -640,9 +737,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -651,6 +748,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
 name = "heck"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -658,9 +765,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -690,9 +797,9 @@ dependencies = [
 
 [[package]]
 name = "http_req"
-version = "0.9.3"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42ce34c74ec562d68f2c23a532c62c1332ff1d1b6147fd118bd1938e090137d0"
+checksum = "90394b01e9de1f7eca6ca0664cc64bd92add9603c1aa4f961813f23789035e10"
 dependencies = [
  "native-tls",
  "unicase",
@@ -700,16 +807,16 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows",
+ "windows-core",
 ]
 
 [[package]]
@@ -732,6 +839,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
 name = "indoc"
 version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -748,9 +865,9 @@ dependencies = [
 
 [[package]]
 name = "insta"
-version = "1.31.0"
+version = "1.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0770b0a3d4c70567f0d58331f3088b0e4c4f56c9b8d764efe654b4a5d46de3a"
+checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
 dependencies = [
  "console",
  "lazy_static",
@@ -760,17 +877,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "ipconfig"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -784,9 +890,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "ipnetwork"
@@ -799,27 +905,33 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
 dependencies = [
  "either",
 ]
 
 [[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -832,9 +944,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "linked-hash-map"
@@ -844,21 +956,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.7"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -871,6 +977,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
+name = "lru"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
+dependencies = [
+ "hashbrown",
+]
+
+[[package]]
 name = "lru-cache"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -887,18 +1002,9 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "miniz_oxide"
@@ -911,9 +1017,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
@@ -981,9 +1087,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -999,27 +1105,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "num_threads"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "openssl"
-version = "0.10.57"
+version = "0.10.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
+checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1036,7 +1151,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1047,9 +1162,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.93"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
  "cc",
  "libc",
@@ -1080,9 +1195,9 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1122,9 +1237,9 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pin-project-lite"
@@ -1140,9 +1255,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "pnet"
@@ -1189,7 +1304,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1236,6 +1351,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1243,26 +1364,37 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "procfs"
-version = "0.15.1"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "943ca7f9f29bab5844ecd8fdb3992c5969b6622bb9609b9502fef9b4310e3f1f"
+checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
 dependencies = [
- "bitflags 1.3.2",
- "byteorder",
+ "bitflags 2.4.2",
  "chrono",
  "flate2",
  "hex",
  "lazy_static",
- "rustix 0.36.15",
+ "procfs-core",
+ "rustix",
+]
+
+[[package]]
+name = "procfs-core"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
+dependencies = [
+ "bitflags 2.4.2",
+ "chrono",
+ "hex",
 ]
 
 [[package]]
@@ -1273,9 +1405,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -1312,16 +1444,18 @@ dependencies = [
 
 [[package]]
 name = "ratatui"
-version = "0.23.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad"
+checksum = "a5659e52e4ba6e07b2dad9f1158f578ef84a73762625ddb51536019f34d180eb"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "cassowary",
  "crossterm",
  "indoc",
  "itertools",
+ "lru",
  "paste",
+ "stability",
  "strum",
  "unicode-segmentation",
  "unicode-width",
@@ -1329,9 +1463,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -1339,30 +1473,28 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1372,9 +1504,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1383,9 +1515,15 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "relative-path"
+version = "1.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
 
 [[package]]
 name = "resolv-conf"
@@ -1398,36 +1536,66 @@ dependencies = [
 ]
 
 [[package]]
+name = "roff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
+
+[[package]]
+name = "rstest"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "rstest_macros",
+ "rustc_version",
+]
+
+[[package]]
+name = "rstest_macros"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
+dependencies = [
+ "cfg-if",
+ "glob",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "relative-path",
+ "rustc_version",
+ "syn 2.0.48",
+ "unicode-ident",
+]
+
+[[package]]
 name = "rustc-demangle"
 version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
-name = "rustix"
-version = "0.36.15"
+name = "rustc_version"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c37f1bd5ef1b5422177b7646cba67430579cfe2ace80f284fee876bca52ad941"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.1.4",
- "windows-sys 0.45.0",
+ "semver",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.13"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.7",
- "windows-sys 0.48.0",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1438,11 +1606,11 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1475,30 +1643,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "semver"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+
+[[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1507,9 +1681,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1548,9 +1722,20 @@ dependencies = [
 
 [[package]]
 name = "similar"
-version = "2.2.1"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
+
+[[package]]
+name = "simplelog"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"
+checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369"
+dependencies = [
+ "log",
+ "termcolor",
+ "time",
+]
 
 [[package]]
 name = "slab"
@@ -1563,21 +1748,31 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "stability"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd1b177894da2a2d9120208c3386066af06a488255caabc5de8ddca22dbc3ce"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1594,15 +1789,15 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.25.2"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1624,9 +1819,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.37"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1635,9 +1830,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.29.10"
+version = "0.30.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a18d114d420ada3a891e6bc8e96a2023402203296a47cdd65083377dad18ba5"
+checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -1645,58 +1840,81 @@ dependencies = [
  "ntapi",
  "once_cell",
  "rayon",
- "winapi",
+ "windows",
 ]
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
  "fastrand",
  "redox_syscall",
- "rustix 0.38.13",
- "windows-sys 0.48.0",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.28"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
  "deranged",
+ "itoa",
+ "libc",
+ "num_threads",
+ "powerfmt",
  "serde",
  "time-core",
+ "time-macros",
 ]
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+dependencies = [
+ "time-core",
+]
 
 [[package]]
 name = "tinyvec"
@@ -1715,9 +1933,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes",
@@ -1731,11 +1949,10 @@ dependencies = [
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -1743,29 +1960,29 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "trust-dns-proto"
-version = "0.23.0"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dc775440033cb114085f6f2437682b194fa7546466024b1037e82a48a052a69"
+checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
 dependencies = [
  "async-trait",
  "cfg-if",
@@ -1774,7 +1991,7 @@ dependencies = [
  "futures-channel",
  "futures-io",
  "futures-util",
- "idna",
+ "idna 0.4.0",
  "ipnet",
  "once_cell",
  "rand",
@@ -1788,9 +2005,9 @@ dependencies = [
 
 [[package]]
 name = "trust-dns-resolver"
-version = "0.23.0"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dff7aed33ef3e8bf2c9966fccdfed93f93d46f432282ea875cd66faabc6ef2f"
+checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
 dependencies = [
  "cfg-if",
  "futures-util",
@@ -1824,9 +2041,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -1851,18 +2068,18 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna",
+ "idna 0.5.0",
  "percent-encoding",
 ]
 
@@ -1892,9 +2109,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -1902,24 +2119,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -1927,22 +2144,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "widestring"
@@ -1967,6 +2184,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1974,20 +2200,21 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-core",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
-name = "windows-sys"
-version = "0.45.0"
+name = "windows-core"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.42.2",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -2000,18 +2227,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows-targets"
-version = "0.42.2"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -2030,10 +2251,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
@@ -2042,10 +2272,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -2054,10 +2284,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -2066,10 +2296,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
+name = "windows_i686_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -2078,10 +2308,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -2090,10 +2320,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -2102,10 +2332,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -2114,6 +2344,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
 name = "winreg"
 version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2133,6 +2369,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "zip"
 version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2173,11 +2429,10 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
  "cc",
- "libc",
  "pkg-config",
 ]
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index 78b8f7ddf1b5f..240fa3e86f8a9 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
-  version = "0.21.0";
+  version = "0.22.2";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-FquV+V5BTIX0HB6lLqPMUTvnPn7Y8/jhl93qvrSkYLY=";
+    hash = "sha256-/uG1xjhxnIkS3rq7Tv1q1v8X7p1baDB8OiSEV9OLyfo=";
   };
 
   cargoLock = {
diff --git a/pkgs/tools/networking/boundary/default.nix b/pkgs/tools/networking/boundary/default.nix
index 8a23a5f8bd5ed..3d58e38bbbe92 100644
--- a/pkgs/tools/networking/boundary/default.nix
+++ b/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.13.1";
+  version = "0.14.3";
 
   src =
     let
@@ -15,10 +15,10 @@ stdenv.mkDerivation rec {
         aarch64-darwin = "darwin_arm64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-SrBfZ0te1l5XDmI8euojpVVRHxqq+T1WDSVbberxJYs=";
-        aarch64-linux = "sha256-T0t1E8lZMJZVanG7NZh9O+1RwzH82HtGi1ytDYYslhE=";
-        x86_64-darwin = "sha256-Wmk2hRbRe0dOuPnwISpsh2om1khpE3sX65VfWLYXNFk=";
-        aarch64-darwin = "sha256-ccfAtuqZSaQG4rCQZ4ujtFhp1e6dsrMAUcRuHT+YqXU=";
+        x86_64-linux = "sha256-iKKpZ/5BrX+b7/r/Q6zQ0Qo51/8v4jekDDWmJ1x4dqQ=";
+        aarch64-linux = "sha256-JYfgeiBUG4rk1fh89d3wiYkoiy4e41wHIphj1no/TS8=";
+        x86_64-darwin = "sha256-4dEP7Gx7h1OT6eyQR4fUFed3jUbVxqHmsFzvrSvTLe0=";
+        aarch64-darwin = "sha256-am/GX2NPOzWT0s+UQ2FYGapa9aOSxmbJ9X80xvnbaiQ=";
       };
     in
     fetchzip {
diff --git a/pkgs/tools/networking/brook/default.nix b/pkgs/tools/networking/brook/default.nix
index ed01beeb78382..bdc16874779b8 100644
--- a/pkgs/tools/networking/brook/default.nix
+++ b/pkgs/tools/networking/brook/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "brook";
-  version = "20230606";
+  version = "20240214";
 
   src = fetchFromGitHub {
     owner = "txthinking";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-F4muuU696YbKcPkpD1LAeyD8ghQAe65UdqV5wS1fATI=";
+    sha256 = "sha256-5+AqlmDa11PrB24XkelOFHK4sBi4j78WMLQrzDuP1/M=";
   };
 
-  vendorHash = "sha256-uKlO1x5sGM8B1htmvRt9kND7tuH36iLN/Mev77vwZ6M=";
+  vendorHash = "sha256-cTw9k4AqS4NOJ0vX0InR0xxOfCXIgA3FxgL6oXryOnA=";
 
   meta = with lib; {
     homepage = "https://github.com/txthinking/brook";
diff --git a/pkgs/tools/networking/bsd-finger/default.nix b/pkgs/tools/networking/bsd-finger/default.nix
index 48e64b202c6ef..9d4c0267c76ab 100644
--- a/pkgs/tools/networking/bsd-finger/default.nix
+++ b/pkgs/tools/networking/bsd-finger/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
       else "Remote user information server";
     platforms = platforms.linux;
     license = licenses.bsdOriginal;
+    mainProgram = "finger";
   };
 }
 # TODO: multiple outputs (manpage)
diff --git a/pkgs/tools/networking/burpsuite/default.nix b/pkgs/tools/networking/burpsuite/default.nix
index f416685dea32b..416d2877e2015 100644
--- a/pkgs/tools/networking/burpsuite/default.nix
+++ b/pkgs/tools/networking/burpsuite/default.nix
@@ -1,30 +1,41 @@
-{ lib, fetchurl, jdk, buildFHSEnv, unzip, makeDesktopItem }:
+{ lib, fetchurl, jdk, buildFHSEnv, unzip, makeDesktopItem, proEdition ? false }:
 let
-  version = "2023.7.2";
+  version = "2023.10.2.4";
+
+  product = if proEdition then {
+    productName = "pro";
+    productDesktop = "Burp Suite Professional Edition";
+    hash = "sha256-H5/nxVvAoGzRIAOchv9tAYyFgrodh7XugCTn2oUV9Tw=";
+  } else {
+    productName = "community";
+    productDesktop = "Burp Suite Community Edition";
+    hash = "sha256-en+eay+XL09Vk6H011fYvxGluMAndedtqCo4dQZvbBM=";
+  };
 
   src = fetchurl {
     name = "burpsuite.jar";
     urls = [
-      "https://portswigger.net/burp/releases/download?productId=100&version=${version}&type=Jar"
-      "https://web.archive.org/web/https://portswigger.net/burp/releases/download?productId=100&version=${version}&type=Jar"
+      "https://portswigger-cdn.net/burp/releases/download?product=${product.productName}&version=${version}&type=Jar"
+      "https://portswigger.net/burp/releases/download?product=${product.productName}&version=${version}&type=Jar"
+      "https://web.archive.org/web/https://portswigger.net/burp/releases/download?product=${product.productName}&version=${version}&type=Jar"
     ];
-    hash = "sha256-mpOG8sx+L+/kwgB3X9ALOvq+Rx1GC3JE2G7yVt1iQYg=";
+    hash = product.hash;
   };
 
-  name = "burpsuite-${version}";
+  pname = "burpsuite";
   description = "An integrated platform for performing security testing of web applications";
-  desktopItem = makeDesktopItem rec {
+  desktopItem = makeDesktopItem {
     name = "burpsuite";
-    exec = name;
-    icon = name;
-    desktopName = "Burp Suite Community Edition";
+    exec = pname;
+    icon = pname;
+    desktopName = product.productDesktop;
     comment = description;
     categories = [ "Development" "Security" "System" ];
   };
 
 in
 buildFHSEnv {
-  inherit name;
+  inherit pname version;
 
   runScript = "${jdk}/bin/java -jar ${src}";
 
@@ -54,9 +65,8 @@ buildFHSEnv {
   ];
 
   extraInstallCommands = ''
-    mv "$out/bin/${name}" "$out/bin/burpsuite" # name includes the version number
     mkdir -p "$out/share/pixmaps"
-    ${lib.getBin unzip}/bin/unzip -p ${src} resources/Media/icon64community.png > "$out/share/pixmaps/burpsuite.png"
+    ${lib.getBin unzip}/bin/unzip -p ${src} resources/Media/icon64${product.productName}.png > "$out/share/pixmaps/burpsuite.png"
     cp -r ${desktopItem}/share/applications $out/share
   '';
 
@@ -69,11 +79,10 @@ buildFHSEnv {
       exploiting security vulnerabilities.
     '';
     homepage = "https://portswigger.net/burp/";
-    downloadPage = "https://portswigger.net/burp/freedownload";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.unfree;
     platforms = jdk.meta.platforms;
     hydraPlatforms = [ ];
-    maintainers = with maintainers; [ bennofs ];
+    maintainers = with maintainers; [ arcayr bennofs ];
   };
 }
diff --git a/pkgs/tools/networking/bwm-ng/default.nix b/pkgs/tools/networking/bwm-ng/default.nix
index 397fb30490a36..cfe0d4176a6f6 100644
--- a/pkgs/tools/networking/bwm-ng/default.nix
+++ b/pkgs/tools/networking/bwm-ng/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.gropp.org/?id=projects&sub=bwm-ng";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ srapenne ];
+    maintainers = with maintainers; [ ];
     longDescription = ''
       bwm-ng supports:
        - /proc/net/dev, netstat, getifaddr, sysctl, kstat, /proc/diskstats /proc/partitions, IOKit,
diff --git a/pkgs/tools/networking/cfspeedtest/default.nix b/pkgs/tools/networking/cfspeedtest/default.nix
index 33b1c0046f1a1..72c62053ac46d 100644
--- a/pkgs/tools/networking/cfspeedtest/default.nix
+++ b/pkgs/tools/networking/cfspeedtest/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cfspeedtest";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "code-inflation";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-uQe9apG4SdFEUT2aOrzF2C8bbrl0fOiqnMZrWDQvbxk=";
+    hash = "sha256-/Msm5odr0K4yxkfc54nVrVxtaBhoerBymFrfOP8zigU=";
   };
 
-  cargoSha256 = "sha256-wJmLUPXGSg90R92iW9R02r3E3e7XU1gJwd8IqIC+QMA=";
+  cargoHash = "sha256-JqFX9RbyjZqp9rp2ZNA1XlOCUQ5I4aGvv4UsWVtsvQ0=";
 
   meta = with lib; {
     description = "Unofficial CLI for speed.cloudflare.com";
diff --git a/pkgs/tools/networking/chrony/default.nix b/pkgs/tools/networking/chrony/default.nix
index c188fbb7ccd8b..74132e7924471 100644
--- a/pkgs/tools/networking/chrony/default.nix
+++ b/pkgs/tools/networking/chrony/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "chrony";
-  version = "4.4";
+  version = "4.5";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/chrony/${pname}-${version}.tar.gz";
-    hash = "sha256-6vsH5tr5KxQiAPR4hW3+1u/J6i0Ubu3tXtywm5MScIg=";
+    hash = "sha256-Gf4dn0Zk1EWmmpbHHo/bYLzY3yTHPROG4CKH9zZq1CI=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/networking/clash/default.nix b/pkgs/tools/networking/clash/default.nix
deleted file mode 100644
index 6cce7d247a5e5..0000000000000
--- a/pkgs/tools/networking/clash/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ lib
-, fetchFromGitHub
-, buildGoModule
-, testers
-, clash
-}:
-
-buildGoModule rec {
-  pname = "clash";
-  version = "1.18.0";
-
-  src = fetchFromGitHub {
-    owner = "Dreamacro";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-LqjSPlPkR5sB4Z1pmpdE9r66NN7pwgE9GK4r1zSFlxs=";
-  };
-
-  vendorHash = "sha256-EWAbEFYr15RiJk9IXF6KaaX4GaSCa6E4+8rKL4/XG8Y=";
-
-  # Do not build testing suit
-  excludedPackages = [ "./test" ];
-
-  CGO_ENABLED = 0;
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X github.com/Dreamacro/clash/constant.Version=${version}"
-  ];
-
-  checkFlags = [
-    "-skip=TestParseRule" # Flaky tests
-  ];
-
-  passthru.tests.version = testers.testVersion {
-    package = clash;
-    command = "clash -v";
-  };
-
-  meta = with lib; {
-    description = "A rule-based tunnel in Go";
-    homepage = "https://dreamacro.github.io/clash/";
-    changelog = "https://github.com/Dreamacro/clash/releases/tag/v${version}";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ contrun Br1ght0ne ];
-    mainProgram = "clash";
-  };
-}
diff --git a/pkgs/tools/networking/configurable-http-proxy/default.nix b/pkgs/tools/networking/configurable-http-proxy/default.nix
index 34cf5307038d9..74d009d3ed1a6 100644
--- a/pkgs/tools/networking/configurable-http-proxy/default.nix
+++ b/pkgs/tools/networking/configurable-http-proxy/default.nix
@@ -24,6 +24,5 @@ buildNpmPackage rec {
     homepage = "https://github.com/jupyterhub/configurable-http-proxy";
     license = lib.licenses.bsd3;
     mainProgram = "configurable-http-proxy";
-    maintainers = with lib.maintainers; [ ixxie ];
   };
 }
diff --git a/pkgs/tools/networking/containerlab/default.nix b/pkgs/tools/networking/containerlab/default.nix
index 39982a6ab886f..43b938ac4a133 100644
--- a/pkgs/tools/networking/containerlab/default.nix
+++ b/pkgs/tools/networking/containerlab/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "containerlab";
-  version = "0.46.0";
+  version = "0.49.0";
 
   src = fetchFromGitHub {
     owner = "srl-labs";
     repo = "containerlab";
     rev = "v${version}";
-    hash = "sha256-uBT9whv1qL3yfO6VoeW2SqLIzG11mk+SU09c/xqboM8=";
+    hash = "sha256-dSy+4hsuigBSULDfsUW/kArcQByrtUeF3InMRuqFtu4=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorHash = "sha256-mkQR0lZXYe6Dz4PngxF7d7Bkr4R3HmL/imQDLridmlA=";
+  vendorHash = "sha256-mm3D8WQtgWT9LCWlTZIV5GJ9rIyd3iX8b6zWIpqEwnk=";
 
   ldflags = [
     "-s"
@@ -41,6 +41,6 @@ buildGoModule rec {
     changelog = "https://github.com/srl-labs/containerlab/releases/tag/${src.rev}";
     license = licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ janik ];
+    maintainers = with maintainers; [ aaronjheng ];
   };
 }
diff --git a/pkgs/tools/networking/corkscrew/default.nix b/pkgs/tools/networking/corkscrew/default.nix
index 3aacb0da6a2e5..757a07c919896 100644
--- a/pkgs/tools/networking/corkscrew/default.nix
+++ b/pkgs/tools/networking/corkscrew/default.nix
@@ -1,23 +1,22 @@
-{ lib, stdenv, fetchurl, automake }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "corkscrew";
   version = "2.0";
-
-  src = fetchurl {
-    url = "http://agroman.net/corkscrew/corkscrew-${version}.tar.gz";
-    sha256 = "0d0fcbb41cba4a81c4ab494459472086f377f9edb78a2e2238ed19b58956b0be";
+  src = fetchFromGitHub {
+    owner = "bryanpkc";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-JiddvTbuOysenrVWGUEyKSzpCF1PJaYWQUdz3FuLCdw=";
   };
 
-  preConfigure = ''
-    ln -sf ${automake}/share/automake-*/config.sub config.sub
-    ln -sf ${automake}/share/automake-*/config.guess config.guess
-  '';
+  nativeBuildInputs = [ autoreconfHook ];
 
   meta = with lib; {
-    homepage    = "http://agroman.net/corkscrew/";
+    homepage = "https://github.com/bryanpkc/corkscrew";
     description = "A tool for tunneling SSH through HTTP proxies";
     license = lib.licenses.gpl2;
     platforms = platforms.unix;
   };
 }
+
diff --git a/pkgs/tools/networking/crackle/default.nix b/pkgs/tools/networking/crackle/default.nix
index 00d0acd2aa94c..ea42e7a0b3208 100644
--- a/pkgs/tools/networking/crackle/default.nix
+++ b/pkgs/tools/networking/crackle/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Crack and decrypt BLE encryption";
     homepage = "https://github.com/mikeryan/crackle";
-    maintainers = with maintainers; [ fortuneteller2k ];
+    maintainers = with maintainers; [ moni ];
     license = licenses.bsd2;
   };
 }
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index eb9311240f7db..ffc8579869ca0 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.6.5";
+  version = "9.6.6";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mbDpd2bkNKRhe19f8sLJJnm9DkFWZ12fPqPDGN7pvCc=";
+    sha256 = "sha256-y2uS6GlqxfBpLE+6cOl+vLI+KSZ1ThFMjnUNEGplnxM=";
   };
 
-  vendorHash = "sha256-Nw0d/+EQlB0DJRciB2WD0MKZ4HSYY7oSv0ddMPN0CIQ=";
+  vendorHash = "sha256-JLNbRmiO38M+JQiSJfxFcdFYrEyNBA1KOHnxbjaCusE=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/networking/curl-impersonate/default.nix b/pkgs/tools/networking/curl-impersonate/default.nix
index 59c281575c134..070aab8d53f28 100644
--- a/pkgs/tools/networking/curl-impersonate/default.nix
+++ b/pkgs/tools/networking/curl-impersonate/default.nix
@@ -153,6 +153,7 @@ let
       maintainers = with maintainers; [ deliciouslytyped lilyinstarlight ];
       platforms = platforms.unix;
       knownVulnerabilities = [
+        "CVE-2023-38545"  # SOCKS5 heap buffer overflow - https://curl.se/docs/CVE-2023-38545.html
         "CVE-2023-32001"  # fopen TOCTOU race condition - https://curl.se/docs/CVE-2023-32001.html
         "CVE-2022-43551"  # HSTS bypass - https://curl.se/docs/CVE-2022-43551.html
         "CVE-2022-42916"  # HSTS bypass - https://curl.se/docs/CVE-2022-42916.html
diff --git a/pkgs/tools/networking/curl/7.79.1-darwin-no-systemconfiguration.patch b/pkgs/tools/networking/curl/7.79.1-darwin-no-systemconfiguration.patch
deleted file mode 100644
index 2d97338a1fe9c..0000000000000
--- a/pkgs/tools/networking/curl/7.79.1-darwin-no-systemconfiguration.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-On darwin, providing SystemConfiguration to curl currently results in a
-reference loop, so we have to disable the check for it and the feature
-which requires it (NAT64).
-
-Patching actual configure script here as we also don't want to require
-autoconf in the bootstrap loop just to regenerate a patched configure.ac.
-
---- a/configure   2021-10-16 00:51:59.000000000 +0100
-+++ b/configure   2021-10-16 01:06:46.000000000 +0100
-@@ -20810,7 +20810,7 @@
-     if test "x$build_for_macos" != xno; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- printf "%s\n" "yes" >&6; }
--      LDFLAGS="$LDFLAGS -framework CoreFoundation -framework SystemConfiguration"
-+      LDFLAGS="$LDFLAGS -framework CoreFoundation"
-     else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
- printf "%s\n" "no" >&6; }
-@@ -22211,9 +22211,6 @@
- fi
- 
- 
--if test "$HAVE_GETHOSTBYNAME" != "1"; then
--  as_fn_error $? "couldn't find libraries for gethostbyname()" "$LINENO" 5
--fi
- 
- 
- curl_includes_winsock2="\
-diff --git a/lib/curl_setup.h b/lib/curl_setup.h
-index b43714da7..7674778b7 100644
---- a/lib/curl_setup.h
-+++ b/lib/curl_setup.h
-@@ -250,20 +250,6 @@
- 
- #include <curl/system.h>
- 
--/*
-- * Use getaddrinfo to resolve the IPv4 address literal. If the current network
-- * interface doesn't support IPv4, but supports IPv6, NAT64, and DNS64,
-- * performing this task will result in a synthesized IPv6 address.
-- */
--#if defined(__APPLE__) && !defined(USE_ARES)
--#include <TargetConditionals.h>
--#define USE_RESOLVE_ON_IPS 1
--#  if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && \
--     defined(ENABLE_IPV6)
--#    define CURL_MACOS_CALL_COPYPROXIES 1
--#  endif
--#endif
--
- #ifdef USE_LWIPSOCK
- #  include <lwip/init.h>
- #  include <lwip/sockets.h>
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index aced6d6653a94..9cbf6dc1b0fb5 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, perl, nixosTests
+{ lib, stdenv, fetchurl, darwin, pkg-config, perl, nixosTests
 , brotliSupport ? false, brotli
 , c-aresSupport ? false, c-aresMinimal
 , gnutlsSupport ? false, gnutls
@@ -15,6 +15,7 @@
   ), libkrb5
 , http2Support ? true, nghttp2
 , http3Support ? false, nghttp3, ngtcp2
+, websocketSupport ? false
 , idnSupport ? false, libidn2
 , ldapSupport ? false, openldap
 , opensslSupport ? zlibSupport, openssl
@@ -47,19 +48,19 @@ assert !((lib.count (x: x) [ gnutlsSupport opensslSupport wolfsslSupport rustlsS
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "curl";
-  version = "8.3.0";
+  version = "8.6.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/curl-${finalAttrs.version}.tar.xz"
       "https://github.com/curl/curl/releases/download/curl-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}/curl-${finalAttrs.version}.tar.xz"
     ];
-    hash = "sha256-N21id2fWxPBRBattSXsNmrpxEXcN2dmVIlR4IJw36mM=";
+    hash = "sha256-PM1V2Rr5UWU534BiX4GMc03G8uz5utozx2dl6ZEh2xU=";
   };
 
-  patches = [
-    ./7.79.1-darwin-no-systemconfiguration.patch
-  ];
+  postPatch = ''
+    patchShebangs scripts
+  '';
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
   separateDebugInfo = stdenv.isLinux;
@@ -90,7 +91,12 @@ stdenv.mkDerivation (finalAttrs: {
     optional wolfsslSupport wolfssl ++
     optional rustlsSupport rustls-ffi ++
     optional zlibSupport zlib ++
-    optional zstdSupport zstd;
+    optional zstdSupport zstd ++
+    optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+      CoreFoundation
+      CoreServices
+      SystemConfiguration
+    ]);
 
   # for the second line see https://curl.haxx.se/mail/tracker-2014-03/0087.html
   preConfigure = ''
@@ -104,6 +110,7 @@ stdenv.mkDerivation (finalAttrs: {
       (lib.enableFeature c-aresSupport "ares")
       (lib.enableFeature ldapSupport "ldap")
       (lib.enableFeature ldapSupport "ldaps")
+      (lib.enableFeature websocketSupport "websockets")
       # --with-ca-fallback is only supported for openssl and gnutls https://github.com/curl/curl/blame/curl-8_0_1/acinclude.m4#L1640
       (lib.withFeature (opensslSupport || gnutlsSupport) "ca-fallback")
       (lib.withFeature http3Support "nghttp3")
@@ -111,6 +118,7 @@ stdenv.mkDerivation (finalAttrs: {
       (lib.withFeature rtmpSupport "librtmp")
       (lib.withFeature rustlsSupport "rustls")
       (lib.withFeature zstdSupport "zstd")
+      (lib.withFeature pslSupport "libpsl")
       (lib.withFeatureAs brotliSupport "brotli" (lib.getDev brotli))
       (lib.withFeatureAs gnutlsSupport "gnutls" (lib.getDev gnutls))
       (lib.withFeatureAs idnSupport "libidn2" (lib.getDev libidn2))
@@ -171,7 +179,6 @@ stdenv.mkDerivation (finalAttrs: {
     inherit opensslSupport openssl;
     tests = {
       withCheck = finalAttrs.finalPackage.overrideAttrs (_: { doCheck = true; });
-      fetchpatch = tests.fetchpatch.simple.override { fetchpatch = (fetchpatch.override { fetchurl = useThisCurl fetchurl; }) // { version = 1; }; };
       curlpp = useThisCurl curlpp;
       coeurl = useThisCurl coeurl;
       haskell-curl = useThisCurl haskellPackages.curl;
@@ -183,6 +190,8 @@ stdenv.mkDerivation (finalAttrs: {
       # nginx-http3 = useThisCurl nixosTests.nginx-http3;
       nginx-http3 = nixosTests.nginx-http3;
       pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    } // lib.optionalAttrs (!stdenv.isDarwin) {
+      fetchpatch = tests.fetchpatch.simple.override { fetchpatch = (fetchpatch.override { fetchurl = useThisCurl fetchurl; }) // { version = 1; }; };
     };
   };
 
diff --git a/pkgs/tools/networking/curlie/default.nix b/pkgs/tools/networking/curlie/default.nix
index b75d21ede847a..68088a03bc203 100644
--- a/pkgs/tools/networking/curlie/default.nix
+++ b/pkgs/tools/networking/curlie/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "curlie";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "rs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-EHSFr05VXJuOjUnweEJngdnfSUZUF1HsO28ZBSLGlvE=";
+    hash = "sha256-YOsq3cB+Pn2eC1Dky3fobBRR7GMxcf/tvWr6i3Vq/BE=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/dae/default.nix b/pkgs/tools/networking/dae/default.nix
index cc95bb4dc826b..18856ca5f0e35 100644
--- a/pkgs/tools/networking/dae/default.nix
+++ b/pkgs/tools/networking/dae/default.nix
@@ -5,17 +5,17 @@
 }:
 buildGoModule rec {
   pname = "dae";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "daeuniverse";
     repo = "dae";
     rev = "v${version}";
-    hash = "sha256-WiJqhXYehuUCLEuVbsQkmTntuH1srtePtZgYBSTbxiw=";
+    hash = "sha256-hvAuWCacaWxXwxx5ktj57hnWt8fcnwD6rUuRj1+ZtFA=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-fb4PEMhV8+5zaRJyl+nYi2BHcOUDUVAwxce2xaRt5JA=";
+  vendorHash = "sha256-qK+x6ciAebwIWHRjRpNXCAqsfnmEx37evS4+7kwcFIs=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/networking/davix/default.nix b/pkgs/tools/networking/davix/default.nix
index 68a9a8c19ff28..159fd0f154104 100644
--- a/pkgs/tools/networking/davix/default.nix
+++ b/pkgs/tools/networking/davix/default.nix
@@ -26,7 +26,7 @@ let
   boolToUpper = b: lib.toUpper (lib.boolToString b);
 in
 stdenv.mkDerivation rec {
-  version = "0.8.4";
+  version = "0.8.5";
   pname = "davix" + lib.optionalString enableThirdPartyCopy "-copy";
   nativeBuildInputs = [ cmake pkg-config python3 ];
   buildInputs = [
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   # https://github.com/cern-fts/davix/releases/tag/R_0_8_0
   src = fetchurl {
     url = "https://github.com/cern-fts/davix/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/davix-${version}.tar.gz";
-    sha256 = "sha256-UZ1W90bobqP9YVvEnlWbUg3wfgUeHKPYwJIGeVjzsrc=";
+    sha256 = "sha256-+c4hvMLtJI94JQWdF1d4dmFiWMNRd9dPrY+FSoGKh/k=";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/networking/dd-agent/datadog-agent.nix b/pkgs/tools/networking/dd-agent/datadog-agent.nix
index 4ce4d255ee810..4116e28858edc 100644
--- a/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -10,21 +10,23 @@
 , hostname
 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
 , extraTags ? [ ]
+, testers
+, datadog-agent
 }:
 
 let
   # keep this in sync with github.com/DataDog/agent-payload dependency
-  payloadVersion = "5.0.89";
+  payloadVersion = "5.0.97";
   python = pythonPackages.python;
   owner   = "DataDog";
   repo    = "datadog-agent";
   goPackagePath = "github.com/${owner}/${repo}";
-  version = "7.45.1";
+  version = "7.50.3";
 
   src = fetchFromGitHub {
     inherit owner repo;
     rev = version;
-    sha256 = "sha256-bG8wsSQvZcG4/Th6mWVdVX9vpeYBZx8FxwdYXpIdXnU=";
+    hash = "sha256-AN5BruLPyrpIGSUkcYkZC0VgItk9NHiZTXstv6j9TlY=";
   };
   rtloader = stdenv.mkDerivation {
     pname = "datadog-agent-rtloader";
@@ -41,7 +43,7 @@ in buildGoModule rec {
 
   doCheck = false;
 
-  vendorHash = "sha256-bGDf48wFa32hURZfGN5pCMmslC3PeLNayKcl5cfjq9M=";
+  vendorHash = "sha256-Rn8EB/6FHQk9COlOaxm4TQXjGCIPZHJV2QQnPDcbRnM=";
 
   subPackages = [
     "cmd/agent"
@@ -62,6 +64,7 @@ in buildGoModule rec {
     "process"
     "log"
     "secrets"
+    "zlib"
   ]
   ++ lib.optionals withSystemd [ "systemd" ]
   ++ extraTags;
@@ -84,9 +87,9 @@ in buildGoModule rec {
   postPatch = ''
     sed -e "s|PyChecksPath =.*|PyChecksPath = \"$out/${python.sitePackages}\"|" \
         -e "s|distPath =.*|distPath = \"$out/share/datadog-agent\"|" \
-        -i cmd/agent/common/common_nix.go
+        -i cmd/agent/common/path/path_nix.go
     sed -e "s|/bin/hostname|${lib.getBin hostname}/bin/hostname|" \
-        -i pkg/util/hostname_nix.go
+        -i pkg/util/hostname/fqdn_nix.go
   '';
 
   # Install the config files and python modules from the "dist" dir
@@ -103,6 +106,11 @@ in buildGoModule rec {
       --set PYTHONPATH "$out/${python.sitePackages}"'' + lib.optionalString withSystemd '' \
       --prefix LD_LIBRARY_PATH : '' + lib.makeLibraryPath [ (lib.getLib systemd) rtloader ];
 
+  passthru.tests.version = testers.testVersion {
+    package = datadog-agent;
+    command = "agent version";
+  };
+
   meta = with lib; {
     description = ''
       Event collector for the DataDog analysis service
@@ -110,7 +118,7 @@ in buildGoModule rec {
     '';
     homepage    = "https://www.datadoghq.com";
     license     = licenses.bsd3;
-    maintainers = with maintainers; [ thoughtpolice domenkozar rvl viraptor ];
+    maintainers = with maintainers; [ thoughtpolice domenkozar ];
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
   };
diff --git a/pkgs/tools/networking/dd-agent/datadog-process-agent.nix b/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
index 1dbedea502322..4d1334505f32b 100644
--- a/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
@@ -4,7 +4,7 @@ datadog-agent.overrideAttrs (attrs: {
   meta = with lib;
     attrs.meta // {
       description = "Live process collector for the DataDog Agent v7";
-      maintainers = with maintainers; [ domenkozar rvl ];
+      maintainers = with maintainers; [ domenkozar ];
     };
   subPackages = [ "cmd/process-agent" ];
   postInstall = null;
diff --git a/pkgs/tools/networking/ddclient/default.nix b/pkgs/tools/networking/ddclient/default.nix
new file mode 100644
index 0000000000000..ec84c7c526cb6
--- /dev/null
+++ b/pkgs/tools/networking/ddclient/default.nix
@@ -0,0 +1,53 @@
+{ lib, fetchFromGitHub, perlPackages, autoreconfHook, perl, curl }:
+
+let
+  myPerl = perl.withPackages (ps: [ ps.JSONPP ]);
+in
+perlPackages.buildPerlPackage rec {
+  pname = "ddclient";
+  version = "3.11.2";
+
+  outputs = [ "out" ];
+
+  src = fetchFromGitHub {
+    owner = "ddclient";
+    repo = "ddclient";
+    rev = "v${version}";
+    sha256 = "sha256-d1G+AM28nBpMWh1QBjm78KKeOL5b5arxERYRCXohwBg=";
+  };
+
+  postPatch = ''
+    touch Makefile.PL
+  '';
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ curl myPerl ];
+
+  # Prevent ddclient from picking up build time perl which is implicitly added
+  # by buildPerlPackage.
+  configureFlags = [
+    "--with-perl=${lib.getExe myPerl}"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 ddclient $out/bin/ddclient
+    install -Dm644 -t $out/share/doc/ddclient COP* README.* ChangeLog.md
+
+    runHook postInstall
+  '';
+
+  # TODO: run upstream tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Client for updating dynamic DNS service entries";
+    homepage = "https://ddclient.net/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "ddclient";
+  };
+}
diff --git a/pkgs/tools/networking/ddns-go/default.nix b/pkgs/tools/networking/ddns-go/default.nix
index 1785eae4580cf..0b4111a90e519 100644
--- a/pkgs/tools/networking/ddns-go/default.nix
+++ b/pkgs/tools/networking/ddns-go/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ddns-go";
-  version = "5.6.3";
+  version = "6.0.3";
 
   src = fetchFromGitHub {
     owner = "jeessy2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-yOi2dowde2hTZOWq1Trpf3tAypA6bD6SawP5geqK7Ms=";
+    hash = "sha256-hfL4heW2p1JdNEAQqsRMmvXSeBkw/zWfXk0YPXyqLXk=";
   };
 
-  vendorHash = "sha256-e4mmUneFZCsteSrxfSeeky/pFc0sgNs0eRVnZQuG1ZI=";
+  vendorHash = "sha256-UsMeYI/YogTbwyaJjVZbGMbxa434BDRBF+5VoSk6G9k=";
 
   ldflags = [
     "-X main.version=${version}"
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index 40cfa4077227b..9d4dc1cd7c2c6 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , udev
 , runtimeShellPackage
@@ -12,36 +11,25 @@
 
 stdenv.mkDerivation rec {
   pname = "dhcpcd";
-  version = "9.4.1";
+  version = "10.0.6";
 
   src = fetchFromGitHub {
     owner = "NetworkConfiguration";
     repo = "dhcpcd";
     rev = "v${version}";
-    sha256 = "sha256-qyxON+TsAKMwAI19b5P+dT/sgxpW6m1giGcf/boFpHc=";
+    sha256 = "sha256-tNC5XCA8dShaTIff15mQz8v+YK9sZkRNLCX5qnlpxx4=";
   };
 
-  patches = [
-    # dhcpcd with privsep SIGSYS's on dhcpcd -U
-    # https://github.com/NetworkConfiguration/dhcpcd/issues/147
-    (fetchpatch {
-      url = "https://github.com/NetworkConfiguration/dhcpcd/commit/38befd4e867583002b96ec39df733585d74c4ff5.patch";
-      hash = "sha256-nS2zmLuQBYhLfoPp0DOwxF803Hh32EE4OUKGBTTukE0=";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     udev
     runtimeShellPackage # So patchShebangs finds a bash suitable for the installed scripts
   ];
 
-  prePatch = ''
+  postPatch = ''
     substituteInPlace hooks/dhcpcd-run-hooks.in --replace /bin/sh ${runtimeShell}
   '';
 
-  preConfigure = "patchShebangs ./configure";
-
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
diff --git a/pkgs/tools/networking/dirb/default.nix b/pkgs/tools/networking/dirb/default.nix
index 1ff6c33bcc26b..17a518bdea212 100644
--- a/pkgs/tools/networking/dirb/default.nix
+++ b/pkgs/tools/networking/dirb/default.nix
@@ -32,8 +32,9 @@ in stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-fcommon";
 
   postInstall = ''
-    mkdir -p $out/share/dirb/
+    mkdir -p $out/share/{dirb,wordlists}
     cp -r wordlists/ $out/share/dirb/
+    ln -s $out/share/dirb/wordlists/ $out/share/wordlists/dirb
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index b23753e204126..43d2124d682b3 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, nettle
-, libidn, libnetfilter_conntrack, buildPackages
+, libidn, libnetfilter_conntrack, nftables, buildPackages
 , dbusSupport ? stdenv.isLinux
 , dbus
 , nixosTests
@@ -13,6 +13,7 @@ let
     "-DHAVE_DBUS"
   ] ++ lib.optionals stdenv.isLinux [
     "-DHAVE_CONNTRACK"
+    "-DHAVE_NFTSET"
   ]);
 in
 stdenv.mkDerivation rec {
@@ -75,7 +76,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ nettle libidn ]
     ++ lib.optionals dbusSupport [ dbus ]
-    ++ lib.optionals stdenv.isLinux [ libnetfilter_conntrack ];
+    ++ lib.optionals stdenv.isLinux [ libnetfilter_conntrack nftables ];
 
   passthru.tests = {
     prometheus-exporter = nixosTests.prometheus-exporters.dnsmasq;
diff --git a/pkgs/tools/networking/dnsperf/default.nix b/pkgs/tools/networking/dnsperf/default.nix
index 7c8913a7f4304..5be21155feea8 100644
--- a/pkgs/tools/networking/dnsperf/default.nix
+++ b/pkgs/tools/networking/dnsperf/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dnsperf";
-  version = "2.13.1";
+  version = "2.14.0";
 
   src = fetchFromGitHub {
     owner = "DNS-OARC";
     repo = "dnsperf";
     rev = "v${version}";
-    hash = "sha256-iNTuLcN9bsBPyXZ8SL96moFaI2pTcEhFey8+4xo9iyk=";
+    hash = "sha256-eDDVNFMjj+0wEBe1qO6r4Bai554Sp+EmP86reJ/VXGk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/dnstwist/default.nix b/pkgs/tools/networking/dnstwist/default.nix
index 9c82eab503d66..1d075a75de249 100644
--- a/pkgs/tools/networking/dnstwist/default.nix
+++ b/pkgs/tools/networking/dnstwist/default.nix
@@ -5,16 +5,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dnstwist";
-  version = "20230918";
-  format = "setuptools";
+  version = "20240116";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "elceef";
-    repo = pname;
+    repo = "dnstwist";
     rev = "refs/tags/${version}";
-    hash = "sha256-LGeDb0++9Zsal9HOXjfjF18RFQS+6i578EfD3YTtlS4=";
+    hash = "sha256-areFRDi728SedArhUy/rbPzhoFabNoT/WdyyN+6OQK0=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     dnspython
     geoip
diff --git a/pkgs/tools/networking/dogdns/default.nix b/pkgs/tools/networking/dogdns/default.nix
index 0677704b7ad51..e368e10715e62 100644
--- a/pkgs/tools/networking/dogdns/default.nix
+++ b/pkgs/tools/networking/dogdns/default.nix
@@ -63,7 +63,7 @@ rustPlatform.buildRustPackage rec {
     description = "Command-line DNS client";
     homepage = "https://dns.lookup.dog";
     license = licenses.eupl12;
-    maintainers = with maintainers; [ bbigras figsoda ];
+    maintainers = with maintainers; [ figsoda ];
     mainProgram = "dog";
   };
 }
diff --git a/pkgs/tools/networking/doggo/default.nix b/pkgs/tools/networking/doggo/default.nix
deleted file mode 100644
index ebebb1fcca05a..0000000000000
--- a/pkgs/tools/networking/doggo/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-, installShellFiles
-, fetchpatch
-}:
-
-buildGoModule rec {
-  pname = "doggo";
-  version = "0.5.5";
-
-  src = fetchFromGitHub {
-    owner = "mr-karan";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-qc6RYz2bVaY/IBGIXUYO6wyh7iUDAJ1ASCK0dFwZo6s=";
-  };
-
-  patches = [
-    # go 1.20 support
-    # https://github.com/mr-karan/doggo/pull/66
-    (fetchpatch {
-      url = "https://github.com/mr-karan/doggo/commit/7db5c2144fa4a3f18afe1c724b9367b03f84aed7.patch";
-      hash = "sha256-cx8s23e02zIvJOtuqTz8XC9ApYODh96Ubl1KhsFUZ9g=";
-    })
-  ];
-
-  vendorHash = "sha256-GVLfPK1DFVSfNSdIxYSaspHFphd8ft2HUK0SMeWiVUg=";
-  nativeBuildInputs = [ installShellFiles ];
-  subPackages = [ "cmd/doggo" ];
-
-  ldflags = [
-    "-w -s"
-    "-X main.buildVersion=v${version}"
-  ];
-
-  postInstall = ''
-    installShellCompletion --cmd doggo \
-      --fish --name doggo.fish completions/doggo.fish \
-      --zsh --name _doggo completions/doggo.zsh
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/mr-karan/doggo";
-    description = "Command-line DNS Client for Humans. Written in Golang";
-    longDescription = ''
-      doggo is a modern command-line DNS client (like dig) written in Golang.
-      It outputs information in a neat concise manner and supports protocols like DoH, DoT, DoQ, and DNSCrypt as well
-    '';
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ georgesalkhouri ];
-  };
-}
diff --git a/pkgs/tools/networking/dq/default.nix b/pkgs/tools/networking/dq/default.nix
index e166a19ce4dd1..94bf2cd5c3b22 100644
--- a/pkgs/tools/networking/dq/default.nix
+++ b/pkgs/tools/networking/dq/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dq";
-  version = "20230101";
+  version = "20240101";
 
   src = fetchFromGitHub {
     owner = "janmojzis";
     repo = "dq";
     rev = "refs/tags/${version}";
-    hash = "sha256-K96yOonOYSsz26Bf/vx9XtWs7xyY0Dpxdd55OMbQz8k=";
+    hash = "sha256-dN2QpQU2jRkSVzaYh2MKbJvx0J1XACHHjsM/ePvZAp8=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch b/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch
deleted file mode 100644
index 5e5cfd50af3e7..0000000000000
--- a/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/http_display/httpd.c b/src/http_display/httpd.c
-index f4709ef..7921d23 100644
---- a/src/http_display/httpd.c
-+++ b/src/http_display/httpd.c
-@@ -191,7 +191,6 @@ static void * http_server_dispatch(void *arg)
-         LWSMPRO_FILE,                  /* mount type is a directory in a filesystem */
-         1,                                     /* strlen("/"), ie length of the mountpoint */
-         NULL,
--        { NULL, NULL } // sentinel
-     };
-
-     memset(&info, 0, sizeof info);
diff --git a/pkgs/tools/networking/easyrsa/default.nix b/pkgs/tools/networking/easyrsa/default.nix
index 8790d5ada9354..740a9935ca35f 100644
--- a/pkgs/tools/networking/easyrsa/default.nix
+++ b/pkgs/tools/networking/easyrsa/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "easyrsa";
-  version = "3.1.6";
+  version = "3.1.7";
 
   src = fetchFromGitHub {
     owner = "OpenVPN";
     repo = "easy-rsa";
     rev = "v${version}";
-    sha256 = "sha256-VbL2QXc4IaTe6u17nhByIk+SEsKLhl6sk85E5moGfjs=";
+    sha256 = "sha256-zdVcT04nj7eE1a6M7WHeWpwG/TVTwyK+WgD70XwPXfY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/edgedb/Cargo.lock b/pkgs/tools/networking/edgedb/Cargo.lock
index 556735390f549..5372163a7ee71 100644
--- a/pkgs/tools/networking/edgedb/Cargo.lock
+++ b/pkgs/tools/networking/edgedb/Cargo.lock
@@ -61,18 +61,72 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
 
 [[package]]
+name = "ansi-escapes"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e3c0daaaae24df5995734b689627f8fa02101bc5bbc768be3055b66a010d7af"
+
+[[package]]
+name = "anstream"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
 name = "anstyle"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
 
 [[package]]
+name = "anstyle-parse"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "anyhow"
 version = "1.0.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
 
 [[package]]
+name = "append-only-vec"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5608767d94038891df4c7bb82f6b1beb55fe3d204735985e20de329bc35d5fee"
+
+[[package]]
 name = "arc-swap"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -309,9 +363,10 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa"
 dependencies = [
- "num-bigint",
+ "num-bigint 0.4.3",
  "num-integer",
  "num-traits",
+ "serde",
 ]
 
 [[package]]
@@ -322,9 +377,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
 
 [[package]]
 name = "bitvec"
@@ -400,9 +455,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.12.0"
+version = "3.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
 
 [[package]]
 name = "byteorder"
@@ -478,37 +533,63 @@ version = "3.2.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
 dependencies = [
- "atty",
  "bitflags 1.3.2",
- "clap_derive",
- "clap_lex",
+ "clap_lex 0.2.4",
  "indexmap 1.9.3",
- "once_cell",
- "strsim",
- "termcolor",
  "textwrap",
 ]
 
 [[package]]
+name = "clap"
+version = "4.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex 0.5.1",
+ "strsim",
+ "terminal_size 0.3.0",
+]
+
+[[package]]
 name = "clap_complete"
 version = "3.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f7a2e0a962c45ce25afce14220bc24f9dade0a1787f185cecf96bfba7847cd8"
 dependencies = [
- "clap",
+ "clap 3.2.25",
+]
+
+[[package]]
+name = "clap_complete"
+version = "4.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3ae8ba90b9d8b007efe66e55e48fb936272f5ca00349b5b0e89877520d35ea7"
+dependencies = [
+ "clap 4.4.6",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "3.2.25"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008"
+checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
 dependencies = [
  "heck",
- "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.18",
 ]
 
 [[package]]
@@ -517,8 +598,8 @@ version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e1b28c4a802ac3628604fd267cac62aaea74dc61af3410db6b1c44c03b42599"
 dependencies = [
- "clap",
- "clap_complete",
+ "clap 3.2.25",
+ "clap_complete 3.2.5",
 ]
 
 [[package]]
@@ -531,6 +612,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "clap_lex"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+
+[[package]]
 name = "clicolors-control"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -553,6 +640,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "color-print"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a858372ff14bab9b1b30ea504f2a4bc534582aee3e42ba2d41d2a7baba63d5d"
+dependencies = [
+ "color-print-proc-macro",
+]
+
+[[package]]
+name = "color-print-proc-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57e37866456a721d0a404439a1adae37a31be4e0055590d053dfe6981e05003f"
+dependencies = [
+ "nom",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
 name = "colorful"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -884,8 +998,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "edgedb-cli"
-version = "3.4.0"
+version = "4.0.2"
 dependencies = [
+ "ansi-escapes",
  "anyhow",
  "arc-swap",
  "assert_cmd",
@@ -899,10 +1014,11 @@ dependencies = [
  "blake3",
  "bytes",
  "chrono",
- "clap",
- "clap_complete",
+ "clap 4.4.6",
+ "clap_complete 4.4.3",
  "clicolors-control",
  "codespan-reporting",
+ "color-print",
  "colorful",
  "combine",
  "crossbeam-utils",
@@ -937,7 +1053,7 @@ dependencies = [
  "native-tls",
  "nix",
  "notify",
- "num-bigint",
+ "num-bigint 0.4.3",
  "once_cell",
  "open",
  "openssl",
@@ -973,7 +1089,7 @@ dependencies = [
  "term",
  "termcolor",
  "termimad",
- "terminal_size",
+ "terminal_size 0.2.6",
  "test-case",
  "textwrap",
  "thiserror",
@@ -999,9 +1115,9 @@ dependencies = [
 
 [[package]]
 name = "edgedb-cli-derive"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
- "clap",
+ "clap 4.4.6",
  "clap_generate",
  "heck",
  "indexmap 1.9.3",
@@ -1015,8 +1131,8 @@ dependencies = [
 
 [[package]]
 name = "edgedb-derive"
-version = "0.5.0"
-source = "git+https://github.com/edgedb/edgedb-rust/#4f12f749bc88af8167f1929d883920869c5572fc"
+version = "0.5.1"
+source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1026,23 +1142,23 @@ dependencies = [
 
 [[package]]
 name = "edgedb-errors"
-version = "0.4.0"
-source = "git+https://github.com/edgedb/edgedb-rust/#4f12f749bc88af8167f1929d883920869c5572fc"
+version = "0.4.1"
+source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
 dependencies = [
  "bytes",
 ]
 
 [[package]]
 name = "edgedb-protocol"
-version = "0.5.0"
-source = "git+https://github.com/edgedb/edgedb-rust/#4f12f749bc88af8167f1929d883920869c5572fc"
+version = "0.6.0"
+source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
 dependencies = [
  "bigdecimal",
- "bitflags 2.3.1",
+ "bitflags 2.4.0",
  "bytes",
  "chrono",
  "edgedb-errors",
- "num-bigint",
+ "num-bigint 0.4.3",
  "num-traits",
  "snafu",
  "uuid",
@@ -1050,8 +1166,8 @@ dependencies = [
 
 [[package]]
 name = "edgedb-tokio"
-version = "0.4.0"
-source = "git+https://github.com/edgedb/edgedb-rust/#4f12f749bc88af8167f1929d883920869c5572fc"
+version = "0.5.0"
+source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
 dependencies = [
  "anyhow",
  "arc-swap",
@@ -1087,11 +1203,17 @@ dependencies = [
 [[package]]
 name = "edgeql-parser"
 version = "0.1.0"
-source = "git+https://github.com/edgedb/edgedb#68033e0256a9c4f214ec1b2042817d8e235f56ec"
+source = "git+https://github.com/edgedb/edgedb#6f6b4cd1174daff8a1c1a7065659bb7837599b3e"
 dependencies = [
+ "append-only-vec",
  "base32",
- "combine",
+ "bigdecimal",
+ "bumpalo",
+ "indexmap 1.9.3",
  "memchr",
+ "num-bigint 0.3.3",
+ "phf",
+ "serde_json",
  "sha2",
  "snafu",
  "thiserror",
@@ -1210,7 +1332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642"
 dependencies = [
  "cfg-if",
- "rustix",
+ "rustix 0.37.7",
  "windows-sys 0.48.0",
 ]
 
@@ -1755,7 +1877,7 @@ checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
 dependencies = [
  "hermit-abi 0.3.1",
  "io-lifetimes",
- "rustix",
+ "rustix 0.37.7",
  "windows-sys 0.48.0",
 ]
 
@@ -1860,6 +1982,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+
+[[package]]
 name = "lock_api"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1934,6 +2062,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
 name = "miniz_oxide"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1996,6 +2130,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
 name = "normalize-line-endings"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2021,6 +2165,18 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "num-bigint"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
@@ -2280,6 +2436,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
 
 [[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.18",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
 name = "pin-project"
 version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2662,11 +2860,24 @@ dependencies = [
  "errno",
  "io-lifetimes",
  "libc",
- "linux-raw-sys",
+ "linux-raw-sys 0.3.8",
  "windows-sys 0.45.0",
 ]
 
 [[package]]
+name = "rustix"
+version = "0.38.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+dependencies = [
+ "bitflags 2.4.0",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.10",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rustls"
 version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2951,6 +3162,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "siphasher"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+
+[[package]]
 name = "slab"
 version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3076,7 +3293,7 @@ dependencies = [
  "cfg-if",
  "fastrand",
  "redox_syscall 0.3.5",
- "rustix",
+ "rustix 0.37.7",
  "windows-sys 0.45.0",
 ]
 
@@ -3120,7 +3337,17 @@ version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
- "rustix",
+ "rustix 0.37.7",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+dependencies = [
+ "rustix 0.38.3",
  "windows-sys 0.48.0",
 ]
 
@@ -3170,7 +3397,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
 dependencies = [
  "smawk",
- "terminal_size",
+ "terminal_size 0.2.6",
  "unicode-linebreak",
  "unicode-width",
 ]
diff --git a/pkgs/tools/networking/edgedb/default.nix b/pkgs/tools/networking/edgedb/default.nix
index 5da99ea97f7c9..1ace10486dea5 100644
--- a/pkgs/tools/networking/edgedb/default.nix
+++ b/pkgs/tools/networking/edgedb/default.nix
@@ -19,21 +19,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "edgedb";
-  version = "3.4.0";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     owner = "edgedb";
     repo = "edgedb-cli";
-    rev =  "v${version}";
-    sha256 = "sha256-w6YpjSmh517yat45l4gGdV6qWD4O3aCx/6LL5wea+RA=";
+    rev = "v${version}";
+    hash = "sha256-uilotat61U6jW1NLh7fVHOujkzUSFRdpeOx+ECGsByY=";
     fetchSubmodules = true;
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "edgedb-derive-0.5.0" = "sha256-y/mN0XuJtQBtkLmbk2s7hK5joGEH5Ge6sLCD88WyL9o=";
-      "edgeql-parser-0.1.0" = "sha256-Y3gXxPuR7qnTL4fu2nZIa3e20YV1fLvm2jHAng+Ke2Q=";
+      "edgedb-derive-0.5.1" = "sha256-1tbWg3bLab3xlVQxb4G+kpXriO+zQpnrwAESy5Tqsu4=";
+      "edgeql-parser-0.1.0" = "sha256-c5xBuW47xXgy8VLR/P7DvVhLBd0rvI6P9w82IPPsTwo=";
       "indexmap-2.0.0-pre" = "sha256-QMOmoUHE1F/sp+NeDpgRGqqacWLHWG02YgZc5vAdXZY=";
       "rexpect-0.5.0" = "sha256-vstAL/fJWWx7WbmRxNItKpzvgGF3SvJDs5isq9ym/OA=";
       "rustyline-8.0.0" = "sha256-CrICwQbHPzS4QdVIEHxt2euX+g+0pFYe84NfMp1daEc=";
@@ -68,6 +68,6 @@ rustPlatform.buildRustPackage rec {
     description = "EdgeDB cli";
     homepage = "https://www.edgedb.com/docs/cli/index";
     license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = [ maintainers.ranfdev ];
+    maintainers = with maintainers; [ ahirner kirillrdy ];
   };
 }
diff --git a/pkgs/tools/networking/fast-ssh/default.nix b/pkgs/tools/networking/fast-ssh/default.nix
index 912cac7586508..5d899fa541840 100644
--- a/pkgs/tools/networking/fast-ssh/default.nix
+++ b/pkgs/tools/networking/fast-ssh/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , rustPlatform
 , Security
 }:
@@ -18,6 +19,15 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-sIQNoH3UWX3SwCFCPZEREIFR7C28ml4oGsrq6wuOAT0=";
 
+  patches = [
+    # Can be removed as soon as this is is merged: https://github.com/Julien-R44/fast-ssh/pull/22
+    (fetchpatch {
+      name = "fix-ambiguous-as_ref.patch";
+      url = "https://github.com/Julien-R44/fast-ssh/commit/c082a64a4b412380b2ab145c24161fdaa26175db.patch";
+      hash = "sha256-egkoJF+rQiuClNL8ltzmB7oHngbpOxO29rlwZ3nELOE=";
+    })
+  ];
+
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/findomain/Cargo.lock b/pkgs/tools/networking/findomain/Cargo.lock
index d240f122c6aa4..81f9d4667a655 100644
--- a/pkgs/tools/networking/findomain/Cargo.lock
+++ b/pkgs/tools/networking/findomain/Cargo.lock
@@ -29,9 +29,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.5"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -59,9 +59,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
 
 [[package]]
 name = "async-compression"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb42b2197bf15ccb092b62c74515dbd8b86d0effd934795f6687c93b6e679a2c"
+checksum = "f658e2baef915ba0f26f1f7c42bfb8e12f532a01f449a090ded75ae7a07e9ba2"
 dependencies = [
  "flate2",
  "futures-core",
@@ -78,18 +78,18 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.73"
+version = "0.1.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -113,7 +113,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "reqwest",
- "serde 1.0.188",
+ "serde 1.0.189",
  "serde_json",
 ]
 
@@ -180,9 +180,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "block-buffer"
@@ -195,15 +195,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
@@ -260,7 +260,7 @@ dependencies = [
  "lazy_static",
  "nom",
  "rust-ini",
- "serde 1.0.188",
+ "serde 1.0.189",
  "serde-hjson",
  "serde_json",
  "toml",
@@ -408,7 +408,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
 dependencies = [
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -551,38 +551,27 @@ dependencies = [
 
 [[package]]
 name = "enum-as-inner"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "errno"
-version = "0.3.3"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
 dependencies = [
- "errno-dragonfly",
  "libc",
  "windows-sys",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
 name = "failure"
 version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -599,14 +588,14 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
 
 [[package]]
 name = "fastrand"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fhc"
 version = "0.7.1"
-source = "git+https://github.com/Edu4rdSHL/fhc?rev=c6ea4c6ad810061312f4b380d0ab7d51775950b1#c6ea4c6ad810061312f4b380d0ab7d51775950b1"
+source = "git+https://github.com/Edu4rdSHL/fhc?rev=513ce142003190a54acd5fff05c557fd1574edb6#513ce142003190a54acd5fff05c557fd1574edb6"
 dependencies = [
  "async-recursion",
  "clap",
@@ -620,7 +609,7 @@ dependencies = [
 
 [[package]]
 name = "findomain"
-version = "9.0.1"
+version = "9.0.3"
 dependencies = [
  "addr",
  "anyhow",
@@ -639,7 +628,7 @@ dependencies = [
  "rayon",
  "reqwest",
  "rusolver",
- "serde 1.0.188",
+ "serde 1.0.189",
  "serde_derive",
  "serde_json",
  "tokio",
@@ -654,9 +643,9 @@ checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6"
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -764,7 +753,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -890,7 +879,7 @@ dependencies = [
  "log 0.4.20",
  "rand 0.7.3",
  "regex",
- "serde 1.0.188",
+ "serde 1.0.189",
  "serde_json",
  "tempfile",
  "thiserror",
@@ -916,9 +905,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "hmac"
@@ -942,9 +931,9 @@ dependencies = [
 
 [[package]]
 name = "html5ever"
-version = "0.25.2"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148"
+checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
 dependencies = [
  "log 0.4.20",
  "mac",
@@ -1193,9 +1182,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.149"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
 
 [[package]]
 name = "linked-hash-map"
@@ -1205,9 +1194,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.7"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
 
 [[package]]
 name = "lock_api"
@@ -1251,13 +1240,13 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 
 [[package]]
 name = "markup5ever"
-version = "0.10.1"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
+checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 dependencies = [
  "log 0.4.20",
- "phf 0.8.0",
- "phf_codegen",
+ "phf 0.10.1",
+ "phf_codegen 0.10.0",
  "string_cache",
  "string_cache_codegen",
  "tendril",
@@ -1277,18 +1266,19 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 
 [[package]]
 name = "md-5"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
 dependencies = [
+ "cfg-if",
  "digest",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -1381,14 +1371,14 @@ version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
 dependencies = [
- "num-traits 0.2.16",
+ "num-traits 0.2.17",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg 1.1.0",
 ]
@@ -1399,7 +1389,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.3",
  "libc",
 ]
 
@@ -1424,7 +1414,7 @@ version = "0.10.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1441,7 +1431,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -1452,9 +1442,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.1.3+3.1.2"
+version = "300.1.5+3.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd2c101a165fff9935e34def4669595ab1c7847943c42be86e21503e482be107"
+checksum = "559068e4c12950d7dcaa1857a61725c0d38d4fc03ff8e070ab31a75d6e316491"
 dependencies = [
  "cc",
 ]
@@ -1545,6 +1535,15 @@ dependencies = [
 
 [[package]]
 name = "phf"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+dependencies = [
+ "phf_shared 0.10.0",
+]
+
+[[package]]
+name = "phf"
 version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
@@ -1563,6 +1562,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "phf_codegen"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+]
+
+[[package]]
 name = "phf_generator"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1717,9 +1726,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
@@ -1943,9 +1952,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
 dependencies = [
  "either",
  "rayon-core",
@@ -1953,14 +1962,12 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
@@ -1992,9 +1999,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2004,9 +2011,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2015,15 +2022,15 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.20"
+version = "0.11.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
 dependencies = [
  "async-compression",
  "base64 0.21.4",
@@ -2047,15 +2054,16 @@ dependencies = [
  "pin-project-lite",
  "rustls",
  "rustls-pemfile",
- "serde 1.0.188",
+ "serde 1.0.189",
  "serde_json",
  "serde_urlencoded",
+ "system-configuration",
  "tokio",
  "tokio-native-tls",
  "tokio-rustls",
  "tokio-util",
  "tower-service",
- "trust-dns-resolver 0.22.0",
+ "trust-dns-resolver 0.23.1",
  "url 2.4.1",
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -2124,11 +2132,11 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.13"
+version = "0.38.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
+checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -2158,9 +2166,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-webpki"
-version = "0.101.5"
+version = "0.101.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed"
+checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe"
 dependencies = [
  "ring",
  "untrusted",
@@ -2195,9 +2203,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "scraper"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48e02aa790c80c2e494130dec6a522033b6a23603ffc06360e9fe6c611ea2c12"
+checksum = "5684396b456f3eb69ceeb34d1b5cb1a2f6acf7ca4452131efa3ba0ee2c2d0a70"
 dependencies = [
  "cssparser",
  "ego-tree",
@@ -2255,7 +2263,7 @@ dependencies = [
  "log 0.4.20",
  "matches",
  "phf 0.8.0",
- "phf_codegen",
+ "phf_codegen 0.8.0",
  "precomputed-hash",
  "servo_arc",
  "smallvec",
@@ -2264,9 +2272,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "serde"
@@ -2276,9 +2284,9 @@ checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.189"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
 dependencies = [
  "serde_derive",
 ]
@@ -2297,13 +2305,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.189"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -2314,7 +2322,7 @@ checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
 dependencies = [
  "itoa 1.0.9",
  "ryu",
- "serde 1.0.188",
+ "serde 1.0.189",
 ]
 
 [[package]]
@@ -2326,7 +2334,7 @@ dependencies = [
  "form_urlencoded",
  "itoa 1.0.9",
  "ryu",
- "serde 1.0.188",
+ "serde 1.0.189",
 ]
 
 [[package]]
@@ -2356,9 +2364,9 @@ checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -2391,9 +2399,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
 
 [[package]]
 name = "socket2"
@@ -2455,7 +2463,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "phf_shared 0.10.0",
  "precomputed-hash",
- "serde 1.0.188",
+ "serde 1.0.189",
 ]
 
 [[package]]
@@ -2512,9 +2520,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.33"
+version = "2.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9caece70c63bfba29ec2fed841a09851b14a235c60010fa4de58089b6c025668"
+checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2522,6 +2530,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "tempfile"
 version = "3.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2562,22 +2591,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.49"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.49"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -2608,9 +2637,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.33.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2633,7 +2662,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -2684,9 +2713,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"
 dependencies = [
  "bytes",
  "futures-core",
@@ -2702,7 +2731,7 @@ version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
 dependencies = [
- "serde 1.0.188",
+ "serde 1.0.189",
 ]
 
 [[package]]
@@ -2713,11 +2742,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9"
 dependencies = [
- "cfg-if",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -2725,20 +2753,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
@@ -2775,20 +2803,20 @@ dependencies = [
 
 [[package]]
 name = "trust-dns-proto"
-version = "0.22.0"
+version = "0.23.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26"
+checksum = "559ac980345f7f5020883dd3bcacf176355225e01916f8c2efecad7534f682c6"
 dependencies = [
  "async-trait",
  "cfg-if",
  "data-encoding",
- "enum-as-inner 0.5.1",
+ "enum-as-inner 0.6.0",
  "futures-channel",
  "futures-io",
  "futures-util",
- "idna 0.2.3",
+ "idna 0.4.0",
  "ipnet",
- "lazy_static",
+ "once_cell",
  "rand 0.8.5",
  "smallvec",
  "thiserror",
@@ -2820,22 +2848,23 @@ dependencies = [
 
 [[package]]
 name = "trust-dns-resolver"
-version = "0.22.0"
+version = "0.23.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe"
+checksum = "c723b0e608b24ad04c73b2607e0241b2c98fd79795a95e98b068b6966138a29d"
 dependencies = [
  "cfg-if",
  "futures-util",
  "ipconfig 0.3.2",
- "lazy_static",
  "lru-cache",
+ "once_cell",
  "parking_lot 0.12.1",
+ "rand 0.8.5",
  "resolv-conf",
  "smallvec",
  "thiserror",
  "tokio",
  "tracing",
- "trust-dns-proto 0.22.0",
+ "trust-dns-proto 0.23.1",
 ]
 
 [[package]]
@@ -2852,9 +2881,9 @@ checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "unicase"
@@ -2888,9 +2917,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "untrusted"
@@ -2998,7 +3027,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
  "wasm-bindgen-shared",
 ]
 
@@ -3032,7 +3061,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.38",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix
index 230cc646afec6..636dcc7094620 100644
--- a/pkgs/tools/networking/findomain/default.nix
+++ b/pkgs/tools/networking/findomain/default.nix
@@ -10,19 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "9.0.1";
+  version = "9.0.3";
 
   src = fetchFromGitHub {
     owner = "findomain";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-YYdmkWqprSr0crfrCQexHTg6XfysuYnrnL9BSwdq7Xw=";
+    hash = "sha256-M6i62JI4HjaM0C2rSK8P5O19JeugFP5xIy1E6vE8KP4=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "fhc-0.7.1" = "sha256-bLlaQN9HdAUt6kgP7ToVkZwwD0fNsNMmXn+BtxP52Ss=";
+      "fhc-0.7.1" = "sha256-gSAwpuVL+5vLkHTsh60qyza7IoxgUWBQcWl2N7md51s=";
       "headless_chrome-0.9.0" = "sha256-0BMm0tmCbUL1BSdD6rJLG735FYJsmkSrPQBs2zWx414=";
       "rusolver-0.9.1" = "sha256-84qe/A+FN8Q+r8tk0waOq+sBgnDpG9bwoQI+K5pE4Wc=";
       "trust-dns-proto-0.20.4" = "sha256-+oAjyyTXbKir8e5kn8CUmQy5qmzQ47ryvBBdZtzj1TY=";
diff --git a/pkgs/tools/networking/flannel/default.nix b/pkgs/tools/networking/flannel/default.nix
index 0d7b5be4b5a2e..3a39fe3fd7e1a 100644
--- a/pkgs/tools/networking/flannel/default.nix
+++ b/pkgs/tools/networking/flannel/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flannel";
-  version = "0.22.3";
+  version = "0.24.0";
   rev = "v${version}";
 
-  vendorHash = "sha256-2P9gEbItK7rCtveXIZkFMcvppjK4GLzTSoLrkMPeCig=";
+  vendorHash = "sha256-vxzcFVFbbXeBb9kAJaAkvk26ptGo8CdnPJdcuC9qdF0=";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "flannel-io";
     repo = "flannel";
-    sha256 = "sha256-sO3iFs6pAmnqpc9+hxx2WZQWOP37/4XS1m5U4nerVLI=";
+    sha256 = "sha256-Tog1H5/7B2Dke3vFqOyqKxYo0UzMzA80Da0LFscto2A=";
   };
 
   ldflags = [ "-X github.com/flannel-io/flannel/pkg/version.Version=${rev}" ];
diff --git a/pkgs/tools/networking/frp/default.nix b/pkgs/tools/networking/frp/default.nix
index 01fbc5d26aa2e..3f81a72831706 100644
--- a/pkgs/tools/networking/frp/default.nix
+++ b/pkgs/tools/networking/frp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "frp";
-  version = "0.51.3";
+  version = "0.53.2";
 
   src = fetchFromGitHub {
     owner = "fatedier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ijcYSuB91I9lD4qx6ohVFDQgTE0+FTQ5Hr1heNwKyUo=";
+    sha256 = "sha256-/z/pZgB4PepJXXjOBuuq1wHXI2pn/KCxY9cdfANdWGQ=";
   };
 
-  vendorHash = "sha256-DFQ59E24LR5/qodtge0EsqajvrjPN0otpxGB8JQ0ERw=";
+  vendorHash = "sha256-mcgHbwdqcIu4BceuQg+Es0dsIpWG0bsIpd056IOxuiY=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/gen6dns/default.nix b/pkgs/tools/networking/gen6dns/default.nix
index 6f020c2a66365..92d33d55da98b 100644
--- a/pkgs/tools/networking/gen6dns/default.nix
+++ b/pkgs/tools/networking/gen6dns/default.nix
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
     installManPage gen6dns.1
   '';
 
+  configureFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    "ac_cv_func_malloc_0_nonnull=yes"
+  ];
+
   makeFlags = [ "INSTALL_DIR=$(out)/bin" ];
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/globalping-cli/default.nix b/pkgs/tools/networking/globalping-cli/default.nix
index bc07f20a5b11e..8c77a942d6630 100644
--- a/pkgs/tools/networking/globalping-cli/default.nix
+++ b/pkgs/tools/networking/globalping-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "globalping-cli";
-  version = "1.1.0";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "jsdelivr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-UY+SAmkE8h/K92Em5iikcMiNixkqnDVkhlrKVq1ZkVM=";
+    hash = "sha256-bPHS980iByWEBiqs4CEoI8SdlI4vaqGhyIRrXUUtVOo=";
   };
 
-  vendorHash = "sha256-fUB7WIEAPBot8A2f7WQ5wUDtCrOydZd4nd4qDuy1vzg=";
+  vendorHash = "sha256-PiSFDA6mZNDe6BhmKxAGuXsBZ+3aBFJ/gBwY/a6Z5gE=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/networking/gobgp/default.nix b/pkgs/tools/networking/gobgp/default.nix
index 8675e3e695988..8304f15ba960d 100644
--- a/pkgs/tools/networking/gobgp/default.nix
+++ b/pkgs/tools/networking/gobgp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "3.19.0";
+  version = "3.23.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-zDLL+3k6/Jgq/pflpmjuLcfPzvDl0LQLQklW+kOvtQg=";
+    sha256 = "sha256-PUwYcwWgaV/DQl565fugppc+I/y7z7Ns3P4SspS88ts=";
   };
 
-  vendorHash = "sha256-8qEGp95y8iBIJXCTh2Pa/JwiruZVVIjHLwaZqwFZMl8=";
+  vendorHash = "sha256-5eB3vFOo3LCsjMnWYFH0yq5+IunwKXp5C34x6NvpFZ8=";
 
   postConfigure = ''
     export CGO_ENABLED=0
diff --git a/pkgs/tools/networking/godns/default.nix b/pkgs/tools/networking/godns/default.nix
index a75fae9f724c8..d02e7527d149c 100644
--- a/pkgs/tools/networking/godns/default.nix
+++ b/pkgs/tools/networking/godns/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "godns";
-  version = "3.0.1";
+  version = "3.0.6";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "godns";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MmjPcJxz8wAgBwPg8UaYVniypDeY05yDxehkTL8zjro=";
+    hash = "sha256-e4d0q4Sw0/Oq5AHw1ikRKakKSVdtf+hTbg7OX/RLT+o=";
   };
 
-  vendorHash = "sha256-iAU62/0MjzxwuMvIobhIZEqDJUpRqwEabnazH7jBRTE=";
+  vendorHash = "sha256-PVp09gWk35T0gQoYOPzaVFtrqua0a8cNjPOgfYyu7zg=";
 
   # Some tests require internet access, broken in sandbox
   doCheck = false;
diff --git a/pkgs/tools/networking/goflow2/default.nix b/pkgs/tools/networking/goflow2/default.nix
index fafc7297a2843..9ec8c51057248 100644
--- a/pkgs/tools/networking/goflow2/default.nix
+++ b/pkgs/tools/networking/goflow2/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "goflow2";
-  version = "2.0.0";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "netsampler";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tY2+4lGy+2thpRDNeTw1kfOtZvOspXCYU7dhYcckbRo=";
+    hash = "sha256-eI5Czx721aty1b+rs8uHrx0IBM/DK7bkPck1QIYPcNI=";
   };
 
   ldflags = [
@@ -20,7 +20,7 @@ buildGoModule rec {
     "-X=main.version=${version}"
   ];
 
-  vendorHash = "sha256-KcknR2IaHz2EzOFwSHppbmNDISrFdNoB4QmLT74/KWY=";
+  vendorHash = "sha256-9Ebrkizt/r60Kxh291CLzwKIkpdQqJuVYQ2umxih9lo=";
 
   meta = with lib; {
     description = "High performance sFlow/IPFIX/NetFlow Collector";
diff --git a/pkgs/tools/networking/goimapnotify/default.nix b/pkgs/tools/networking/goimapnotify/default.nix
index efae7622184a0..288bfd4f1a79b 100644
--- a/pkgs/tools/networking/goimapnotify/default.nix
+++ b/pkgs/tools/networking/goimapnotify/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "goimapnotify";
-  version = "2.3.7";
+  version = "2.3.10";
 
   src = fetchFromGitLab {
     owner = "shackra";
     repo = "goimapnotify";
     rev = version;
-    sha256 = "sha256-Wot+E+rDgXQ4FVgdfqe6a3O9oYUK3X1xImC33eDuUBo=";
+    sha256 = "sha256-RGEHKOmJqy9Cz5GWfck3VBZD6Q3DySoTYg0+Do4sy/4=";
   };
 
   vendorHash = "sha256-DphGe9jbKo1aIfpF5kRYNSn/uIYHaRMrygda5t46svw=";
diff --git a/pkgs/tools/networking/gost/default.nix b/pkgs/tools/networking/gost/default.nix
index f36ee2d3e206e..6e7743fb990ca 100644
--- a/pkgs/tools/networking/gost/default.nix
+++ b/pkgs/tools/networking/gost/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, buildGoModule }:
+{ stdenv, lib, fetchFromGitHub, buildGoModule, fetchpatch }:
 
 buildGoModule rec {
   pname = "gost";
@@ -11,7 +11,15 @@ buildGoModule rec {
     sha256 = "sha256-UBjrWeBw9+qKQ/+1T1W/3e0vrigp540URIyM2d9iCE8=";
   };
 
-  vendorHash = "sha256-lA4uW0cc0XqU9pjVEMapFLb3eD20Lea9PbkgL3sjJns=";
+  patches = [
+    # Add go1.20 support. Remove with the next release.
+    (fetchpatch {
+      url = "https://github.com/ginuerzh/gost/commit/0f7376bd10c913c7e6b1e7e02dd5fd7769975d78.patch";
+      hash = "sha256-pQNCvl7/huNrkM3+XHkGnvLYCzdjbMV6nef1KcMnKEw=";
+    })
+  ];
+
+  vendorHash = "sha256-wAdNfhSPj9JUcI6Gcja6nRy68bVhV8B4PARR0WS9rjQ=";
 
   postPatch = ''
     substituteInPlace http2_test.go \
@@ -41,8 +49,9 @@ buildGoModule rec {
       --replace '{url.UserPassword("AES-256-GCM", "123456"), url.UserPassword("AES-256-GCM", "123456"), true},' ""
   '';
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "A simple tunnel written in golang";
     homepage = "https://github.com/ginuerzh/gost";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/gping/default.nix b/pkgs/tools/networking/gping/default.nix
index 6e9e32f361e19..4a31bb1494b79 100644
--- a/pkgs/tools/networking/gping/default.nix
+++ b/pkgs/tools/networking/gping/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gping";
-  version = "1.14.0";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "orf";
     repo = "gping";
     rev = "gping-v${version}";
-    hash = "sha256-ReP+s2p0X39LVvl3/QF7fsYkU+OvsQyMhyuH8v4HuVU=";
+    hash = "sha256-t9USry3I6tc8EKsfkq28/hPJMbaf0BqqOdzCl3oXd60=";
   };
 
-  cargoHash = "sha256-FTiNxCoEe/iMz68F1CpJHypgrhn4WwwWowuN9I1rl6E=";
+  cargoHash = "sha256-QERmZOyC4U6ZpCkL7ap5MRvPEE2vqK/tD+CrBLg07J0=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/pkgs/tools/networking/grpc_cli/default.nix b/pkgs/tools/networking/grpc_cli/default.nix
index 7919698f53d20..844d315f5eb5f 100644
--- a/pkgs/tools/networking/grpc_cli/default.nix
+++ b/pkgs/tools/networking/grpc_cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc_cli";
-  version = "1.59.1";
+  version = "1.61.0";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    hash = "sha256-4bou7oFQOgyxjFqJdmiFT8xEMCsOap9v34W6SPrT4WQ=";
+    hash = "sha256-NLxcGFQ1F5RLoSFC0XYMjvGXkSWc/vLzgtk5qsOndEo=";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ automake cmake autoconf ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
   meta = with lib; {
-    description = "The command line tool for interacting with grpc services.";
+    description = "The command line tool for interacting with grpc services";
     homepage = "https://github.com/grpc/grpc";
     license = licenses.asl20;
     maintainers = with maintainers; [ doriath ];
diff --git a/pkgs/tools/networking/grpcui/default.nix b/pkgs/tools/networking/grpcui/default.nix
index 820b7f202f14a..eb7400b41890a 100644
--- a/pkgs/tools/networking/grpcui/default.nix
+++ b/pkgs/tools/networking/grpcui/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grpcui";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "fullstorydev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ssKVgvMO6+7/FQFxbHVTipDFVXZZ/9Ww/kFTqxTgdLQ=";
+    sha256 = "sha256-G4lVYwx8fYxuyHI2CzAfBQHQV/G4lf7zBwL8JTpnscA=";
   };
 
-  vendorHash = "sha256-ui/zaHwZH5zdrcKFXwIrJ3TCLUeONsjSexIHoa6hRH8=";
+  vendorHash = "sha256-lw8HildV1RFTGLOf6FaitbXPxr4FtVGg7GxdzBVFiTM=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/grpcurl/default.nix b/pkgs/tools/networking/grpcurl/default.nix
index a99f26effc13b..02ad218cbf17a 100644
--- a/pkgs/tools/networking/grpcurl/default.nix
+++ b/pkgs/tools/networking/grpcurl/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "grpcurl";
-  version = "1.8.8";
+  version = "1.8.9";
 
   src = fetchFromGitHub {
     owner = "fullstorydev";
     repo = "grpcurl";
     rev = "v${version}";
-    sha256 = "sha256-/GPFUMN6NQAoKOYJ6j9j0GmyEcYtYdOB7B8v2gNpNm8=";
+    sha256 = "sha256-zN/vleCph919HXZZ9wsXoJBXRT6y7gjyuQxnjRMzq00=";
   };
 
   subPackages = [ "cmd/grpcurl" ];
 
-  vendorHash = "sha256-8mGlmWuWae/NQ1aR0KVj0XS7rqROCs0PBDUkMAKijYU=";
+  vendorHash = "sha256-g5G966CuaVILGAgWunHAPrrkLjSv8pBj9R4bcLzyI+A=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/pkgs/tools/networking/gsocket/default.nix b/pkgs/tools/networking/gsocket/default.nix
index 281884316311b..4bf445fe85329 100644
--- a/pkgs/tools/networking/gsocket/default.nix
+++ b/pkgs/tools/networking/gsocket/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gsocket";
-  version = "1.4.40";
+  version = "1.4.41";
 
   src = fetchFromGitHub {
     owner = "hackerschoice";
     repo = "gsocket";
     rev = "v${version}";
-    hash = "sha256-pY4tjrMbx+OxkJfr8czo5fbhfcmJbiNX4B+FibzUc7w=";
+    hash = "sha256-N/dGvEjCkCQvTTWApN0iQi2W3c5ZsaHXnZpjRxSfByY=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/networking/gvpe/default.nix b/pkgs/tools/networking/gvpe/default.nix
index 37f698386e240..5170df24b91ce 100644
--- a/pkgs/tools/networking/gvpe/default.nix
+++ b/pkgs/tools/networking/gvpe/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    sed -e 's@"/sbin/ifconfig.*"@"${iproute2}/sbin/ip link set $IFNAME address $MAC mtu $MTU"@' -i src/device-linux.C
+    sed -e 's@"/sbin/ifconfig.*"@"${iproute2}/sbin/ip link set dev $IFNAME address $MAC mtu $MTU"@' -i src/device-linux.C
     sed -e 's@/sbin/ifconfig@${nettools}/sbin/ifconfig@g' -i src/device-*.C
   '';
 
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index 6ac8dfb04ef6f..ce275eca6783f 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -1,33 +1,44 @@
 { useLua ? true
 , usePcre ? true
 , withPrometheusExporter ? true
+, sslLibrary ? "quictls"
 , stdenv
 , lib
 , fetchurl
 , nixosTests
-, openssl
 , zlib
 , libxcrypt
-, lua5_3 ? null
-, pcre ? null
-, systemd ? null
+, wolfssl
+, libressl
+, quictls
+, openssl
+, lua5_4
+, pcre2
+, systemd
 }:
 
-assert useLua -> lua5_3 != null;
-assert usePcre -> pcre != null;
-
-stdenv.mkDerivation (finalAttrs: {
+assert lib.assertOneOf "sslLibrary" sslLibrary [ "quictls" "openssl" "libressl" "wolfssl" ];
+let
+  sslPkgs = {
+    inherit quictls openssl libressl;
+    wolfssl = wolfssl.override {
+      variant = "haproxy";
+      extraConfigureFlags = [ "--enable-quic" ];
+    };
+  };
+  sslPkg = sslPkgs.${sslLibrary};
+in stdenv.mkDerivation (finalAttrs: {
   pname = "haproxy";
-  version = "2.8.2";
+  version = "2.9.4";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${lib.versions.majorMinor finalAttrs.version}/src/haproxy-${finalAttrs.version}.tar.gz";
-    hash = "sha256-aY1pBtFwlGqGl2mWTleBa6PaOt9h/3XomXKxN/RljbA=";
+    hash = "sha256-nDiSzDwISsTwASXvIqFRzxgUFthKqKN69q9qoDmQlrw=";
   };
 
-  buildInputs = [ openssl zlib libxcrypt ]
-    ++ lib.optional useLua lua5_3
-    ++ lib.optional usePcre pcre
+  buildInputs = [ sslPkg zlib libxcrypt ]
+    ++ lib.optional useLua lua5_4
+    ++ lib.optional usePcre pcre2
     ++ lib.optional stdenv.isLinux systemd;
 
   # TODO: make it work on bsd as well
@@ -40,16 +51,23 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   buildFlags = [
-    "USE_OPENSSL=yes"
     "USE_ZLIB=yes"
+    "USE_OPENSSL=yes"
+    "SSL_INC=${lib.getDev sslPkg}/include"
+    "SSL_LIB=${lib.getDev sslPkg}/lib"
+    "USE_QUIC=yes"
+  ] ++ lib.optionals (sslLibrary == "openssl") [
+    "USE_QUIC_OPENSSL_COMPAT=yes"
+  ] ++ lib.optionals (sslLibrary == "wolfssl") [
+    "USE_OPENSSL_WOLFSSL=yes"
   ] ++ lib.optionals usePcre [
-    "USE_PCRE=yes"
-    "USE_PCRE_JIT=yes"
+    "USE_PCRE2=yes"
+    "USE_PCRE2_JIT=yes"
   ] ++ lib.optionals useLua [
     "USE_LUA=yes"
     "LUA_LIB_NAME=lua"
-    "LUA_LIB=${lua5_3}/lib"
-    "LUA_INC=${lua5_3}/include"
+    "LUA_LIB=${lua5_4}/lib"
+    "LUA_INC=${lua5_4}/include"
   ] ++ lib.optionals stdenv.isLinux [
     "USE_SYSTEMD=yes"
     "USE_GETADDRINFO=1"
@@ -74,7 +92,7 @@ stdenv.mkDerivation (finalAttrs: {
       tens of thousands of connections is clearly realistic with todays
       hardware.
     '';
-    maintainers = with lib.maintainers; [ ];
+    maintainers = with lib.maintainers; [ vifino ];
     platforms = with lib.platforms; linux ++ darwin;
     mainProgram = "haproxy";
   };
diff --git a/pkgs/tools/networking/hblock/default.nix b/pkgs/tools/networking/hblock/default.nix
index 8d7f25678edff..19e7dde77c85a 100644
--- a/pkgs/tools/networking/hblock/default.nix
+++ b/pkgs/tools/networking/hblock/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hblock";
-  version = "3.4.2";
+  version = "3.4.4";
 
   src = fetchFromGitHub {
     owner = "hectorm";
     repo = "hblock";
     rev = "v${version}";
-    hash = "sha256-wO0xfD1bMRhoU7jorsIenlKJ87DzrtVH66OSZ4UT3MM=";
+    hash = "sha256-cYLpK5zUOzgbcBVrJT/N6Y9kMpg6KD1EthrstoF4sF8=";
   };
 
   buildInputs = [ coreutils curl gnugrep gawk ];
diff --git a/pkgs/tools/networking/hp2p/default.nix b/pkgs/tools/networking/hp2p/default.nix
index 52f3455ed4d5a..9e2b5d639049c 100644
--- a/pkgs/tools/networking/hp2p/default.nix
+++ b/pkgs/tools/networking/hp2p/default.nix
@@ -2,20 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "hp2p";
-  version = "3.3";
+  version = "unstable-2023-10-25";
 
   src = fetchFromGitHub {
     owner = "cea-hpc";
     repo = "hp2p";
-    rev = version;
-    sha256 = "0zvlwb941rlp3vrf9yzv7njgpj3mh4671ch7qvxfa4hq2ivd52br";
+    rev = "711f6cc5b4e552d969c2436ad77afd35d31bfd05";
+    sha256 = "sha256-mBTJZb3DPmIlL7N+PfjlWmBw0WfFF2DesImVZlbDQKc=";
   };
 
-  patches = [ ./python3.patch ];
   enableParallelBuilding = true;
   nativeBuildInputs = [ autoconf automake python3Packages.wrapPython ];
-  buildInputs = [ mpi ] ++ (with python3Packages; [ python numpy matplotlib plotly mpldatacursor ]) ;
-  pythonPath = (with python3Packages; [ numpy matplotlib plotly mpldatacursor ]) ;
+  buildInputs = [ mpi ] ++ (with python3Packages; [ python plotly ]) ;
+  pythonPath = (with python3Packages; [ plotly ]) ;
 
   preConfigure = ''
     patchShebangs autogen.sh
diff --git a/pkgs/tools/networking/hp2p/python3.patch b/pkgs/tools/networking/hp2p/python3.patch
deleted file mode 100644
index 13043d9f09f11..0000000000000
--- a/pkgs/tools/networking/hp2p/python3.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-diff -u -r source.orig/src/vizhp2p source/src/vizhp2p
---- source.orig/src/vizhp2p	1970-01-01 01:00:01.000000000 +0100
-+++ source/src/vizhp2p	2021-08-24 10:41:42.926881770 +0200
-@@ -94,25 +94,25 @@
-             with open(hostfile) as fd:
-                 for line in fd:
-                     if line.startswith(motif_rank):
--                        print line
-+                        print(line)
-                         c,v = line[len(motif_rank)+1:-1].split(separator)
-                         nodes[c] = v
-                         
-         # display k worst nodes indices
--        print "\nTop %d bad mean:" % k
-+        print("\nTop %d bad mean:" % k)
-         mean_order = np.argsort(a_mean)
--        print [nodes[str(c)] for c in mean_order[:k]]
-+        print([nodes[str(c)] for c in mean_order[:k]])
-         mean_st = "Top nodes with bad mean:\n"
-         for i in range(0, k, hostname_per_line):
-             mean_st += repr([nodes[str(c)] for c 
-                              in mean_order[i:i + hostname_per_line]]) + "\n"
- 
--        print "Top %d bad std:" % k
--        print [nodes[str(c)] for c in np.argsort(a_std)[-k:][::-1]]
-+        print("Top %d bad std:" % k)
-+        print([nodes[str(c)] for c in np.argsort(a_std)[-k:][::-1]])
- 
--        print "Top %d bad mean/std:" % k
-+        print("Top %d bad mean/std:" % k)
-         pen_order = np.argsort(a_mean / a_std)
--        print [nodes[str(c)] for c in pen_order[:k]]
-+        print([nodes[str(c)] for c in pen_order[:k]])
-         pen_st = "Top nodes with bad mean/std:\n"
-         for i in range(0, k, hostname_per_line):
-             pen_st += repr([nodes[str(c)] for c 
-@@ -293,9 +293,9 @@
- # and 'p' (snapshot) 
- def onrefresh(event):
-     if event.key == 'r':
--        print "refreshing...",
-+        print("refreshing...", end=' ')
-         loop()
--        print "ok"
-+        print("ok")
-     elif event.key == 'q':
-         exit()
-     elif event.key == 'p':
-@@ -303,9 +303,9 @@
-         fig1.savefig(snapfile)
-         snapfile = outputname + "_snapshot_time.png"
-         fig2.savefig(snapfile)
--        print 'snapshot saved (%s)' % snapfile
-+        print('snapshot saved (%s)' % snapfile)
-     else:
--        print "The answer to %s is 42." % event.key
-+        print("The answer to %s is 42." % event.key)
- 
- 
- if __name__ == "__main__":
-@@ -356,11 +356,11 @@
-         countfile = outputname + ".count.bin"
- 
-     print("visu_hp2p configuration:")
--    print("   DATAFILE            : %s"%resfile)
--    print("   BIN_TIMER_FILE      : %s"%resfile_time)
--    print("   HOSTFILE            : %s"%hostfile)
--    print("   Bad nodes to display: %d"%k)
--    print("   GUI resolution      : %s"%resolution)
-+    print(("   DATAFILE            : %s"%resfile))
-+    print(("   BIN_TIMER_FILE      : %s"%resfile_time))
-+    print(("   HOSTFILE            : %s"%hostfile))
-+    print(("   Bad nodes to display: %d"%k))
-+    print(("   GUI resolution      : %s"%resolution))
- 
-     hostname_per_line = 4 # for GUI layout
-     refresh_in_sec = 60
-@@ -377,7 +377,7 @@
-     # wait for resfile
-     while not os.path.exists(resfile) :
-         time.sleep(5)
--        print "Waiting for input files..."
-+        print("Waiting for input files...")
- 
-     # add callback on key press event
-     cid1 = fig1.canvas.mpl_connect('key_press_event', onrefresh)
-Only in source/src: vizhp2p.bak
-diff -u -r source.orig/src/vizhp2p_html source/src/vizhp2p_html
---- source.orig/src/vizhp2p_html	1970-01-01 01:00:01.000000000 +0100
-+++ source/src/vizhp2p_html	2021-08-24 10:41:54.799946303 +0200
-@@ -118,7 +118,7 @@
-     hostfile = args.hostfile
-     clustername = args.clustername
-     if len(args.OutputName) == 0:
--        print "No DATAFILE given! Please provide Hp2p output files name !"
-+        print("No DATAFILE given! Please provide Hp2p output files name !")
-         exit(0)
-     else:
-         outputname = args.OutputName.split('.')[0]
-@@ -134,13 +134,13 @@
-         else:
-             outfile = args.outfile
- 
--    print "%s configuration:"%commandname
--    print "   DATAFILE            : %s"%resfile
--    print "   HOSTFILE            : %s"%hostfile
--    print "   CLUSTER             : %s"%clustername
--    print "   OUTPUTFILE          : %s"%outfile
-+    print("%s configuration:"%commandname)
-+    print("   DATAFILE            : %s"%resfile)
-+    print("   HOSTFILE            : %s"%hostfile)
-+    print("   CLUSTER             : %s"%clustername)
-+    print("   OUTPUTFILE          : %s"%outfile)
-     if not os.path.exists(resfile):
--        print "%s doesn't exist...Exiting"%resfile
-+        print("%s doesn't exist...Exiting"%resfile)
-         exit(0)
- 
- # Data management
-Only in source/src: vizhp2p_html.bak
diff --git a/pkgs/tools/networking/hping/default.nix b/pkgs/tools/networking/hping/default.nix
index 33663a44d2a96..11a8cad05b9cd 100644
--- a/pkgs/tools/networking/hping/default.nix
+++ b/pkgs/tools/networking/hping/default.nix
@@ -28,6 +28,13 @@ stdenv.mkDerivation rec {
   '' + lib.optionalString stdenv.isLinux ''
     sed -i -e 's|#include <net/bpf.h>|#include <pcap/bpf.h>|' \
       libpcap_stuff.c script.c
+  '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    substituteInPlace configure --replace 'BYTEORDER=`./byteorder -m`' BYTEORDER=${
+      {
+        littleEndian = "__LITTLE_ENDIAN_BITFIELD";
+        bigEndian = "__BIG_ENDIAN_BITFIELD";
+      }.${stdenv.hostPlatform.parsed.cpu.significantByte.name}}
+    substituteInPlace Makefile.in --replace './hping3 -v' ""
   '';
 
   configureFlags = [ (if withTcl then "TCLSH=${tcl}/bin/tclsh" else "--no-tcl") ];
diff --git a/pkgs/tools/networking/httptunnel/default.nix b/pkgs/tools/networking/httptunnel/default.nix
index 13ef641753586..c8ff4fa7719d8 100644
--- a/pkgs/tools/networking/httptunnel/default.nix
+++ b/pkgs/tools/networking/httptunnel/default.nix
@@ -1,17 +1,27 @@
-{ lib, stdenv, fetchurl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+}:
 
 stdenv.mkDerivation rec {
-  version = "3.3";
+  version = "3.3-unstable-2023-05-08";
   pname = "httptunnel";
 
-  src = fetchurl {
-    url    = "http://www.nocrew.org/software/httptunnel/${pname}-${version}.tar.gz";
-    sha256 = "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql";
+  src = fetchFromGitHub {
+    owner = "larsbrinkhoff";
+    repo = "httptunnel";
+    rev = "d8f91af976c97a6006a5bd1ad7149380c39ba454";
+    hash = "sha256-fUaVHE3nxq3fU7DYCvaQTOoMzax/qFH8cMegFLLybNk=";
   };
 
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
   meta = with lib; {
     description = "Creates a bidirectional virtual data connection tunnelled in HTTP requests";
-    homepage    = "http://www.nocrew.org/software/httptunnel";
+    homepage    = "http://www.gnu.org/software/httptunnel/httptunnel.html";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ koral ];
     platforms   = platforms.unix;
diff --git a/pkgs/tools/networking/hurl/default.nix b/pkgs/tools/networking/hurl/default.nix
index d34d00f56b518..669814c5fb39d 100644
--- a/pkgs/tools/networking/hurl/default.nix
+++ b/pkgs/tools/networking/hurl/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hurl";
-  version = "4.0.0";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "Orange-OpenSource";
     repo = pname;
     rev = version;
-    hash = "sha256-ubzcCY3ccjt2VSZNx9+l3M/z4o7wWcE7USAlA9BnQY0=";
+    hash = "sha256-77RGS4B5Jwb/J5eOG2A7sdfAU7PnRaxqz5nogpOnj70=";
   };
 
-  cargoHash = "sha256-C8WeYFaqF748QZkp/CppqJjF3QW1k7OWXycxSoxKPOI=";
+  cargoHash = "sha256-3D8jyHFrhb3y4yeYtO1GqSyb5wlqUydf/4clsbLjJVE=";
 
   nativeBuildInputs = [
     pkg-config
@@ -42,10 +42,11 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "Command line tool that performs HTTP requests defined in a simple plain text format.";
+    description = "Command line tool that performs HTTP requests defined in a simple plain text format";
     homepage = "https://hurl.dev/";
     changelog = "https://github.com/Orange-OpenSource/hurl/blob/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ eonpatapon figsoda ];
     license = licenses.asl20;
+    mainProgram = "hurl";
   };
 }
diff --git a/pkgs/tools/networking/hysteria/default.nix b/pkgs/tools/networking/hysteria/default.nix
index 9885066397b6c..649a5b074a78d 100644
--- a/pkgs/tools/networking/hysteria/default.nix
+++ b/pkgs/tools/networking/hysteria/default.nix
@@ -1,26 +1,29 @@
 { lib
 , fetchFromGitHub
-, buildGo121Module
+, buildGoModule
 }:
-buildGo121Module rec {
+buildGoModule rec {
   pname = "hysteria";
-  version = "2.0.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "apernet";
     repo = pname;
     rev = "app/v${version}";
-    hash = "sha256-0ekw92T9yWrKu5MxSssOCXlUFubiVLoH6ZLEMDFkcis=";
+    hash = "sha256-A8UTnvH5BYRETsjte65+M+HHO6MrqCiPthNEYwBkBYs=";
   };
 
-  vendorHash = "sha256-Hf+Jx/z+hJ6jqWLJHGK7umNgNzNKYgQtCdAosdrqvPg=";
+  vendorHash = "sha256-uh/qYQBWsyazSbJIz1ykf5bap18fGSIfjVDL8zus2l0=";
   proxyVendor = true;
 
-  ldflags = [
-    "-s"
-    "-w"
-    "-X main.appVersion=${version}"
-  ];
+  ldflags =
+    let cmd = "github.com/apernet/hysteria/app/cmd";
+    in [
+      "-s"
+      "-w"
+      "-X ${cmd}.appVersion=${version}"
+      "-X ${cmd}.appType=release"
+    ];
 
   postInstall = ''
     mv $out/bin/app $out/bin/hysteria
@@ -33,7 +36,7 @@ buildGo121Module rec {
     description = "A feature-packed proxy & relay utility optimized for lossy, unstable connections";
     homepage = "https://github.com/apernet/hysteria";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ oluceps ];
   };
 }
diff --git a/pkgs/tools/networking/i2p/default.nix b/pkgs/tools/networking/i2p/default.nix
index 2444a12fc52b8..c160dfd2e7a9e 100644
--- a/pkgs/tools/networking/i2p/default.nix
+++ b/pkgs/tools/networking/i2p/default.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "i2p";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchurl {
     urls = map (mirror: "${mirror}/${finalAttrs.version}/i2psource_${finalAttrs.version}.tar.bz2") [
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
       "https://files.i2p-projekt.de"
       "https://download.i2p2.no/releases"
     ];
-    sha256 = "sha256-oKj7COnHLq7yLxVbnJqg6pD7Mx0rvPdvgmSfC57+X1s=";
+    sha256 = "sha256-MO+K/K0P/6/ZTTCsMH+GtaazGOLB9EoCMAWEGh/NB3w=";
   };
 
   buildInputs = [ jdk ant gettext which ];
@@ -79,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
       mit
       publicDomain
     ];
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
     maintainers = with maintainers; [ joelmo ];
   };
 })
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index e1234a3745587..ffcf397ea1a17 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "i2pd";
-  version = "2.48.0";
+  version = "2.50.2";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "sha256-MqkpzNUd2FZgt9TZPtEp+jIq7r3sr+EeTpHlqNCgatU=";
+    sha256 = "sha256-6BzY7t+bFYYwKnj+uuX+vWHg0w0BOuMGwgMg1yIF578=";
   };
 
   buildInputs = [ boost zlib openssl ]
diff --git a/pkgs/tools/networking/inadyn/default.nix b/pkgs/tools/networking/inadyn/default.nix
index bf33bd4d2a36e..c5a13f04cade8 100644
--- a/pkgs/tools/networking/inadyn/default.nix
+++ b/pkgs/tools/networking/inadyn/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "inadyn";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "troglobit";
     repo = "inadyn";
     rev = "v${version}";
-    sha256 = "sha256-WNSpV3KhALzl35R1hR0QBzm8atdnbfsB5xh3h4MZBqA=";
+    sha256 = "sha256-aQHJtnMDaHF1XY9lwQVR6f78Zk2UI7OC3Oxt1r1KMak=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/networking/inetutils/default.nix b/pkgs/tools/networking/inetutils/default.nix
index e4eb2eeaac41f..cbd327b07297d 100644
--- a/pkgs/tools/networking/inetutils/default.nix
+++ b/pkgs/tools/networking/inetutils/default.nix
@@ -1,21 +1,21 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , ncurses
 , perl
 , help2man
 , apparmorRulesFromClosure
 , libxcrypt
+, util-linux
 }:
 
 stdenv.mkDerivation rec {
   pname = "inetutils";
-  version = "2.4";
+  version = "2.5";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-F4nWsbGlff4qere1M+6fXf2cv1tZuxuzwmEu0I0PaLI=";
+    hash = "sha256-h2l9YKMeELXLhqnwZR4ex77pgyDQSMBzlDGqw9V2T7Y=";
   };
 
   outputs = ["out" "apparmor"];
@@ -23,17 +23,18 @@ stdenv.mkDerivation rec {
   patches = [
     # https://git.congatec.com/yocto/meta-openembedded/commit/3402bfac6b595c622e4590a8ff5eaaa854e2a2a3
     ./inetutils-1_9-PATH_PROCNET_DEV.patch
-    (fetchpatch {
-      name = "CVE-2023-40303.patch";
-      url = "https://git.savannah.gnu.org/cgit/inetutils.git/patch/?id=e4e65c03f4c11292a3e40ef72ca3f194c8bffdd6";
-      hash = "sha256-I5skN537owfpFpAZr4vDKPHuERI6+oq5/hFW2RQeUxI=";
-    })
   ];
 
   strictDeps = true;
   nativeBuildInputs = [ help2man perl /* for `whois' */ ];
   buildInputs = [ ncurses /* for `talk' */ libxcrypt ];
 
+  env = lib.optionalAttrs stdenv.isDarwin {
+    # This is a temporary workaround for missing headers in the 10.12 SDK to avoid a mass rebuild.
+    # A commit to revert this change will be included in the fix PR targeting staging.
+    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
+  };
+
   # Don't use help2man if cross-compiling
   # https://lists.gnu.org/archive/html/bug-sed/2017-01/msg00001.html
   # https://git.congatec.com/yocto/meta-openembedded/blob/3402bfac6b595c622e4590a8ff5eaaa854e2a2a3/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.1.bb#L44
@@ -87,5 +88,15 @@ stdenv.mkDerivation rec {
 
     maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.unix;
+
+    /**
+      The `logger` binary from `util-linux` is preferred over `inetutils`.
+      To instead prioritize this package, set a _lower_ `meta.priority`, or
+      use e.g. `lib.setPrio 5 inetutils`.
+
+      Note that the default `meta.priority` is defined in `buildEnv` and is
+      currently 5.
+    */
+    priority = (util-linux.meta.priority or 5) + 1;
   };
 }
diff --git a/pkgs/tools/networking/innernet/default.nix b/pkgs/tools/networking/innernet/default.nix
index 373bfd3709949..f4523e0ec201c 100644
--- a/pkgs/tools/networking/innernet/default.nix
+++ b/pkgs/tools/networking/innernet/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "innernet";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "tonarino";
     repo = "innernet";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eAiYXE8kSfuhBgrIo6rbtE2YH9JcLJwA/vXA5IWNYG8=";
+    hash = "sha256-dFMAzLvPO5xAfJqUXdiLf13uh5H5ay+CI9aop7Fhprk=";
   };
 
-  cargoHash = "sha256-F+VvVF+5I53IF4Vur0SkUQXoqo8EE3XWirm88gu/GI4=";
+  cargoHash = "sha256-39LryfisVtNMX2XLPh/AEQ1KzVtwdE3wuTaTbxGMaBI=";
 
   nativeBuildInputs = [
     rustPlatform.bindgenHook
diff --git a/pkgs/tools/networking/iperf/3.nix b/pkgs/tools/networking/iperf/3.nix
index 41323b55d2f5c..ffb1d5c4627a5 100644
--- a/pkgs/tools/networking/iperf/3.nix
+++ b/pkgs/tools/networking/iperf/3.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iperf";
-  version = "3.14";
+  version = "3.16";
 
   src = fetchurl {
     url = "https://downloads.es.net/pub/iperf/iperf-${version}.tar.gz";
-    hash = "sha256-cj/MQwoCe8aVJij6KjrHdYSh0L0ygnXlc/ybIGwVUAQ=";
+    hash = "sha256-zHQMa76hBDmMw+RmvvxRWiWJbsheRKZi1fSnZ7nPcT4=";
   };
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ lksctp-tools ];
diff --git a/pkgs/tools/networking/iperf3d/default.nix b/pkgs/tools/networking/iperf3d/default.nix
index f92299adf2e07..1edcaf86ed2ea 100644
--- a/pkgs/tools/networking/iperf3d/default.nix
+++ b/pkgs/tools/networking/iperf3d/default.nix
@@ -23,6 +23,6 @@ rustPlatform.buildRustPackage rec {
     description = "A iperf3 client and server wrapper for dynamic server ports";
     homepage = "https://github.com/wobcom/iperf3d";
     license = licenses.mit;
-    maintainers = [ maintainers.netali ];
+    maintainers = with maintainers; [ netali ] ++ teams.wdz.members;
   };
 }
diff --git a/pkgs/tools/networking/ipfetch/default.nix b/pkgs/tools/networking/ipfetch/default.nix
index b9b675366e56e..f264deaa8a356 100755..100644
--- a/pkgs/tools/networking/ipfetch/default.nix
+++ b/pkgs/tools/networking/ipfetch/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Neofetch but for ip addresses";
+    homepage = "https://github.com/trakBan/ipfetch";
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ annaaurora ];
diff --git a/pkgs/tools/networking/ipinfo/default.nix b/pkgs/tools/networking/ipinfo/default.nix
index 663c898935dab..e9db76d73f567 100644
--- a/pkgs/tools/networking/ipinfo/default.nix
+++ b/pkgs/tools/networking/ipinfo/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "ipinfo";
-  version = "3.1.2";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "cli";
     rev = "refs/tags/${pname}-${version}";
-    hash = "sha256-KCdKfZs1u3ZLaG+Lmod/vV0T0LaW8hs4ReGlVA7A9pA=";
+    hash = "sha256-B0Qb6RFBAUBpE1o8GqKQtxpndeHermMlwlWlfIa7rmM=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/networking/juicity/default.nix b/pkgs/tools/networking/juicity/default.nix
index 286192a2a31db..e265ef94908a4 100644
--- a/pkgs/tools/networking/juicity/default.nix
+++ b/pkgs/tools/networking/juicity/default.nix
@@ -1,8 +1,8 @@
 { lib
 , fetchFromGitHub
-, buildGo121Module
+, buildGoModule
 }:
-buildGo121Module rec {
+buildGoModule rec {
   pname = "juicity";
   version = "0.3.0";
 
diff --git a/pkgs/tools/networking/kail/default.nix b/pkgs/tools/networking/kail/default.nix
index d8b16aa4f2778..55217ee33c3ad 100644
--- a/pkgs/tools/networking/kail/default.nix
+++ b/pkgs/tools/networking/kail/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kail";
-  version = "0.16.1";
+  version = "0.17.4";
 
   ldflags = [
     "-s"
@@ -14,10 +14,10 @@ buildGoModule rec {
     owner = "boz";
     repo = "kail";
     rev = "v${version}";
-    sha256 = "sha256-x9m0NoZjCf/lBWcSGFbjlJIukL6KIYt56Q1hADS8N9I=";
+    sha256 = "sha256-G8U7UEYhgkcFbKeHOjbpf9AY6NW0hBgv6aARuzapE3M=";
   };
 
-  vendorHash = "sha256-W+/vIq7qC+6apk+1GOWvmcwyyjFRkndq8X5m/lRYOu4=";
+  vendorHash = "sha256-u6/LsLphaqYswJkAuqgrgknnm+7MnaeH+kf9BPcdtrc=";
 
   meta = with lib; {
     description = "Kubernetes log viewer";
diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix
index a00f851c24d14..c068c4ac1f420 100644
--- a/pkgs/tools/networking/kapp/default.nix
+++ b/pkgs/tools/networking/kapp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kapp";
-  version = "0.59.0";
+  version = "0.60.0";
 
   src = fetchFromGitHub {
     owner = "carvel-dev";
     repo = "kapp";
     rev = "v${version}";
-    sha256 = "sha256-I+BXKJvilrYvSi2xevZKFE49emghg19dCpW/bbIcZ8o=";
+    sha256 = "sha256-o1MFbyjgOvhgcrlkbYGn0+nHENL2STFiD9CUkCdB56E=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index 7c3cab0fe5a77..574afb68e2372 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -5,8 +5,11 @@
 # build time
 , autoreconfHook
 , pkg-config
+, python3Packages
 
 # runtime
+, withMysql ? stdenv.buildPlatform.system == stdenv.hostPlatform.system
+, withPostgres ? stdenv.buildPlatform.system == stdenv.hostPlatform.system
 , boost
 , libmysqlclient
 , log4cplus
@@ -20,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "2.4.0"; # only even minor versions are stable
+  version = "2.4.1"; # only even minor versions are stable
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-OjPNCNwzGf9UTmu/LAQpBCEG9AUevhFdwbsmJclQA/c=";
+    hash = "sha256-gVxh9cJxyqSh2zHdZW61Cn9uqXPaNpD3yFgUCOGAExo=";
   };
 
   patches = [
@@ -48,9 +51,10 @@ stdenv.mkDerivation rec {
     "--enable-shell"
     "--localstatedir=/var"
     "--with-openssl=${lib.getDev openssl}"
-    "--with-mysql=${lib.getDev libmysqlclient}/bin/mysql_config"
-    "--with-pgsql=${postgresql}/bin/pg_config"
-  ];
+  ]
+  ++ lib.optional withPostgres "--with-pgsql=${postgresql}/bin/pg_config"
+  ++ lib.optional withMysql "--with-mysql=${lib.getDev libmysqlclient}/bin/mysql_config";
+
   postConfigure = ''
     # Mangle embedded paths to dev-only inputs.
     sed -e "s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" -i config.report
@@ -59,7 +63,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     autoreconfHook
     pkg-config
-  ] ++ (with python3.pkgs; [
+  ] ++ (with python3Packages; [
     sphinxHook
     sphinx-rtd-theme
   ]);
diff --git a/pkgs/tools/networking/keepalived/default.nix b/pkgs/tools/networking/keepalived/default.nix
index 0b2371192d38c..02424d92de575 100644
--- a/pkgs/tools/networking/keepalived/default.nix
+++ b/pkgs/tools/networking/keepalived/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     description = "Routing software written in C";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    maintainers = [ maintainers.raitobezarius ];
   };
 }
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index aaa26a38c3ae4..637214809d41e 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = lib.optional stdenv.isDarwin "format";
 
+  env = lib.optionalAttrs stdenv.isDarwin {
+    # Required to build with clang 16 or `configure` will fail to detect several standard functions.
+    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
+  };
+
   configureFlags = [
     "--with-openssl"
     "--with-readline=${readline.dev}"
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
index 368189abe15df..49e4df298bc78 100644
--- a/pkgs/tools/networking/libreswan/default.nix
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , nixosTests
 , pkg-config
 , systemd
@@ -114,6 +115,14 @@ stdenv.mkDerivation rec {
         -i configs/Makefile
   '';
 
+  patches = [
+    (fetchpatch {
+      name = "ignoring-return-value.patch";
+      url = "https://github.com/libreswan/libreswan/commit/ba5bad09f55959872022fa506d5ac06eafe3a314.diff";
+      hash = "sha256-xJ8rZWoRtJixamGY8sjOS+63Lw3RX7620HlRWYfvSxc=";
+    })
+  ];
+
   makeFlags = [
     "PREFIX=$(out)"
     "INITSYSTEM=systemd"
diff --git a/pkgs/tools/networking/ligolo-ng/default.nix b/pkgs/tools/networking/ligolo-ng/default.nix
index d4b4dca3326f7..7cf4a6ffce007 100644
--- a/pkgs/tools/networking/ligolo-ng/default.nix
+++ b/pkgs/tools/networking/ligolo-ng/default.nix
@@ -1,29 +1,38 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
 buildGoModule rec {
   pname = "ligolo-ng";
-  version = "0.4.4";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "tnpitsecurity";
     repo = "ligolo-ng";
-    rev = "v${version}";
-    hash = "sha256-bv611kvjyXvWVkWpymQn4NLtDAYuXnNi1c3yT3t3p+8=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-tx/iwb7eaaJODPMJhg4EdLMaua2Bm1frZh4rsl1bFxc=";
   };
 
-  vendorHash = "sha256-MEG1p8PJinFOPIU9+9cxtU9FweCgVMYX8KojQ3ZhKKs=";
+  vendorHash = "sha256-QEGF12yJ+CQjIHx6kOwsykVhelp5npnglk7mIbOeIpI=";
 
   postConfigure = ''
     export CGO_ENABLED=0
   '';
 
-  ldflags = [ "-s" "-w" "-extldflags '-static'" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-extldflags '-static'"
+  ];
 
-  doCheck = false; # tests require network access
+  # Tests require network access
+  doCheck = false;
 
   meta = with lib; {
-    homepage = "https://github.com/tnpitsecurity/ligolo-ng";
     description = "A tunneling/pivoting tool that uses a TUN interface";
+    homepage = "https://github.com/tnpitsecurity/ligolo-ng";
+    changelog = "https://github.com/nicocha30/ligolo-ng/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ elohmeier ];
   };
diff --git a/pkgs/tools/networking/linkchecker/default.nix b/pkgs/tools/networking/linkchecker/default.nix
index c78c12c8fa776..018da51f77018 100644
--- a/pkgs/tools/networking/linkchecker/default.nix
+++ b/pkgs/tools/networking/linkchecker/default.nix
@@ -17,8 +17,6 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-z7Qp74cai8GfsxB4n9dSCWQepp0/4PimFiRJQBaVSoo=";
   };
 
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   nativeBuildInputs = [
     gettext
   ];
diff --git a/pkgs/tools/networking/linux-router/default.nix b/pkgs/tools/networking/linux-router/default.nix
index acf02a2cc211e..997546403fd3d 100644
--- a/pkgs/tools/networking/linux-router/default.nix
+++ b/pkgs/tools/networking/linux-router/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "linux-router";
-  version = "0.6.7";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "garywill";
     repo = "linux-router";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ote/arHCU6qiTXdK2RXv9848aeW6rcBsrb6nfxIzQLs=";
+    hash = "sha256-iIHi434S7+Q9S1EU7Bpa7iYB7MJDTuyMdB/bbTrbl5Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/lldpd/default.nix b/pkgs/tools/networking/lldpd/default.nix
index d480b3e01c72f..d9f9ae45ad13c 100644
--- a/pkgs/tools/networking/lldpd/default.nix
+++ b/pkgs/tools/networking/lldpd/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lldpd";
-  version = "1.0.17";
+  version = "1.0.18";
 
   src = fetchurl {
     url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz";
-    sha256 = "sha256-k0MXfxRdK8pm7wPVlSgHnT8WY8YkseK50IJo79xhJ84=";
+    hash = "sha256-SzIGddYIkBpKDU/v+PlruEbUkT2RSwz3W30K6ASQ8vc=";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/networking/logmein-hamachi/default.nix b/pkgs/tools/networking/logmein-hamachi/default.nix
index 30a400df0a1ac..aef393c919378 100644
--- a/pkgs/tools/networking/logmein-hamachi/default.nix
+++ b/pkgs/tools/networking/logmein-hamachi/default.nix
@@ -17,7 +17,7 @@ in stdenv.mkDerivation rec {
   version = "2.1.0.203";
 
   src = fetchurl {
-    url = "https://www.vpn.net/installers/${pname}-${version}-${arch}.tgz";
+    url = "https://vpn.net/installers/${pname}-${version}-${arch}.tgz";
     inherit sha256;
   };
 
diff --git a/pkgs/tools/networking/lychee/default.nix b/pkgs/tools/networking/lychee/default.nix
index 5791960029ca2..e927982c209a6 100644
--- a/pkgs/tools/networking/lychee/default.nix
+++ b/pkgs/tools/networking/lychee/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A fast, async, stream-based link checker written in Rust.";
+    description = "A fast, async, stream-based link checker written in Rust";
     homepage = "https://github.com/lycheeverse/lychee";
     downloadPage = "https://github.com/lycheeverse/lychee/releases/tag/v${version}";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/tools/networking/magic-wormhole-rs/default.nix b/pkgs/tools/networking/magic-wormhole-rs/default.nix
index 530ac45ab2b3f..5cdf5150b6830 100644
--- a/pkgs/tools/networking/magic-wormhole-rs/default.nix
+++ b/pkgs/tools/networking/magic-wormhole-rs/default.nix
@@ -9,16 +9,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "magic-wormhole-rs";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "magic-wormhole";
     repo = "magic-wormhole.rs";
     rev = version;
-    sha256 = "sha256-gNHtlbYWQvgboIG++N1680a4ql66PTF45DJGz521zzk=";
+    sha256 = "sha256-6dRnOAclHcPayY0e5guhWR5CLaKzp5TlEU5esLvYQg8=";
   };
 
-  cargoSha256 = "sha256-powJrbVVBWtIg0CV7ZdhaVIQA+VhEPtPCts7f8Sl1VY=";
+  cargoHash = "sha256-SPhTvj2DYNzuAtWamDhsgtCTUpQXtnhoRRSE745tB/k=";
 
   buildInputs = [ libxcb ]
     ++ lib.optionals stdenv.isDarwin [ Security AppKit ];
diff --git a/pkgs/tools/networking/mailsend/default.nix b/pkgs/tools/networking/mailsend/default.nix
index 13a6dc005dd89..ab1717da651a4 100644
--- a/pkgs/tools/networking/mailsend/default.nix
+++ b/pkgs/tools/networking/mailsend/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchurl, openssl }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, openssl
+}:
 
 stdenv.mkDerivation rec {
   pname = "mailsend";
@@ -21,7 +26,17 @@ stdenv.mkDerivation rec {
       url = "https://github.com/muquit/mailsend/commit/960df6d7a11eef90128dc2ae660866b27f0e4336.patch";
       sha256 = "0vz373zcfl19inflybfjwshcq06rvhx0i5g0f4b021cxfhyb1sm0";
     })
+    # Pull fix pending upstream inclusion for parallel build failures:
+    #   https://github.com/muquit/mailsend/pull/165
+    (fetchpatch {
+      name = "parallel-install.patch";
+      url = "https://github.com/muquit/mailsend/commit/acd4ebedbce0e4af3c7b6632f905f73e642ca38c.patch";
+      hash = "sha256-p8tNnkU6cMopuP63kVtRbD9aenhzL1EAXlvvFh4fucE=";
+    })
   ];
+
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "CLI email sending tool";
     license = licenses.bsd3;
diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix
index 2fa7f78f4937e..884bb9cdd6ab5 100644
--- a/pkgs/tools/networking/mailutils/default.nix
+++ b/pkgs/tools/networking/mailutils/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   configureFlags = [
+    "--sysconfdir=/etc"
     "--with-gssapi"
     "--with-gsasl"
     "--with-mysql"
diff --git a/pkgs/tools/networking/maubot/allow-building-plugins-from-nix-store.patch b/pkgs/tools/networking/maubot/allow-building-plugins-from-nix-store.patch
deleted file mode 100644
index 1df88b92aa51f..0000000000000
--- a/pkgs/tools/networking/maubot/allow-building-plugins-from-nix-store.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/maubot/cli/commands/build.py b/maubot/cli/commands/build.py
-index ec3ac26..4de85f2 100644
---- a/maubot/cli/commands/build.py
-+++ b/maubot/cli/commands/build.py
-@@ -84,7 +84,7 @@ def read_output_path(output: str, meta: PluginMeta) -> str | None:
- 
- 
- def write_plugin(meta: PluginMeta, output: str | IO) -> None:
--    with zipfile.ZipFile(output, "w") as zip:
-+    with zipfile.ZipFile(output, "w", strict_timestamps=False) as zip:
-         meta_dump = BytesIO()
-         yaml.dump(meta.serialize(), meta_dump)
-         zip.writestr("maubot.yaml", meta_dump.getvalue())
diff --git a/pkgs/tools/networking/maubot/default.nix b/pkgs/tools/networking/maubot/default.nix
index 4242ffcf9984f..acee6f1dedb3b 100644
--- a/pkgs/tools/networking/maubot/default.nix
+++ b/pkgs/tools/networking/maubot/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchPypi
 , fetchpatch
+, callPackage
 , runCommand
 , python3
 , encryptionSupport ? true
@@ -17,25 +18,6 @@ let
           hash = "sha256-yPGSKqjOz1EY5/V0oKz2EiZ90q2O4TINoXdxHuB7Gqk=";
         };
       });
-      # mautrix>=0.19.8,<0.20
-      mautrix = prev.mautrix.overridePythonAttrs (old: rec {
-        version = "0.19.16";
-        disabled = final.pythonOlder "3.8";
-        checkInputs = old.checkInputs ++ [ final.sqlalchemy ];
-        SQLALCHEMY_SILENCE_UBER_WARNING = true;
-        src = old.src.override {
-          rev = "refs/tags/v${version}";
-          hash = "sha256-aZlc4+J5Q+N9qEzGUMhsYguPdUy+E5I06wrjVyqvVDk=";
-        };
-      });
-      # mautrix has a runtime error with new ruamel-yaml since 0.17.22 changed the interface
-      ruamel-yaml = prev.ruamel-yaml.overridePythonAttrs (prev: rec {
-        version = "0.17.21";
-        src = prev.src.override {
-          version = version;
-          hash = "sha256-i3zml6LyEnUqNcGsQURx3BbEJMlXO+SSa1b/P10jt68=";
-        };
-      });
       # SQLAlchemy>=1,<1.4
       # SQLAlchemy 2.0's derivation is very different, so don't override, just write it from scratch
       # (see https://github.com/NixOS/nixpkgs/blob/65dbed73949e4c0207e75dcc7271b29f9e457670/pkgs/development/python-modules/sqlalchemy/default.nix)
@@ -60,12 +42,12 @@ let
 
   maubot = python.pkgs.buildPythonPackage rec {
     pname = "maubot";
-    version = "0.4.1";
-    disabled = python.pythonOlder "3.8";
+    version = "0.4.2";
+    disabled = python.pythonOlder "3.9";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-Ro2PPgF8818F8JewPZ3AlbfWFNNHKTZkQq+1zpm3kk4=";
+      hash = "sha256-svdg7KpCy/+T9Hu+FbsgLNU8nVuIn0flPg7qyn7I+30=";
     };
 
     patches = [
@@ -74,8 +56,6 @@ let
         url = "https://github.com/maubot/maubot/commit/283f0a3ed5dfae13062b6f0fd153fbdc477f4381.patch";
         sha256 = "0yn5357z346qzy5v5g124mgiah1xsi9yyfq42zg028c8paiw8s8x";
       })
-      # allow running "mbc build" in a nix derivation
-      ./allow-building-plugins-from-nix-store.patch
     ];
 
     propagatedBuildInputs = with python.pkgs; [
@@ -107,12 +87,6 @@ let
       rm $out/example-config.yaml
     '';
 
-    passthru.tests = {
-      simple = runCommand "${pname}-tests" { } ''
-        ${maubot}/bin/mbc --help > $out
-      '';
-    };
-
     # Setuptools is trying to do python -m maubot test
     dontUseSetuptoolsCheck = true;
 
@@ -120,6 +94,35 @@ let
       "maubot"
     ];
 
+    passthru = let
+      wrapper = callPackage ./wrapper.nix {
+        unwrapped = maubot;
+        python3 = python;
+      };
+    in
+    {
+      tests = {
+        simple = runCommand "${pname}-tests" { } ''
+          ${maubot}/bin/mbc --help > $out
+        '';
+      };
+
+      inherit python;
+
+      plugins = callPackage ./plugins {
+        maubot = maubot;
+        python3 = python;
+      };
+
+      withPythonPackages = pythonPackages: wrapper { inherit pythonPackages; };
+
+      # This adds the plugins to lib/maubot-plugins
+      withPlugins = plugins: wrapper { inherit plugins; };
+
+      # This changes example-config.yaml in module directory
+      withBaseConfig = baseConfig: wrapper { inherit baseConfig; };
+    };
+
     meta = with lib; {
       description = "A plugin-based Matrix bot system written in Python";
       homepage = "https://maubot.xyz/";
diff --git a/pkgs/tools/networking/maubot/plugins/default.nix b/pkgs/tools/networking/maubot/plugins/default.nix
new file mode 100644
index 0000000000000..b60589b9df7e9
--- /dev/null
+++ b/pkgs/tools/networking/maubot/plugins/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, fetchgit
+, fetchFromGitHub
+, fetchFromGitLab
+, fetchFromGitea
+, stdenvNoCC
+, callPackage
+, ensureNewerSourcesForZipFilesHook
+, maubot
+, python3
+, poetry
+, formats
+}:
+
+let
+  # pname: plugin id (example: xyz.maubot.echo)
+  # version: plugin version
+  # other attributes are passed directly to stdenv.mkDerivation (you at least need src)
+  buildMaubotPlugin = attrs@{ version, pname, base_config ? null, ... }:
+    stdenvNoCC.mkDerivation (builtins.removeAttrs attrs [ "base_config" ] // {
+      pluginName = "${pname}-v${version}.mbp";
+      nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ [
+        ensureNewerSourcesForZipFilesHook
+        maubot
+      ];
+      buildPhase = ''
+        runHook preBuild
+
+        mbc build
+
+        runHook postBuild
+      '';
+
+      postPatch = lib.optionalString (base_config != null) ''
+        [ -e base-config.yaml ] || (echo "base-config.yaml doesn't exist, can't override it" && exit 1)
+        cp "${if builtins.isPath base_config || lib.isDerivation base_config then base_config
+          else if builtins.isString base_config then builtins.toFile "base-config.yaml" base_config
+          else (formats.yaml { }).generate "base-config.yaml" base_config}" base-config.yaml
+      '' + attrs.postPatch or "";
+
+      installPhase = ''
+        runHook preInstall
+
+        mkdir -p $out/lib/maubot-plugins
+        install -m 444 $pluginName $out/lib/maubot-plugins
+
+        runHook postInstall
+      '';
+    });
+
+  generated = import ./generated.nix {
+    inherit lib fetchgit fetchFromGitHub fetchFromGitLab
+      fetchFromGitea python3 poetry buildMaubotPlugin;
+  };
+in
+generated // {
+  inherit buildMaubotPlugin;
+
+  allOfficialPlugins =
+    builtins.filter
+      (x: x.isOfficial && !x.meta.broken)
+      (builtins.attrValues generated);
+
+  allPlugins =
+    builtins.filter
+      (x: !x.meta.broken)
+      (builtins.attrValues generated);
+}
diff --git a/pkgs/tools/networking/maubot/plugins/generated.json b/pkgs/tools/networking/maubot/plugins/generated.json
new file mode 100644
index 0000000000000..555de6c05821c
--- /dev/null
+++ b/pkgs/tools/networking/maubot/plugins/generated.json
@@ -0,0 +1,2225 @@
+{
+  "URLDownload": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://codeberg.org/LukeLR/matrix-url-download/releases",
+        "description": "A plugin for the maubot bot framework implementing URL downloads in matrix rooms.",
+        "downloadPage": "https://codeberg.org/LukeLR/matrix-url-download/releases",
+        "homepage": "https://codeberg.org/LukeLR/matrix-url-download"
+      }
+    },
+    "gitea": {
+      "domain": "codeberg.org",
+      "hash": "sha256-JLYhoQKxsYO46mqRJZEcWTHck6bli6itYGu8ZPbxyjg=",
+      "owner": "LukeLR",
+      "repo": "matrix-url-download",
+      "rev": "3a006d98faa6950edab1a45b7a8c6a6d7d908bff"
+    },
+    "manifest": {
+      "config": true,
+      "database": true,
+      "database_type": "asyncpg",
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "de.lukelr.urldownload",
+      "license": "LGPL-3.0-only",
+      "main_class": "URLDownloadBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "urldownload"
+      ],
+      "version": "0.0.3"
+    }
+  },
+  "activity-tracker": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-kickbot/releases",
+        "description": "A plugin that minimally tracks user activity within a space. Useful for kicking inactive users from a private community.",
+        "downloadPage": "https://github.com/williamkray/maubot-kickbot/releases",
+        "homepage": "https://github.com/williamkray/maubot-kickbot"
+      }
+    },
+    "github": {
+      "hash": "sha256-TLaGpLrTR4TLR0TjY3v9FFST8JxEP4swJ7kzt0fDwJI=",
+      "owner": "williamkray",
+      "repo": "maubot-kickbot",
+      "rev": "a4c31c7a1492585f2155705be8cab7e3f73f6b69"
+    },
+    "manifest": {
+      "database": true,
+      "database_type": "asyncpg",
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.kickbot",
+      "license": "MIT",
+      "main_class": "KickBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "kickbot"
+      ],
+      "version": "0.0.10"
+    }
+  },
+  "alertbot": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/moan0s/alertbot/blob/v1.1.1/CHANGELOG.md",
+        "description": "A bot that recives monitoring alerts via alertmanager and forwards them to a matrix room.",
+        "downloadPage": "https://github.com/moan0s/alertbot/releases",
+        "homepage": "https://github.com/moan0s/alertbot"
+      }
+    },
+    "github": {
+      "hash": "sha256-hA4Wl1mrIuThQVHTPhMAVsvdbhhx/rHqpOResWO8xiI=",
+      "owner": "moan0s",
+      "repo": "alertbot",
+      "rev": "v1.1.1"
+    },
+    "manifest": {
+      "id": "de.hyteck.alertbot",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "AlertBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "alertbot"
+      ],
+      "version": "1.1.1",
+      "webapp": true
+    }
+  },
+  "altalias": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/altalias/releases",
+        "description": "A bot that lets users publish alternate aliases in rooms.",
+        "downloadPage": "https://github.com/maubot/altalias/releases",
+        "homepage": "https://github.com/maubot/altalias"
+      }
+    },
+    "github": {
+      "hash": "sha256-+qW3CX2ae86jc5l/7poyLs2cQycLjft9l3rul9eYby4=",
+      "owner": "maubot",
+      "repo": "altalias",
+      "rev": "b07b7866c9647612bfe784700b37087855432028"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.altalias",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "AltAliasBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "altalias"
+      ],
+      "version": "1.0.0"
+    }
+  },
+  "alternatingcaps": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/rom4nik/maubot-alternatingcaps/releases",
+        "description": "A bot repeating last message using aLtErNaTiNg cApS.",
+        "downloadPage": "https://github.com/rom4nik/maubot-alternatingcaps/releases",
+        "homepage": "https://github.com/rom4nik/maubot-alternatingcaps"
+      }
+    },
+    "github": {
+      "hash": "sha256-O3FhZ6US4iACEzEKdHLjBZfOJlHNGEeLSrHdqWULFvk=",
+      "owner": "rom4nik",
+      "repo": "maubot-alternatingcaps",
+      "rev": "v0.1.2"
+    },
+    "manifest": {
+      "id": "pl.rom4nik.maubot.alternatingcaps",
+      "license": "MIT",
+      "main_class": "AlternatingCaps",
+      "modules": [
+        "alternatingcaps"
+      ],
+      "version": "0.1.2"
+    }
+  },
+  "animemanga": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/coffeebank/coffee-maubot/releases",
+        "description": "An anime/manga bot for Matrix. Search anime, manga (manhwa/manhua), and light novels from Anilist. See series info, status, and episodes/chapters.",
+        "downloadPage": "https://github.com/coffeebank/coffee-maubot/releases",
+        "homepage": "https://github.com/coffeebank/coffee-maubot/tree/master/animemanga"
+      },
+      "postPatch": "cd animemanga"
+    },
+    "github": {
+      "hash": "sha256-k+M/Wk4nyXUZBJxmxQr64dPp3rK7i1oQeLFtncle3dI=",
+      "owner": "coffeebank",
+      "repo": "coffee-maubot",
+      "rev": "b25112508d65f7560910e67d3074dd60f4048821"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "coffee.maubot.animemanga",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "AnimeMangaBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "animemanga"
+      ],
+      "version": "0.1.1.216"
+    }
+  },
+  "antithread": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/antithread/releases",
+        "description": "A bot that redacts all messages in threads.",
+        "downloadPage": "https://github.com/maubot/antithread/releases",
+        "homepage": "https://github.com/maubot/antithread"
+      }
+    },
+    "github": {
+      "hash": "sha256-O6rxvxR62DboRGaNevJRCZynGl3xthRICaxRCvLScdM=",
+      "owner": "maubot",
+      "repo": "antithread",
+      "rev": "0577b8eefcf01925452678b9fe380aac4270c672"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "id": "xyz.maubot.antithread",
+      "license": "MIT",
+      "main_class": "AntiThreadBot",
+      "modules": [
+        "antithread"
+      ],
+      "version": "1.0.0"
+    }
+  },
+  "autoreply": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/babolivier/maubot-autoreply/releases",
+        "description": "A bot that sends automated replies when you're away, and shows you a summary of missed messages when you come back.",
+        "downloadPage": "https://github.com/babolivier/maubot-autoreply/releases",
+        "homepage": "https://github.com/babolivier/maubot-autoreply"
+      }
+    },
+    "github": {
+      "hash": "sha256-ULOL5C1tzH4g0IWu+GmMdl3+aCZK0n/G4I8wIvd7f6U=",
+      "owner": "babolivier",
+      "repo": "maubot-autoreply",
+      "rev": "v1.0.0"
+    },
+    "manifest": {
+      "config": true,
+      "database": true,
+      "database_type": "asyncpg",
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "bzh.abolivier.autoreply",
+      "license": "Apache-2.0",
+      "main_class": "AutoReplyBot",
+      "maubot": "v0.1.0",
+      "modules": [
+        "autoreply"
+      ],
+      "version": "1.0.0"
+    }
+  },
+  "bard": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/ser/maubot-bard/releases",
+        "description": "Allow your maubot instance to return queries from Google(TM) Bard(TM) pseudoAI",
+        "downloadPage": "https://github.com/ser/maubot-bard/releases",
+        "homepage": "https://github.com/ser/maubot-bard/",
+        "license": "MIT"
+      }
+    },
+    "github": {
+      "hash": "sha256-E8pz71wfH+SmFNzBcPUrnqK0xs7wlyB6SaRXH/PDqKw=",
+      "owner": "ser",
+      "repo": "maubot-bard",
+      "rev": "4ff3ce8d86ed19c973dee89228779fed74811341"
+    },
+    "manifest": {
+      "config": true,
+      "dependencies": [
+        "bardapi"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "sergevictor.eu.maubot.bard",
+      "main_class": "BardPlugin",
+      "modules": [
+        "bard"
+      ],
+      "version": "0.99.100"
+    }
+  },
+  "characterai": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/Matthieu-LAURENT39/maubot-characterai/releases",
+        "description": "Chat with characters from [character.ai](https://character.ai/) in your Matrix rooms! Very customizable.",
+        "downloadPage": "https://github.com/Matthieu-LAURENT39/maubot-characterai/releases",
+        "homepage": "https://github.com/Matthieu-LAURENT39/maubot-characterai"
+      }
+    },
+    "github": {
+      "hash": "sha256-nyVz0PDyNGAIFCxakWzEe8AG/PU+HlZJQQ85SL1bEvs=",
+      "owner": "Matthieu-LAURENT39",
+      "repo": "maubot-characterai",
+      "rev": "v0.2.1"
+    },
+    "manifest": {
+      "config": true,
+      "database": true,
+      "database_type": "asyncpg",
+      "dependencies": [
+        "characterai"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "com.github.Matthieu-LAURENT39.maubot-characterai",
+      "license": "MIT",
+      "main_class": "CAIBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "cai"
+      ],
+      "version": "0.2.1"
+    }
+  },
+  "chatgpt": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-chatgpt/releases",
+        "description": "ChatGPT plugin for maubot. Multi-user aware for use in group rooms! Customize your prompts to \"train\" your assistant contextually.",
+        "downloadPage": "https://github.com/williamkray/maubot-chatgpt/releases",
+        "homepage": "https://github.com/williamkray/maubot-chatgpt",
+        "license": "MIT"
+      }
+    },
+    "github": {
+      "hash": "sha256-iRo4oFOOXgISALFskPZUonV4cBn7HmBACdi5uhgQq8o=",
+      "owner": "williamkray",
+      "repo": "maubot-chatgpt",
+      "rev": "f3974dc3818da170a3f1e091359d31f3140245e0"
+    },
+    "manifest": {
+      "config": true,
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.chatgpt",
+      "main_class": "GPTPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "gpt"
+      ],
+      "version": "0.0.9"
+    }
+  },
+  "choose": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/coffeebank/coffee-maubot/releases",
+        "description": "Have the bot choose for you ( item1 | item2 | item3 ) with a divider",
+        "downloadPage": "https://github.com/coffeebank/coffee-maubot/releases",
+        "homepage": "https://github.com/coffeebank/coffee-maubot/tree/master/choose"
+      },
+      "postPatch": "cd choose"
+    },
+    "github": {
+      "hash": "sha256-k+M/Wk4nyXUZBJxmxQr64dPp3rK7i1oQeLFtncle3dI=",
+      "owner": "coffeebank",
+      "repo": "coffee-maubot",
+      "rev": "b25112508d65f7560910e67d3074dd60f4048821"
+    },
+    "manifest": {
+      "database": false,
+      "id": "coffee.maubot.choose",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "ChooseBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "choose"
+      ],
+      "version": "0.1.0.3"
+    }
+  },
+  "commitstrip": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/commitstrip/releases",
+        "description": "A bot to view CommitStrips.",
+        "downloadPage": "https://github.com/maubot/commitstrip/releases",
+        "homepage": "https://github.com/maubot/commitstrip"
+      }
+    },
+    "github": {
+      "hash": "sha256-P5u4oDmsMj4r48JZIZ1Cg8cX11aimv9dGI+J0lJrY34=",
+      "owner": "maubot",
+      "repo": "commitstrip",
+      "rev": "28ab63c2725aa989a151f5659cb37a674b002a80"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "database": true,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.commitstrip",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "CommitBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "commitstrip"
+      ],
+      "version": "1.0.0"
+    }
+  },
+  "create-room": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-createroom/releases",
+        "description": "A plugin that creates new rooms and automatically sets them to be part of a private Matrix Space.",
+        "downloadPage": "https://github.com/williamkray/maubot-createroom/releases",
+        "homepage": "https://github.com/williamkray/maubot-createroom"
+      }
+    },
+    "github": {
+      "hash": "sha256-x1eoUX8u1IR/hLgS8YcpSoTByl+m3GoTW3fnFMDs1XA=",
+      "owner": "williamkray",
+      "repo": "maubot-createroom",
+      "rev": "4eecdcffa6c06276287c2a3d4e65905a72ad18ad"
+    },
+    "manifest": {
+      "config": true,
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.createspaceroom",
+      "license": "MIT",
+      "main_class": "CreateSpaceRoom",
+      "maubot": "0.1.0",
+      "modules": [
+        "createspaceroom"
+      ],
+      "version": "0.1.2"
+    }
+  },
+  "dice": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/dice/releases",
+        "description": "A combined dice rolling and calculator bot.",
+        "downloadPage": "https://github.com/maubot/dice/releases",
+        "homepage": "https://github.com/maubot/dice"
+      }
+    },
+    "github": {
+      "hash": "sha256-xnqcxOXHhsHR9RjLaOa6QZOx87V6kLQJW+mRWF/S5eM=",
+      "owner": "maubot",
+      "repo": "dice",
+      "rev": "v1.1.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.dice",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "DiceBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "dice"
+      ],
+      "version": "1.1.0"
+    }
+  },
+  "disruptor": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/disruptor/releases",
+        "description": "A bot that disrupts monologues with cat pictures.",
+        "downloadPage": "https://github.com/maubot/disruptor/releases",
+        "homepage": "https://github.com/maubot/disruptor"
+      }
+    },
+    "github": {
+      "hash": "sha256-/wm/CNl4XzRBClhW+jOp9S7P/nIz65aOtt+E9AnIPNA=",
+      "owner": "maubot",
+      "repo": "disruptor",
+      "rev": "v0.2.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.disruptor",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "DisruptorBot",
+      "maubot": "0.4.1",
+      "modules": [
+        "disruptor"
+      ],
+      "version": "0.2.0"
+    }
+  },
+  "echo": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/echo/releases",
+        "description": "A bot that echoes pings and other stuff.\n\nSee [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net) for a room\nwith lots of echo bots.\n",
+        "downloadPage": "https://github.com/maubot/echo/releases",
+        "homepage": "https://github.com/maubot/echo"
+      }
+    },
+    "github": {
+      "hash": "sha256-/ajDs2vpWqejxDF7naXtKi1nYRs2lJpuc0R0dV7oVHI=",
+      "owner": "maubot",
+      "repo": "echo",
+      "rev": "v1.4.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "id": "xyz.maubot.echo",
+      "license": "MIT",
+      "main_class": "EchoBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "echo"
+      ],
+      "version": "1.4.0"
+    }
+  },
+  "exec": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/exec/releases",
+        "description": "A bot that executes code.",
+        "downloadPage": "https://github.com/maubot/exec/releases",
+        "homepage": "https://github.com/maubot/exec"
+      }
+    },
+    "github": {
+      "hash": "sha256-bwy3eB7ULYTGeJXtTNFMfry9dWQmnTjcU6HWdRznWxc=",
+      "owner": "maubot",
+      "repo": "exec",
+      "rev": "475d0fe70dc30e1c14e29028694fd4ac38690932"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.exec",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "ExecBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "exec"
+      ],
+      "version": "0.1.0"
+    }
+  },
+  "factorial": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/factorial/releases",
+        "description": "A bot to calculate unexpected factorials.",
+        "downloadPage": "https://github.com/maubot/factorial/releases",
+        "homepage": "https://github.com/maubot/factorial"
+      }
+    },
+    "github": {
+      "hash": "sha256-XHAwAloJZpFdY0kRrUjkEGJoryHK4PSQgBf2QH9C/6o=",
+      "owner": "maubot",
+      "repo": "factorial",
+      "rev": "v3.0.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "id": "xyz.maubot.factorial",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "FactorialBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "factorial"
+      ],
+      "version": "3.0.0"
+    }
+  },
+  "gifme": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-gifme/releases",
+        "description": "Superior gif responses. Save your own library of image or video responses.\nAllows fallback behavior to Giphy or Tenor, optionally saves quotes from\nusers for comedic effect or to be used as an FAQ bot!\n",
+        "downloadPage": "https://github.com/williamkray/maubot-gifme/releases",
+        "homepage": "https://github.com/williamkray/maubot-gifme"
+      }
+    },
+    "github": {
+      "hash": "sha256-5MHLtm3qktUyvWyuwQEUQWL8fxszZ6h/hHClLLr0Uvs=",
+      "owner": "williamkray",
+      "repo": "maubot-gifme",
+      "rev": "6dbbb9ebce903887b62f95b04f4640779762e57a"
+    },
+    "manifest": {
+      "database": true,
+      "database_type": "asyncpg",
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.gifme",
+      "license": "MIT",
+      "main_class": "GifMe",
+      "maubot": "0.4.0",
+      "modules": [
+        "gifme"
+      ],
+      "version": "0.1.0"
+    }
+  },
+  "giphy": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/TomCasavant/GiphyMaubot/releases",
+        "description": "A bot that generates a gif (from giphy) given search terms.",
+        "downloadPage": "https://github.com/TomCasavant/GiphyMaubot/releases",
+        "homepage": "https://github.com/TomCasavant/GiphyMaubot"
+      }
+    },
+    "github": {
+      "hash": "sha256-bY9jCHwI2UZwn+W02hSEAD0aRRsM7cAeeYpnk3jTTBY=",
+      "owner": "TomCasavant",
+      "repo": "GiphyMaubot",
+      "rev": "3.3.0"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "casavant.tom.giphy",
+      "license": "MIT",
+      "main_class": "GiphyPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "giphy"
+      ],
+      "version": "3.3.0"
+    }
+  },
+  "github": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/github/releases",
+        "description": "A GitHub client and webhook receiver.",
+        "downloadPage": "https://github.com/maubot/github/releases",
+        "homepage": "https://github.com/maubot/github"
+      }
+    },
+    "github": {
+      "hash": "sha256-Qc0KH8iGqMDa+1BXaB5fHtRIcsZRpTF2IufGMEXqV6Q=",
+      "owner": "maubot",
+      "repo": "github",
+      "rev": "v0.1.2"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "config": true,
+      "database": true,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.github",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "GitHubBot",
+      "maubot": "0.3.0",
+      "modules": [
+        "github"
+      ],
+      "version": "0.1.2",
+      "webapp": true
+    }
+  },
+  "gitlab": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/gitlab/releases",
+        "description": "A GitLab client and webhook receiver.",
+        "downloadPage": "https://github.com/maubot/gitlab/releases",
+        "homepage": "https://github.com/maubot/gitlab"
+      }
+    },
+    "github": {
+      "hash": "sha256-lkHGR+uLnT3f7prWDAbJplwzwAyOfMCwf8B2LeiJzIo=",
+      "owner": "maubot",
+      "repo": "gitlab",
+      "rev": "v0.2.1"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "config": true,
+      "database": true,
+      "extra_files": [
+        "base-config.yaml",
+        "templates/macros.html",
+        "templates/messages/*.html",
+        "templates/mixins/*.html"
+      ],
+      "id": "xyz.maubot.gitlab",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "GitlabBot",
+      "maubot": "0.1.2",
+      "modules": [
+        "gitlab_matrix"
+      ],
+      "soft_dependencies": [
+        "python-gitlab"
+      ],
+      "version": "0.2.1",
+      "webapp": true
+    }
+  },
+  "hasswebhookbot": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/v411e/hasswebhookbot/releases",
+        "description": "A bot receiving webhooks from [Home Assistant](https://github.com/home-assistant).",
+        "downloadPage": "https://github.com/v411e/hasswebhookbot/releases",
+        "homepage": "https://github.com/v411e/hasswebhookbot"
+      }
+    },
+    "github": {
+      "hash": "sha256-Tjr2sbFMpasBy4dR1Lqxt/jnO3ay26XY2d263JkFyKg=",
+      "owner": "v411e",
+      "repo": "hasswebhookbot",
+      "rev": "v0.0.15"
+    },
+    "manifest": {
+      "config": true,
+      "database": true,
+      "dependencies": [
+        "Markdown",
+        "pytz"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "com.valentinriess.hasswebhook",
+      "license": "MIT",
+      "main_class": "HassWebhook",
+      "maubot": "0.1.0",
+      "modules": [
+        "hasswebhook"
+      ],
+      "soft_dependencies": [
+        "Pillow"
+      ],
+      "version": "0.0.15",
+      "webapp": true
+    }
+  },
+  "hateheif": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/ser/maubot-hateheif/releases",
+        "description": "A bot which sends converted HEIF into JPEG. Works in encrypted and unencrypted rooms.",
+        "downloadPage": "https://github.com/ser/maubot-hateheif/releases",
+        "homepage": "https://github.com/ser/maubot-hateheif/"
+      }
+    },
+    "github": {
+      "hash": "sha256-twvVeMD2nRwpazc21inbdr6mUjMXJ4T6v5ieNrwB+O4=",
+      "owner": "ser",
+      "repo": "maubot-hateheif",
+      "rev": "52cf166960ac3fb71d291e13d5f3621caa9d7af1"
+    },
+    "manifest": {
+      "config": true,
+      "dependencies": [
+        "pillow-heif"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "eu.sergevictor.hateheif",
+      "license": "MIT",
+      "main_class": "HateHeifBot",
+      "modules": [
+        "hateheif"
+      ],
+      "version": "0.99.100"
+    }
+  },
+  "help": {
+    "attrs": {
+      "meta": {
+        "description": "A plugin to add a `!help` command to maubot. Returns all built-in help commands for all plugins loaded in the client instance.",
+        "homepage": "https://git.skeg1.se/vondassendorf/maubot_mauhelp"
+      }
+    },
+    "gitlab": {
+      "domain": "git.skeg1.se",
+      "hash": "sha256-xQ0GzdWPHstMSEOXwmW/DFxClK/oEwfyTrm752S5iFQ=",
+      "owner": "vondassendorf",
+      "repo": "maubot_mauhelp",
+      "rev": "v0.2.0"
+    },
+    "manifest": {
+      "database": false,
+      "id": "se.skeg1.mauhelp",
+      "license": "MIT",
+      "main_class": "MauHelp",
+      "maubot": "0.3.1",
+      "modules": [
+        "mauhelp"
+      ],
+      "version": "0.2.0"
+    }
+  },
+  "holopin": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/itrich/HolopinMaubot/releases",
+        "description": "A plugin to issue [Holopin](https://holopin.io) badges to users.",
+        "downloadPage": "https://github.com/itrich/HolopinMaubot/releases",
+        "homepage": "https://github.com/itrich/HolopinMaubot"
+      }
+    },
+    "github": {
+      "hash": "sha256-fQDa4e2hN5WFXwPVqefCU9YBzXHxvtXntAta0oZxp5M=",
+      "owner": "itrich",
+      "repo": "HolopinMaubot",
+      "rev": "v0.0.1"
+    },
+    "manifest": {
+      "config": true,
+      "database": false,
+      "dependencies": null,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "net.itrich.maubot.holopin",
+      "license": "MIT",
+      "main_class": "HolopinPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "holopin"
+      ],
+      "soft_dependencies": null,
+      "version": "0.0.1",
+      "webapp": false
+    }
+  },
+  "invite": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-invite/releases",
+        "description": "A bot to generate invitation tokens from [matrix-registration](https://github.com/ZerataX/matrix-registration).",
+        "downloadPage": "https://github.com/williamkray/maubot-invite/releases",
+        "homepage": "https://github.com/williamkray/maubot-invite"
+      }
+    },
+    "github": {
+      "hash": "sha256-VQufveYgxVOoMWtfNJ8LYWvjbFtboSNZzdRn7MA7DLA=",
+      "owner": "williamkray",
+      "repo": "maubot-invite",
+      "rev": "v0.3.1"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.invitebot",
+      "license": "MIT",
+      "main_class": "Invite",
+      "maubot": "0.1.0",
+      "modules": [
+        "invite"
+      ],
+      "version": "0.3.1"
+    }
+  },
+  "jadict": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/coffeebank/coffee-maubot/releases",
+        "description": "A Japanese dictionary Matrix bot for searching and translating Japanese vocabulary (Hiragana, Katakana, Kanji, Romaji). Searches Jisho using Jisho API.",
+        "downloadPage": "https://github.com/coffeebank/coffee-maubot/releases",
+        "homepage": "https://github.com/coffeebank/coffee-maubot/tree/master/jadict"
+      },
+      "postPatch": "cd jadict"
+    },
+    "github": {
+      "hash": "sha256-k+M/Wk4nyXUZBJxmxQr64dPp3rK7i1oQeLFtncle3dI=",
+      "owner": "coffeebank",
+      "repo": "coffee-maubot",
+      "rev": "b25112508d65f7560910e67d3074dd60f4048821"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "coffee.maubot.jadict",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "JadictBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "jadict"
+      ],
+      "version": "0.1.0.10"
+    }
+  },
+  "join": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-join/releases",
+        "description": "A plugin that restricts who can convince your bot to join new rooms to certain users.",
+        "downloadPage": "https://github.com/williamkray/maubot-join/releases",
+        "homepage": "https://github.com/williamkray/maubot-join"
+      }
+    },
+    "github": {
+      "hash": "sha256-aqpL+KO5p0hre7RCUZrM270Ah+cR4cQxZn7LTXLT79k=",
+      "owner": "williamkray",
+      "repo": "maubot-join",
+      "rev": "1b57758dfe3a2191588bb903ea546328146e69d8"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.join",
+      "license": "MIT",
+      "main_class": "Join",
+      "maubot": "0.1.0",
+      "modules": [
+        "join"
+      ],
+      "version": "0.3.0"
+    }
+  },
+  "karma": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/karma/releases",
+        "description": "A user karma tracker bot.",
+        "downloadPage": "https://github.com/maubot/karma/releases",
+        "homepage": "https://github.com/maubot/karma"
+      }
+    },
+    "github": {
+      "hash": "sha256-7CK4NReLhU/d0FXTWj9eM7C5yL9nXkM+vpPExv4VPfE=",
+      "owner": "maubot",
+      "repo": "karma",
+      "rev": "v1.0.1"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "database": true,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.karma",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "KarmaBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "karma"
+      ],
+      "version": "1.0.1"
+    }
+  },
+  "ldap-ad-inviterbot": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/SAPUCC/inviterbot/blob/v0.1.5/CHANGELOG.md",
+        "description": "A plugin to sync users from Microsoft Azure AD and LDAP into matrix rooms. (Membership, Power-Levels)",
+        "downloadPage": "https://github.com/SAPUCC/inviterbot/releases",
+        "homepage": "https://github.com/SAPUCC/inviterbot",
+        "license": "GPL-3.0-or-later"
+      }
+    },
+    "github": {
+      "hash": "sha256-Ve420Mfa+Ikxp0P/8b6rZIu54VOfKhH3sWDNNMClj9E=",
+      "owner": "SAPUCC",
+      "repo": "inviterbot",
+      "rev": "v0.1.5"
+    },
+    "manifest": {
+      "config": true,
+      "database": false,
+      "dependencies": [
+        null
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "de.in4md-service.inviterbot",
+      "license": "GPLv3",
+      "main_class": "InviterBot",
+      "maubot": "0.2.0",
+      "modules": [
+        "inviter"
+      ],
+      "version": "0.1.5"
+    }
+  },
+  "local-stt": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/ElishaAz/mau_local_stt/releases",
+        "description": "A Maubot to transcribe audio messages in matrix rooms using local open-source libraries",
+        "downloadPage": "https://github.com/ElishaAz/mau_local_stt/releases",
+        "homepage": "https://github.com/ElishaAz/mau_local_stt",
+        "license": "GPL-3.0-only"
+      }
+    },
+    "github": {
+      "hash": "sha256-EyDJ4RtQjBl7BQ7Y/0LWfX4zkVVqBOqjnhb9tXhFxio=",
+      "owner": "ElishaAz",
+      "repo": "mau_local_stt",
+      "rev": "v1.0.2"
+    },
+    "manifest": {
+      "config": true,
+      "dependencies": [
+        "whispercpp",
+        "numpy",
+        "vosk"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "com.elishaaz.maulocalstt",
+      "license": "GPLv3",
+      "main_class": "MauLocalSTT",
+      "maubot": "0.1.0",
+      "modules": [
+        "maulocalstt"
+      ],
+      "version": "1.0.2"
+    }
+  },
+  "manhole": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/manhole/releases",
+        "description": "A plugin that lets you access a Python shell inside maubot.",
+        "downloadPage": "https://github.com/maubot/manhole/releases",
+        "homepage": "https://github.com/maubot/manhole"
+      }
+    },
+    "github": {
+      "hash": "sha256-F3Nrl6NOUmwDuBsCxIfopRnLU9rltdaCJL/OcNGzw1Q=",
+      "owner": "maubot",
+      "repo": "manhole",
+      "rev": "47f1f7501b5b353a0fa74bf5929cead559496174"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.manhole",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "ManholeBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "manhole"
+      ],
+      "version": "1.0.0"
+    }
+  },
+  "media": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/media/releases",
+        "description": "A bot that replies with the MXC URI of images you send it.",
+        "downloadPage": "https://github.com/maubot/media/releases",
+        "homepage": "https://github.com/maubot/media"
+      }
+    },
+    "github": {
+      "hash": "sha256-00zESMN2WxKYPAQbpyvDpkyJIFkILLOP+m256k0Avzk=",
+      "owner": "maubot",
+      "repo": "media",
+      "rev": "v1.0.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "id": "xyz.maubot.media",
+      "license": "MIT",
+      "main_class": "MediaBot",
+      "modules": [
+        "media"
+      ],
+      "version": "1.0.0"
+    }
+  },
+  "metric": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/edwardsdean/maubot_metric_bot/releases",
+        "description": "A bot that will reply to a message that contains imperial units and replace them with metric units.",
+        "downloadPage": "https://github.com/edwardsdean/maubot_metric_bot/releases",
+        "homepage": "https://github.com/edwardsdean/maubot_metric_bot"
+      }
+    },
+    "github": {
+      "hash": "sha256-qtGGCaATIzJMRhLWzFN0kSa6P/tlckCkxatKEfXyi0E=",
+      "owner": "edwardsdean",
+      "repo": "maubot_metric_bot",
+      "rev": "0.0.4"
+    },
+    "manifest": {
+      "database": false,
+      "id": "me.edwardsdean.maubot.metric",
+      "license": "MIT",
+      "main_class": "MetricPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "metric"
+      ],
+      "version": "0.0.4"
+    }
+  },
+  "ntfy": {
+    "attrs": {
+      "meta": {
+        "description": "A bot for subscribing to [ntfy](https://ntfy.sh) topics and posting messages to Matrix.",
+        "homepage": "https://gitlab.com/999eagle/maubot-ntfy"
+      }
+    },
+    "gitlab": {
+      "hash": "sha256-6522dVqhGoPc/qjz65D3kXHks5LLb3yVe0K5abqdXrw=",
+      "owner": "999eagle",
+      "repo": "maubot-ntfy",
+      "rev": "256aa8f315cbb184eba0256c2ec818abbdd2d408"
+    },
+    "manifest": {
+      "config": true,
+      "database": true,
+      "database_type": "asyncpg",
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "cloud.catgirl.ntfy",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "NtfyBot",
+      "maubot": "0.3.0",
+      "modules": [
+        "ntfy"
+      ],
+      "soft_dependencies": [
+        "emoji>=2.0"
+      ],
+      "version": "0.1.0"
+    }
+  },
+  "ovgumensabot": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/v411e/ovgumensabot/releases",
+        "description": "A bot that automatically sends meals from OvGU canteen every day.",
+        "downloadPage": "https://github.com/v411e/ovgumensabot/releases",
+        "homepage": "https://github.com/v411e/ovgumensabot"
+      }
+    },
+    "github": {
+      "hash": "sha256-nuOLUPwE0F15FgOtbq3+qmNNd2eHRrRNJPMM+v1Ksy0=",
+      "owner": "v411e",
+      "repo": "ovgumensabot",
+      "rev": "v0.0.8"
+    },
+    "manifest": {
+      "database": true,
+      "dependencies": [
+        "requests",
+        "beautifulsoup4"
+      ],
+      "extra_files": [
+        "LICENSE.txt"
+      ],
+      "id": "com.valentinriess.mensa",
+      "license": "MIT",
+      "main_class": "MensaBot",
+      "maubot": "0.2.0",
+      "modules": [
+        "ovgumensabot"
+      ],
+      "version": "0.0.8"
+    }
+  },
+  "pingcheck": {
+    "attrs": {
+      "meta": {
+        "description": "A bot to ping the echo bot and send rtt to Icinga passive check.",
+        "homepage": "https://edugit.org/nik/maubot-pingcheck"
+      }
+    },
+    "gitlab": {
+      "domain": "edugit.org",
+      "hash": "sha256-ljNi4si7ZkcCidO5l9jJcgdrj4P8RESB1wznxJvzPNQ=",
+      "owner": "nik",
+      "repo": "maubot-pingcheck",
+      "rev": "0.1.0"
+    },
+    "manifest": {
+      "dependencie": [
+        "requests"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.pingcheck",
+      "license": "MIT",
+      "main_class": "PingcheckBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "pingcheck"
+      ],
+      "version": "0.1.0"
+    }
+  },
+  "pocket": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/jaywink/maubot-pocket/blob/v0.2.5/CHANGELOG.md",
+        "description": "A bot integrating with Pocket to fetch articles and archive them.",
+        "downloadPage": "https://github.com/jaywink/maubot-pocket/releases",
+        "homepage": "https://github.com/jaywink/maubot-pocket"
+      }
+    },
+    "github": {
+      "hash": "sha256-I3+nfdkW9WkscsAYN2E1jEyoVujaN/zOTJ8HLReqq44=",
+      "owner": "jaywink",
+      "repo": "maubot-pocket",
+      "rev": "v0.2.5"
+    },
+    "manifest": {
+      "database": true,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "me.jasonrobinson.pocket",
+      "license": "MIT",
+      "main_class": "PocketPlugin",
+      "maubot": "0.3.1",
+      "modules": [
+        "pocket"
+      ],
+      "version": "0.2.5",
+      "webapp": true
+    }
+  },
+  "poll": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/TomCasavant/PollMaubot/releases",
+        "description": "A bot that will create a simple poll for users in a room.",
+        "downloadPage": "https://github.com/TomCasavant/PollMaubot/releases",
+        "homepage": "https://github.com/TomCasavant/PollMaubot"
+      }
+    },
+    "github": {
+      "hash": "sha256-o+9DP9QHZEibmAhy13/fJn72r8hLPY1uuOrTXchjRmw=",
+      "owner": "TomCasavant",
+      "repo": "PollMaubot",
+      "rev": "3.0.1"
+    },
+    "manifest": {
+      "database": false,
+      "id": "casavant.tom.poll",
+      "license": "MIT",
+      "main_class": "PollPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "poll"
+      ],
+      "version": "3.0.1"
+    }
+  },
+  "random-quote": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/itrich/QuoteMaubot/releases",
+        "description": "A plugin to answer with a random quote from a configurable list.",
+        "downloadPage": "https://github.com/itrich/QuoteMaubot/releases",
+        "homepage": "https://github.com/itrich/QuoteMaubot"
+      }
+    },
+    "github": {
+      "hash": "sha256-NJ6sUC7L4f7ERDAKNcs2RD8q4mGzW0d4rhxh+wqzhVw=",
+      "owner": "itrich",
+      "repo": "QuoteMaubot",
+      "rev": "v0.0.1"
+    },
+    "manifest": {
+      "config": true,
+      "database": false,
+      "dependencies": null,
+      "extra_files": null,
+      "id": "net.itrich.maubot.quote",
+      "license": "MIT",
+      "main_class": "QuotePlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "quote"
+      ],
+      "soft_dependencies": null,
+      "version": "0.0.1",
+      "webapp": false
+    }
+  },
+  "random-subreddit-post": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-reddit/releases",
+        "description": "A plugin that returns a random post from a given subreddit.",
+        "downloadPage": "https://github.com/williamkray/maubot-reddit/releases",
+        "homepage": "https://github.com/williamkray/maubot-reddit"
+      }
+    },
+    "github": {
+      "hash": "sha256-xinkSNTWTdKSNE0YFLS3yy26HbqD+I11Z8dGVh/tHNw=",
+      "owner": "williamkray",
+      "repo": "maubot-reddit",
+      "rev": "v0.3.6"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.reddit",
+      "license": "MIT",
+      "main_class": "Post",
+      "maubot": "0.1.0",
+      "modules": [
+        "reddit"
+      ],
+      "version": "0.3.6"
+    }
+  },
+  "reactbot": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/reactbot/releases",
+        "description": "A bot that responds to messages that match predefined rules.",
+        "downloadPage": "https://github.com/maubot/reactbot/releases",
+        "homepage": "https://github.com/maubot/reactbot"
+      }
+    },
+    "github": {
+      "hash": "sha256-ARN9zbOFJCVoqz6ooLRm9DDKUZpbQf7KcfsfoOxeeLE=",
+      "owner": "maubot",
+      "repo": "reactbot",
+      "rev": "v2.2.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.reactbot",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "ReactBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "reactbot"
+      ],
+      "version": "2.2.0"
+    }
+  },
+  "redactbot": {
+    "attrs": {
+      "meta": {
+        "description": "A bot that immediately redacts any posted file (except for whitelisted types).",
+        "homepage": "https://gitlab.com/sspaeth/redactbot"
+      }
+    },
+    "gitlab": {
+      "hash": "sha256-uIcXnD3nXVT7mA9SgdyrXGIZuW4CgnCVbCP7TxxnziM=",
+      "owner": "sspaeth",
+      "repo": "redactbot",
+      "rev": "2bca49b14024844c0aa53b9c4802ef6f8702d99d"
+    },
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.redactbot",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "RedactBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "redactbot"
+      ],
+      "version": "2.2.0"
+    }
+  },
+  "reminder": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/reminder/releases",
+        "description": "A bot to remind you about things.",
+        "downloadPage": "https://github.com/maubot/reminder/releases",
+        "homepage": "https://github.com/maubot/reminder"
+      }
+    },
+    "github": {
+      "hash": "sha256-BCyeWl5xPKvUGWkrnuGh498gKxfhfNZ7oBrsZzpKxkg=",
+      "owner": "maubot",
+      "repo": "reminder",
+      "rev": "v0.2.2"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "database": true,
+      "dependencies": [
+        "python-dateutil",
+        "pytz"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.reminder",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "ReminderBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "reminder"
+      ],
+      "version": "0.2.2"
+    }
+  },
+  "reminder-agenda": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/MxMarx/reminder/releases",
+        "description": "Create reminders, recurring reminders, and agenda items. A maubot port of [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot/tree/master) combined with [maubot/reminder](https://github.com/maubot/reminder)",
+        "downloadPage": "https://github.com/MxMarx/reminder/releases",
+        "homepage": "https://github.com/MxMarx/reminder"
+      }
+    },
+    "github": {
+      "hash": "sha256-3I2EIbyGgtj1NblLAEKCVLSDFnT25YRAp5RXvFHdu2w=",
+      "owner": "MxMarx",
+      "repo": "reminder",
+      "rev": "v0.1.1"
+    },
+    "manifest": {
+      "database": true,
+      "database_type": "asyncpg",
+      "dependencies": [
+        "pytz",
+        "dateparser",
+        "apscheduler"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.bytemarx.reminder",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "ReminderBot",
+      "maubot": "0.4.1",
+      "modules": [
+        "reminder"
+      ],
+      "soft_dependencies": [
+        "cron_descriptor"
+      ],
+      "version": "0.1.1"
+    }
+  },
+  "rss": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/rss/releases",
+        "description": "A bot that posts RSS feed updates to Matrix.",
+        "downloadPage": "https://github.com/maubot/rss/releases",
+        "homepage": "https://github.com/maubot/rss"
+      }
+    },
+    "github": {
+      "hash": "sha256-p/xJpJbzsOeQGcowvOhJSclPtmZyNyBaZBz+mexVqIY=",
+      "owner": "maubot",
+      "repo": "rss",
+      "rev": "v0.3.2"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "database": true,
+      "database_type": "asyncpg",
+      "dependencies": [
+        "feedparser>=5.1"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.rss",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "RSSBot",
+      "maubot": "0.3.0",
+      "modules": [
+        "rss"
+      ],
+      "version": "0.3.2"
+    }
+  },
+  "satwcomic": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/satwcomic/releases",
+        "description": "A bot to view SatWComics.",
+        "downloadPage": "https://github.com/maubot/satwcomic/releases",
+        "homepage": "https://github.com/maubot/satwcomic"
+      }
+    },
+    "github": {
+      "hash": "sha256-TyXrPUUQdLC0IXbpQquA9eegzDoBm1g2WaeQuqhYPco=",
+      "owner": "maubot",
+      "repo": "satwcomic",
+      "rev": "0241bce4807ce860578e2f4fde76bb043bcebe95"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "database": true,
+      "dependencies": [
+        "pyquery"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.satwcomic",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "SatWBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "satwcomic"
+      ],
+      "soft_dependencies": [
+        "Pillow"
+      ],
+      "version": "1.0.0"
+    }
+  },
+  "sed": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/sed/releases",
+        "description": "A bot to do sed-like replacements.",
+        "downloadPage": "https://github.com/maubot/sed/releases",
+        "homepage": "https://github.com/maubot/sed"
+      }
+    },
+    "github": {
+      "hash": "sha256-raVUYEEuNHDFEE+b/yb8DyokFOrbVn0miul+2tJbR+s=",
+      "owner": "maubot",
+      "repo": "sed",
+      "rev": "v1.1.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "id": "xyz.maubot.sed",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "SedBot",
+      "modules": [
+        "sed"
+      ],
+      "version": "1.1.0"
+    }
+  },
+  "send-custom-html": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/coffeebank/coffee-maubot/releases",
+        "description": "Have the bot send a message as custom HTML. Test and preview formatted HTML body in Matrix.",
+        "downloadPage": "https://github.com/coffeebank/coffee-maubot/releases",
+        "homepage": "https://github.com/coffeebank/coffee-maubot/tree/master/send-custom-html"
+      },
+      "postPatch": "cd send-custom-html"
+    },
+    "github": {
+      "hash": "sha256-k+M/Wk4nyXUZBJxmxQr64dPp3rK7i1oQeLFtncle3dI=",
+      "owner": "coffeebank",
+      "repo": "coffee-maubot",
+      "rev": "b25112508d65f7560910e67d3074dd60f4048821"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "coffee.maubot.sendcustomhtml",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "SendCustomHtmlBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "sendcustomhtml"
+      ],
+      "version": "0.1.0.6"
+    }
+  },
+  "social-media-download": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/ggogel/SocialMediaDownloadMaubot/releases",
+        "description": "A bot that that downloads content from various social media websites given a link.",
+        "downloadPage": "https://github.com/ggogel/SocialMediaDownloadMaubot/releases",
+        "homepage": "https://github.com/ggogel/SocialMediaDownloadMaubot"
+      }
+    },
+    "github": {
+      "hash": "sha256-RMyQzGz2Z4m9FN0Nt5E6Tj0yZarysygCtvEZDfG143M=",
+      "owner": "ggogel",
+      "repo": "SocialMediaDownloadMaubot",
+      "rev": "1.2.0"
+    },
+    "manifest": {
+      "config": true,
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "me.gogel.maubot.socialmediadownload",
+      "license": "MIT",
+      "main_class": "socialmediadownload/SocialMediaDownloadPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "instaloader",
+        "socialmediadownload"
+      ],
+      "version": "1.2.0"
+    }
+  },
+  "songwhip": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/songwhip/releases",
+        "description": "A bot to post Songwhip links.",
+        "downloadPage": "https://github.com/maubot/songwhip/releases",
+        "homepage": "https://github.com/maubot/songwhip"
+      }
+    },
+    "github": {
+      "hash": "sha256-oghM1IECN88KhwRhGZCTJo4uMwc495sWNHeK9KaK4FU=",
+      "owner": "maubot",
+      "repo": "songwhip",
+      "rev": "c8d00999ab77a77d0036ee6c71b2cf11583f8edd"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "id": "xyz.maubot.songwhip",
+      "license": "MIT",
+      "main_class": "SongwhipBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "songwhip"
+      ],
+      "version": "0.1.0"
+    }
+  },
+  "subreddit-linkifier": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/TomCasavant/RedditMaubot/releases",
+        "description": "A bot that condescendingly corrects a user when they enter an r/subreddit without providing a link to that subreddit.",
+        "downloadPage": "https://github.com/TomCasavant/RedditMaubot/releases",
+        "homepage": "https://github.com/TomCasavant/RedditMaubot"
+      }
+    },
+    "github": {
+      "hash": "sha256-4F59gCmSl7FNWTys5c9r4Ha0gschDyiYjsX7emhRwuU=",
+      "owner": "TomCasavant",
+      "repo": "RedditMaubot",
+      "rev": "1.5.0"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "casavant.tom.reddit",
+      "license": "MIT",
+      "main_class": "RedditPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "reddit"
+      ],
+      "version": "1.5.0"
+    }
+  },
+  "supportportal": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/supportportal/releases",
+        "description": "A bot to manage customer support on Matrix.",
+        "downloadPage": "https://github.com/maubot/supportportal/releases",
+        "homepage": "https://github.com/maubot/supportportal"
+      }
+    },
+    "github": {
+      "hash": "sha256-9CmA9KfkOkzqTycAGE8jaZuDwS7IvFwWGUer3iR8ooM=",
+      "owner": "maubot",
+      "repo": "supportportal",
+      "rev": "v0.1.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "config": true,
+      "database": true,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.supportportal",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "SupportPortalBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "supportportal"
+      ],
+      "version": "0.1.0"
+    }
+  },
+  "tex": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/tex/releases",
+        "description": "A bot that renders LaTeX.",
+        "downloadPage": "https://github.com/maubot/tex/releases",
+        "homepage": "https://github.com/maubot/tex"
+      }
+    },
+    "github": {
+      "hash": "sha256-6Iq/rOiMQiFtKvAYeYuF+2xXVcR7VIxQTejbpYBpy2A=",
+      "owner": "maubot",
+      "repo": "tex",
+      "rev": "a6617da41409b5fc5960dc8de06046bbac091318"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "dependencies": [
+        "matplotlib",
+        "Pillow"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.tex",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "TexBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "tex"
+      ],
+      "version": "0.1.0"
+    }
+  },
+  "ticker": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-ticker/releases",
+        "description": "A bot to return financial data about a stock or cryptocurrency.",
+        "downloadPage": "https://github.com/williamkray/maubot-ticker/releases",
+        "homepage": "https://github.com/williamkray/maubot-ticker"
+      }
+    },
+    "github": {
+      "hash": "sha256-o/AjzuNaVzHKnpV10p19vDJthEUZ75nAg3KT0Ff3LEg=",
+      "owner": "williamkray",
+      "repo": "maubot-ticker",
+      "rev": "v0.0.6"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.tickerbot",
+      "license": "MIT",
+      "main_class": "TickerBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "tickerbot"
+      ],
+      "version": "0.0.6"
+    }
+  },
+  "timein": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/coffeebank/coffee-maubot/releases",
+        "description": "Get the time in specific cities. Check timezones.  !timein New York  (Python 3.9+) (Python <3.9 requires pytz, fuzzywuzzy)",
+        "downloadPage": "https://github.com/coffeebank/coffee-maubot/releases",
+        "homepage": "https://github.com/coffeebank/coffee-maubot/tree/master/timein"
+      },
+      "postPatch": "cd timein"
+    },
+    "github": {
+      "hash": "sha256-k+M/Wk4nyXUZBJxmxQr64dPp3rK7i1oQeLFtncle3dI=",
+      "owner": "coffeebank",
+      "repo": "coffee-maubot",
+      "rev": "b25112508d65f7560910e67d3074dd60f4048821"
+    },
+    "manifest": {
+      "database": false,
+      "dependencies": [
+        "pytz",
+        "fuzzywuzzy"
+      ],
+      "id": "coffee.maubot.timein",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "TimeinBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "timein"
+      ],
+      "version": "0.1.0.6"
+    }
+  },
+  "tmdb": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://codeberg.org/lomion/tmdb-bot/releases",
+        "description": "A bot that posts information about movies fetched from TheMovieDB.org.",
+        "downloadPage": "https://codeberg.org/lomion/tmdb-bot/releases",
+        "homepage": "https://codeberg.org/lomion/tmdb-bot",
+        "license": "AGPL-3.0-only"
+      }
+    },
+    "gitea": {
+      "domain": "codeberg.org",
+      "hash": "sha256-QeKpIukLCeJOxi/+H+Hukf7mA38gvf8q37o4FOuigAU=",
+      "owner": "lomion",
+      "repo": "tmdb-bot",
+      "rev": "rel.1.3.0"
+    },
+    "manifest": {
+      "database": true,
+      "id": "lomion.tmdb",
+      "license": "AGPL 3.0",
+      "main_class": "TmdbBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "tmdb"
+      ],
+      "version": "1.3.0"
+    }
+  },
+  "token": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/yoxcu/maubot-token/releases",
+        "description": "A maubot to create and manage your synapse user registration tokens.",
+        "downloadPage": "https://github.com/yoxcu/maubot-token/releases",
+        "homepage": "https://github.com/yoxcu/maubot-token"
+      }
+    },
+    "github": {
+      "hash": "sha256-8ZAH9Kn0EQYY9gLx48gF+aEsFOdlZlrbUIvLMP0uwi4=",
+      "owner": "yoxcu",
+      "repo": "maubot-token",
+      "rev": "v1.1.0"
+    },
+    "manifest": {
+      "config": true,
+      "database": false,
+      "extra_files": [
+        "base-config.yaml",
+        "LICENSE"
+      ],
+      "id": "de.yoxcu.token",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "TokenBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "tokenbot"
+      ],
+      "version": "1.1.0"
+    }
+  },
+  "translate": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/translate/releases",
+        "description": "A bot to translate words.",
+        "downloadPage": "https://github.com/maubot/translate/releases",
+        "homepage": "https://github.com/maubot/translate"
+      }
+    },
+    "github": {
+      "hash": "sha256-eaiTNjnBa0r2zeCzYZH/k04dGftBSGuGaDvwOGKKZDA=",
+      "owner": "maubot",
+      "repo": "translate",
+      "rev": "v0.1.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.translate",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "TranslatorBot",
+      "modules": [
+        "translate"
+      ],
+      "version": "0.1.0"
+    }
+  },
+  "trump": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/jeffcasavant/MaubotTrumpTweet/releases",
+        "description": "A bot that generates a Trump tweet with the given content.",
+        "downloadPage": "https://github.com/jeffcasavant/MaubotTrumpTweet/releases",
+        "homepage": "https://github.com/jeffcasavant/MaubotTrumpTweet"
+      }
+    },
+    "github": {
+      "hash": "sha256-WlrFt+uj6E7Ecg+3KW6fjrMXSUP5YFA5ZyitvBON3pA=",
+      "owner": "jeffcasavant",
+      "repo": "MaubotTrumpTweet",
+      "rev": "v1.1.2"
+    },
+    "isPoetry": true,
+    "manifest": {
+      "database": false,
+      "dependencies": [
+        "Pillow>=9.0.1, <10.0.0"
+      ],
+      "extra_files": [
+        "res/font/Roboto-Black.ttf",
+        "res/font/Roboto-Regular.ttf",
+        "res/img/avatars/cartoon0.jpg",
+        "res/img/avatars/cartoon1.jpg",
+        "res/img/avatars/cartoon2.jpg",
+        "res/img/avatars/cartoon3.jpg",
+        "res/img/avatars/cartoon4.jpg",
+        "res/img/avatars/cartoon5.jpg",
+        "res/img/avatars/cartoon6.jpg",
+        "res/img/avatars/cartoon7.jpg",
+        "res/img/avatars/cartoon8.jpg",
+        "res/img/avatars/cartoon9.jpg",
+        "res/img/avatars/default.png",
+        "res/img/avatars/real0.jpg",
+        "res/img/avatars/real1.jpg",
+        "res/img/avatars/real10.jpg",
+        "res/img/avatars/real11.jpg",
+        "res/img/avatars/real12.jpg",
+        "res/img/avatars/real13.jpg",
+        "res/img/avatars/real14.jpg",
+        "res/img/avatars/real15.jpeg",
+        "res/img/avatars/real16.jpg",
+        "res/img/avatars/real17.jpg",
+        "res/img/avatars/real18.jpg",
+        "res/img/avatars/real19.jpeg",
+        "res/img/avatars/real2.jpg",
+        "res/img/avatars/real20.jpg",
+        "res/img/avatars/real21.jpg",
+        "res/img/avatars/real22.jpg",
+        "res/img/avatars/real23.jpg",
+        "res/img/avatars/real24.jpg",
+        "res/img/avatars/real25.jpg",
+        "res/img/avatars/real26.jpg",
+        "res/img/avatars/real27.jpg",
+        "res/img/avatars/real28.jpeg",
+        "res/img/avatars/real29.jpg",
+        "res/img/avatars/real3.jpeg",
+        "res/img/avatars/real4.jpg",
+        "res/img/avatars/real5.jpg",
+        "res/img/avatars/real6.jpeg",
+        "res/img/avatars/real7.jpg",
+        "res/img/avatars/real8.jpeg",
+        "res/img/avatars/real9.jpg",
+        "res/img/like.png",
+        "res/img/reply.png",
+        "res/img/retweet.png",
+        "res/img/trump.jpg",
+        "res/img/verified.png"
+      ],
+      "id": "casavant.jeff.trumptweet",
+      "license": "MIT",
+      "main_class": "TrumpTweetPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "trumptweet"
+      ],
+      "version": "1.1.2"
+    }
+  },
+  "twilio": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/jeffcasavant/MaubotTwilio/releases",
+        "description": "Maubot-based SMS bridge.",
+        "downloadPage": "https://github.com/jeffcasavant/MaubotTwilio/releases",
+        "homepage": "https://github.com/jeffcasavant/MaubotTwilio"
+      }
+    },
+    "github": {
+      "hash": "sha256-b1M9+uXVq3yb4IgcoL/5YqRZ8a13HfyqMw6QFBuBLAM=",
+      "owner": "jeffcasavant",
+      "repo": "MaubotTwilio",
+      "rev": "0.1.0"
+    },
+    "manifest": {
+      "database": true,
+      "dependencies": [
+        "maubot==0.1.0b1",
+        "mautrix==0.5.0b2"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.casavant.jeff.twilio",
+      "license": "MIT",
+      "main_class": "TwilioPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "twilio_plugin"
+      ],
+      "version": "0.1.0",
+      "webapp": true
+    }
+  },
+  "urban": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/dvdgsng/UrbanMaubot/releases",
+        "description": "A bot that fetches definitions from [Urban Dictionary](https://www.urbandictionary.com/).",
+        "downloadPage": "https://github.com/dvdgsng/UrbanMaubot/releases",
+        "homepage": "https://github.com/dvdgsng/UrbanMaubot"
+      }
+    },
+    "github": {
+      "hash": "sha256-JQ2PpsH/Nno7XqcF1HpZHM/Qv/gta/xGPjfIKtY+pxM=",
+      "owner": "dvdgsng",
+      "repo": "UrbanMaubot",
+      "rev": "1.0.2"
+    },
+    "manifest": {
+      "id": "com.dvdgsng.maubot.urban",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "UrbanDictBot",
+      "modules": [
+        "urban"
+      ],
+      "version": "1.0.2"
+    }
+  },
+  "urlpreview": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/coffeebank/coffee-maubot/releases",
+        "description": "Add URL preview embeds to Matrix! A bot that responds to links with a link preview embed, using Matrix API to fetch meta tags. Supports fetching JSON previews.",
+        "downloadPage": "https://github.com/coffeebank/coffee-maubot/releases",
+        "homepage": "https://github.com/coffeebank/coffee-maubot/tree/master/urlpreview"
+      },
+      "postPatch": "cd urlpreview"
+    },
+    "github": {
+      "hash": "sha256-k+M/Wk4nyXUZBJxmxQr64dPp3rK7i1oQeLFtncle3dI=",
+      "owner": "coffeebank",
+      "repo": "coffee-maubot",
+      "rev": "b25112508d65f7560910e67d3074dd60f4048821"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "coffee.maubot.urlpreview",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "UrlPreviewBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "urlpreview"
+      ],
+      "version": "0.3.4.26"
+    }
+  },
+  "weather": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/kellya/maubot-weather/blob/v0.4.1/CHANGELOG.md",
+        "description": "A bot to get the weather from wttr.in and return a single line of text for the location specified.",
+        "downloadPage": "https://github.com/kellya/maubot-weather/releases",
+        "homepage": "https://github.com/kellya/maubot-weather"
+      }
+    },
+    "github": {
+      "hash": "sha256-DHMsemVbiXONeg45IpeaP477fbgkftz5mZdI6OhRHOI=",
+      "owner": "kellya",
+      "repo": "maubot-weather",
+      "rev": "v0.4.1"
+    },
+    "manifest": {
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "com.arachnitech.weather",
+      "license": "MIT",
+      "main_class": "WeatherBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "weather"
+      ],
+      "version": "0.4.1"
+    }
+  },
+  "webhook": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/jkhsjdhjs/maubot-webhook/releases",
+        "description": "Send messages to rooms via user-defined webhooks.",
+        "downloadPage": "https://github.com/jkhsjdhjs/maubot-webhook/releases",
+        "homepage": "https://github.com/jkhsjdhjs/maubot-webhook"
+      }
+    },
+    "github": {
+      "hash": "sha256-GGbd7PvW2P0u1h7Cp1GMuEg3uQ0osZBWWHzSW524aBc=",
+      "owner": "jkhsjdhjs",
+      "repo": "maubot-webhook",
+      "rev": "v0.2.0"
+    },
+    "manifest": {
+      "config": true,
+      "dependencies": [
+        "Jinja2~=3.1"
+      ],
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "me.jkhsjdhjs.maubot.webhook",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "WebhookPlugin",
+      "maubot": "0.3.1",
+      "modules": [
+        "plugin"
+      ],
+      "version": "0.2.0",
+      "webapp": true
+    }
+  },
+  "welcome": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/williamkray/maubot-welcome/releases",
+        "description": "A plugin that greets new people with a configurable message when they join a room.",
+        "downloadPage": "https://github.com/williamkray/maubot-welcome/releases",
+        "homepage": "https://github.com/williamkray/maubot-welcome"
+      }
+    },
+    "github": {
+      "hash": "sha256-8BIDj/kHys/Pw1n1lLtxjYOstI/UG5UAlxD+3rpKj0Q=",
+      "owner": "williamkray",
+      "repo": "maubot-welcome",
+      "rev": "a6d3e6cbea87056a1d4694f5379c9ae9d9cdf1c5"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "org.jobmachine.welcome",
+      "license": "MIT",
+      "main_class": "Greeter",
+      "maubot": "0.1.0",
+      "modules": [
+        "welcome"
+      ],
+      "version": "0.0.4"
+    }
+  },
+  "wolframalpha": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/ggogel/WolframAlphaMaubot/releases",
+        "description": "A bot that allows requesting information from [WolframAlpha](https://www.wolframalpha.com/).",
+        "downloadPage": "https://github.com/ggogel/WolframAlphaMaubot/releases",
+        "homepage": "https://github.com/ggogel/WolframAlphaMaubot"
+      }
+    },
+    "github": {
+      "hash": "sha256-2GJPAHc9xY7uznALpjzxkpAX16PBxMMSl3QMzjudA+w=",
+      "owner": "ggogel",
+      "repo": "WolframAlphaMaubot",
+      "rev": "v0.0.4"
+    },
+    "manifest": {
+      "database": false,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "me.gogel.maubot.wolframalpha",
+      "license": "MIT",
+      "main_class": "WolframAlphaPlugin",
+      "maubot": "0.1.0",
+      "modules": [
+        "wolframalpha"
+      ],
+      "version": "0.0.4"
+    }
+  },
+  "xkcd": {
+    "attrs": {
+      "meta": {
+        "changelog": "https://github.com/maubot/xkcd/releases",
+        "description": "A bot to view xkcd comics.",
+        "downloadPage": "https://github.com/maubot/xkcd/releases",
+        "homepage": "https://github.com/maubot/xkcd"
+      }
+    },
+    "github": {
+      "hash": "sha256-dtst/QuIZrMjk5RdbXjTksCbGwf8HCBsECDWtp70W1U=",
+      "owner": "maubot",
+      "repo": "xkcd",
+      "rev": "v1.2.0"
+    },
+    "isOfficial": true,
+    "manifest": {
+      "config": true,
+      "database": true,
+      "extra_files": [
+        "base-config.yaml"
+      ],
+      "id": "xyz.maubot.xkcd",
+      "license": "AGPL-3.0-or-later",
+      "main_class": "XKCDBot",
+      "maubot": "0.1.0",
+      "modules": [
+        "xkcd"
+      ],
+      "soft_dependencies": [
+        "python-magic>=0.4",
+        "Pillow>=5.1"
+      ],
+      "version": "1.2.0"
+    }
+  }
+}
diff --git a/pkgs/tools/networking/maubot/plugins/generated.nix b/pkgs/tools/networking/maubot/plugins/generated.nix
new file mode 100644
index 0000000000000..241151eb6ca0e
--- /dev/null
+++ b/pkgs/tools/networking/maubot/plugins/generated.nix
@@ -0,0 +1,74 @@
+{ lib
+, fetchgit
+, fetchFromGitHub
+, fetchFromGitLab
+, fetchFromGitea
+, python3
+, poetry
+, buildMaubotPlugin
+}:
+
+let
+  json = builtins.fromJSON (builtins.readFile ./generated.json);
+in
+
+lib.flip builtins.mapAttrs json (name: entry:
+let
+  inherit (entry) manifest;
+
+  resolveDeps = deps: map
+    (name:
+      let
+        packageName = builtins.head (builtins.match "([^~=<>]*).*" name);
+        lower = lib.toLower packageName;
+        dash = builtins.replaceStrings ["_"] ["-"] packageName;
+        lowerDash = builtins.replaceStrings ["_"] ["-"] lower;
+      in
+        python3.pkgs.${packageName}
+        or python3.pkgs.${lower}
+        or python3.pkgs.${dash}
+        or python3.pkgs.${lowerDash}
+        or null)
+    (builtins.filter (x: x != "maubot" && x != null) deps);
+
+  reqDeps = resolveDeps (lib.toList (manifest.dependencies or null));
+  optDeps = resolveDeps (lib.toList (manifest.soft_dependencies or null));
+in
+
+lib.makeOverridable buildMaubotPlugin (entry.attrs // {
+  pname = manifest.id;
+  inherit (manifest) version;
+
+  src =
+    if entry?github then fetchFromGitHub entry.github
+    else if entry?git then fetchgit entry.git
+    else if entry?gitlab then fetchFromGitLab entry.gitlab
+    else if entry?gitea then fetchFromGitea entry.gitea
+    else throw "Invalid generated entry for ${manifest.id}: missing source";
+
+  propagatedBuildInputs = builtins.filter (x: x != null) (reqDeps ++ optDeps);
+
+  passthru.isOfficial = entry.isOfficial or false;
+
+  meta = entry.attrs.meta // {
+    license =
+      let
+        spdx = entry.attrs.meta.license or manifest.license or "unfree";
+        spdxLicenses = builtins.listToAttrs
+          (map (x: lib.nameValuePair x.spdxId x) (builtins.filter (x: x?spdxId) (builtins.attrValues lib.licenses)));
+      in
+      spdxLicenses.${spdx};
+    broken = builtins.any (x: x == null) reqDeps;
+  };
+} // lib.optionalAttrs (entry.isPoetry or false) {
+  nativeBuildInputs = [
+    poetry
+    (python3.withPackages (p: with p; [ toml ruamel-yaml isort ]))
+  ];
+
+  preBuild = lib.optionalString (entry?attrs.preBuild) (entry.attrs.preBuild + "\n") + ''
+    export HOME=$(mktemp -d)
+    [[ ! -d scripts ]] || patchShebangs --build scripts
+    make maubot.yaml
+  '';
+}))
diff --git a/pkgs/tools/networking/maubot/plugins/update.py b/pkgs/tools/networking/maubot/plugins/update.py
new file mode 100755
index 0000000000000..a430753870fb9
--- /dev/null
+++ b/pkgs/tools/networking/maubot/plugins/update.py
@@ -0,0 +1,200 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p git nurl "(python3.withPackages (ps: with ps; [ toml gitpython requests ruamel-yaml ]))"
+
+import git
+import json
+import os
+import subprocess
+import ruamel.yaml
+import sys
+import toml
+import zipfile
+
+from typing import Dict, List
+
+HOSTNAMES = {
+    'git.skeg1.se': 'gitlab',
+    'edugit.org': 'gitlab',
+    'codeberg.org': 'gitea',
+}
+PLUGINS: Dict[str, dict] = {}
+
+yaml = ruamel.yaml.YAML(typ='safe')
+
+TMP = os.environ.get('TEMPDIR', '/tmp')
+
+def process_repo(path: str, official: bool):
+    global PLUGINS
+    with open(path, 'rt') as f:
+        data = yaml.load(f)
+    name, repourl, license, desc = data['name'], data['repo'], data['license'], data['description']
+    origurl = repourl
+    if '/' in name or ' ' in name:
+        name = os.path.split(path)[-1].removesuffix('.yaml')
+    name = name.replace('_', '-')
+    if name in PLUGINS.keys():
+        raise ValueError(f'Duplicate plugin {name}, refusing to continue')
+    repodir = os.path.join(TMP, 'maubot-plugins', name)
+    plugindir = repodir
+    if '/tree/' in repourl:
+        repourl, rev_path = repourl.split('/tree/')
+        rev, subdir = rev_path.strip('/').split('/')
+        plugindir = os.path.join(plugindir, subdir)
+    else:
+        rev = None
+        subdir = None
+
+    if repourl.startswith('http:'):
+        repourl = 'https' + repourl[4:]
+    repourl = repourl.rstrip('/')
+    if not os.path.exists(repodir):
+        print('Fetching', name)
+        repo = git.Repo.clone_from(repourl + '.git', repodir)
+    else:
+        repo = git.Repo(repodir)
+    tags = sorted(repo.tags, key=lambda t: t.commit.committed_datetime)
+    tags = list(filter(lambda x: 'rc' not in str(x), tags))
+    if tags:
+        repo.git.checkout(tags[-1])
+        rev = str(tags[-1])
+    else:
+        rev = str(repo.commit('HEAD'))
+    ret: dict = {'attrs':{}}
+    if subdir:
+        ret['attrs']['postPatch'] = f'cd {subdir}'
+    domain, query = repourl.removeprefix('https://').split('/', 1)
+    hash = subprocess.run([
+        'nurl',
+        '--hash',
+        f'file://{repodir}',
+        rev
+    ], capture_output=True, check=True).stdout.decode('utf-8')
+    ret['attrs']['meta'] = {
+        'description': desc,
+        'homepage': origurl,
+    }
+    if domain.endswith('github.com'):
+        owner, repo = query.split('/')
+        ret['github'] = {
+            'owner': owner,
+            'repo': repo,
+            'rev': rev,
+            'hash': hash,
+        }
+        ret['attrs']['meta']['downloadPage'] = f'{repourl}/releases'
+        ret['attrs']['meta']['changelog'] = f'{repourl}/releases'
+        repobase = f'{repourl}/blob/{rev}'
+    elif HOSTNAMES.get(domain, 'gitea' if 'gitea.' in domain or 'forgejo.' in domain else None) == 'gitea':
+        owner, repo = query.split('/')
+        ret['gitea'] = {
+            'domain': domain,
+            'owner': owner,
+            'repo': repo,
+            'rev': rev,
+            'hash': hash,
+        }
+        repobase = f'{repourl}/src/commit/{rev}'
+        ret['attrs']['meta']['downloadPage'] = f'{repourl}/releases'
+        ret['attrs']['meta']['changelog'] = f'{repourl}/releases'
+    elif HOSTNAMES.get(domain, 'gitlab' if 'gitlab.' in domain else None) == 'gitlab':
+        owner, repo = query.split('/')
+        ret['gitlab'] = {
+            'owner': owner,
+            'repo': repo,
+            'rev': rev,
+            'hash': hash,
+        }
+        if domain != 'gitlab.com':
+            ret['gitlab']['domain'] = domain
+        repobase = f'{repourl}/-/blob/{rev}'
+    else:
+        raise ValueError(f'Is {domain} Gitea or Gitlab, or something else? Please specify in the Python script!')
+    if os.path.exists(os.path.join(plugindir, 'CHANGELOG.md')):
+        ret['attrs']['meta']['changelog'] = f'{repobase}/CHANGELOG.md'
+    if os.path.exists(os.path.join(plugindir, 'maubot.yaml')):
+        with open(os.path.join(plugindir, 'maubot.yaml'), 'rt') as f:
+            ret['manifest'] = yaml.load(f)
+    elif os.path.exists(os.path.join(plugindir, 'pyproject.toml')):
+        ret['isPoetry'] = True
+        with open(os.path.join(plugindir, 'pyproject.toml'), 'rt') as f:
+            data = toml.load(f)
+        deps = []
+        for key, val in data['tool']['poetry'].get('dependencies', {}).items():
+            if key in ['maubot', 'mautrix', 'python']:
+                continue
+            reqs = []
+            for req in val.split(','):
+                reqs.extend(poetry_to_pep(req))
+            deps.append(key + ', '.join(reqs))
+        ret['manifest'] = data['tool']['maubot']
+        ret['manifest']['id'] = data['tool']['poetry']['name']
+        ret['manifest']['version'] = data['tool']['poetry']['version']
+        ret['manifest']['license'] = data['tool']['poetry']['license']
+        if deps:
+            ret['manifest']['dependencies'] = deps
+    else:
+        raise ValueError(f'No maubot.yaml or pyproject.toml found in {repodir}')
+    # normalize non-spdx-conformant licenses this way
+    # (and fill out missing license info)
+    if 'license' not in ret['manifest'] or ret['manifest']['license'] in ['GPLv3', 'AGPL 3.0']:
+        ret['attrs']['meta']['license'] = license
+    elif ret['manifest']['license'] != license:
+        print(f"Warning: licenses for {repourl} don't match! {ret['manifest']['license']} != {license}")
+    if official:
+        ret['isOfficial'] = official
+    PLUGINS[name] = ret
+
+def next_incomp(ver_s: str) -> str:
+    ver = ver_s.split('.')
+    zero = False
+    for i in range(len(ver)):
+        try:
+            seg = int(ver[i])
+        except ValueError:
+            if zero:
+                ver = ver[:i]
+                break
+            continue
+        if zero:
+            ver[i] = '0'
+        elif seg:
+            ver[i] = str(seg + 1)
+            zero = True
+    return '.'.join(ver)
+
+def poetry_to_pep(ver_req: str) -> List[str]:
+    if '*' in ver_req:
+        raise NotImplementedError('Wildcard poetry versions not implemented!')
+    if ver_req.startswith('^'):
+        return ['>=' + ver_req[1:], '<' + next_incomp(ver_req[1:])]
+    if ver_req.startswith('~'):
+        return ['~=' + ver_req[1:]]
+    return [ver_req]
+
+def main():
+    cache_path = os.path.join(TMP, 'maubot-plugins')
+    if not os.path.exists(cache_path):
+        os.makedirs(cache_path)
+        git.Repo.clone_from('https://github.com/maubot/plugins.maubot.xyz', os.path.join(cache_path, '_repo'))
+    else:
+        pass
+
+    repodir = os.path.join(cache_path, '_repo')
+
+    for suffix, official in (('official', True), ('thirdparty', False)):
+        directory = os.path.join(repodir, 'data', 'plugins', suffix)
+        for plugin_name in os.listdir(directory):
+            process_repo(os.path.join(directory, plugin_name), official)
+
+    if os.path.isdir('pkgs/tools/networking/maubot/plugins'):
+        generated = 'pkgs/tools/networking/maubot/plugins/generated.json'
+    else:
+        script_dir = os.path.dirname(os.path.realpath(__file__))
+        generated = os.path.join(script_dir, 'generated.json')
+
+    with open(generated, 'wt') as file:
+        json.dump(PLUGINS, file, indent='  ', separators=(',', ': '), sort_keys=True)
+        file.write('\n')
+
+if __name__ == '__main__':
+    main()
diff --git a/pkgs/tools/networking/maubot/wrapper.nix b/pkgs/tools/networking/maubot/wrapper.nix
new file mode 100644
index 0000000000000..6f4c577110be3
--- /dev/null
+++ b/pkgs/tools/networking/maubot/wrapper.nix
@@ -0,0 +1,70 @@
+{ lib
+, symlinkJoin
+, runCommand
+, unwrapped
+, python3
+, formats
+}:
+
+let wrapper = { pythonPackages ? (_: [ ]), plugins ? (_: [ ]), baseConfig ? null }:
+  let
+    plugins' = plugins unwrapped.plugins;
+    extraPythonPackages = builtins.concatLists (map (p: p.propagatedBuildInputs or [ ]) plugins');
+  in
+  symlinkJoin {
+    name = "${unwrapped.pname}-with-plugins-${unwrapped.version}";
+
+    inherit unwrapped;
+    paths = lib.optional (baseConfig != null) unwrapped ++ plugins';
+    pythonPath = lib.optional (baseConfig == null) unwrapped ++ pythonPackages python3.pkgs ++ extraPythonPackages;
+
+    nativeBuildInputs = [ python3.pkgs.wrapPython ];
+
+    postBuild = ''
+      rm -f $out/nix-support/propagated-build-inputs
+      rmdir $out/nix-support || true
+      ${lib.optionalString (baseConfig != null) ''
+        rm $out/${python3.sitePackages}/maubot/example-config.yaml
+        substituteAll ${(formats.yaml { }).generate "example-config.yaml" (lib.recursiveUpdate baseConfig {
+          plugin_directories = lib.optionalAttrs (plugins' != []) {
+            load = [ "@out@/lib/maubot-plugins" ] ++ (baseConfig.plugin_directories.load or []);
+          };
+          # Normally it should be set to false by default to take it from package
+          # root, but aiohttp doesn't follow symlinks when serving static files
+          # unless follow_symlinks=True is passed. Instead of patching maubot, use
+          # this non-invasive approach
+          # XXX: would patching maubot be better? See:
+          # https://github.com/maubot/maubot/blob/75879cfb9370aade6fa0e84e1dde47222625139a/maubot/server.py#L106
+          server.override_resource_path =
+            if builtins.isNull (baseConfig.server.override_resource_path or null)
+            then "${unwrapped}/${python3.sitePackages}/maubot/management/frontend/build"
+            else baseConfig.server.override_resource_path;
+        })} $out/${python3.sitePackages}/maubot/example-config.yaml
+        rm -rf $out/bin
+      ''}
+      mkdir -p $out/bin
+      cp $unwrapped/bin/.mbc-wrapped $out/bin/mbc
+      cp $unwrapped/bin/.maubot-wrapped $out/bin/maubot
+      wrapPythonProgramsIn "$out/bin" "${lib.optionalString (baseConfig != null) "$out "}$pythonPath"
+    '';
+
+    passthru = {
+      inherit unwrapped;
+      python = python3;
+      withPythonPackages = filter: wrapper {
+        pythonPackages = pkgs: pythonPackages pkgs ++ filter pkgs;
+        inherit plugins baseConfig;
+      };
+      withPlugins = filter: wrapper {
+        plugins = pkgs: plugins pkgs ++ filter pkgs;
+        inherit pythonPackages baseConfig;
+      };
+      withBaseConfig = baseConfig: wrapper {
+        inherit baseConfig pythonPackages plugins;
+      };
+    };
+
+    meta.priority = (unwrapped.meta.priority or 0) - 1;
+  };
+in
+wrapper
diff --git a/pkgs/tools/networking/mdk4/default.nix b/pkgs/tools/networking/mdk4/default.nix
index 903504633ac8f..979584db432d7 100644
--- a/pkgs/tools/networking/mdk4/default.nix
+++ b/pkgs/tools/networking/mdk4/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "A tool that injects data into wireless networks";
     homepage = "https://github.com/aircrack-ng/mdk4";
-    maintainers = with maintainers; [ fortuneteller2k ];
+    maintainers = with maintainers; [ moni ];
     license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index 21183437c02aa..a2e53bb798904 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2023-09-07T22-48-55Z";
+  version = "2024-01-28T16-23-14Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-DW6G37SLYzXkh8EHXhczloIZxNQS2+ON2kXe5VsQSZg=";
+    sha256 = "sha256-1FV7o4kkFEbcEmkV3Kj37vQ6uKZ/GoSnuCp3NNxMGN8=";
   };
 
-  vendorHash = "sha256-NbqqvV34Bzv2AmMYlN133RI7jNh96Jmo8065D3RxClI=";
+  vendorHash = "sha256-wxFhj+oqj5WV/UkPZlmeJHF2WC4oLlZOql1qgSFs+zU=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/networking/miniupnpc/default.nix b/pkgs/tools/networking/miniupnpc/default.nix
index 80b199b922c0d..f1a639b720609 100644
--- a/pkgs/tools/networking/miniupnpc/default.nix
+++ b/pkgs/tools/networking/miniupnpc/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "miniupnpc";
-  version = "2.2.4";
+  version = "2.2.6";
 
   src = fetchurl {
     url = "https://miniupnp.tuxfamily.org/files/${pname}-${version}.tar.gz";
-    sha256 = "0jrc84lkc7xb53rb8dbswxrxj21ndj1iiclmk3r9wkp6xm55w6j8";
+    sha256 = "sha256-N/zZGVNQjD5i1pZLuP+8XUfz4TSB+lTmIU/MaHBMZvE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index 8264b54d28c0e..dabf5194f881b 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -1,36 +1,76 @@
 { stdenv, lib, fetchurl, iptables-legacy, libuuid, openssl, pkg-config
-, which, iproute2, gnused, coreutils, gawk, makeWrapper
+, which, iproute2, gnused, coreutils, gnugrep, gawk, makeWrapper
 , nixosTests
+, firewall ? "iptables", nftables, libmnl, libnftnl
 }:
 
 let
-  scriptBinEnv = lib.makeBinPath [ which iproute2 iptables-legacy gnused coreutils gawk ];
+  scriptBinEnv = lib.makeBinPath {
+    iptables = [
+      # needed for dirname in ip{,6}tables_*.sh
+      coreutils
+      # used in miniupnpd_functions.sh:
+      which
+      iproute2
+      iptables-legacy
+      gnused
+      gnugrep
+      gawk
+    ];
+    nftables = [
+      # needed for dirname in nft_*.sh & cat in nft_init.sh
+      coreutils
+      # used in miniupnpd_functions.sh:
+      which
+      nftables
+    ];
+  }.${firewall};
 in
 stdenv.mkDerivation rec {
   pname = "miniupnpd";
-  version = "2.3.3";
+  version = "2.3.4";
 
   src = fetchurl {
     url = "https://miniupnp.tuxfamily.org/files/miniupnpd-${version}.tar.gz";
-    sha256 = "sha256-b9cBn5Nv+IxB58gi9G8QtRvXLWZZePZYZIPedbMMNr8=";
+    sha256 = "sha256-5zAzSPyKxCfefwTw7rdX1J3Mg2cxHuJYJVLDj11toIo=";
   };
 
-  buildInputs = [ iptables-legacy libuuid openssl ];
+  buildInputs = [ iptables-legacy libuuid openssl ]
+    ++ lib.optionals (firewall == "nftables") [ libmnl libnftnl ];
   nativeBuildInputs= [ pkg-config makeWrapper ];
 
-
   # ./configure is not a standard configure file, errors with:
   # Option not recognized : --prefix=
   dontAddPrefix = true;
+  configureFlags = [
+    "--firewall=${firewall}"
+    # allow using various config options
+    "--ipv6"
+    "--leasefile"
+    "--regex"
+    "--vendorcfg"
+    # hardening
+    "--portinuse"
+  ];
 
   installFlags = [ "PREFIX=$(out)" "INSTALLPREFIX=$(out)" ];
 
-  postFixup = ''
-    for script in $out/etc/miniupnpd/ip{,6}tables_{init,removeall}.sh
-    do
-      wrapProgram $script --set PATH '${scriptBinEnv}:$PATH'
-    done
-  '';
+  postFixup = {
+    # Ideally we'd prefer using system's config.firewall.package here for iptables,
+    # however for some reason switching --prefix to --suffix breaks the script
+    iptables = ''
+      for script in $out/etc/miniupnpd/ip{,6}tables_{init,removeall}.sh
+      do
+        wrapProgram $script --prefix PATH : '${scriptBinEnv}:$PATH'
+      done
+    '';
+    nftables = ''
+      for script in $out/etc/miniupnpd/nft_{delete_chain,flush,init,removeall}.sh
+      do
+        wrapProgram $script --suffix PATH : '${scriptBinEnv}:$PATH'
+      done
+    '';
+  }.${firewall};
 
   passthru.tests = {
     bittorrent-integration = nixosTests.bittorrent;
@@ -42,5 +82,6 @@ stdenv.mkDerivation rec {
     description = "A daemon that implements the UPnP Internet Gateway Device (IGD) specification";
     platforms = platforms.linux;
     license = licenses.bsd3;
+    mainProgram = "miniupnpd";
   };
 }
diff --git a/pkgs/tools/networking/mmsd/default.nix b/pkgs/tools/networking/mmsd/default.nix
index 43891d612bb1a..f7ea7be22c08f 100644
--- a/pkgs/tools/networking/mmsd/default.nix
+++ b/pkgs/tools/networking/mmsd/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv
-, fetchgit
+, fetchzip
 , autoreconfHook
 , pkg-config
 , glib
@@ -10,9 +10,8 @@ stdenv.mkDerivation rec {
   pname = "mmsd";
   version = "unstable-2019-07-15";
 
-  src = fetchgit {
-    url = "https://git.kernel.org/pub/scm/network/ofono/mmsd.git";
-    rev = "f4b8b32477a411180be1823fdc460b4f7e1e3c9c";
+  src = fetchzip {
+    url = "https://git.kernel.org/pub/scm/network/ofono/mmsd.git/snapshot/mmsd-f4b8b32477a411180be1823fdc460b4f7e1e3c9c.tar.gz";
     sha256 = "0hcnpyhsi7b5m825dhnwbp65yi0961wi8mipzdvaw5nc693xv15b";
   };
 
diff --git a/pkgs/tools/networking/mockoon/default.nix b/pkgs/tools/networking/mockoon/default.nix
index e98b4ac7df44f..f100239a61dd6 100644
--- a/pkgs/tools/networking/mockoon/default.nix
+++ b/pkgs/tools/networking/mockoon/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "mockoon";
-  version = "4.1.0";
+  version = "6.1.0";
 
   src = fetchurl {
     url = "https://github.com/mockoon/mockoon/releases/download/v${version}/mockoon-${version}.AppImage";
-    hash = "sha256-7wf7RFyYQN0pGcfKRzYOxs0qNi27JuX/nXUzT/zMSY4=";
+    hash = "sha256-harZU3TTIzfJoY/jAQI0dm7YSOr24Y9xk9L5ZaBLdD8=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index d66c277f1dacd..dd36f4b7465af 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -23,14 +23,14 @@
 
 stdenv.mkDerivation rec {
   pname = "modemmanager";
-  version = "1.20.6";
+  version = "1.22.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mobile-broadband";
     repo = "ModemManager";
     rev = version;
-    hash = "sha256-/A4WTsUQVeZDi5ei6qBvqoWYLKdRcZaYZU8/qWOPrvM=";
+    hash = "sha256-/D9b2rCCUhpDCUfSNAWR65+3EyUywzFdH1R17eSKRDo=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/mozillavpn/default.nix b/pkgs/tools/networking/mozillavpn/default.nix
index 6888b5aa4ab2b..1812dc690e180 100644
--- a/pkgs/tools/networking/mozillavpn/default.nix
+++ b/pkgs/tools/networking/mozillavpn/default.nix
@@ -26,13 +26,13 @@
 
 let
   pname = "mozillavpn";
-  version = "2.16.1";
+  version = "2.19.0";
   src = fetchFromGitHub {
     owner = "mozilla-mobile";
     repo = "mozilla-vpn-client";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-UMWBn3DoEU1fG7qh6F0GOhOqod+grPwp15wSSdP0eCo=";
+    hash = "sha256-aXfxUtGm+vq8U3jYTxYhOP7UXL6ukCJgmGQO2Wsqobo=";
   };
   patches = [ ];
 
@@ -46,19 +46,19 @@ let
     inherit src patches;
     name = "${pname}-${version}-extension-bridge";
     preBuild = "cd extension/bridge";
-    hash = "sha256-1wYTRc+NehiHwAd/2CmsJNv/TV6wH5wXwNiUdjzEUIk=";
+    hash = "sha256-23GTXsbjL8qfGA5NdPlrbdaA8rg8vOZsZCXvevi7Chc=";
   };
   signatureDeps = rustPlatform.fetchCargoTarball {
     inherit src patches;
     name = "${pname}-${version}-signature";
     preBuild = "cd signature";
-    hash = "sha256-oaKkQWMYkAy1c2biVt+GyjHBeYb2XkuRvFrWQJJIdPw=";
+    hash = "sha256-TB172hVIilDTl+y0shNp55if+FhrXjWSaGNF7K6GSH8=";
   };
   qtgleanDeps = rustPlatform.fetchCargoTarball {
     inherit src patches;
     name = "${pname}-${version}-qtglean";
     preBuild = "cd qtglean";
-    hash = "sha256-cqfiOBS8xFC2BbYp6BJWK6NHIU0tILSgu4eo3Ik4YqY=";
+    hash = "sha256-tfQ2ogSDDXNPeygBy+el+71iwcafSfY78hvYPHurKPE=";
   };
 
 in
@@ -110,7 +110,7 @@ stdenv.mkDerivation {
   dontCargoSetupPostUnpack = true;
 
   postPatch = ''
-    substituteInPlace src/apps/vpn/cmake/linux.cmake \
+    substituteInPlace src/cmake/linux.cmake \
       --replace '/etc/xdg/autostart' "$out/etc/xdg/autostart" \
       --replace '/usr/share/dbus-1' "$out/share/dbus-1" \
       --replace '${"$"}{SYSTEMD_UNIT_DIR}' "$out/lib/systemd/system"
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index a46fc526e6958..6f3f556e25928 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.10.7";
+  version = "1.10.8";
 
   outputs = [ "out" "mu4e" ];
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "djcb";
     repo = "mu";
     rev = "v${version}";
-    hash = "sha256-x1TsyTOK5U6/Y3QInm+XQ7T32X49iwa+4UnaHdiyqCI=";
+    hash = "sha256-cDfW0yXA+0fZY5lv4XCHWu+5B0svpMeVMf8ttX/z4Og=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/mubeng/default.nix b/pkgs/tools/networking/mubeng/default.nix
index 812d3bb5068d6..8e50188ec814c 100644
--- a/pkgs/tools/networking/mubeng/default.nix
+++ b/pkgs/tools/networking/mubeng/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "mubeng";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "kitabisa";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AxgvZdsJX16sZi4g8LnfceKuw/wBwvj6uoF/5zKldBk=";
+    hash = "sha256-MdTgYhHjgDFplh+wcb9QTwzwMZSmF2kqMmu1x8WmOyQ=";
   };
 
   vendorHash = "sha256-kOLeaEKtpI3l0qLphRTnm27Ms63ID4LJ6VkUHJzGAcc=";
diff --git a/pkgs/tools/networking/muffet/default.nix b/pkgs/tools/networking/muffet/default.nix
index 19458f6461bb8..133eaf3b27ba3 100644
--- a/pkgs/tools/networking/muffet/default.nix
+++ b/pkgs/tools/networking/muffet/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "muffet";
-  version = "2.9.2";
+  version = "2.9.3";
 
   src = fetchFromGitHub {
     owner = "raviqqe";
     repo = "muffet";
     rev = "v${version}";
-    hash = "sha256-M+yId2cNTO1n+E0UmMJK7aLmeDdXnI3McqTxL5EvB+A=";
+    hash = "sha256-w9PoKGxZdP/sKdlTlnWBMqDPDLUvcYubkCyNHUm3AAc=";
   };
 
-  vendorHash = "sha256-NTQlhLlSPh9+Il08T9I2qc+BqIo9RniOFG9Dgeez1QA=";
+  vendorHash = "sha256-2an4xj1gqQqj9NrSdTAss7hn6SiWoiq3RQ2xxUlSuaE=";
 
   meta = with lib; {
     description = "A website link checker which scrapes and inspects all pages in a website recursively";
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index e0efbe31f8ebb..ebef277feb21c 100644
--- a/pkgs/tools/networking/nbd/default.nix
+++ b/pkgs/tools/networking/nbd/default.nix
@@ -1,4 +1,16 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, which, bison, nixosTests, linuxHeaders, gnutls }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, pkg-config
+, glib
+, which
+, bison
+, nixosTests
+, libnl
+, linuxHeaders
+, gnutls
+}:
 
 stdenv.mkDerivation rec {
   pname = "nbd";
@@ -9,15 +21,35 @@ stdenv.mkDerivation rec {
     hash = "sha256-9cj9D8tXsckmWU0OV/NWQy7ghni+8dQNCI8IMPDL3Qo=";
   };
 
-  buildInputs = [ glib gnutls ]
-    ++ lib.optionals stdenv.isLinux [ linuxHeaders ];
+  patches = [
+    # fix port setting from nbdtab
+    # https://github.com/NetworkBlockDevice/nbd/pull/154
+    (fetchpatch {
+      url = "https://github.com/NetworkBlockDevice/nbd/commit/915444bc0b8a931d32dfb755542f4bd1d37f1449.patch";
+      hash = "sha256-6z+c2cXhY92WPDqRO6AJ5BBf1N38yTgOE1foduIr5Dg=";
+    })
+  ];
 
-  nativeBuildInputs = [ pkg-config which bison ];
+  nativeBuildInputs = [
+    pkg-config
+    which
+    bison
+  ];
 
-  postInstall = ''
-    mkdir -p "$out/share/doc/nbd-${version}"
-    cp README.md "$out/share/doc/nbd-${version}/"
-  '';
+  buildInputs = [
+    glib
+    gnutls
+  ] ++ lib.optionals stdenv.isLinux [
+    libnl
+    linuxHeaders
+  ];
+
+  configureFlags = [
+    "--sysconfdir=/etc"
+  ];
+
+  # ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration";
 
   doCheck = !stdenv.isDarwin;
 
@@ -30,5 +62,6 @@ stdenv.mkDerivation rec {
     description = "Map arbitrary files as block devices over the network";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ nickcao ];
   };
 }
diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix
index 4147adf50749b..5420c5fa35c3d 100644
--- a/pkgs/tools/networking/nebula/default.nix
+++ b/pkgs/tools/networking/nebula/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "nebula";
-  version = "1.7.2";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "slackhq";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-/kEXrcMFnrnnD+6754EDoOvn4czh0rJGEjlXkmCzb1w=";
+    hash = "sha256-tbzdbI4QTLQcJ6kyD3c+jQvXn9ERV/9hrzNPXV9XwVM=";
   };
 
-  vendorHash = "sha256-VZzSdl8R1y7rCF2vz7e+5nAkb3wlJymNWCXwZZUvg4A=";
+  vendorHash = "sha256-BL9Tx87pBZIAuoneu6Sm2gjyTTC6yOZv5GVYNNeuhtw=";
 
   subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
 
diff --git a/pkgs/tools/networking/netassert/default.nix b/pkgs/tools/networking/netassert/default.nix
index ac7f2f3630d53..1351c255e9436 100644
--- a/pkgs/tools/networking/netassert/default.nix
+++ b/pkgs/tools/networking/netassert/default.nix
@@ -5,15 +5,15 @@
 
 buildGoModule rec {
   pname = "netassert";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "controlplaneio";
     repo = "netassert";
     rev = "v${version}";
-    hash = "sha256-UWiPjLvMuEc12HJ5ZiwKGeD0hh/y9j4P6FKu0uynUGA=";
+    hash = "sha256-mRKjo0AfnM+XTl7sQoGDyQoquXpD3xPJ6i3/3Dj2rhE=";
   };
-  vendorHash = "sha256-nDnSJOfEn9KieDwdNeIGFcI4m8rVU+Yaxwa+dKyNSHM=";
+  vendorHash = "sha256-9mvSfAd1m95eRwljGG68+tjiFObgt1EuakjwFfn9Obo=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/networking/netbird/default.nix b/pkgs/tools/networking/netbird/default.nix
index 29624c0693a6c..b4f37a7d3be46 100644
--- a/pkgs/tools/networking/netbird/default.nix
+++ b/pkgs/tools/networking/netbird/default.nix
@@ -17,6 +17,7 @@
 , UserNotifications
 , WebKit
 , ui ? false
+, netbird-ui
 }:
 let
   modules =
@@ -30,16 +31,16 @@ let
 in
 buildGoModule rec {
   pname = "netbird";
-  version = "0.23.8";
+  version = "0.25.5";
 
   src = fetchFromGitHub {
     owner = "netbirdio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fIISVhEtnd7ay3BeTfyRX2Kjs7GSLpgsjWVIa79Thes=";
+    hash = "sha256-b+zwDKuB6RRWCZTIjFIW9KA9N7KJhX7gdFJvDk0RtGc=";
   };
 
-  vendorHash = "sha256-sb+GSyP1KF1u0aEHp0fqsT5gluk5T08vUB14+MqGE0U=";
+  vendorHash = "sha256-vdGF7mIpE1PgCRsRCWE7cziKp9ZaIcxYUU6FREsFb70=";
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config;
 
@@ -89,7 +90,7 @@ buildGoModule rec {
       '')
       modules) + lib.optionalString (stdenv.isLinux && ui) ''
     mkdir -p $out/share/pixmaps
-    cp $src/client/ui/disconnected.png $out/share/pixmaps/netbird.png
+    cp $src/client/ui/netbird-systemtray-default.png $out/share/pixmaps/netbird.png
 
     mkdir -p $out/share/applications
     cp $src/client/ui/netbird.desktop $out/share/applications/netbird.desktop
@@ -100,6 +101,7 @@ buildGoModule rec {
 
   passthru = {
     tests.netbird = nixosTests.netbird;
+    tests.netbird-ui = netbird-ui;
     updateScript = nix-update-script { };
   };
 
@@ -109,5 +111,6 @@ buildGoModule rec {
     description = "Connect your devices into a single secure private WireGuard®-based mesh network with SSO/MFA and simple access controls";
     license = licenses.bsd3;
     maintainers = with maintainers; [ misuzu ];
+    mainProgram = "netbird";
   };
 }
diff --git a/pkgs/tools/networking/nethoscope/default.nix b/pkgs/tools/networking/nethoscope/default.nix
index 9a17adc3800de..478220210b3d8 100644
--- a/pkgs/tools/networking/nethoscope/default.nix
+++ b/pkgs/tools/networking/nethoscope/default.nix
@@ -15,10 +15,10 @@ rustPlatform.buildRustPackage rec {
     owner = "vvilhonen";
     repo = "nethoscope";
     rev = "v${version}";
-    sha256 = "0dsv1f0ncwji8x7q1ix62955qji4jijgjx6xg3hxvl0vvvwqxcdz";
+    hash = "sha256-v7GO+d4b0N3heN10+WSUJEpcShKmx4BPR1FyZoELWzc=";
   };
 
-  cargoSha256 = "0cl0i4m8fxyxfib95x90x6qr284y41wwgwqhflyfa7d3r6qwq8nk";
+  cargoHash = "sha256-0yLMscmjHeU8dRDzx3kgniCRsekg9ZJWdN13hyqJgDI=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/networking/netifd/default.nix b/pkgs/tools/networking/netifd/default.nix
index 315d584038252..59b2e47329801 100644
--- a/pkgs/tools/networking/netifd/default.nix
+++ b/pkgs/tools/networking/netifd/default.nix
@@ -1,23 +1,58 @@
-{ lib, stdenv, cmake, fetchgit, libnl, libubox, uci, ubus, json_c, pkg-config }:
+{ lib
+, stdenv
+, cmake
+, fetchgit
+, libnl
+, libubox
+, uci
+, ubus
+, json_c
+, pkg-config
+, udebug
+}:
 
 stdenv.mkDerivation {
   pname = "netifd";
-  version = "unstable-2021-04-03";
+  version = "unstable-2023-11-27";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/netifd.git";
-    rev = "327da9895327bc56b23413ee91a6e6b6e0e4329d";
-    sha256 = "0jvk2hx8kbkc6d72gh9rwap8ds6qgnmny6306vvzxy68v03xikwv";
+    rev = "02bc2e14d1d37500e888c0c53ac41398a56b5579";
+    hash = "sha256-aMs/Y50+1Yk/j5jGubjBCRcPGw03oIitvEygaxRlr90=";
   };
 
-  buildInputs = [ libnl libubox uci ubus json_c ];
-  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [
+    libnl.dev
+    libubox
+    uci
+    ubus
+    json_c
+    udebug
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  postPatch = ''
+    # by default this assumes the build directory is the source directory
+    # since we let cmake build in it's own build directory, we need to use
+    # $PWD (which at the time of this script being run is the directory with the source code)
+    # to adjust the paths
+    sed "s|./make_ethtool_modes_h.sh|$PWD/make_ethtool_modes_h.sh|g" -i CMakeLists.txt
+    sed "s|./ethtool-modes.h|$PWD/ethtool-modes.h|g" -i CMakeLists.txt
+  '';
+
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12") [
+    "-Wno-error=maybe-uninitialized"
+  ]);
 
   meta = with lib; {
     description = "OpenWrt Network interface configuration daemon";
     homepage = "https://git.openwrt.org/?p=project/netifd.git;a=summary";
     license = licenses.lgpl21Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ mkg20001 ];
   };
 }
diff --git a/pkgs/tools/networking/networkmanager/applet/default.nix b/pkgs/tools/networking/networkmanager/applet/default.nix
index 12ec5d8a506f4..20f5d52ff6888 100644
--- a/pkgs/tools/networking/networkmanager/applet/default.nix
+++ b/pkgs/tools/networking/networkmanager/applet/default.nix
@@ -18,17 +18,17 @@
 , gobject-introspection
 , python3
 , gtk3
-, libappindicator-gtk3
+, libayatana-appindicator
 , glib
 }:
 
 stdenv.mkDerivation rec {
   pname = "network-manager-applet";
-  version = "1.32.0";
+  version = "1.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-orWv+hUFrUOQKVn9vgnlvOxXsR7TM/pgRY/7nGLvujg=";
+    sha256 = "sha256-qzaORw9rFh/IuDS8l5ErfnmvkrjNfqOZwtQAzomrpag=";
   };
 
   mesonFlags = [
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     jansson
     glib
     glib-networking
-    libappindicator-gtk3
+    libayatana-appindicator
     gnome.adwaita-icon-theme
   ];
 
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 74fb6508794b4..5490977df12d0 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -53,15 +53,15 @@
 }:
 
 let
-  pythonForDocs = python3.pythonForBuild.withPackages (pkgs: with pkgs; [ pygobject3 ]);
+  pythonForDocs = python3.pythonOnBuildForHost.withPackages (pkgs: with pkgs; [ pygobject3 ]);
 in
 stdenv.mkDerivation rec {
   pname = "networkmanager";
-  version = "1.42.8";
+  version = "1.44.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "sha256-AzfnWD0uxa3iui6MYl0vCe7M2h0ig27imqcpJdOZw1M=";
+    sha256 = "sha256-S1i/OsV+LO+1ZS79CUXrC0vDamPZKmGrRx2LssmkIOE=";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
     "-Dkernel_firmware_dir=/run/current-system/firmware"
 
     # Platform
+    "-Dmodprobe=${kmod}/bin/modprobe"
     "-Dsession_tracking=systemd"
     "-Dlibaudit=yes-disabled-by-default"
     "-Dpolkit_agent_helper_1=/run/wrappers/bin/polkit-agent-helper-1"
@@ -118,7 +119,7 @@ stdenv.mkDerivation rec {
   patches = [
     (substituteAll {
       src = ./fix-paths.patch;
-      inherit iputils kmod openconnect ethtool gnused systemd;
+      inherit iputils openconnect ethtool gnused systemd;
       inherit runtimeShell;
     })
 
diff --git a/pkgs/tools/networking/networkmanager/fix-install-paths.patch b/pkgs/tools/networking/networkmanager/fix-install-paths.patch
index 71fbd4842c2e4..2b2af0b2ad465 100644
--- a/pkgs/tools/networking/networkmanager/fix-install-paths.patch
+++ b/pkgs/tools/networking/networkmanager/fix-install-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/meson.build b/meson.build
-index 6813e52ac1..ecdb78ca54 100644
+index f71c9fd4aa..deddf28816 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -999,9 +999,9 @@ meson.add_install_script(
+@@ -1022,9 +1022,9 @@ meson.add_install_script(
    join_paths('tools', 'meson-post-install.sh'),
    nm_datadir,
    nm_bindir,
diff --git a/pkgs/tools/networking/networkmanager/fix-paths.patch b/pkgs/tools/networking/networkmanager/fix-paths.patch
index 2491b099c9f1b..6c97b672e679a 100644
--- a/pkgs/tools/networking/networkmanager/fix-paths.patch
+++ b/pkgs/tools/networking/networkmanager/fix-paths.patch
@@ -11,10 +11,10 @@ index 148acade5c..6395fbfbe5 100644
  
  LABEL="nm_drivers_end"
 diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
-index e23b3a5282..c7246a3b61 100644
+index f09ae86ceb..b2ecb405ef 100644
 --- a/data/NetworkManager.service.in
 +++ b/data/NetworkManager.service.in
-@@ -8,7 +8,7 @@ Before=network.target @DISTRO_NETWORK_SERVICE@
+@@ -9,7 +9,7 @@ BindsTo=dbus.service
  [Service]
  Type=dbus
  BusName=org.freedesktop.NetworkManager
@@ -24,10 +24,10 @@ index e23b3a5282..c7246a3b61 100644
  ExecStart=@sbindir@/NetworkManager --no-daemon
  Restart=on-failure
 diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
-index 3565c04d59..52c58fec24 100644
+index 2038e2f205..90bf9fa28b 100644
 --- a/src/core/devices/nm-device.c
 +++ b/src/core/devices/nm-device.c
-@@ -14005,14 +14005,14 @@ nm_device_start_ip_check(NMDevice *self)
+@@ -14275,14 +14275,14 @@ nm_device_start_ip_check(NMDevice *self)
              gw = nm_l3_config_data_get_best_default_route(l3cd, AF_INET);
              if (gw) {
                  nm_inet4_ntop(NMP_OBJECT_CAST_IP4_ROUTE(gw)->gateway, buf);
@@ -45,10 +45,10 @@ index 3565c04d59..52c58fec24 100644
              }
          }
 diff --git a/src/libnm-client-impl/meson.build b/src/libnm-client-impl/meson.build
-index 143126c51a..a7143443ec 100644
+index fb879dca47..13cc2867e1 100644
 --- a/src/libnm-client-impl/meson.build
 +++ b/src/libnm-client-impl/meson.build
-@@ -172,7 +172,6 @@ if enable_introspection
+@@ -173,7 +173,6 @@ if enable_introspection
        input: libnm_core_settings_sources,
        output: 'nm-propery-infos-' + info + '.xml',
        command: [
@@ -56,7 +56,7 @@ index 143126c51a..a7143443ec 100644
          join_paths(meson.source_root(), 'tools', 'generate-docs-nm-property-infos.py'),
          info,
          '@OUTPUT@',
-@@ -229,7 +228,6 @@ if enable_introspection
+@@ -230,7 +229,6 @@ if enable_introspection
        'env',
        'GI_TYPELIB_PATH=' + gi_typelib_path,
        'LD_LIBRARY_PATH=' + ld_library_path,
@@ -64,27 +64,14 @@ index 143126c51a..a7143443ec 100644
        join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-gir.py'),
        '--lib-path', meson.current_build_dir(),
        '--gir', '@INPUT@',
-diff --git a/src/libnm-platform/nm-platform-utils.c b/src/libnm-platform/nm-platform-utils.c
-index bebc53a851..93710455d5 100644
---- a/src/libnm-platform/nm-platform-utils.c
-+++ b/src/libnm-platform/nm-platform-utils.c
-@@ -2209,7 +2209,7 @@ nmp_utils_modprobe(GError **error, gboolean suppress_error_logging, const char *
- 
-     /* construct the argument list */
-     argv = g_ptr_array_sized_new(4);
--    g_ptr_array_add(argv, "/sbin/modprobe");
-+    g_ptr_array_add(argv, "@kmod@/bin/modprobe");
-     g_ptr_array_add(argv, "--use-blacklist");
-     g_ptr_array_add(argv, (char *) arg1);
- 
 diff --git a/src/libnmc-base/nm-vpn-helpers.c b/src/libnmc-base/nm-vpn-helpers.c
-index 476fbe518e..2641dbf637 100644
+index cbe76f5f1c..8515f94994 100644
 --- a/src/libnmc-base/nm-vpn-helpers.c
 +++ b/src/libnmc-base/nm-vpn-helpers.c
-@@ -198,25 +198,8 @@ nm_vpn_openconnect_authenticate_helper(const char *host,
-     gs_free const char **output_v = NULL;
+@@ -284,15 +284,6 @@ nm_vpn_openconnect_authenticate_helper(NMSettingVpn *s_vpn, GPtrArray *secrets,
      const char *const   *iter;
      const char          *path;
+     const char          *opt;
 -    const char *const    DEFAULT_PATHS[] = {
 -        "/sbin/",
 -        "/usr/sbin/",
@@ -94,6 +81,12 @@ index 476fbe518e..2641dbf637 100644
 -        "/usr/local/bin/",
 -        NULL,
 -    };
+     const char *oc_argv[(12 + 2 * G_N_ELEMENTS(oc_property_args))];
+     const char *gw;
+     int         port;
+@@ -311,15 +302,7 @@ nm_vpn_openconnect_authenticate_helper(NMSettingVpn *s_vpn, GPtrArray *secrets,
+ 
+     port = extract_url_port(gw);
  
 -    path = nm_utils_file_search_in_paths("openconnect",
 -                                         "/usr/sbin/openconnect",
@@ -106,10 +99,10 @@ index 476fbe518e..2641dbf637 100644
 -        return FALSE;
 +    path = "@openconnect@/bin/openconnect";
  
-     if (!g_spawn_sync(NULL,
-                       (char **) NM_MAKE_STRV(path, "--authenticate", host),
+     oc_argv[oc_argc++] = path;
+     oc_argv[oc_argc++] = "--authenticate";
 diff --git a/src/libnmc-setting/meson.build b/src/libnmc-setting/meson.build
-index cf8a21fc80..61b992a50e 100644
+index cf8a21fc80..61d8e140e2 100644
 --- a/src/libnmc-setting/meson.build
 +++ b/src/libnmc-setting/meson.build
 @@ -7,7 +7,6 @@ if enable_docs
@@ -120,8 +113,16 @@ index cf8a21fc80..61b992a50e 100644
        join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-merge.py'),
        '@OUTPUT@',
        nm_property_infos_xml['nmcli'],
+@@ -20,7 +19,6 @@ if enable_docs
+     input: settings_docs_input_xml,
+     output: 'settings-docs.h',
+     command: [
+-      python.path(),
+       join_paths(meson.source_root(), 'tools', 'generate-docs-settings-docs.py'),
+       '--output', '@OUTPUT@',
+       '--xml', '@INPUT@'
 diff --git a/src/tests/client/meson.build b/src/tests/client/meson.build
-index 6dc0f2a2c8..0a32977a59 100644
+index 8c36e40559..cfb6649a21 100644
 --- a/src/tests/client/meson.build
 +++ b/src/tests/client/meson.build
 @@ -6,7 +6,6 @@ test(
@@ -130,5 +131,13 @@ index 6dc0f2a2c8..0a32977a59 100644
      source_root,
 -    python.path(),
      '--',
+     'TestNmcli',
    ],
-   env: [
+@@ -23,7 +22,6 @@ if enable_nm_cloud_setup
+     args: [
+       build_root,
+       source_root,
+-      python.path(),
+       '--',
+       'TestNmCloudSetup',
+     ],
diff --git a/pkgs/tools/networking/nexttrace/default.nix b/pkgs/tools/networking/nexttrace/default.nix
index b7991ac2c39f0..1bbd4e3685f00 100644
--- a/pkgs/tools/networking/nexttrace/default.nix
+++ b/pkgs/tools/networking/nexttrace/default.nix
@@ -2,24 +2,28 @@
 
 buildGoModule rec {
   pname = "nexttrace";
-  version = "1.2.1.1";
+  version = "1.2.8";
 
   src = fetchFromGitHub {
-    owner = "sjlleo";
-    repo = pname;
+    owner = "nxtrace";
+    repo = "NTrace-core";
     rev = "v${version}";
-    sha256 = "sha256-B3NHY4wYCa3lR3XPqhjcrgf9iA4Bz/8bKrwxdNSa1Bk=";
+    sha256 = "sha256-fd6d9wtapztPZpbRn73q35D6LfHpfjF4KRBgokWIWYc=";
   };
-  vendorHash = "sha256-8etZelvdUmHNWC0FnSX9oO3reuhB7xIzd/KxPTt6Szc=";
+  vendorHash = "sha256-xGE2iUCWMNfiI18N8dyubuhhaY5JD/sy1uRSDyTSqVA=";
 
   doCheck = false; # Tests require a network connection.
 
   ldflags = [
     "-s"
     "-w"
-    "-X github.com/xgadget-lab/nexttrace/config.Version=v${version}"
+    "-X github.com/nxtrace/NTrace-core/config.Version=v${version}"
   ];
 
+  postInstall = ''
+    mv $out/bin/NTrace-core $out/bin/nexttrace
+  '';
+
   meta = with lib; {
     description = "An open source visual route tracking CLI tool";
     homepage = "https://mtr.moe";
diff --git a/pkgs/tools/networking/ngrep/default.nix b/pkgs/tools/networking/ngrep/default.nix
index bee8678d1c93e..c44f6e1eb8328 100644
--- a/pkgs/tools/networking/ngrep/default.nix
+++ b/pkgs/tools/networking/ngrep/default.nix
@@ -44,10 +44,12 @@ stdenv.mkDerivation rec {
       more common packet sniffing tools, such as tcpdump and snoop.
     '';
     homepage = "https://github.com/jpr5/ngrep/";
-    # <ngrep>/doc/README.txt says that ngrep itself is licensed under a
-    # 'BSD-like' license but that the 'regex' library (in the ngrep tarball) is
-    # GPLv2.
-    license = "ngrep";  # Some custom BSD-style, see LICENSE.txt
+    license = {
+      shortName = "ngrep";  # BSD-style, see README.md and LICENSE
+      url = "https://github.com/jpr5/ngrep/blob/master/LICENSE";
+      free = true;
+      redistributable = true;
+    };
     platforms = with platforms; linux ++ darwin;
     maintainers = [ maintainers.bjornfor ];
   };
diff --git a/pkgs/tools/networking/ngrok/versions.json b/pkgs/tools/networking/ngrok/versions.json
index 75a00531f2b7e..3b52e8f92372e 100644
--- a/pkgs/tools/networking/ngrok/versions.json
+++ b/pkgs/tools/networking/ngrok/versions.json
@@ -1,38 +1,38 @@
 {
   "linux-386": {
     "sys": "linux-386",
-    "url": "https://bin.equinox.io/a/3iiMKzJiBb/ngrok-v3-3.3.4-linux-386",
-    "sha256": "e46b1bfa8afe28b2c5a7630773ab2d8fc1c91ac42e262356c1cec1197e754419",
-    "version": "3.3.4"
+    "url": "https://bin.equinox.io/a/4gMs8FHXopG/ngrok-v3-3.5.0-linux-386",
+    "sha256": "2ab242193e01222d1c5cbfe85389200b97fc3af91374bd4b9c8d86812db7d589",
+    "version": "3.5.0"
   },
   "linux-amd64": {
     "sys": "linux-amd64",
-    "url": "https://bin.equinox.io/a/99d4KobYYHN/ngrok-v3-3.3.4-linux-amd64",
-    "sha256": "11536e5a001de5efa9a6d9d6f33b0ed2dc653216278fe0314f9ca98c20137a7f",
-    "version": "3.3.4"
+    "url": "https://bin.equinox.io/a/7qHLVJPrTcc/ngrok-v3-3.5.0-linux-amd64",
+    "sha256": "bd44f722df4435daf61c4bef4fe45d8abdbbf5ccd6c371b6ab405a07fb469c06",
+    "version": "3.5.0"
   },
   "linux-arm": {
     "sys": "linux-arm",
-    "url": "https://bin.equinox.io/a/2VZGKNPHQqs/ngrok-v3-3.3.4-linux-arm",
-    "sha256": "08d7b27407005c9a34a850090527c1398e86a1a2fa090aea2caee40cb18902fe",
-    "version": "3.3.4"
+    "url": "https://bin.equinox.io/a/ciuckTnS7RJ/ngrok-v3-3.5.0-linux-arm",
+    "sha256": "ba0ab1d956a0b05e35da6901691bd18166acc6a833c993e8f6b80f6d608e1d8c",
+    "version": "3.5.0"
   },
   "linux-arm64": {
     "sys": "linux-arm64",
-    "url": "https://bin.equinox.io/a/2XmLxPHmx2B/ngrok-v3-3.3.4-linux-arm64",
-    "sha256": "1e12cedb3378d25012c3cd94f960123b4d8b99301d52ad9c30df9e698ed1fa2d",
-    "version": "3.3.4"
+    "url": "https://bin.equinox.io/a/iutMKiLdVzF/ngrok-v3-3.5.0-linux-arm64",
+    "sha256": "85b5ecc96a56a1d19324acb3ca3a38e11a9075be8cb97ee466a1538f8711a69d",
+    "version": "3.5.0"
   },
   "darwin-amd64": {
     "sys": "darwin-amd64",
-    "url": "https://bin.equinox.io/a/mos87CnnNu3/ngrok-v3-3.3.4-darwin-amd64",
-    "sha256": "700311045d531f603a5f472c7e4b8271810ac75e368c65430a62f5e178abe9dc",
-    "version": "3.3.4"
+    "url": "https://bin.equinox.io/a/hrb7DpXGSDS/ngrok-v3-3.5.0-darwin-amd64",
+    "sha256": "3380a2e742600fcef21e390291c4224e3e23fb31e832b695f922a24899125808",
+    "version": "3.5.0"
   },
   "darwin-arm64": {
     "sys": "darwin-arm64",
-    "url": "https://bin.equinox.io/a/ngMbyRxxdNN/ngrok-v3-3.3.4-darwin-arm64",
-    "sha256": "e609d3d78d004ec4f795581cba35f38ba43e7b0b5ae1cd80aa21650402e531d0",
-    "version": "3.3.4"
+    "url": "https://bin.equinox.io/a/aH6hGnhtNbT/ngrok-v3-3.5.0-darwin-arm64",
+    "sha256": "cbfd0bcd1d53aa1bc3b6afa54e0c8f01d77f6a369727f4f6eb1451b3a1eab3df",
+    "version": "3.5.0"
   }
 }
diff --git a/pkgs/tools/networking/nikto/default.nix b/pkgs/tools/networking/nikto/default.nix
index e1abcb6c140d0..df03cc8c3ce77 100644
--- a/pkgs/tools/networking/nikto/default.nix
+++ b/pkgs/tools/networking/nikto/default.nix
@@ -6,20 +6,23 @@
 , installShellFiles
 }:
 
+let
+  version = "2.5.0";
+in
 stdenv.mkDerivation rec {
   pname = "nikto";
-  version = "2.2.0";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "sullo";
     repo = "nikto";
-    rev = "c83d0461edd75c02677dea53da2896644f35ecab";
-    sha256 = "0vwq2zdxir67cn78ls11qf1smd54nppy266v7ajm5rqdc47q7fy2";
+    rev = version;
+    sha256 = "sha256-lWiDbWc2BWAUgyaIm0tvZytja02WogYRoc7na4sHiNM=";
   };
 
   # Nikto searches its configuration file based on its current path
   # This fixes the current path regex for the wrapped executable.
-  patches = [ ./NIKTODIR-nix-wrapper-fix.patch ];
+  patches = [ ./nix-wrapper-fix.patch ];
 
   postPatch = ''
     # EXECDIR needs to be changed to the path where we copy the programs stuff
@@ -31,10 +34,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
-  propagatedBuildInputs = [ perlPackages.NetSSLeay ];
-
   buildInputs = [
     perlPackages.perl
+    perlPackages.NetSSLeay
   ];
 
   installPhase = ''
@@ -44,7 +46,6 @@ stdenv.mkDerivation rec {
     install -Dm 755 "program/nikto.pl" "$out/bin/nikto"
     install -Dm 644 program/nikto.conf.default "$out/etc/nikto.conf"
     installManPage documentation/nikto.1
-    install -Dm 644 program/docs/nikto_manual.html "$out/share/doc/${pname}/manual.html"
     install -Dm 644 README.md "$out/share/doc/${pname}/README"
     runHook postInstall
   '';
@@ -58,6 +59,7 @@ stdenv.mkDerivation rec {
     description = "Web server scanner";
     license = licenses.gpl2Plus;
     homepage = "https://cirt.net/Nikto2";
+    changelog = "https://github.com/sullo/nikto/releases/tag/${version}";
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/networking/nikto/NIKTODIR-nix-wrapper-fix.patch b/pkgs/tools/networking/nikto/nix-wrapper-fix.patch
index d3caea1b26fdd..bc05d774577e7 100644
--- a/pkgs/tools/networking/nikto/NIKTODIR-nix-wrapper-fix.patch
+++ b/pkgs/tools/networking/nikto/nix-wrapper-fix.patch
@@ -1,26 +1,26 @@
-diff --color -ur a/program/nikto.pl b/program/nikto.pl
---- a/program/nikto.pl	2021-01-30 12:05:54.915072538 +0100
-+++ b/program/nikto.pl	2021-01-30 12:36:42.877729231 +0100
-@@ -223,7 +223,8 @@
+diff --git a/program/nikto.pl b/program/nikto.pl
+index 2cb07f9..323e666 100755
+--- a/program/nikto.pl
++++ b/program/nikto.pl
+@@ -243,7 +243,7 @@ sub config_init {
      # Guess Nikto current directory
      my $NIKTODIR = abs_path($0);
      chomp($NIKTODIR);
 -    $NIKTODIR =~ s#[\\/]nikto.pl$##;
 +    $NIKTODIR =~ s#[\\/]bin[\\/]\.nikto-wrapped$##;
-+
  
      # Guess user's home directory -- to support Windows
      foreach my $var (split(/ /, "HOME USERPROFILE")) {
-@@ -231,10 +232,10 @@
+@@ -251,10 +251,10 @@ sub config_init {
      }
  
      # Read the conf files in order (previous values are over-written with each, if multiple found)
--    push(@CF,"$NIKTODIR/nikto.conf.default");
+-    push(@CF, "$NIKTODIR/nikto.conf.default");
 +    push(@CF,"$NIKTODIR/etc/nikto.conf.default");
-     push(@CF,"/etc/nikto.conf");
-     push(@CF,"$home/nikto.conf");
--    push(@CF,"$NIKTODIR/nikto.conf");
+     push(@CF, "/etc/nikto.conf");
+     push(@CF, "$home/nikto.conf");
+-    push(@CF, "$NIKTODIR/nikto.conf");
 +    push(@CF,"$NIKTODIR/etc/nikto.conf");
-     push(@CF,"nikto.conf");
-     push(@CF,"$VARIABLES{'configfile'}");
+     push(@CF, "nikto.conf");
+     push(@CF, "$VARIABLES{'configfile'}");
  
diff --git a/pkgs/tools/networking/nqptp/default.nix b/pkgs/tools/networking/nqptp/default.nix
index 5261a6afb58f0..26aec487789de 100644
--- a/pkgs/tools/networking/nqptp/default.nix
+++ b/pkgs/tools/networking/nqptp/default.nix
@@ -3,26 +3,37 @@
 , fetchFromGitHub
 , autoreconfHook
 , pkg-config
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.3";
+  version = "1.2.4";
   pname = "nqptp";
 
   src = fetchFromGitHub {
     owner = "mikebrady";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Ppsz3hDG6sEf6LJ2WdbTdJ8Gi53f0YmvaUU8TOfVMz4=";
+    hash = "sha256-roTNcr3v2kzE6vQ5plAVtlw1+2yJplltOYsGGibtoZo=";
   };
 
+  patches = [
+    # this patch should be removed when > 1.2.4
+    ./remove-setcap.patch
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
-  meta = with lib; {
+  passthru.updateScript = gitUpdater {
+    ignoredVersions = ".*(-dev|d0)";
+  };
+
+  meta = {
     homepage = "https://github.com/mikebrady/nqptp";
     description = "Daemon and companion application to Shairport Sync that monitors timing data from any PTP clocks";
-    license = licenses.gpl2Only;
-    maintainers = with maintainers; [ jordanisaacs ];
-    platforms = platforms.linux ++ platforms.freebsd;
+    license = lib.licenses.gpl2Only;
+    mainProgram = "nqptp";
+    maintainers = with lib.maintainers; [ jordanisaacs adamcstephens ];
+    platforms = lib.platforms.linux ++ lib.platforms.freebsd;
   };
 }
diff --git a/pkgs/tools/networking/nqptp/remove-setcap.patch b/pkgs/tools/networking/nqptp/remove-setcap.patch
new file mode 100644
index 0000000000000..2fa56ac0150a4
--- /dev/null
+++ b/pkgs/tools/networking/nqptp/remove-setcap.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.am b/Makefile.am
+index 78f36d7..8dc4e4f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -19,8 +19,6 @@ endif
+ 
+ install-exec-hook:
+ if BUILD_FOR_LINUX
+-# NQPTP runs as user/group nqptp/nqptp on Linux and uses setcap to access ports 319 and 320
+-	setcap 'cap_net_bind_service=+ep' $(bindir)/nqptp
+ # no installer for System V
+ if INSTALL_SYSTEMD_STARTUP
+ 	getent group nqptp &>/dev/null || groupadd -r nqptp &>/dev/null
diff --git a/pkgs/tools/networking/ntpd-rs/default.nix b/pkgs/tools/networking/ntpd-rs/default.nix
index 0fa44cb418c70..8281100378963 100644
--- a/pkgs/tools/networking/ntpd-rs/default.nix
+++ b/pkgs/tools/networking/ntpd-rs/default.nix
@@ -1,39 +1,51 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, installShellFiles
+, pandoc
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ntpd-rs";
-  version = "0.3.7";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "pendulum-project";
     repo = "ntpd-rs";
     rev = "v${version}";
-    hash = "sha256-AUCzsveG9U+KxYO/4LGmyCPkR+w9pGDA/vTzMAGiVuI=";
+    hash = "sha256-IoTuI0M+stZNUVpaVsf7JR7uHcamSSVDMJxJ+7n5ayA=";
   };
 
-  cargoHash = "sha256-6FUVkr3uock43ZBHuMEVIZ5F8Oh8wMifh2EokMWv4hU=";
+  cargoHash = "sha256-iZuDNFy8c2UZUh3J11lEtfHlDFN+qPl4iZg+ps7AenE=";
+
+  nativeBuildInputs = [ pandoc installShellFiles ];
+
+  postPatch = ''
+    substituteInPlace utils/generate-man.sh \
+      --replace 'utils/pandoc.sh' 'pandoc'
+  '';
+
+  postBuild = ''
+    source utils/generate-man.sh
+  '';
+
+  doCheck = true;
 
   checkFlags = [
     # doesn't find the testca
     "--skip=keyexchange::tests::key_exchange_roundtrip"
-    # seems flaky
+    # seems flaky?
     "--skip=algorithm::kalman::peer::tests::test_offset_steering_and_measurements"
     # needs networking
     "--skip=hwtimestamp::tests::get_hwtimestamp"
   ];
 
   postInstall = ''
-    install -vDt $out/lib/systemd/system pkg/common/ntpd-rs.service
-
-    for testprog in demobilize-server rate-limit-server nts-ke nts-ke-server peer-state simple-daemon; do
-      moveToOutput bin/$testprog "$tests"
-    done
+    install -Dm444 -t $out/lib/systemd/system docs/examples/conf/{ntpd-rs,ntpd-rs-metrics}.service
+    installManPage docs/precompiled/man/{ntp.toml.5,ntp-ctl.8,ntp-daemon.8,ntp-metrics-exporter.8}
   '';
 
-  outputs = [ "out" "tests" ];
+  outputs = [ "out" "man" ];
 
   meta = with lib; {
     description = "A full-featured implementation of the Network Time Protocol";
diff --git a/pkgs/tools/networking/ockam/default.nix b/pkgs/tools/networking/ockam/default.nix
index fe5ba72caf68e..b50a4ff452452 100644
--- a/pkgs/tools/networking/ockam/default.nix
+++ b/pkgs/tools/networking/ockam/default.nix
@@ -12,7 +12,7 @@
 
 let
   pname = "ockam";
-  version = "0.90.0";
+  version = "0.116.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -21,10 +21,10 @@ rustPlatform.buildRustPackage {
     owner = "build-trust";
     repo = pname;
     rev = "ockam_v${version}";
-    sha256 = "sha256-IblL87YSSTew4UOZEkbPrQ1Zy9x33mfxGG1kg1atxrs=";
+    sha256 = "sha256-dcSH/mO3cUamjOCuvEB/C24n7K5T1KnUMvTn8fVu+YM=";
   };
 
-  cargoHash = "sha256-/fKqUOa1Dos01IKyIZIjWwpZNXKh+cVoq4s2TUFWkBw=";
+  cargoHash = "sha256-9UwPPOKg+Im+vfQFiYKS68tONYkKz1TqX7ukbtmLcRk=";
   nativeBuildInputs = [ git pkg-config ];
   buildInputs = [ openssl dbus ]
     ++ lib.optionals stdenv.isDarwin [ Security ];
@@ -53,9 +53,8 @@ rustPlatform.buildRustPackage {
   #   "--skip=util::tests::test_process_multi_addr"
   # ];
 
-
   meta = with lib; {
-    description = "Orchestrate end-to-end encryption, cryptographic identities, mutual authentication, and authorization policies between distributed applications – at massive scale. Use Ockam to build secure-by-design applications that can Trust Data-in-Motion.";
+    description = "Orchestrate end-to-end encryption, cryptographic identities, mutual authentication, and authorization policies between distributed applications – at massive scale";
     homepage = "https://github.com/build-trust/ockam";
     license = licenses.mpl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/tools/networking/ocserv/default.nix b/pkgs/tools/networking/ocserv/default.nix
index eb1795e73546a..00c90ca7a8bb6 100644
--- a/pkgs/tools/networking/ocserv/default.nix
+++ b/pkgs/tools/networking/ocserv/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ocserv";
-  version = "1.2.1";
+  version = "1.2.3";
 
   src = fetchFromGitLab {
     owner = "openconnect";
     repo = "ocserv";
     rev = version;
-    sha256 = "sha256-mYf0cdWIxRSDGvszlFDex2SU6TtvodD1sXcUZOOcYd0=";
+    sha256 = "sha256-PHAhkHEbt5CsVc5gr/gh+xR7wfRb752bpz301g5ra9s=";
   };
 
   nativeBuildInputs = [ autoreconfHook gperf pkg-config ronn ];
diff --git a/pkgs/tools/networking/octodns/default.nix b/pkgs/tools/networking/octodns/default.nix
new file mode 100644
index 0000000000000..4eedbaa0deddd
--- /dev/null
+++ b/pkgs/tools/networking/octodns/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+, pytestCheckHook
+, dnspython
+, fqdn
+, idna
+, natsort
+, python-dateutil
+, pyyaml
+, python
+, runCommand
+}:
+
+buildPythonPackage rec {
+  pname = "octodns";
+  version = "1.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "octodns";
+    repo = "octodns";
+    rev = "v${version}";
+    hash = "sha256-l4JGodbUmFxHFeEaxgClEozHcbyYP0F2yj5gDqV88IA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    dnspython
+    fqdn
+    idna
+    natsort
+    python-dateutil
+    pyyaml
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "octodns" ];
+
+  passthru.withProviders = ps: let
+    pyEnv = python.withPackages ps;
+  in runCommand "octodns-with-providers" { } ''
+    mkdir -p $out/bin
+    ln -st $out/bin ${pyEnv}/bin/octodns-*
+  '';
+
+  meta = with lib; {
+    description = "Tools for managing DNS across multiple providers";
+    homepage = "https://github.com/octodns/octodns";
+    changelog = "https://github.com/octodns/octodns/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ janik ];
+  };
+}
diff --git a/pkgs/tools/networking/octodns/providers/bind/default.nix b/pkgs/tools/networking/octodns/providers/bind/default.nix
new file mode 100644
index 0000000000000..f615c9a1eed38
--- /dev/null
+++ b/pkgs/tools/networking/octodns/providers/bind/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, octodns
+, pytestCheckHook
+, pythonOlder
+, dnspython
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "octodns-bind";
+  version = "0.0.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "octodns";
+    repo = "octodns-bind";
+    rev = "v${version}";
+    hash = "sha256-0ia/xYarrOiLZa8KU0s5wtCGtXIyxSl6OcwNkSJb/rA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    octodns
+    dnspython
+  ];
+
+  env.OCTODNS_RELEASE = 1;
+
+  pythonImportsCheck = [ "octodns_bind" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = " RFC compliant (Bind9) provider for octoDNS";
+    homepage = "https://github.com/octodns/octodns-bind";
+    changelog = "https://github.com/octodns/octodns-bind/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ janik ];
+  };
+}
diff --git a/pkgs/tools/networking/octodns/providers/gandi/default.nix b/pkgs/tools/networking/octodns/providers/gandi/default.nix
new file mode 100644
index 0000000000000..ced7599c6874c
--- /dev/null
+++ b/pkgs/tools/networking/octodns/providers/gandi/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, octodns
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "octodns-gandi";
+  version = "0.0.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "octodns";
+    repo = "octodns-gandi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-aZUVdCeIbyXBgy8HNf6bZSmjdRzIvQkCEzndKGyuTkw=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    octodns
+    requests
+  ];
+
+  pythonImportsCheck = [ "octodns_gandi" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  meta = with lib; {
+    description = "Gandi v5 API provider for octoDNS";
+    homepage = "https://github.com/octodns/octodns-gandi";
+    changelog = "https://github.com/octodns/octodns-gandi/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/pkgs/tools/networking/octodns/providers/hetzner/default.nix b/pkgs/tools/networking/octodns/providers/hetzner/default.nix
new file mode 100644
index 0000000000000..7ce8ceb814768
--- /dev/null
+++ b/pkgs/tools/networking/octodns/providers/hetzner/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, octodns
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "octodns-hetzner";
+  # the latest release tag is over a year behind.
+  version = "0.0.2-unstable-2023-09-29";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "octodns";
+    repo = "octodns-hetzner";
+    rev = "620840593a520dac9e365240b3ab361ded309c8e";
+    hash = "sha256-WdYy8tc0+PYsKuyp3uqOzbxwhLSZ+06L3JVaTSATEKM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    octodns
+    requests
+  ];
+
+  pythonImportsCheck = [ "octodns_hetzner" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  meta = with lib; {
+    description = "Hetzner DNS provider for octoDNS";
+    homepage = "https://github.com/octodns/octodns-hetzner/";
+    changelog = "https://github.com/octodns/octodns-hetzner/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ janik ];
+  };
+}
diff --git a/pkgs/tools/networking/octodns/providers/powerdns/default.nix b/pkgs/tools/networking/octodns/providers/powerdns/default.nix
new file mode 100644
index 0000000000000..deee1d142a316
--- /dev/null
+++ b/pkgs/tools/networking/octodns/providers/powerdns/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, octodns
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "octodns-powerdns";
+  version = "0.0.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "octodns";
+    repo = "octodns-powerdns";
+    rev = "v${version}";
+    hash = "sha256-jt0+JnpCgvsoqMcC9mANX7uq2WPTiI2JQjwQi7LGWj0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    octodns
+    requests
+  ];
+
+  env.OCTODNS_RELEASE = 1;
+
+  pythonImportsCheck = [ "octodns_powerdns" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  meta = with lib; {
+    description = "PowerDNS API provider for octoDNS";
+    homepage = "https://github.com/octodns/octodns-powerdns/";
+    changelog = "https://github.com/octodns/octodns-powerdns/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ janik ];
+  };
+}
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index d3607a63210bd..33fe31b91d6e6 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -9,6 +9,7 @@
 , libxslt
 , testers
 , offlineimap
+, fetchpatch
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -22,6 +23,14 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "0y3giaz9i8vvczlxkbwymfkn3vi9fv599dy4pc2pn2afxsl4mg2w";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "sqlite-version-aware-threadsafety-check.patch";
+      url = "https://github.com/OfflineIMAP/offlineimap3/pull/139/commits/7cd32cf834b34a3d4675b29bebcd32dc1e5ef128.patch";
+      hash = "sha256-xNq4jFHMf9XZaa9BFF1lOzZrEGa5BEU8Dr+gMOBkJE4=";
+    })
+  ];
+
   nativeBuildInputs = [
     asciidoc
     docbook_xsl
diff --git a/pkgs/tools/networking/ofono/default.nix b/pkgs/tools/networking/ofono/default.nix
index 4872900b0fb72..f4631f06dc793 100644
--- a/pkgs/tools/networking/ofono/default.nix
+++ b/pkgs/tools/networking/ofono/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv
-, fetchgit
+, fetchzip
 , autoreconfHook
 , pkg-config
 , glib
@@ -12,14 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ofono";
-  version = "2.1";
+  version = "2.2";
 
   outputs = [ "out" "dev" ];
 
-  src = fetchgit {
-    url = "https://git.kernel.org/pub/scm/network/ofono/ofono.git";
-    rev = version;
-    sha256 = "sha256-GxQfh/ps5oM9G6B1EVgnjo8LqHD1hMqdnju1PCQq3kA=";
+  src = fetchzip {
+    url = "https://git.kernel.org/pub/scm/network/ofono/ofono.git/snapshot/ofono-${version}.tar.gz";
+    sha256 = "sha256-mnh0qzmgPDfimN/M33HntYj90Xcgc/uF8tKbzeQV1Yg=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/oha/default.nix b/pkgs/tools/networking/oha/default.nix
index 3fd3bc49c9168..b002e53684956 100644
--- a/pkgs/tools/networking/oha/default.nix
+++ b/pkgs/tools/networking/oha/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oha";
-  version = "0.6.5";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "hatoo";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-eC0EiBD0FQ/Ucvjh5q1htZLVmpzzOzKAVmHW6/Krc0Q=";
+    hash = "sha256-s98FPzX6RfLCyttNpE/zC4gb30tLPW+MYCuuxn1ep3c=";
   };
 
-  cargoSha256 = "sha256-AmFDi5l55tJ3yZwTH4DyxOsium8WoSW7JVmn1L+lRpU=";
+  cargoHash = "sha256-zyfCa5hMS8aWABg3gb2Pa/TvNsVXBJKIOiAQ96CLiBo=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [
     pkg-config
diff --git a/pkgs/tools/networking/onetun/default.nix b/pkgs/tools/networking/onetun/default.nix
index 9fe30faaf5ca3..5200cff7076f7 100644
--- a/pkgs/tools/networking/onetun/default.nix
+++ b/pkgs/tools/networking/onetun/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "onetun";
-  version = "0.3.4";
+  version = "0.3.7";
 
   src = fetchFromGitHub {
     owner = "aramperes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gVw1aVbYjDPYTtMYIXq3k+LN0gUBAbQm275sxzwoYw8=";
+    sha256 = "sha256-GVIRCMeuuhUA8lqQ1oI/Xcuf90QIlwhqYeU+HhbGWXQ=";
   };
 
-  cargoSha256 = "sha256-/sOjd0JKk3MNNXYpTEXteFYtqDWYfyVItZrkX4uzjtc=";
+  cargoHash = "sha256-TRfr4riMzR/MbsV2RiQNlPoPLhHK5EScNBCeyyamfgE=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Security
diff --git a/pkgs/tools/networking/ooniprobe-cli/default.nix b/pkgs/tools/networking/ooniprobe-cli/default.nix
index 16287b4177460..c7f00061382d5 100644
--- a/pkgs/tools/networking/ooniprobe-cli/default.nix
+++ b/pkgs/tools/networking/ooniprobe-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ooniprobe-cli";
-  version = "3.18.1";
+  version = "3.20.1";
 
   src = fetchFromGitHub {
     owner = "ooni";
     repo = "probe-cli";
     rev = "v${version}";
-    hash = "sha256-abCglaMFW6zPc53IU8Bgl/SaoIh1N9i3xDcfOnJypls=";
+    hash = "sha256-XjIrae4HPFB1Rv8yIAUh6Xj9UVU55Wx7SuyKJ0BvmXY=";
   };
 
-  vendorHash = "sha256-olirtvnOIKvNXJsanv5UFTcpj7RpPAa5OP0qYTv4wtk=";
+  vendorHash = "sha256-HYU+oS+iqdl2jQJc3h9T+MSc/Hq2W6UqP+oPSEyfcOU=";
 
   subPackages = [ "cmd/ooniprobe" ];
 
diff --git a/pkgs/tools/networking/openapi-generator-cli/default.nix b/pkgs/tools/networking/openapi-generator-cli/default.nix
index 6534391795200..e9572bf45960f 100644
--- a/pkgs/tools/networking/openapi-generator-cli/default.nix
+++ b/pkgs/tools/networking/openapi-generator-cli/default.nix
@@ -1,18 +1,18 @@
 { callPackage, lib, stdenv, fetchurl, jre, makeWrapper }:
 
-let this = stdenv.mkDerivation rec {
-  version = "7.0.1";
+let this = stdenv.mkDerivation (finalAttrs: {
+  version = "7.2.0";
   pname = "openapi-generator-cli";
 
-  jarfilename = "${pname}-${version}.jar";
+  jarfilename = "${finalAttrs.pname}-${finalAttrs.version}.jar";
 
   nativeBuildInputs = [
     makeWrapper
   ];
 
   src = fetchurl {
-    url = "mirror://maven/org/openapitools/${pname}/${version}/${jarfilename}";
-    sha256 = "sha256-ATh8c5Bd5Hpuz4gB+RyNYWJPih6JDIBYIl31HUk7wyo=";
+    url = "mirror://maven/org/openapitools/${finalAttrs.pname}/${finalAttrs.version}/${finalAttrs.jarfilename}";
+    sha256 = "sha256-HPDIDeEsD9yFlCicGeQUtAIQjvELjdC/2hlTFRNBq10=";
   };
 
   dontUnpack = true;
@@ -20,10 +20,10 @@ let this = stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    install -D "$src" "$out/share/java/${jarfilename}"
+    install -D "$src" "$out/share/java/${finalAttrs.jarfilename}"
 
-    makeWrapper ${jre}/bin/java $out/bin/${pname} \
-      --add-flags "-jar $out/share/java/${jarfilename}"
+    makeWrapper ${jre}/bin/java $out/bin/${finalAttrs.pname} \
+      --add-flags "-jar $out/share/java/${finalAttrs.jarfilename}"
 
     runHook postInstall
   '';
@@ -31,14 +31,15 @@ let this = stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an OpenAPI Spec";
     homepage = "https://github.com/OpenAPITools/openapi-generator";
-    changelog = "https://github.com/OpenAPITools/openapi-generator/releases/tag/v${version}";
+    changelog = "https://github.com/OpenAPITools/openapi-generator/releases/tag/v${finalAttrs.version}";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ shou ];
+    mainProgram = "openapi-generator-cli";
   };
 
   passthru.tests.example = callPackage ./example.nix {
     openapi-generator-cli = this;
   };
-};
+});
 in this
diff --git a/pkgs/tools/networking/openapi-generator-cli/unstable.nix b/pkgs/tools/networking/openapi-generator-cli/unstable.nix
deleted file mode 100644
index 9af28b3e09ea5..0000000000000
--- a/pkgs/tools/networking/openapi-generator-cli/unstable.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ callPackage, lib, stdenv, fetchurl, jre, makeWrapper }:
-
-let this = stdenv.mkDerivation rec {
-  version = "6.0.0-2022-03-18";  # Also update the fetchurl link
-  pname = "openapi-generator-cli";
-
-  jarfilename = "${pname}-${version}.jar";
-
-  nativeBuildInputs = [
-    makeWrapper
-  ];
-
-  src = fetchurl {
-    url = "https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/6.0.0-SNAPSHOT/openapi-generator-cli-6.0.0-20220318.042704-93.jar";
-    sha256 = "1h126kpbnpbrsnjrxb09hzb796dwl4g58d6wrh1hhv8svwy5p0bl";
-  };
-
-  dontUnpack = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    install -D "$src" "$out/share/java/${jarfilename}"
-
-    makeWrapper ${jre}/bin/java $out/bin/${pname} \
-      --add-flags "-jar $out/share/java/${jarfilename}"
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an OpenAPI Spec";
-    homepage = "https://github.com/OpenAPITools/openapi-generator";
-    license = licenses.asl20;
-    maintainers = [ maintainers.shou ];
-  };
-
-  passthru.tests.example = callPackage ./example.nix {
-    openapi-generator-cli = this;
-  };
-};
-in this
diff --git a/pkgs/tools/networking/opendrop/default.nix b/pkgs/tools/networking/opendrop/default.nix
index 6a89372151057..a617eadfc410f 100644
--- a/pkgs/tools/networking/opendrop/default.nix
+++ b/pkgs/tools/networking/opendrop/default.nix
@@ -1,24 +1,37 @@
 { lib
 , buildPythonApplication
-, fetchPypi
+, fetchFromGitHub
 , fleep
+, ifaddr
 , libarchive-c
 , pillow
 , requests-toolbelt
 , setuptools
-, zeroconf }:
+, zeroconf
+, pytestCheckHook
+, openssl
+}:
 
 buildPythonApplication rec {
   pname = "opendrop";
   version = "0.13.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit version pname;
-    sha256 = "sha256-FE1oGpL6C9iBhI8Zj71Pm9qkObJvSeU2gaBZwK1bTQc=";
+  src = fetchFromGitHub {
+    owner = "seemoo-lab";
+    repo = "opendrop";
+    rev = "v${version}";
+    hash = "sha256-4FeVQO7Z6t9mjIgesdjKx4Mi+Ro5EVGJpEFjCvB2SlA=";
   };
 
+  nativeBuildInputs = [
+    # Tests fail if I put it on buildInputs
+    openssl
+  ];
+
   propagatedBuildInputs = [
     fleep
+    ifaddr
     libarchive-c
     pillow
     requests-toolbelt
@@ -26,16 +39,26 @@ buildPythonApplication rec {
     zeroconf
   ];
 
-  # There are tests, but getting the following error:
-  # nix_run_setup: error: argument action: invalid choice: 'test' (choose from 'receive', 'find', 'send')
-  # Opendrop works as intended though
-  doCheck = false;
+  makeWrapperArgs = [
+    "--prefix PATH : ${lib.makeBinPath nativeBuildInputs}"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    # Solves PermissionError: [Errno 13] Permission denied: '/homeless-shelter'
+    export HOME=$(mktemp -d)
+  '';
 
   meta = with lib; {
     description = "An open Apple AirDrop implementation written in Python";
     homepage = "https://owlink.org/";
+    changelog = "https://github.com/seemoo-lab/opendrop/releases/tag/${src.rev}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
+    mainProgram = "opendrop";
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index 03183879d6cee..d69f591cab08f 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openfortivpn";
-  version = "1.20.5";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     owner = "adrienverge";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-jbgxhCQWDw1ZUOAeLhOG+b6JYgvpr5TnNDIO/4k+e7k=";
+    hash = "sha256-7Yf22EpOTEGGqPoNGnHFyn5A4n7aYFXoSE1G6zyzT3M=";
   };
 
   # 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/opensnitch/daemon.nix b/pkgs/tools/networking/opensnitch/daemon.nix
index 98c7f51ba71e8..9825d25bbc5af 100644
--- a/pkgs/tools/networking/opensnitch/daemon.nix
+++ b/pkgs/tools/networking/opensnitch/daemon.nix
@@ -18,13 +18,13 @@
 
 buildGoModule rec {
   pname = "opensnitch";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "evilsocket";
     repo = "opensnitch";
     rev = "v${version}";
-    hash = "sha256-C8Uuz2FC7Zu07ZmFpp+ejpNxkyC3/mM9J2dc5FUKx64=";
+    hash = "sha256-fkRykhcjWZ4MDl2HZ1ZFaQmEeRYhiCBeUxG/Eu7D8NA=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/networking/opensnitch/ui.nix b/pkgs/tools/networking/opensnitch/ui.nix
index bd0c8e82c68ea..9e79031490709 100644
--- a/pkgs/tools/networking/opensnitch/ui.nix
+++ b/pkgs/tools/networking/opensnitch/ui.nix
@@ -1,18 +1,19 @@
 { python3Packages
 , fetchFromGitHub
+, qtwayland
 , wrapQtAppsHook
 , lib
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "opensnitch-ui";
-  version = "1.6.2";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "evilsocket";
     repo = "opensnitch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1ArwbewgZuoDF2lxY720yFQSsTuLR0WkS8vsTCr2FL4=";
+    hash = "sha256-fkRykhcjWZ4MDl2HZ1ZFaQmEeRYhiCBeUxG/Eu7D8NA=";
   };
 
   postPatch = ''
@@ -25,6 +26,10 @@ python3Packages.buildPythonApplication rec {
     wrapQtAppsHook
   ];
 
+  buildInputs = [
+    qtwayland
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     grpcio-tools
     pyqt5
diff --git a/pkgs/tools/networking/openssh/common.nix b/pkgs/tools/networking/openssh/common.nix
index 7d01deb36020c..5bae2050fbfca 100644
--- a/pkgs/tools/networking/openssh/common.nix
+++ b/pkgs/tools/networking/openssh/common.nix
@@ -13,16 +13,17 @@
 # package without splicing See: https://github.com/NixOS/nixpkgs/pull/107606
 , pkgs
 , fetchurl
-, fetchpatch
 , autoreconfHook
 , zlib
 , openssl
 , libedit
+, ldns
 , pkg-config
 , pam
 , libredirect
 , etcDir ? null
 , withKerberos ? true
+, withLdns ? true
 , libkrb5
 , libfido2
 , hostname
@@ -64,6 +65,7 @@ stdenv.mkDerivation {
   buildInputs = [ zlib openssl libedit ]
     ++ lib.optional withFIDO libfido2
     ++ lib.optional withKerberos libkrb5
+    ++ lib.optional withLdns ldns
     ++ lib.optional withPAM pam;
 
   preConfigure = ''
@@ -87,6 +89,7 @@ stdenv.mkDerivation {
     ++ lib.optional withKerberos (assert libkrb5 != null; "--with-kerberos5=${libkrb5}")
     ++ lib.optional stdenv.isDarwin "--disable-libutil"
     ++ lib.optional (!linkOpenssl) "--without-openssl"
+    ++ lib.optional withLdns "--with-ldns"
     ++ extraConfigureFlags;
 
   ${if stdenv.hostPlatform.isStatic then "NIX_LDFLAGS" else null}= [ "-laudit" ] ++ lib.optionals withKerberos [ "-lkeyutils" ];
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index d701ac7b4ae8a..e13e9cb927315 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -5,15 +5,15 @@ in
 {
   openssh = common rec {
     pname = "openssh";
-    version = "9.5p1";
+    version = "9.6p1";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      hash = "sha256-8Cbnt5un+1QPdRgq+W3IqPHbOV+SK7yfbKYDZyaGCGs=";
+      hash = "sha256-kQIRwHJVqMWtZUORtA7lmABxDdgRndU2LeCThap6d3w=";
     };
 
     extraPatches = [ ./ssh-keysign-8.5.patch ];
-    extraMeta.maintainers = with lib.maintainers; [ das_j ];
+    extraMeta.maintainers = lib.teams.helsinki-systems.members;
   };
 
   openssh_hpn = common rec {
diff --git a/pkgs/tools/networking/openvpn/auth-ldap-fix-conftest.patch b/pkgs/tools/networking/openvpn/auth-ldap-fix-conftest.patch
new file mode 100644
index 0000000000000..c571fda5d3c19
--- /dev/null
+++ b/pkgs/tools/networking/openvpn/auth-ldap-fix-conftest.patch
@@ -0,0 +1,36 @@
+diff --git a/aclocal.m4 b/aclocal.m4
+index e5b7dbf..01cecf1 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -73,6 +73,7 @@ AC_DEFUN([OD_OBJC_RUNTIME],[
+ 				AC_LANG_PROGRAM([
+ 						#include <objc/objc.h>
+ 						#include <objc/Object.h>
++						#include <stdio.h>
+ 					], [
+ 						Object *obj = @<:@Object alloc@:>@;
+ 						puts(@<:@obj name@:>@);
+@@ -94,6 +95,7 @@ AC_DEFUN([OD_OBJC_RUNTIME],[
+ 					AC_LANG_PROGRAM([
+ 							#include <objc/objc.h>
+ 							#include <objc/Object.h>
++							#include <stdio.h>
+ 						], [
+ 							Object *obj = @<:@Object alloc@:>@;
+ 							puts(@<:@obj name@:>@);
+@@ -131,6 +133,7 @@ AC_DEFUN([OD_OBJC_RUNTIME],[
+ 					AC_LANG_PROGRAM([
+ 							#include <objc/objc.h>
+ 							#include <objc/objc-api.h>
++							#include <stdio.h>
+ 						], [
+ 							id class = objc_lookUpClass("Object");
+ 							id obj = @<:@class alloc@:>@;
+@@ -162,6 +165,7 @@ AC_DEFUN([OD_OBJC_RUNTIME],[
+ 							#else
+ 							#include <objc/objc-api.h>
+ 							#endif
++							#include <stdio.h>
+ 						], [
+ 							#ifdef __GNU_LIBOBJC_
+ 							Class class = objc_lookUpClass("Object");
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 87cbd6881e27b..46fa0be29c701 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -2,7 +2,9 @@
 , stdenv
 , fetchurl
 , pkg-config
-, iproute2
+, libcap_ng
+, libnl
+, lz4
 , lzo
 , openssl
 , pam
@@ -11,70 +13,55 @@
 , update-systemd-resolved
 , pkcs11Support ? false
 , pkcs11helper
+, nixosTests
 }:
 
 let
-  inherit (lib) versionOlder optional optionals optionalString;
-
-  generic = { version, sha256, extraBuildInputs ? [] }:
-    let
-      withIpRoute = stdenv.isLinux && (versionOlder version "2.5.4");
-    in
-    stdenv.mkDerivation
-      rec {
-        pname = "openvpn";
-        inherit version;
+  inherit (lib) optional optionals optionalString;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "openvpn";
+  version = "2.6.8";
 
-        src = fetchurl {
-          url = "https://swupdate.openvpn.net/community/releases/${pname}-${version}.tar.gz";
-          inherit sha256;
-        };
+  src = fetchurl {
+    url = "https://swupdate.openvpn.net/community/releases/openvpn-${finalAttrs.version}.tar.gz";
+    hash = "sha256-Xt4VZcim2IAQD38jUxen7p7qg9UFLbVUfxOp52r3gF0=";
+  };
 
-        nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config ];
 
-        buildInputs = [ lzo ]
-          ++ optional stdenv.isLinux pam
-          ++ optional withIpRoute iproute2
-          ++ optional useSystemd systemd
-          ++ optional pkcs11Support pkcs11helper
-          ++ extraBuildInputs;
+  buildInputs = [ lz4 lzo openssl ]
+    ++ optionals stdenv.isLinux [ libcap_ng libnl pam ]
+    ++ optional useSystemd systemd
+    ++ optional pkcs11Support pkcs11helper;
 
-        configureFlags = optionals withIpRoute [
-          "--enable-iproute2"
-          "IPROUTE=${iproute2}/sbin/ip"
-        ]
-        ++ optional useSystemd "--enable-systemd"
-        ++ optional pkcs11Support "--enable-pkcs11"
-        ++ optional stdenv.isDarwin "--disable-plugin-auth-pam";
+  configureFlags = optional useSystemd "--enable-systemd"
+    ++ 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,keys,scripts}/ $out/share/doc/openvpn/examples
-        '' + optionalString useSystemd ''
-          install -Dm555 -t $out/libexec ${update-systemd-resolved}/libexec/openvpn/*
-        '';
+  # 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,keys,scripts}/ $out/share/doc/openvpn/examples
+  '' + optionalString useSystemd ''
+    install -Dm555 -t $out/libexec ${update-systemd-resolved}/libexec/openvpn/*
+  '';
 
-        enableParallelBuilding = true;
+  enableParallelBuilding = true;
 
-        meta = with lib; {
-          description = "A robust and highly flexible tunneling application";
-          downloadPage = "https://openvpn.net/community-downloads/";
-          homepage = "https://openvpn.net/";
-          license = licenses.gpl2Only;
-          maintainers = with maintainers; [ viric peterhoeg ];
-          platforms = platforms.unix;
-        };
-      };
+  passthru.tests = {
+    inherit (nixosTests) initrd-network-openvpn systemd-initrd-networkd-openvpn;
+  };
 
-in
-{
-  openvpn = generic {
-    version = "2.5.8";
-    sha256 = "1cixqm4gn2d1v8qkbww75j30fzvxz13gc7whcmz54i0x4fvibwx6";
-    extraBuildInputs = [ openssl ];
+  meta = with lib; {
+    description = "A robust and highly flexible tunneling application";
+    downloadPage = "https://openvpn.net/community-downloads/";
+    homepage = "https://openvpn.net/";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ viric peterhoeg ];
+    platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix b/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix
index 70dacddafc373..df93dacb47110 100644
--- a/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix
+++ b/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix
@@ -20,6 +20,10 @@ stdenv.mkDerivation rec {
     sha256 = "1j30sygj8nm8wjqxzpb7pfzr3dxqxggswzxd7z5yk7y04c0yp1hb";
   };
 
+  patches = [
+    ./auth-ldap-fix-conftest.patch
+  ];
+
   nativeBuildInputs = [
     autoreconfHook
     gnustep.base
diff --git a/pkgs/tools/networking/openvpn3/default.nix b/pkgs/tools/networking/openvpn3/default.nix
index 295055d797d28..b6037d67d8240 100644
--- a/pkgs/tools/networking/openvpn3/default.nix
+++ b/pkgs/tools/networking/openvpn3/default.nix
@@ -15,6 +15,8 @@
 , pkg-config
 , protobuf
 , python3
+, systemd
+, enableSystemdResolved ? false
 , tinyxml-2
 , wrapGAppsHook
 }:
@@ -80,6 +82,8 @@ stdenv.mkDerivation rec {
     openssl
     protobuf
     tinyxml-2
+  ] ++ lib.optionals enableSystemdResolved [
+    systemd
   ];
 
   # runtime deps
@@ -101,6 +105,10 @@ stdenv.mkDerivation rec {
     "--enable-addons-aws"
     "--disable-selinux-build"
     "--disable-build-test-progs"
+  ] ++ lib.optionals enableSystemdResolved [
+    # This defaults to --resolv-conf /etc/resolv.conf. See
+    # https://github.com/OpenVPN/openvpn3-linux/blob/v20/configure.ac#L434
+    "DEFAULT_DNS_RESOLVER=--systemd-resolved"
   ];
 
   NIX_LDFLAGS = "-lpthread";
diff --git a/pkgs/tools/networking/oui/default.nix b/pkgs/tools/networking/oui/default.nix
index af9f564bf0f45..517eb06507b45 100644
--- a/pkgs/tools/networking/oui/default.nix
+++ b/pkgs/tools/networking/oui/default.nix
@@ -17,6 +17,6 @@ buildGoModule rec {
     description = "MAC Address CLI Toolkit";
     homepage = "https://github.com/thatmattlove/oui";
     license = with licenses; [ bsd3 ];
-    maintainers = [ maintainers.netali ];
+    maintainers = teams.wdz.members;
   };
 }
diff --git a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index 620d953c88bce..3d2298e8b70ed 100644
--- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -62,7 +62,7 @@ python3Packages.buildPythonApplication rec {
     appdirs beautifulsoup4 characteristic distro eliot fixtures foolscap future
     html5lib magic-wormhole netifaces pyasn1 pycrypto pyutil pyyaml recommonmark
     service-identity simplejson sphinx-rtd-theme testtools treq twisted zfec
-    zope_interface
+    zope-interface
   ] ++ twisted.optional-dependencies.tls
     ++ twisted.optional-dependencies.conch;
 
diff --git a/pkgs/tools/networking/pacparser/default.nix b/pkgs/tools/networking/pacparser/default.nix
index 89fca0a220ba6..d4b81928498c8 100644
--- a/pkgs/tools/networking/pacparser/default.nix
+++ b/pkgs/tools/networking/pacparser/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pacparser";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "manugarg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-p83aAcZ3fGOrokq4HDgF5/VxMl3Q11voSjdaBUUO4S0=";
+    sha256 = "sha256-qIfzAQ/dJgOZJajNU3XyFudSxu2w4JC0ffHosHXje1o=";
   };
 
   makeFlags = [ "NO_INTERNET=1" ];
diff --git a/pkgs/tools/networking/pacproxy/default.nix b/pkgs/tools/networking/pacproxy/default.nix
deleted file mode 100644
index f1fb107dd62c5..0000000000000
--- a/pkgs/tools/networking/pacproxy/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-}:
-
-buildGoModule rec {
-  pname = "pacproxy";
-  version = "2.0.5";
-
-  src = fetchFromGitHub {
-    owner = "williambailey";
-    repo = "pacproxy";
-    rev = "v${version}";
-    hash = "sha256-oDSptPihrDIiTCgcP4t2J3vJBNGMViyPAAmBv4ynLNU=";
-  };
-
-  vendorHash = "sha256-0Go+xwzaT1qt+cJfcPkC8ft3eB/OZCvOi2Pnn/A/rtQ=";
-
-  meta = with lib; {
-    description = "A no-frills local HTTP proxy server powered by a proxy auto-config (PAC) file";
-    homepage = "https://github.com/williambailey/pacproxy";
-    changelog = "https://github.com/williambailey/pacproxy/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ terlar ];
-  };
-}
diff --git a/pkgs/tools/networking/pdsh/default.nix b/pkgs/tools/networking/pdsh/default.nix
index 43aa6f9f14701..2708f3d95840c 100644
--- a/pkgs/tools/networking/pdsh/default.nix
+++ b/pkgs/tools/networking/pdsh/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdsh";
-  version = "2.34";
+  version = "2.35";
 
   src = fetchurl {
     url = "https://github.com/chaos/pdsh/releases/download/pdsh-${version}/pdsh-${version}.tar.gz";
-    sha256 = "1s91hmhrz7rfb6h3l5k97s393rcm1ww3svp8dx5z8vkkc933wyxl";
+    sha256 = "sha256-de8VNHhI//Q/jW/5xEJP4Fx90s26ApE5kB+GGgUJPP4=";
   };
 
   buildInputs = [ perl readline ssh ]
diff --git a/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch b/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch
new file mode 100644
index 0000000000000..4ddd18bbd4687
--- /dev/null
+++ b/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch
@@ -0,0 +1,45 @@
+---
+ setup.py | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 985d28d..933f3df 100755
+--- a/setup.py
++++ b/setup.py
+@@ -24,13 +24,9 @@ import shutil
+ # finding os platform
+ os_type = platform.system()
+ 
+-if os_type == 'Linux' or os_type == 'FreeBSD' or os_type == 'OpenBSD':
+-    from setuptools import setup, Command, find_packages
+-    setuptools_available = True
+-    print(os_type + " detected!")
+-else:
+-    print('This script is only work for GNU/Linux or BSD!')
+-    sys.exit(1)
++from setuptools import setup, Command, find_packages
++setuptools_available = True
++print(os_type + " detected!")
+ 
+ # Checking dependencies!
+ not_installed = ''
+@@ -100,6 +96,7 @@ else:
+     print('paplay is found!')
+ 
+ # sound-theme-freedesktop
++notifications_path = ''
+ if os_type == 'Linux':
+     notifications_path = '/usr/share/sounds/freedesktop/stereo/'
+ elif os_type == 'FreeBSD' or os_type == 'OpenBSD':
+@@ -139,7 +136,7 @@ if sys.argv[1] == "test":
+ 
+ DESCRIPTION = 'Persepolis Download Manager'
+ 
+-if os_type == 'Linux':
++if os_type in ['Linux', 'Darwin']:
+     DATA_FILES = [
+         ('/usr/share/man/man1/', ['man/persepolis.1.gz']),
+         ('/usr/share/applications/', ['xdg/com.github.persepolisdm.persepolis.desktop']),
+-- 
+2.39.3 (Apple Git-145)
+
diff --git a/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch b/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch
new file mode 100644
index 0000000000000..50252c8cd72a8
--- /dev/null
+++ b/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch
@@ -0,0 +1,41 @@
+---
+ persepolis/scripts/mac_notification.py | 25 +++++++++----------------
+ 1 file changed, 9 insertions(+), 16 deletions(-)
+
+diff --git a/persepolis/scripts/mac_notification.py b/persepolis/scripts/mac_notification.py
+index 4d69929..9a9a7cf 100644
+--- a/persepolis/scripts/mac_notification.py
++++ b/persepolis/scripts/mac_notification.py
+@@ -15,20 +15,13 @@
+ 
+ # native notification on mac! needs Xcode (latest version) installed and pyobjc
+ # library from pip
+-import Foundation
+-import AppKit
+-import objc
+-
+-NSUserNotification = objc.lookUpClass('NSUserNotification')
+-NSUserNotificationCenter = objc.lookUpClass('NSUserNotificationCenter')
+-
+-
+ def notifyMac(title, subtitle, info_text, delay=0):
+-    notification = NSUserNotification.alloc().init()
+-    notification.setTitle_(title)
+-    notification.setSubtitle_(subtitle)
+-    notification.setInformativeText_(info_text)
+-    notification.setDeliveryDate_(Foundation.NSDate.dateWithTimeInterval_sinceDate_(
+-        delay, Foundation.NSDate.date()))
+-    NSUserNotificationCenter.defaultUserNotificationCenter(
+-    ).scheduleNotification_(notification)
++    print(f"""
++Warning: Persepolis was installed from nixpkgs, which currently breaks notifications
++         on macOS. Until https://github.com/NixOS/nixpkgs/issues/105156 is resolved,
++         this cannot be fixed. The notification that should've been displayed was:
++
++         title: {title}
++         subtitle: {subtitle}
++         info_text: {info_text}
++ """)
+-- 
+2.39.3 (Apple Git-145)
+
diff --git a/pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch b/pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch
new file mode 100644
index 0000000000000..ab3c957ef4b19
--- /dev/null
+++ b/pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch
@@ -0,0 +1,29 @@
+---
+ persepolis/scripts/download.py | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/persepolis/scripts/download.py b/persepolis/scripts/download.py
+index aaabb35..69676d3 100644
+--- a/persepolis/scripts/download.py
++++ b/persepolis/scripts/download.py
+@@ -72,16 +72,8 @@ def startAria():
+ 
+     # in macintosh
+     elif os_type == 'Darwin':
+-        if aria2_path == "" or aria2_path == None or os.path.isfile(str(aria2_path)) == False:
+-
+-            cwd = sys.argv[0]
+-            current_directory = os.path.dirname(cwd)
+-            aria2d = os.path.join(current_directory, 'aria2c')
+ 
+-        else:
+-            aria2d = aria2_path
+-
+-        subprocess.Popen([aria2d, '--no-conf',
++        subprocess.Popen(['aria2c', '--no-conf',
+                           '--enable-rpc', '--rpc-listen-port=' + str(port),
+                           '--rpc-max-request-size=2M',
+                           '--rpc-listen-all', '--quiet=true'],
+-- 
+2.39.3 (Apple Git-145)
+
diff --git a/pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch b/pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch
new file mode 100644
index 0000000000000..800f7bddd4086
--- /dev/null
+++ b/pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch
@@ -0,0 +1,34 @@
+---
+ persepolis/scripts/mainwindow.py   | 2 +-
+ persepolis/scripts/useful_tools.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/persepolis/scripts/mainwindow.py b/persepolis/scripts/mainwindow.py
+index d21f3f4..a0e3674 100644
+--- a/persepolis/scripts/mainwindow.py
++++ b/persepolis/scripts/mainwindow.py
+@@ -161,7 +161,7 @@ class CheckVersionsThread(QThread):
+ 
+             else:
+                 pipe = subprocess.Popen(
+-                    [ffmpeg_path, '-version'],
++                    ['ffmpeg', '-version'],
+                     stdout=subprocess.PIPE,
+                     stdin=subprocess.PIPE,
+                     stderr=subprocess.PIPE,
+diff --git a/persepolis/scripts/useful_tools.py b/persepolis/scripts/useful_tools.py
+index b780967..31733eb 100644
+--- a/persepolis/scripts/useful_tools.py
++++ b/persepolis/scripts/useful_tools.py
+@@ -342,7 +342,7 @@ def muxer(parent, video_finder_dictionary):
+                 current_directory = os.path.dirname(cwd)
+                 ffmpeg_path = os.path.join(current_directory, 'ffmpeg')
+ 
+-                pipe = subprocess.Popen([ffmpeg_path, '-i', video_file_path,
++                pipe = subprocess.Popen(['ffmpeg', '-i', video_file_path,
+                                          '-i', audio_file_path,
+                                          '-c', 'copy',
+                                          '-shortest',
+-- 
+2.39.3 (Apple Git-145)
+
diff --git a/pkgs/tools/networking/persepolis/default.nix b/pkgs/tools/networking/persepolis/default.nix
index ed449ecb992f9..35727c13e6940 100644
--- a/pkgs/tools/networking/persepolis/default.nix
+++ b/pkgs/tools/networking/persepolis/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonApplication, fetchFromGitHub
+{ lib
+, stdenv
+, buildPythonApplication
+, fetchFromGitHub
 , aria
+, ffmpeg
 , libnotify
 , pulseaudio
 , psutil
@@ -9,7 +13,7 @@
 , setuptools
 , sound-theme-freedesktop
 , wrapQtAppsHook
-, youtube-dl
+, yt-dlp
 }:
 
 buildPythonApplication rec {
@@ -26,10 +30,27 @@ buildPythonApplication rec {
   # see: https://github.com/persepolisdm/persepolis/blob/3.2.0/setup.py#L130
   doCheck = false;
 
-  preBuild=''
+  preBuild=
+  # Make setup automatic
+  ''
     substituteInPlace setup.py --replace "answer = input(" "answer = 'y'#"
+  '' +
+  # Replace abandoned youtube-dl with maintained fork yt-dlp. Fixes https://github.com/persepolisdm/persepolis/issues/930,
+  # can be removed if that issue is fixed and/or https://github.com/persepolisdm/persepolis/pull/936 is merged
+  ''
+    substituteInPlace setup.py ./persepolis/scripts/video_finder_addlink.py --replace \
+        "import youtube_dl" "import yt_dlp as youtube_dl"
   '';
 
+  patches = lib.optionals stdenv.isDarwin [
+    # Upstream is abandonware, the last commit to master was on 2021-08-26.
+    # If it is forked or picked up again, consider upstreaming these patches.
+    ./0001-Allow-building-on-darwin.patch
+    ./0002-Fix-startup-crash-on-darwin.patch
+    ./0003-Search-PATH-for-aria2c-on-darwin.patch
+    ./0004-Search-PATH-for-ffmpeg-on-darwin.patch
+  ];
+
   postPatch = ''
     sed -i 's|/usr/share/sounds/freedesktop/stereo/|${sound-theme-freedesktop}/share/sounds/freedesktop/stereo/|' setup.py
     sed -i "s|'persepolis = persepolis.__main__'|'persepolis = persepolis.scripts.persepolis:main'|" setup.py
@@ -46,7 +67,7 @@ buildPythonApplication rec {
 
   # feed args to wrapPythonApp
   makeWrapperArgs = [
-    "--prefix PATH : ${lib.makeBinPath [aria libnotify ]}"
+    "--prefix PATH : ${lib.makeBinPath [ aria ffmpeg libnotify ]}"
     "\${qtWrapperArgs[@]}"
   ];
 
@@ -58,13 +79,13 @@ buildPythonApplication rec {
     setproctitle
     setuptools
     sound-theme-freedesktop
-    youtube-dl
+    yt-dlp
   ];
 
   meta = with lib; {
     description = "Persepolis Download Manager is a GUI for aria2";
     homepage = "https://persepolisdm.github.io/";
     license = licenses.gpl3;
-    maintainers = [ ];
+    maintainers = with maintainers; [ iFreilicht ];
   };
 }
diff --git a/pkgs/tools/networking/pgrok/build-deps/package.json b/pkgs/tools/networking/pgrok/build-deps/package.json
index 3ace3f15e44c3..b40bf794c6de0 100644
--- a/pkgs/tools/networking/pgrok/build-deps/package.json
+++ b/pkgs/tools/networking/pgrok/build-deps/package.json
@@ -5,7 +5,7 @@
     "build": "tsc && vite build --outDir=dist --emptyOutDir",
     "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
   },
-  "version": "1.4.0",
+  "version": "1.4.1",
   "dependencies": {
     "axios": "~1.4.0",
     "react": "~18.2.0",
diff --git a/pkgs/tools/networking/pgrok/default.nix b/pkgs/tools/networking/pgrok/default.nix
index 21a62ba8ccd6f..ab1c6d9f0a613 100644
--- a/pkgs/tools/networking/pgrok/default.nix
+++ b/pkgs/tools/networking/pgrok/default.nix
@@ -5,16 +5,16 @@
 }:
 buildGoModule rec {
   pname = "pgrok";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "pgrok";
     repo = "pgrok";
     rev = "v${version}";
-    hash = "sha256-2k3XLXmf1Xnx4HvS7sD/aq+78Z4I7uY4djV958n5TX4=";
+    hash = "sha256-P36rpFi5J+dF6FrVaPhqupG00h4kwr0qumt4ehL/7vU=";
   };
 
-  vendorHash = "sha256-M0xVHRh9NKPxmUEmx1dDQUZc8aXcdAfHisQAnt72RdY=";
+  vendorHash = "sha256-X5FjzliIJdfJnNaUXBjv1uq5tyjMVjBbnLCBH/P0LFM=";
 
   outputs = [ "out" "server" ];
 
diff --git a/pkgs/tools/networking/photon/destdir.patch b/pkgs/tools/networking/photon/destdir.patch
deleted file mode 100644
index e6cf997f2e7c4..0000000000000
--- a/pkgs/tools/networking/photon/destdir.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/photon.py.old b/photon.py
-index 92498e4..f7e2c3d 100644
---- a/photon.py.old
-+++ b/photon.py
-@@ -185,7 +185,7 @@ if args.user_agent:
-     user_agents = args.user_agent.split(',')
- else:
-     user_agents = []
--    with open(os.getcwd() + '/core/user-agents.txt', 'r') as uas:
-+    with open('DESTDIR/core/user-agents.txt', 'r') as uas:
-         for agent in uas:
-             user_agents.append(agent.strip('\n'))
- 
-@@ -534,4 +534,4 @@ if args.export:
- if not colors: # if colors are disabled
-     print ('%s Results saved in %s directory' % (good, output_dir))
- else:
--    print ('%s Results saved in \033[;1m%s\033[0m directory' % (good, output_dir))
-\ No newline at end of file
-+    print ('%s Results saved in \033[;1m%s\033[0m directory' % (good, output_dir))
diff --git a/pkgs/tools/networking/picosnitch/default.nix b/pkgs/tools/networking/picosnitch/default.nix
index e23db9cc4e3eb..6007d3ec227f0 100644
--- a/pkgs/tools/networking/picosnitch/default.nix
+++ b/pkgs/tools/networking/picosnitch/default.nix
@@ -6,11 +6,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "picosnitch";
-  version = "0.14.0";
+  version = "1.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b58255a78a0bf652224ee22ca83137d75ea77b7eb1ad2d11159b56b6788f6201";
+    sha256 = "78285e91b5c4d8e07529a34a7c3fe606acb6f950ee3cc78bb6c346bc2195b68a";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/networking/pmacct/default.nix b/pkgs/tools/networking/pmacct/default.nix
index e850ba1af0a57..dfc31498ddd1f 100644
--- a/pkgs/tools/networking/pmacct/default.nix
+++ b/pkgs/tools/networking/pmacct/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "pmacct";
     repo = "pmacct";
     rev = "v${version}";
-    sha256 = "sha256-AcgZ5/8d1U/zGs4QeOkgkZS7ttCW6gtUv/Xuf4O4VE0=";
+    hash = "sha256-AcgZ5/8d1U/zGs4QeOkgkZS7ttCW6gtUv/Xuf4O4VE0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/prettyping/default.nix b/pkgs/tools/networking/prettyping/default.nix
index 16311f5b99612..ac5dd3d1d6aeb 100644
--- a/pkgs/tools/networking/prettyping/default.nix
+++ b/pkgs/tools/networking/prettyping/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/denilsonsa/prettyping";
     description = "A wrapper around the standard ping tool with the objective of making the output prettier, more colorful, more compact, and easier to read";
+    mainProgram = "prettyping";
     license = with licenses; [ mit ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ qoelet ];
diff --git a/pkgs/tools/networking/q/default.nix b/pkgs/tools/networking/q/default.nix
index bbcaf765d0fd7..3bf04806233c7 100644
--- a/pkgs/tools/networking/q/default.nix
+++ b/pkgs/tools/networking/q/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "q";
-  version = "0.12.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "natesales";
     repo = "q";
     rev = "v${version}";
-    sha256 = "sha256-Z62xxmbzouuP0ol0sJxlh3bQr/sysFSqo7Y5b26IJ1g=";
+    sha256 = "sha256-yItgytsPR/FkiERHhLTq1vNJbZ204DckEc3xK3PaPKM=";
   };
 
-  vendorHash = "sha256-uWPvUz8H9e/deZ3JmpRBNEG6UXAQa1068fZwQoeiKkc=";
+  vendorHash = "sha256-xLv2F/rOSjMTnTrLck/1E8Y0fTbpUutQIJGmqetqYjg=";
 
   doCheck = false; # tries to resolve DNS
 
diff --git a/pkgs/tools/networking/quicktun/default.nix b/pkgs/tools/networking/quicktun/default.nix
index b997aad0c2d60..2c28e3665698a 100644
--- a/pkgs/tools/networking/quicktun/default.nix
+++ b/pkgs/tools/networking/quicktun/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, libsodium }:
+{ lib, stdenv, fetchFromGitHub, libsodium, nixosTests }:
 
 stdenv.mkDerivation {
   pname = "quicktun";
@@ -15,18 +15,31 @@ stdenv.mkDerivation {
 
   buildInputs = [ libsodium ];
 
-  buildPhase = "bash build.sh";
+  postPatch = ''
+    substituteInPlace build.sh \
+      --replace "cc=\"cc\"" "cc=\"$CC\""
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    bash build.sh
+    runHook postBuild
+  '';
 
   installPhase = ''
+    runHook preInstall
     rm out/quicktun*tgz
     install -vD out/quicktun* -t $out/bin
+    runHook postInstall
   '';
 
+  passthru.tests.quicktun = nixosTests.quicktun;
+
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Very simple, yet secure VPN software";
     homepage = "http://wiki.ucis.nl/QuickTun";
-    maintainers = [ ];
+    maintainers = with maintainers; [ h7x4 ];
     platforms = platforms.unix;
     license = licenses.bsd2;
   };
diff --git a/pkgs/tools/networking/rabtap/default.nix b/pkgs/tools/networking/rabtap/default.nix
index 814d81429c4ef..2e9fff0dd1e92 100644
--- a/pkgs/tools/networking/rabtap/default.nix
+++ b/pkgs/tools/networking/rabtap/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "rabtap";
-  version = "1.38.2";
+  version = "1.39.1";
 
   src = fetchFromGitHub {
     owner = "jandelgado";
     repo = "rabtap";
     rev = "v${version}";
-    sha256 = "sha256-l35MHr7NWBlzKcGSDGjHTwGfnDrOpjeJp9/YAp1Areo=";
+    sha256 = "sha256-R0OZNmOgklhiljsYTVoqpbMMMaPHICC/qVJNUgkUsfU=";
   };
 
-  vendorHash = "sha256-sJFMef9VnU6iKGf9UwEK60axLUBkubFWgI+pWKjaWNU=";
+  vendorHash = "sha256-BrpDafEFDrH243zDHY9EtkVjPvwrmbJVu5TQMHHOWfA=";
 
   meta = with lib; {
     description = "RabbitMQ wire tap and swiss army knife";
diff --git a/pkgs/tools/networking/rathole/default.nix b/pkgs/tools/networking/rathole/default.nix
index db1f2921917c9..b6338e262f635 100644
--- a/pkgs/tools/networking/rathole/default.nix
+++ b/pkgs/tools/networking/rathole/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rathole";
-  version = "0.4.8";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "rapiz1";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-yqZPs0rp3LD7n4+JGa55gZ4xMcumy+oazrxCqpDzIfQ=";
+    hash = "sha256-YfLzR1lHk+0N3YU1XTNxz+KE1S3xaiKJk0zASm6cr1s=";
   };
 
-  cargoHash = "sha256-BZ6AgH/wnxrDLkyncR0pbayae9v5P7X7UnlJ48JR8sM=";
+  cargoHash = "sha256-UyQXAUPnp32THZJAs/p3bIXZjcXTvjy207QBVLCfkr8=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/networking/ratman/default.nix b/pkgs/tools/networking/ratman/default.nix
index ce017731bd4af..a78840095d880 100644
--- a/pkgs/tools/networking/ratman/default.nix
+++ b/pkgs/tools/networking/ratman/default.nix
@@ -6,7 +6,7 @@
 , protobuf
 , rustPlatform
 , fetchYarnDeps
-, fixup_yarn_lock
+, prefetch-yarn-deps
 , stdenv
 , yarn
 , nodejs
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
       sha256 = "sha256-pWjKL41r/bTvWv+5qCgCFVL9+o64BiV2/ISdLeKEOqE=";
     };
 
-    nativeBuildInputs = [ yarn nodejs ];
+    nativeBuildInputs = [ yarn nodejs prefetch-yarn-deps ];
 
     outputs = [ "out" "dist" ];
 
@@ -61,7 +61,7 @@ rustPlatform.buildRustPackage rec {
       yarn config --offline set yarn-offline-mirror ${yarnDeps}
 
       # Fixup "resolved"-entries in yarn.lock to match our offline cache
-      ${fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock
+      fixup-yarn-lock yarn.lock
 
       yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
 
diff --git a/pkgs/tools/networking/redfang/default.nix b/pkgs/tools/networking/redfang/default.nix
index 8e799b7d41fd3..a4ba12b29489d 100644
--- a/pkgs/tools/networking/redfang/default.nix
+++ b/pkgs/tools/networking/redfang/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     description = "A small proof-of-concept application to find non discoverable bluetooth devices";
     homepage = "https://gitlab.com/kalilinux/packages/redfang";
     license = licenses.gpl2Only;
-    maintainers = with maintainers; [ fortuneteller2k ];
+    maintainers = with maintainers; [ moni ];
   };
 }
diff --git a/pkgs/tools/networking/redli/default.nix b/pkgs/tools/networking/redli/default.nix
index 7c757c9ef7707..8045be91a75d7 100644
--- a/pkgs/tools/networking/redli/default.nix
+++ b/pkgs/tools/networking/redli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "redli";
-  version = "0.9.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "IBM-Cloud";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AeIGlRsUWK6q0GJJFmvJwpuGy312VPsMhkxMqDDzay4=";
+    hash = "sha256-Tux4GsYG3DlJoV10Ahb+X+8mpkchLchbh+PCgRD0kUA=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/networking/redsocks/default.nix b/pkgs/tools/networking/redsocks/default.nix
index 9b8989f30c2ac..cebec2cb2b60c 100644
--- a/pkgs/tools/networking/redsocks/default.nix
+++ b/pkgs/tools/networking/redsocks/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Transparent redirector of any TCP connection to proxy";
-    homepage = "http://darkk.net.ru/redsocks/";
+    homepage = "https://darkk.net.ru/redsocks/";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.ekleog ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/networking/requestly/default.nix b/pkgs/tools/networking/requestly/default.nix
index 33d03140c3984..671d084b8ecbd 100644
--- a/pkgs/tools/networking/requestly/default.nix
+++ b/pkgs/tools/networking/requestly/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "requestly";
-  version = "1.5.6";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "https://github.com/requestly/requestly-desktop-app/releases/download/v${version}/Requestly-${version}.AppImage";
-    hash = "sha256-Yb90OGIIvExfNPoJPmuZSvtU5OQVuGqh4EmyKltE+is=";
+    hash = "sha256-aUhgn6QeCHcs3yi1KKzw+yOUucbTOeNqObTYZTkKqrs=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/tools/networking/restish/default.nix b/pkgs/tools/networking/restish/default.nix
index 303d88b235f2b..807b8e4a9bdf7 100644
--- a/pkgs/tools/networking/restish/default.nix
+++ b/pkgs/tools/networking/restish/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "restish";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "danielgtaylor";
     repo = "restish";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zAWlbfZywL8jepgmXBM5lacRv1N/+dBd+9vIavWAyNs=";
+    hash = "sha256-a0ObgFgWEsLYjGmCCi/py2PADAWJ0By+AZ4wh+Yeam4=";
   };
 
-  vendorHash = "sha256-sUBqeLhpWUu1NfAmFQCKFHm8DQaB8LYRrFexvuF8vC8=";
+  vendorHash = "sha256-qeArar0WnMACUnKBlC+PcFeJPzofwbK440A4M/rQ04U=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Cocoa
diff --git a/pkgs/tools/networking/ripmime/default.nix b/pkgs/tools/networking/ripmime/default.nix
index 6584edca5e689..7cfb31ff9858b 100644
--- a/pkgs/tools/networking/ripmime/default.nix
+++ b/pkgs/tools/networking/ripmime/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   pname = "ripmime";
   version = "1.4.0.10";
   src = fetchurl {
-    url = "http://www.pldaniels.com/${pname}/${pname}-${version}.tar.gz";
+    url = "https://pldaniels.com/${pname}/${pname}-${version}.tar.gz";
     sha256 = "0sj06ibmlzy34n8v0mnlq2gwidy7n2aqcwgjh0xssz3vi941aqc9";
   };
 
@@ -19,13 +19,13 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Attachment extractor for MIME messages";
     maintainers = with maintainers; [ raskin ];
-    homepage = "http://www.pldaniels.com/ripmime/";
+    homepage = "https://pldaniels.com/ripmime/";
     platforms = platforms.all;
   };
 
   passthru = {
     updateInfo = {
-      downloadPage = "http://www.pldaniels.com/ripmime/";
+      downloadPage = "https://pldaniels.com/ripmime/";
     };
   };
 }
diff --git a/pkgs/tools/networking/rosenpass/default.nix b/pkgs/tools/networking/rosenpass/default.nix
index 07669cfeb01e7..afbd1ac7f3107 100644
--- a/pkgs/tools/networking/rosenpass/default.nix
+++ b/pkgs/tools/networking/rosenpass/default.nix
@@ -1,85 +1,53 @@
 { lib
-, targetPlatform
 , fetchFromGitHub
+, nixosTests
 , rustPlatform
+, hostPlatform
+, installShellFiles
 , cmake
-, makeWrapper
-, pkg-config
-, removeReferencesTo
-, coreutils
-, findutils
-, gawk
-, wireguard-tools
-, bash
 , libsodium
+, pkg-config
 }:
-
-let
-  rpBinPath = lib.makeBinPath [
-    coreutils
-    findutils
-    gawk
-    wireguard-tools
-  ];
-in
 rustPlatform.buildRustPackage rec {
   pname = "rosenpass";
-  version = "0.2.0";
+  version = "0.2.1";
+
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-r7/3C5DzXP+9w4rp9XwbP+/NK1axIP6s3Iiio1xRMbk=";
+    hash = "sha256-t5AeJqeV16KCUoBm1GUzj/U6q382CRCR/XG6B2MiBU4=";
   };
 
-  cargoHash = "sha256-g2w3lZXQ3Kg3ydKdFs8P2lOPfIkfTbAF0MhxsJoX/E4=";
+  cargoHash = "sha256-caYJP3SNpZxtV9y3D62CuzJ5RjMoq98D9W0Fms5E3Nc=";
 
   nativeBuildInputs = [
     cmake # for oqs build in the oqs-sys crate
-    makeWrapper # for the rp shellscript
-    pkg-config # let libsodium-sys-stable find libsodium
-    removeReferencesTo
+    pkg-config
     rustPlatform.bindgenHook # for C-bindings in the crypto libs
+    installShellFiles
   ];
 
-  buildInputs = [
-    bash # for patchShebangs to find it
-    libsodium
-  ];
-
-  # otherwise pkg-config tries to link non-existent dynamic libs during the build of liboqs
-  PKG_CONFIG_ALL_STATIC = true;
-
-  # liboqs requires quite a lot of stack memory, thus we adjust the default stack size picked for
-  # new threads (which is used by `cargo test`) to be _big enough_
-  RUST_MIN_STACK = 8 * 1024 * 1024; # 8 MiB
+  buildInputs = [ libsodium ];
 
   # nix defaults to building for aarch64 _without_ the armv8-a
   # crypto extensions, but liboqs depends on these
-  preBuild = lib.optionalString targetPlatform.isAarch
-    ''NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -march=armv8-a+crypto"'';
-
-  preInstall = ''
-    install -D rp $out/bin/rp
-    wrapProgram $out/bin/rp --prefix PATH : "${ rpBinPath }"
-    for file in doc/*.1
-    do
-      install -D $file $out/share/man/man1/''${file##*/}
-    done
+  preBuild = lib.optionalString hostPlatform.isAarch64 ''
+    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -march=armv8-a+crypto"
   '';
 
-  # nix propagates the *.dev outputs of buildInputs for static builds, but that is non-sense for an
-  # executables only package
-  postFixup = ''
-    find -type f -exec remove-references-to -t ${bash.dev} \
-      -t ${libsodium.dev} {} \;
+  postInstall = ''
+    installManPage doc/rosenpass.1
   '';
 
+  passthru.tests.rosenpass = nixosTests.rosenpass;
+
   meta = with lib; {
-    description = "Build post-quantum-secure VPNs with WireGuard!";
+    description = "Build post-quantum-secure VPNs with WireGuard";
     homepage = "https://rosenpass.eu/";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ wucke13 ];
-    platforms = platforms.all;
+    platforms = [ "aarch64-darwin" "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
+    mainProgram = "rosenpass";
   };
 }
diff --git a/pkgs/tools/networking/rosenpass/tools.nix b/pkgs/tools/networking/rosenpass/tools.nix
new file mode 100644
index 0000000000000..86f7359809a55
--- /dev/null
+++ b/pkgs/tools/networking/rosenpass/tools.nix
@@ -0,0 +1,30 @@
+{ lib
+, stdenv
+, makeWrapper
+, installShellFiles
+, coreutils
+, findutils
+, gawk
+, rosenpass
+, wireguard-tools
+}:
+stdenv.mkDerivation {
+  inherit (rosenpass) version src;
+  pname = "rosenpass-tools";
+
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+  postInstall = ''
+    install -D $src/rp $out/bin/rp
+    installManPage $src/doc/rp.1
+    wrapProgram $out/bin/rp \
+      --prefix PATH : ${lib.makeBinPath [
+        coreutils findutils gawk rosenpass wireguard-tools
+      ]}
+  '';
+
+  meta = rosenpass.meta // {
+    description = "The Rosenpass tool `rp`, which is a script that wraps the `rosenpass` binary";
+    mainProgram = "rp";
+  };
+}
diff --git a/pkgs/tools/networking/routedns/default.nix b/pkgs/tools/networking/routedns/default.nix
index 722063147e08f..22a0a82667133 100644
--- a/pkgs/tools/networking/routedns/default.nix
+++ b/pkgs/tools/networking/routedns/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "routedns";
-  version = "0.1.20";
+  version = "0.1.51";
 
   src = fetchFromGitHub {
     owner = "folbricht";
     repo = "routedns";
     rev = "v${version}";
-    hash = "sha256-whMSqGsZTr6tj9jbUzkNanR69xfmvXC257DsHooqlkE=";
+    hash = "sha256-9H/l6EAbrNwD2DnweBqjmcoaJEnTH9BdGn2x/ZC3us4=";
   };
 
-  vendorHash = "sha256-XqrV/eBpKzFgNSG9yoP8iqzIEifXEMOCCfPbHo3YKZw=";
+  vendorHash = "sha256-yOYeMYAXa1jok8QwGtYsvuUGgIXEjZGo6+FiDQkZwUU=";
 
   subPackages = [ "./cmd/routedns" ];
 
diff --git a/pkgs/tools/networking/s3cmd/default.nix b/pkgs/tools/networking/s3cmd/default.nix
index e7e8a38dc4781..b07ea24abf9d0 100644
--- a/pkgs/tools/networking/s3cmd/default.nix
+++ b/pkgs/tools/networking/s3cmd/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "s3cmd";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "s3tools";
     repo = "s3cmd";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-nb4WEH8ELaG/bIe4NtjD4p99VJoG90UQ662iWyvnr2U=";
+    sha256 = "sha256-cxwf6+9WFt3U7+JdKRgZxFElD+Dgf2P2VyejHVoiDJk=";
   };
 
   propagatedBuildInputs = [ python-magic python-dateutil ];
diff --git a/pkgs/tools/networking/saldl/default.nix b/pkgs/tools/networking/saldl/default.nix
index d02acb3100a7e..fb373fb5029e0 100644
--- a/pkgs/tools/networking/saldl/default.nix
+++ b/pkgs/tools/networking/saldl/default.nix
@@ -10,6 +10,7 @@
 , libxslt
 , curl
 , libevent
+, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
@@ -23,6 +24,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-PAX2MUyBWWU8kGkaeoCJteidgszh7ipwDJbrLXzVsn0=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "update-waf-to-2-0-24.patch";
+      url = "https://github.com/saldl/saldl/commit/360c29d6c8cee5f7e608af42237928be429c3407.patch";
+      hash = "sha256-RBMnsUtd0BaZe/EXypDCK4gpUU0dgucWmOcJRn5/iTA=";
+    })
+  ];
+
   nativeBuildInputs = [
     pkg-config
     wafHook
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index 4dcd1ee250e40..ca6a812caa064 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.16.2";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    hash = "sha256-TE1pGLS77WpaT0J0rUllihmHY5nOHzxd1LMsNjptXrg=";
+    hash = "sha256-Vl6COgVADAfeR0X3dFV4SHnFi0pRDw4GQv417j8+3MM=";
   };
 
-  cargoHash = "sha256-Fq/EMA7PHL/1eWNwT0naRtfkIU0Hia5yzFWmsyugOFc=";
+  cargoHash = "sha256-VaQYJ9muF8QeS3mA4VtSk8fWLGjWOM+ObhQmCvV/Ew4=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/pkgs/tools/networking/sing-box/default.nix b/pkgs/tools/networking/sing-box/default.nix
index db8aefa1f6fbe..ded2dd4ce28bb 100644
--- a/pkgs/tools/networking/sing-box/default.nix
+++ b/pkgs/tools/networking/sing-box/default.nix
@@ -11,23 +11,22 @@
 
 buildGoModule rec {
   pname = "sing-box";
-  version = "1.5.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "SagerNet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Vyp8AlcHhkKitcSaQ3ecjfevjSYPUZQercRJsjaXgTk=";
+    hash = "sha256-Zn2akHyStq014k4ze3zsqASFnn6VTQ6fu1HdYMBDI1Y=";
   };
 
-  vendorHash = "sha256-Lcrc24GfkVfabMnT15scaoQFSiKJ3umbs0rAMDxtQR8=";
+  vendorHash = "sha256-L5TFMwhxit4Bm6h6KSEygKxGHbflNa0UQ9lzNqsvuGA=";
 
   tags = [
     "with_quic"
     "with_grpc"
     "with_dhcp"
     "with_wireguard"
-    "with_shadowsocksr"
     "with_ech"
     "with_utls"
     "with_reality_server"
@@ -69,5 +68,6 @@ buildGoModule rec {
     description = "The universal proxy platform";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nickcao ];
+    mainProgram = "sing-box";
   };
 }
diff --git a/pkgs/tools/networking/sish/default.nix b/pkgs/tools/networking/sish/default.nix
index 0bcf6bff9431d..d1913e5dff412 100644
--- a/pkgs/tools/networking/sish/default.nix
+++ b/pkgs/tools/networking/sish/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "sish";
-  version = "2.9.2";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "antoniomika";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-6PCZtiXsDQfPZFw3r1n3rwgxigSnWgggHXzZdBT/fxA=";
+    hash = "sha256-dn64M/DGnyaoEtbdeytpRsKCXQPvR+dJDI7yFt2IqU0=";
   };
 
-  vendorHash = "sha256-RnvkEUvL/bQTTTlg0RF0xjjvVniltequNKRD3z0H3O8=";
+  vendorHash = "sha256-P5Y5DwF9Tb9j098XiEJZaEGZhT2Ce2emnV2SawElosI=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/networking/sleep-on-lan/default.nix b/pkgs/tools/networking/sleep-on-lan/default.nix
index 6a332ea8070ca..de4831ddeaddf 100644
--- a/pkgs/tools/networking/sleep-on-lan/default.nix
+++ b/pkgs/tools/networking/sleep-on-lan/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/SR-G/sleep-on-lan";
-    description = "Multi-platform process allowing to sleep on LAN a linux or windows computer, through wake-on-lan (reversed) magic packets or through HTTP REST requests.";
+    description = "Multi-platform process allowing to sleep on LAN a Linux or Windows computer, through wake-on-lan (reversed) magic packets or through HTTP REST requests";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ devusb ];
diff --git a/pkgs/tools/networking/snabb/default.nix b/pkgs/tools/networking/snabb/default.nix
index 810a893ead2d0..00bc41f69e772 100644
--- a/pkgs/tools/networking/snabb/default.nix
+++ b/pkgs/tools/networking/snabb/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snabb";
-  version = "2023.06";
+  version = "2023.10";
 
   src = fetchFromGitHub {
     owner = "snabbco";
     repo = "snabb";
     rev = "v${version}";
-    sha256 = "sha256-MLEBT1UpyFiIGqI9W2bw2I2j4JanJ0MAV8nwcL/1QBM=";
+    sha256 = "sha256-oCHPRqJ1zm2Ple3Ck9nMyRC7PgKaF1RuswzdGBVU2C8=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/networking/sniffglue/default.nix b/pkgs/tools/networking/sniffglue/default.nix
index fdedff083b1bc..a17ecad26066d 100644
--- a/pkgs/tools/networking/sniffglue/default.nix
+++ b/pkgs/tools/networking/sniffglue/default.nix
@@ -1,27 +1,38 @@
-{ lib, fetchFromGitHub, rustPlatform, libpcap, libseccomp, pkg-config }:
+{ lib
+, fetchFromGitHub
+, libpcap
+, libseccomp
+, pkg-config
+, rustPlatform
+, stdenv
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "sniffglue";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8SkwdPaKHf0ZE/MeM4yOe2CpQvZzIHf5d06iM7KPAT8=";
+    sha256 = "sha256-MOw0WBdpo6dYXsjbUrqoIJl/sjQ4wSAcm4dPxDgTYgY=";
   };
 
-  cargoSha256 = "sha256-UGvFLW48sakNuV3eXBpCxaHOrveQPXkynOayMK6qs4g=";
+  cargoHash = "sha256-vnfviiXJ4L/j5M3N+LegOIvLuD6vYJB1QeBgZJVfDnI=";
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ libpcap libseccomp ];
+  buildInputs = [
+    libpcap
+  ] ++ lib.optionals stdenv.isLinux [
+    libseccomp
+  ];
 
   meta = with lib; {
     description = "Secure multithreaded packet sniffer";
     homepage = "https://github.com/kpcyrd/sniffglue";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ xrelkd ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/networking/snowflake/default.nix b/pkgs/tools/networking/snowflake/default.nix
index f51a6be9914d9..137e2f3087c00 100644
--- a/pkgs/tools/networking/snowflake/default.nix
+++ b/pkgs/tools/networking/snowflake/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "snowflake";
-  version = "2.6.1";
+  version = "2.8.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.torproject.org";
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "anti-censorship/pluggable-transports";
     repo = "snowflake";
     rev = "v${version}";
-    sha256 = "sha256-3gLcSZv8GpEio+yvPyBVVceb1nO0HzhpQKhEgf4nQvU=";
+    sha256 = "sha256-DSXzw/7aBfh4uqLV2JrbrLitNgXcgEdcwxyIMolGEsE=";
   };
 
-  vendorHash = "sha256-MjxDB9fcPM6nIeGk6YvJOKXI/ThlMrxqJl9ROAREwXk=";
+  vendorHash = "sha256-+f7gxswHCzBT5wqJNYdR1/uDZJNpEyHMWchA4X0aK+M=";
 
   meta = with lib; {
     description = "System to defeat internet censorship";
diff --git a/pkgs/tools/networking/socat/default.nix b/pkgs/tools/networking/socat/default.nix
index c34aa7ab4c226..58d33bc886f5d 100644
--- a/pkgs/tools/networking/socat/default.nix
+++ b/pkgs/tools/networking/socat/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "socat";
-  version = "1.7.4.4";
+  version = "1.8.0.0";
 
   src = fetchurl {
     url = "http://www.dest-unreach.org/socat/download/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-+9Qr0vDlSjr20BvfFThThKuC28Dk8aXhU7PgvhtjgKw=";
+    hash = "sha256-4d5oPdIu4OOmxrv/Jpq+GKsMnX62UCBPElFVuQBfrKc=";
   };
 
   postPatch = ''
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
 
   hardeningEnable = [ "pie" ];
 
+  enableParallelBuilding = true;
+
   nativeCheckInputs = [ which nettools ];
   doCheck = false; # fails a bunch, hangs
 
diff --git a/pkgs/tools/networking/sockdump/default.nix b/pkgs/tools/networking/sockdump/default.nix
index db9edba0b2298..95920a91eef35 100644
--- a/pkgs/tools/networking/sockdump/default.nix
+++ b/pkgs/tools/networking/sockdump/default.nix
@@ -2,13 +2,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sockdump";
-  version = "unstable-2022-10-12";
+  version = "unstable-2023-09-16";
 
   src = fetchFromGitHub {
     owner = "mechpen";
     repo = pname;
-    rev = "005dcb056238c2e37ff378aef27c953208ffa08f";
-    hash = "sha256-X8PIUDxlcdPoD7+aLDWzlWV++P3mmu52BwY7irhypww=";
+    rev = "713759e383366feae76863881e851a6411c73b68";
+    hash = "sha256-q6jdwFhl2G9o2C0BVU6Xz7xizO00yaSQ2KSR/z4fixY=";
   };
 
   propagatedBuildInputs = [ bcc ];
diff --git a/pkgs/tools/networking/speedtest-go/default.nix b/pkgs/tools/networking/speedtest-go/default.nix
index 0d2be501fd143..39c92fcb40d18 100644
--- a/pkgs/tools/networking/speedtest-go/default.nix
+++ b/pkgs/tools/networking/speedtest-go/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "speedtest-go";
-  version = "1.6.6";
+  version = "1.6.10";
 
   src = fetchFromGitHub {
     owner = "showwin";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-aVvowxwP9Mr1hmcgwizXPfy5527iR7cjsNaND/nmXUw=";
+    hash = "sha256-Uk7ZKGxyK4b7P87qN7rGgj4oXJgYhH4NzZa+4fOkh14=";
   };
 
   vendorHash = "sha256-wQqAX7YuxxTiMWmV9LRoXunGMMzs12UyHbf4VvbQF1E=";
diff --git a/pkgs/tools/networking/ssh-askpass-fullscreen/default.nix b/pkgs/tools/networking/ssh-askpass-fullscreen/default.nix
deleted file mode 100644
index 3faff612aadc3..0000000000000
--- a/pkgs/tools/networking/ssh-askpass-fullscreen/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk2, openssh }:
-
-stdenv.mkDerivation rec {
-  pname = "ssh-askpass-fullscreen";
-  version = "1.3";
-
-  src = fetchFromGitHub {
-    owner = "atj";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-1GER+SxTpbMiYLwFCwLX/hLvzCIqutyvQc9DNJ7d1C0=";
-  };
-
-  nativeBuildInputs = [
-    autoreconfHook
-    pkg-config
-  ];
-
-  buildInputs = [
-    gtk2
-    openssh
-  ];
-
-  meta = with lib; {
-    broken = stdenv.isDarwin;
-    description = "A small SSH askpass GUI using GTK+2";
-    homepage = "https://github.com/atj/ssh-askpass-fullscreen";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ caadar ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/tools/networking/ssl-proxy/default.nix b/pkgs/tools/networking/ssl-proxy/default.nix
index 5b72fb14fd9c5..1bfb1418355f7 100644
--- a/pkgs/tools/networking/ssl-proxy/default.nix
+++ b/pkgs/tools/networking/ssl-proxy/default.nix
@@ -13,6 +13,10 @@ buildGoModule rec {
 
   vendorHash = "sha256-310K9ZSxy/OQ4HYFCcHQaj4NQwzATrOZ2YkhiSkhY5I=";
 
+  patches = [
+    ./go120-compatibility.patch
+  ];
+
   checkTarget = "test";
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/ssl-proxy/go120-compatibility.patch b/pkgs/tools/networking/ssl-proxy/go120-compatibility.patch
new file mode 100644
index 0000000000000..868ca39a54145
--- /dev/null
+++ b/pkgs/tools/networking/ssl-proxy/go120-compatibility.patch
@@ -0,0 +1,18 @@
+Check whether User-Agent is defined before trying to override it
+
+Since Go 1.20 [1], ReverseProxy no longer adds a User-Agent header to forwarded
+requests.
+
+[1] https://github.com/golang/go/commit/f001df540b3fc66a475985c1b7c810e7df063c8f
+
+--- a/reverseproxy/reverseproxy.go
++++ b/reverseproxy/reverseproxy.go
+@@ -32,7 +32,7 @@ func newDirector(target *url.URL, extraDirector func(*http.Request)) func(*http.
+ 		} else {
+ 			req.URL.RawQuery = targetQuery + "&" + req.URL.RawQuery
+ 		}
+-		if _, ok := req.Header["User-Agent"]; !ok {
++		if req.Header.Get("User-Agent") != "" {
+ 			// explicitly disable User-Agent so it's not set to default value
+ 			req.Header.Set("User-Agent", "")
+ 		}
diff --git a/pkgs/tools/networking/stevenblack-blocklist/default.nix b/pkgs/tools/networking/stevenblack-blocklist/default.nix
index 8a71f6d99fd40..b95d0537a8dc2 100644
--- a/pkgs/tools/networking/stevenblack-blocklist/default.nix
+++ b/pkgs/tools/networking/stevenblack-blocklist/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 let
-  version = "3.13.10";
+  version = "3.14.44";
 in
 fetchFromGitHub {
   name = "stevenblack-blocklist-${version}";
@@ -9,12 +9,12 @@ fetchFromGitHub {
   owner = "StevenBlack";
   repo = "hosts";
   rev = version;
-  sha256 = "sha256-LTo0NV1DpHI05AvfmTKNz+/NdXaNoLxgpMhV/HqeT6g=";
+  sha256 = "sha256-LlTyhtx3DbtsQdkl6J7ktj/zLJULFqQWq5sCqKPX71g=";
 
   meta = with lib; {
     description = "Unified hosts file with base extensions";
     homepage = "https://github.com/StevenBlack/hosts";
     license = licenses.mit;
-    maintainers = with maintainers; [ fortuneteller2k ];
+    maintainers = with maintainers; [ moni ];
   };
 }
diff --git a/pkgs/tools/networking/strongswan/default.nix b/pkgs/tools/networking/strongswan/default.nix
index 64c01b0ffe4f4..8974e1b152afe 100644
--- a/pkgs/tools/networking/strongswan/default.nix
+++ b/pkgs/tools/networking/strongswan/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "strongswan";
-  version = "5.9.11"; # Make sure to also update <nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix> when upgrading!
+  version = "5.9.13"; # Make sure to also update <nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix> when upgrading!
 
   src = fetchFromGitHub {
     owner = "strongswan";
     repo = "strongswan";
     rev = version;
-    hash = "sha256-DjVmDUEEJnf5kaia1f+Yow9g4+l3itOmoXR8/vVSssU=";
+    hash = "sha256-uI7Ibdx6I+gd83KJ24ERmpJSMNIbsk10PszdLxpcXcQ=";
   };
 
   dontPatchELF = true;
diff --git a/pkgs/tools/networking/stunnel/default.nix b/pkgs/tools/networking/stunnel/default.nix
index 958c784c74a68..af9fec255370b 100644
--- a/pkgs/tools/networking/stunnel/default.nix
+++ b/pkgs/tools/networking/stunnel/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "stunnel";
-  version = "5.70";
+  version = "5.71";
 
   outputs = [ "out" "doc" "man" ];
 
   src = fetchurl {
     url = "https://www.stunnel.org/archive/${lib.versions.major finalAttrs.version}.x/stunnel-${finalAttrs.version}.tar.gz";
-    hash = "sha256-e7x7npqYjXYwEyXbTBEOw2Cpj/uKIhx6zL/5wKi64vM=";
+    hash = "sha256-8COq6DfC0y3rkggxpe4QgeEceKXVc0D45vCCnwMQF/U=";
     # please use the contents of "https://www.stunnel.org/downloads/stunnel-${version}.tar.gz.sha256",
     # not the output of `nix-prefetch-url`
   };
diff --git a/pkgs/tools/networking/subfinder/default.nix b/pkgs/tools/networking/subfinder/default.nix
index 6cd2ee26959f8..eca5ee264631d 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.6.3";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-X1Ow11ECwu2a/VzimrKGRJKCnZWL8KJ5Gii+pjP5b9E=";
+    hash = "sha256-pCfTaxGScGg2pcQERfWYOwBI3dnfOuXcFZ9msncpPwE=";
   };
 
-  vendorHash = "sha256-T1xrJ44xB95+ZhQPCYlcbH1gIQm7ETtTnQLl/+TRxVA=";
+  vendorHash = "sha256-3JlCXW5TfZT6zJ93V45XMDtfpuc31tHCLiJOscizG9M=";
 
   modRoot = "./v2";
 
diff --git a/pkgs/tools/networking/subnetcalc/default.nix b/pkgs/tools/networking/subnetcalc/default.nix
index b5aa064f73909..e2d74a586d81a 100644
--- a/pkgs/tools/networking/subnetcalc/default.nix
+++ b/pkgs/tools/networking/subnetcalc/default.nix
@@ -1,20 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, cmake, ninja }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, ninja
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "subnetcalc";
-  version = "2.4.22";
+  version = "2.4.23";
 
   src = fetchFromGitHub {
     owner = "dreibh";
-    repo = pname;
-    rev = "${pname}-${version}";
-    sha256 = "sha256-5sDEMS4RgHdGQZAT2MVF/Ls0KXwdKzX+05uQpHhCZn8=";
+    repo = "subnetcalc";
+    rev = "subnetcalc-${finalAttrs.version}";
+    hash = "sha256-uX/roOWjeuuuEFpBbF+hEPDOo0RTR79WpyNvr9U7wR4=";
   };
 
-  nativeBuildInputs = [ cmake ninja ];
+  nativeBuildInputs = [
+    cmake
+    ninja
+  ];
 
-  meta = with lib; {
+  meta = {
     description = "SubNetCalc is an IPv4/IPv6 subnet address calculator";
+    homepage = "https://www.uni-due.de/~be0001/subnetcalc/";
+    license = lib.licenses.gpl3Plus;
     longDescription = ''
       SubNetCalc is an IPv4/IPv6 subnet address calculator. For given IPv4 or
       IPv6 address and netmask or prefix length, it calculates network address,
@@ -23,9 +33,8 @@ stdenv.mkDerivation rec {
       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;
+    mainProgram = "subnetcalc";
+    maintainers = with lib.maintainers; [ atila ];
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/tools/networking/swagger-codegen/default.nix b/pkgs/tools/networking/swagger-codegen/default.nix
index 545f21a796a26..27ea4ff2d517a 100644
--- a/pkgs/tools/networking/swagger-codegen/default.nix
+++ b/pkgs/tools/networking/swagger-codegen/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "2.4.31";
+  version = "2.4.38";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/io/swagger/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "sha256-WEjvyHHKR2w0P0LuDdCtW9GbOLZnCa7oXzLAad9KWN8=";
+    sha256 = "sha256-ECfOEr4JRCv/i/7YuQvj2s5sKBS1Ja0N8C7eTKoGUx4=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/networking/swagger-codegen3/default.nix b/pkgs/tools/networking/swagger-codegen3/default.nix
index b630c62c3a9bc..ef538cd68f637 100644
--- a/pkgs/tools/networking/swagger-codegen3/default.nix
+++ b/pkgs/tools/networking/swagger-codegen3/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper }:
+{ lib, stdenv, fetchurl, jre, makeWrapper, testers, swagger-codegen3 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.36";
+  version = "3.0.52";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "sha256-nJsjGTtTM9ZjsqZCKKZFrLPZ4jIp1F0Spi6RzeuCzak=";
+    sha256 = "sha256-bBiETNzgySrOSFUB6356jiwDhwQ34QrOf2KdP5lv3Yg=";
   };
 
   dontUnpack = true;
@@ -24,11 +24,17 @@ stdenv.mkDerivation rec {
       --add-flags "-jar $out/share/java/${jarfilename}"
   '';
 
+  passthru.tests.version = testers.testVersion {
+    package = swagger-codegen3;
+    command = "swagger-codegen3 version";
+  };
+
   meta = with lib; {
     description = "Allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an OpenAPI Spec";
     homepage = "https://github.com/swagger-api/swagger-codegen/tree/3.0.0";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = [ maintainers._1000101 ];
+    mainProgram = "swagger-codegen3";
   };
 }
diff --git a/pkgs/tools/networking/swaks/default.nix b/pkgs/tools/networking/swaks/default.nix
index da53407e3cc71..471cc74d9d7fc 100644
--- a/pkgs/tools/networking/swaks/default.nix
+++ b/pkgs/tools/networking/swaks/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "swaks";
-  version = "20201014.0";
+  version = "20240103.0";
 
   src = fetchurl {
     url = "https://www.jetmore.org/john/code/swaks/files/${pname}-${version}.tar.gz";
-    sha256 = "0c2sx4nrh4whsqzj6m5ay8d7yqan3aqgg436p8jb25bs91ykn2pv";
+    sha256 = "sha256-DlMbTRZAWIAucmaxT03BiXCZ0Jb5MIIN4vm16wjc2+g=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/tayga/default.nix b/pkgs/tools/networking/tayga/default.nix
index ef393f5bb1521..382b010515e8f 100644
--- a/pkgs/tools/networking/tayga/default.nix
+++ b/pkgs/tools/networking/tayga/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url= "http://www.litech.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "1700y121lhvpna49bjpssb7jq1abj9qw5wxgjn8gzp6jm4kpj7rb";
+    hash = "sha256-Kx95J6nS3P+Qla/zwnGSSwUsz9L6ypWIsndDGkTwAJw=";
   };
 
   passthru.tests.tayga = nixosTests.tayga;
diff --git a/pkgs/tools/networking/tcpdump/default.nix b/pkgs/tools/networking/tcpdump/default.nix
index 8b6db1044b64c..996466901201d 100644
--- a/pkgs/tools/networking/tcpdump/default.nix
+++ b/pkgs/tools/networking/tcpdump/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libpcap, perl }:
+{ lib, stdenv, fetchurl, libpcap, pkg-config, perl }:
 
 stdenv.mkDerivation rec {
   pname = "tcpdump";
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
     patchShebangs tests
   '';
 
+  nativeBuildInputs = lib.optional (stdenv.hostPlatform.isStatic) [ pkg-config ];
+
   nativeCheckInputs = [ perl ];
 
   buildInputs = [ libpcap ];
diff --git a/pkgs/tools/networking/telepresence2/default.nix b/pkgs/tools/networking/telepresence2/default.nix
index 60d74926fe9e3..49f44f52bc5f2 100644
--- a/pkgs/tools/networking/telepresence2/default.nix
+++ b/pkgs/tools/networking/telepresence2/default.nix
@@ -27,13 +27,13 @@ let
 in
 buildGoModule rec {
   pname = "telepresence2";
-  version = "2.15.1";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "telepresenceio";
     repo = "telepresence";
     rev = "v${version}";
-    hash = "sha256-67a5e7Lun/mlRwRoD6eomQpgUXqzAUx8IS7Mv86j6Gw=";
+    hash = "sha256-wmoOBoMjPCNJGg86Cl2V4izZQDiZjNzwErvWMYY1MGk=";
   };
 
   propagatedBuildInputs = [
@@ -47,7 +47,7 @@ buildGoModule rec {
     export CGO_ENABLED=0
   '';
 
-  vendorHash = "sha256-/13OkcLJI/q14tyFsynL5ZAIITH1w9XWpzRqZoJJesE=";
+  vendorHash = "sha256-rTlMd56iBSBLTRYJlKHWmYyyeBtNk2WQ3hrPJl9dMYI=";
 
   ldflags = [
     "-s" "-w" "-X=github.com/telepresenceio/telepresence/v2/pkg/version.Version=${src.rev}"
diff --git a/pkgs/tools/networking/termscp/Cargo.lock.patch b/pkgs/tools/networking/termscp/Cargo.lock.patch
new file mode 100644
index 0000000000000..76b2d996e25e0
--- /dev/null
+++ b/pkgs/tools/networking/termscp/Cargo.lock.patch
@@ -0,0 +1,13 @@
+diff --git i/Cargo.lock w/Cargo.lock
+index 5cbb602..47046b8 100644
+--- i/Cargo.lock
++++ w/Cargo.lock
+@@ -2949,7 +2949,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "termscp"
+-version = "0.12.2"
++version = "0.12.3"
+ dependencies = [
+  "argh",
+  "bitflags 2.3.3",
diff --git a/pkgs/tools/networking/termscp/default.nix b/pkgs/tools/networking/termscp/default.nix
index a36066ea7d2b8..e7fef14cec59f 100644
--- a/pkgs/tools/networking/termscp/default.nix
+++ b/pkgs/tools/networking/termscp/default.nix
@@ -23,7 +23,11 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-+5s5PskSHZKv1deti5r986qXg8J9APuVXY+Lvq3ki0w=";
   };
 
-  cargoHash = "sha256-0go6ZTqhPUwnnE+VIQrbtKm90AWaYsYT/25QrWLMFbU=";
+  cargoPatches = [
+    ./Cargo.lock.patch
+  ];
+
+  cargoHash = "sha256-2RmYxtjJm70qbiGl8YHXgebtvNsQvBdgkNDm8td9oNk=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/networking/tgt/default.nix b/pkgs/tools/networking/tgt/default.nix
index e47478b9206b9..734bf10790f04 100644
--- a/pkgs/tools/networking/tgt/default.nix
+++ b/pkgs/tools/networking/tgt/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tgt";
-  version = "1.0.87";
+  version = "1.0.90";
 
   src = fetchFromGitHub {
     owner = "fujita";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nDYNXQJqCtwlm4HTPTMuUbn6FA8JRYEqxbYUAev2R3o=";
+    sha256 = "sha256-C1xrsL7+S+TyMWULVuw7+ZV5hxfhXorScfqndomefRw=";
   };
 
   nativeBuildInputs = [ libxslt docbook_xsl makeWrapper ];
diff --git a/pkgs/tools/networking/tinyproxy/default.nix b/pkgs/tools/networking/tinyproxy/default.nix
index 8778b90b2b026..855c559448a21 100644
--- a/pkgs/tools/networking/tinyproxy/default.nix
+++ b/pkgs/tools/networking/tinyproxy/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = [ maintainers.carlosdagos ];
+    mainProgram = "tinyproxy";
   };
 }
diff --git a/pkgs/tools/networking/tinyssh/default.nix b/pkgs/tools/networking/tinyssh/default.nix
index a6f7b77be91f5..47c9ace513e83 100644
--- a/pkgs/tools/networking/tinyssh/default.nix
+++ b/pkgs/tools/networking/tinyssh/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tinyssh";
-  version = "20230101";
+  version = "20240101";
 
   src = fetchFromGitHub {
     owner = "janmojzis";
     repo = "tinyssh";
     rev = "refs/tags/${version}";
-    hash = "sha256-yEqPrLp14AF0L1QLoIcBhTphmd6qVzOB9EVW0Miy8yM=";
+    hash = "sha256-wO0fGr+pU+Y5YCZMRGNOZ6pJeCUIc64TzmRAaQCnBxk=";
   };
 
   preConfigure = ''
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
     echo /share/man > conf-man
   '';
 
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration";
+
   DESTDIR = placeholder "out";
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/tracebox/default.nix b/pkgs/tools/networking/tracebox/default.nix
index 33bb443e3710a..dce1fc5320469 100644
--- a/pkgs/tools/networking/tracebox/default.nix
+++ b/pkgs/tools/networking/tracebox/default.nix
@@ -37,8 +37,11 @@ stdenv.mkDerivation rec {
     "--with-libpcap=yes"
   ];
 
-  PCAPLIB="-lpcap";
-  LUA_LIB="-llua";
+  env = {
+    CXXFLAGS = "-std=c++14";
+    LUA_LIB = "-llua";
+    PCAPLIB = "-lpcap";
+  };
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/tools/networking/traceroute/default.nix b/pkgs/tools/networking/traceroute/default.nix
index c0171ea5880d9..90e53b184a56c 100644
--- a/pkgs/tools/networking/traceroute/default.nix
+++ b/pkgs/tools/networking/traceroute/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "traceroute";
-  version = "2.1.3";
+  version = "2.1.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/traceroute/${pname}-${version}.tar.gz";
-    sha256 = "sha256-BevHq6KKkQD5u65Uzuy/dcgsz0a9/Oi11kgGRZp+BBI=";
+    sha256 = "sha256-nGwmDZbqq1HjzkYbCoT+hxI+vG3WyaWfq4A/lbNahZ4=";
   };
 
   makeFlags = [
diff --git a/pkgs/tools/networking/tridactyl-native/default.nix b/pkgs/tools/networking/tridactyl-native/default.nix
deleted file mode 100644
index 91043caa43544..0000000000000
--- a/pkgs/tools/networking/tridactyl-native/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, nimPackages, fetchFromGitHub }:
-
-nimPackages.buildNimPackage rec {
-  pname = "tridactyl-native";
-  version = "0.3.7";
-
-  src = fetchFromGitHub {
-    owner = "tridactyl";
-    repo = "native_messenger";
-    rev = "62f19dba573b924703829847feb1bfee68885514";
-    sha256 = "sha256-YGDVcfFcI9cRCCZ4BrO5xTuI9mrGq1lfbEITB7o3vQQ=";
-  };
-  buildInputs = with nimPackages; [ tempfile ];
-
-  installPhase = ''
-    mkdir -p "$out/lib/mozilla/native-messaging-hosts"
-    sed -i -e "s|REPLACE_ME_WITH_SED|$out/bin/native_main|" "tridactyl.json"
-    cp tridactyl.json "$out/lib/mozilla/native-messaging-hosts/"
-  '';
-
-  meta = with lib; {
-    description =
-      "Native messenger for Tridactyl, a vim-like Firefox webextension";
-    homepage = "https://github.com/tridactyl/native_messenger";
-    license = licenses.bsd2;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ timokau dit7ya ];
-  };
-}
diff --git a/pkgs/tools/networking/trippy/default.nix b/pkgs/tools/networking/trippy/default.nix
index 9b88ee4b799d1..933150aebb9fe 100644
--- a/pkgs/tools/networking/trippy/default.nix
+++ b/pkgs/tools/networking/trippy/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "trippy";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "fujiapple852";
     repo = "trippy";
     rev = version;
-    hash = "sha256-2bh4wNP8sQcojjjbx5DQctlkwCTYcPdSkpW4OCOyp9k=";
+    hash = "sha256-Q5WPpCm1RNLlNX8G1U160O2wJz+y+KMScApjx6gIBCg=";
   };
 
-  cargoHash = "sha256-C8SUceX9RwUyiCknmuRfBqG0vjesS54bZQHwi7krwKo=";
+  cargoHash = "sha256-brvfAZZ3L0loZQowcRfkS7o7ZYQB9hr5o1rgMSWaljU=";
 
   meta = with lib; {
     description = "A network diagnostic tool";
diff --git a/pkgs/tools/networking/trurl/default.nix b/pkgs/tools/networking/trurl/default.nix
index 3b51398732092..50b70e3f574b3 100644
--- a/pkgs/tools/networking/trurl/default.nix
+++ b/pkgs/tools/networking/trurl/default.nix
@@ -2,15 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "trurl";
-  version = "0.8";
+  version = "0.9";
 
   src = fetchFromGitHub {
     owner = "curl";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-KHJMxzHqHW8WbeD6jxyuzZhuHc5x4B7fP/rYAK687ac=";
+    hash = "sha256-R/7Saea84iqUICAAQz9zcfDLDud4uFedY2752xyg+oE=";
   };
 
+  # The version number was forgotten to be updated for the release,
+  # so do it manually in the meantime.
+  # See https://github.com/curl/trurl/discussions/244#discussioncomment-7436369
+  postPatch = ''
+    substituteInPlace version.h --replace 0.8 0.9
+  '';
+
   outputs = [ "out" "dev" "man" ];
   separateDebugInfo = stdenv.isLinux;
 
diff --git a/pkgs/tools/networking/tun2socks/default.nix b/pkgs/tools/networking/tun2socks/default.nix
index a1336a257fcb7..37019a38b348b 100644
--- a/pkgs/tools/networking/tun2socks/default.nix
+++ b/pkgs/tools/networking/tun2socks/default.nix
@@ -5,19 +5,19 @@
 
 buildGoModule rec {
   pname = "tun2socks";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchFromGitHub {
     owner = "xjasonlyu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-qRjVZF15CjFohv9PQO0bLAjS8ip//S7yncXOn9oS2XM=";
+    sha256 = "sha256-siAengVJXusQ5o9cTaADeRn5eW4IoCHkMMf6Bx8iWws=";
   };
 
   vendorHash = "sha256-zeiOcn33PnyoseYb0wynkn7MfGp3rHEYBStY98C6aR8=";
 
   ldflags = [
-    "-w" "-s" "-buildid="
+    "-w" "-s"
     "-X github.com/xjasonlyu/tun2socks/v2/internal/version.Version=v${version}"
     "-X github.com/xjasonlyu/tun2socks/v2/internal/version.GitCommit=v${version}"
   ];
diff --git a/pkgs/tools/networking/tunwg/default.nix b/pkgs/tools/networking/tunwg/default.nix
index bab71aa523bc0..dfcbbff907b72 100644
--- a/pkgs/tools/networking/tunwg/default.nix
+++ b/pkgs/tools/networking/tunwg/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "tunwg";
-  version = "23.07.15+3213668";
+  version = "24.01.15+9f04d73";
 
   src = fetchFromGitHub {
     owner = "ntnj";
     repo = "tunwg";
     rev = "v${version}";
-    hash = "sha256-FghsfL3GW8jWBICJWXsqiFZPbDhIKl2nY8RsMH6ILTw=";
+    hash = "sha256-M7iMl80uxw0hKg4sK8Tv6U5+nMOK8eTfb9SGn+U2+8E=";
   };
 
-  vendorHash = "sha256-pzUWhKcht9vodBiZGe9RU+tm0c1/slBGeIrKfZlIDdk=";
+  vendorHash = "sha256-VlH41hOWC5QBCYZxiKCUZRmw2vHRbbPyzToRMU6kDO8=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index 1f135aecd851d..d2e657e4e13f6 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchurl
+, fetchpatch
 , openssl
 , nettle
 , expat
@@ -40,24 +41,28 @@
 # enable support for python plugins in unbound: note this is distinct from pyunbound
 # see https://unbound.docs.nlnetlabs.nl/en/latest/developer/python-modules.html
 , withPythonModule ? false
+, withLto ? !stdenv.hostPlatform.isStatic && !stdenv.hostPlatform.isMinGW
+, withMakeWrapper ? !stdenv.hostPlatform.isMinGW
 , libnghttp2
 
 # for passthru.tests
 , gnutls
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "unbound";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchurl {
-    url = "https://nlnetlabs.nl/downloads/unbound/unbound-${version}.tar.gz";
-    hash = "sha256-PalUkKhc/2Qg8m+uC4Skn1ES3xvxt/w0+HJPAggstxI=";
+    url = "https://nlnetlabs.nl/downloads/unbound/unbound-${finalAttrs.version}.tar.gz";
+    hash = "sha256-qXUyRohUxhwt5IykFw3oVP07yVyAQ7sM+w/iZgWWZiQ=";
   };
 
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
-  nativeBuildInputs = [ makeWrapper pkg-config ]
+  nativeBuildInputs =
+    lib.optionals withMakeWrapper [ makeWrapper ]
+    ++ [ pkg-config ]
     ++ lib.optionals withPythonModule [ swig ];
 
   buildInputs = [ openssl nettle expat libevent ]
@@ -77,7 +82,7 @@ stdenv.mkDerivation rec {
     "--with-rootkey-file=${dns-root-data}/root.key"
     "--enable-pie"
     "--enable-relro-now"
-  ] ++ lib.optionals stdenv.hostPlatform.isStatic [
+  ] ++ lib.optionals (!withLto) [
     "--disable-flto"
   ] ++ lib.optionals withSystemd [
     "--enable-systemd"
@@ -123,9 +128,10 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     make unbound-event-install
+  '' + lib.optionalString withMakeWrapper ''
     wrapProgram $out/bin/unbound-control-setup \
       --prefix PATH : ${lib.makeBinPath [ openssl ]}
-  '' + lib.optionalString withPythonModule ''
+  '' + lib.optionalString (withMakeWrapper && withPythonModule) ''
     wrapProgram $out/bin/unbound \
       --prefix PYTHONPATH : "$out/${python.sitePackages}" \
       --argv0 $out/bin/unbound
@@ -147,7 +153,7 @@ stdenv.mkDerivation rec {
   + ''substituteInPlace "$lib/lib/libunbound.la" ''
   + lib.concatMapStrings
     (pkg: lib.optionalString (pkg ? dev) " --replace '-L${pkg.dev}/lib' '-L${pkg.out}/lib' --replace '-R${pkg.dev}/lib' '-R${pkg.out}/lib'")
-    (builtins.filter (p: p != null) buildInputs);
+    (builtins.filter (p: p != null) finalAttrs.buildInputs);
 
   passthru.tests = {
     inherit gnutls;
@@ -159,7 +165,7 @@ stdenv.mkDerivation rec {
     description = "Validating, recursive, and caching DNS resolver";
     license = licenses.bsd3;
     homepage = "https://www.unbound.net";
-    maintainers = with maintainers; [ ajs124 ];
-    platforms = platforms.unix;
+    maintainers = lib.teams.helsinki-systems.members;
+    platforms = platforms.unix ++ platforms.windows;
   };
-}
+})
diff --git a/pkgs/tools/networking/uqmi/default.nix b/pkgs/tools/networking/uqmi/default.nix
index 31c004986355f..83500191b71e6 100644
--- a/pkgs/tools/networking/uqmi/default.nix
+++ b/pkgs/tools/networking/uqmi/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "uqmi";
-  version = "unstable-2019-06-27";
+  version = "unstable-2024-01-16";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/uqmi.git";
-    rev = "1965c713937495a5cb029165c16acdb6572c3f87";
-    sha256 = "1gn8sdcl4lwfs3lwabmnjbvdhhk1l42bwbajwds7j4936fpbklx0";
+    rev = "c3488b831ce6285c8107704156b9b8ed7d59deb3";
+    hash = "sha256-O5CeLk0WYuBs3l5xBUk9kXDRMzFvYSRoqP28KJ5Ztos=";
   };
 
   postPatch = ''
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
   env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12") [
     # Needed with GCC 12 but breaks on darwin (with clang) or older gcc
     "-Wno-error=dangling-pointer"
+    "-Wno-error=maybe-uninitialized"
   ]);
 
   meta = with lib; {
@@ -28,6 +29,6 @@ stdenv.mkDerivation {
     homepage = "https://git.openwrt.org/?p=project/uqmi.git;a=summary";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
-    maintainers = with maintainers; [ fpletz ];
+    maintainers = with maintainers; [ fpletz mkg20001 ];
   };
 }
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index 885304d9fdb10..a17b4b88da3d6 100644
--- a/pkgs/tools/networking/urlwatch/default.nix
+++ b/pkgs/tools/networking/urlwatch/default.nix
@@ -23,9 +23,9 @@ python3Packages.buildPythonApplication rec {
     markdown2
     matrix-client
     minidb
+    playwright
     pushbullet-py
     pycodestyle
-    pyppeteer
     pyyaml
     requests
   ];
diff --git a/pkgs/tools/networking/uwimap/clang-fix.patch b/pkgs/tools/networking/uwimap/clang-fix.patch
new file mode 100644
index 0000000000000..7c10a212922f3
--- /dev/null
+++ b/pkgs/tools/networking/uwimap/clang-fix.patch
@@ -0,0 +1,306 @@
+diff -ur a/src/c-client/netmsg.c b/src/c-client/netmsg.c
+--- a/src/c-client/netmsg.c	2011-07-22 20:20:18.000000000 -0400
++++ b/src/c-client/netmsg.c	2023-10-17 22:23:29.026638315 -0400
+@@ -29,6 +29,7 @@
+ 
+ #include <stdio.h>
+ #include <errno.h>
++#include <time.h>
+ extern int errno;		/* just in case */
+ #include "c-client.h"
+ #include "netmsg.h"
+diff -ur a/src/c-client/nntp.c b/src/c-client/nntp.c
+--- a/src/c-client/nntp.c	2011-07-22 20:20:18.000000000 -0400
++++ b/src/c-client/nntp.c	2023-10-17 22:23:05.195194961 -0400
+@@ -29,6 +29,7 @@
+ 
+ #include <ctype.h>
+ #include <stdio.h>
++#include <time.h>
+ #include "c-client.h"
+ #include "newsrc.h"
+ #include "netmsg.h"
+diff -ur a/src/dmail/dmail.c b/src/dmail/dmail.c
+--- a/src/dmail/dmail.c	2011-07-22 20:19:57.000000000 -0400
++++ b/src/dmail/dmail.c	2023-10-17 22:44:23.049223758 -0400
+@@ -27,6 +27,7 @@
+  */
+ 
+ #include <stdio.h>
++#include <ctype.h>
+ #include <pwd.h>
+ #include <errno.h>
+ extern int errno;		/* just in case */
+diff -ur a/src/mlock/mlock.c b/src/mlock/mlock.c
+--- a/src/mlock/mlock.c	2011-07-22 20:19:57.000000000 -0400
++++ b/src/mlock/mlock.c	2023-10-17 22:44:44.533985203 -0400
+@@ -31,6 +31,9 @@
+ #include <stdio.h>
+ #include <sysexits.h>
+ #include <syslog.h>
++#include <ctype.h>
++#include <time.h>
++#include <unistd.h>
+ #include <grp.h>
+ #include <sys/types.h>
+ #include <sys/file.h>
+diff -ur a/src/osdep/unix/dummy.c b/src/osdep/unix/dummy.c
+--- a/src/osdep/unix/dummy.c	2011-07-22 20:20:10.000000000 -0400
++++ b/src/osdep/unix/dummy.c	2023-10-17 22:23:17.123963204 -0400
+@@ -30,6 +30,7 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
++#include <time.h>
+ extern int errno;		/* just in case */
+ #include "mail.h"
+ #include "osdep.h"
+diff -ur a/src/osdep/unix/mbx.c b/src/osdep/unix/mbx.c
+--- a/src/osdep/unix/mbx.c	2011-07-22 20:20:11.000000000 -0400
++++ b/src/osdep/unix/mbx.c	2023-10-17 22:25:13.189158845 -0400
+@@ -41,6 +41,7 @@
+ #include "mail.h"
+ #include "osdep.h"
+ #include <pwd.h>
++#include <utime.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+ #include "misc.h"
+diff -ur a/src/osdep/unix/mh.c b/src/osdep/unix/mh.c
+--- a/src/osdep/unix/mh.c	2011-07-22 20:20:09.000000000 -0400
++++ b/src/osdep/unix/mh.c	2023-10-17 22:31:50.240740603 -0400
+@@ -30,6 +30,7 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
++#include <utime.h>
+ extern int errno;		/* just in case */
+ #include "mail.h"
+ #include "osdep.h"
+@@ -103,8 +104,8 @@
+ 	      long options);
+ long mh_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data);
+ 
+-int mh_select (struct direct *name);
+-int mh_numsort (const void *d1,const void *d2);
++int mh_select (const struct direct *name);
++int mh_numsort (const struct dirent **d1,const struct dirent **d2);
+ char *mh_file (char *dst,char *name);
+ long mh_canonicalize (char *pattern,char *ref,char *pat);
+ void mh_setdate (char *file,MESSAGECACHE *elt);
+@@ -1194,7 +1195,7 @@
+  * Returns: T to use file name, NIL to skip it
+  */
+ 
+-int mh_select (struct direct *name)
++int mh_select (const struct direct *name)
+ {
+   char c;
+   char *s = name->d_name;
+@@ -1209,10 +1210,10 @@
+  * Returns: negative if d1 < d2, 0 if d1 == d2, postive if d1 > d2
+  */
+ 
+-int mh_numsort (const void *d1,const void *d2)
++int mh_numsort (const struct dirent **d1,const struct dirent **d2)
+ {
+-  return atoi ((*(struct direct **) d1)->d_name) -
+-    atoi ((*(struct direct **) d2)->d_name);
++  return atoi ((*d1)->d_name) -
++    atoi ((*d2)->d_name);
+ }
+ 
+ 
+diff -ur a/src/osdep/unix/mix.c b/src/osdep/unix/mix.c
+--- a/src/osdep/unix/mix.c	2011-07-22 20:20:10.000000000 -0400
++++ b/src/osdep/unix/mix.c	2023-10-17 22:35:22.368131654 -0400
+@@ -125,7 +125,7 @@
+ long mix_create (MAILSTREAM *stream,char *mailbox);
+ long mix_delete (MAILSTREAM *stream,char *mailbox);
+ long mix_rename (MAILSTREAM *stream,char *old,char *newname);
+-int mix_rselect (struct direct *name);
++int mix_rselect (const struct direct *name);
+ MAILSTREAM *mix_open (MAILSTREAM *stream);
+ void mix_close (MAILSTREAM *stream,long options);
+ void mix_abort (MAILSTREAM *stream);
+@@ -140,8 +140,8 @@
+ long mix_ping (MAILSTREAM *stream);
+ void mix_check (MAILSTREAM *stream);
+ long mix_expunge (MAILSTREAM *stream,char *sequence,long options);
+-int mix_select (struct direct *name);
+-int mix_msgfsort (const void *d1,const void *d2);
++int mix_select (const struct direct *name);
++int mix_msgfsort (const struct dirent **d1,const struct dirent **d2);
+ long mix_addset (SEARCHSET **set,unsigned long start,unsigned long size);
+ long mix_burp (MAILSTREAM *stream,MIXBURP *burp,unsigned long *reclaimed);
+ long mix_burp_check (SEARCHSET *set,size_t size,char *file);
+@@ -587,7 +587,7 @@
+  * Returns: T if mix file name, NIL otherwise
+  */
+ 
+-int mix_rselect (struct direct *name)
++int mix_rselect (const struct direct *name)
+ {
+   return mix_dirfmttest (name->d_name);
+ }
+@@ -1146,7 +1146,7 @@
+  * ".mix" with no suffix was used by experimental versions
+  */
+ 
+-int mix_select (struct direct *name)
++int mix_select (const struct direct *name)
+ {
+   char c,*s;
+ 				/* make sure name has prefix */
+@@ -1165,10 +1165,10 @@
+  * Returns: -1 if d1 < d2, 0 if d1 == d2, 1 d1 > d2
+  */
+ 
+-int mix_msgfsort (const void *d1,const void *d2)
++int mix_msgfsort (const struct dirent **d1,const struct dirent **d2)
+ {
+-  char *n1 = (*(struct direct **) d1)->d_name + sizeof (MIXNAME) - 1;
+-  char *n2 = (*(struct direct **) d2)->d_name + sizeof (MIXNAME) - 1;
++  char *n1 = (*d1)->d_name + sizeof (MIXNAME) - 1;
++  char *n2 = (*d2)->d_name + sizeof (MIXNAME) - 1;
+   return compare_ulong (*n1 ? strtoul (n1,NIL,16) : 0,
+ 			*n2 ? strtoul (n2,NIL,16) : 0);
+ }
+diff -ur a/src/osdep/unix/mmdf.c b/src/osdep/unix/mmdf.c
+--- a/src/osdep/unix/mmdf.c	2011-07-22 20:20:10.000000000 -0400
++++ b/src/osdep/unix/mmdf.c	2023-10-17 22:25:37.095313031 -0400
+@@ -33,6 +33,7 @@
+ #include "mail.h"
+ #include "osdep.h"
+ #include <time.h>
++#include <utime.h>
+ #include <sys/stat.h>
+ #include "pseudo.h"
+ #include "fdstring.h"
+diff -ur a/src/osdep/unix/mtx.c b/src/osdep/unix/mtx.c
+--- a/src/osdep/unix/mtx.c	2011-07-22 20:20:10.000000000 -0400
++++ b/src/osdep/unix/mtx.c	2023-10-17 22:26:48.973160400 -0400
+@@ -37,6 +37,7 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
++#include <utime.h>
+ extern int errno;		/* just in case */
+ #include "mail.h"
+ #include "osdep.h"
+diff -ur a/src/osdep/unix/mx.c b/src/osdep/unix/mx.c
+--- a/src/osdep/unix/mx.c	2011-07-22 20:20:09.000000000 -0400
++++ b/src/osdep/unix/mx.c	2023-10-17 22:33:25.621907970 -0400
+@@ -30,6 +30,7 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
++#include <utime.h>
+ extern int errno;		/* just in case */
+ #include "mail.h"
+ #include "osdep.h"
+@@ -98,8 +99,8 @@
+ long mx_append_msg (MAILSTREAM *stream,char *flags,MESSAGECACHE *elt,
+ 		    STRING *st,SEARCHSET *set);
+ 
+-int mx_select (struct direct *name);
+-int mx_numsort (const void *d1,const void *d2);
++int mx_select (const struct direct *name);
++int mx_numsort (const struct dirent **d1,const struct dirent **d2);
+ char *mx_file (char *dst,char *name);
+ long mx_lockindex (MAILSTREAM *stream);
+ void mx_unlockindex (MAILSTREAM *stream);
+@@ -1110,7 +1111,7 @@
+  * Returns: T to use file name, NIL to skip it
+  */
+ 
+-int mx_select (struct direct *name)
++int mx_select (const struct direct *name)
+ {
+   char c;
+   char *s = name->d_name;
+@@ -1125,10 +1126,10 @@
+  * Returns: negative if d1 < d2, 0 if d1 == d2, postive if d1 > d2
+  */
+ 
+-int mx_numsort (const void *d1,const void *d2)
++int mx_numsort (const struct dirent **d1,const struct dirent **d2)
+ {
+-  return atoi ((*(struct direct **) d1)->d_name) -
+-    atoi ((*(struct direct **) d2)->d_name);
++  return atoi ((*d1)->d_name) -
++    atoi ((*d2)->d_name);
+ }
+ 
+ 
+diff -ur a/src/osdep/unix/news.c b/src/osdep/unix/news.c
+--- a/src/osdep/unix/news.c	2011-07-22 20:20:10.000000000 -0400
++++ b/src/osdep/unix/news.c	2023-10-17 22:29:32.461013229 -0400
+@@ -76,8 +76,8 @@
+ long news_delete (MAILSTREAM *stream,char *mailbox);
+ long news_rename (MAILSTREAM *stream,char *old,char *newname);
+ MAILSTREAM *news_open (MAILSTREAM *stream);
+-int news_select (struct direct *name);
+-int news_numsort (const void *d1,const void *d2);
++int news_select (const struct direct *name);
++int news_numsort (const struct dirent **d1,const struct dirent **d2);
+ void news_close (MAILSTREAM *stream,long options);
+ void news_fast (MAILSTREAM *stream,char *sequence,long flags);
+ void news_flags (MAILSTREAM *stream,char *sequence,long flags);
+@@ -402,7 +402,7 @@
+  * Returns: T to use file name, NIL to skip it
+  */
+ 
+-int news_select (struct direct *name)
++int news_select (const struct direct *name)
+ {
+   char c;
+   char *s = name->d_name;
+@@ -417,10 +417,10 @@
+  * Returns: negative if d1 < d2, 0 if d1 == d2, postive if d1 > d2
+  */
+ 
+-int news_numsort (const void *d1,const void *d2)
++int news_numsort (const struct dirent **d1,const struct dirent **d2)
+ {
+-  return atoi ((*(struct direct **) d1)->d_name) -
+-    atoi ((*(struct direct **) d2)->d_name);
++  return atoi ((*d1)->d_name) -
++    atoi ((*d2)->d_name);
+ }
+ 
+ 
+diff -ur a/src/osdep/unix/tenex.c b/src/osdep/unix/tenex.c
+--- a/src/osdep/unix/tenex.c	2011-07-22 20:20:10.000000000 -0400
++++ b/src/osdep/unix/tenex.c	2023-10-17 22:26:15.349497223 -0400
+@@ -42,6 +42,8 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
++#include <time.h>
++#include <utime.h>
+ extern int errno;		/* just in case */
+ #include "mail.h"
+ #include "osdep.h"
+diff -ur a/src/osdep/unix/unix.c b/src/osdep/unix/unix.c
+--- a/src/osdep/unix/unix.c	2011-07-22 20:20:10.000000000 -0400
++++ b/src/osdep/unix/unix.c	2023-10-17 22:24:46.358134773 -0400
+@@ -45,6 +45,7 @@
+ #include "mail.h"
+ #include "osdep.h"
+ #include <time.h>
++#include <utime.h>
+ #include <sys/stat.h>
+ #include "unix.h"
+ #include "pseudo.h"
+diff -ur a/src/tmail/tmail.c b/src/tmail/tmail.c
+--- a/src/tmail/tmail.c	2011-07-22 20:19:58.000000000 -0400
++++ b/src/tmail/tmail.c	2023-10-17 22:36:32.723585260 -0400
+@@ -27,6 +27,7 @@
+  */
+ 
+ #include <stdio.h>
++#include <ctype.h>
+ #include <pwd.h>
+ #include <errno.h>
+ extern int errno;		/* just in case */
diff --git a/pkgs/tools/networking/uwimap/default.nix b/pkgs/tools/networking/uwimap/default.nix
index e9bfb368cc062..a39f0d4660fb4 100644
--- a/pkgs/tools/networking/uwimap/default.nix
+++ b/pkgs/tools/networking/uwimap/default.nix
@@ -25,10 +25,15 @@ stdenv.mkDerivation rec {
     (if stdenv.isDarwin then libkrb5 else pam)  # Matches the make target.
   ];
 
-  patches = [ (fetchpatch {
-    url = "https://salsa.debian.org/holmgren/uw-imap/raw/dcb42981201ea14c2d71c01ebb4a61691b6f68b3/debian/patches/1006_openssl1.1_autoverify.patch";
-    sha256 = "09xb58awvkhzmmjhrkqgijzgv7ia381ablf0y7i1rvhcqkb5wga7";
-  }) ];
+  patches = [
+    (fetchpatch {
+      url = "https://salsa.debian.org/holmgren/uw-imap/raw/dcb42981201ea14c2d71c01ebb4a61691b6f68b3/debian/patches/1006_openssl1.1_autoverify.patch";
+      sha256 = "09xb58awvkhzmmjhrkqgijzgv7ia381ablf0y7i1rvhcqkb5wga7";
+    })
+    # Required to build with newer versions of clang. Fixes call to undeclared functions errors
+    # and incompatible function pointer conversions.
+    ./clang-fix.patch
+  ];
 
   postPatch = ''
     sed -i src/osdep/unix/Makefile -e 's,/usr/local/ssl,${openssl.dev},'
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index cb0132a64ad2f..4d783fb47345f 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "v2ray-core";
-  version = "5.7.0";
+  version = "5.13.0";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    hash = "sha256-gdDV5Cd/DjEqSiOF7j5a8QLtdJiFeNCnHoA4XD+yiGA=";
+    hash = "sha256-x7LVBmfm9M0fGBvLTz5Bbf01h8IT1yDJyeO1csKfb3I=";
   };
 
   # `nix-update` doesn't support `vendorHash` yet.
   # https://github.com/Mic92/nix-update/pull/95
-  vendorHash = "sha256-uq0v14cRGmstJabrERsa+vFRX6Bg8+5CU6iV8swrL/I=";
+  vendorHash = "sha256-ZBvHu4BEmQi6PQwRHuVwx/6X4gBqlRR44OktKRBGcs4=";
 
-  ldflags = [ "-s" "-w" "-buildid=" ];
+  ldflags = [ "-s" "-w" ];
 
   subPackages = [ "main" ];
 
diff --git a/pkgs/tools/networking/v2raya/default.nix b/pkgs/tools/networking/v2raya/default.nix
index a2d539326e3cb..02f348a2df9a8 100644
--- a/pkgs/tools/networking/v2raya/default.nix
+++ b/pkgs/tools/networking/v2raya/default.nix
@@ -11,13 +11,13 @@
 }:
 let
   pname = "v2raya";
-  version = "2.0.5";
+  version = "2.2.4.3";
 
   src = fetchFromGitHub {
     owner = "v2rayA";
     repo = "v2rayA";
     rev = "v${version}";
-    hash = "sha256-oMH4FutgI5mLz2sxDdPFUyDd80xT32r51HEQYhhnvcU=";
+    hash = "sha256-6643sdKVHOHrGRocTm881GCHoON4tlrKcNfOFMHwnQY=";
     postFetch = "sed -i -e 's/npmmirror/yarnpkg/g' $out/gui/yarn.lock";
   };
   guiSrc = "${src}/gui";
@@ -30,17 +30,20 @@ let
 
     offlineCache = fetchYarnDeps {
       yarnLock = "${guiSrc}/yarn.lock";
-      sha256 = "sha256-hVtETKhG9kX/4a4uO/aQ9sN2eTF6aAYaKDSHJIa0eWQ=";
+      sha256 = "sha256-rZIcVLolTMdtN27W6gCw9uk9m4N5v9SZn2563+aN/gs=";
     };
 
     buildPhase = ''
-      export NODE_OPTIONS=--openssl-legacy-provider
+      runHook preBuild
       OUTPUT_DIR=$out yarn --offline build
+      runHook postBuild
     '';
 
     configurePhase = ''
+      runHook preConfigure
       cp -r $node_modules node_modules
       chmod +w node_modules
+      runHook postConfigure
     '';
 
     distPhase = "true";
@@ -59,7 +62,7 @@ buildGoModule {
   inherit pname version;
 
   src = "${src}/service";
-  vendorHash = "sha256-nI+nqftJybAGcHCTMVjYPuLHxqE/kyjUzkspnkzUi+g=";
+  vendorHash = "sha256-wwDv2ThHwtnUpAnQoc0Ms0mGC44jRvABcE4K5MrF8S4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/networking/v2raya/package.json b/pkgs/tools/networking/v2raya/package.json
index 55c1c4705660f..531c64b76311f 100644
--- a/pkgs/tools/networking/v2raya/package.json
+++ b/pkgs/tools/networking/v2raya/package.json
@@ -8,7 +8,11 @@
     "build": "vue-cli-service build",
     "lint": "vue-cli-service lint"
   },
+  "resolutions": {
+    "@achrinza/node-ipc": "^10.1.10"
+  },
   "dependencies": {
+    "@achrinza/node-ipc": "^10.1.10",
     "@mdi/font": "^5.8.55",
     "@nuintun/qrcode": "^3.3.0",
     "@vue/babel-preset-app": "^4.2.2",
diff --git a/pkgs/tools/networking/veilid/Cargo.lock b/pkgs/tools/networking/veilid/Cargo.lock
index d210e639c8808..fbd257e1d69b5 100644
--- a/pkgs/tools/networking/veilid/Cargo.lock
+++ b/pkgs/tools/networking/veilid/Cargo.lock
@@ -41,9 +41,9 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
 dependencies = [
  "getrandom",
  "once_cell",
@@ -52,30 +52,31 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
 dependencies = [
  "cfg-if 1.0.0",
  "getrandom",
  "once_cell",
  "version_check 0.9.4",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.5"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "allo-isolate"
-version = "0.1.19"
+version = "0.1.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c258c1a017ecaccfb34c8fa46ecbb2f5402584e31082c12b5caf0be82ac5ac44"
+checksum = "f56b7997817c178b853573e8bdfb6c3afe02810b43f17d766d6703560074b0c3"
 dependencies = [
  "atomic",
 ]
@@ -158,9 +159,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.5.0"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
+checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -172,15 +173,15 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
 dependencies = [
  "utf8parse",
 ]
@@ -196,9 +197,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle-wincon"
-version = "2.1.0"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
+checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
 dependencies = [
  "anstyle",
  "windows-sys 0.48.0",
@@ -288,21 +289,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
 dependencies = [
  "concurrent-queue",
- "event-listener",
+ "event-listener 2.5.3",
  "futures-core",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
+checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "async-task",
  "concurrent-queue",
- "fastrand",
- "futures-lite",
+ "fastrand 2.0.1",
+ "futures-lite 1.13.0",
  "slab",
 ]
 
@@ -314,10 +315,10 @@ checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
 dependencies = [
  "async-channel",
  "async-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
  "once_cell",
 ]
 
@@ -327,18 +328,38 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "cfg-if 1.0.0",
  "concurrent-queue",
- "futures-lite",
+ "futures-lite 1.13.0",
  "log",
  "parking",
- "polling",
- "rustix 0.37.23",
+ "polling 2.8.0",
+ "rustix 0.37.27",
+ "slab",
+ "socket2 0.4.10",
+ "waker-fn",
+]
+
+[[package]]
+name = "async-io"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997"
+dependencies = [
+ "async-lock 3.0.0",
+ "cfg-if 1.0.0",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.0.1",
+ "parking",
+ "polling 3.3.0",
+ "rustix 0.38.21",
  "slab",
- "socket2 0.4.9",
+ "tracing",
  "waker-fn",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -347,24 +368,52 @@ version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
 dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed"
+dependencies = [
+ "event-listener 3.0.1",
+ "event-listener-strategy",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-process"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
 dependencies = [
- "async-io",
- "async-lock",
- "autocfg",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
  "blocking",
  "cfg-if 1.0.0",
- "event-listener",
- "futures-lite",
- "rustix 0.37.23",
- "signal-hook",
+ "event-listener 3.0.1",
+ "futures-lite 1.13.0",
+ "rustix 0.38.21",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.2.0",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if 1.0.0",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.21",
+ "signal-hook-registry",
+ "slab",
  "windows-sys 0.48.0",
 ]
 
@@ -377,14 +426,14 @@ dependencies = [
  "async-attributes",
  "async-channel",
  "async-global-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "async-process",
  "crossbeam-utils",
  "futures-channel",
  "futures-core",
  "futures-io",
- "futures-lite",
+ "futures-lite 1.13.0",
  "gloo-timers",
  "kv-log-macro",
  "log",
@@ -398,48 +447,68 @@ dependencies = [
 
 [[package]]
 name = "async-std-resolver"
-version = "0.23.0"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0354a68a52265a3bde76005ddd2726624ef8624614f7f58871301de205a58a59"
+checksum = "0928198152da571a19145031360f34fc7569ef2dc387681565f330c811a5ba9b"
 dependencies = [
  "async-std",
  "async-trait",
  "futures-io",
  "futures-util",
  "pin-utils",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "trust-dns-resolver",
 ]
 
 [[package]]
+name = "async-stream"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
 name = "async-task"
-version = "4.4.0"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
+checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
 
 [[package]]
 name = "async-tls"
 version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfeefd0ca297cbbb3bd34fd6b228401c2a5177038257afd751bc29f0a2da4795"
+source = "git+https://github.com/async-rs/async-tls?rev=c58588a#c58588a276e6180f3ef99f4ec3bf9176c5f0f58c"
 dependencies = [
  "futures-core",
  "futures-io",
  "rustls",
  "rustls-pemfile",
- "webpki",
  "webpki-roots 0.22.6",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.73"
+version = "0.1.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -493,20 +562,19 @@ checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba"
 
 [[package]]
 name = "atomic-waker"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "attohttpc"
-version = "0.16.3"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdb8867f378f33f78a811a8eb9bf108ad99430d7aad43315dd9319c827ef6247"
+checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2"
 dependencies = [
  "http",
  "log",
  "url",
- "wildmatch",
 ]
 
 [[package]]
@@ -594,9 +662,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "base64ct"
@@ -635,9 +703,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "blake2"
@@ -650,16 +718,15 @@ dependencies = [
 
 [[package]]
 name = "blake3"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "199c42ab6972d92c9f8995f086273d25c42fc0f7b2a1fcefba465c1352d25ba5"
+checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87"
 dependencies = [
  "arrayref",
  "arrayvec",
  "cc",
  "cfg-if 1.0.0",
  "constant_time_eq",
- "digest 0.10.7",
 ]
 
 [[package]]
@@ -670,7 +737,7 @@ checksum = "e0b121a9fe0df916e362fb3271088d071159cdf11db0e4182d02152850756eff"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -715,17 +782,18 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
 
 [[package]]
 name = "blocking"
-version = "1.3.1"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
+checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
 dependencies = [
  "async-channel",
- "async-lock",
+ "async-lock 2.8.0",
  "async-task",
- "atomic-waker",
- "fastrand",
- "futures-lite",
- "log",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 1.13.0",
+ "piper",
+ "tracing",
 ]
 
 [[package]]
@@ -751,9 +819,9 @@ checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
@@ -763,9 +831,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "capnp"
-version = "0.18.1"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9eddbd729bd9742aa22d29e871a42ffea7f216a4ddbfdaf09ea88150ef2e7f76"
+checksum = "499cea1db22c19b7a823fa4876330700077b388cc7de2c5477028df00bcb4ae4"
 dependencies = [
  "embedded-io",
 ]
@@ -901,9 +969,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.3"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6"
+checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -911,9 +979,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
+checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663"
 dependencies = [
  "anstream",
  "anstyle",
@@ -924,21 +992,21 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.4.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "clipboard-win"
@@ -997,9 +1065,9 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
+checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -1025,26 +1093,27 @@ dependencies = [
 
 [[package]]
 name = "console-api"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2895653b4d9f1538a83970077cb01dfc77a4810524e51a110944688e916b18e"
+checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787"
 dependencies = [
- "prost",
+ "futures-core",
+ "prost 0.12.1",
  "prost-types",
- "tonic",
+ "tonic 0.10.2",
  "tracing-core",
 ]
 
 [[package]]
 name = "console-subscriber"
-version = "0.1.10"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4cf42660ac07fcebed809cfe561dd8730bcd35b075215e6479c516bcd0d11cb"
+checksum = "7481d4c57092cd1c19dd541b92bdce883de840df30aa5d03fd48a3935c01842e"
 dependencies = [
  "console-api",
  "crossbeam-channel",
  "crossbeam-utils",
- "futures",
+ "futures-task",
  "hdrhistogram",
  "humantime",
  "prost-types",
@@ -1053,7 +1122,7 @@ dependencies = [
  "thread_local",
  "tokio",
  "tokio-stream",
- "tonic",
+ "tonic 0.10.2",
  "tracing",
  "tracing-core",
  "tracing-subscriber",
@@ -1123,9 +1192,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
 dependencies = [
  "libc",
 ]
@@ -1205,6 +1274,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "ctor"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
+dependencies = [
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
 name = "ctrlc"
 version = "3.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1219,7 +1298,7 @@ name = "cursive"
 version = "0.20.0"
 source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.6",
  "async-std",
  "cfg-if 1.0.0",
  "crossbeam-channel",
@@ -1276,7 +1355,7 @@ name = "cursive_core"
 version = "0.3.7"
 source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.6",
  "ansi-parser",
  "async-std",
  "crossbeam-channel",
@@ -1308,9 +1387,9 @@ dependencies = [
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.1.0"
+version = "4.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622178105f911d937a42cdb140730ba4a3ed2becd8ae6ce39c7d28b5d75d4588"
+checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
 dependencies = [
  "cfg-if 1.0.0",
  "cpufeatures",
@@ -1325,13 +1404,13 @@ dependencies = [
 
 [[package]]
 name = "curve25519-dalek-derive"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1387,7 +1466,7 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1409,7 +1488,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core 0.20.3",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1419,10 +1498,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if 1.0.0",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.2",
  "lock_api",
  "once_cell",
- "parking_lot_core 0.9.8",
+ "parking_lot_core 0.9.9",
 ]
 
 [[package]]
@@ -1443,9 +1522,12 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+dependencies = [
+ "powerfmt",
+]
 
 [[package]]
 name = "derivative"
@@ -1507,15 +1589,15 @@ checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
 
 [[package]]
 name = "dyn-clone"
-version = "1.0.13"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
 
 [[package]]
 name = "ed25519"
-version = "2.2.2"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
 dependencies = [
  "pkcs8",
  "signature",
@@ -1531,7 +1613,7 @@ dependencies = [
  "ed25519",
  "rand_core",
  "serde",
- "sha2 0.10.7",
+ "sha2 0.10.8",
  "signature",
  "zeroize",
 ]
@@ -1557,14 +1639,14 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "enum-map"
-version = "2.6.3"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c188012f8542dee7b3996e44dd89461d64aa471b0a7c71a1ae2f595d259e96e5"
+checksum = "53337c2dbf26a3c31eccc73a37b10c1614e8d4ae99b6a50d553e8936423c1f16"
 dependencies = [
  "enum-map-derive",
 ]
@@ -1577,7 +1659,7 @@ checksum = "04d0b288e3bb1d861c4403c1774a6f7a798781dfc519b3647df2a3dd4ae95f25"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1603,9 +1685,9 @@ dependencies = [
 
 [[package]]
 name = "enumset"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e875f1719c16de097dee81ed675e2d9bb63096823ed3f0ca827b7dea3028bbbb"
+checksum = "226c0da7462c13fb57e5cc9e0dc8f0635e7d27f276a3a7fd30054647f669007d"
 dependencies = [
  "enumset_derive",
  "serde",
@@ -1620,7 +1702,7 @@ dependencies = [
  "darling 0.20.3",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1654,26 +1736,15 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.3"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
 dependencies = [
- "errno-dragonfly",
  "libc",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
 name = "error-code"
 version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1690,6 +1761,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+dependencies = [
+ "event-listener 3.0.1",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "eyre"
 version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1721,10 +1813,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
 name = "fdeflate"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
 dependencies = [
  "simd-adler32",
 ]
@@ -1741,15 +1839,15 @@ dependencies = [
 
 [[package]]
 name = "fiat-crypto"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d"
+checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7"
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1782,7 +1880,7 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "nanorand",
- "spin 0.9.8",
+ "spin",
 ]
 
 [[package]]
@@ -1827,15 +1925,15 @@ version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47"
 dependencies = [
- "rustix 0.38.13",
+ "rustix 0.38.21",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1848,9 +1946,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1858,15 +1956,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1875,9 +1973,9 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
 
 [[package]]
 name = "futures-lite"
@@ -1885,7 +1983,7 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
  "futures-core",
  "futures-io",
  "memchr",
@@ -1895,27 +1993,37 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-lite"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
 
 [[package]]
 name = "futures-timer"
@@ -1929,9 +2037,9 @@ dependencies = [
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2123,16 +2231,16 @@ version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.7",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.6",
  "allocator-api2",
 ]
 
@@ -2142,7 +2250,7 @@ version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
 dependencies = [
- "hashbrown 0.14.0",
+ "hashbrown 0.14.2",
 ]
 
 [[package]]
@@ -2187,9 +2295,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "hex"
@@ -2294,7 +2402,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "tokio",
  "tower-service",
  "tracing",
@@ -2315,16 +2423,16 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows 0.48.0",
+ "windows-core",
 ]
 
 [[package]]
@@ -2401,12 +2509,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.2",
 ]
 
 [[package]]
@@ -2433,7 +2541,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.3",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -2444,7 +2552,7 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "widestring",
  "windows-sys 0.48.0",
  "winreg",
@@ -2452,9 +2560,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "itertools"
@@ -2466,6 +2574,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
 version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2501,9 +2618,9 @@ checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.65"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2553,18 +2670,18 @@ dependencies = [
 
 [[package]]
 name = "keyvaluedb"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8833bc9e937f44bac0e8d129b3ccda60dee6ca5fa2757d7e05a5e04503df02fb"
+checksum = "9bdcaabe14fa83eaae1fb92480f619c5a8b413580723153da0334848eb2dff24"
 dependencies = [
  "smallvec",
 ]
 
 [[package]]
 name = "keyvaluedb-memorydb"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14fdc324ae658318df46f62e64159c5662b94bcc99f9b6403d47d20ca7768b21"
+checksum = "62802173041ed97845bc20f8cf6817e445fe537ed879ddf43fb96166829ec8ff"
 dependencies = [
  "keyvaluedb",
  "parking_lot 0.12.1",
@@ -2572,9 +2689,9 @@ dependencies = [
 
 [[package]]
 name = "keyvaluedb-sqlite"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6bad95a1ad34c10ad4823fae1cb655be7fec022de642c95fbfafad360ba2f54"
+checksum = "144f474a27a7dadc5c179c08ef9a4662acaca8047f4e5c30d5b77582243c7538"
 dependencies = [
  "hex",
  "keyvaluedb",
@@ -2585,11 +2702,11 @@ dependencies = [
 
 [[package]]
 name = "keyvaluedb-web"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26cc6bb420f98cdd63a72c95eaa06947cdbd04e60a8d296b87f466196bacf068"
+checksum = "d93d243dfa1643389f8b981ddc07b2a7c533f0fae38b3f5831b004b2cc7f6353"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "flume",
  "futures",
  "js-sys",
@@ -2625,9 +2742,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+
+[[package]]
+name = "libc-print"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17f111e2175c779daaf5e89fe3a3b0776b0adec218bc1159c56e4d3f58032f5"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "libloading"
@@ -2640,6 +2766,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
 name = "libsqlite3-sys"
 version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2676,15 +2813,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.7"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -2740,15 +2877,15 @@ dependencies = [
 
 [[package]]
 name = "matchit"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef"
+checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -2789,9 +2926,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
 dependencies = [
  "libc",
  "log",
@@ -2815,7 +2952,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1bb540dc6ef51cfe1916ec038ce7a620daf3a111e2502d745197cd53d6bca15"
 dependencies = [
  "libc",
- "socket2 0.4.9",
+ "socket2 0.4.10",
 ]
 
 [[package]]
@@ -2944,7 +3081,7 @@ version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
 dependencies = [
- "async-io",
+ "async-io 1.13.0",
  "bytes",
  "futures",
  "libc",
@@ -2994,7 +3131,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cfg-if 1.0.0",
  "libc",
 ]
@@ -3107,9 +3244,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -3120,7 +3257,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.3",
  "libc",
 ]
 
@@ -3228,11 +3365,11 @@ dependencies = [
  "opentelemetry-semantic-conventions",
  "opentelemetry_api",
  "opentelemetry_sdk",
- "prost",
+ "prost 0.11.9",
  "protobuf",
  "thiserror",
  "tokio",
- "tonic",
+ "tonic 0.9.2",
 ]
 
 [[package]]
@@ -3245,9 +3382,9 @@ dependencies = [
  "grpcio",
  "opentelemetry_api",
  "opentelemetry_sdk",
- "prost",
+ "prost 0.11.9",
  "protobuf",
- "tonic",
+ "tonic 0.9.2",
 ]
 
 [[package]]
@@ -3307,9 +3444,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "ordered-float"
-version = "3.9.1"
+version = "3.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a54938017eacd63036332b4ae5c8a49fc8c0c1d6d629893057e4f13609edd06"
+checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
 dependencies = [
  "num-traits",
 ]
@@ -3372,9 +3509,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -3394,7 +3531,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.8",
+ "parking_lot_core 0.9.9",
 ]
 
 [[package]]
@@ -3413,13 +3550,13 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
- "redox_syscall 0.3.5",
+ "redox_syscall 0.4.1",
  "smallvec",
  "windows-targets 0.48.5",
 ]
@@ -3461,9 +3598,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
 
 [[package]]
 name = "pest"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
 dependencies = [
  "memchr",
  "thiserror",
@@ -3472,9 +3609,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
 dependencies = [
  "pest",
  "pest_generator",
@@ -3482,26 +3619,26 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
 dependencies = [
  "once_cell",
  "pest",
- "sha2 0.10.7",
+ "sha2 0.10.8",
 ]
 
 [[package]]
@@ -3531,7 +3668,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -3547,6 +3684,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
 name = "pkcs8"
 version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3564,9 +3712,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "platforms"
-version = "3.1.2"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8"
+checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0"
 
 [[package]]
 name = "png"
@@ -3598,6 +3746,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "polling"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+dependencies = [
+ "cfg-if 1.0.0",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.21",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "poly1305"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3609,6 +3771,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3635,9 +3803,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
@@ -3649,7 +3817,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
 dependencies = [
  "bytes",
- "prost-derive",
+ "prost-derive 0.11.9",
+]
+
+[[package]]
+name = "prost"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d"
+dependencies = [
+ "bytes",
+ "prost-derive 0.12.1",
 ]
 
 [[package]]
@@ -3659,19 +3837,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
 dependencies = [
  "anyhow",
- "itertools",
+ "itertools 0.10.5",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "prost-derive"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32"
+dependencies = [
+ "anyhow",
+ "itertools 0.11.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
 name = "prost-types"
-version = "0.11.9"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13"
+checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf"
 dependencies = [
- "prost",
+ "prost 0.12.1",
 ]
 
 [[package]]
@@ -3732,7 +3923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf36131a8443d1cda3cd66eeac16d60ce46aa7c415f71e12c28d95c195e3ff23"
 dependencies = [
  "gen_ops",
- "itertools",
+ "itertools 0.10.5",
  "num-integer",
  "num-traits",
 ]
@@ -3754,34 +3945,34 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
  "getrandom",
- "redox_syscall 0.2.16",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.3.8",
- "regex-syntax 0.7.5",
+ "regex-automata 0.4.3",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -3795,13 +3986,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.7.5",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -3812,9 +4003,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "resolv-conf"
@@ -3828,17 +4019,16 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
 dependencies = [
  "cc",
+ "getrandom",
  "libc",
- "once_cell",
- "spin 0.5.2",
+ "spin",
  "untrusted",
- "web-sys",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -3898,7 +4088,7 @@ version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "fallible-iterator",
  "fallible-streaming-iterator",
  "hashlink",
@@ -3939,9 +4129,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.23"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
@@ -3953,27 +4143,27 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.13"
+version = "0.38.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
+checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
- "linux-raw-sys 0.4.7",
+ "linux-raw-sys 0.4.10",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.20.9"
+version = "0.21.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"
+checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
 dependencies = [
  "log",
  "ring",
+ "rustls-webpki",
  "sct",
- "webpki",
 ]
 
 [[package]]
@@ -3982,7 +4172,17 @@ version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
 ]
 
 [[package]]
@@ -4008,9 +4208,9 @@ dependencies = [
 
 [[package]]
 name = "schemars"
-version = "0.8.13"
+version = "0.8.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "763f8cd0d4c71ed8389c90cb8100cba87e763bd01a8e614d4f0af97bcd50a161"
+checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c"
 dependencies = [
  "dyn-clone",
  "schemars_derive",
@@ -4020,9 +4220,9 @@ dependencies = [
 
 [[package]]
 name = "schemars_derive"
-version = "0.8.13"
+version = "0.8.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737"
+checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4044,9 +4244,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
  "ring",
  "untrusted",
@@ -4097,9 +4297,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "send_wrapper"
@@ -4118,9 +4318,9 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.191"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "a834c4821019838224821468552240d4d95d14e751986442c816572d39a080c9"
 dependencies = [
  "serde_derive",
 ]
@@ -4147,9 +4347,9 @@ dependencies = [
 
 [[package]]
 name = "serde-wasm-bindgen"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30c9933e5689bd420dc6c87b7a1835701810cbc10cd86a26e4da45b73e6b1d78"
+checksum = "17ba92964781421b6cef36bf0d7da26d201e96d84e1b10e7ae6ed416e516906d"
 dependencies = [
  "js-sys",
  "serde",
@@ -4157,6 +4357,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_bytes"
+version = "0.11.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "serde_cbor"
 version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4168,13 +4377,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.191"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "46fa52d5646bce91b680189fe5b1c049d2ea38dabb4e2e7c8d00ca12cfbfbcfd"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -4196,14 +4405,14 @@ checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa",
  "ryu",
@@ -4212,31 +4421,31 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.25"
+version = "0.9.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
+checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "itoa",
  "ryu",
  "serde",
@@ -4265,14 +4474,14 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if 1.0.0",
  "cpufeatures",
@@ -4294,9 +4503,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if 1.0.0",
  "cpufeatures",
@@ -4305,9 +4514,9 @@ dependencies = [
 
 [[package]]
 name = "sharded-slab"
-version = "0.1.4"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
 dependencies = [
  "lazy_static",
 ]
@@ -4340,8 +4549,8 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c4aa94397e2023af5b7cff5b8d4785e935cfb77f0e4aab0cae3b26258ace556"
 dependencies = [
- "async-io",
- "futures-lite",
+ "async-io 1.13.0",
+ "futures-lite 1.13.0",
  "libc",
  "signal-hook",
 ]
@@ -4403,9 +4612,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
 
 [[package]]
 name = "snailquote"
@@ -4419,9 +4628,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
@@ -4429,9 +4638,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
@@ -4439,12 +4648,6 @@ dependencies = [
 
 [[package]]
 name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
 version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
@@ -4523,9 +4726,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.36"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e02e55d62894af2a08aca894c6577281f76769ba47c94d5756bec8ac6e7373"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4563,11 +4766,11 @@ dependencies = [
 
 [[package]]
 name = "terminal_size"
-version = "0.2.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.37.23",
+ "rustix 0.38.21",
  "windows-sys 0.48.0",
 ]
 
@@ -4582,22 +4785,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -4623,14 +4826,15 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
  "num_threads",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -4638,15 +4842,15 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
+checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
 dependencies = [
  "time-core",
 ]
@@ -4668,9 +4872,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.33.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4680,7 +4884,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tokio-macros",
  "tracing",
  "windows-sys 0.48.0",
@@ -4704,7 +4908,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -4720,9 +4924,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -4756,9 +4960,9 @@ dependencies = [
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
@@ -4769,7 +4973,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -4784,7 +4988,7 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
 dependencies = [
  "async-trait",
  "axum",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes",
  "futures-core",
  "futures-util",
@@ -4795,7 +4999,34 @@ dependencies = [
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
- "prost",
+ "prost 0.11.9",
+ "tokio",
+ "tokio-stream",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tonic"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e"
+dependencies = [
+ "async-stream",
+ "async-trait",
+ "axum",
+ "base64 0.21.5",
+ "bytes",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-timeout",
+ "percent-encoding",
+ "pin-project",
+ "prost 0.12.1",
  "tokio",
  "tokio-stream",
  "tower",
@@ -4838,11 +5069,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if 1.0.0",
  "log",
  "pin-project-lite",
  "tracing-attributes",
@@ -4862,20 +5092,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
  "valuable",
@@ -4904,12 +5134,12 @@ dependencies = [
 
 [[package]]
 name = "tracing-log"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2"
 dependencies = [
- "lazy_static",
  "log",
+ "once_cell",
  "tracing-core",
 ]
 
@@ -4986,9 +5216,9 @@ dependencies = [
 
 [[package]]
 name = "trust-dns-proto"
-version = "0.23.0"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dc775440033cb114085f6f2437682b194fa7546466024b1037e82a48a052a69"
+checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
 dependencies = [
  "async-trait",
  "cfg-if 1.0.0",
@@ -5011,9 +5241,9 @@ dependencies = [
 
 [[package]]
 name = "trust-dns-resolver"
-version = "0.23.0"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dff7aed33ef3e8bf2c9966fccdfed93f93d46f432282ea875cd66faabc6ef2f"
+checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
 dependencies = [
  "cfg-if 1.0.0",
  "futures-util",
@@ -5059,14 +5289,14 @@ dependencies = [
  "proc-macro2",
  "quote",
  "serde_derive_internals 0.28.0",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "tungstenite"
-version = "0.20.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649"
+checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
 dependencies = [
  "byteorder",
  "bytes",
@@ -5122,9 +5352,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unicode_categories"
@@ -5150,9 +5380,9 @@ checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
@@ -5191,9 +5421,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "value-bag"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
+checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
 
 [[package]]
 name = "vcpkg"
@@ -5215,13 +5445,14 @@ checksum = "a9ee584edf237fac328b891dd06c21e7914a1db3762907edc366a13803451fe3"
 
 [[package]]
 name = "veilid-cli"
-version = "0.2.3"
+version = "0.2.5"
 dependencies = [
  "arboard",
  "async-std",
  "async-tungstenite",
  "cfg-if 1.0.0",
- "clap 4.4.3",
+ "chrono",
+ "clap 4.4.7",
  "config",
  "crossbeam-channel",
  "cursive",
@@ -5251,11 +5482,11 @@ dependencies = [
 
 [[package]]
 name = "veilid-core"
-version = "0.2.3"
+version = "0.2.5"
 dependencies = [
  "argon2",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "async-std",
  "async-std-resolver",
  "async-tls",
@@ -5281,8 +5512,8 @@ dependencies = [
  "flume",
  "futures-util",
  "getrandom",
+ "glob",
  "hex",
- "ifstructs",
  "jni",
  "jni-sys",
  "js-sys",
@@ -5297,8 +5528,6 @@ dependencies = [
  "lz4_flex",
  "ndk",
  "ndk-glue",
- "netlink-packet-route",
- "netlink-sys",
  "nix 0.27.1",
  "num-traits",
  "once_cell",
@@ -5307,20 +5536,19 @@ dependencies = [
  "parking_lot 0.12.1",
  "paste",
  "range-set-blaze",
- "rtnetlink",
- "rusqlite",
  "rustls",
  "rustls-pemfile",
  "schemars",
  "send_wrapper 0.6.0",
  "serde",
  "serde-big-array",
- "serde-wasm-bindgen 0.6.0",
+ "serde-wasm-bindgen 0.6.1",
+ "serde_bytes",
  "serde_json",
  "serial_test",
  "shell-words",
  "simplelog",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "static_assertions",
  "stop-token",
  "thiserror",
@@ -5348,7 +5576,7 @@ dependencies = [
  "webpki-roots 0.25.2",
  "wee_alloc",
  "winapi",
- "windows 0.51.1",
+ "windows",
  "windows-permissions",
  "ws_stream_wasm",
  "x25519-dalek",
@@ -5356,21 +5584,26 @@ dependencies = [
 
 [[package]]
 name = "veilid-flutter"
-version = "0.2.3"
+version = "0.2.5"
 dependencies = [
  "allo-isolate",
+ "android_log-sys 0.3.1",
  "async-std",
  "backtrace",
  "cfg-if 1.0.0",
+ "ctor",
  "data-encoding",
  "ffi-support",
  "futures-util",
  "hostname",
  "jni",
  "lazy_static",
+ "libc-print",
  "opentelemetry",
  "opentelemetry-otlp",
  "opentelemetry-semantic-conventions",
+ "oslog",
+ "paranoid-android",
  "parking_lot 0.12.1",
  "serde",
  "serde_json",
@@ -5389,15 +5622,15 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a3dabbda02cfe176635dcaa18a021416ff2eb4d0b47a913e3fdc7f62049d7b1"
 dependencies = [
- "hashbrown 0.14.0",
+ "hashbrown 0.14.2",
  "serde",
 ]
 
 [[package]]
 name = "veilid-igd"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28428a3f826ed334f995522e554d7c8c1a5a0e0a0248fc795a31022ddf436c9d"
+checksum = "ce2b3c073da0025538ff4cf5bea61a7a7a046c1bf060e2d0981c71800747551d"
 dependencies = [
  "attohttpc",
  "log",
@@ -5408,14 +5641,14 @@ dependencies = [
 
 [[package]]
 name = "veilid-server"
-version = "0.2.3"
+version = "0.2.5"
 dependencies = [
  "ansi_term",
  "async-std",
  "async-tungstenite",
  "backtrace",
  "cfg-if 1.0.0",
- "clap 4.4.3",
+ "clap 4.4.7",
  "color-eyre",
  "config",
  "console-subscriber",
@@ -5458,10 +5691,10 @@ dependencies = [
 
 [[package]]
 name = "veilid-tools"
-version = "0.2.3"
+version = "0.2.5"
 dependencies = [
  "android_logger 0.13.3",
- "async-lock",
+ "async-lock 2.8.0",
  "async-std",
  "async_executors",
  "backtrace",
@@ -5473,6 +5706,7 @@ dependencies = [
  "fn_name",
  "futures-util",
  "getrandom",
+ "ifstructs",
  "jni",
  "jni-sys",
  "js-sys",
@@ -5481,6 +5715,8 @@ dependencies = [
  "log",
  "ndk",
  "ndk-glue",
+ "netlink-packet-route",
+ "netlink-sys",
  "nix 0.27.1",
  "once_cell",
  "oslog",
@@ -5489,6 +5725,7 @@ dependencies = [
  "rand",
  "rand_core",
  "range-set-blaze",
+ "rtnetlink",
  "send_wrapper 0.6.0",
  "serial_test",
  "simplelog",
@@ -5506,11 +5743,12 @@ dependencies = [
  "wasm-bindgen-test",
  "wasm-logger",
  "wee_alloc",
+ "winapi",
 ]
 
 [[package]]
 name = "veilid-wasm"
-version = "0.2.3"
+version = "0.2.5"
 dependencies = [
  "cfg-if 1.0.0",
  "console_error_panic_hook",
@@ -5522,7 +5760,8 @@ dependencies = [
  "parking_lot 0.12.1",
  "send_wrapper 0.6.0",
  "serde",
- "serde-wasm-bindgen 0.6.0",
+ "serde-wasm-bindgen 0.6.1",
+ "serde_bytes",
  "serde_json",
  "tracing",
  "tracing-subscriber",
@@ -5549,9 +5788,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "waker-fn"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
@@ -5580,9 +5819,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
 dependencies = [
  "cfg-if 1.0.0",
  "serde",
@@ -5592,24 +5831,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -5619,9 +5858,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5629,28 +5868,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
 
 [[package]]
 name = "wasm-bindgen-test"
-version = "0.3.37"
+version = "0.3.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e6e302a7ea94f83a6d09e78e7dc7d9ca7b186bc2829c24a22d0753efd680671"
+checksum = "c6433b7c56db97397842c46b67e11873eda263170afeb3a2dc74a7cb370fee0d"
 dependencies = [
  "console_error_panic_hook",
  "js-sys",
@@ -5662,12 +5901,13 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-test-macro"
-version = "0.3.37"
+version = "0.3.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575"
+checksum = "493fcbab756bb764fa37e6bee8cec2dd709eb4273d06d0c282a5e74275ded735"
 dependencies = [
  "proc-macro2",
  "quote",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -5689,9 +5929,9 @@ checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549"
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.65"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -5699,9 +5939,9 @@ dependencies = [
 
 [[package]]
 name = "webpki"
-version = "0.22.1"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0e74f82d49d545ad128049b7e88f6576df2da6b02e9ce565c6f533be576957e"
+checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
 dependencies = [
  "ring",
  "untrusted",
@@ -5760,7 +6000,7 @@ dependencies = [
  "either",
  "home",
  "once_cell",
- "rustix 0.38.13",
+ "rustix 0.38.21",
 ]
 
 [[package]]
@@ -5770,12 +6010,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
 
 [[package]]
-name = "wildmatch"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f44b95f62d34113cf558c93511ac93027e03e9c29a60dd0fd70e6e025c7270a"
-
-[[package]]
 name = "winapi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5793,9 +6027,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -5817,15 +6051,6 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "windows"
 version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
@@ -5998,9 +6223,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "winnow"
-version = "0.5.15"
+version = "0.5.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
 dependencies = [
  "memchr",
 ]
@@ -6076,9 +6301,9 @@ checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
 
 [[package]]
 name = "xml-rs"
-version = "0.8.18"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab77e97b50aee93da431f2cee7cd0f43b4d1da3c408042f2d7d164187774f0a"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
 name = "xmltree"
@@ -6104,16 +6329,16 @@ version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9cbeb2291cd7267a94489b71376eda33496c1b9881adf6b36f26cc2779f3fc49"
 dependencies = [
- "async-io",
+ "async-io 1.13.0",
  "byteorder",
  "derivative",
  "enumflags2",
- "fastrand",
+ "fastrand 1.9.0",
  "futures",
  "nb-connect",
  "nix 0.22.3",
  "once_cell",
- "polling",
+ "polling 2.8.0",
  "scoped-tls",
  "serde",
  "serde_repr",
@@ -6134,6 +6359,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "zerocopy"
+version = "0.7.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
 name = "zeroize"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6150,7 +6395,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.39",
 ]
 
 [[package]]
diff --git a/pkgs/tools/networking/veilid/default.nix b/pkgs/tools/networking/veilid/default.nix
index 66237d4ca789b..a787bb64517f5 100644
--- a/pkgs/tools/networking/veilid/default.nix
+++ b/pkgs/tools/networking/veilid/default.nix
@@ -10,18 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "veilid";
-  version = "0.2.3";
+  version = "0.2.5";
 
   src = fetchFromGitLab {
     owner = "veilid";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fpA0JsBp2mlyDWlwE6xgyX5KNI2FSypO6m1J9BI+Kjs=";
+    sha256 = "sha256-jcSoZhAAoiKn3Jsov4Q0vunPRC+JwX8O0vYZDT5uO0I=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
+      "async-tls-0.12.0" = "sha256-SAirarvQKsYLftr3u29czQFBwVZgl2cSCUqC0/Qgye0=";
       "cursive-0.20.0" = "sha256-jETyRRnzt7OMkTo4LRfeRr37oPJpn9R2soxkH7tzGy8=";
       "cursive-flexi-logger-view-0.5.0" = "sha256-zFpfVFNZNNdNMdpJbaT4O2pMYccGEAGnvYzpRziMwfQ=";
       "cursive_buffered_backend-0.6.1" = "sha256-+sTJnp570HupwaJxV2x+oKyLwNmqQ4HqOH2P1s9Hhw8=";
diff --git a/pkgs/tools/networking/voms/default.nix b/pkgs/tools/networking/voms/default.nix
index a16648b9a8337..cafc812032b7a 100644
--- a/pkgs/tools/networking/voms/default.nix
+++ b/pkgs/tools/networking/voms/default.nix
@@ -13,7 +13,8 @@
 , zlib
   # Configuration overridable with .override
   # If not null, the builder will
-  # move "$out/etc" to "$out/etc.orig" and symlink "$out/etc" to externalEtc.
+  # create a new output "etc", move "$out/etc" to "$etc/etc"
+  # and symlink "$out/etc" to externalEtc.
 , externalEtc ? "/etc"
 }:
 
@@ -46,7 +47,8 @@ stdenv.mkDerivation rec{
     zlib
   ];
 
-  outputs = [ "bin" "out" "dev" "man" ];
+  outputs = [ "bin" "out" "dev" "man" ]
+    ++ lib.optional (externalEtc != null) "etc";
 
   preAutoreconf = ''
     mkdir -p aux src/autogen
@@ -65,13 +67,12 @@ stdenv.mkDerivation rec{
 
   configureFlags = [
     "--with-gsoap-wsdl2h=${gsoap}/bin/wsdl2h"
+    "--sysconfdir=${placeholder "out"}/etc"
   ];
 
-  postFixup = ''
-    ${lib.optionalString (externalEtc != null) ''
-      mv "$out"/etc{,.orig}
-      ln -s ${lib.escapeShellArg externalEtc} "$out/etc"
-    ''}
+  postFixup = lib.optionalString (externalEtc != null) ''
+    moveToOutput etc "$etc"
+    ln -s ${lib.escapeShellArg externalEtc} "$out/etc"
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/vopono/default.nix b/pkgs/tools/networking/vopono/default.nix
index 4607dead4441a..b8dbed5a02fa2 100644
--- a/pkgs/tools/networking/vopono/default.nix
+++ b/pkgs/tools/networking/vopono/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vopono";
-  version = "0.10.6";
+  version = "0.10.8";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-pxzWhaxihGQ6n6KyliiPK3YyVdUMP8OlJwT9Msna1OE=";
+    hash = "sha256-D+yROQidu+a3qzCNrVxn0RNutIHNcIjMSNqPLHwA+zA=";
   };
 
-  cargoHash = "sha256-pfZDnPWDjOaGov8jEdeyQdP9NWWES+9pSM5yGD31YB4=";
+  cargoHash = "sha256-oKoSHjABtaJYGyJ/G0zXC42XpXiUXwdPsOhyL1+D3GI=";
 
   meta = with lib; {
     description = "Run applications through VPN connections in network namespaces";
diff --git a/pkgs/tools/networking/vpn-slice/default.nix b/pkgs/tools/networking/vpn-slice/default.nix
index 3d883dca5b114..75cfe2bba0e94 100644
--- a/pkgs/tools/networking/vpn-slice/default.nix
+++ b/pkgs/tools/networking/vpn-slice/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonApplication, nix-update-script, python3Packages, fetchFromGitHub }:
+{ lib
+, stdenv
+, buildPythonApplication
+, nix-update-script
+, python3Packages
+, fetchFromGitHub
+, iproute2
+, iptables
+, unixtools
+}:
 
 buildPythonApplication rec {
   pname = "vpn-slice";
@@ -11,6 +20,15 @@ buildPythonApplication rec {
     sha256 = "sha256-T6VULLNRLWO4OcAsuTmhty6H4EhinyxQSg0dfv2DUJs=";
   };
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace vpn_slice/mac.py \
+      --replace "'/sbin/route'" "'${unixtools.route}/bin/route'"
+  '' + lib.optionalString stdenv.isLinux ''
+    substituteInPlace vpn_slice/linux.py \
+      --replace "'/sbin/ip'" "'${iproute2}/bin/ip'" \
+      --replace "'/sbin/iptables'" "'${iptables}/bin/iptables'"
+  '';
+
   propagatedBuildInputs = with python3Packages; [ setproctitle dnspython ];
 
   doCheck = false;
@@ -24,6 +42,6 @@ buildPythonApplication rec {
     description =
       "vpnc-script replacement for easy and secure split-tunnel VPN setup";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ jdbaldry ];
+    maintainers = with maintainers; [ liketechnik ];
   };
 }
diff --git a/pkgs/tools/networking/wakelan/default.nix b/pkgs/tools/networking/wakelan/default.nix
index 7e9bcc1a70caf..3416b33281d3a 100644
--- a/pkgs/tools/networking/wakelan/default.nix
+++ b/pkgs/tools/networking/wakelan/default.nix
@@ -9,6 +9,9 @@ stdenv.mkDerivation rec {
     hash = "sha256-PfXrj4d2SHmatiPPFxjsxvhusML1HTRNjoYEQtzFzW8=";
   };
 
+  # code predates c99
+  env.CFLAGS = "-std=c89";
+
   preInstall = ''
     mkdir -p $out/man/man1 $out/bin
   '';
diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix
index e7589862e511d..8db0ed674b4f9 100644
--- a/pkgs/tools/networking/wavemon/default.nix
+++ b/pkgs/tools/networking/wavemon/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wavemon";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchFromGitHub {
     owner = "uoaerg";
     repo = "wavemon";
     rev = "v${version}";
-    sha256 = "0s3yz15vzx90fxyb8bgryksn0cr2gpz9inbcx4qjrgs7zfbm4pgh";
+    sha256 = "sha256-MvIFuPATI0Y7aIYZkb2Yr+iCco4gILHhDU5FWeMCk5Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/wg-friendly-peer-names/default.nix b/pkgs/tools/networking/wg-friendly-peer-names/default.nix
index eaa8efbcebdba..ebbd898576d37 100644
--- a/pkgs/tools/networking/wg-friendly-peer-names/default.nix
+++ b/pkgs/tools/networking/wg-friendly-peer-names/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation {
   pname = "wg-friendly-peer-names";
-  version = "unstable-2021-11-08";
+  version = "unstable-2021-12-10";
 
   src = fetchFromGitHub {
     owner = "FlyveHest";
     repo = "wg-friendly-peer-names";
-    rev = "66b9b6b74ec77b9fec69b2a58296635321d4f5f1";
-    sha256 = "pH/b5rCHIqLxz/Fnx+Dm0m005qAUWBsczSU9vGEQ2RQ=";
+    rev = "b0c3e1a95c843dc9c6432895105b839ef9b362fc";
+    hash = "sha256-aGxrABmR+aQO35RYo/zI2037clnGOW0Tr16p7M1fQqc=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/networking/wget2/default.nix b/pkgs/tools/networking/wget2/default.nix
index 0bc5c2942d1b3..27d1a659029ba 100644
--- a/pkgs/tools/networking/wget2/default.nix
+++ b/pkgs/tools/networking/wget2/default.nix
@@ -10,6 +10,7 @@
   # libraries
 , brotli
 , bzip2
+, darwin
 , gpgme
 , libhsts
 , libidn2
@@ -26,7 +27,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wget2";
-  version = "2.0.1";
+  version = "2.1.0";
 
   outputs = [ "out" "lib" "dev" ];
 
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
     owner = "gnuwget";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9IOM8IA8Kezk3SP3YVenxQkm8UMZgD8/ztWoDNqM0vc=";
+    sha256 = "sha256-+xw1nQMBs0m9RlunyrAYaSDPnLY1yRX8zt8hKOMXQT8=";
   };
 
   # wget2_noinstall contains forbidden reference to /build/
@@ -65,7 +66,11 @@ stdenv.mkDerivation rec {
     xz
     zlib
     zstd
-  ] ++ lib.optional sslSupport openssl;
+  ] ++ lib.optionals sslSupport [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreServices
+  ];
 
   # TODO: include translation files
   autoreconfPhase = ''
@@ -85,7 +90,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "successor of GNU Wget, a file and recursive website downloader.";
+    description = "Successor of GNU Wget, a file and recursive website downloader";
     longDescription = ''
       Designed and written from scratch it wraps around libwget, that provides the basic
       functions needed by a web client.
diff --git a/pkgs/tools/networking/whois/default.nix b/pkgs/tools/networking/whois/default.nix
index f9d2e90b58e49..992303ec60721 100644
--- a/pkgs/tools/networking/whois/default.nix
+++ b/pkgs/tools/networking/whois/default.nix
@@ -1,16 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, perl, gettext, pkg-config, libidn2, libiconv }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, perl, gettext, pkg-config, libidn2, libiconv }:
 
 stdenv.mkDerivation rec {
-  version = "5.5.19";
+  version = "5.5.20";
   pname = "whois";
 
   src = fetchFromGitHub {
     owner = "rfc1036";
     repo = "whois";
     rev = "v${version}";
-    hash = "sha256-4mFn5cY7ipAU4vOiHC2s69fxYJwShQEQ1eA8t5JvOP0=";
+    hash = "sha256-0vQ6GBBtNA6Phlqhl3NZvEJqoyZ1um7VdkpsIRKhsm4=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/macports/macports-ports/raw/93de4e9fc1e5e8427bf98f48209e783a5e8fab57/net/whois/files/implicit.patch";
+      extraPrefix = "";
+      hash = "sha256-ogVylQz//tpXxPNIWIHkhghvToU1z1D1FfnUBdZLyRY=";
+    })
+  ];
+
   nativeBuildInputs = [ perl gettext pkg-config ];
   buildInputs = [ libidn2 libiconv ];
 
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 58f63b7a74baa..effba4adce051 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -8,6 +8,7 @@
 , openresolv
 , procps
 , bash
+, wireguard-go
 }:
 
 stdenv.mkDerivation rec {
@@ -46,6 +47,11 @@ stdenv.mkDerivation rec {
         --prefix PATH : ${lib.makeBinPath [ procps iproute2 ]} \
         --suffix PATH : ${lib.makeBinPath [ iptables openresolv ]}
     done
+  '' + lib.optionalString stdenv.isDarwin ''
+    for f in $out/bin/*; do
+      wrapProgram $f \
+        --prefix PATH : ${lib.makeBinPath [ wireguard-go ]}
+    done
   '';
 
   passthru = {
diff --git a/pkgs/tools/networking/wiremock/default.nix b/pkgs/tools/networking/wiremock/default.nix
deleted file mode 100644
index bfa0f9adf248b..0000000000000
--- a/pkgs/tools/networking/wiremock/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper }:
-
-stdenv.mkDerivation rec {
-  pname = "wiremock";
-  version = "2.35.0";
-  src = fetchurl {
-    url = "mirror://maven/com/github/tomakehurst/wiremock-jre8-standalone/${version}/wiremock-jre8-standalone-${version}.jar";
-    hash = "sha256-rhVq4oEuPPpHDEftBzEA707HeSc3Kk4gPw471THz61c=";
-  };
-
-  dontUnpack = true;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    mkdir -p "$out"/{share/wiremock,bin}
-    cp ${src} "$out/share/wiremock/wiremock.jar"
-
-    makeWrapper ${jre}/bin/java $out/bin/${pname} \
-      --add-flags "-jar $out/share/wiremock/wiremock.jar"
-  '';
-
-  meta = {
-    description = "A flexible tool for building mock APIs";
-    homepage = "https://wiremock.org/";
-    maintainers = with lib.maintainers; [ bobvanderlinden ];
-    platforms = jre.meta.platforms;
-    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
-    license = lib.licenses.asl20;
-  };
-}
diff --git a/pkgs/tools/networking/wireproxy/default.nix b/pkgs/tools/networking/wireproxy/default.nix
index 2c88f40825d96..7a12e477c0505 100644
--- a/pkgs/tools/networking/wireproxy/default.nix
+++ b/pkgs/tools/networking/wireproxy/default.nix
@@ -1,9 +1,11 @@
 { lib
-, buildGoModule
+, buildGo120Module
 , fetchFromGitHub
+, testers
+, wireproxy
 }:
 
-buildGoModule rec {
+buildGo120Module rec {
   pname = "wireproxy";
   version = "1.0.6";
 
@@ -22,6 +24,12 @@ buildGoModule rec {
 
   vendorHash = "sha256-LBLEb2oVi5ILNtoOtmJZ7NC7hMvLZcexYAxwmb4iUBo=";
 
+  passthru.tests.version = testers.testVersion {
+    package = wireproxy;
+    command = "wireproxy --version";
+    version = src.rev;
+  };
+
   meta = with lib; {
     description = "Wireguard client that exposes itself as a socks5 proxy";
     homepage = "https://github.com/octeep/wireproxy";
diff --git a/pkgs/tools/networking/wol/default.nix b/pkgs/tools/networking/wol/default.nix
index 114a8457d5b2c..14cf48ae0dbdd 100644
--- a/pkgs/tools/networking/wol/default.nix
+++ b/pkgs/tools/networking/wol/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/wake-on-lan/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ makefu ];
+    mainProgram = "wol";
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/wtfis/000-pyproject-remove-versions.diff b/pkgs/tools/networking/wtfis/000-pyproject-remove-versions.diff
deleted file mode 100644
index b94ca03bb3176..0000000000000
--- a/pkgs/tools/networking/wtfis/000-pyproject-remove-versions.diff
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -Naur source-old/pyproject.toml source-new/pyproject.toml
---- source-old/pyproject.toml	1980-01-02 00:00:00.000000000 -0300
-+++ source-new/pyproject.toml	2023-02-04 10:09:48.087418202 -0300
-@@ -29,11 +29,11 @@
-     "Topic :: Security",
- ]
- dependencies = [
--    "pydantic~=1.10.2",
--    "python-dotenv~=0.21.0",
--    "requests~=2.28.1",
--    "rich~=12.6.0",
--    "shodan~=1.28.0",
-+    "pydantic",
-+    "python-dotenv",
-+    "requests",
-+    "rich",
-+    "shodan",
- ]
- dynamic = ["version"]
- 
-@@ -63,7 +63,7 @@
-     "mypy",
-     "pytest",
-     "pytest-cov",
--    "types-requests~=2.28.1",
-+    "types-requests",
- ]
- [tool.hatch.envs.default.scripts]
- typecheck = "mypy -p {args:wtfis}"
diff --git a/pkgs/tools/networking/wtfis/default.nix b/pkgs/tools/networking/wtfis/default.nix
deleted file mode 100644
index ba6175f59b332..0000000000000
--- a/pkgs/tools/networking/wtfis/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib
-, python3
-, fetchFromGitHub
-}:
-
-let
-  pname = "wtfis";
-  version = "0.6.1";
-in python3.pkgs.buildPythonApplication {
-  inherit pname version;
-
-  src = fetchFromGitHub {
-    owner = "pirxthepilot";
-    repo = "wtfis";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-bHgv5+HoM1hFhpkqml+HxqiMDvKbMqsTH+zYtDrV7Ko=";
-  };
-
-  patches = [
-    # TODO: get rid of that newbie patch
-    ./000-pyproject-remove-versions.diff
-  ];
-
-  format = "pyproject";
-
-  propagatedBuildInputs = [
-    python3.pkgs.hatchling
-    python3.pkgs.pydantic
-    python3.pkgs.rich
-    python3.pkgs.shodan
-    python3.pkgs.python-dotenv
-  ];
-
-  meta = {
-    homepage = "https://github.com/pirxthepilot/wtfis";
-    description = "Passive hostname, domain and IP lookup tool for non-robots";
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.AndersonTorres ];
-  };
-}
diff --git a/pkgs/tools/networking/xdp-tools/default.nix b/pkgs/tools/networking/xdp-tools/default.nix
index d3eb90f258ba1..f1bcb4dfd115c 100644
--- a/pkgs/tools/networking/xdp-tools/default.nix
+++ b/pkgs/tools/networking/xdp-tools/default.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "xdp-tools";
-  version = "1.4.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "xdp-project";
     repo = "xdp-tools";
     rev = "v${version}";
-    hash = "sha256-XZGbfXQM3catiDavzi2vY5s+EMVgGHq/ju32lBIgg8E=";
+    hash = "sha256-kWgjt7mYwHtf8I4sXPzzrQJkWQyC8AC85ulGOWmQNZI=";
   };
 
   outputs = [ "out" "lib" ];
diff --git a/pkgs/tools/networking/xh/default.nix b/pkgs/tools/networking/xh/default.nix
index 06cda8490021c..a2cbf816fab7d 100644
--- a/pkgs/tools/networking/xh/default.nix
+++ b/pkgs/tools/networking/xh/default.nix
@@ -5,29 +5,29 @@
 , pkg-config
 , withNativeTls ? true
 , stdenv
-, Security
+, darwin
 , openssl
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "xh";
-  version = "0.18.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "ducaale";
     repo = "xh";
     rev = "v${version}";
-    sha256 = "sha256-2qZ+FGc8Y8HLJaQluVv036NG77lvaqsc3I5cmkD+r/M=";
+    sha256 = "sha256-nsxXNlDycn7W7X+AthYCFQu8i2bEPQv7r2LCbc3gFrE=";
   };
 
-  cargoSha256 = "sha256-0lPEZ8Th3PAw6AEnb+ciKMhi5wysFCvYwiHd9/o8VVc=";
+  cargoHash = "sha256-THj8tE12P/K+t/R1xUxo042FIX6JP3riCvm2a8zVEzw=";
 
   buildFeatures = lib.optional withNativeTls "native-tls";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
   buildInputs = lib.optionals withNativeTls
-    (if stdenv.isDarwin then [ Security ] else [ openssl ]);
+    (if stdenv.isDarwin then [ darwin.apple_sdk.frameworks.SystemConfiguration ] else [ openssl ]);
 
   # Get openssl-sys to use pkg-config
   OPENSSL_NO_VENDOR = 1;
diff --git a/pkgs/tools/networking/xray/default.nix b/pkgs/tools/networking/xray/default.nix
index 6d810aaee62e5..683cd9e484479 100644
--- a/pkgs/tools/networking/xray/default.nix
+++ b/pkgs/tools/networking/xray/default.nix
@@ -11,22 +11,22 @@
 
 buildGoModule rec {
   pname = "xray";
-  version = "1.8.4";
+  version = "1.8.6";
 
   src = fetchFromGitHub {
     owner = "XTLS";
     repo = "Xray-core";
     rev = "v${version}";
-    hash = "sha256-Hu0BP4BzoELRjJ8WdF3JS/ffxd3bpH+kauWqaMh/o1I=";
+    hash = "sha256-M1iu/93eOBIk9VxYKNJm/TPx9G35yO5SpcQm/lAJ1Q8=";
   };
 
-  vendorHash = "sha256-ihTOKtppOTYdulzwIwD8oWaS2OPs+QCdqPTvqucw7xY=";
+  vendorHash = "sha256-zLnYjZmrsWd/WwtkkLiA8Eoh7aDJz+TsvK0yvIrSr8c=";
 
   nativeBuildInputs = [ makeWrapper ];
 
   doCheck = false;
 
-  ldflags = [ "-s" "-w" "-buildid=" ];
+  ldflags = [ "-s" "-w" ];
   subPackages = [ "main" ];
 
    installPhase = ''
diff --git a/pkgs/tools/networking/xrootd/default.nix b/pkgs/tools/networking/xrootd/default.nix
index e5aad1b4ee9bf..e32139fdfcebd 100644
--- a/pkgs/tools/networking/xrootd/default.nix
+++ b/pkgs/tools/networking/xrootd/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , cmake
 , cppunit
+, makeWrapper
 , pkg-config
 , curl
 , fuse
@@ -24,6 +25,9 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
+
+  __structuredAttrs = true;
+
   pname = "xrootd";
   version = "5.5.5";
 
@@ -35,7 +39,8 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-SLmxv8opN7z4V07S9kLGo8HG7Ql62iZQLtf3zGemwA8=";
   };
 
-  outputs = [ "bin" "out" "dev" "man" ];
+  outputs = [ "bin" "out" "dev" "man" ]
+  ++ lib.optional (externalEtc != null) "etc";
 
   passthru.fetchxrd = callPackage ./fetchxrd.nix { xrootd = finalAttrs.finalPackage; };
   passthru.tests =
@@ -55,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [
     cmake
+    makeWrapper
     pkg-config
   ];
 
@@ -101,8 +107,19 @@ stdenv.mkDerivation (finalAttrs: {
     "-DENABLE_TESTS=TRUE"
   ];
 
-  postFixup = lib.optionalString (externalEtc != null) ''
-    mv "$out"/etc{,.orig}
+  makeWrapperArgs = [
+    # Workaround the library-not-found issue
+    # happening to binaries compiled with xrootd libraries.
+    # See #169677
+    "--prefix" "${lib.optionalString stdenv.hostPlatform.isDarwin "DY"}LD_LIBRARY_PATH" ":" "${placeholder "out"}/lib"
+  ];
+
+  postFixup = ''
+    while IFS= read -r FILE; do
+      wrapProgram "$FILE" "''${makeWrapperArgs[@]}"
+    done < <(find "$bin/bin" -mindepth 1 -maxdepth 1 -type f,l -perm -a+x)
+  '' + lib.optionalString (externalEtc != null) ''
+    moveToOutput etc "$etc"
     ln -s ${lib.escapeShellArg externalEtc} "$out/etc"
   '';
 
diff --git a/pkgs/tools/networking/xrootd/fetchxrd.nix b/pkgs/tools/networking/xrootd/fetchxrd.nix
index 2d197f8504fec..21d7a2a0386dd 100644
--- a/pkgs/tools/networking/xrootd/fetchxrd.nix
+++ b/pkgs/tools/networking/xrootd/fetchxrd.nix
@@ -21,11 +21,9 @@
     inherit url;
     urls = if urls == [ ] then lib.singleton url else urls;
   }
-  # Set [DY]LD_LIBRARY_PATH to workaround #169677
-  # TODO: Remove the library path after #200830 get merged
   ''
     for u in $urls; do
-      ${lib.optionalString buildPlatform.isDarwin "DY"}LD_LIBRARY_PATH=${lib.makeLibraryPath [ xrootd ]} xrdcp --force "$u" "$out"
+      xrdcp --verbose --force "$u" "$out"
       ret=$?
       (( ret != 0 )) || break
     done
diff --git a/pkgs/tools/networking/yggdrasil/change-runtime-dir.patch b/pkgs/tools/networking/yggdrasil/change-runtime-dir.patch
deleted file mode 100644
index b4edc6a838716..0000000000000
--- a/pkgs/tools/networking/yggdrasil/change-runtime-dir.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN a/src/defaults/defaults_linux.go b/src/defaults/defaults_linux.go
---- a/src/defaults/defaults_linux.go	2019-06-17 10:23:09.495613784 -0700
-+++ b/src/defaults/defaults_linux.go	2019-07-01 10:17:11.295669440 -0700
-@@ -7,7 +7,7 @@
- func GetDefaults() platformDefaultParameters {
- 	return platformDefaultParameters{
- 		// Admin
--		DefaultAdminListen: "unix:///var/run/yggdrasil.sock",
-+		DefaultAdminListen: "unix:///var/run/yggdrasil/yggdrasil.sock",
- 
- 		// Configuration (used for yggdrasilctl)
- 		DefaultConfigFile: "/etc/yggdrasil.conf",
diff --git a/pkgs/tools/networking/yggdrasil/default.nix b/pkgs/tools/networking/yggdrasil/default.nix
deleted file mode 100644
index 5154ef60bd0a2..0000000000000
--- a/pkgs/tools/networking/yggdrasil/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
-
-buildGoModule rec {
-  pname = "yggdrasil";
-  version = "0.4.7";
-
-  src = fetchFromGitHub {
-    owner = "yggdrasil-network";
-    repo = "yggdrasil-go";
-    rev = "v${version}";
-    sha256 = "sha256-01ciAutRIn4DmqlvDTXhRiuZHTtF8b6js7SUrLOjtAY=";
-  };
-
-  vendorHash = "sha256-hwDi59Yp92eMDqA8OD56nxsKSX2ngxs0lYdmEMLX+Oc=";
-
-  # Change the default location of the management socket on Linux
-  # systems so that the yggdrasil system service unit does not have to
-  # be granted write permission to /run.
-  patches = [ ./change-runtime-dir.patch ];
-
-  subPackages = [ "cmd/genkeys" "cmd/yggdrasil" "cmd/yggdrasilctl" ];
-
-  ldflags = [
-    "-X github.com/yggdrasil-network/yggdrasil-go/src/version.buildVersion=${version}"
-    "-X github.com/yggdrasil-network/yggdrasil-go/src/version.buildName=${pname}"
-    "-s" "-w"
-  ];
-
-  passthru.tests.basic = nixosTests.yggdrasil;
-
-  meta = with lib; {
-    description =
-      "An experiment in scalable routing as an encrypted IPv6 overlay network";
-    homepage = "https://yggdrasil-network.github.io/";
-    license = licenses.lgpl3;
-    maintainers = with maintainers; [ bbigras ehmry gazally lassulus ];
-  };
-}
diff --git a/pkgs/tools/networking/ytcc/default.nix b/pkgs/tools/networking/ytcc/default.nix
index 4cbcc3d48f2d8..d771db21d494e 100644
--- a/pkgs/tools/networking/ytcc/default.nix
+++ b/pkgs/tools/networking/ytcc/default.nix
@@ -3,16 +3,21 @@
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
   version = "2.6.1";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "sha256-pC2uoog+nev/Xa6UbXX4vX00VQQLHtZzbVkxrxO/Pg8=";
+    hash = "sha256-pC2uoog+nev/Xa6UbXX4vX00VQQLHtZzbVkxrxO/Pg8=";
   };
 
-  nativeBuildInputs = [ gettext installShellFiles ];
+  nativeBuildInputs = [
+    gettext
+    installShellFiles
+  ] ++ (with python3Packages; [
+    setuptools
+  ]);
 
   propagatedBuildInputs = with python3Packages; [
     yt-dlp
@@ -20,7 +25,9 @@ python3Packages.buildPythonApplication rec {
     wcwidth
   ];
 
-  nativeCheckInputs = with python3Packages; [ nose pytestCheckHook ];
+  nativeCheckInputs = with python3Packages; [
+    pytestCheckHook
+  ];
 
   # Disable tests that touch network or shell out to commands
   disabledTests = [
diff --git a/pkgs/tools/networking/zap/default.nix b/pkgs/tools/networking/zap/default.nix
index 9109b60eaa27f..f763c609aae80 100644
--- a/pkgs/tools/networking/zap/default.nix
+++ b/pkgs/tools/networking/zap/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "zap";
-  version = "2.13.0";
+  version = "2.14.0";
   src = fetchurl {
     url = "https://github.com/zaproxy/zaproxy/releases/download/v${version}/ZAP_${version}_Linux.tar.gz";
-    sha256 = "sha256-k261Kg/TkMHviQxFVCDZXOIAYv4TbsCSfgI+K69Q9Uk=";
+    sha256 = "sha256-IZ1/JbviUkdxOAWrAswSJ5iYyHB0PBquPCsLGIIZGWA=";
   };
 
   buildInputs = [ jre ];
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index de0ffe86ec4f1..1bf10ce2c4080 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -14,13 +14,13 @@
 
 let
   pname = "zerotierone";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "zerotier";
     repo = "ZeroTierOne";
     rev = version;
-    sha256 = "sha256-430wdPrSNohM3sXewusjsW3tbE7EFGISGxABZF21yRc=";
+    sha256 = "sha256-p0zrYgbHTLefj5GTrMnYLytCXZ/nRuqTL+6dEeC+uVw=";
   };
 
 in stdenv.mkDerivation {
diff --git a/pkgs/tools/networking/zrok/default.nix b/pkgs/tools/networking/zrok/default.nix
index 49a495493d88a..1515f357778e0 100644
--- a/pkgs/tools/networking/zrok/default.nix
+++ b/pkgs/tools/networking/zrok/default.nix
@@ -1,4 +1,7 @@
-{ lib, stdenv, fetchzip }:
+{ lib
+, stdenv
+, fetchzip
+}:
 
 let
   inherit (stdenv.hostPlatform) system;
@@ -10,20 +13,20 @@ let
     armv7l-linux = "linux_armv7";
   }.${system} or throwSystem;
 
-  sha256 = {
-    x86_64-linux = "sha256-w3BF5Zu68e7X6vfkJhUTS6wkg7LSFZunx9dnBA2Ao5c=";
-    aarch64-linux = "sha256-hJiXDydUF750mTsFIXH6X8AjzjaG2Iaa+TzsCCCVAvs=";
-    armv7l-linux = "sha256-lEPo6Y+cqlG2QflwJdG/MNqFLMPdwQLI0+TC/VVlGV4=";
+  hash = {
+    x86_64-linux = "sha256-DrkX9Be8gw9JXyfyxcK2mhGur5jWFv4LjaYRSVh4dSE=";
+    aarch64-linux = "sha256-VVeTVBJyptbR/6JZwZ0V2v4lS3X/ixrcC++aMQBtg2Q=";
+    armv7l-linux = "sha256-m6tALmSCZKLQrSeIpygEQF5nuJBZ8MYmxdbeFH5ydt0=";
   }.${system} or throwSystem;
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "zrok";
-  version = "0.4.6";
+  version = "0.4.23";
 
   src = fetchzip {
-    url = "https://github.com/openziti/zrok/releases/download/v${version}/zrok_${version}_${plat}.tar.gz";
+    url = "https://github.com/openziti/zrok/releases/download/v${finalAttrs.version}/zrok_${finalAttrs.version}_${plat}.tar.gz";
     stripRoot = false;
-    inherit sha256;
+    inherit hash;
   };
 
   updateScript = ./update.sh;
@@ -31,19 +34,23 @@ stdenv.mkDerivation rec {
   installPhase = let
     interpreter = "$(< \"$NIX_CC/nix-support/dynamic-linker\")";
   in ''
+    runHook preInstall
+
     mkdir -p $out/bin
     cp zrok $out/bin/
     chmod +x $out/bin/zrok
     patchelf --set-interpreter "${interpreter}" "$out/bin/zrok"
+
+    runHook postInstall
   '';
 
   meta = {
     description = "Geo-scale, next-generation sharing platform built on top of OpenZiti";
     homepage = "https://zrok.io";
+    license = lib.licenses.asl20;
+    mainProgram = "zrok";
     maintainers = [ lib.maintainers.bandresen ];
     platforms = [ "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    license = lib.licenses.asl20;
   };
-
-}
+})
diff --git a/pkgs/tools/nix/alejandra/default.nix b/pkgs/tools/nix/alejandra/default.nix
index 0e5d59ee8f887..2dc35be811067 100644
--- a/pkgs/tools/nix/alejandra/default.nix
+++ b/pkgs/tools/nix/alejandra/default.nix
@@ -13,10 +13,10 @@ rustPlatform.buildRustPackage rec {
     owner = "kamadorueda";
     repo = "alejandra";
     rev = version;
-    sha256 = "sha256-xFumnivtVwu5fFBOrTxrv6fv3geHKF04RGP23EsDVaI=";
+    hash = "sha256-xFumnivtVwu5fFBOrTxrv6fv3geHKF04RGP23EsDVaI=";
   };
 
-  cargoSha256 = "sha256-tF8E9mnvkTXoViVss9cNjpU4UkEsARp4RtlxKWq55hc=";
+  cargoHash = "sha256-tF8E9mnvkTXoViVss9cNjpU4UkEsARp4RtlxKWq55hc=";
 
   passthru.tests = {
     version = testers.testVersion { package = alejandra; };
diff --git a/pkgs/tools/nix/devour-flake/default.nix b/pkgs/tools/nix/devour-flake/default.nix
deleted file mode 100644
index a42483653550f..0000000000000
--- a/pkgs/tools/nix/devour-flake/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ writeShellApplication
-, fetchFromGitHub
-, nix
-}:
-
-let
-  devour-flake = fetchFromGitHub {
-    owner = "srid";
-    repo = "devour-flake";
-    rev = "v2";
-    hash = "sha256-CZedJtbZlWAbv/b/aYgOEFd9vcTBn/oJNI3p29UitLk=";
-  };
-in
-writeShellApplication {
-  name = "devour-flake";
-  runtimeInputs = [ nix ];
-  text = ''
-    FLAKE="$1"
-    shift 1 || true
-
-    nix build ${devour-flake}#default \
-      "$@" \
-      -L --no-link --print-out-paths \
-      --override-input flake "$FLAKE" \
-      | xargs cat
-  '';
-}
diff --git a/pkgs/tools/nix/fh/default.nix b/pkgs/tools/nix/fh/default.nix
index 1cb74a60dcfab..16df9471e6940 100644
--- a/pkgs/tools/nix/fh/default.nix
+++ b/pkgs/tools/nix/fh/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fh";
-  version = "0.1.6";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "DeterminateSystems";
     repo = "fh";
     rev = "v${version}";
-    hash = "sha256-Pbw1yggqIzmY23DuxrmSSf9IbOy5olAqVWectq97j20=";
+    hash = "sha256-G2bLYand61E/s652Q+5XSfXdM6XUWixiXRRMd3HvfM4=";
   };
 
-  cargoHash = "sha256-vr5M2TAty9z/n9wdA/ANnRp7Hq5S3Hpa4dE7mA59Keg=";
+  cargoHash = "sha256-c3XxJQf2uHvj1X/djKyQg2AtrXdROyIVwLeYxFgHDNI=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -42,6 +42,8 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/fh completion zsh)
   '';
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "The official FlakeHub CLI";
     homepage = "https://github.com/DeterminateSystems/fh";
diff --git a/pkgs/tools/nix/manix/default.nix b/pkgs/tools/nix/manix/default.nix
index 6975e61fa6cb2..082f99f4de747 100644
--- a/pkgs/tools/nix/manix/default.nix
+++ b/pkgs/tools/nix/manix/default.nix
@@ -1,25 +1,29 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
-
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  Security,
+}:
 rustPlatform.buildRustPackage rec {
   pname = "manix";
-  version = "0.6.3";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
-    owner = "mlvzk";
-    repo  = pname;
-    rev = "v${version}";
-    sha256 = "1b7xi8c2drbwzfz70czddc4j33s7g1alirv12dwl91hbqxifx8qs";
+    repo = pname;
+    owner = "lecoqjacob";
+    rev = "${version}";
+    hash = "sha256-kTQbeOIGG1HmbsXKfXw5yCZ49kGufbGiCkkIRMTwcsg=";
   };
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
-
-  cargoSha256 = "1yivx9vzk2fvncvlkwq5v11hb9llr1zlcmy69y12q6xnd9rd8x1b";
+  buildInputs = lib.optionals stdenv.isDarwin [Security];
+  cargoSha256 = "sha256-7SHUi1qH9Dr4Oi7A6gRmZqhAIr8RzLNU1l1x4WGtQYI=";
 
   meta = with lib; {
+    license = [licenses.mpl20];
+    platforms = platforms.unix;
+    homepage = "https://github.com/lecoqjacob/manix";
     description = "A Fast Documentation Searcher for Nix";
-    homepage    = "https://github.com/mlvzk/manix";
-    license     = [ licenses.mpl20 ];
-    maintainers = [ maintainers.mlvzk ];
-    platforms   = platforms.unix;
+    maintainers = [maintainers.lecoqjacob];
   };
 }
diff --git a/pkgs/tools/nix/nar-serve/default.nix b/pkgs/tools/nix/nar-serve/default.nix
index 5aa2e3bd9cedd..f2c709a2e3127 100644
--- a/pkgs/tools/nix/nar-serve/default.nix
+++ b/pkgs/tools/nix/nar-serve/default.nix
@@ -21,6 +21,6 @@ buildGoModule rec {
     description = "Serve NAR file contents via HTTP";
     homepage = "https://github.com/numtide/nar-serve";
     license = licenses.mit;
-    maintainers = with maintainers; [ rizary ];
+    maintainers = with maintainers; [ rizary zimbatm ];
   };
 }
diff --git a/pkgs/tools/nix/nix-output-monitor/generated-package.nix b/pkgs/tools/nix/nix-output-monitor/generated-package.nix
index 7d993282601ba..7c41b6e1b6afc 100644
--- a/pkgs/tools/nix/nix-output-monitor/generated-package.nix
+++ b/pkgs/tools/nix/nix-output-monitor/generated-package.nix
@@ -1,147 +1,44 @@
 # This file has been autogenerate with cabal2nix.
 # Update via ./update.sh"
-{
-  mkDerivation,
-  ansi-terminal,
-  async,
-  attoparsec,
-  base,
-  bytestring,
-  cassava,
-  containers,
-  data-default,
-  directory,
-  extra,
-  fetchzip,
-  filepath,
-  hermes-json,
-  HUnit,
-  lib,
-  lock-file,
-  MemoTrie,
-  mtl,
-  nix-derivation,
-  optics,
-  random,
-  relude,
-  safe,
-  stm,
-  streamly-core,
-  strict,
-  strict-types,
-  terminal-size,
-  text,
-  time,
-  typed-process,
-  wcwidth,
-  word8,
+{ mkDerivation, ansi-terminal, async, attoparsec, base, bytestring
+, cassava, containers, data-default, directory, extra, fetchzip
+, filepath, hermes-json, HUnit, lib, lock-file, MemoTrie
+, nix-derivation, optics, random, relude, safe, stm, streamly-core
+, strict, strict-types, terminal-size, text, time, transformers
+, typed-process, unix, word8
 }:
 mkDerivation {
   pname = "nix-output-monitor";
-  version = "2.0.0.7";
+  version = "2.1.1";
   src = fetchzip {
-    url = "https://github.com/maralorn/nix-output-monitor/archive/refs/tags/v2.0.0.7.tar.gz";
-    sha256 = "1b2c9kfz80rv2r1s7h6iikyq3bn32h1fv2yq65wkhg3in7qg49jp";
+    url = "https://code.maralorn.de/maralorn/nix-output-monitor/archive/v2.1.1.tar.gz";
+    sha256 = "1k1gdx7yczz7xm096i8lk09zq6yw1yj8izx6czymfd4qqwj2y49l";
   };
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
-    ansi-terminal
-    async
-    attoparsec
-    base
-    bytestring
-    cassava
-    containers
-    data-default
-    directory
-    extra
-    filepath
-    hermes-json
-    lock-file
-    MemoTrie
-    mtl
-    nix-derivation
-    optics
-    relude
-    safe
-    stm
-    streamly-core
-    strict
-    strict-types
-    terminal-size
-    text
-    time
-    wcwidth
-    word8
+    ansi-terminal async attoparsec base bytestring cassava containers
+    data-default directory extra filepath hermes-json lock-file
+    MemoTrie nix-derivation optics relude safe stm streamly-core strict
+    strict-types terminal-size text time transformers word8
   ];
   executableHaskellDepends = [
-    ansi-terminal
-    async
-    attoparsec
-    base
-    bytestring
-    cassava
-    containers
-    data-default
-    directory
-    extra
-    filepath
-    hermes-json
-    lock-file
-    MemoTrie
-    mtl
-    nix-derivation
-    optics
-    relude
-    safe
-    stm
-    streamly-core
-    strict
-    strict-types
-    terminal-size
-    text
-    time
-    typed-process
-    wcwidth
-    word8
+    ansi-terminal async attoparsec base bytestring cassava containers
+    data-default directory extra filepath hermes-json lock-file
+    MemoTrie nix-derivation optics relude safe stm streamly-core strict
+    strict-types terminal-size text time transformers typed-process
+    unix word8
   ];
   testHaskellDepends = [
-    ansi-terminal
-    async
-    attoparsec
-    base
-    bytestring
-    cassava
-    containers
-    data-default
-    directory
-    extra
-    filepath
-    hermes-json
-    HUnit
-    lock-file
-    MemoTrie
-    mtl
-    nix-derivation
-    optics
-    random
-    relude
-    safe
-    stm
-    streamly-core
-    strict
-    strict-types
-    terminal-size
-    text
-    time
-    typed-process
-    wcwidth
-    word8
+    ansi-terminal async attoparsec base bytestring cassava containers
+    data-default directory extra filepath hermes-json HUnit lock-file
+    MemoTrie nix-derivation optics random relude safe stm streamly-core
+    strict strict-types terminal-size text time transformers
+    typed-process word8
   ];
   homepage = "https://github.com/maralorn/nix-output-monitor";
-  description = "Parses output of nix-build to show additional information";
+  description = "Processes output of Nix commands to show helpful and pretty information";
   license = lib.licenses.agpl3Plus;
   mainProgram = "nom";
-  maintainers = [lib.maintainers.maralorn];
+  maintainers = [ lib.maintainers.maralorn ];
 }
diff --git a/pkgs/tools/nix/nix-output-monitor/update.sh b/pkgs/tools/nix/nix-output-monitor/update.sh
index b25a65fca2d75..a83043df66ee6 100755
--- a/pkgs/tools/nix/nix-output-monitor/update.sh
+++ b/pkgs/tools/nix/nix-output-monitor/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p cabal2nix curl jq alejandra
+#!nix-shell -i bash -p cabal2nix curl jq
 #
 # This script will update the nix-output-monitor derivation to the latest version using
 # cabal2nix.
@@ -12,7 +12,7 @@ script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 derivation_file="${script_dir}/generated-package.nix"
 
 # This is the latest released version of nix-output-monitor on GitHub.
-new_version=$(curl --silent "https://api.github.com/repos/maralorn/nix-output-monitor/releases" | jq '.[0].tag_name' --raw-output)
+new_version=$(curl --silent "https://code.maralorn.de/api/v1/repos/maralorn/nix-output-monitor/releases" | jq '.[0].tag_name' --raw-output)
 
 echo "Updating nix-output-monitor to version $new_version."
 echo "Running cabal2nix and outputting to ${derivation_file}..."
@@ -24,9 +24,7 @@ EOF
 
 cabal2nix \
   --maintainer maralorn \
-  "https://github.com/maralorn/nix-output-monitor/archive/refs/tags/${new_version}.tar.gz" \
+  "https://code.maralorn.de/maralorn/nix-output-monitor/archive/${new_version}.tar.gz" \
   >> "$derivation_file"
 
-alejandra "${derivation_file}" | cat
-
 echo "Finished."
diff --git a/pkgs/tools/nix/nixci/default.nix b/pkgs/tools/nix/nixci/default.nix
index 0d881d6976edc..bc78b3aab59a5 100644
--- a/pkgs/tools/nix/nixci/default.nix
+++ b/pkgs/tools/nix/nixci/default.nix
@@ -1,32 +1,37 @@
 { lib, stdenv
 , rustPlatform
 , fetchCrate
+, fetchFromGitHub
 , libiconv
 , openssl
 , pkg-config
 , Security
-, devour-flake
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "nixci";
-  version = "0.1.3";
+  version = "0.2.0";
 
   src = fetchCrate {
     inherit version;
     pname = "nixci";
-    hash = "sha256-sM/1G1mf+msWbG4CX/pZNt4FmSKR2hWXdcq5h7W1AM0=";
+    hash = "sha256-Q3V/JL64xkIj0X0NSMRTjRAP3PJC9ouj3CmEscVWdns=";
   };
 
-  cargoHash = "sha256-PKBNQKuWV4PE7iSKr+LugayroFjDBT4/vyyjJiw/E+I=";
+  cargoHash = "sha256-tjk91AaPsMLfXYB2o1HTTxb6Qr3l8BABPStrKEGvbtM=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libiconv openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security ];
 
   # The rust program expects an environment (at build time) that points to the
-  # devour-flake executable.
-  DEVOUR_FLAKE = lib.getExe devour-flake;
+  # devour-flake flake.
+  env.DEVOUR_FLAKE = fetchFromGitHub {
+    owner = "srid";
+    repo = "devour-flake";
+    rev = "v3";
+    hash = "sha256-O51F4YFOzlaQAc9b6xjkAqpvrvCtw/Os2M7TU0y4SKQ=";
+  };
 
   meta = with lib; {
     description = "Define and build CI for Nix projects anywhere";
diff --git a/pkgs/tools/nix/nixdoc/default.nix b/pkgs/tools/nix/nixdoc/default.nix
index 25771a135bc82..e757e79f46847 100644
--- a/pkgs/tools/nix/nixdoc/default.nix
+++ b/pkgs/tools/nix/nixdoc/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nixdoc";
-  version = "2.4.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nixdoc";
     rev = "v${version}";
-    sha256 = "sha256-cEMehtxkqXAar/fDy3CnzsDEAuC1ABBaYqzqVBGnTrs=";
+    sha256 = "sha256-0cyKI8KHFsMXYca3hzbqxmBpxGdhl4/i183kfUQr8pg=";
   };
 
-  cargoHash = "sha256-QFDHIqXyTWTdqNrLcwWw3plX6EDH/k043nay5opjtws=";
+  cargoHash = "sha256-9dqjNExxLDgVsu14yDQOJP1qxKy2ACiUH+pbX77iT70=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.Security ];
 
@@ -19,7 +19,10 @@ rustPlatform.buildRustPackage rec {
     description = "Generate documentation for Nix functions";
     homepage    = "https://github.com/nix-community/nixdoc";
     license     = [ licenses.gpl3 ];
-    maintainers = [ maintainers.asymmetric ];
+    maintainers = with maintainers; [
+      infinisil
+      asymmetric
+    ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/nix/nixos-option/default.nix b/pkgs/tools/nix/nixos-option/default.nix
index 7cca1eb7b38d5..37018ac25a0bb 100644
--- a/pkgs/tools/nix/nixos-option/default.nix
+++ b/pkgs/tools/nix/nixos-option/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     license = licenses.lgpl2Plus;
+    mainProgram = "nixos-option";
     maintainers = with maintainers; [ ];
     inherit (nix.meta) platforms;
   };
diff --git a/pkgs/tools/nix/nixos-render-docs/default.nix b/pkgs/tools/nix/nixos-render-docs/default.nix
index d2b8f1a0614bd..b08abfe069f76 100644
--- a/pkgs/tools/nix/nixos-render-docs/default.nix
+++ b/pkgs/tools/nix/nixos-render-docs/default.nix
@@ -1,18 +1,11 @@
 { lib
 , stdenv
 , python3
-, python3Minimal
 , runCommand
 }:
 
 let
-  # python3Minimal can't be overridden with packages on Darwin, due to a missing framework.
-  # Instead of modifying stdenv, we take the easy way out, since most people on Darwin will
-  # just be hacking on the Nixpkgs manual (which also uses make-options-doc).
-  python = ((if stdenv.isDarwin then python3 else python3Minimal).override {
-    self = python;
-    includeSiteCustomize = true;
-  }).override {
+  python = python3.override {
     packageOverrides = final: prev: {
       markdown-it-py = prev.markdown-it-py.overridePythonAttrs (_: {
         doCheck = false;
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
index ffe64cde4d345..b9227814dea20 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
@@ -97,8 +97,8 @@ class HTMLRenderer(Renderer):
     def strong_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         return "</strong></span>"
     def fence(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        # TODO use token.info. docbook doesn't so we can't yet.
-        return f'<pre class="programlisting">\n{escape(token.content)}</pre>'
+        info = f" {escape(token.info, True)}" if token.info != "" else ""
+        return f'<pre><code class="programlisting{info}">{escape(token.content)}</code></pre>'
     def blockquote_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         return '<div class="blockquote"><blockquote class="blockquote">'
     def blockquote_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
index d605dd88b37d5..c72a9d53cd18d 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
@@ -8,7 +8,7 @@ import xml.sax.saxutils as xml
 from abc import abstractmethod
 from collections.abc import Mapping, Sequence
 from pathlib import Path
-from typing import Any, cast, ClassVar, Generic, get_args, NamedTuple
+from typing import Any, Callable, cast, ClassVar, Generic, get_args, NamedTuple
 
 from markdown_it.token import Token
 
@@ -44,8 +44,40 @@ class BaseConverter(Converter[md.TR], Generic[md.TR]):
     def _postprocess(self, infile: Path, outfile: Path, tokens: Sequence[Token]) -> None:
         pass
 
-    def _parse(self, src: str) -> list[Token]:
+    def _handle_headings(self, tokens: list[Token], *, on_heading: Callable[[Token,str],None]) -> None:
+        # Headings in a globally numbered order
+        # h1 to h6
+        curr_heading_pos: list[int] = []
+        for token in tokens:
+            if token.type == "heading_open":
+                if token.tag not in ["h1", "h2", "h3", "h4", "h5", "h6"]:
+                    raise RuntimeError(f"Got invalid heading tag {token.tag} in line {token.map[0] + 1 if token.map else 'NOT FOUND'}. Only h1 to h6 headings are allowed.")
+
+                idx = int(token.tag[1:]) - 1
+
+                if idx >= len(curr_heading_pos):
+                    # extend the list if necessary
+                    curr_heading_pos.extend([0 for _i in range(idx+1 - len(curr_heading_pos))])
+
+                curr_heading_pos = curr_heading_pos[:idx+1]
+                curr_heading_pos[-1] += 1
+
+
+                ident = ".".join(f"{a}" for a in curr_heading_pos)
+                on_heading(token,ident)
+
+
+
+    def _parse(self, src: str, *, auto_id_prefix: None | str = None) -> list[Token]:
         tokens = super()._parse(src)
+        if auto_id_prefix:
+            def set_token_ident(token: Token, ident: str) -> None:
+                if "id" not in token.attrs:
+                    token.attrs["id"] = f"{auto_id_prefix}-{ident}"
+
+            self._handle_headings(tokens, on_heading=set_token_ident)
+
+
         check_structure(self._current_type[-1], tokens)
         for token in tokens:
             if not is_include(token):
@@ -89,7 +121,12 @@ class BaseConverter(Converter[md.TR], Generic[md.TR]):
             try:
                 self._base_paths.append(path)
                 with open(path, 'r') as f:
-                    tokens = self._parse(f.read())
+                    prefix = None
+                    if "auto-id-prefix" in block_args:
+                        # include the current file number to prevent duplicate ids within include blocks
+                        prefix = f"{block_args.get('auto-id-prefix')}-{lnum}"
+
+                    tokens = self._parse(f.read(), auto_id_prefix=prefix)
                     included.append((tokens, path))
                 self._base_paths.pop()
             except Exception as e:
@@ -554,8 +591,8 @@ class HTMLConverter(BaseConverter[ManualHTMLRenderer]):
             infile.parent, outfile.parent)
         super().convert(infile, outfile)
 
-    def _parse(self, src: str) -> list[Token]:
-        tokens = super()._parse(src)
+    def _parse(self, src: str, *, auto_id_prefix: None | str = None) -> list[Token]:
+        tokens = super()._parse(src,auto_id_prefix=auto_id_prefix)
         for token in tokens:
             if not token.type.startswith('included_') \
                or not (into := token.meta['include-args'].get('into-file')):
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/md.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/md.py
index 85513ef48697f..894daf9ca9c75 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/md.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/md.py
@@ -365,7 +365,7 @@ def _attr_span_plugin(md: markdown_it.MarkdownIt) -> None:
                 return False
             id, classes = parsed_attrs
 
-            token = state.push("attr_span_begin", "span", 1) # type: ignore[no-untyped-call]
+            token = state.push("attr_span_begin", "span", 1)
             if id:
                 token.attrs['id'] = id
             if classes:
@@ -375,7 +375,7 @@ def _attr_span_plugin(md: markdown_it.MarkdownIt) -> None:
             state.posMax = label_end
             state.md.inline.tokenize(state)
 
-            state.push("attr_span_end", "span", -1) # type: ignore[no-untyped-call]
+            state.push("attr_span_end", "span", -1)
 
         state.pos = label_end + match.end() + 1
         state.posMax = input_end
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
index 2813ffcf8bc0d..9a00da567fa9e 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
@@ -8,6 +8,7 @@ import xml.sax.saxutils as xml
 from abc import abstractmethod
 from collections.abc import Mapping, Sequence
 from markdown_it.token import Token
+from pathlib import Path
 from typing import Any, Generic, Optional
 from urllib.parse import quote
 
@@ -287,18 +288,27 @@ class ManpageConverter(BaseConverter[OptionsManpageRenderer]):
     _links_in_last_description: Optional[list[str]] = None
 
     def __init__(self, revision: str,
+                 header: list[str] | None,
+                 footer: list[str] | None,
                  *,
                  # only for parallel rendering
                  _options_by_id: Optional[dict[str, str]] = None):
         super().__init__(revision)
         self._options_by_id = _options_by_id or {}
         self._renderer = OptionsManpageRenderer({}, self._options_by_id)
+        self._header = header
+        self._footer = footer
 
     def _parallel_render_prepare(self) -> Any:
-        return (self._revision, { '_options_by_id': self._options_by_id })
+        return (
+            self._revision,
+            self._header,
+            self._footer,
+            { '_options_by_id': self._options_by_id },
+        )
     @classmethod
     def _parallel_render_init_worker(cls, a: Any) -> ManpageConverter:
-        return cls(a[0], **a[1])
+        return cls(a[0], a[1], a[2], **a[3])
 
     def _render_option(self, name: str, option: dict[str, Any]) -> RenderedOption:
         links = self._renderer.link_footnotes = []
@@ -342,26 +352,29 @@ class ManpageConverter(BaseConverter[OptionsManpageRenderer]):
     def finalize(self) -> str:
         result = []
 
-        result += [
-            r'''.TH "CONFIGURATION\&.NIX" "5" "01/01/1980" "NixOS" "NixOS Reference Pages"''',
-            r'''.\" disable hyphenation''',
-            r'''.nh''',
-            r'''.\" disable justification (adjust text to left margin only)''',
-            r'''.ad l''',
-            r'''.\" enable line breaks after slashes''',
-            r'''.cflags 4 /''',
-            r'''.SH "NAME"''',
-            self._render('{file}`configuration.nix` - NixOS system configuration specification'),
-            r'''.SH "DESCRIPTION"''',
-            r'''.PP''',
-            self._render('The file {file}`/etc/nixos/configuration.nix` contains the '
-                        'declarative specification of your NixOS system configuration. '
-                        'The command {command}`nixos-rebuild` takes this file and '
-                        'realises the system configuration specified therein.'),
-            r'''.SH "OPTIONS"''',
-            r'''.PP''',
-            self._render('You can use the following options in {file}`configuration.nix`.'),
-        ]
+        if self._header is not None:
+            result += self._header
+        else:
+            result += [
+                r'''.TH "CONFIGURATION\&.NIX" "5" "01/01/1980" "NixOS" "NixOS Reference Pages"''',
+                r'''.\" disable hyphenation''',
+                r'''.nh''',
+                r'''.\" disable justification (adjust text to left margin only)''',
+                r'''.ad l''',
+                r'''.\" enable line breaks after slashes''',
+                r'''.cflags 4 /''',
+                r'''.SH "NAME"''',
+                self._render('{file}`configuration.nix` - NixOS system configuration specification'),
+                r'''.SH "DESCRIPTION"''',
+                r'''.PP''',
+                self._render('The file {file}`/etc/nixos/configuration.nix` contains the '
+                            'declarative specification of your NixOS system configuration. '
+                            'The command {command}`nixos-rebuild` takes this file and '
+                            'realises the system configuration specified therein.'),
+                r'''.SH "OPTIONS"''',
+                r'''.PP''',
+                self._render('You can use the following options in {file}`configuration.nix`.'),
+            ]
 
         for (name, opt) in self._sorted_options():
             result += [
@@ -383,11 +396,14 @@ class ManpageConverter(BaseConverter[OptionsManpageRenderer]):
 
             result.append(".RE")
 
-        result += [
-            r'''.SH "AUTHORS"''',
-            r'''.PP''',
-            r'''Eelco Dolstra and the Nixpkgs/NixOS contributors''',
-        ]
+        if self._footer is not None:
+            result += self._footer
+        else:
+            result += [
+                r'''.SH "AUTHORS"''',
+                r'''.PP''',
+                r'''Eelco Dolstra and the Nixpkgs/NixOS contributors''',
+            ]
 
         return "\n".join(result)
 
@@ -480,8 +496,8 @@ class OptionsHTMLRenderer(OptionDocsRestrictions, HTMLRenderer):
         token.meta['compact'] = False
         return super().bullet_list_open(token, tokens, i)
     def fence(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        # TODO use token.info. docbook doesn't so we can't yet.
-        return f'<pre class="programlisting">{html.escape(token.content)}</pre>'
+        info = f" {html.escape(token.info, True)}" if token.info != "" else ""
+        return f'<pre><code class="programlisting{info}">{html.escape(token.content)}</code></pre>'
 
 class HTMLConverter(BaseConverter[OptionsHTMLRenderer]):
     __option_block_separator__ = ""
@@ -573,6 +589,8 @@ def _build_cli_db(p: argparse.ArgumentParser) -> None:
 
 def _build_cli_manpage(p: argparse.ArgumentParser) -> None:
     p.add_argument('--revision', required=True)
+    p.add_argument("--header", type=Path)
+    p.add_argument("--footer", type=Path)
     p.add_argument("infile")
     p.add_argument("outfile")
 
@@ -603,7 +621,22 @@ def _run_cli_db(args: argparse.Namespace) -> None:
             f.write(md.finalize())
 
 def _run_cli_manpage(args: argparse.Namespace) -> None:
-    md = ManpageConverter(revision = args.revision)
+    header = None
+    footer = None
+
+    if args.header is not None:
+        with args.header.open() as f:
+            header = f.read().splitlines()
+
+    if args.footer is not None:
+        with args.footer.open() as f:
+            footer = f.read().splitlines()
+
+    md = ManpageConverter(
+        revision = args.revision,
+        header = header,
+        footer = footer,
+    )
 
     with open(args.infile, 'r') as f:
         md.add_options(json.load(f))
diff --git a/pkgs/tools/nix/nixos-render-docs/src/tests/test_auto_id_prefix.py b/pkgs/tools/nix/nixos-render-docs/src/tests/test_auto_id_prefix.py
new file mode 100644
index 0000000000000..ab917a1064430
--- /dev/null
+++ b/pkgs/tools/nix/nixos-render-docs/src/tests/test_auto_id_prefix.py
@@ -0,0 +1,92 @@
+from pathlib import Path
+
+from markdown_it.token import Token
+from nixos_render_docs.manual import HTMLConverter, HTMLParameters
+from nixos_render_docs.md import Converter
+
+auto_id_prefix="TEST_PREFIX"
+def set_prefix(token: Token, ident: str) -> None:
+    token.attrs["id"] = f"{auto_id_prefix}-{ident}"
+
+
+def test_auto_id_prefix_simple() -> None:
+    md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {})
+
+    src = f"""
+# title
+
+## subtitle
+    """
+    tokens = Converter()._parse(src)
+    md._handle_headings(tokens, on_heading=set_prefix)
+
+    assert [
+        {**token.attrs, "tag": token.tag}
+        for token in tokens
+        if token.type == "heading_open"
+    ] == [
+        {"id": "TEST_PREFIX-1", "tag": "h1"},
+        {"id": "TEST_PREFIX-1.1", "tag": "h2"}
+    ]
+
+
+def test_auto_id_prefix_repeated() -> None:
+    md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {})
+
+    src = f"""
+# title
+
+## subtitle
+
+# title2
+
+## subtitle2
+    """
+    tokens = Converter()._parse(src)
+    md._handle_headings(tokens, on_heading=set_prefix)
+
+    assert [
+        {**token.attrs, "tag": token.tag}
+        for token in tokens
+        if token.type == "heading_open"
+    ] == [
+        {"id": "TEST_PREFIX-1", "tag": "h1"},
+        {"id": "TEST_PREFIX-1.1", "tag": "h2"},
+        {"id": "TEST_PREFIX-2", "tag": "h1"},
+        {"id": "TEST_PREFIX-2.1", "tag": "h2"},
+    ]
+
+def test_auto_id_prefix_maximum_nested() -> None:
+    md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {})
+
+    src = f"""
+# h1
+
+## h2
+
+### h3
+
+#### h4
+
+##### h5
+
+###### h6
+
+## h2.2
+    """
+    tokens = Converter()._parse(src)
+    md._handle_headings(tokens, on_heading=set_prefix)
+
+    assert [
+        {**token.attrs, "tag": token.tag}
+        for token in tokens
+        if token.type == "heading_open"
+    ] == [
+        {"id": "TEST_PREFIX-1", "tag": "h1"},
+        {"id": "TEST_PREFIX-1.1", "tag": "h2"},
+        {"id": "TEST_PREFIX-1.1.1", "tag": "h3"},
+        {"id": "TEST_PREFIX-1.1.1.1", "tag": "h4"},
+        {"id": "TEST_PREFIX-1.1.1.1.1", "tag": "h5"},
+        {"id": "TEST_PREFIX-1.1.1.1.1.1", "tag": "h6"},
+        {"id": "TEST_PREFIX-1.2", "tag": "h2"},
+    ]
diff --git a/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py b/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
index 96cf8d0b7dff1..fba0ce2679a41 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
@@ -204,8 +204,10 @@ def test_full() -> None:
           <div class="blockquote">
            <blockquote class="blockquote">
             <p>with <span class="emphasis"><em>nesting</em></span></p>
-            <pre class="programlisting">↵
-             nested code block↵
+            <pre>
+             <code class="programlisting">
+              nested code block↵
+             </code>
             </pre>
            </blockquote>
           </div>
@@ -213,8 +215,10 @@ def test_full() -> None:
            <ul class="itemizedlist compact" style="list-style-type: disc;">
             <li class="listitem"><p>and lists</p></li>
             <li class="listitem">
-             <pre class="programlisting">↵
-              containing code↵
+             <pre>
+              <code class="programlisting">
+               containing code↵
+              </code>
              </pre>
             </li>
            </ul>
@@ -240,11 +244,15 @@ def test_full() -> None:
              </p>
             </blockquote>
            </div>
-           <pre class="programlisting">↵
-            code block↵
+           <pre>
+            <code class="programlisting">
+             code block↵
+            </code>
            </pre>
-           <pre class="programlisting">↵
-            fenced block↵
+           <pre>
+            <code class="programlisting">
+             fenced block↵
+            </code>
            </pre>
            <p>text</p>
           </dd>
diff --git a/pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py b/pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py
index 8564297efdd3a..26fdcea907dd0 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py
@@ -208,7 +208,7 @@ def test_attr_span_escaping() -> None:
               content='\\[a]{#bar}', markup='', info='', meta={}, block=True, hidden=False,
               children=[
                   Token(type='text', tag='', nesting=0, attrs={}, map=None, level=0, children=None,
-                        content='[a]{#bar}', markup='', info='', meta={}, block=False, hidden=False)
+                        content='[a]{#bar}', markup='\\[', info='escape', meta={}, block=False, hidden=False)
               ]),
         Token(type='paragraph_close', tag='p', nesting=-1, attrs={}, map=None, level=0, children=None,
               content='', markup='', info='', meta={}, block=True, hidden=False)
@@ -220,7 +220,7 @@ def test_attr_span_escaping() -> None:
               content='\\\\[a]{#bar}', markup='', info='', meta={}, block=True, hidden=False,
               children=[
                   Token(type='text', tag='', nesting=0, attrs={}, map=None, level=0, children=None,
-                        content='\\', markup='', info='', meta={}, block=False, hidden=False),
+                        content='\\', markup='\\\\', info='escape', meta={}, block=False, hidden=False),
                   Token(type='attr_span_begin', tag='span', nesting=1, attrs={'id': 'bar'}, map=None, level=0,
                         children=None, content='', markup='', info='', meta={}, block=False, hidden=False),
                   Token(type='text', tag='', nesting=0, attrs={}, map=None, level=1, children=None,
@@ -237,7 +237,7 @@ def test_attr_span_escaping() -> None:
         Token(type='inline', tag='', nesting=0, attrs={}, map=[0, 1], level=1,
               children=[
                   Token(type='text', tag='', nesting=0, attrs={}, map=None, level=0, children=None,
-                        content='\\[a]{#bar}', markup='', info='', meta={}, block=False, hidden=False)
+                        content='\\[a]{#bar}', markup='\\\\', info='escape', meta={}, block=False, hidden=False)
               ],
               content='\\\\\\[a]{#bar}', markup='', info='', meta={}, block=True, hidden=False),
         Token(type='paragraph_close', tag='p', nesting=-1, attrs={}, map=None, level=0, children=None,
diff --git a/pkgs/tools/nix/nixpkgs-hammering/default.nix b/pkgs/tools/nix/nixpkgs-hammering/default.nix
index 3ce8bd1fc23e2..b5f1e51dd232c 100644
--- a/pkgs/tools/nix/nixpkgs-hammering/default.nix
+++ b/pkgs/tools/nix/nixpkgs-hammering/default.nix
@@ -8,13 +8,13 @@
 }:
 
 let
-  version = "unstable-2023-03-09";
+  version = "unstable-2023-11-06";
 
   src = fetchFromGitHub {
     owner = "jtojnar";
     repo = "nixpkgs-hammering";
-    rev = "243b81c687aac33d6716957c0cd2235c81631044";
-    hash = "sha256-a57Ux6W2EvJBEHL6Op9Pz6Tvw/LRRk7uCMRvneXggEo=";
+    rev = "8e33fc1e7b3b311ce3ba9c5c8c9e7cf89041b893";
+    hash = "sha256-D9c6EZMHy0aldzMxj4Ivw1YXNuG6MzyoEQlehEcxMBI=";
   };
 
   meta = with lib; {
@@ -28,7 +28,7 @@ let
     pname = "nixpkgs-hammering-rust-checks";
     inherit version src meta;
     sourceRoot = "${src.name}/rust-checks";
-    cargoHash = "sha256-MFYMP6eQS0wJbHmTRKaKajSborzaW6dEfshtAZcP+xs=";
+    cargoHash = "sha256-GIheha/AYH0uD61ck6TcpDz1gh1o5UxL/ojeZ/kHI8E=";
   };
 in
 
@@ -60,4 +60,3 @@ stdenv.mkDerivation {
     mainProgram = "nixpkgs-hammer";
   };
 }
-
diff --git a/pkgs/tools/package-management/akku/default.nix b/pkgs/tools/package-management/akku/default.nix
index e1baf2e0b1eb7..68ee94d3f94e2 100644
--- a/pkgs/tools/package-management/akku/default.nix
+++ b/pkgs/tools/package-management/akku/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "akku";
   };
 }
diff --git a/pkgs/tools/package-management/apk-tools/default.nix b/pkgs/tools/package-management/apk-tools/default.nix
index 5b37982e83f5b..4a460adfd0ff3 100644
--- a/pkgs/tools/package-management/apk-tools/default.nix
+++ b/pkgs/tools/package-management/apk-tools/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ qyliss ];
     license = licenses.gpl2Only;
     platforms = platforms.linux;
+    mainProgram = "apk";
   };
 }
diff --git a/pkgs/tools/package-management/apkg/default.nix b/pkgs/tools/package-management/apkg/default.nix
index 901a7aeff2b4c..18b52f0bcdb89 100644
--- a/pkgs/tools/package-management/apkg/default.nix
+++ b/pkgs/tools/package-management/apkg/default.nix
@@ -47,5 +47,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://pkg.labs.nic.cz/pages/apkg";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.vcunat /* close to upstream */ ];
+    mainProgram = "apkg";
   };
 }
diff --git a/pkgs/tools/package-management/apt-dater/default.nix b/pkgs/tools/package-management/apt-dater/default.nix
index a15ec7e9c1681..ec9c53f7d78c4 100644
--- a/pkgs/tools/package-management/apt-dater/default.nix
+++ b/pkgs/tools/package-management/apt-dater/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , autoreconfHook, pkg-config, gettext
-, vim, glib, libxml2, ncurses, popt, screen
+, xxd, glib, libxml2, ncurses, popt, screen
 }:
 
 stdenv.mkDerivation rec {
@@ -15,11 +15,11 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    pkg-config autoreconfHook gettext
+    pkg-config autoreconfHook gettext xxd
   ];
 
   buildInputs = [
-    libxml2 ncurses vim glib popt screen
+    libxml2 ncurses glib popt screen
   ];
 
   configureFlags = [ "--disable-history" ];
diff --git a/pkgs/tools/package-management/apt/default.nix b/pkgs/tools/package-management/apt/default.nix
deleted file mode 100644
index 60bd420f1548e..0000000000000
--- a/pkgs/tools/package-management/apt/default.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, bzip2
-, cmake
-, curl
-, db
-, docbook_xml_dtd_45
-, docbook_xsl
-, dpkg
-, gnutls
-, gtest
-, libgcrypt
-, libseccomp
-, libtasn1
-, libxslt
-, lz4
-, perlPackages
-, pkg-config
-, triehash
-, udev
-, xxHash
-, xz
-, zstd
-, withDocs ? true , w3m, doxygen
-, withNLS ? true , gettext
-}:
-
-stdenv.mkDerivation rec {
-  pname = "apt";
-  version = "2.7.3";
-
-  src = fetchurl {
-    url = "mirror://debian/pool/main/a/apt/apt_${version}.tar.xz";
-    hash = "sha256-mtLrLE8lzjU12aXYBW4f6TLW27WMJkfNX8jfjJ+N71M=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    gtest
-    libxslt.bin
-    pkg-config
-    triehash
-  ];
-
-  buildInputs = [
-    bzip2
-    curl
-    db
-    dpkg
-    gnutls
-    libgcrypt
-    libseccomp
-    libtasn1
-    lz4
-    perlPackages.perl
-    udev
-    xxHash
-    xz
-    zstd
-  ] ++ lib.optionals withDocs [
-    docbook_xml_dtd_45
-    doxygen
-    perlPackages.Po4a
-    w3m
-  ] ++ lib.optionals withNLS [
-    gettext
-  ];
-
-  cmakeFlags = [
-    "-DBERKELEY_INCLUDE_DIRS=${db.dev}/include"
-    "-DDOCBOOK_XSL=${docbook_xsl}/share/xml/docbook-xsl"
-    "-DGNUTLS_INCLUDE_DIR=${gnutls.dev}/include"
-    "-DROOT_GROUP=root"
-    "-DUSE_NLS=${if withNLS then "ON" else "OFF"}"
-    "-DWITH_DOC=${if withDocs then "ON" else "OFF"}"
-  ];
-
-  meta = with lib; {
-    homepage = "https://salsa.debian.org/apt-team/apt";
-    description = "Command-line package management tools used on Debian-based systems";
-    changelog = "https://salsa.debian.org/apt-team/apt/-/raw/${version}/debian/changelog";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/tools/package-management/apx/default.nix b/pkgs/tools/package-management/apx/default.nix
index 9c58e5e085048..26bece879f005 100644
--- a/pkgs/tools/package-management/apx/default.nix
+++ b/pkgs/tools/package-management/apx/default.nix
@@ -1,54 +1,48 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, makeWrapper
-, installShellFiles
-, docker
 , distrobox
+, installShellFiles
 }:
 
 buildGoModule rec {
   pname = "apx";
-  version = "1.8.2";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "Vanilla-OS";
-    repo = pname;
-    rev = "refs/tags/${version}";
-    hash = "sha256-nBhSl4r7LlgCA5/HCLpOleihE5n/JCJgf43KdCklQbg=";
+    repo = "apx";
+    rev = "v${version}";
+    hash = "sha256-OLJrwibw9uX5ty7FRZ0q8zx0i1vQXRKK8reQsJFFxAI=";
   };
 
   vendorHash = null;
 
+  nativeBuildInputs = [ installShellFiles ];
+
   ldflags = [ "-s" "-w" ];
 
-  nativeBuildInputs = [
-    makeWrapper
-    installShellFiles
-  ];
+  postPatch = ''
+    substituteInPlace config/apx.json \
+      --replace "/usr/share/apx/distrobox/distrobox" "${distrobox}/bin/distrobox" \
+      --replace "/usr/share/apx" "$out/bin/apx"
+    substituteInPlace settings/config.go \
+      --replace "/usr/share/apx/" "$out/share/apx/"
+  '';
 
   postInstall = ''
-    mkdir -p $out/etc/apx
-
-    cat > "$out/etc/apx/config.json" <<EOF
-    {
-      "containername": "apx_managed",
-      "image": "docker.io/library/ubuntu",
-      "pkgmanager": "apt",
-      "distroboxpath": "${distrobox}/bin/distrobox"
-    }
-    EOF
-
-    wrapProgram $out/bin/apx --prefix PATH : ${lib.makeBinPath [ docker distrobox ]}
-
-    installManPage man/de/man1/apx.1 man/es/man1/apx.1 man/fr/man1/apx.1 man/it/man1/apx.1 man/man1/apx.1 man/nl/man1/apx.1 man/pl/man1/apx.1 man/pt/man1/apx.1 man/pt_BR/man1/apx.1 man/ro/man1/apx.1 man/ru/man1/apx.1 man/sv/man1/apx.1 man/tr/man1/apx.1
+    install -Dm444 config/apx.json -t $out/share/apx/
+    installManPage man/man1/*
+    install -Dm444 README.md -t $out/share/docs/apx
+    install -Dm444 COPYING.md $out/share/licenses/apx/LICENSE
   '';
 
   meta = with lib; {
     description = "The Vanilla OS package manager";
     homepage = "https://github.com/Vanilla-OS/apx";
-    changelog = "https://github.com/Vanilla-OS/apx/releases/tag/${version}";
+    changelog = "https://github.com/Vanilla-OS/apx/releases/tag/v${version}";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ dit7ya ];
+    maintainers = with maintainers; [ dit7ya chewblacka ];
+    mainProgram = "apx";
   };
 }
diff --git a/pkgs/tools/package-management/auditwheel/default.nix b/pkgs/tools/package-management/auditwheel/default.nix
deleted file mode 100644
index 6ea176ab1ca49..0000000000000
--- a/pkgs/tools/package-management/auditwheel/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib
-, bzip2
-, patchelf
-, python3
-, fetchPypi
-, gnutar
-, unzip
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "auditwheel";
-  version = "5.1.2";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-PuWDABSTHqhK9c0GXGN7ZhTvoD2biL2Pv8kk5+0B1ro=";
-  };
-
-  nativeBuildInputs = with python3.pkgs; [
-    pbr
-  ];
-
-  propagatedBuildInputs = with python3.pkgs; [
-    pyelftools
-    setuptools
-  ];
-
-  nativeCheckInputs = with python3.pkgs; [
-    pretend
-    pytestCheckHook
-  ];
-
-  # Integration tests require docker and networking
-  disabledTestPaths = [
-    "tests/integration"
-  ];
-
-  # Ensure that there are no undeclared deps
-  postCheck = ''
-    PATH= PYTHONPATH= $out/bin/auditwheel --version > /dev/null
-  '';
-
-  makeWrapperArgs = [
-    "--prefix" "PATH" ":" (lib.makeBinPath [ bzip2 gnutar patchelf unzip ])
-  ];
-
-  meta = with lib; {
-    description = "Auditing and relabeling cross-distribution Linux wheels";
-    homepage = "https://github.com/pypa/auditwheel";
-    license = with licenses; [
-      mit  # auditwheel and nibabel
-      bsd2  # from https://github.com/matthew-brett/delocate
-      bsd3  # from https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-projects/pax-utils/lddtree.py
-    ];
-    maintainers = with maintainers; [ davhau ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/package-management/ciel/default.nix b/pkgs/tools/package-management/ciel/default.nix
index 7ccd34c665dc1..c5809fdca944c 100644
--- a/pkgs/tools/package-management/ciel/default.nix
+++ b/pkgs/tools/package-management/ciel/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
     # FIXME: remove this patch after https://github.com/AOSC-Dev/ciel-rs/pull/16 is merged
     (fetchpatch {
       name = "use-canonicalize-path-to-find-libexec.patch";
-      url = "https://github.com/AOSC-Dev/ciel-rs/pull/16.patch";
+      url = "https://github.com/AOSC-Dev/ciel-rs/commit/17f41538ed1057e855540f5abef7faf6ea4abf5c.patch";
       sha256 = "sha256-ELK2KpOuoBS774apomUIo8q1eXYs/FX895G7eBdgOQg=";
     })
   ];
@@ -62,10 +62,11 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers.";
+    description = "A tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers";
     homepage = "https://github.com/AOSC-Dev/ciel-rs";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ yisuidenghua ];
+    mainProgram = "ciel";
   };
 }
diff --git a/pkgs/tools/package-management/clib/default.nix b/pkgs/tools/package-management/clib/default.nix
index 229c63ab77449..4ecd812ddc2ae 100644
--- a/pkgs/tools/package-management/clib/default.nix
+++ b/pkgs/tools/package-management/clib/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, curl  }:
 
 stdenv.mkDerivation rec {
-  version = "2.8.3";
+  version = "2.8.5";
   pname = "clib";
 
   src = fetchFromGitHub {
     rev    = version;
     owner  = "clibs";
     repo   = "clib";
-    sha256 = "sha256-Ld6u+F25SOyYr+JWXVmn5G8grQ39eN8EY7j77WNycEE=";
+    sha256 = "sha256-znvqxZWkQndxE6s36c77whUPc1UokrofTApFSIKFOtM=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/tools/package-management/comma/default.nix b/pkgs/tools/package-management/comma/default.nix
index b8701d2ba9b6c..b73e64924a6d8 100644
--- a/pkgs/tools/package-management/comma/default.nix
+++ b/pkgs/tools/package-management/comma/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nix-community/comma";
     description = "Runs programs without installing them";
     license = licenses.mit;
+    mainProgram = "comma";
     maintainers = with maintainers; [ Enzime artturin marsam ];
   };
 }
diff --git a/pkgs/tools/package-management/conda/default.nix b/pkgs/tools/package-management/conda/default.nix
index b20165a078616..5638676838f76 100644
--- a/pkgs/tools/package-management/conda/default.nix
+++ b/pkgs/tools/package-management/conda/default.nix
@@ -77,7 +77,11 @@ in
       export QTCOMPOSE=${xorg.libX11}/share/X11/locale
       export LIBARCHIVE=${libarchive.lib}/lib/libarchive.so
       # Allows `conda activate` to work properly
-      source ${installationPath}/etc/profile.d/conda.sh
+      condaSh=${installationPath}/etc/profile.d/conda.sh
+      if [ ! -f $condaSh ]; then
+        conda-install
+      fi
+      source $condaSh
     '';
 
     runScript = "bash -l";
diff --git a/pkgs/tools/package-management/deploy-rs/default.nix b/pkgs/tools/package-management/deploy-rs/default.nix
index 7f4aeac5a45a6..72eacb558bb8a 100644
--- a/pkgs/tools/package-management/deploy-rs/default.nix
+++ b/pkgs/tools/package-management/deploy-rs/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage {
   pname = "deploy-rs";
-  version = "unstable-2023-09-12";
+  version = "unstable-2023-12-20";
 
   src = fetchFromGitHub {
     owner = "serokell";
     repo = "deploy-rs";
-    rev = "31c32fb2959103a796e07bbe47e0a5e287c343a8";
-    hash = "sha256-wE5kHco3+FQjc+MwTPwLVqYz4hM7uno2CgXDXUFMCpc=";
+    rev = "b709d63debafce9f5645a5ba550c9e0983b3d1f7";
+    hash = "sha256-0VUbWBW8VyiDRuimMuLsEO4elGuUw/nc2WDeuO1eN1M=";
   };
 
-  cargoHash = "sha256-WqZnDWMrqWy1rzR6n+acFW6VHWbDnQmoxtPDA5B37JU=";
+  cargoHash = "sha256-PVeCB1g3JSYE6PKWHyE3hfN/CKlb9XErt8uaD/ZyxIs=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreServices
diff --git a/pkgs/tools/package-management/disnix/DisnixWebService/default.nix b/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
index 9fd10a3aba081..461c0cacc06a6 100644
--- a/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
+++ b/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
@@ -1,12 +1,25 @@
-{lib, stdenv, fetchurl, apacheAnt, jdk, axis2, dbus_java }:
+{lib, stdenv, fetchFromGitHub, fetchpatch, apacheAnt, jdk, axis2, dbus_java }:
 
 stdenv.mkDerivation rec {
   pname = "DisnixWebService";
   version = "0.10.1";
-  src = fetchurl {
-    url = "https://github.com/svanderburg/DisnixWebService/releases/download/DisnixWebService-${version}/DisnixWebService-${version}.tar.gz";
-    sha256 = "02jxbgn9a0c9cr6knzp78bp9wiywzczy89wav7yxhg79vff8a1gr";
+
+  src = fetchFromGitHub {
+    owner = "svanderburg";
+    repo = "DisnixWebService";
+    rev = "refs/tags/DisnixWebService-${version}";
+    hash = "sha256-zcYr2Ytx4pevSthTQLpnQ330wDxN9dWsZA20jbO6PxQ=";
   };
+
+  patches = [
+    # Correct the DisnixWebService build for compatibility with Axis2 1.8.1
+    # See https://github.com/svanderburg/DisnixWebService/pull/2
+    (fetchpatch {
+      url = "https://github.com/svanderburg/DisnixWebService/commit/cee99c6af744b5dda16728a70ebd2800f61871a0.patch";
+      hash = "sha256-4rSEN8AwivUXUCIUYFBRIoE19jVDv+Vpgakmy8fR06A=";
+    })
+  ];
+
   buildInputs = [ apacheAnt jdk ];
   PREFIX = "\${env.out}";
   AXIS2_LIB = "${axis2}/lib";
@@ -22,6 +35,8 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A SOAP interface and client for Disnix";
+    homepage = "https://github.com/svanderburg/DisnixWebService";
+    changelog = "https://github.com/svanderburg/DisnixWebService/blob/DisnixWebService-${version}/NEWS.txt";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.sander ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/package-management/dnf5/default.nix b/pkgs/tools/package-management/dnf5/default.nix
index 3d6119f51ccab..31a19b542e70a 100644
--- a/pkgs/tools/package-management/dnf5/default.nix
+++ b/pkgs/tools/package-management/dnf5/default.nix
@@ -3,9 +3,11 @@
 , fetchFromGitHub
 , cmake
 , createrepo_c
+, doxygen
 , gettext
 , help2man
 , pkg-config
+, python3Packages
 , cppunit
 , fmt
 , json_c
@@ -14,26 +16,45 @@
 , libsmartcols
 , libsolv
 , libxml2
+, libyaml
+, pcre2
 , rpm
 , sdbus-cpp
+, sphinx
 , sqlite
 , systemd
+, testers
 , toml11
 , zchunk
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dnf5";
-  version = "5.1.4";
+  version = "5.1.10";
+
+  outputs = [ "out" "man" ];
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = "dnf5";
     rev = finalAttrs.version;
-    hash = "sha256-zQK7RRn2C/6Avu5oPqSW7KVv6JT3s2hrcgBRkP6055U=";
+    hash = "sha256-u+UiiCl67VtIedW4kn3fycafkgBVsFFkWQcN3NXQKl4=";
   };
 
-  nativeBuildInputs = [ cmake createrepo_c gettext help2man pkg-config ];
+  nativeBuildInputs = [
+    cmake
+    createrepo_c
+    doxygen
+    gettext
+    help2man
+    pkg-config
+    sphinx
+  ] ++ (with python3Packages; [
+    breathe
+    sphinx-autoapi
+    sphinx-rtd-theme
+  ]);
+
   buildInputs = [
     cppunit
     fmt
@@ -43,6 +64,8 @@ stdenv.mkDerivation (finalAttrs: {
     libsmartcols
     libsolv
     libxml2
+    libyaml
+    pcre2.dev
     rpm
     sdbus-cpp
     sqlite
@@ -58,9 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
     "-DWITH_PERL5=OFF"
     "-DWITH_PYTHON3=OFF"
     "-DWITH_RUBY=OFF"
-    "-DWITH_TESTS=OFF"
-    # TODO: fix man installation paths
-    "-DWITH_MAN=OFF"
+    "-DWITH_PLUGIN_RHSM=OFF" # Red Hat Subscription Manager plugin
     # the cmake package does not handle absolute CMAKE_INSTALL_INCLUDEDIR correctly
     # (setting it to an absolute path causes include files to go to $out/$out/include,
     #  because the absolute path is interpreted with root at $out).
@@ -68,6 +89,10 @@ stdenv.mkDerivation (finalAttrs: {
     "-DCMAKE_INSTALL_LIBDIR=lib"
   ];
 
+  postBuild = ''
+    make doc
+  '';
+
   prePatch = ''
     substituteInPlace dnf5daemon-server/dbus/CMakeLists.txt \
       --replace '/etc' "$out/etc" \
@@ -80,11 +105,17 @@ stdenv.mkDerivation (finalAttrs: {
 
   dontFixCmake = true;
 
+  passthru.tests = {
+    version = testers.testVersion { package = finalAttrs.finalPackage; };
+  };
+
   meta = with lib; {
     description = "Next-generation RPM package management system";
     homepage = "https://github.com/rpm-software-management/dnf5";
+    changelog = "https://github.com/rpm-software-management/dnf5/releases/tag/${version}";
     license = licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ malt3 ];
+    maintainers = with lib.maintainers; [ malt3 katexochen ];
+    mainProgram = "dnf5";
     platforms = platforms.linux ++ platforms.darwin;
   };
 })
diff --git a/pkgs/tools/package-management/dpkg/default.nix b/pkgs/tools/package-management/dpkg/default.nix
index 79bf6f8c5083f..59e259541992d 100644
--- a/pkgs/tools/package-management/dpkg/default.nix
+++ b/pkgs/tools/package-management/dpkg/default.nix
@@ -18,12 +18,12 @@
 
 stdenv.mkDerivation rec {
   pname = "dpkg";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchgit {
     url = "https://git.launchpad.net/ubuntu/+source/dpkg";
     rev = "applied/${version}";
-    hash = "sha256-q+kP0PuQyGKuKahA1/TwtJG380a/sNR433xZhxvGO9M=";
+    hash = "sha256-63XRO3Img+XS2F5Krb5DAw0LMhtxB+eJi754O03Lx8Q=";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/package-management/elm-github-install/default.nix b/pkgs/tools/package-management/elm-github-install/default.nix
index f86cdc55ecc1b..3c77af2b82bf5 100644
--- a/pkgs/tools/package-management/elm-github-install/default.nix
+++ b/pkgs/tools/package-management/elm-github-install/default.nix
@@ -17,5 +17,6 @@ bundlerEnv rec {
     license     = licenses.unfree;
     maintainers = with maintainers; [ roberth nicknovitski ];
     platforms   = platforms.all;
+    mainProgram = "elm-install";
   };
 }
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 07f17343cb7b8..4b440def96c5e 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,21 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5PuSIOXns0FVLgyIw1mk8hZ/tYhikMV860BHTDlji78=";
+    sha256 = "sha256-4huLO2CGKDRjphtAYbcPFLM1bYIppoqZgtxkOoT1JOs=";
   };
 
-  cargoSha256 = "sha256-UbbVjT5JQuVSCgbcelEVaAql4CUnCtO99zHp3Ei31Gs=";
+  cargoHash = "sha256-/q8I1XG96t6296UAvhTOYtWVtJFYX5iIaLya5nfqM/g=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
     homepage = "https://github.com/tversteeg/emplace";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "emplace";
   };
 }
diff --git a/pkgs/tools/package-management/fortran-fpm/default.nix b/pkgs/tools/package-management/fortran-fpm/default.nix
index 6e7c68aa17f12..0945b0c67e32c 100644
--- a/pkgs/tools/package-management/fortran-fpm/default.nix
+++ b/pkgs/tools/package-management/fortran-fpm/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
   pname = "fortran-fpm";
 
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchurl {
     url = "https://github.com/fortran-lang/fpm/releases/download/v${version}/fpm-${version}.F90";
-    sha256 = "sha256-VWs4g7odtv1iyZunFD8el+u0CXKcQgnwOqPG/JcMzj8=";
+    sha256 = "sha256-SOVj23Sva5OW6+Sme9NxIQ4uqMbis8wjDmgYPOdQlCI=";
   };
 
   dontUnpack = true;
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.proofconstruction ];
     license = licenses.mit;
     platforms = platforms.all;
+    mainProgram = "fortran-fpm";
   };
 }
diff --git a/pkgs/tools/package-management/fpm/default.nix b/pkgs/tools/package-management/fpm/default.nix
index 4eab1556d9544..6be2687d67adc 100644
--- a/pkgs/tools/package-management/fpm/default.nix
+++ b/pkgs/tools/package-management/fpm/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.mit;
     maintainers = with maintainers; [ manveru nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "fpm";
   };
 }
diff --git a/pkgs/tools/package-management/fusesoc/default.nix b/pkgs/tools/package-management/fusesoc/default.nix
index 99926fd5c0471..680cbc0209459 100644
--- a/pkgs/tools/package-management/fusesoc/default.nix
+++ b/pkgs/tools/package-management/fusesoc/default.nix
@@ -34,5 +34,6 @@ buildPythonPackage rec {
     description = "A package manager and build tools for HDL code";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
+    mainProgram = "fusesoc";
   };
 }
diff --git a/pkgs/tools/package-management/gx/default.nix b/pkgs/tools/package-management/gx/default.nix
index e53fdf48413f8..3f757dde448c1 100644
--- a/pkgs/tools/package-management/gx/default.nix
+++ b/pkgs/tools/package-management/gx/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/whyrusleeping/gx";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
+    mainProgram = "gx";
   };
 }
diff --git a/pkgs/tools/package-management/harmonia/default.nix b/pkgs/tools/package-management/harmonia/default.nix
index 4760514bebe49..9830570a07fde 100644
--- a/pkgs/tools/package-management/harmonia/default.nix
+++ b/pkgs/tools/package-management/harmonia/default.nix
@@ -2,36 +2,42 @@
 , boost
 , fetchFromGitHub
 , libsodium
-, nix
+, nixVersions
 , pkg-config
 , rustPlatform
+, stdenv
 , nix-update-script
 , nixosTests
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "harmonia";
-  version = "0.7.2";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "refs/tags/${pname}-v${version}";
-    hash = "sha256-LzStxaqoez144LhqLjLP3yNgCj/HFqKSy+JcAW/FwM8=";
+    hash = "sha256-72JMrXmxw/FuGjqXXxMIGiAbUUOqXEERdQwch+s3iwU=";
   };
 
-  cargoHash = "sha256-4DXIMsT69PhxqZX1j2aJ/XDLjvX76WbzEN0yxrnP9v0=";
+  cargoHash = "sha256-Q5Y5v7mmJpfZFGRgurTcRBRtbApFRrwqOBHdZTJbyzc=";
 
   nativeBuildInputs = [
-    pkg-config nix
+    pkg-config nixVersions.nix_2_19
   ];
 
   buildInputs = [
     boost
     libsodium
-    nix
+    nixVersions.nix_2_19
   ];
 
+  # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
   passthru = {
     updateScript = nix-update-script {
       extraArgs = [ "--version-regex" "harmonia-v(.*)" ];
diff --git a/pkgs/tools/package-management/holo-build/default.nix b/pkgs/tools/package-management/holo-build/default.nix
index fca55807f516c..41444e8533d56 100644
--- a/pkgs/tools/package-management/holo-build/default.nix
+++ b/pkgs/tools/package-management/holo-build/default.nix
@@ -55,5 +55,6 @@ buildGoModule rec {
     homepage = "https://holocm.org/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
+    mainProgram = "holo-build";
   };
 }
diff --git a/pkgs/tools/package-management/home-manager/default.nix b/pkgs/tools/package-management/home-manager/default.nix
index fa642cff5dd55..86b0a9b1e0132 100644
--- a/pkgs/tools/package-management/home-manager/default.nix
+++ b/pkgs/tools/package-management/home-manager/default.nix
@@ -16,14 +16,14 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "home-manager";
-  version = "2023-09-14";
+  version = "unstable-2024-01-28";
 
   src = fetchFromGitHub {
     name = "home-manager-source";
     owner = "nix-community";
     repo = "home-manager";
-    rev = "d9b88b43524db1591fb3d9410a21428198d75d49";
-    hash = "sha256-pv2k/5FvyirDE8g4TNehzwZ0T4UOMMmqWSQnM/luRtE=";
+    rev = "4d54c29bce71f8c261513e0662cc573d30f3e33e";
+    hash = "sha256-yhEYJxMv5BkfmUuNe4QELKo+V5eq1pwhtVs6kEziHfE=";
   };
 
   nativeBuildInputs = [
@@ -88,5 +88,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
+    mainProgram = "home-manager";
   };
 })
diff --git a/pkgs/tools/package-management/libcomps/default.nix b/pkgs/tools/package-management/libcomps/default.nix
new file mode 100644
index 0000000000000..89c2982497df4
--- /dev/null
+++ b/pkgs/tools/package-management/libcomps/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, check
+, cmake
+, doxygen
+, expat
+, fetchFromGitHub
+, libxml2
+, python
+, sphinx
+, stdenv
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libcomps";
+  version = "0.1.20";
+
+  outputs = [ "out" "dev" "py" ];
+
+  src = fetchFromGitHub {
+    owner = "rpm-software-management";
+    repo = "libcomps";
+    rev = version;
+    hash = "sha256-IX4du1+G7lwWrGnllydnBDap2aqK5pzos1Mdyu4MzOU=";
+  };
+
+  patches = [
+    ./fix-python-install-dir.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace libcomps/src/python/src/CMakeLists.txt \
+      --replace "@PYTHON_INSTALL_DIR@" "$out/${python.sitePackages}"
+  '';
+
+  nativeBuildInputs = [
+    check
+    cmake
+    doxygen
+    python
+    sphinx
+  ];
+
+  buildInputs = [
+    expat
+    libxml2
+    zlib
+  ];
+
+  dontUseCmakeBuildDir = true;
+  cmakeDir = "libcomps";
+
+  postFixup = ''
+    ls $out/lib
+    moveToOutput "lib/${python.libPrefix}" "$py"
+  '';
+
+  meta = with lib; {
+    description = "Comps XML file manipulation library";
+    homepage = "https://github.com/rpm-software-management/libcomps";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ katexochen ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/package-management/libcomps/fix-python-install-dir.patch b/pkgs/tools/package-management/libcomps/fix-python-install-dir.patch
new file mode 100644
index 0000000000000..958b4c80843c5
--- /dev/null
+++ b/pkgs/tools/package-management/libcomps/fix-python-install-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/libcomps/src/python/src/CMakeLists.txt b/libcomps/src/python/src/CMakeLists.txt
+index d22b84e..57bd1c2 100644
+--- a/libcomps/src/python/src/CMakeLists.txt
++++ b/libcomps/src/python/src/CMakeLists.txt
+@@ -85,7 +85,7 @@ IF (SKBUILD)
+     INSTALL(FILES libcomps/__init__.py DESTINATION libcomps/src/python/src/libcomps)
+     INSTALL(TARGETS pycomps LIBRARY DESTINATION libcomps/src/python/src/libcomps)
+ ELSE ()
+-    EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from sysconfig import get_path; stdout.write(get_path('platlib'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
++    SET(PYTHON_INSTALL_DIR "@PYTHON_INSTALL_DIR@")
+
+     INSTALL(FILES ${pycomps_SRCDIR}/libcomps/__init__.py DESTINATION ${PYTHON_INSTALL_DIR}/libcomps)
+     #INSTALL(FILES ${pycomps_SRCDIR}/tests/__test.py DESTINATION
diff --git a/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
index 1a2d1521f0f32..e7ecfc9c94db3 100644
--- a/pkgs/tools/package-management/libdnf/default.nix
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -15,17 +15,24 @@
 , libyaml
 , rpm
 , zchunk
+, cppunit
+, python
+, swig
+, glib
+, sphinx
 }:
 
 stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.71.0";
+  version = "0.72.0";
+
+  outputs = [ "out" "dev" "py" ];
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-kRpB80ntb5CbqnWpc3M3i7w06CkstPlJfo2X3WsuME8=";
+    hash = "sha256-Ou7cXJz4g8cx2KjeX+IFRA2m158PGKcb9jCXFuAOKqU=";
   };
 
   nativeBuildInputs = [
@@ -36,12 +43,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     check
+    cppunit
     openssl
     json_c
     libsmartcols
     libyaml
     libmodulemd
     zchunk
+    python
+    swig
+    sphinx
   ];
 
   propagatedBuildInputs = [
@@ -56,29 +67,38 @@ stdenv.mkDerivation rec {
     cp ${libsolv}/share/cmake/Modules/FindLibSolv.cmake cmake/modules/
   '';
 
-  postPatch = ''
-    # See https://github.com/NixOS/nixpkgs/issues/107428
-    substituteInPlace CMakeLists.txt \
-      --replace "enable_testing()" "" \
-      --replace "add_subdirectory(tests)" ""
+  patches = [
+    ./fix-python-install-dir.patch
+  ];
 
+  postPatch = ''
     # https://github.com/rpm-software-management/libdnf/issues/1518
     substituteInPlace libdnf/libdnf.pc.in \
       --replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@
+    substituteInPlace cmake/modules/FindPythonInstDir.cmake \
+      --replace "@PYTHON_INSTALL_DIR@" "$out/${python.sitePackages}"
   '';
 
   cmakeFlags = [
     "-DWITH_GTKDOC=OFF"
     "-DWITH_HTML=OFF"
-    "-DWITH_BINDINGS=OFF"
+    "-DPYTHON_DESIRED=${lib.head (lib.splitString ["."] python.version)}"
   ];
 
+  postInstall = ''
+    rm -r $out/${python.sitePackages}/hawkey/test
+  '';
+
+  postFixup = ''
+    moveToOutput "lib/${python.libPrefix}" "$py"
+  '';
+
   meta = with lib; {
     description = "Package management library";
     homepage = "https://github.com/rpm-software-management/libdnf";
     changelog = "https://github.com/rpm-software-management/libdnf/releases/tag/${version}";
     license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ rb2k ];
+    maintainers = with maintainers; [ rb2k katexochen ];
   };
 }
diff --git a/pkgs/tools/package-management/libdnf/fix-python-install-dir.patch b/pkgs/tools/package-management/libdnf/fix-python-install-dir.patch
new file mode 100644
index 0000000000000..d08ec9deec025
--- /dev/null
+++ b/pkgs/tools/package-management/libdnf/fix-python-install-dir.patch
@@ -0,0 +1,12 @@
+diff --git a/cmake/modules/FindPythonInstDir.cmake b/cmake/modules/FindPythonInstDir.cmake
+index ed098ded..2a2e1543 100644
+--- a/cmake/modules/FindPythonInstDir.cmake
++++ b/cmake/modules/FindPythonInstDir.cmake
+@@ -1,6 +1 @@
+-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "
+-from sys import stdout
+-from sysconfig import get_path
+-path=get_path(name='platlib', vars={'platbase':'${CMAKE_INSTALL_PREFIX}'})
+-stdout.write(path)"
+-OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
++SET(PYTHON_INSTALL_DIR "@PYTHON_INSTALL_DIR@")
diff --git a/pkgs/tools/package-management/licensee/Gemfile.lock b/pkgs/tools/package-management/licensee/Gemfile.lock
index 487224bf5da21..6bfe70664bd1b 100644
--- a/pkgs/tools/package-management/licensee/Gemfile.lock
+++ b/pkgs/tools/package-management/licensee/Gemfile.lock
@@ -1,36 +1,38 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.8.1)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
+    base64 (0.2.0)
     dotenv (2.8.1)
-    faraday (2.7.2)
+    faraday (2.8.1)
+      base64
       faraday-net_http (>= 2.0, < 3.1)
       ruby2_keywords (>= 0.0.4)
     faraday-net_http (3.0.2)
-    licensee (9.16.0)
+    licensee (9.16.1)
       dotenv (~> 2.0)
-      octokit (>= 4.20, < 7.0)
+      octokit (>= 4.20, < 9.0)
       reverse_markdown (>= 1, < 3)
       rugged (>= 0.24, < 2.0)
       thor (>= 0.19, < 2.0)
-    mini_portile2 (2.8.1)
-    nokogiri (1.13.10)
-      mini_portile2 (~> 2.8.0)
+    mini_portile2 (2.8.5)
+    nokogiri (1.16.0)
+      mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
-    octokit (6.0.1)
+    octokit (8.0.0)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
-    public_suffix (5.0.1)
-    racc (1.6.2)
+    public_suffix (5.0.4)
+    racc (1.7.3)
     reverse_markdown (2.1.1)
       nokogiri
     ruby2_keywords (0.0.5)
-    rugged (1.5.0.1)
+    rugged (1.7.1)
     sawyer (0.9.2)
       addressable (>= 2.3.5)
       faraday (>= 0.17.3, < 3)
-    thor (1.2.1)
+    thor (1.3.0)
 
 PLATFORMS
   ruby
@@ -39,4 +41,4 @@ DEPENDENCIES
   licensee
 
 BUNDLED WITH
-   2.3.26
+   2.4.22
diff --git a/pkgs/tools/package-management/licensee/default.nix b/pkgs/tools/package-management/licensee/default.nix
index fb33f498bbc39..b72c218cd16aa 100644
--- a/pkgs/tools/package-management/licensee/default.nix
+++ b/pkgs/tools/package-management/licensee/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
     platforms   = platforms.unix;
+    mainProgram = "licensee";
   };
 }
diff --git a/pkgs/tools/package-management/licensee/gemset.nix b/pkgs/tools/package-management/licensee/gemset.nix
index 25726d2ac5c25..0a850ba8758bc 100644
--- a/pkgs/tools/package-management/licensee/gemset.nix
+++ b/pkgs/tools/package-management/licensee/gemset.nix
@@ -5,10 +5,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ypdmpdn20hxp5vwxz3zc04r5xcwqc25qszdlg41h8ghdqbllwmw";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.8.6";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
   };
   dotenv = {
     groups = ["default"];
@@ -21,15 +31,15 @@
     version = "2.8.1";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "ruby2_keywords"];
+    dependencies = ["base64" "faraday-net_http" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17lacy6n0hsayafvgxgzmngfq2x62b2arbn32bj2yyzmgxwyxhqn";
+      sha256 = "19p45ryrvxff6ggdj4fq76dk7wlkfgrh474c3kwzdsjx3xpdq8x8";
       type = "gem";
     };
-    version = "2.7.2";
+    version = "2.8.1";
   };
   faraday-net_http = {
     groups = ["default"];
@@ -47,20 +57,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i4hs0vbgp0w3pdddr37zhydm16af122rmr0w39v3nqrj1ir65kv";
+      sha256 = "05g5w9c4jlfhwn0hfz117s1c7hfdm5yn7cywr4mah7xr41yvbh04";
       type = "gem";
     };
-    version = "9.16.0";
+    version = "9.16.1";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp";
+      sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.8.5";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -68,10 +78,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n79k78c5vdcyl0m3y3l5x9kxl6xf5lgriwi2vd665qmdkr01vnk";
+      sha256 = "1l8b0i24h4irivyhwy9xmkjbggw86cxkzkiqdqg0jpcp9qc8h4rl";
       type = "gem";
     };
-    version = "1.13.10";
+    version = "1.16.0";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -79,30 +89,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a5iy1v1n8f5ggp6q601mn8dz1n08ffs4gv0zsh5ca68j8dfmpx5";
+      sha256 = "11fhv1a43c51jkgmqf62aypf9yw74lc6ph4qmzsh2bydwwzbwqn3";
       type = "gem";
     };
-    version = "6.0.1";
+    version = "8.0.0";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35";
+      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "5.0.4";
   };
   racc = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09jgz6r0f7v84a7jz9an85q8vvmp743dqcsdm3z9c8rqcqv6pljq";
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
       type = "gem";
     };
-    version = "1.6.2";
+    version = "1.7.3";
   };
   reverse_markdown = {
     dependencies = ["nokogiri"];
@@ -130,10 +140,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02h1cv73znwfgy61mqmfylcfvwyyp3lddiz3njgivfx234mpz50x";
+      sha256 = "02m9zksfy3dwzhbv56xq2wwmlghca5209hdg895pi2x2d2sbkahi";
       type = "gem";
     };
-    version = "1.5.0.1";
+    version = "1.7.1";
   };
   sawyer = {
     dependencies = ["addressable" "faraday"];
@@ -151,9 +161,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi";
+      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.3.0";
   };
 }
diff --git a/pkgs/tools/package-management/microdnf/default.nix b/pkgs/tools/package-management/microdnf/default.nix
index be3041f253d84..79fcdf0300c22 100644
--- a/pkgs/tools/package-management/microdnf/default.nix
+++ b/pkgs/tools/package-management/microdnf/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ rb2k ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "microdnf";
   };
 }
diff --git a/pkgs/tools/package-management/micromamba/default.nix b/pkgs/tools/package-management/micromamba/default.nix
index b60edf0b04267..5ff23ec7188d6 100644
--- a/pkgs/tools/package-management/micromamba/default.nix
+++ b/pkgs/tools/package-management/micromamba/default.nix
@@ -35,13 +35,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "micromamba";
-  version = "1.4.4";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     owner = "mamba-org";
     repo = "mamba";
     rev = "micromamba-" + version;
-    hash = "sha256-Z6hED0fiXzEKpVm8tUBR9ynqWCvHGXkXHzAXbbWlq9Y=";
+    hash = "sha256-29SuR4RDW0+yNR1RHlm3I4avy0CjBTGxv1FKxMDZxO0=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -74,5 +74,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = with maintainers; [ mausch ];
+    mainProgram = "micromamba";
   };
 }
diff --git a/pkgs/tools/package-management/morph/default.nix b/pkgs/tools/package-management/morph/default.nix
index dfb41df33708f..71c9c285f3084 100644
--- a/pkgs/tools/package-management/morph/default.nix
+++ b/pkgs/tools/package-management/morph/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/dbcdk/morph";
     maintainers = with maintainers; [adamt johanot];
+    mainProgram = "morph";
   };
 }
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 2f775a35627b6..e37393e41b85e 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "2.33.1";
+  version = "2.35.3";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-5CNN0aKy9FnoqRwhbNVTUs04q+hkzoAWlDuDKMeT+1s=";
+    hash = "sha256-QoZiI9rMOdQZbMENVcBfUYPAvN9IqfeR0EK11l8+Hzo=";
   };
 
-  vendorHash = "sha256-P96qMc9KHDMreuPI3xY/yI/+8qp/znQM/O2B6t6iFug=";
+  vendorHash = "sha256-WYuhHLq0/OD/JtOEkZsyPEJyjPqEoh9RSfBG0G3E/2w=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
@@ -40,5 +40,6 @@ buildGoModule rec {
     changelog = "https://github.com/goreleaser/nfpm/releases/tag/v${version}";
     maintainers = with maintainers; [ marsam techknowlogick caarlos0 ];
     license = with licenses; [ mit ];
+    mainProgram = "nfpm";
   };
 }
diff --git a/pkgs/tools/package-management/niff/default.nix b/pkgs/tools/package-management/niff/default.nix
index 93406095df25e..827d4353f2835 100644
--- a/pkgs/tools/package-management/niff/default.nix
+++ b/pkgs/tools/package-management/niff/default.nix
@@ -30,5 +30,6 @@ in stdenv.mkDerivation {
     homepage = "https://github.com/FRidh/niff";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.fridh ];
+    mainProgram = "niff";
   };
 }
diff --git a/pkgs/tools/package-management/nix-doc/default.nix b/pkgs/tools/package-management/nix-doc/default.nix
index 2d0815e8af9be..8a4e523e98b58 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.6.2";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "lf-";
     repo = "nix-doc";
-    sha256 = "sha256-H81U0gR/7oWjP1z7JC8tTek+tqzTwyJWgaJQOSyNn5M=";
+    sha256 = "sha256-yL0oG0NiQ7OdGQ/kZxQbSbNphKapu5HBFNP5E2fVe+Y=";
   };
 
   doCheck = true;
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
     RUSTFLAGS = "-Z relro-level=partial";
   };
 
-  cargoSha256 = "sha256-yYVDToPLhGUYLrPNyyKwsYXe3QOTR26wtl3SCw4Za5s=";
+  cargoSha256 = "sha256-4bzLZt45ZLTZyZPZ4Nkvz7mNe4oqOIoaZUbCbNWBKG0=";
 
   meta = with lib; {
     description = "An interactive Nix documentation tool";
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.lgpl3Plus;
     maintainers = [ maintainers.lf- ];
     platforms = platforms.unix;
+    mainProgram = "nix-doc";
   };
 }
diff --git a/pkgs/tools/package-management/nix-du/default.nix b/pkgs/tools/package-management/nix-du/default.nix
index 37b42e29bb14b..a3a1f0d97108a 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 = "1.0.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "symphorien";
     repo = "nix-du";
     rev = "v${version}";
-    sha256 = "sha256-JU0kXMS4vCMdm3nOJM92Bit16141iuBnjRaV+HXiReQ=";
+    sha256 = "sha256-HfmMZVlsdg9hTWGUihl6OlQAp/n1XRvPLfAKJ8as8Ew=";
   };
 
-  cargoSha256 = "sha256-DX0jpp1ujaeesW7iQWZ5/xAzGndOQqBmQZbBpMEI9u0=";
+  cargoSha256 = "sha256-oUxxuBqec4aI2h8BAn1WSA44UU7f5APkv0DIwuSun0M=";
 
   doCheck = true;
   nativeCheckInputs = [ nix graphviz ];
@@ -34,11 +34,17 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
 
+  # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
   meta = with lib; {
     description = "A tool to determine which gc-roots take space in your nix store";
     homepage = "https://github.com/symphorien/nix-du";
     license = licenses.lgpl3Only;
     maintainers = [ maintainers.symphorien ];
     platforms = platforms.unix;
+    mainProgram = "nix-du";
   };
 }
diff --git a/pkgs/tools/package-management/nix-eval-jobs/default.nix b/pkgs/tools/package-management/nix-eval-jobs/default.nix
index 3677b4f1e882d..bf2d48e4adfb1 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 = "2.17.0";
+  version = "2.19.4";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-5rhsYKYKKOxv9aL2dPcFehdHcO58+ptG4CWaSYR6lfo=";
+    hash = "sha256-97ZqhTMqnAr1rzEy96faceWzFyWexnYbH1aTfc1y0JE=";
   };
   buildInputs = [
     boost
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ adisbladis mic92 ];
     platforms = lib.platforms.unix;
+    mainProgram = "nix-eval-jobs";
   };
 }
diff --git a/pkgs/tools/package-management/nix-pin/default.nix b/pkgs/tools/package-management/nix-pin/default.nix
index b924c8c07f4a5..59422ff22cc24 100644
--- a/pkgs/tools/package-management/nix-pin/default.nix
+++ b/pkgs/tools/package-management/nix-pin/default.nix
@@ -46,5 +46,6 @@ let self = stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.timbertson ];
     platforms = platforms.all;
+    mainProgram = "nix-pin";
   };
 }; in self
diff --git a/pkgs/tools/package-management/nix-prefetch/default.nix b/pkgs/tools/package-management/nix-prefetch/default.nix
index ee537733e7cb5..8ed71d078b78c 100644
--- a/pkgs/tools/package-management/nix-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch/default.nix
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ msteen ];
     homepage = "https://github.com/msteen/nix-prefetch";
     platforms = platforms.all;
+    mainProgram = "nix-prefetch";
   };
 }
diff --git a/pkgs/tools/package-management/nix-serve/default.nix b/pkgs/tools/package-management/nix-serve/default.nix
index 20f374b8d108e..a149b490f5aac 100644
--- a/pkgs/tools/package-management/nix-serve/default.nix
+++ b/pkgs/tools/package-management/nix-serve/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation {
     maintainers = [ maintainers.eelco ];
     license = licenses.lgpl21;
     platforms = nix.meta.platforms;
+    mainProgram = "nix-serve";
   };
 }
diff --git a/pkgs/tools/package-management/nix-simple-deploy/default.nix b/pkgs/tools/package-management/nix-simple-deploy/default.nix
index 0077c6c018958..647a11b01fdc5 100644
--- a/pkgs/tools/package-management/nix-simple-deploy/default.nix
+++ b/pkgs/tools/package-management/nix-simple-deploy/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     platforms = platforms.unix;
     license = with licenses; [ asl20 /* OR */ mit ];
     maintainers = with maintainers; [ misuzu ];
+    mainProgram = "nix-simple-deploy";
   };
 }
diff --git a/pkgs/tools/package-management/nix-template/default.nix b/pkgs/tools/package-management/nix-template/default.nix
index 84afede50fe2d..e1431532f8577 100644
--- a/pkgs/tools/package-management/nix-template/default.nix
+++ b/pkgs/tools/package-management/nix-template/default.nix
@@ -47,5 +47,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/jonringer/nix-template/releases/tag/v${version}";
     license = licenses.cc0;
     maintainers = with maintainers; [ jonringer ];
+    mainProgram = "nix-template";
   };
 }
diff --git a/pkgs/tools/package-management/nix-top/default.nix b/pkgs/tools/package-management/nix-top/default.nix
index 523f15bd46628..dc49f2a739e94 100644
--- a/pkgs/tools/package-management/nix-top/default.nix
+++ b/pkgs/tools/package-management/nix-top/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ samueldr ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "nix-top";
   };
 }
diff --git a/pkgs/tools/package-management/nix-universal-prefetch/default.nix b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
index 69ebf1c7cd004..be31ca34ad603 100644
--- a/pkgs/tools/package-management/nix-universal-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ samueldr ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "nix-universal-prefetch";
   };
 }
diff --git a/pkgs/tools/package-management/nix-update-source/default.nix b/pkgs/tools/package-management/nix-update-source/default.nix
index ebfd730544e12..533f487e39747 100644
--- a/pkgs/tools/package-management/nix-update-source/default.nix
+++ b/pkgs/tools/package-management/nix-update-source/default.nix
@@ -54,5 +54,6 @@ python3Packages.buildPythonApplication rec {
     description = "Utility to automate updating of nix derivation sources";
     maintainers = with lib.maintainers; [ timbertson ];
     license = lib.licenses.mit;
+    mainProgram = "nix-update-source";
   };
 }
diff --git a/pkgs/tools/package-management/nix-update/default.nix b/pkgs/tools/package-management/nix-update/default.nix
index 755286ec87054..20d5c3105e97c 100644
--- a/pkgs/tools/package-management/nix-update/default.nix
+++ b/pkgs/tools/package-management/nix-update/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/Mic92/nix-update/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda mic92 zowoq ];
+    mainProgram = "nix-update";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix
index 798c7cc918d53..670e2282aa20b 100644
--- a/pkgs/tools/package-management/nix/common.nix
+++ b/pkgs/tools/package-management/nix/common.nix
@@ -1,10 +1,12 @@
-{ lib, fetchFromGitHub
+{ lib
+, fetchFromGitHub
 , version
 , suffix ? ""
 , hash ? null
 , src ? fetchFromGitHub { owner = "NixOS"; repo = "nix"; rev = version; inherit hash; }
 , patches ? [ ]
-}:
+, maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ]
+}@args:
 assert (hash == null) -> (src != null);
 let
   atLeast24 = lib.versionAtLeast version "2.4pre";
@@ -27,6 +29,8 @@ in
 , callPackage
 , coreutils
 , curl
+, docbook_xsl_ns
+, docbook5
 , editline
 , flex
 , gnutar
@@ -37,6 +41,8 @@ in
 , libarchive
 , libcpuid
 , libsodium
+, libxml2
+, libxslt
 , lowdown
 , mdbook
 , mdbook-linkcheck
@@ -86,13 +92,17 @@ self = stdenv.mkDerivation {
 
   nativeBuildInputs = [
     pkg-config
-  ] ++ lib.optionals atLeast24 [
     autoconf-archive
     autoreconfHook
     bison
     flex
     jq
-  ] ++ lib.optionals (atLeast24 && enableDocumentation) [
+  ] ++ lib.optionals (enableDocumentation && !atLeast24) [
+    libxslt
+    libxml2
+    docbook_xsl_ns
+    docbook5
+  ] ++ lib.optionals (enableDocumentation && atLeast24) [
     (lib.getBin lowdown)
     mdbook
   ] ++ lib.optionals (atLeast213 && enableDocumentation) [
@@ -111,13 +121,12 @@ self = stdenv.mkDerivation {
     openssl
     sqlite
     xz
-  ] ++ lib.optionals stdenv.isDarwin [
-    Security
-  ] ++ lib.optionals atLeast24 [
     gtest
     libarchive
     lowdown
-  ] ++ lib.optionals (atLeast24 && stdenv.isx86_64) [
+  ] ++ lib.optionals stdenv.isDarwin [
+    Security
+  ] ++ lib.optionals (stdenv.isx86_64) [
     libcpuid
   ] ++ lib.optionals atLeast214 [
     rapidcheck
@@ -133,13 +142,6 @@ self = stdenv.mkDerivation {
     nlohmann_json
   ];
 
-  NIX_LDFLAGS = lib.optionals (!atLeast24) [
-    # https://github.com/NixOS/nix/commit/3e85c57a6cbf46d5f0fe8a89b368a43abd26daba
-    (lib.optionalString enableStatic "-lssl -lbrotlicommon -lssh2 -lz -lnghttp2 -lcrypto")
-    # https://github.com/NixOS/nix/commits/74b4737d8f0e1922ef5314a158271acf81cd79f8
-    (lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux" || stdenv.hostPlatform.system == "armv6l-linux") "-latomic")
-  ];
-
   postPatch = ''
     patchShebangs --build tests
   '';
@@ -180,11 +182,6 @@ self = stdenv.mkDerivation {
     "--enable-gc"
   ] ++ lib.optionals (!enableDocumentation) [
     "--disable-doc-gen"
-  ] ++ lib.optionals (!atLeast24) [
-    # option was removed in 2.4
-    "--disable-init-state"
-  ] ++ lib.optionals atLeast214 [
-    "CXXFLAGS=-I${lib.getDev rapidcheck}/extras/gtest/include"
   ] ++ lib.optionals stdenv.isLinux [
     "--with-sandbox-shell=${busybox-sandbox-shell}/bin/busybox"
   ] ++ lib.optionals (atLeast210 && stdenv.isLinux && stdenv.hostPlatform.isStatic) [
@@ -216,6 +213,11 @@ self = stdenv.mkDerivation {
   preInstallCheck = lib.optionalString stdenv.isDarwin ''
     export TMPDIR=$NIX_BUILD_TOP
   ''
+  # Prevent crashes in libcurl due to invoking Objective-C `+initialize` methods after `fork`.
+  # See http://sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html.
+  + lib.optionalString stdenv.isDarwin ''
+    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
+  ''
   # See https://github.com/NixOS/nix/issues/5687
   + lib.optionalString (atLeast25 && stdenv.isDarwin) ''
     echo "exit 99" > tests/gc-non-blocking.sh
@@ -235,6 +237,9 @@ self = stdenv.mkDerivation {
     };
   };
 
+  # point 'nix edit' and ofborg at the file that defines the attribute,
+  # not this common file.
+  pos = builtins.unsafeGetAttrPos "version" args;
   meta = with lib; {
     description = "Powerful package manager that makes package management reliable and reproducible";
     longDescription = ''
@@ -246,7 +251,7 @@ self = stdenv.mkDerivation {
     '';
     homepage = "https://nixos.org/";
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ eelco lovesegfault artturin ];
+    inherit maintainers;
     platforms = platforms.unix;
     outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
     mainProgram = "nix";
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 6a2b2948ff957..c3f970f78fb39 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -4,9 +4,9 @@
 , boehmgc
 , callPackage
 , fetchFromGitHub
-, fetchurl
 , fetchpatch
 , fetchpatch2
+, runCommand
 , Security
 
 , storeDir ? "/nix/store"
@@ -112,23 +112,52 @@ let
     hash = "sha256-s1ybRFCjQaSGj7LKu0Z5g7UiHqdJGeD+iPoQL0vaiS0=";
   };
 
-  patch-fix-aarch64-darwin-static = fetchpatch {
-    # https://github.com/NixOS/nix/pull/8068
-    name = "fix-aarch64-darwin-static.patch";
-    url = "https://github.com/NixOS/nix/commit/220aa8e0ac9d17de2c9f356a68be43b673d851a1.patch";
-    hash = "sha256-YrmFkVpwPreiig1/BsP+DInpTdQrPmS7bEY0WUGpw+c=";
+  patch-rapidcheck-shared = fetchpatch2 {
+    # https://github.com/NixOS/nix/pull/9431
+    name = "fix-missing-librapidcheck.patch";
+    url = "https://github.com/NixOS/nix/commit/46131567da96ffac298b9ec54016b37114b0dfd5.patch";
+    hash = "sha256-lShYxYKRDWwBqCysAFmFBudhhAL1eendWcL8sEFLCGg=";
   };
 
+  # Intentionally does not support overrideAttrs etc
+  # Use only for tests that are about the package relation to `pkgs` and/or NixOS.
+  addTestsShallowly = tests: pkg: pkg // {
+    tests = pkg.tests // tests;
+    # In case someone reads the wrong attribute
+    passthru.tests = pkg.tests // tests;
+  };
+
+  addFallbackPathsCheck = pkg: addTestsShallowly
+    { nix-fallback-paths =
+        runCommand "test-nix-fallback-paths-version-equals-nix-stable" {
+          paths = lib.concatStringsSep "\n" (builtins.attrValues (import ../../../../nixos/modules/installer/tools/nix-fallback-paths.nix));
+        } ''
+          if [[ "" != $(grep -v 'nix-${pkg.version}$' <<< "$paths") ]]; then
+            echo "nix-fallback-paths not up to date with nixVersions.stable (nix-${pkg.version})"
+            echo "The following paths are not up to date:"
+            grep -v 'nix-${pkg.version}$' <<< "$paths"
+            echo
+            echo "Fix it by running in nixpkgs:"
+            echo
+            echo "curl https://releases.nixos.org/nix/nix-${pkg.version}/fallback-paths.nix >nixos/modules/installer/tools/nix-fallback-paths.nix"
+            echo
+            exit 1
+          else
+            echo "nix-fallback-paths versions up to date"
+            touch $out
+          fi
+        '';
+    }
+    pkg;
+
 in lib.makeExtensible (self: ({
-  nix_2_3 = (common rec {
-    version = "2.3.16";
-    src = fetchurl {
-      url = "https://nixos.org/releases/nix/nix-${version}/nix-${version}.tar.xz";
-      hash = "sha256-fuaBtp8FtSVJLSAsO+3Nne4ZYLuBj2JpD2xEk7fCqrw=";
-    };
+  nix_2_3 = (common {
+    version = "2.3.17";
+    hash = "sha256-EK0pgHDekJFqr0oMj+8ANIjq96WPjICe2s0m4xkUdH4=";
     patches = [
       patch-monitorfdhup
     ];
+    maintainers = with lib.maintainers; [ flokli raitobezarius ];
   }).override { boehmgc = boehmgc-nix_2_3; };
 
   nix_2_10 = common {
@@ -164,36 +193,53 @@ in lib.makeExtensible (self: ({
   };
 
   nix_2_13 = common {
-    version = "2.13.5";
-    hash = "sha256-yHZMgMs/6/aQUwfMwmPUQov17JMGS7squLJsjmucnLc=";
-    patches = [
-      patch-fix-aarch64-darwin-static
-    ];
+    version = "2.13.6";
+    hash = "sha256-pd2yGmHWn4njfbrSP6cMJx8qL+yeGieqcbLNICzcRFs=";
   };
 
   nix_2_14 = common {
     version = "2.14.1";
     hash = "sha256-5aCmGZbsFcLIckCDfvnPD4clGPQI7qYAqHYlttN/Wkg=";
+    patches = [
+      patch-rapidcheck-shared
+    ];
   };
 
   nix_2_15 = common {
-    version = "2.15.2";
-    hash = "sha256-0BxVsvp4JfliYu4EdpZ/zPYOt9Qn5w9Ix5r0sagZZ7o=";
+    version = "2.15.3";
+    hash = "sha256-sfFXbjC5iIdSAbctZIuFozxX0uux/KFBNr9oh33xINs=";
+    patches = [
+      patch-rapidcheck-shared
+    ];
   };
 
   nix_2_16 = common {
-    version = "2.16.1";
-    hash = "sha256-/XCWa2osNFIpPC5MkxlX6qTZf/DaTLwS3LWN0SRFiuU=";
+    version = "2.16.2";
+    hash = "sha256-VXIYCDkvAWeMoU0W2ZI0TeOszCZA1o8trz6YCPFD5ac=";
+    patches = [
+      patch-rapidcheck-shared
+    ];
   };
 
   nix_2_17 = common {
-    version = "2.17.0";
-    hash = "sha256-QMYAkdtU+g9HlZKtoJ+AI6TbWzzovKGnPZJHfZdclc8=";
+    version = "2.17.1";
+    hash = "sha256-Q5L+rHzjp0bYuR2ogg+YPCn6isjmlQ4CJVT0zpn/hFc=";
+    patches = [
+      patch-rapidcheck-shared
+    ];
   };
 
   nix_2_18 = common {
     version = "2.18.1";
     hash = "sha256-WNmifcTsN9aG1ONkv+l2BC4sHZZxtNKy0keqBHXXQ7w=";
+    patches = [
+      patch-rapidcheck-shared
+    ];
+  };
+
+  nix_2_19 = common {
+    version = "2.19.3";
+    hash = "sha256-EtL6M0H5+0mFbFh+teVjm+0B+xmHoKwtBvigS5NMWoo=";
   };
 
   # The minimum Nix version supported by Nixpkgs
@@ -213,9 +259,9 @@ in lib.makeExtensible (self: ({
     else
       nix;
 
-  stable = self.nix_2_17;
+  stable = addFallbackPathsCheck self.nix_2_18;
 
-  unstable = self.stable;
+  unstable = self.nix_2_19;
 } // lib.optionalAttrs config.allowAliases {
   nix_2_4 = throw "nixVersions.nix_2_4 has been removed";
 
diff --git a/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch b/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
index e4e2b3858ad50..578bd325d56bd 100644
--- a/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
+++ b/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
@@ -1,8 +1,8 @@
 diff --git a/pthread_stop_world.c b/pthread_stop_world.c
-index b5d71e62..aed7b0bf 100644
+index 2b45489..0e6d8ef 100644
 --- a/pthread_stop_world.c
 +++ b/pthread_stop_world.c
-@@ -768,6 +768,8 @@ STATIC void GC_restart_handler(int sig)
+@@ -776,6 +776,8 @@ STATIC void GC_restart_handler(int sig)
  /* world is stopped.  Should not fail if it isn't.                      */
  GC_INNER void GC_push_all_stacks(void)
  {
@@ -11,10 +11,10 @@ index b5d71e62..aed7b0bf 100644
      GC_bool found_me = FALSE;
      size_t nthreads = 0;
      int i;
-@@ -851,6 +853,31 @@ GC_INNER void GC_push_all_stacks(void)
-           hi = p->altstack + p->altstack_size;
+@@ -868,6 +870,31 @@ GC_INNER void GC_push_all_stacks(void)
+             hi = p->altstack + p->altstack_size;
+ #         endif
            /* FIXME: Need to scan the normal stack too, but how ? */
-           /* FIXME: Assume stack grows down */
 +        } else {
 +          if (pthread_getattr_np(p->id, &pattr)) {
 +            ABORT("GC_push_all_stacks: pthread_getattr_np failed!");
@@ -41,5 +41,5 @@ index b5d71e62..aed7b0bf 100644
 +          #error "STACK_GROWS_UP not supported in boost_coroutine2 (as of june 2021), so we don't support it in Nix."
 +          #endif
          }
-         GC_push_all_stack_sections(lo, hi, traced_stack_sect);
- #       ifdef STACK_GROWS_UP
+ #       ifdef STACKPTR_CORRECTOR_AVAILABLE
+           if (GC_sp_corrector != 0)
diff --git a/pkgs/tools/package-management/nixops/default.nix b/pkgs/tools/package-management/nixops/default.nix
deleted file mode 100644
index 4be57480afd33..0000000000000
--- a/pkgs/tools/package-management/nixops/default.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{ lib, python2, poetry2nix, docbook_xsl_ns, openssh, cacert, nixopsAzurePackages ? []
-, fetchurl, fetchpatch
-}:
-
-let
-  inherit (poetry2nix.mkPoetryPackages {
-    projectDir = ./python-env;
-    python = python2;
-    overrides = [
-      poetry2nix.defaultPoetryOverrides
-      (self: super: {
-        certifi = super.certifi.overridePythonAttrs (old: {
-          meta = old.meta // {
-            knownVulnerabilities = [ "CVE-2022-23491" ];
-          };
-        });
-        pyjwt = super.pyjwt.overridePythonAttrs (old: {
-          meta = old.meta // {
-            knownVulnerabilities = lib.optionals (lib.versionOlder old.version "2.4.0") [
-              "CVE-2022-29217"
-            ];
-          };
-        });
-      })
-    ];
-  }) python;
-  pythonPackages = python.pkgs;
-
-in pythonPackages.buildPythonApplication rec {
-  pname = "nixops";
-  version = "1.7";
-
-  src = fetchurl {
-    url = "https://nixos.org/releases/nixops/nixops-${version}/nixops-${version}.tar.bz2";
-    sha256 = "091c0b5bca57d4aa20be20e826ec161efe3aec9c788fbbcf3806a734a517f0f3";
-  };
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/NixOS/nixops/commit/fb6d4665e8efd858a215bbaaf079ec3f5ebc49b8.patch";
-      sha256 = "1hbhykl811zsqlaj3y5m9d8lfsal6ps6n5p16ah6lqy2s18ap9d0";
-    })
-    ./optional-virtd.patch
-  ];
-
-  buildInputs = [ pythonPackages.libxslt ];
-
-  pythonPath = (with pythonPackages;
-    [ prettytable
-      boto
-      boto3
-      hetzner
-      apache-libcloud
-      adal
-      # Go back to sqlite once Python 2.7.13 is released
-      pysqlite
-      datadog
-      python-digitalocean
-      ]
-      ++ lib.optional (!libvirt.passthru.libvirt.meta.insecure or true) libvirt
-      ++ nixopsAzurePackages);
-
-  checkPhase =
-  # Ensure, that there are no (python) import errors
-  ''
-    SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt \
-    HOME=$(pwd) \
-      $out/bin/nixops --version
-  '';
-
-  postInstall = ''
-    make -C doc/manual install nixops.1 docbookxsl=${docbook_xsl_ns}/xml/xsl/docbook \
-      docdir=$out/share/doc/nixops mandir=$out/share/man
-
-    mkdir -p $out/share/nix/nixops
-    cp -av "nix/"* $out/share/nix/nixops
-
-    # Add openssh to nixops' PATH. On some platforms, e.g. CentOS and RHEL
-    # the version of openssh is causing errors when have big networks (40+)
-    wrapProgram $out/bin/nixops --prefix PATH : "${openssh}/bin"
-  '';
-
-  meta = {
-    homepage = "https://github.com/NixOS/nixops";
-    description = "NixOS cloud provisioning and deployment tool";
-    maintainers = with lib.maintainers; [ aminechikhaoui eelco rob ];
-    platforms = lib.platforms.unix;
-    license = lib.licenses.lgpl3;
-  };
-}
diff --git a/pkgs/tools/package-management/nixops/deps.nix b/pkgs/tools/package-management/nixops/deps.nix
deleted file mode 100644
index 7da38f83e7fe0..0000000000000
--- a/pkgs/tools/package-management/nixops/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/mattn/go-sqlite3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-sqlite3";
-      rev = "b4142c444a8941d0d92b0b7103a24df9cd815e42";
-      sha256 = "0xq2y4am8dz9w9aaq24s1npg1sn8pf2gn4nki73ylz2fpjwq9vla";
-    };
-  }
-  {
-    goPackagePath = "github.com/miekg/dns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miekg/dns";
-      rev = "75229eecb7af00b2736e93b779a78429dcb19472";
-      sha256 = "1vsjy07kkyx11iz4qsihhykac3ddq3ywdgv6bwrv407504f7x6wl";
-    };
-  }
-]
diff --git a/pkgs/tools/package-management/nixops/nixops-dns.nix b/pkgs/tools/package-management/nixops/nixops-dns.nix
deleted file mode 100644
index cf633a65ca53b..0000000000000
--- a/pkgs/tools/package-management/nixops/nixops-dns.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib
-, buildGoPackage
-, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "nixops-dns";
-  version = "1.0";
-
-  goDeps = ./deps.nix;
-  goPackagePath = "github.com/kamilchm/nixops-dns";
-
-  src = fetchFromGitHub {
-    owner = "kamilchm";
-    repo = "nixops-dns";
-    rev = "v${version}";
-    sha256 = "1fyqwk2knrv40zpf71a56bjyaycr3p6fzrqq7gaan056ydy83cai";
-  };
-
-  meta = with lib; {
-    homepage = "https://github.com/kamilchm/nixops-dns/";
-    description = "DNS server for resolving NixOps machines";
-    license = licenses.mit;
-    maintainers = with maintainers; [ kamilchm sorki ];
-  };
-}
diff --git a/pkgs/tools/package-management/nixops/optional-virtd.patch b/pkgs/tools/package-management/nixops/optional-virtd.patch
deleted file mode 100644
index 3697fdde8f263..0000000000000
--- a/pkgs/tools/package-management/nixops/optional-virtd.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/nixops/backends/libvirtd.py b/nixops/backends/libvirtd.py
-index bc5f4af7..edd1348b 100644
---- a/nixops/backends/libvirtd.py
-+++ b/nixops/backends/libvirtd.py
-@@ -8,12 +8,18 @@ import shutil
- import string
- import subprocess
- import time
--import libvirt
- 
- from nixops.backends import MachineDefinition, MachineState
- import nixops.known_hosts
- import nixops.util
- 
-+try:
-+    import libvirt
-+except:
-+    class libvirt(object):
-+        def __getattribute__(self, name):
-+            raise ValueError("The libvirt backend has been disabled because of security issues.")
-+
- # to prevent libvirt errors from appearing on screen, see
- # https://www.redhat.com/archives/libvirt-users/2017-August/msg00011.html
- 
diff --git a/pkgs/tools/package-management/nixops/python-env/poetry.lock b/pkgs/tools/package-management/nixops/python-env/poetry.lock
deleted file mode 100644
index 7cc195c95f57e..0000000000000
--- a/pkgs/tools/package-management/nixops/python-env/poetry.lock
+++ /dev/null
@@ -1,644 +0,0 @@
-[[package]]
-name = "adal"
-version = "1.2.7"
-description = "Note: This library is already replaced by MSAL Python, available here: https://pypi.org/project/msal/ .ADAL Python remains available here as a legacy. The ADAL for Python library makes it easy for python application to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources."
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-cryptography = ">=1.1.0"
-PyJWT = ">=1.0.0,<3"
-python-dateutil = ">=2.1.0,<3"
-requests = ">=2.0.0,<3"
-
-[[package]]
-name = "apache-libcloud"
-version = "2.8.3"
-description = "A standard Python library that abstracts away differences among multiple cloud provider APIs. For more information and documentation, please see http://libcloud.apache.org"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4"
-
-[package.dependencies]
-"backports.ssl-match-hostname" = {version = "*", markers = "python_version < \"2.7.9\""}
-enum34 = {version = "*", markers = "python_version < \"3.4.0\""}
-requests = ">=2.5.0"
-typing = {version = "*", markers = "python_version < \"3.4.0\""}
-
-[[package]]
-name = "backports.functools-lru-cache"
-version = "1.6.4"
-description = "Backport of functools.lru_cache"
-category = "main"
-optional = false
-python-versions = ">=2.6"
-
-[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-mypy", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-checkdocs (>=2.4)"]
-
-[[package]]
-name = "backports.ssl-match-hostname"
-version = "3.7.0.1"
-description = "The ssl.match_hostname() function from Python 3.5"
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "boto"
-version = "2.49.0"
-description = "Amazon Web Services Library"
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "boto3"
-version = "1.17.112"
-description = "The AWS SDK for Python"
-category = "main"
-optional = false
-python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
-
-[package.dependencies]
-botocore = ">=1.20.112,<1.21.0"
-jmespath = ">=0.7.1,<1.0.0"
-s3transfer = ">=0.4.0,<0.5.0"
-
-[[package]]
-name = "botocore"
-version = "1.20.112"
-description = "Low-level, data-driven core of boto 3."
-category = "main"
-optional = false
-python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
-
-[package.dependencies]
-jmespath = ">=0.7.1,<1.0.0"
-python-dateutil = ">=2.1,<3.0.0"
-urllib3 = ">=1.25.4,<1.27"
-
-[package.extras]
-crt = ["awscrt (==0.11.24)"]
-
-[[package]]
-name = "certifi"
-version = "2021.10.8"
-description = "Python package for providing Mozilla's CA Bundle."
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "cffi"
-version = "1.15.0"
-description = "Foreign Function Interface for Python calling C code."
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-pycparser = "*"
-
-[[package]]
-name = "chardet"
-version = "4.0.0"
-description = "Universal encoding detector for Python 2 and 3"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-
-[[package]]
-name = "configparser"
-version = "4.0.2"
-description = "Updated configparser from Python 3.7 for Python 2.6+."
-category = "main"
-optional = false
-python-versions = ">=2.6"
-
-[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2)", "pytest-flake8", "pytest-black-multipy"]
-
-[[package]]
-name = "contextlib2"
-version = "0.6.0.post1"
-description = "Backports and enhancements for the contextlib module"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-
-[[package]]
-name = "cryptography"
-version = "3.3.2"
-description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
-category = "main"
-optional = false
-python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*"
-
-[package.dependencies]
-cffi = ">=1.12"
-enum34 = {version = "*", markers = "python_version < \"3\""}
-ipaddress = {version = "*", markers = "python_version < \"3\""}
-six = ">=1.4.1"
-
-[package.extras]
-docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
-docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
-pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
-ssh = ["bcrypt (>=3.1.5)"]
-test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
-
-[[package]]
-name = "datadog"
-version = "0.42.0"
-description = "The Datadog Python library"
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-configparser = {version = "<5", markers = "python_version < \"3.0\""}
-requests = ">=2.6.0"
-typing = {version = "*", markers = "python_version < \"3.5\""}
-
-[[package]]
-name = "enum34"
-version = "1.1.10"
-description = "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4"
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "futures"
-version = "3.3.0"
-description = "Backport of the concurrent.futures package from Python 3"
-category = "main"
-optional = false
-python-versions = ">=2.6, <3"
-
-[[package]]
-name = "hetzner"
-version = "0.8.3"
-description = "High level access to the Hetzner robot"
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "idna"
-version = "2.10"
-description = "Internationalized Domain Names in Applications (IDNA)"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-
-[[package]]
-name = "importlib-metadata"
-version = "2.1.2"
-description = "Read metadata from Python packages"
-category = "main"
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
-
-[package.dependencies]
-configparser = {version = ">=3.5", markers = "python_version < \"3\""}
-contextlib2 = {version = "*", markers = "python_version < \"3\""}
-pathlib2 = {version = "*", markers = "python_version < \"3\""}
-zipp = ">=0.5"
-
-[package.extras]
-docs = ["sphinx", "rst.linker"]
-testing = ["packaging", "pep517", "unittest2", "importlib-resources (>=1.3)"]
-
-[[package]]
-name = "ipaddress"
-version = "1.0.23"
-description = "IPv4/IPv6 manipulation library"
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "jmespath"
-version = "0.10.0"
-description = "JSON Matching Expressions"
-category = "main"
-optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
-
-[[package]]
-name = "jsonpickle"
-version = "2.0.0"
-description = "Python library for serializing any arbitrary object graph into JSON"
-category = "main"
-optional = false
-python-versions = ">=2.7"
-
-[package.dependencies]
-importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
-
-[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["coverage (<5)", "pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov", "ecdsa", "feedparser", "numpy", "pandas", "pymongo", "sklearn", "sqlalchemy", "enum34", "jsonlib"]
-"testing.libs" = ["demjson", "simplejson", "ujson", "yajl"]
-
-[[package]]
-name = "pathlib2"
-version = "2.3.6"
-description = "Object-oriented filesystem paths"
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-scandir = {version = "*", markers = "python_version < \"3.5\""}
-six = "*"
-
-[[package]]
-name = "prettytable"
-version = "1.0.1"
-description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-
-[package.dependencies]
-wcwidth = "*"
-
-[package.extras]
-tests = ["pytest", "pytest-cov"]
-
-[[package]]
-name = "pycparser"
-version = "2.21"
-description = "C parser in Python"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-
-[[package]]
-name = "pyjwt"
-version = "1.7.1"
-description = "JSON Web Token implementation in Python"
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.extras]
-crypto = ["cryptography (>=1.4)"]
-flake8 = ["flake8", "flake8-import-order", "pep8-naming"]
-test = ["pytest (>=4.0.1,<5.0.0)", "pytest-cov (>=2.6.0,<3.0.0)", "pytest-runner (>=4.2,<5.0.0)"]
-
-[[package]]
-name = "pysqlite"
-version = "2.8.3"
-description = "DB-API 2.0 interface for SQLite 3.x"
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "python-dateutil"
-version = "2.8.2"
-description = "Extensions to the standard Python datetime module"
-category = "main"
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
-
-[package.dependencies]
-six = ">=1.5"
-
-[[package]]
-name = "python-digitalocean"
-version = "1.17.0"
-description = "digitalocean.com API to manage Droplets and Images"
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-jsonpickle = "*"
-requests = "*"
-
-[[package]]
-name = "requests"
-version = "2.27.1"
-description = "Python HTTP for Humans."
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
-
-[package.dependencies]
-certifi = ">=2017.4.17"
-chardet = {version = ">=3.0.2,<5", markers = "python_version < \"3\""}
-idna = {version = ">=2.5,<3", markers = "python_version < \"3\""}
-urllib3 = ">=1.21.1,<1.27"
-
-[package.extras]
-socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
-use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
-
-[[package]]
-name = "s3transfer"
-version = "0.4.2"
-description = "An Amazon S3 Transfer Manager"
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-botocore = ">=1.12.36,<2.0a.0"
-futures = {version = ">=2.2.0,<4.0.0", markers = "python_version == \"2.7\""}
-
-[package.extras]
-crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"]
-
-[[package]]
-name = "scandir"
-version = "1.10.0"
-description = "scandir, a better directory iterator and faster os.walk()"
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "six"
-version = "1.16.0"
-description = "Python 2 and 3 compatibility utilities"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
-
-[[package]]
-name = "typing"
-version = "3.10.0.0"
-description = "Type Hints for Python"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <3.5"
-
-[[package]]
-name = "urllib3"
-version = "1.26.8"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
-
-[package.extras]
-brotli = ["brotlipy (>=0.6.0)"]
-secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
-
-[[package]]
-name = "wcwidth"
-version = "0.2.5"
-description = "Measures the displayed width of unicode strings in a terminal"
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-"backports.functools-lru-cache" = {version = ">=1.2.1", markers = "python_version < \"3.2\""}
-
-[[package]]
-name = "zipp"
-version = "1.2.0"
-description = "Backport of pathlib-compatible object wrapper for zip files"
-category = "main"
-optional = false
-python-versions = ">=2.7"
-
-[package.dependencies]
-contextlib2 = {version = "*", markers = "python_version < \"3.4\""}
-
-[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"]
-
-[metadata]
-lock-version = "1.1"
-python-versions = "^2.7"
-content-hash = "4d572971089aafa023518c48b1048ea91ffb2d35c9737d0f43bf1b0395ae2769"
-
-[metadata.files]
-adal = [
-    {file = "adal-1.2.7-py2.py3-none-any.whl", hash = "sha256:2a7451ed7441ddbc57703042204a3e30ef747478eea022c70f789fc7f084bc3d"},
-    {file = "adal-1.2.7.tar.gz", hash = "sha256:d74f45b81317454d96e982fd1c50e6fb5c99ac2223728aea8764433a39f566f1"},
-]
-apache-libcloud = [
-    {file = "apache-libcloud-2.8.3.tar.gz", hash = "sha256:70096690b24a7832cc5abdfda1954b49fddc1c09a348a1e6caa781ac867ed4c6"},
-    {file = "apache_libcloud-2.8.3-py2.py3-none-any.whl", hash = "sha256:a3414c1ecc9bb9643fd11af18018b23922f4a2585babf9a4450c3531994935f2"},
-]
-"backports.functools-lru-cache" = [
-    {file = "backports.functools_lru_cache-1.6.4-py2.py3-none-any.whl", hash = "sha256:dbead04b9daa817909ec64e8d2855fb78feafe0b901d4568758e3a60559d8978"},
-    {file = "backports.functools_lru_cache-1.6.4.tar.gz", hash = "sha256:d5ed2169378b67d3c545e5600d363a923b09c456dab1593914935a68ad478271"},
-]
-"backports.ssl-match-hostname" = [
-    {file = "backports.ssl_match_hostname-3.7.0.1.tar.gz", hash = "sha256:bb82e60f9fbf4c080eabd957c39f0641f0fc247d9a16e31e26d594d8f42b9fd2"},
-]
-boto = [
-    {file = "boto-2.49.0-py2.py3-none-any.whl", hash = "sha256:147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8"},
-    {file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"},
-]
-boto3 = [
-    {file = "boto3-1.17.112-py2.py3-none-any.whl", hash = "sha256:8716465313c50ad9e5c2ac1767642ca0ddf7d1729c3d5c884d82880c1a15a310"},
-    {file = "boto3-1.17.112.tar.gz", hash = "sha256:08b6dacbe7ebe57ae8acfb7106b2728d946ae1e0c3da270caee1deb79ccbd8af"},
-]
-botocore = [
-    {file = "botocore-1.20.112-py2.py3-none-any.whl", hash = "sha256:6d51de0981a3ef19da9e6a3c73b5ab427e3c0c8b92200ebd38d087299683dd2b"},
-    {file = "botocore-1.20.112.tar.gz", hash = "sha256:d0b9b70b6eb5b65bb7162da2aaf04b6b086b15cc7ea322ddc3ef2f5e07944dcf"},
-]
-certifi = [
-    {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
-    {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
-]
-cffi = [
-    {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"},
-]
-chardet = [
-    {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
-    {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
-]
-configparser = [
-    {file = "configparser-4.0.2-py2.py3-none-any.whl", hash = "sha256:254c1d9c79f60c45dfde850850883d5aaa7f19a23f13561243a050d5a7c3fe4c"},
-    {file = "configparser-4.0.2.tar.gz", hash = "sha256:c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df"},
-]
-contextlib2 = [
-    {file = "contextlib2-0.6.0.post1-py2.py3-none-any.whl", hash = "sha256:3355078a159fbb44ee60ea80abd0d87b80b78c248643b49aa6d94673b413609b"},
-    {file = "contextlib2-0.6.0.post1.tar.gz", hash = "sha256:01f490098c18b19d2bd5bb5dc445b2054d2fa97f09a4280ba2c5f3c394c8162e"},
-]
-cryptography = [
-    {file = "cryptography-3.3.2-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:541dd758ad49b45920dda3b5b48c968f8b2533d8981bcdb43002798d8f7a89ed"},
-    {file = "cryptography-3.3.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:49570438e60f19243e7e0d504527dd5fe9b4b967b5a1ff21cc12b57602dd85d3"},
-    {file = "cryptography-3.3.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a4ac9648d39ce71c2f63fe7dc6db144b9fa567ddfc48b9fde1b54483d26042"},
-    {file = "cryptography-3.3.2-cp27-cp27m-win32.whl", hash = "sha256:aa4969f24d536ae2268c902b2c3d62ab464b5a66bcb247630d208a79a8098e9b"},
-    {file = "cryptography-3.3.2-cp27-cp27m-win_amd64.whl", hash = "sha256:1bd0ccb0a1ed775cd7e2144fe46df9dc03eefd722bbcf587b3e0616ea4a81eff"},
-    {file = "cryptography-3.3.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e18e6ab84dfb0ab997faf8cca25a86ff15dfea4027b986322026cc99e0a892da"},
-    {file = "cryptography-3.3.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:c7390f9b2119b2b43160abb34f63277a638504ef8df99f11cb52c1fda66a2e6f"},
-    {file = "cryptography-3.3.2-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:0d7b69674b738068fa6ffade5c962ecd14969690585aaca0a1b1fc9058938a72"},
-    {file = "cryptography-3.3.2-cp36-abi3-manylinux1_x86_64.whl", hash = "sha256:922f9602d67c15ade470c11d616f2b2364950602e370c76f0c94c94ae672742e"},
-    {file = "cryptography-3.3.2-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:a0f0b96c572fc9f25c3f4ddbf4688b9b38c69836713fb255f4a2715d93cbaf44"},
-    {file = "cryptography-3.3.2-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:a777c096a49d80f9d2979695b835b0f9c9edab73b59e4ceb51f19724dda887ed"},
-    {file = "cryptography-3.3.2-cp36-abi3-win32.whl", hash = "sha256:3c284fc1e504e88e51c428db9c9274f2da9f73fdf5d7e13a36b8ecb039af6e6c"},
-    {file = "cryptography-3.3.2-cp36-abi3-win_amd64.whl", hash = "sha256:7951a966613c4211b6612b0352f5bf29989955ee592c4a885d8c7d0f830d0433"},
-    {file = "cryptography-3.3.2.tar.gz", hash = "sha256:5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed"},
-]
-datadog = [
-    {file = "datadog-0.42.0-py2.py3-none-any.whl", hash = "sha256:140b51f5db3f46d6f3ec022c05830c6b3e13e4f62c19c823e1227ac322b26667"},
-    {file = "datadog-0.42.0.tar.gz", hash = "sha256:7a6fac17a7d09f1883ab9a45ce4ff7a16aa1a5eb3cc4c6cddac7f8c53e7d1e9b"},
-]
-enum34 = [
-    {file = "enum34-1.1.10-py2-none-any.whl", hash = "sha256:a98a201d6de3f2ab3db284e70a33b0f896fbf35f8086594e8c9e74b909058d53"},
-    {file = "enum34-1.1.10-py3-none-any.whl", hash = "sha256:c3858660960c984d6ab0ebad691265180da2b43f07e061c0f8dca9ef3cffd328"},
-    {file = "enum34-1.1.10.tar.gz", hash = "sha256:cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248"},
-]
-futures = [
-    {file = "futures-3.3.0-py2-none-any.whl", hash = "sha256:49b3f5b064b6e3afc3316421a3f25f66c137ae88f068abbf72830170033c5e16"},
-    {file = "futures-3.3.0.tar.gz", hash = "sha256:7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794"},
-]
-hetzner = [
-    {file = "hetzner-0.8.3.tar.gz", hash = "sha256:9a43dbbeb4a1f3efc86c5fe1c1d7039aaa635dfdb829506ec3aa34382d3a7114"},
-]
-idna = [
-    {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
-    {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
-]
-importlib-metadata = [
-    {file = "importlib_metadata-2.1.2-py2.py3-none-any.whl", hash = "sha256:cd6a92d78385dd145f5f233b3a6919acf5e8e43922aa9b9dbe78573e3540eb56"},
-    {file = "importlib_metadata-2.1.2.tar.gz", hash = "sha256:09db40742204610ef6826af16e49f0479d11d0d54687d0169ff7fddf8b3f557f"},
-]
-ipaddress = [
-    {file = "ipaddress-1.0.23-py2.py3-none-any.whl", hash = "sha256:6e0f4a39e66cb5bb9a137b00276a2eff74f93b71dcbdad6f10ff7df9d3557fcc"},
-    {file = "ipaddress-1.0.23.tar.gz", hash = "sha256:b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"},
-]
-jmespath = [
-    {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"},
-    {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"},
-]
-jsonpickle = [
-    {file = "jsonpickle-2.0.0-py2.py3-none-any.whl", hash = "sha256:c1010994c1fbda87a48f8a56698605b598cb0fc6bb7e7927559fc1100e69aeac"},
-    {file = "jsonpickle-2.0.0.tar.gz", hash = "sha256:0be49cba80ea6f87a168aa8168d717d00c6ca07ba83df3cec32d3b30bfe6fb9a"},
-]
-pathlib2 = [
-    {file = "pathlib2-2.3.6-py2.py3-none-any.whl", hash = "sha256:3a130b266b3a36134dcc79c17b3c7ac9634f083825ca6ea9d8f557ee6195c9c8"},
-    {file = "pathlib2-2.3.6.tar.gz", hash = "sha256:7d8bcb5555003cdf4a8d2872c538faa3a0f5d20630cb360e518ca3b981795e5f"},
-]
-prettytable = [
-    {file = "prettytable-1.0.1-py2.py3-none-any.whl", hash = "sha256:e7e464e8f7ecfd9a74c67f8da35f2a7da3d827235ba0a4737bb6d4b19f4a04bb"},
-    {file = "prettytable-1.0.1.tar.gz", hash = "sha256:6bb7f539903cb031fecb855b615cbcac8cd245ebc6fa51c6e23ab3386db89771"},
-]
-pycparser = [
-    {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
-    {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
-]
-pyjwt = [
-    {file = "PyJWT-1.7.1-py2.py3-none-any.whl", hash = "sha256:5c6eca3c2940464d106b99ba83b00c6add741c9becaec087fb7ccdefea71350e"},
-    {file = "PyJWT-1.7.1.tar.gz", hash = "sha256:8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96"},
-]
-pysqlite = [
-    {file = "pysqlite-2.8.3.tar.gz", hash = "sha256:17d3335863e8cf8392eea71add33dab3f96d060666fe68ab7382469d307f4490"},
-]
-python-dateutil = [
-    {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
-    {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
-]
-python-digitalocean = [
-    {file = "python-digitalocean-1.17.0.tar.gz", hash = "sha256:107854fde1aafa21774e8053cf253b04173613c94531f75d5a039ad770562b24"},
-    {file = "python_digitalocean-1.17.0-py3-none-any.whl", hash = "sha256:0032168e022e85fca314eb3f8dfaabf82087f2ed40839eb28f1eeeeca5afb1fa"},
-]
-requests = [
-    {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"},
-    {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"},
-]
-s3transfer = [
-    {file = "s3transfer-0.4.2-py2.py3-none-any.whl", hash = "sha256:9b3752887a2880690ce628bc263d6d13a3864083aeacff4890c1c9839a5eb0bc"},
-    {file = "s3transfer-0.4.2.tar.gz", hash = "sha256:cb022f4b16551edebbb31a377d3f09600dbada7363d8c5db7976e7f47732e1b2"},
-]
-scandir = [
-    {file = "scandir-1.10.0-cp27-cp27m-win32.whl", hash = "sha256:92c85ac42f41ffdc35b6da57ed991575bdbe69db895507af88b9f499b701c188"},
-    {file = "scandir-1.10.0-cp27-cp27m-win_amd64.whl", hash = "sha256:cb925555f43060a1745d0a321cca94bcea927c50114b623d73179189a4e100ac"},
-    {file = "scandir-1.10.0-cp34-cp34m-win32.whl", hash = "sha256:2c712840c2e2ee8dfaf36034080108d30060d759c7b73a01a52251cc8989f11f"},
-    {file = "scandir-1.10.0-cp34-cp34m-win_amd64.whl", hash = "sha256:2586c94e907d99617887daed6c1d102b5ca28f1085f90446554abf1faf73123e"},
-    {file = "scandir-1.10.0-cp35-cp35m-win32.whl", hash = "sha256:2b8e3888b11abb2217a32af0766bc06b65cc4a928d8727828ee68af5a967fa6f"},
-    {file = "scandir-1.10.0-cp35-cp35m-win_amd64.whl", hash = "sha256:8c5922863e44ffc00c5c693190648daa6d15e7c1207ed02d6f46a8dcc2869d32"},
-    {file = "scandir-1.10.0-cp36-cp36m-win32.whl", hash = "sha256:2ae41f43797ca0c11591c0c35f2f5875fa99f8797cb1a1fd440497ec0ae4b022"},
-    {file = "scandir-1.10.0-cp36-cp36m-win_amd64.whl", hash = "sha256:7d2d7a06a252764061a020407b997dd036f7bd6a175a5ba2b345f0a357f0b3f4"},
-    {file = "scandir-1.10.0-cp37-cp37m-win32.whl", hash = "sha256:67f15b6f83e6507fdc6fca22fedf6ef8b334b399ca27c6b568cbfaa82a364173"},
-    {file = "scandir-1.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b24086f2375c4a094a6b51e78b4cf7ca16c721dcee2eddd7aa6494b42d6d519d"},
-    {file = "scandir-1.10.0.tar.gz", hash = "sha256:4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae"},
-]
-six = [
-    {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
-    {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
-]
-typing = [
-    {file = "typing-3.10.0.0-py2-none-any.whl", hash = "sha256:c7219ef20c5fbf413b4567092adfc46fa6203cb8454eda33c3fc1afe1398a308"},
-    {file = "typing-3.10.0.0-py3-none-any.whl", hash = "sha256:12fbdfbe7d6cca1a42e485229afcb0b0c8259258cfb919b8a5e2a5c953742f89"},
-    {file = "typing-3.10.0.0.tar.gz", hash = "sha256:13b4ad211f54ddbf93e5901a9967b1e07720c1d1b78d596ac6a439641aa1b130"},
-]
-urllib3 = [
-    {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
-    {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
-]
-wcwidth = [
-    {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
-    {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
-]
-zipp = [
-    {file = "zipp-1.2.0-py2.py3-none-any.whl", hash = "sha256:e0d9e63797e483a30d27e09fffd308c59a700d365ec34e93cc100844168bf921"},
-    {file = "zipp-1.2.0.tar.gz", hash = "sha256:c70410551488251b0fee67b460fb9a536af8d6f9f008ad10ac51f615b6a521b1"},
-]
diff --git a/pkgs/tools/package-management/nixops/python-env/pyproject.toml b/pkgs/tools/package-management/nixops/python-env/pyproject.toml
deleted file mode 100644
index 2c216e4022594..0000000000000
--- a/pkgs/tools/package-management/nixops/python-env/pyproject.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[tool.poetry]
-name = "nixops-python-env"
-version = "0.1.0"
-description = ""
-authors = ["Your Name <you@example.com>"]
-license = "MIT"
-
-[tool.poetry.dependencies]
-python = "^2.7"
-prettytable = "^1.0.1"
-boto = "^2.49.0"
-boto3 = "^1.17.97"
-hetzner = "^0.8.3"
-apache-libcloud = "^2.8.3"
-adal = "^1.2.7"
-pysqlite = "^2.8.3"
-datadog = "^0.42.0"
-python-digitalocean = "^1.17.0"
-
-[tool.poetry.dev-dependencies]
-
-[build-system]
-requires = ["poetry-core>=1.0.0"]
-build-backend = "poetry.core.masonry.api"
diff --git a/pkgs/tools/package-management/nixops/python-env/shell.nix b/pkgs/tools/package-management/nixops/python-env/shell.nix
deleted file mode 100644
index 13fcab0e0faa5..0000000000000
--- a/pkgs/tools/package-management/nixops/python-env/shell.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-let
-  pkgs = import ../../../../../. { };
-in pkgs.mkShell {
-  packages = [
-    pkgs.python2
-    pkgs.poetry
-  ];
-}
diff --git a/pkgs/tools/package-management/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index bc4ba3f630f81..5e57c69642384 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -16,14 +16,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.10.2";
+  version = "2.10.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
     rev = version;
-    hash = "sha256-x41piT7peYV3sNMVYsqcjCU4u+PayZb05JIWBeWF7jw=";
+    hash = "sha256-iO+B/4UsMi+vf85oyLwZTigZ+mmt7Sk3qGba20/0XBs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/npm-check-updates/default.nix b/pkgs/tools/package-management/npm-check-updates/default.nix
index 93585593a4940..7f88dc4e4e000 100644
--- a/pkgs/tools/package-management/npm-check-updates/default.nix
+++ b/pkgs/tools/package-management/npm-check-updates/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "npm-check-updates";
-  version = "16.13.0";
+  version = "16.14.12";
 
   src = fetchFromGitHub {
     owner = "raineorshine";
     repo = "npm-check-updates";
     rev = "v${version}";
-    hash = "sha256-RrNO1TAPNFB/6JWY8xZjNCZ+FDgM0MCn7vaDXoCSIfI=";
+    hash = "sha256-3/DaEgPF9+wofYqA1XrJul4/cNGuGeXAeRg0HW0O+Ok=";
   };
 
-  npmDepsHash = "sha256-aghW4d3/8cJmwpmI5PcHioCnc91Yu4N5EfwuoaB5Xqw=";
+  npmDepsHash = "sha256-zUJKuiMycVCuXMh6caMzmi6qpgknVsvmqV3XykhlSBI=";
 
   meta = {
     changelog = "https://github.com/raineorshine/npm-check-updates/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/tools/package-management/opkg/default.nix b/pkgs/tools/package-management/opkg/default.nix
index f62e6e246f691..6a85e4bb9e885 100644
--- a/pkgs/tools/package-management/opkg/default.nix
+++ b/pkgs/tools/package-management/opkg/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "opkg";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchurl {
     url = "https://downloads.yoctoproject.org/releases/opkg/opkg-${version}.tar.gz";
-    hash = "sha256-6H/MtXXGTTrAVZREAWonlfEhJZhqDaiWurl8ShovGyo=";
+    hash = "sha256-rHOpCiVJzQSUjlY9kVkSx44bi6D0OvdcWlP8ykdK29U=";
   };
 
   nativeBuildInputs = [
@@ -38,6 +38,11 @@ stdenv.mkDerivation rec {
     libxml2
   ];
 
+  configureFlags = [
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
+  ];
+
   meta = with lib; {
     description = "A lightweight package management system based upon ipkg";
     homepage = "https://git.yoctoproject.org/cgit/cgit.cgi/opkg/";
diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix
index b51a51da84f5a..2e150f692ae90 100644
--- a/pkgs/tools/package-management/packagekit/default.nix
+++ b/pkgs/tools/package-management/packagekit/default.nix
@@ -24,19 +24,20 @@
 , bash-completion ? null
 , enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
 , systemd
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
   pname = "packagekit";
-  version = "1.2.5.1pre";
+  version = "1.2.8";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchFromGitHub {
     owner = "PackageKit";
     repo = "PackageKit";
-    rev = "30bb82da8d4161330a6d7a20c9989149303421a1";
-    sha256 = "k2osc2v0OuGrNjwxdqn785RsbHEJP3p79PG9YqnVE3U=";
+    rev = "v${version}";
+    hash = "sha256-k51uQHar/uvdTDj/Ud60Oh6H7rfjEc9bfQnH5cvg8hc=";
   };
 
   buildInputs = [
@@ -92,6 +93,10 @@ stdenv.mkDerivation rec {
       --replace "install_dir: join_paths(get_option('localstatedir'), 'lib', 'PackageKit')," "install_dir: join_paths('$out', 'var', 'lib', 'PackageKit'),"
   '';
 
+  passthru.tests = {
+    nixos-test = nixosTests.packagekit;
+  };
+
   meta = with lib; {
     description = "System to facilitate installing and updating packages";
     longDescription = ''
diff --git a/pkgs/tools/package-management/packagekit/qt.nix b/pkgs/tools/package-management/packagekit/qt.nix
index 72045735cba3c..897f8d9e7b4a2 100644
--- a/pkgs/tools/package-management/packagekit/qt.nix
+++ b/pkgs/tools/package-management/packagekit/qt.nix
@@ -1,7 +1,9 @@
-{ stdenv, fetchFromGitHub, cmake, pkg-config
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config
 , qttools, packagekit }:
 
-stdenv.mkDerivation rec {
+let
+  isQt6 = lib.versions.major qttools.version == "6";
+in stdenv.mkDerivation rec {
   pname = "packagekit-qt";
   version = "1.1.1";
 
@@ -16,6 +18,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config qttools ];
 
+  cmakeFlags = [ (lib.cmakeBool "BUILD_WITH_QT6" isQt6) ];
+
   dontWrapQtApps = true;
 
   meta = packagekit.meta // {
diff --git a/pkgs/tools/package-management/pacman/default.nix b/pkgs/tools/package-management/pacman/default.nix
index f9a7fcdcde59c..800e392f0f241 100644
--- a/pkgs/tools/package-management/pacman/default.nix
+++ b/pkgs/tools/package-management/pacman/default.nix
@@ -48,9 +48,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-fY4+jFEhrsCWXfcfWb7fRgUsbPFPljZcRBHsPeCkwaU=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     asciidoc
     installShellFiles
+    libarchive
     makeWrapper
     meson
     ninja
diff --git a/pkgs/tools/package-management/pacup/default.nix b/pkgs/tools/package-management/pacup/default.nix
index 70c1fba6c6985..7afd4eb815d73 100644
--- a/pkgs/tools/package-management/pacup/default.nix
+++ b/pkgs/tools/package-management/pacup/default.nix
@@ -41,5 +41,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/pacstall/pacup/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ zahrun ];
+    mainProgram = "pacup";
   };
 }
diff --git a/pkgs/tools/package-management/pdm/default.nix b/pkgs/tools/package-management/pdm/default.nix
index bc6c2be1060d0..d94aaeae69d99 100644
--- a/pkgs/tools/package-management/pdm/default.nix
+++ b/pkgs/tools/package-management/pdm/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , python3
 , fetchFromGitHub
+, fetchpatch
 , fetchPypi
 , nix-update-script
 , runtimeShell
@@ -31,13 +32,14 @@ in
 with python.pkgs;
 buildPythonApplication rec {
   pname = "pdm";
-  version = "2.9.3";
-  format = "pyproject";
-  disabled = pythonOlder "3.7";
+  version = "2.12.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CxGVtR6WMLWgsGPyffywEgy26ihPGkzZdaOibwhW0lM=";
+    hash = "sha256-U82rcnwUaf3Blu/Y1/+EBKPKke5DwKVxRzbyAg0KXd8=";
   };
 
   nativeBuildInputs = [
@@ -48,6 +50,7 @@ buildPythonApplication rec {
     blinker
     certifi
     cachecontrol
+    dep-logic
     findpython
     installer
     packaging
@@ -68,6 +71,9 @@ buildPythonApplication rec {
   ]
   ++ lib.optionals (pythonOlder "3.10") [
     importlib-metadata
+  ]
+  ++ lib.optionals (pythonAtLeast "3.10") [
+    truststore
   ];
 
   nativeCheckInputs = [
@@ -101,10 +107,11 @@ buildPythonApplication rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    homepage = "https://pdm.fming.dev";
+    homepage = "https://pdm-project.org";
     changelog = "https://github.com/pdm-project/pdm/releases/tag/${version}";
     description = "A modern Python package manager with PEP 582 support";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "pdm";
   };
 }
diff --git a/pkgs/tools/package-management/pkg/default.nix b/pkgs/tools/package-management/pkg/default.nix
index 07d42879c8968..b100b9984915f 100644
--- a/pkgs/tools/package-management/pkg/default.nix
+++ b/pkgs/tools/package-management/pkg/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pkg";
-  version = "1.20.7";
+  version = "1.20.8";
 
   src = fetchFromGitHub {
     owner = "freebsd";
     repo = "pkg";
     rev = finalAttrs.version;
-    sha256 = "sha256-k7QDdHwxM1RYoZy37rzhJunk3RQXVC3rkdoXUVL00wQ=";
+    sha256 = "sha256-pQgZMCd4PEjNZKm9V35Rca7Miblv1EgkH+CxaiKvhpY=";
   };
 
   setOutputFlags = false;
@@ -32,5 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ qyliss ];
     platforms = with platforms; darwin ++ freebsd ++ linux ++ netbsd ++ openbsd;
     license = licenses.bsd2;
+    mainProgram = "pkg";
   };
 })
diff --git a/pkgs/tools/package-management/poetry/default.nix b/pkgs/tools/package-management/poetry/default.nix
index 4d4a98491cb91..75cede5df7d35 100644
--- a/pkgs/tools/package-management/poetry/default.nix
+++ b/pkgs/tools/package-management/poetry/default.nix
@@ -1,30 +1,30 @@
-{ lib
-, python3
-, fetchFromGitHub
-, fetchPypi
-}:
+{ lib, python3, fetchFromGitHub }:
 
 let
-  python = python3.override {
-    packageOverrides = self: super: {
+  newPackageOverrides =
+    self: super: {
       poetry = self.callPackage ./unwrapped.nix { };
 
-      # version overrides required by poetry and its plugins
-      deepdiff = super.deepdiff.overridePythonAttrs (old: rec {
-        doCheck = false;
-      });
+      # The versions of Poetry and poetry-core need to match exactly,
+      # and poetry-core in nixpkgs requires a staging cycle to be updated,
+      # so apply an override here.
+      #
+      # We keep the override around even when the versions match, as
+      # it's likely to become relevant again after the next Poetry update.
       poetry-core = super.poetry-core.overridePythonAttrs (old: rec {
-        version = "1.7.0";
+        version = "1.8.1";
         src = fetchFromGitHub {
           owner = "python-poetry";
           repo = "poetry-core";
           rev = version;
-          hash = "sha256-OfY2zc+5CgOrgbiPVnvMdT4h1S7Aek8S7iThl6azmsk=";
+          hash = "sha256-RnCJ67jaL2knwv+Uo7p0zOejHAT73f40weaJnfqOYoM=";
         };
-        patches = [ ];
       });
     } // (plugins self);
-  };
+  python = python3.override (old: {
+    packageOverrides = lib.composeManyExtensions
+      ((if old ? packageOverrides then [ old.packageOverrides ] else [ ]) ++ [ newPackageOverrides ]);
+  });
 
   plugins = ps: with ps; {
     poetry-audit-plugin = callPackage ./plugins/poetry-audit-plugin.nix { };
diff --git a/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix b/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
index d040c32c4834e..b4ede0bdedaab 100644
--- a/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
+++ b/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "poetry-plugin-export";
-  version = "1.5.0";
+  version = "1.6.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-bX7Mqpe7SYQQVrPNVOl8Bwmeiq7owIiUhw0sp5+Gwck=";
+    hash = "sha256-6U96O0mCQpviBr4I67ZfHytsooXG4oCNTx8YqrrIzYo=";
   };
 
   postPatch = ''
@@ -33,6 +33,6 @@ buildPythonPackage rec {
     description = "Poetry plugin to export the dependencies to various formats";
     license = licenses.mit;
     homepage = "https://github.com/python-poetry/poetry-plugin-export";
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix b/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix
index b9ac5d4ada01f..77b6e44c9273d 100644
--- a/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix
+++ b/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "poetry-plugin-up";
-  version = "0.4.0";
+  version = "0.7.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "MousaZeidBaker";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-ENw+6DdQkRLnAlIuIEdZzIsFP7ILqA9WatlVZYNJSxw=";
+    hash = "sha256-ProwMnkg8LaPvb4aYyO1PR30iMSNE9oyKgCIX4O5j+E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/poetry/unwrapped.nix b/pkgs/tools/package-management/poetry/unwrapped.nix
index dd13055019161..f13a7715464be 100644
--- a/pkgs/tools/package-management/poetry/unwrapped.nix
+++ b/pkgs/tools/package-management/poetry/unwrapped.nix
@@ -10,8 +10,8 @@
 , cleo
 , crashtest
 , dulwich
+, fastjsonschema
 , installer
-, jsonschema
 , keyring
 , packaging
 , pexpect
@@ -37,11 +37,12 @@
 , pytest-mock
 , pytest-xdist
 , pythonAtLeast
+, darwin
 }:
 
 buildPythonPackage rec {
   pname = "poetry";
-  version = "1.6.1";
+  version = "1.7.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -50,7 +51,7 @@ buildPythonPackage rec {
     owner = "python-poetry";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-/OvYT4Vix1t5Yx/Tx0z3E9L9qJ4OdI4maQqUVl8H524=";
+    hash = "sha256-PM3FIZYso7p0Oe0RpiPuxHrQrgnMlkT5SVeaJPK/J94=";
   };
 
   nativeBuildInputs = [
@@ -59,8 +60,10 @@ buildPythonPackage rec {
   ];
 
   pythonRelaxDeps = [
-    # only pinned to avoid dependency on Rust
-    "jsonschema"
+    # platformdirs 4.x is backwards compatible; https://github.com/python-poetry/poetry/commit/eb80d10846f7336b0b2a66ce2964e72dffee9a1c
+    "platformdirs"
+    # xattr 1.0 is backwards compatible modulo dropping Python 2 support: https://github.com/xattr/xattr/compare/v0.10.0...v1.0.0
+    "xattr"
   ];
 
   propagatedBuildInputs = [
@@ -69,8 +72,8 @@ buildPythonPackage rec {
     cleo
     crashtest
     dulwich
+    fastjsonschema
     installer
-    jsonschema
     keyring
     packaging
     pexpect
@@ -108,6 +111,8 @@ buildPythonPackage rec {
     httpretty
     pytest-mock
     pytest-xdist
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.ps
   ];
 
   preCheck = (''
@@ -122,6 +127,8 @@ buildPythonPackage rec {
   '';
 
   disabledTests = [
+    "test_env_system_packages_are_relative_to_lib"
+    "test_install_warning_corrupt_root"
     "test_installer_with_pypi_repository"
     # touches network
     "git"
@@ -138,6 +145,7 @@ buildPythonPackage rec {
     # fs permission errors
     "test_builder_should_execute_build_scripts"
     # poetry.installation.chef.ChefBuildError: Backend 'poetry.core.masonry.api' is not available.
+    "test_isolated_env_install_success"
     "test_prepare_sdist"
     "test_prepare_directory"
     "test_prepare_directory_with_extensions"
@@ -163,5 +171,6 @@ buildPythonPackage rec {
     description = "Python dependency management and packaging made easy";
     license = licenses.mit;
     maintainers = with maintainers; [ jakewaksbaum dotlambda ];
+    mainProgram = "poetry";
   };
 }
diff --git a/pkgs/tools/package-management/poetry2conda/default.nix b/pkgs/tools/package-management/poetry2conda/default.nix
index 86e66def48680..7aa821d678ace 100644
--- a/pkgs/tools/package-management/poetry2conda/default.nix
+++ b/pkgs/tools/package-management/poetry2conda/default.nix
@@ -43,5 +43,6 @@ with python3.pkgs; buildPythonApplication rec {
     homepage = "https://github.com/dojeda/poetry2conda";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "poetry2conda";
   };
 }
diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix
index b8689fdf9966e..462a2546ff5da 100644
--- a/pkgs/tools/package-management/protontricks/default.nix
+++ b/pkgs/tools/package-management/protontricks/default.nix
@@ -4,7 +4,9 @@
 , setuptools-scm
 , setuptools
 , vdf
-, bash
+, pillow
+, substituteAll
+, writeShellScript
 , steam-run
 , winetricks
 , yad
@@ -14,36 +16,41 @@
 
 buildPythonApplication rec {
   pname = "protontricks";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "Matoking";
     repo = pname;
     rev = version;
-    sha256 = "sha256-gKrdUwX5TzeHHXuwhUyI4REPE6TNiZ6lhonyMCHcBCA=";
+    sha256 = "sha256-5FpcIaQodvNjdqUfD9hvXlrdhszr98j0zm3MCCpZFoc=";
   };
 
   patches = [
     # Use steam-run to run Proton binaries
-    ./steam-run.patch
+    (substituteAll {
+      src = ./steam-run.patch;
+      steamRun = lib.getExe steam-run;
+      bash = writeShellScript "steam-run-bash" ''
+        exec ${lib.getExe steam-run} bash "$@"
+      '';
+    })
   ];
 
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     setuptools # implicit dependency, used to find data/icon_placeholder.png
     vdf
+    pillow
   ];
 
   makeWrapperArgs = [
     "--prefix PATH : ${lib.makeBinPath [
-      bash
-      steam-run
       winetricks
       yad
     ]}"
+    # Steam Runtime does not work outside of steam-run, so don't use it
+    "--set STEAM_RUNTIME 0"
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/tools/package-management/protontricks/steam-run.patch b/pkgs/tools/package-management/protontricks/steam-run.patch
index bcc1fc9898361..3c865746377aa 100644
--- a/pkgs/tools/package-management/protontricks/steam-run.patch
+++ b/pkgs/tools/package-management/protontricks/steam-run.patch
@@ -1,470 +1,65 @@
-diff --git a/src/protontricks/cli/main.py b/src/protontricks/cli/main.py
-index c77d287..236c2a9 100755
---- a/src/protontricks/cli/main.py
-+++ b/src/protontricks/cli/main.py
-@@ -17,8 +17,7 @@ from ..flatpak import (FLATPAK_BWRAP_COMPATIBLE_VERSION,
-                        get_running_flatpak_version)
- from ..gui import (prompt_filesystem_access, select_steam_app_with_gui,
-                    select_steam_installation)
--from ..steam import (find_legacy_steam_runtime_path, find_proton_app,
--                     find_steam_installations, get_steam_apps,
-+from ..steam import (find_proton_app, find_steam_installations, get_steam_apps,
-                      get_steam_lib_paths)
- from ..util import run_command
- from ..winetricks import get_winetricks_path
-@@ -67,8 +66,7 @@ def main(args=None, steam_path=None, steam_root=None):
-             "WINE: path to a custom 'wine' executable\n"
-             "WINESERVER: path to a custom 'wineserver' executable\n"
-             "STEAM_RUNTIME: 1 = enable Steam Runtime, 0 = disable Steam "
--            "Runtime, valid path = custom Steam Runtime path, "
--            "empty = enable automatically (default)\n"
-+            "Runtime, empty = enable automatically (default)\n"
-             "PROTONTRICKS_GUI: GUI provider to use, accepts either 'yad' "
-             "or 'zenity'"
-         ),
-@@ -204,17 +202,9 @@ def main(args=None, steam_path=None, steam_root=None):
-         if not steam_path:
-             exit_("No Steam installation was selected.")
- 
--    # 2. Find the pre-installed legacy Steam Runtime if enabled
--    legacy_steam_runtime_path = None
--    use_steam_runtime = True
--
-+    # 2. Use Steam Runtime if enabled
-     if os.environ.get("STEAM_RUNTIME", "") != "0" and not args.no_runtime:
--        legacy_steam_runtime_path = find_legacy_steam_runtime_path(
--            steam_root=steam_root
--        )
--
--        if not legacy_steam_runtime_path:
--            exit_("Steam Runtime was enabled but couldn't be found!")
-+        use_steam_runtime = True
-     else:
-         use_steam_runtime = False
-         logger.info("Steam Runtime disabled.")
-@@ -281,7 +271,6 @@ def main(args=None, steam_path=None, steam_root=None):
-             proton_app=proton_app,
-             steam_app=steam_app,
-             use_steam_runtime=use_steam_runtime,
--            legacy_steam_runtime_path=legacy_steam_runtime_path,
-             command=[str(winetricks_path), "--gui"],
-             use_bwrap=use_bwrap,
-             start_wineserver=start_background_wineserver
-@@ -361,7 +350,6 @@ def main(args=None, steam_path=None, steam_root=None):
-             proton_app=proton_app,
-             steam_app=steam_app,
-             use_steam_runtime=use_steam_runtime,
--            legacy_steam_runtime_path=legacy_steam_runtime_path,
-             use_bwrap=use_bwrap,
-             start_wineserver=start_background_wineserver,
-             command=[str(winetricks_path)] + args.winetricks_command
-@@ -373,7 +361,6 @@ def main(args=None, steam_path=None, steam_root=None):
-             steam_app=steam_app,
-             command=args.command,
-             use_steam_runtime=use_steam_runtime,
--            legacy_steam_runtime_path=legacy_steam_runtime_path,
-             use_bwrap=use_bwrap,
-             start_wineserver=start_background_wineserver,
-             # Pass the command directly into the shell *without*
 diff --git a/src/protontricks/data/scripts/bwrap_launcher.sh b/src/protontricks/data/scripts/bwrap_launcher.sh
-index b5552e1..b11bc99 100644
+index 922c59d..54742a4 100644
 --- a/src/protontricks/data/scripts/bwrap_launcher.sh
 +++ b/src/protontricks/data/scripts/bwrap_launcher.sh
 @@ -1,4 +1,4 @@
 -#!/bin/bash
-+#!/usr/bin/env bash
++#!@bash@
  # Helper script
  set -o errexit
  
-@@ -80,6 +80,8 @@ done
- log_info "Following directories will be mounted inside container: ${mount_dirs[*]}"
- log_info "Using temporary directory: $PROTONTRICKS_TEMP_PATH"
- 
--exec "$STEAM_RUNTIME_PATH"/run --share-pid --launcher \
-+exec steam-run "$STEAM_RUNTIME_PATH"/pressure-vessel/bin/pressure-vessel-wrap \
-+--variable-dir="${PRESSURE_VESSEL_VARIABLE_DIR:-$STEAM_RUNTIME_PATH/var}" \
-+--share-pid --launcher \
- "${mount_params[@]}" -- \
- --bus-name="com.github.Matoking.protontricks.App${STEAM_APPID}_${PROTONTRICKS_SESSION_ID}"
 diff --git a/src/protontricks/data/scripts/wine_launch.sh b/src/protontricks/data/scripts/wine_launch.sh
-index 1f8a432..2d82f2b 100644
+index 1b0a0ce..127f13e 100644
 --- a/src/protontricks/data/scripts/wine_launch.sh
 +++ b/src/protontricks/data/scripts/wine_launch.sh
 @@ -1,4 +1,4 @@
 -#!/bin/bash
-+#!/usr/bin/env -S steam-run bash
++#!@bash@
  # Helper script created by Protontricks to run Wine binaries using Steam Runtime
  set -o errexit
  
-@@ -158,8 +158,8 @@ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME"
-         export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PROTON_LD_LIBRARY_PATH"
-         log_info "Appending to LD_LIBRARY_PATH: $PROTON_LD_LIBRARY_PATH"
-     elif [[ "$PROTONTRICKS_STEAM_RUNTIME" = "legacy" ]]; then
--        export LD_LIBRARY_PATH="$PROTON_LD_LIBRARY_PATH"
--        log_info "LD_LIBRARY_PATH set to $LD_LIBRARY_PATH"
-+        export LD_LIBRARY_PATH="$PROTON_LD_LIBRARY_PATH":"$LD_LIBRARY_PATH"
-+        log_info "Inserting to head of LD_LIBRARY_PATH: $PROTON_LD_LIBRARY_PATH"
-     fi
-     exec "$PROTON_DIST_PATH"/bin/@@name@@ "$@" || :
- elif [[ "$PROTONTRICKS_STEAM_RUNTIME" = "bwrap" ]]; then
 diff --git a/src/protontricks/data/scripts/wineserver_keepalive.sh b/src/protontricks/data/scripts/wineserver_keepalive.sh
-index 8168dae..559de33 100644
+index 8168dae..cb3e7d9 100644
 --- a/src/protontricks/data/scripts/wineserver_keepalive.sh
 +++ b/src/protontricks/data/scripts/wineserver_keepalive.sh
 @@ -1,4 +1,4 @@
 -#!/bin/bash
-+#!/usr/bin/env bash
++#!@bash@
  # A simple keepalive script that will ensure a wineserver process is kept alive
  # for the duration of the Protontricks session.
  # This is accomplished by launching a simple Windows batch script that will
-diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py
-index c39b51d..79de098 100644
---- a/src/protontricks/steam.py
-+++ b/src/protontricks/steam.py
-@@ -14,9 +14,8 @@ from .util import lower_dict
- 
- __all__ = (
-     "COMMON_STEAM_DIRS", "SteamApp", "find_steam_installations",
--    "find_steam_path", "find_legacy_steam_runtime_path",
--    "iter_appinfo_sections", "get_appinfo_sections", "get_tool_appid",
--    "find_steam_compat_tool_app", "find_appid_proton_prefix",
-+    "find_steam_path", "iter_appinfo_sections", "get_appinfo_sections",
-+    "get_tool_appid", "find_steam_compat_tool_app", "find_appid_proton_prefix",
-     "find_proton_app", "get_steam_lib_paths", "get_compat_tool_dirs",
-     "get_custom_compat_tool_installations_in_dir",
-     "get_custom_compat_tool_installations", "find_current_steamid3",
-@@ -393,37 +392,6 @@ def find_steam_path():
-         return None, None
- 
- 
--def find_legacy_steam_runtime_path(steam_root):
--    """
--    Find the legacy Steam Runtime either using the STEAM_RUNTIME env or
--    steam_root
--    """
--    env_steam_runtime = os.environ.get("STEAM_RUNTIME", "")
--
--    if env_steam_runtime == "0":
--        # User has disabled Steam Runtime
--        logger.info("STEAM_RUNTIME is 0. Disabling Steam Runtime.")
--        return None
--    elif env_steam_runtime and Path(env_steam_runtime).is_dir():
--        # User has a custom Steam Runtime
--        logger.info(
--            "Using custom Steam Runtime at %s", env_steam_runtime)
--        return Path(env_steam_runtime)
--    elif env_steam_runtime in ["1", ""]:
--        # User has enabled Steam Runtime or doesn't have STEAM_RUNTIME set;
--        # default to enabled Steam Runtime in either case
--        steam_runtime_path = steam_root / "ubuntu12_32" / "steam-runtime"
--
--        logger.info(
--            "Using default Steam Runtime at %s", str(steam_runtime_path))
--        return steam_runtime_path
--
--    logger.error(
--        "Path in STEAM_RUNTIME doesn't point to a valid Steam Runtime!")
--
--    return None
--
--
- APPINFO_STRUCT_HEADER = "<4sL"
- APPINFO_V27_STRUCT_SECTION = "<LLLLQ20sL"
- APPINFO_V28_STRUCT_SECTION = "<LLLLQ20sL20s"
 diff --git a/src/protontricks/util.py b/src/protontricks/util.py
-index 7e95af5..7dc9a29 100644
+index 9262cd0..00b2b2f 100644
 --- a/src/protontricks/util.py
 +++ b/src/protontricks/util.py
-@@ -8,14 +8,14 @@ import shutil
- import tempfile
- import re
- from pathlib import Path
--from subprocess import PIPE, check_output, run, Popen, DEVNULL
-+from subprocess import PIPE, run, Popen, DEVNULL
- 
- import pkg_resources
- 
- __all__ = (
-     "SUPPORTED_STEAM_RUNTIMES", "lower_dict",
--    "get_legacy_runtime_library_paths", "get_host_library_paths",
--    "RUNTIME_ROOT_GLOB_PATTERNS", "get_runtime_library_paths",
-+    "get_host_library_paths", "RUNTIME_ROOT_GLOB_PATTERNS",
-+    "get_runtime_library_paths",
-     "WINE_SCRIPT_TEMPLATE", "create_wine_bin_dir", "run_command"
- )
- 
-@@ -43,24 +43,6 @@ def lower_dict(d):
-     return {k.lower(): _lower_value(v) for k, v in d.items()}
- 
- 
--def get_legacy_runtime_library_paths(legacy_steam_runtime_path, proton_app):
--    """
--    Get LD_LIBRARY_PATH value to use when running a command using Steam Runtime
--    """
--    steam_runtime_paths = check_output([
--        str(legacy_steam_runtime_path / "run.sh"),
--        "--print-steam-runtime-library-paths"
--    ])
--    steam_runtime_paths = str(steam_runtime_paths, "utf-8")
--    # Add Proton installation directory first into LD_LIBRARY_PATH
--    # so that libwine.so.1 is picked up correctly (see issue #3)
--    return "".join([
--        str(proton_app.proton_dist_path / "lib"), os.pathsep,
--        str(proton_app.proton_dist_path / "lib64"), os.pathsep,
--        steam_runtime_paths
--    ])
--
--
- def get_host_library_paths():
-     """
-     Get host library paths to use when creating the LD_LIBRARY_PATH environment
-@@ -72,7 +54,7 @@ def get_host_library_paths():
+@@ -99,7 +99,7 @@ def get_host_library_paths():
      # Since that command is unavailable with newer Steam Runtime releases,
      # do it ourselves here.
      result = run(
 -        ["/sbin/ldconfig", "-XNv"],
-+        ["steam-run", "ldconfig", "-XNv"],
++        ["@steamRun@", "/sbin/ldconfig", "-XNv"],
          check=True, stdout=PIPE, stderr=PIPE
      )
      lines = result.stdout.decode("utf-8").split("\n")
-@@ -90,7 +72,7 @@ RUNTIME_ROOT_GLOB_PATTERNS = (
- )
- 
- 
--def get_runtime_library_paths(proton_app, use_bwrap=True):
-+def get_runtime_library_paths(proton_app, proton_app_only=True):
-     """
-     Get LD_LIBRARY_PATH value to use when running a command using Steam Runtime
-     """
-@@ -111,7 +93,7 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
-             f"Could not find Steam Runtime runtime root for {runtime_app.name}"
-         )
- 
--    if use_bwrap:
-+    if proton_app_only:
-         return "".join([
-             str(proton_app.proton_dist_path / "lib"), os.pathsep,
-             str(proton_app.proton_dist_path / "lib64"), os.pathsep
-@@ -313,7 +295,7 @@ def run_command(
-             wine_environ["STEAM_RUNTIME_PATH"] = \
-                 str(proton_app.required_tool_app.install_path)
-             wine_environ["PROTON_LD_LIBRARY_PATH"] = \
--                get_runtime_library_paths(proton_app, use_bwrap=use_bwrap)
-+                get_runtime_library_paths(proton_app, proton_app_only=use_bwrap)
- 
-             runtime_name = proton_app.required_tool_app.name
-             logger.info(
-@@ -337,13 +319,9 @@ def run_command(
-                     "Current Steam Runtime not recognized by Protontricks."
-                 )
-         else:
--            # Legacy Steam Runtime requires a different LD_LIBRARY_PATH
--            # that is produced by a script.
-             wine_environ["PROTONTRICKS_STEAM_RUNTIME"] = "legacy"
-             wine_environ["PROTON_LD_LIBRARY_PATH"] = \
--                get_legacy_runtime_library_paths(
--                    legacy_steam_runtime_path, proton_app
--                )
-+                get_runtime_library_paths(proton_app, proton_app_only=True)
- 
-             # bwrap is not available, so ensure it is not launched even if the
-             # user configured it so
-@@ -353,7 +331,6 @@ def run_command(
-     # configuring the environment and Wine before launching the underlying
-     # Wine binaries.
-     wine_bin_dir = create_wine_bin_dir(proton_app)
--    wine_environ["LEGACY_STEAM_RUNTIME_PATH"] = str(legacy_steam_runtime_path)
-     wine_environ["PATH"] = os.pathsep.join(
-         [str(wine_bin_dir), wine_environ["PATH"]]
-     )
-diff --git a/tests/cli/test_main.py b/tests/cli/test_main.py
-index 0a35f8d..9b96629 100644
---- a/tests/cli/test_main.py
-+++ b/tests/cli/test_main.py
-@@ -121,15 +121,10 @@ class TestCLIRun:
-         assert str(command.args[0]).endswith(".local/bin/winetricks")
-         assert command.args[1] == "winecfg"
-         assert command.env["PATH"].startswith(str(wine_bin_dir))
--        assert (
--            "fake_steam_runtime/lib64" in command.env["PROTON_LD_LIBRARY_PATH"]
--        )
-         assert command.env["WINE"] == str(wine_bin_dir / "wine")
-         assert command.env["WINELOADER"] == str(wine_bin_dir / "wine")
-         assert command.env["WINESERVER"] == str(wine_bin_dir / "wineserver")
- 
--        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
--            str(steam_runtime_dir / "steam-runtime")
-         assert command.env["PROTONTRICKS_STEAM_RUNTIME"] == "legacy"
-         assert "STEAM_RUNTIME_PATH" not in command.env
- 
-@@ -180,16 +175,14 @@ class TestCLIRun:
-         assert command.env["PATH"].startswith(str(wine_bin_dir))
- 
-         # Compared to the traditional Steam Runtime, PROTON_LD_LIBRARY_PATH
--        # will be different
-+        # will be the same (it would be different without steam-run.patch)
-         proton_install_path = Path(proton_app.install_path)
-         assert command.env["PROTON_LD_LIBRARY_PATH"] == "".join([
-             str(proton_install_path / "dist" / "lib"), os.pathsep,
-             str(proton_install_path / "dist" / "lib64"), os.pathsep
-         ])
- 
--        # Environment variables for both legacy and new Steam Runtime exist
--        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
--            str(steam_runtime_dir / "steam-runtime")
-+        # Environment variable for new Steam Runtime exists
-         assert command.env["STEAM_RUNTIME_PATH"] == \
-             str(steam_runtime_soldier.install_path)
-         assert command.env["PROTONTRICKS_STEAM_RUNTIME"] == "bwrap"
-@@ -254,9 +247,7 @@ class TestCLIRun:
-             str(runtime_root / "lib" / "x86_64-linux-gnu")
-         ]))
- 
--        # Environment variables for both legacy and new Steam Runtime exist
--        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
--            str(steam_runtime_dir / "steam-runtime")
-+        # Environment variable for new Steam Runtime exists
-         assert command.env["STEAM_RUNTIME_PATH"] == \
-             str(steam_runtime_soldier.install_path)
-         assert command.env["PROTONTRICKS_STEAM_RUNTIME"] == "legacy"
-@@ -407,7 +398,6 @@ class TestCLIRun:
- 
-         # Also ensure log messages are included in the error message
-         assert b"Found Steam directory at" in message
--        assert b"Using default Steam Runtime" in message
- 
-     def test_run_gui_provider_not_found(self, cli, home_dir, steam_app_factory):
-         """
-@@ -421,20 +411,6 @@ class TestCLIRun:
- 
-         assert "YAD or Zenity is not installed" in result
- 
--    def test_run_steam_runtime_not_found(
--            self, cli, steam_dir, steam_app_factory):
--        """
--        Try performing a command with Steam Runtime enabled but no
--        available Steam Runtime installation
--        """
--        steam_app_factory(name="Fake game 1", appid=10)
--        result = cli(
--            ["10", "winecfg"], env={"STEAM_RUNTIME": "invalid/path"},
--            expect_returncode=1
--        )
--
--        assert "Steam Runtime was enabled but couldn't be found" in result
--
-     def test_run_proton_not_found(self, cli, steam_dir, steam_app_factory):
-         steam_app_factory(name="Fake game 1", appid=10)
-         result = cli(["10", "winecfg"], expect_returncode=1)
 diff --git a/tests/conftest.py b/tests/conftest.py
-index 106e0d9..8236f3a 100644
+index a516437..88bf804 100644
 --- a/tests/conftest.py
 +++ b/tests/conftest.py
-@@ -169,7 +169,7 @@ def steam_runtime_dir(steam_dir):
+@@ -170,7 +170,7 @@ def steam_runtime_dir(steam_dir):
      """
      (steam_dir.parent / "root" / "ubuntu12_32" / "steam-runtime").mkdir(parents=True)
      (steam_dir.parent / "root" / "ubuntu12_32" / "steam-runtime" / "run.sh").write_text(
 -        "#!/bin/bash\n"
-+        "#!/usr/bin/env -S steam-run bash\n"
++        "#!/bin/sh\n"
          """if [ "$1" = "--print-steam-runtime-library-paths" ]; then\n"""
          "    echo 'fake_steam_runtime/lib:fake_steam_runtime/lib64'\n"
          "fi"
-@@ -735,7 +735,7 @@ def xdg_user_dir_bin(home_dir):
+@@ -764,7 +764,7 @@ def xdg_user_dir_bin(home_dir):
      # Only mock PICTURES and DOWNLOAD; mocking everything isn't necessary
      # for the tests.
      (home_dir / ".local" / "bin" / "xdg-user-dir").write_text(
 -        '#!/bin/bash\n'
-+        '#!/usr/bin/env -S steam-run bash\n'
++        '#!/bin/sh\n'
          'if [[ "$1" == "PICTURES" ]]; then\n'
          '    echo "$HOME/Pictures"\n'
          'elif [[ "$1" == "DOWNLOAD" ]]; then\n'
-diff --git a/tests/test_flatpak.py b/tests/test_flatpak.py
-index cb2b9bb..440b704 100644
---- a/tests/test_flatpak.py
-+++ b/tests/test_flatpak.py
-@@ -159,36 +159,6 @@ class TestGetInaccessiblePaths:
- 
-         assert len(inaccessible_paths) == 0
- 
--    @pytest.mark.usefixtures("xdg_user_dir_bin")
--    def test_flatpak_xdg_user_dir(self, monkeypatch, tmp_path, home_dir):
--        """
--        Test that XDG filesystem permissions such as 'xdg-pictures' and
--        'xdg-download' are detected correctly
--        """
--        flatpak_info_path = tmp_path / "flatpak-info"
--
--        flatpak_info_path.write_text(
--            "[Application]\n"
--            "name=fake.flatpak.Protontricks\n"
--            "\n"
--            "[Instance]\n"
--            "flatpak-version=1.12.1\n"
--            "\n"
--            "[Context]\n"
--            "filesystems=xdg-pictures;"
--        )
--        monkeypatch.setattr(
--            "protontricks.flatpak.FLATPAK_INFO_PATH", str(flatpak_info_path)
--        )
--
--        inaccessible_paths = get_inaccessible_paths([
--            str(home_dir / "Pictures"),
--            str(home_dir / "Download")
--        ])
--
--        assert len(inaccessible_paths) == 1
--        assert str(inaccessible_paths[0]) == str(home_dir / "Download")
--
-     def test_flatpak_unknown_permission(self, monkeypatch, tmp_path, caplog):
-         """
-         Test that unknown filesystem permissions are ignored
-diff --git a/tests/test_util.py b/tests/test_util.py
-index ec5f4f3..0b0a66c 100644
---- a/tests/test_util.py
-+++ b/tests/test_util.py
-@@ -98,44 +98,6 @@ class TestRunCommand:
-         assert command.env["WINELOADER"] == "/fake/wine"
-         assert command.env["WINESERVER"] == "/fake/wineserver"
- 
--    def test_unknown_steam_runtime_detected(
--            self, home_dir, proton_factory, runtime_app_factory,
--            steam_app_factory, caplog):
--        """
--        Test that Protontricks will log a warning if it encounters a Steam
--        Runtime it does not recognize
--        """
--        steam_runtime_medic = runtime_app_factory(
--            name="Steam Linux Runtime - Medic",
--            appid=14242420,
--            runtime_dir_name="medic"
--        )
--        proton_app = proton_factory(
--            name="Proton 5.20", appid=100, compat_tool_name="proton_520",
--            is_default_proton=True, required_tool_app=steam_runtime_medic
--        )
--        steam_app = steam_app_factory(name="Fake game", appid=10)
--
--        run_command(
--            winetricks_path=Path("/usr/bin/winetricks"),
--            proton_app=proton_app,
--            steam_app=steam_app,
--            command=["echo", "nothing"],
--            shell=True,
--            use_steam_runtime=True
--        )
--
--        # Warning will be logged since Protontricks does not recognize
--        # Steam Runtime Medic and can't ensure it's being configured correctly
--        warning = next(
--            record for record in caplog.records
--            if record.levelname == "WARNING"
--            and "not recognized" in record.getMessage()
--        )
--        assert warning.getMessage() == \
--            "Current Steam Runtime not recognized by Protontricks."
--
--
- class TestLowerDict:
-     def test_lower_nested_dict(self):
-         """
diff --git a/pkgs/tools/package-management/repro-get/default.nix b/pkgs/tools/package-management/repro-get/default.nix
index bb619874d7b0f..95d5902be0065 100644
--- a/pkgs/tools/package-management/repro-get/default.nix
+++ b/pkgs/tools/package-management/repro-get/default.nix
@@ -69,5 +69,6 @@ buildGoModule rec {
     homepage = "https://github.com/reproducible-containers/repro-get";
     license = licenses.asl20;
     maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "repro-get";
   };
 }
diff --git a/pkgs/tools/package-management/reuse/default.nix b/pkgs/tools/package-management/reuse/default.nix
deleted file mode 100644
index 8ba5be3e77951..0000000000000
--- a/pkgs/tools/package-management/reuse/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, python3Packages, fetchFromGitHub }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "reuse";
-  version = "2.1.0";
-  format = "pyproject";
-
-  src = fetchFromGitHub {
-    owner = "fsfe";
-    repo = "reuse-tool";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-MEQiuBxe/ctHlAnmLhQY4QH62uAcHb7CGfZz+iZCRSk=";
-  };
-
-  nativeBuildInputs = with python3Packages; [
-    poetry-core
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    binaryornot
-    boolean-py
-    debian
-    jinja2
-    license-expression
-  ];
-
-  nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
-
-  disabledTestPaths = [
-    # pytest wants to execute the actual source files for some reason, which fails with ImportPathMismatchError()
-    "src/reuse"
-  ];
-
-  meta = with lib; {
-    description = "A tool for compliance with the REUSE Initiative recommendations";
-    homepage = "https://github.com/fsfe/reuse-tool";
-    license = with licenses; [ asl20 cc-by-sa-40 cc0 gpl3Plus ];
-    maintainers = with maintainers; [ FlorianFranzen Luflosi ];
-  };
-}
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index 9418244212ac1..541787942a0ee 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -1,7 +1,28 @@
-{ stdenv, lib
-, pkg-config, autoreconfHook, pandoc
-, fetchurl, cpio, zlib, bzip2, file, elfutils, libbfd, libgcrypt, libarchive, nspr, nss, popt, db, xz, python, lua, llvmPackages
-, sqlite, zstd, libcap
+{ stdenv
+, lib
+, pkg-config
+, autoreconfHook
+, pandoc
+, fetchurl
+, cpio
+, zlib
+, bzip2
+, file
+, elfutils
+, libbfd
+, libgcrypt
+, libarchive
+, nspr
+, nss
+, popt
+, db
+, xz
+, python
+, lua
+, llvmPackages
+, sqlite
+, zstd
+, libcap
 }:
 
 stdenv.mkDerivation rec {
@@ -18,8 +39,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook pkg-config pandoc ];
   buildInputs = [ cpio zlib zstd bzip2 file libarchive libgcrypt nspr nss db xz python lua sqlite ]
-                ++ lib.optional stdenv.cc.isClang llvmPackages.openmp
-                ++ lib.optional stdenv.isLinux libcap;
+    ++ lib.optional stdenv.cc.isClang llvmPackages.openmp
+    ++ lib.optional stdenv.isLinux libcap;
 
   # rpm/rpmlib.h includes popt.h, and then the pkg-config file mentions these as linkage requirements
   propagatedBuildInputs = [ popt nss db bzip2 libarchive libbfd ]
@@ -72,5 +93,8 @@ stdenv.mkDerivation rec {
     description = "The RPM Package Manager";
     maintainers = with maintainers; [ copumpkin ];
     platforms = platforms.linux;
+    # Support for darwin was removed in https://github.com/NixOS/nixpkgs/pull/196350.
+    # This can be re-enables for apple_sdk.version >= 13.0.
+    badPlatforms = platforms.darwin;
   };
 }
diff --git a/pkgs/tools/package-management/smlpkg/default.nix b/pkgs/tools/package-management/smlpkg/default.nix
index 4bf75c1261496..be7592c1c6d88 100644
--- a/pkgs/tools/package-management/smlpkg/default.nix
+++ b/pkgs/tools/package-management/smlpkg/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = mlton.meta.platforms;
     maintainers = with maintainers; [ athas ];
+    mainProgram = "smlpkg";
   };
 }
diff --git a/pkgs/tools/package-management/xbps/default.nix b/pkgs/tools/package-management/xbps/default.nix
index c948c66b47f12..07aa1a7accc15 100644
--- a/pkgs/tools/package-management/xbps/default.nix
+++ b/pkgs/tools/package-management/xbps/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, which, zlib, openssl, libarchive }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, which, zlib, openssl, libarchive }:
 
 stdenv.mkDerivation rec {
   pname = "xbps";
-  version = "0.59.1";
+  version = "0.59.2";
 
   src = fetchFromGitHub {
     owner = "void-linux";
     repo = "xbps";
     rev = version;
-    sha256 = "0pab3xf97y4wqlyrb92zxd3cfsrbnlx6pssbw4brgwcxccw9jrhy";
+    hash = "sha256-3+LzFLDZ1zfRPBETMlpEn66zsfHRHQLlgeZPdMtmA14=";
   };
 
   nativeBuildInputs = [ pkg-config which ];
@@ -17,16 +17,17 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./cert-paths.patch
-    # fix openssl 3
-    (fetchpatch {
-      url = "https://github.com/void-linux/xbps/commit/db1766986c4389eb7e17c0e0076971b711617ef9.patch";
-      hash = "sha256-CmyZdsHStPsELdEgeJBWIbXIuVeBhv7VYb2uGYxzUWQ=";
-    })
   ];
 
   env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-result -Wno-error=deprecated-declarations";
 
   postPatch = ''
+    # _BSD_SOURCE causes cpp warning
+    # https://github.com/void-linux/xbps/issues/576
+    substituteInPlace bin/xbps-fbulk/main.c lib/util.c lib/external/dewey.c lib/external/fexec.c \
+      --replace 'define _BSD_SOURCE' 'define _DEFAULT_SOURCE' \
+      --replace '# define _BSD_SOURCE' '#define _DEFAULT_SOURCE'
+
     # fix unprefixed ranlib (needed on cross)
     substituteInPlace lib/Makefile \
       --replace 'SILENT}ranlib ' 'SILENT}$(RANLIB) '
diff --git a/pkgs/tools/package-management/yarn-lock-converter/default.nix b/pkgs/tools/package-management/yarn-lock-converter/default.nix
index 2f3ebff741084..70f5b143ebe8b 100644
--- a/pkgs/tools/package-management/yarn-lock-converter/default.nix
+++ b/pkgs/tools/package-management/yarn-lock-converter/default.nix
@@ -45,5 +45,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/VHT/yarn-lock-converter";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
+    mainProgram = "yarn-lock-converter";
   };
 }
diff --git a/pkgs/tools/package-management/zkg/default.nix b/pkgs/tools/package-management/zkg/default.nix
deleted file mode 100644
index 9d6700469722c..0000000000000
--- a/pkgs/tools/package-management/zkg/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib
-, python3
-, fetchFromGitHub
-, pkgs
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "zkg";
-  version = "2.14.0";
-  format = "setuptools";
-
-  src = fetchFromGitHub {
-    owner = "zeek";
-    repo = "package-manager";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-HdOzxSU3XWz1ZH96woDWrHzKbpJW3/IKkpc2tGfyi9o=";
-  };
-
-  propagatedBuildInputs = with python3.pkgs; [
-    btest
-    gitpython
-    semantic-version
-    sphinx
-    sphinx-rtd-theme
-    pkgs.bash
-  ];
-
-  # No tests available
-  doCheck = false;
-
-  pythonImportsCheck = [
-    "zeekpkg"
-  ];
-
-  meta = with lib; {
-    description = "Package manager for Zeek";
-    homepage = "https://github.com/zeek/package-manager";
-    changelog = "https://github.com/zeek/package-manager/blob/${version}/CHANGES";
-    license = licenses.ncsa;
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/pkgs/tools/security/aespipe/default.nix b/pkgs/tools/security/aespipe/default.nix
index ad4cf36fa32db..9ab8e089f30ba 100644
--- a/pkgs/tools/security/aespipe/default.nix
+++ b/pkgs/tools/security/aespipe/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "aespipe";
-  version = "2.4f";
+  version = "2.4g";
 
   src = fetchurl {
     url = "mirror://sourceforge/loop-aes/aespipe/aespipe-v${version}.tar.bz2";
-    sha256 = "15pg9j27mjzl78mpzkdqd84kdafj0g6j72f8wgjrpp2qkxjy2ddi";
+    sha256 = "sha256-v7l+feFh6NfOETsWO9odGo7HfSwa+rVtzIFT16kBh/w=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/afl/qemu.nix b/pkgs/tools/security/afl/qemu.nix
index 9a8b4b3ca3640..845d9fa3e6f15 100644
--- a/pkgs/tools/security/afl/qemu.nix
+++ b/pkgs/tools/security/afl/qemu.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   srcs = [
     (fetchurl {
-      url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2";
+      url = "https://download.qemu.org/qemu-${version}.tar.bz2";
       sha256 = "0j3dfxzrzdp1w21k21fjvmakzc6lcha1rsclaicwqvbf63hkk7vy";
     })
     afl.src
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with lib; {
-    homepage = "http://www.qemu.org/";
+    homepage = "https://www.qemu.org/";
     description = "Fork of QEMU with AFL instrumentation support";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ thoughtpolice ];
diff --git a/pkgs/tools/security/aflplusplus/default.nix b/pkgs/tools/security/aflplusplus/default.nix
index bbadd0d9e5d69..d1390253e63a5 100644
--- a/pkgs/tools/security/aflplusplus/default.nix
+++ b/pkgs/tools/security/aflplusplus/default.nix
@@ -19,13 +19,13 @@ let
   libtokencap = callPackage ./libtokencap.nix { inherit aflplusplus; };
   aflplusplus = stdenvNoCC.mkDerivation rec {
     pname = "aflplusplus";
-    version = "4.08c";
+    version = "4.09c";
 
     src = fetchFromGitHub {
       owner = "AFLplusplus";
       repo = "AFLplusplus";
       rev = "v${version}";
-      sha256 = "sha256-r1elJlvGuVrMFLECYCfMsZVEJcCPYRdkljMbF4uRHQY=";
+      sha256 = "sha256-SQQJpR3+thi4iyrowkOD878nRHNgBJqqUdRFhtqld4k=";
     };
     enableParallelBuilding = true;
 
diff --git a/pkgs/tools/security/aflplusplus/qemu-no-etc-install.patch b/pkgs/tools/security/aflplusplus/qemu-no-etc-install.patch
deleted file mode 100644
index 5dfbfd780f1ca..0000000000000
--- a/pkgs/tools/security/aflplusplus/qemu-no-etc-install.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile b/Makefile
-index d6b9dc1..ce7c493 100644
---- a/Makefile
-+++ b/Makefile
-@@ -601,7 +601,7 @@ install-localstatedir:
- endif
- 
- 
--install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir
-+install: all $(if $(BUILD_DOCS),install-doc) install-datadir
- ifneq ($(TOOLS),)
- 	$(call install-prog,$(subst qemu-ga,qemu-ga$(EXESUF),$(TOOLS)),$(DESTDIR)$(bindir))
- endif
diff --git a/pkgs/tools/security/age-plugin-tpm/default.nix b/pkgs/tools/security/age-plugin-tpm/default.nix
index 8882a70a1a956..4885aa326ddae 100644
--- a/pkgs/tools/security/age-plugin-tpm/default.nix
+++ b/pkgs/tools/security/age-plugin-tpm/default.nix
@@ -2,30 +2,32 @@
 , buildGoModule
 , fetchFromGitHub
 , swtpm
+, openssl
 }:
 
 buildGoModule rec {
   pname = "age-plugin-tpm";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "Foxboron";
     repo = "age-plugin-tpm";
     rev = "v${version}";
-    hash = "sha256-Gp7n2/+vgQbsm/En6PQ1to/W6lvFam4Wh3LHdCZnafc=";
+    hash = "sha256-oTvK8U5j+llHgoChhGb+vcUrUf9doVYxd3d5MEuCNz8=";
   };
 
-  vendorHash = "sha256-oZni/n2J0N3ZxNhf+RlUWyWeOFwL4+6KUIk6DQF8YpA=";
+  proxyVendor = true;
 
-  postConfigure = ''
-    substituteInPlace vendor/github.com/foxboron/swtpm_test/swtpm.go \
-      --replace "/usr/share/swtpm/swtpm-create-user-config-files" "${swtpm}/share/swtpm/swtpm-create-user-config-files"
-  '';
+  vendorHash = "sha256-BSb+8p5+RJMfcYc2+BuT4YbhCWCbcYOt9upesD11Ytw=";
 
   nativeCheckInputs = [
     swtpm
   ];
 
+  buildInputs = [
+    openssl
+  ];
+
   ldflags = [
     "-s"
     "-w"
diff --git a/pkgs/tools/security/age/default.nix b/pkgs/tools/security/age/default.nix
index 8ad4ff9c904c5..ea8108fde301c 100644
--- a/pkgs/tools/security/age/default.nix
+++ b/pkgs/tools/security/age/default.nix
@@ -53,6 +53,11 @@ buildGoModule rec {
     fi
   '';
 
+  # plugin test is flaky, see https://github.com/FiloSottile/age/issues/517
+  checkFlags = [
+    "-skip" "TestScript/plugin"
+  ];
+
   meta = with lib; {
     homepage = "https://age-encryption.org/";
     description = "Modern encryption tool with small explicit keys";
diff --git a/pkgs/tools/security/agebox/default.nix b/pkgs/tools/security/agebox/default.nix
index ea50c8779b3da..b87cb2b8ca2af 100644
--- a/pkgs/tools/security/agebox/default.nix
+++ b/pkgs/tools/security/agebox/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     description = "Age based repository file encryption gitops tool";
     license = licenses.asl20;
     maintainers = with maintainers; [ lesuisse ];
+    mainProgram = "agebox";
   };
 }
diff --git a/pkgs/tools/security/aide/default.nix b/pkgs/tools/security/aide/default.nix
index b34be9a37710d..0168ddc4cc902 100644
--- a/pkgs/tools/security/aide/default.nix
+++ b/pkgs/tools/security/aide/default.nix
@@ -1,16 +1,17 @@
-{ lib, stdenv, fetchurl, flex, bison, libmhash, zlib, acl, attr, libselinux, pcre }:
+{ lib, stdenv, fetchurl, flex, bison, libmhash, zlib, acl, attr, libselinux, pcre2, pkg-config, libgcrypt }:
 
 stdenv.mkDerivation rec {
   pname = "aide";
-  version = "0.17.4";
+  version = "0.18.6";
 
   src = fetchurl {
     url = "https://github.com/aide/aide/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-yBUFJG8//C52A21Dp3ISroKJW1iB2bniXBNhsam3qEY=";
+    sha256 = "sha256-j/Ns5H030MyYd2LV2WE0bUdd50u6ihgy/QBttu3TwQ4=";
   };
 
-  buildInputs = [ flex bison libmhash zlib acl attr libselinux pcre ];
+  buildInputs = [ flex bison libmhash zlib acl attr libselinux pcre2 libgcrypt ];
 
+  nativeBuildInputs = [ pkg-config ];
 
   configureFlags = [
     "--with-posix-acl"
@@ -22,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://aide.github.io/";
     description = "A file and directory integrity checker";
     license = licenses.gpl2Plus;
-    maintainers = [ ];
+    maintainers = with maintainers; [ happysalada ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/alterx/default.nix b/pkgs/tools/security/alterx/default.nix
index 88f9f52f42146..9fcdb7378b706 100644
--- a/pkgs/tools/security/alterx/default.nix
+++ b/pkgs/tools/security/alterx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "alterx";
-  version = "0.0.1";
+  version = "0.0.3";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "alterx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F60nEkHmmhlRuHI2Hc3no2RvILhVN2oPXgwxpTdPDYM=";
+    hash = "sha256-A01XROFB2NkArfFtRMv/r9Nu5QoKMTOVzVIUnFoVe78=";
   };
 
-  vendorHash = "sha256-tIXSkNJbbT6X23WCUnB+c0FbxJdV3RF1iOrEJxETeaE=";
+  vendorHash = "sha256-efwU41kFR8QYa2cevvj4pYAXgCisJ4OHaRIhWVnETvc=";
 
   meta = with lib; {
     description = "Fast and customizable subdomain wordlist generator using DSL";
diff --git a/pkgs/tools/security/amoco/default.nix b/pkgs/tools/security/amoco/default.nix
index a9c182ca4cbc6..fe16ad9596dd5 100644
--- a/pkgs/tools/security/amoco/default.nix
+++ b/pkgs/tools/security/amoco/default.nix
@@ -36,7 +36,7 @@ python3.pkgs.buildPythonApplication rec {
       prompt-toolkit
       pygments
       # pyside6
-      z3
+      z3-solver
     ];
   };
 
diff --git a/pkgs/tools/security/apkleaks/default.nix b/pkgs/tools/security/apkleaks/default.nix
index 133601e4025f0..29a0b17ccb326 100644
--- a/pkgs/tools/security/apkleaks/default.nix
+++ b/pkgs/tools/security/apkleaks/default.nix
@@ -33,5 +33,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/dwisiswant0/apkleaks";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "apkleaks";
   };
 }
diff --git a/pkgs/tools/security/argocd-vault-plugin/default.nix b/pkgs/tools/security/argocd-vault-plugin/default.nix
index d2557b36dc2e8..934be7d099428 100644
--- a/pkgs/tools/security/argocd-vault-plugin/default.nix
+++ b/pkgs/tools/security/argocd-vault-plugin/default.nix
@@ -1,21 +1,40 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, testers
+, argocd-vault-plugin
+}:
 
 buildGoModule rec {
   pname = "argocd-vault-plugin";
-  version = "1.16.1";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "argoproj-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-7bUpshg+OqlS5wvFkZkovQVaLglvSpp7FsVA9qNOk1U=";
+    hash = "sha256-YH7yNRaKdYzasaxYSManuiImyxglmIwgLvDKjUg3MR8=";
   };
 
-  vendorHash = "sha256-r9Pcm95gU0QTiREdiQiyJMOKZb5Lt2bIJywLerzgbdg=";
+  vendorHash = "sha256-0PrGrcS8Gx0cVImGrlmXlycFgWCTLjg2ISi0OhYoPpw=";
+
+  ldflags = [
+    "-X=github.com/argoproj-labs/argocd-vault-plugin/version.Version=v${version}"
+    "-X=github.com/argoproj-labs/argocd-vault-plugin/version.BuildDate=1970-01-01T00:00:00Z"
+    "-X=github.com/argoproj-labs/argocd-vault-plugin/version.CommitSHA=unknown"
+  ];
 
   # integration tests require filesystem and network access for credentials
   doCheck = false;
 
+  doInstallCheck = true;
+
+  passthru.tests.version = testers.testVersion {
+    package = argocd-vault-plugin;
+    command = "argocd-vault-plugin version";
+    version = "argocd-vault-plugin v${version} (unknown) BuildDate: 1970-01-01T00:00:00Z";
+  };
+
   meta = with lib; {
     homepage = "https://argocd-vault-plugin.readthedocs.io";
     changelog = "https://github.com/argoproj-labs/argocd-vault-plugin/releases/tag/v${version}";
diff --git a/pkgs/tools/security/arti/default.nix b/pkgs/tools/security/arti/default.nix
index 0ed6ca8a25d8a..35e4dea0f9f6a 100644
--- a/pkgs/tools/security/arti/default.nix
+++ b/pkgs/tools/security/arti/default.nix
@@ -10,7 +10,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "arti";
-  version = "1.1.9";
+  version = "1.1.12";
 
   src = fetchFromGitLab {
     domain = "gitlab.torproject.org";
@@ -18,10 +18,10 @@ rustPlatform.buildRustPackage rec {
     owner = "core";
     repo = "arti";
     rev = "arti-v${version}";
-    sha256 = "sha256-nce+WpT9uloO9Ce/h1ziPWJhYMcL4yZvYO1EP8AEfxI=";
+    hash = "sha256-cGqeuck/N1IoI400AkuUIkJpAJneJ7T47rfwC/GP62M=";
   };
 
-  cargoHash = "sha256-Qqm39QK+/rCmad3dJLVPGd7ZKP8ldtFI+NnxC6iQUBA=";
+  cargoHash = "sha256-aC5Us0wk2IORZDT+op2iAXYDqd9Qc2UI+GncbSZRMxI=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/pkgs/tools/security/arubaotp-seed-extractor/default.nix b/pkgs/tools/security/arubaotp-seed-extractor/default.nix
index a1ab0fd9f290e..c2ffef83635de 100644
--- a/pkgs/tools/security/arubaotp-seed-extractor/default.nix
+++ b/pkgs/tools/security/arubaotp-seed-extractor/default.nix
@@ -28,7 +28,7 @@ python3Packages.buildPythonApplication {
   ];
 
   installPhase = ''
-    libdir="$out/lib/${python3Packages.python.libPrefix}/site-packages/arubaotp-seed-extractor"
+    libdir="$out/${python3Packages.python.sitePackages}/arubaotp-seed-extractor"
     mkdir -p "$libdir"
     cp scripts/* "$libdir"
     chmod +x "$libdir/main.py"
diff --git a/pkgs/tools/security/asnmap/default.nix b/pkgs/tools/security/asnmap/default.nix
index b2c58136d9a81..44f2e09fc1a99 100644
--- a/pkgs/tools/security/asnmap/default.nix
+++ b/pkgs/tools/security/asnmap/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "asnmap";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-JdbKFc374U/MjRiLUbVOqb7qeFYpvMevUdis7GDZz3Y=";
+    hash = "sha256-uX7mf1y30JngRI4UJYzghk2F4DZh9OQAjgkkNRbAgwc=";
   };
 
-  vendorHash = "sha256-3/R8dhaJnoAsJgD4pqZ7etTXDFZnhW9sbUrnGp4md5o=";
+  vendorHash = "sha256-co18Q8nfRjJyDfpmJ1YSJ275DJRJHn2AR3jF8WionNY=";
 
   # Tests require network access
   doCheck = false;
diff --git a/pkgs/tools/security/aws-iam-authenticator/default.nix b/pkgs/tools/security/aws-iam-authenticator/default.nix
index 4f1dcf318282b..6badf451368e4 100644
--- a/pkgs/tools/security/aws-iam-authenticator/default.nix
+++ b/pkgs/tools/security/aws-iam-authenticator/default.nix
@@ -1,23 +1,27 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
 buildGoModule rec {
   pname = "aws-iam-authenticator";
-  version = "0.6.11";
+  version = "0.6.17";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-4bZnGgf/H2/uLhh8ip8rrA+U0vA+1SO5uhjLK40j3wE=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-CsurRQDPWJ/P/Q4aZhtUW8Z60+hgzw46+98N/QbFcTU=";
   };
 
-  vendorHash = "sha256-RcZqnyZtonE4qeu+llL1OPGPG93/Rx8ESWM5wapZ1BM=";
+  vendorHash = "sha256-TDsY05jnutNIKx0z6/8vGvsgYCIKBkTxh9mXqk4IR38=";
 
   ldflags = let PKG = "sigs.k8s.io/aws-iam-authenticator"; in [
-    "-s" "-w"
-    "-X ${PKG}/pkg.Version=${version}"
-    "-X ${PKG}/pkg.BuildDate=1970-01-01T01:01:01Z"
-    "-X ${PKG}/pkg.CommitID=${version}"
+    "-s"
+    "-w"
+    "-X=${PKG}/pkg.Version=${version}"
+    "-X=${PKG}/pkg.BuildDate=1970-01-01T01:01:01Z"
+    "-X ?${PKG}/pkg.CommitID=${version}"
   ];
 
   subPackages = [ "cmd/aws-iam-authenticator" ];
@@ -25,7 +29,8 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kubernetes-sigs/aws-iam-authenticator";
     description = "AWS IAM credentials for Kubernetes authentication";
+    changelog = "https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = [ maintainers.srhb ];
+    maintainers = with maintainers; [ srhb ];
   };
 }
diff --git a/pkgs/tools/security/b2sum/default.nix b/pkgs/tools/security/b2sum/default.nix
index 1f0f2a2bf0cbc..581feb28ce087 100644
--- a/pkgs/tools/security/b2sum/default.nix
+++ b/pkgs/tools/security/b2sum/default.nix
@@ -23,6 +23,11 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ openmp ];
 
   buildFlags = [ (lib.optional (openmp == null) "NO_OPENMP=1") ];
+
+  # clang builds require at least C99 or the build fails with:
+  # error: unknown type name 'inline'
+  env.NIX_CFLAGS_COMPILE = "-std=c99";
+
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
diff --git a/pkgs/tools/security/baboossh/default.nix b/pkgs/tools/security/baboossh/default.nix
index e9ad7b260efea..66712eb99b2cd 100644
--- a/pkgs/tools/security/baboossh/default.nix
+++ b/pkgs/tools/security/baboossh/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "baboossh";
-  version = "1.2.0";
+  version = "1.2.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "cybiere";
     repo = "baboossh";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dorIqnJuAS/y9W6gyt65QjwGwx4bJHKLmdqRPzY25yA=";
+    hash = "sha256-E/a6dL6BpQ6D8v010d8/qav/fkxpCYNvSvoPAZsm0Hk=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -34,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/cybiere/baboossh";
     changelog = "https://github.com/cybiere/baboossh/releases/tag/v${version}";
     license = licenses.gpl3Only;
+    mainProgram = "baboossh";
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/tools/security/bao/default.nix b/pkgs/tools/security/bao/default.nix
index f948bccc5f43b..503896885c13f 100644
--- a/pkgs/tools/security/bao/default.nix
+++ b/pkgs/tools/security/bao/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/oconnor663/bao";
     maintainers = with lib.maintainers; [ amarshall ];
     license = with lib.licenses; [ cc0 asl20 ];
+    mainProgram = "bao";
   };
 }
diff --git a/pkgs/tools/security/bettercap/default.nix b/pkgs/tools/security/bettercap/default.nix
index 69736b4cc3081..2ece9ee6e4c40 100644
--- a/pkgs/tools/security/bettercap/default.nix
+++ b/pkgs/tools/security/bettercap/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://www.bettercap.org/";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ y0no ];
+    mainProgram = "bettercap";
   };
 }
diff --git a/pkgs/tools/security/bitwarden/cli.nix b/pkgs/tools/security/bitwarden/cli.nix
index 6e4ebb9d0987b..b5adb6f5d9ae9 100644
--- a/pkgs/tools/security/bitwarden/cli.nix
+++ b/pkgs/tools/security/bitwarden/cli.nix
@@ -8,20 +8,20 @@
 , nixosTests
 }:
 
-let
-  buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs_18; };
-in buildNpmPackage' rec {
+buildNpmPackage rec {
   pname = "bitwarden-cli";
-  version = "2023.9.0";
+  version = "2024.1.0";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "cli-v${version}";
-    hash = "sha256-s9jj1qmh4aCvtVY85U4AU7pcc8ABu9essFYqwf64dns=";
+    hash = "sha256-lDDy1b1yfw3nZrwEEkpvh6xYucgn20XHsGACc45eb2w=";
   };
 
-  npmDepsHash = "sha256-0q3XoC87kfC2PYMsNse4DV8M8OXjckiLTdN3LK06lZY=";
+  nodejs = nodejs_18;
+
+  npmDepsHash = "sha256-RR8Ua41D9SXymiPuabOnIab3byu8DR63rOfdeTaQpy4=";
 
   nativeBuildInputs = [
     python3
@@ -37,6 +37,8 @@ in buildNpmPackage' rec {
 
   npmWorkspace = "apps/cli";
 
+  npmFlags = [ "--legacy-peer-deps" ];
+
   passthru.tests = {
     vaultwarden = nixosTests.vaultwarden.sqlite;
   };
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index 41ce0d7e5e892..56d0cf676330c 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -1,10 +1,11 @@
 { lib
-, applyPatches
 , buildNpmPackage
 , cargo
+, copyDesktopItems
 , dbus
-, electron_24
+, electron_27
 , fetchFromGitHub
+, fetchpatch2
 , glib
 , gnome
 , gtk3
@@ -15,8 +16,10 @@
 , moreutils
 , napi-rs-cli
 , nodejs_18
+, patchutils_0_4_2
 , pkg-config
 , python3
+, runCommand
 , rustc
 , rustPlatform
 }:
@@ -24,38 +27,48 @@
 let
   description = "A secure and free password manager for all of your devices";
   icon = "bitwarden";
-
-  buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs_18; };
-  electron = electron_24;
-
-  desktopItem = makeDesktopItem {
-    name = "bitwarden";
-    exec = "bitwarden %U";
-    inherit icon;
-    comment = description;
-    desktopName = "Bitwarden";
-    categories = [ "Utility" ];
-  };
-in buildNpmPackage' rec {
+  electron = electron_27;
+in buildNpmPackage rec {
   pname = "bitwarden";
-  version = "2023.9.0";
+  version = "2024.1.0";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "desktop-v${version}";
-    hash = "sha256-8rNJmDpKLzTre5c2wktle7tthp1owZK5WAQP80/2R0g=";
+    hash = "sha256-lDDy1b1yfw3nZrwEEkpvh6xYucgn20XHsGACc45eb2w=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/bitwarden/clients/pull/7508
+      url = "https://github.com/amarshall/bitwarden-clients/commit/e85fa4ef610d9dd05bd22a9b93d54b0c7901776d.patch";
+      hash = "sha256-P9MTsiNbAb2kKo/PasIm9kGm0lQjuVUxAJ3Fh1DfpzY=";
+    })
+  ];
+
+  nodejs = nodejs_18;
+
   makeCacheWritable = true;
+  npmFlags = [ "--legacy-peer-deps" ];
   npmWorkspace = "apps/desktop";
-  npmDepsHash = "sha256-0q3XoC87kfC2PYMsNse4DV8M8OXjckiLTdN3LK06lZY=";
+  npmDepsHash = "sha256-RR8Ua41D9SXymiPuabOnIab3byu8DR63rOfdeTaQpy4=";
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
+    patches = map
+      (patch: runCommand
+        (builtins.baseNameOf patch)
+        { nativeBuildInputs = [ patchutils_0_4_2 ]; }
+        ''
+          < ${patch} filterdiff -p1 --include=${lib.escapeShellArg cargoRoot}'/*' > $out
+        ''
+      )
+      patches;
+    patchFlags = [ "-p4" ];
     sourceRoot = "${src.name}/${cargoRoot}";
-    hash = "sha256-YF3UHQWCSuWAg2frE8bo1XrLn44P6+1A7YUh4RZxwo0=";
+    hash = "sha256-EiJjIWiyu8MvX3Tj0Fkeh0T0El5kdCko2maiY6kkPPA=";
   };
   cargoRoot = "apps/desktop/desktop_native";
 
@@ -63,6 +76,7 @@ in buildNpmPackage' rec {
 
   nativeBuildInputs = [
     cargo
+    copyDesktopItems
     jq
     makeWrapper
     moreutils
@@ -128,6 +142,8 @@ in buildNpmPackage' rec {
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir $out
 
     pushd apps/desktop/dist/linux-unpacked
@@ -141,9 +157,6 @@ in buildNpmPackage' rec {
       --set-default ELECTRON_IS_DEV 0 \
       --inherit-argv0
 
-    mkdir -p $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications
-
     pushd apps/desktop/resources/icons
     for icon in *.png; do
       dir=$out/share/icons/hicolor/"''${icon%.png}"/apps
@@ -151,8 +164,21 @@ in buildNpmPackage' rec {
       cp "$icon" "$dir"/${icon}.png
     done
     popd
+
+    runHook postInstall
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "bitwarden";
+      exec = "bitwarden %U";
+      inherit icon;
+      comment = description;
+      desktopName = "Bitwarden";
+      categories = [ "Utility" ];
+    })
+  ];
+
   meta = {
     changelog = "https://github.com/bitwarden/clients/releases/tag/${src.rev}";
     inherit description;
@@ -160,5 +186,6 @@ in buildNpmPackage' rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ amarshall kiwi ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "bitwarden";
   };
 }
diff --git a/pkgs/tools/security/bitwarden/electron-27.patch b/pkgs/tools/security/bitwarden/electron-27.patch
new file mode 100644
index 0000000000000..5b2af2ce30f41
--- /dev/null
+++ b/pkgs/tools/security/bitwarden/electron-27.patch
@@ -0,0 +1,69 @@
+From e2c15e826fe9d4d2d12868ef5409e423e3191b58 Mon Sep 17 00:00:00 2001
+From: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
+Date: Fri, 8 Dec 2023 13:07:46 +0100
+Subject: [PATCH] Bump electron to v27.1.3 (#7134)
+
+Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
+
+(cherry picked from commit d76602343f36d8e17a9b0204e0290488456c96d5)
+---
+ apps/desktop/electron-builder.json | 2 +-
+ package-lock.json                  | 8 ++++----
+ package.json                       | 2 +-
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/apps/desktop/electron-builder.json b/apps/desktop/electron-builder.json
+index 69d1c0074f..a12870bd96 100644
+--- a/apps/desktop/electron-builder.json
++++ b/apps/desktop/electron-builder.json
+@@ -19,7 +19,7 @@
+     "**/node_modules/@bitwarden/desktop-native/index.js",
+     "**/node_modules/@bitwarden/desktop-native/desktop_native.${platform}-${arch}*.node"
+   ],
+-  "electronVersion": "25.9.1",
++  "electronVersion": "27.1.3",
+   "generateUpdatesFilesForAllChannels": true,
+   "publish": {
+     "provider": "generic",
+diff --git a/package-lock.json b/package-lock.json
+index 3f0afde95b..9b7b2dbcd9 100644
+--- a/package-lock.json
++++ b/package-lock.json
+@@ -125,7 +125,7 @@
+         "cross-env": "7.0.3",
+         "css-loader": "6.8.1",
+         "del": "6.1.1",
+-        "electron": "25.9.1",
++        "electron": "27.1.3",
+         "electron-builder": "23.6.0",
+         "electron-log": "5.0.0",
+         "electron-reload": "2.0.0-alpha.1",
+@@ -20173,9 +20173,9 @@
+       }
+     },
+     "node_modules/electron": {
+-      "version": "25.9.1",
+-      "resolved": "https://registry.npmjs.org/electron/-/electron-25.9.1.tgz",
+-      "integrity": "sha512-Uo/Fh7igjoUXA/f90iTATZJesQEArVL1uLA672JefNWTLymdKSZkJKiCciu/Xnd0TS6qvdIOUGuJFSTQnKskXQ==",
++      "version": "27.1.3",
++      "resolved": "https://registry.npmjs.org/electron/-/electron-27.1.3.tgz",
++      "integrity": "sha512-7eD8VMhhlL5J531OOawn00eMthUkX1e3qN5Nqd7eMK8bg5HxQBrn8bdPlvUEnCano9KhrVwaDnGeuzWoDOGpjQ==",
+       "dev": true,
+       "hasInstallScript": true,
+       "dependencies": {
+diff --git a/package.json b/package.json
+index 9ee884b31d..4a5c3513fd 100644
+--- a/package.json
++++ b/package.json
+@@ -88,7 +88,7 @@
+     "cross-env": "7.0.3",
+     "css-loader": "6.8.1",
+     "del": "6.1.1",
+-    "electron": "25.9.1",
++    "electron": "27.1.3",
+     "electron-builder": "23.6.0",
+     "electron-log": "5.0.0",
+     "electron-reload": "2.0.0-alpha.1",
+-- 
+2.42.0
+
diff --git a/pkgs/tools/security/bkcrack/default.nix b/pkgs/tools/security/bkcrack/default.nix
index e2ed76743c4cf..6345cbdc96028 100644
--- a/pkgs/tools/security/bkcrack/default.nix
+++ b/pkgs/tools/security/bkcrack/default.nix
@@ -2,22 +2,20 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, openmp
 }:
 
 stdenv.mkDerivation rec {
   pname = "bkcrack";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "kimci86";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-iyx4mOTr6MHECk9S9zrIAE5pt+cxWnOKS7iQPUyWfzs=";
+    hash = "sha256-VfPRX9lOPyen8CujiBtTCbD5e7xd9X2OQ1uZ6JWKwtY=";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ openmp ];
 
   postInstall = ''
     mkdir -p $out/bin $out/share/licenses/bkcrack
diff --git a/pkgs/tools/security/bloodhound-py/default.nix b/pkgs/tools/security/bloodhound-py/default.nix
deleted file mode 100644
index 197be429bee90..0000000000000
--- a/pkgs/tools/security/bloodhound-py/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib
-, fetchPypi
-, python3
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "bloodhound-py";
-  version = "1.6.1";
-
-  src = fetchPypi {
-    inherit version;
-    pname = "bloodhound";
-    hash = "sha256-SRP74I5euKJErnSkm6OSdAwznv/ZQeEtNG4XofnIEec=";
-  };
-
-  propagatedBuildInputs = with python3.pkgs; [
-    impacket
-    ldap3
-    dnspython
-  ];
-
-  # the package has no tests
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Ingestor for BloodHound";
-    homepage = "https://github.com/fox-it/BloodHound.py";
-    license = licenses.mit;
-    maintainers = with maintainers; [ exploitoverload ];
-  };
-}
diff --git a/pkgs/tools/security/boofuzz/default.nix b/pkgs/tools/security/boofuzz/default.nix
index 37724d87394df..39b35d6944ded 100644
--- a/pkgs/tools/security/boofuzz/default.nix
+++ b/pkgs/tools/security/boofuzz/default.nix
@@ -6,16 +6,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "boofuzz";
-  version = "0.4.1";
-  format = "setuptools";
+  version = "0.4.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jtpereyda";
-    repo = pname;
+    repo = "boofuzz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mbxImm5RfYWq1JCCSvvG58Sxv2ad4BOh+RLvtNjQCKE=";
+    hash = "sha256-ffZVFmfDAJ+Qn3hbeHY/CvYgpDLxB+jaYOiYyZqZ7mo=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     attrs
     click
@@ -42,8 +46,6 @@ python3.pkgs.buildPythonApplication rec {
     "TestNoResponseFailure"
     "TestProcessMonitor"
     "TestSocketConnection"
-    # SyntaxError: invalid syntax, https://github.com/jtpereyda/boofuzz/issues/663
-    "test_msg_60_bytes"
   ] ++ lib.optionals stdenv.isDarwin [
     "test_time_repeater"
   ];
diff --git a/pkgs/tools/security/browserpass/default.nix b/pkgs/tools/security/browserpass/default.nix
index 73c40a718c285..1dd2a27f1ec31 100644
--- a/pkgs/tools/security/browserpass/default.nix
+++ b/pkgs/tools/security/browserpass/default.nix
@@ -55,7 +55,8 @@ buildGoModule rec {
 
     # This path is used by our firefox wrapper for finding native messaging hosts
     mkdir -p $out/lib/mozilla/native-messaging-hosts
-    ln -s $out/lib/browserpass/hosts/firefox/*.json $out/lib/mozilla/native-messaging-hosts
+    # Copy ff manifests rather than linking to allow link-farming to work recursively in dependants
+    cp $out/lib/browserpass/hosts/firefox/*.json $out/lib/mozilla/native-messaging-hosts/
   '';
 
   passthru.tests.version = testers.testVersion {
diff --git a/pkgs/tools/security/buttercup-desktop/default.nix b/pkgs/tools/security/buttercup-desktop/default.nix
index 4138acb2cedf7..a3eb00d3fe45a 100644
--- a/pkgs/tools/security/buttercup-desktop/default.nix
+++ b/pkgs/tools/security/buttercup-desktop/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "buttercup-desktop";
-  version = "2.20.3";
+  version = "2.24.4";
   src = fetchurl {
     url = "https://github.com/buttercup/buttercup-desktop/releases/download/v${version}/Buttercup-linux-x86_64.AppImage";
-    sha256 = "sha256-e7CZjJSkAAkNn73Z3cg+D5SUdReBp6pqz7zKrbkHs38=";
+    sha256 = "sha256-c5MLj/1OSjGsySCENeJqEhubxl2y7uDhnOBAtLGy92I=";
   };
   appimageContents = appimageTools.extractType2 { inherit pname src version; };
 
diff --git a/pkgs/tools/security/ccid/default.nix b/pkgs/tools/security/ccid/default.nix
index 821d0a8d6be66..12f65546e92e5 100644
--- a/pkgs/tools/security/ccid/default.nix
+++ b/pkgs/tools/security/ccid/default.nix
@@ -1,12 +1,22 @@
-{ lib, stdenv, fetchurl, pcsclite, pkg-config, libusb1, perl }:
+{ lib
+, stdenv
+, fetchurl
+, flex
+, pcsclite
+, pkg-config
+, libusb1
+, perl
+, zlib
+, gitUpdater
+}:
 
 stdenv.mkDerivation rec {
   pname = "ccid";
-  version = "1.5.2";
+  version = "1.5.5";
 
   src = fetchurl {
     url = "https://ccid.apdu.fr/files/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-E5NEh+b4tI9pmhbTZ8x6GvejyodN5yGsbpYzvrhuchk=";
+    hash = "sha256-GUcI91/jadRd18Feiz6Kfbi0nPxVV1dMoqLnbvEsoMo=";
   };
 
   postPatch = ''
@@ -14,17 +24,50 @@ stdenv.mkDerivation rec {
     substituteInPlace src/Makefile.in --replace /bin/echo echo
   '';
 
-  preConfigure = ''
-    configureFlagsArray+=("--enable-usbdropdir=$out/pcsc/drivers")
+  configureFlags = [
+    "--enable-twinserial"
+    "--enable-serialconfdir=${placeholder "out"}/etc/reader.conf.d"
+    "--enable-ccidtwindir=${placeholder "out"}/pcsc/drivers/serial"
+    "--enable-usbdropdir=${placeholder "out"}/pcsc/drivers"
+  ];
+
+  # error: call to undeclared function 'InterruptRead';
+  # ISO C99 and later do not support implicit function declarations
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
+  };
+
+  nativeBuildInputs = [
+    flex
+    pkg-config
+    perl
+  ];
+
+  buildInputs = [
+    pcsclite
+    libusb1
+    zlib
+  ];
+
+  postInstall = ''
+    install -Dm 0444 -t $out/lib/udev/rules.d src/92_pcscd_ccid.rules
+    substituteInPlace $out/lib/udev/rules.d/92_pcscd_ccid.rules \
+      --replace "/usr/sbin/pcscd" "${pcsclite}/bin/pcscd"
   '';
 
-  nativeBuildInputs = [ pkg-config perl ];
-  buildInputs = [ pcsclite libusb1 ];
+  # The resulting shared object ends up outside of the default paths which are
+  # usually getting stripped.
+  stripDebugList = ["pcsc"];
+
+  passthru.updateScript = gitUpdater {
+    url = "https://salsa.debian.org/rousseau/CCID.git";
+  };
 
   meta = with lib; {
-    description = "ccid drivers for pcsclite";
+    description = "PC/SC driver for USB CCID smart card readers";
     homepage = "https://ccid.apdu.fr/";
-    license = licenses.gpl2Plus;
+    license = licenses.lgpl21Plus;
+    maintainers = [ maintainers.anthonyroussel ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/cdxgen/default.nix b/pkgs/tools/security/cdxgen/default.nix
index ffdd977da4163..60622a4fdd8c7 100644
--- a/pkgs/tools/security/cdxgen/default.nix
+++ b/pkgs/tools/security/cdxgen/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "cdxgen";
-  version = "6.0.14";
+  version = "9.11.1";
 
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ddeX2EwA2g6wgfsNxf/5ZVsQOHlINGhxif/y6368wCw=";
+    sha256 = "sha256-UrwC6T0XJeEETMtwphLWAnN7grWPI/O4aa3IKrWMhOM=";
   };
 
-  npmDepsHash = "sha256-CJ939wT9dKUzMDH2yHKgT056F2AVBevJlS/NhUBjx0E=";
+  npmDepsHash = "sha256-RbHauQkggFlIoIgDdC7A4Y/O4viTsDWNB2MPeDi8oZc=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/security/certinfo/default.nix b/pkgs/tools/security/certinfo/default.nix
new file mode 100644
index 0000000000000..e0d2a3998a25c
--- /dev/null
+++ b/pkgs/tools/security/certinfo/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, buildGoModule, fetchFromGitHub, libX11, darwin }:
+
+buildGoModule rec {
+  pname = "certinfo";
+  version = "1.0.21";
+
+  src = fetchFromGitHub {
+    owner = "pete911";
+    repo = "certinfo";
+    rev = "v${version}";
+    sha256 = "acAjX4M/egAhGVOeEKw5r2wteA/UsWf9fGR/HnhUr/w=";
+  };
+
+  # clipboard functionality not working on Darwin
+  doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
+
+  buildInputs = [ ]
+    ++ lib.optionals stdenv.isLinux [ libX11 ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ];
+
+  vendorHash = null;
+
+  meta = with lib; {
+    description = "Print x509 certificate info";
+    homepage = "https://github.com/pete911/certinfo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jakuzure ];
+  };
+}
diff --git a/pkgs/tools/security/certmgr/default.nix b/pkgs/tools/security/certmgr/default.nix
deleted file mode 100644
index e2318c853f112..0000000000000
--- a/pkgs/tools/security/certmgr/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub, fetchpatch }:
-
-let
-  generic = { patches ? [] }:
-    buildGoPackage rec {
-      version = "1.6.4";
-      pname = "certmgr";
-
-      goPackagePath = "github.com/cloudflare/certmgr/";
-
-      src = fetchFromGitHub {
-        owner = "cloudflare";
-        repo = "certmgr";
-        rev = "v${version}";
-        sha256 = "0glvyp61ya21pdm2bsvq3vfhmmxc2998vxc6hiyc79ijsv9n6jqi";
-      };
-
-      inherit patches;
-
-      meta = with lib; {
-        homepage = "https://cfssl.org/";
-        description = "Cloudflare's certificate manager";
-        platforms = platforms.linux;
-        license = licenses.bsd2;
-        maintainers = with maintainers; [ johanot srhb ];
-      };
-    };
-in
-{
-  certmgr = generic {};
-
-  certmgr-selfsigned = generic {
-    # The following patch makes it possible to use a self-signed x509 cert
-    # for the cfssl apiserver.
-    # TODO: remove patch when PR is merged.
-    patches = [
-      (fetchpatch {
-        url    = "https://github.com/cloudflare/certmgr/pull/51.patch";
-        sha256 = "0jhsw159d2mgybvbbn6pmvj4yqr5cwcal5fjwkcn9m4f4zlb6qrs";
-      })
-    ];
-  };
-}
diff --git a/pkgs/tools/security/cfripper/default.nix b/pkgs/tools/security/cfripper/default.nix
index 7f83fe7873e6b..080fc8ae3e320 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.13.2";
+  version = "1.15.2";
 
   src = fetchFromGitHub {
     owner = "Skyscanner";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-wcOtj56l2bUYE+WdbDwtB3aWlP2zEAFaaqw4THcHxbY=";
+    hash = "sha256-SmD3Dq5LicPRe3lWFsq4zqM/yDZ1LsgRwSUA5/RbN9I=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/chain-bench/default.nix b/pkgs/tools/security/chain-bench/default.nix
index 129c21b5d4b2c..9705440dfdf87 100644
--- a/pkgs/tools/security/chain-bench/default.nix
+++ b/pkgs/tools/security/chain-bench/default.nix
@@ -6,15 +6,15 @@
 
 buildGoModule rec {
   pname = "chain-bench";
-  version = "0.1.7";
+  version = "0.1.10";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UWP/S15s9k92RhH6xr0V544BHF4n9g+inN6Sdpja6uM=";
+    sha256 = "sha256-5+jSbXbT1UwHMVeZ07qcY8Is88ddHdr7QlgcbQK+8FA=";
   };
-  vendorHash = "sha256-R6V4dE2cNKcsBweSaUWjZHKnUQP/kADAbW2aTQc7TAg=";
+  vendorHash = "sha256-uN4TSAxb229NhcWmiQmWBajla9XKnpiZrXOWJxt/mic=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/chainsaw/default.nix b/pkgs/tools/security/chainsaw/default.nix
index fc4c3d5236256..b939e15263da9 100644
--- a/pkgs/tools/security/chainsaw/default.nix
+++ b/pkgs/tools/security/chainsaw/default.nix
@@ -7,21 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "chainsaw";
-  version = "2.7.3";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "WithSecureLabs";
     repo = "chainsaw";
     rev = "refs/tags/v${version}";
-    hash = "sha256-plfEVVMbiTXzBhshO3NZVeuHuNeI9+Lcw1G5xeBiTks=";
+    hash = "sha256-YEw/rN7X+npc9M8XdPGAZyYXSQOGiR0w9Wb3W63g8VU=";
   };
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "notatin-1.0.0" = "sha256-eeryJhH7kX8QWwVuEq5RzanVT2FBfFJWAzUDFgUKqR8=";
-    };
-  };
+  cargoHash = "sha256-cXvXvSipZFfanmn9QFtYZYEudZ6lyvsu2EMGD0lZEtw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreFoundation
diff --git a/pkgs/tools/security/cherrybomb/default.nix b/pkgs/tools/security/cherrybomb/default.nix
index 9f1478a8d231e..4bb975d3394c5 100644
--- a/pkgs/tools/security/cherrybomb/default.nix
+++ b/pkgs/tools/security/cherrybomb/default.nix
@@ -1,30 +1,22 @@
 { lib
 , rustPlatform
 , fetchCrate
-, pkg-config
-, openssl
 , stdenv
 , darwin
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cherrybomb";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-qZ1eKcRAwCzrzvw6QR28oZ8sGnsXmoOW/bWLQTlpqlo=";
+    hash = "sha256-MHKBP102U1Ug9wZm9x4+opZgG8f6Hx03FvoLV4qaDgY=";
   };
 
-  cargoHash = "sha256-eosK7MQ3UB8rxKHCrb3s3+BVarv19h0cL+uzwg95Hc8=";
+  cargoHash = "sha256-pj4+rG8XbrxVuNgnTVUTPmgrPBRSnoBnqFhOO/JGGWI=";
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
-
-  buildInputs = [
-    openssl
-  ] ++ lib.optionals stdenv.isDarwin [
+  buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
   ];
 
diff --git a/pkgs/tools/security/chkrootkit/default.nix b/pkgs/tools/security/chkrootkit/default.nix
index b365fa62f9537..ad14c1cd39973 100644
--- a/pkgs/tools/security/chkrootkit/default.nix
+++ b/pkgs/tools/security/chkrootkit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "chkrootkit";
-  version = "0.55";
+  version = "0.58b";
 
   src = fetchurl {
-    url = "ftp://ftp.pangeia.com.br/pub/seg/pac/${pname}-${version}.tar.gz";
-    sha256 = "sha256-qBwChuxEkxP5U3ASAqAOgbIE/Cz0PieFhaEcEqXgJYs=";
+    url = "ftp://ftp.chkrootkit.org/pub/seg/pac/${pname}-${version}.tar.gz";
+    sha256 = "sha256-de0qzoHw+j6cP7ZNqw6IV+1ZJH6nVfWJhBb+ssZoB7k=";
   };
 
   # TODO: a lazy work-around for linux build failure ...
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Locally checks for signs of a rootkit";
-    homepage = "http://www.chkrootkit.org/";
+    homepage = "https://www.chkrootkit.org/";
     license = licenses.bsd2;
     platforms = with platforms; linux;
   };
diff --git a/pkgs/tools/security/cie-middleware-linux/default.nix b/pkgs/tools/security/cie-middleware-linux/default.nix
index 7af3e9240f1e1..fa5ec2d2af830 100644
--- a/pkgs/tools/security/cie-middleware-linux/default.nix
+++ b/pkgs/tools/security/cie-middleware-linux/default.nix
@@ -20,13 +20,13 @@
 
 let
   pname = "cie-middleware-linux";
-  version = "1.4.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "M0rf30";
     repo = pname;
-    rev = "${version}-podofo";
-    sha256 = "sha256-Kyr9OTiY6roJ/wVJS/1aWfrrzDNQbuRTJQqo0akbMUU=";
+    rev = version;
+    sha256 = "sha256-Z8K2Ibg5bBfSql5HEapKgdfiCf/EIKTTD15oVeysQGk=";
   };
 
   gradle = gradle_7;
@@ -44,6 +44,7 @@ let
     buildPhase = ''
       # Run the fetchDeps task
       export GRADLE_USER_HOME=$(mktemp -d)
+      ls -l
       gradle --no-daemon -b cie-java/build.gradle fetchDeps
     '';
 
@@ -60,7 +61,7 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-WzT5vYF9yCMU2A7EkLZyjgWrN3gD7pnkPXc3hDFqpD8=";
+    outputHash = "sha256-jtaH8dBpnx8KMJe+jzJfkvcx1NO4nL5jsRO4+GI+d0c=";
   };
 
 in
@@ -84,7 +85,7 @@ stdenv.mkDerivation {
   buildInputs = [
     cryptopp
     fontconfig
-    podofo
+    podofo.dev
     openssl
     pcsclite
     curl
@@ -95,6 +96,10 @@ stdenv.mkDerivation {
     # substitute the cieid command with this $out/bin/cieid
     substituteInPlace libs/pkcs11/src/CSP/AbilitaCIE.cpp \
       --replace 'file = "cieid"' 'file = "'$out'/bin/cieid"'
+
+    # revert https://github.com/M0Rf30/cie-middleware-linux/commit/1a389d8
+    sed -i libs/meson.build \
+        -e "s@podofo_dep = .\+@podofo_dep = dependency('libpodofo')@g"
   '';
 
   # Note: we use pushd/popd to juggle between the
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index 2188cf99a3c9e..3f0daa8d945cc 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clamav";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchurl {
     url = "https://www.clamav.net/downloads/production/${pname}-${version}.tar.gz";
-    hash = "sha256-l6GS3/4UFIC1bKvxBj15qfxVzVkgMkH6Qb/HqYpUgCA=";
+    hash = "sha256-mhT+hwy7j1959mi3idyg8lzGviKr4y9PfTZ35O45NbA=";
   };
 
   patches = [
diff --git a/pkgs/tools/security/clevis/default.nix b/pkgs/tools/security/clevis/default.nix
index 0498f0599052a..fa1be45a5b997 100644
--- a/pkgs/tools/security/clevis/default.nix
+++ b/pkgs/tools/security/clevis/default.nix
@@ -16,6 +16,7 @@
 , ninja
 , pkg-config
 , tpm2-tools
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
@@ -29,6 +30,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-3J3ti/jRiv+p3eVvJD7u0ko28rPd8Gte0mCJaVaqyOs=";
   };
 
+  patches = [
+    # Replaces the clevis-decrypt 300s timeout to a 10s timeout
+    # https://github.com/latchset/clevis/issues/289
+    ./tang-timeout.patch
+  ];
+
   postPatch = ''
     for f in $(find src/ -type f); do
       grep -q "/bin/cat" "$f" && substituteInPlace "$f" \
@@ -65,6 +72,14 @@ stdenv.mkDerivation rec {
     "man"
   ];
 
+  passthru.tests = {
+    inherit (nixosTests.installer) clevisBcachefs clevisBcachefsFallback clevisLuks clevisLuksFallback clevisZfs clevisZfsFallback;
+    clevisLuksSystemdStage1 = nixosTests.installer-systemd-stage-1.clevisLuks;
+    clevisLuksFallbackSystemdStage1 = nixosTests.installer-systemd-stage-1.clevisLuksFallback;
+    clevisZfsSystemdStage1 = nixosTests.installer-systemd-stage-1.clevisZfs;
+    clevisZfsFallbackSystemdStage1 = nixosTests.installer-systemd-stage-1.clevisZfsFallback;
+  };
+
   meta = with lib; {
     description = "Automated Encryption Framework";
     homepage = "https://github.com/latchset/clevis";
diff --git a/pkgs/tools/security/clevis/tang-timeout.patch b/pkgs/tools/security/clevis/tang-timeout.patch
new file mode 100644
index 0000000000000..454541d5e77ce
--- /dev/null
+++ b/pkgs/tools/security/clevis/tang-timeout.patch
@@ -0,0 +1,13 @@
+diff --git a/src/pins/tang/clevis-decrypt-tang b/src/pins/tang/clevis-decrypt-tang
+index 72393b4..40b660f 100755
+--- a/src/pins/tang/clevis-decrypt-tang
++++ b/src/pins/tang/clevis-decrypt-tang
+@@ -101,7 +101,7 @@ xfr="$(jose jwk exc -i '{"alg":"ECMR"}' -l- -r- <<< "$clt$eph")"
+ 
+ rec_url="$url/rec/$kid"
+ ct="Content-Type: application/jwk+json"
+-if ! rep="$(curl -sfg -X POST -H "$ct" --data-binary @- "$rec_url" <<< "$xfr")"; then
++if ! rep="$(curl --connect-timeout 10 -sfg -X POST -H "$ct" --data-binary @- "$rec_url" <<< "$xfr")"; then
+     echo "Error communicating with server $url" >&2
+     exit 1
+ fi
diff --git a/pkgs/tools/security/cloudfox/default.nix b/pkgs/tools/security/cloudfox/default.nix
index df34f3e18bf74..ab5f395f27c80 100644
--- a/pkgs/tools/security/cloudfox/default.nix
+++ b/pkgs/tools/security/cloudfox/default.nix
@@ -5,16 +5,21 @@
 
 buildGoModule rec {
   pname = "cloudfox";
-  version = "1.12.2";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "BishopFox";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-r9YIJ+PRUA1stKTL39+/T+m1WMkocpjfzG8Y9knnFU4=";
+    hash = "sha256-zP6jrueL3CXl6+fCmx4u0FzFy8mj6WkmECPHRZyqX8A=";
   };
 
-  vendorHash = "sha256-nSisRurpareGI4EHENayMhsYOKL1hE1wVw2Ueiqii4U=";
+  vendorHash = "sha256-qPIMmyKTmZEmxlLLftRMnBXvo22WFROYlCAAsAb7jDg=";
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   # Some tests are failing because of wrong filename/path
   doCheck = false;
diff --git a/pkgs/tools/security/cloudhunter/default.nix b/pkgs/tools/security/cloudhunter/default.nix
index 109bd5a9df7aa..206879d537592 100644
--- a/pkgs/tools/security/cloudhunter/default.nix
+++ b/pkgs/tools/security/cloudhunter/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloudhunter";
-  version = "0.7.0";
+  version = "0.7.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "belane";
     repo = "CloudHunter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yRl3x1dboOcoPeKxpUEhDk8OJx1hynEJRHL9/Su8OyA=";
+    hash = "sha256-7iT4vr0kcNXEyJJdBbJsllIcbZRGY3T5t/FjEONkuq0=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/cloudlist/default.nix b/pkgs/tools/security/cloudlist/default.nix
index b3e13d1691e85..64f6a23bde7e6 100644
--- a/pkgs/tools/security/cloudlist/default.nix
+++ b/pkgs/tools/security/cloudlist/default.nix
@@ -5,16 +5,21 @@
 
 buildGoModule rec {
   pname = "cloudlist";
-  version = "1.0.4";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
-    repo = pname;
+    repo = "cloudlist";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-m0b7gtbI9i1tD8HduEAF+Mo2UpI4gqldEO8q4u+Wo3E=";
+    hash = "sha256-oq+JmcENFcB4AoVEhxoYIKZArgzVm6QFsPF8ybtNMak=";
   };
 
-  vendorHash = "sha256-GHQnI4T6y/p+BlQyrNJmIaSek0sC1J3UwcuvDQH5gCI=";
+  vendorHash = "sha256-4eGmfPXqohdRHT0xExF1Z5jE8GscQGlVEmS3cHMX4x8=";
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   meta = with lib; {
     description = "Tool for listing assets from multiple cloud providers";
diff --git a/pkgs/tools/security/cmospwd/default.nix b/pkgs/tools/security/cmospwd/default.nix
index fa04ac6520744..e80b7256e50c9 100644
--- a/pkgs/tools/security/cmospwd/default.nix
+++ b/pkgs/tools/security/cmospwd/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-8pbSl5eUsKa3JrgK/JLk0FnGXcJhKksJN3wWiDPYYvQ=";
   };
 
+  makeFlags = [ "CC:=$(CC)" ];
+
   preConfigure = ''
     cd src
 
@@ -32,6 +34,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://www.cgsecurity.org/wiki/CmosPwd";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ t4ccer ];
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 })
diff --git a/pkgs/tools/security/cnquery/default.nix b/pkgs/tools/security/cnquery/default.nix
new file mode 100644
index 0000000000000..9f16add25dffc
--- /dev/null
+++ b/pkgs/tools/security/cnquery/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "cnquery";
+  version = "10.0.3";
+
+  src = fetchFromGitHub {
+    owner = "mondoohq";
+    repo = "cnquery";
+    rev = "v${version}";
+    hash = "sha256-LiW9P0q4VstzkNQQUdI5xG1TmpdwQMi3EZk0gsAA5LU=";
+  };
+
+  subPackages = [ "apps/cnquery" ];
+
+  vendorHash = "sha256-/SUdyzCbIuVCM2/K0shlJTXbCJ8FSkXtOPaJvRDt2Zk=";
+
+  meta = with lib; {
+    description = "cloud-native, graph-based asset inventory";
+    longDescription = ''
+    cnquery is a cloud-native tool for querying your entire fleet. It answers thousands of questions about your infrastructure and integrates with over 300 resources across cloud accounts, Kubernetes, containers, services, VMs, APIs, and more.
+      '';
+    homepage = "https://mondoo.com/cnquery";
+    changelog = "https://github.com/mondoohq/cnquery/releases/tag/v${version}";
+    license = licenses.bsl11;
+    maintainers = with maintainers; [ mariuskimmina ];
+  };
+}
diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix
index 8d73e982e1973..43fcb0331254f 100644
--- a/pkgs/tools/security/cnspec/default.nix
+++ b/pkgs/tools/security/cnspec/default.nix
@@ -5,17 +5,17 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "8.23.2";
+  version = "10.1.4";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fqbqbKAj7NKtPXbL6iAI4o8Vpr7n6zp1WM72kQXj/H8=";
+    hash = "sha256-8dwsCDHBxJzGqexjtWsijZkERz69ew1ISeU86UALzMk=";
   };
 
   proxyVendor = true;
-  vendorHash = "sha256-+gTIBLNiXqcYXK0WGucwXXCBjkhkr5rrTjGKUuqn+mY=";
+  vendorHash = "sha256-nrK0XwCrLFLgHWGtG0UrjqQPwoeOGWvxy+AnHZmkacM=";
 
   subPackages = [
     "apps/cnspec"
@@ -31,7 +31,7 @@ buildGoModule rec {
     description = "An open source, cloud-native security and policy project";
     homepage = "https://github.com/mondoohq/cnspec";
     changelog = "https://github.com/mondoohq/cnspec/releases/tag/v${version}";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ fab ];
+    license = licenses.bsl11;
+    maintainers = with maintainers; [ fab mariuskimmina ];
   };
 }
diff --git a/pkgs/tools/security/coercer/default.nix b/pkgs/tools/security/coercer/default.nix
index 3d1e6cb469637..f380d130bb07f 100644
--- a/pkgs/tools/security/coercer/default.nix
+++ b/pkgs/tools/security/coercer/default.nix
@@ -5,22 +5,28 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "coercer";
-  version = "1.6";
+  version = "2.4.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "p0dalirius";
     repo = "Coercer";
     rev = "refs/tags/${version}";
-    hash = "sha256-xftYnwu6uUTvJTZU9E7wvdgBxqa8xy83K5GOlgNSCvc=";
+    hash = "sha256-WeaKToKYIB+jjTNIQvAUQQNb25TsNWALYZwIZuBjkPE=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "impacket"
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
     impacket
+    xlsxwriter
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/tools/security/commix/default.nix b/pkgs/tools/security/commix/default.nix
index 94290619f0f3e..b4c16376d8dad 100644
--- a/pkgs/tools/security/commix/default.nix
+++ b/pkgs/tools/security/commix/default.nix
@@ -5,16 +5,26 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commix";
-  version = "3.8";
-  format = "setuptools";
+  version = "3.9";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "commixproject";
-    repo = pname;
+    repo = "commix";
     rev = "refs/tags/v${version}";
-    hash = "sha256-S/2KzZb3YUF0VJharWV/+7IG+r1EnB2sOveMpd1ryEI=";
+    hash = "sha256-HX+gEL9nmq9R1GFw8xQaa7kBmW7R0IepitM08bIf3vY=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-warn "-stable" ""
+  '';
+
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   postInstall = ''
     # Helper files are not handled by setup.py
     mkdir -p $out/${python3.sitePackages}/src/txt
diff --git a/pkgs/tools/security/cosign/default.nix b/pkgs/tools/security/cosign/default.nix
index c08a8cf1dd171..072b8e4ffb529 100644
--- a/pkgs/tools/security/cosign/default.nix
+++ b/pkgs/tools/security/cosign/default.nix
@@ -13,13 +13,13 @@
 }:
 buildGoModule rec {
   pname = "cosign";
-  version = "2.2.0";
+  version = "2.2.3";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-VE/rm85KZs3JWMsidIlUGJ9JrtZ4VBI+Go1yujq7z1s=";
+    hash = "sha256-+y79Uml1TvKypbwcWkZZF415qUPPfieP5pKHO+APjPE=";
   };
 
   buildInputs =
@@ -28,7 +28,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
 
-  vendorHash = "sha256-mpT4/BS/NofMueBbwhh4v6pNEONEpWM9RDKuYZ+9BtA=";
+  vendorHash = "sha256-udMnSdXBjlDQlQRzhhLBDBcHwREkEev0uLIVjT8BbuU=";
 
   subPackages = [
     "cmd/cosign"
@@ -52,6 +52,7 @@ buildGoModule rec {
     rm pkg/cosign/ctlog_test.go # Require network access
     rm pkg/cosign/tlog_test.go # Require network access
     rm cmd/cosign/cli/verify/verify_blob_attestation_test.go # Require network access
+    rm cmd/cosign/cli/verify/verify_blob_test.go # Require network access
   '';
 
   postInstall = ''
diff --git a/pkgs/tools/security/cowpatty/default.nix b/pkgs/tools/security/cowpatty/default.nix
index 934b31a35da67..2c6e0cfa414f7 100644
--- a/pkgs/tools/security/cowpatty/default.nix
+++ b/pkgs/tools/security/cowpatty/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , clang
 , fetchFromGitHub
+, fetchpatch
 , installShellFiles
 , openssl
 , libpcap
@@ -18,6 +19,16 @@ stdenv.mkDerivation rec {
     sha256 = "0fvwwghhd7wsx0lw2dj9rdsjnirawnq3c6silzvhi0yfnzn5fs0s";
   };
 
+  patches = [
+    # Pull upstream fix for parallel builds:
+    #   https://github.com/joswr1ght/cowpatty/pull/5
+    (fetchpatch {
+      name = "fix-parallel.patch";
+      url = "https://github.com/joswr1ght/cowpatty/commit/9c8cc09c4fa90aebee44afcd0ad6a35539178478.patch";
+      hash = "sha256-k0Qht80HcjvPoxVPF6wAXwxN3d2mxBrEyeFGuU7w9eA=";
+    })
+  ];
+
   nativeBuildInputs = [
     clang
     installShellFiles
@@ -28,6 +39,8 @@ stdenv.mkDerivation rec {
     libpcap
   ];
 
+  enableParallelBuilding = true;
+
   makeFlags = [
     "DESTDIR=$(out)"
     "BINDIR=/bin"
diff --git a/pkgs/tools/security/coze/default.nix b/pkgs/tools/security/coze/default.nix
index 03da09c19e91b..5fbd906fd87ef 100644
--- a/pkgs/tools/security/coze/default.nix
+++ b/pkgs/tools/security/coze/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "CLI client for Coze, a cryptographic JSON messaging specification.";
+    description = "CLI client for Coze, a cryptographic JSON messaging specification";
     homepage = "https://github.com/Cyphrme/coze_cli";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ qbit ];
diff --git a/pkgs/tools/security/crackmapexec/default.nix b/pkgs/tools/security/crackmapexec/default.nix
index 85b987d78c7c3..7db3c804f911c 100644
--- a/pkgs/tools/security/crackmapexec/default.nix
+++ b/pkgs/tools/security/crackmapexec/default.nix
@@ -35,7 +35,7 @@ python3.pkgs.buildPythonApplication rec {
     pypsrp
     pywerview
     requests
-    requests_ntlm
+    requests-ntlm
     termcolor
     terminaltables
     xmltodict
diff --git a/pkgs/tools/security/crackql/default.nix b/pkgs/tools/security/crackql/default.nix
index ab78f177fd7c5..6a8e95ec57f2d 100644
--- a/pkgs/tools/security/crackql/default.nix
+++ b/pkgs/tools/security/crackql/default.nix
@@ -5,20 +5,25 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "crackql";
-  version = "unstable-20220821";
-  format = "pyproject";
+  version = "unstable-20230818";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nicholasaleks";
     repo = "CrackQL";
     # rev = "refs/tags/${version}";
     # Switch to tag with the next update
-    rev = "5bcf92f4520a4dd036baf9f47c5ebbf18e6a032a";
+    rev = "ac26a44c2dd201f65da0d1c3f95eaf776ed1b2dd";
     hash = "sha256-XlHbGkwdOV1nobjtQP/M3IIEuzXHBuwf52EsXf3MWoM=";
   };
 
+  pythonRelaxDeps = [
+    "graphql-core"
+  ];
+
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/creds/default.nix b/pkgs/tools/security/creds/default.nix
index 9f218f89bdd9f..2f2962616d7c1 100644
--- a/pkgs/tools/security/creds/default.nix
+++ b/pkgs/tools/security/creds/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "creds";
-  version = "0.5";
+  version = "0.5.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "ihebski";
     repo = "DefaultCreds-cheat-sheet";
-    rev = "refs/tags/creds-${version}";
-    hash = "sha256-s9ja2geFTnul7vUlGI4Am+IG3C0igICf0whnyd3SHdQ=";
+    rev = "refs/tags/creds-v${version}";
+    hash = "sha256-CtwGSF3EGcPqL49paNRCsB2qxYjKpCLqyRsC67nAyVk=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/crowdsec/default.nix b/pkgs/tools/security/crowdsec/default.nix
index 9c3dceda96f6c..ed97dd98c03d2 100644
--- a/pkgs/tools/security/crowdsec/default.nix
+++ b/pkgs/tools/security/crowdsec/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "crowdsec";
-  version = "1.5.4";
+  version = "1.5.5";
 
   src = fetchFromGitHub {
     owner = "crowdsecurity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-5VwsuPNoAhCvhKUJDUkXnEVLMqHx2M1Nz11VoBASoxU=";
+    hash = "sha256-dE2PeYyC75y9dc84QdhQ6xaLMPdPWtPDse2sY5bFGwU=";
   };
 
-  vendorHash = "sha256-6ODcb7UQPgM5n5RPN4AdkrY3+vlu+GXlUfrlTePywyY=";
+  vendorHash = "sha256-hvandF9LPh1g4zIgmNIyId2YhqHU4RPKHGCtJI9aoPk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/cryptomator/default.nix b/pkgs/tools/security/cryptomator/default.nix
index fa54248d309dc..bf6f5c3c05879 100644
--- a/pkgs/tools/security/cryptomator/default.nix
+++ b/pkgs/tools/security/cryptomator/default.nix
@@ -2,6 +2,7 @@
 , autoPatchelfHook
 , fuse3
 , maven, jdk, makeShellWrapper, glib, wrapGAppsHook
+, libayatana-appindicator
 }:
 
 
@@ -13,24 +14,23 @@ in
 assert stdenv.isLinux; # better than `called with unexpected argument 'enableJavaFX'`
 mavenJdk.buildMavenPackage rec {
   pname = "cryptomator";
-  version = "1.9.4";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "cryptomator";
     repo = "cryptomator";
     rev = version;
-    hash = "sha256-63UXn1ejL/wDx6S2lugwwthu+C+vJovPypgM0iak78I=";
+    hash = "sha256-Y+oG2NF4Vsklp1W22Xv+XrkY6vwn23FkzAXG/5828Og=";
   };
 
-  mvnParameters = "-Dmaven.test.skip=true";
-  mvnHash = "sha256-7gv++Pc+wqmVYaAMgHhSy7xwChfVBgpDFxExzu3bXO0=";
+  mvnParameters = "-Dmaven.test.skip=true -Plinux";
+  mvnHash = "sha256-cXmnJHgKW6SGnhHFuFJP/DKNmFacfHbC3nQ2uVdIvUE=";
 
   preBuild = ''
     VERSION=${version}
     SEMVER_STR=${version}
   '';
 
-
   # 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/
@@ -38,26 +38,29 @@ mavenJdk.buildMavenPackage rec {
     cp target/libs/* $out/share/cryptomator/libs/
     cp target/mods/* target/cryptomator-*.jar $out/share/cryptomator/mods/
 
-    makeShellWrapper ${jdk}/bin/java $out/bin/cryptomator \
+    makeShellWrapper ${jdk}/bin/java $out/bin/${pname} \
       --add-flags "--enable-preview" \
+      --add-flags "--enable-native-access=org.cryptomator.jfuse.linux.amd64,org.purejava.appindicator" \
       --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.mountPointsDir='~/.local/share/Cryptomator/mnt'" \
-      --add-flags "-Dcryptomator.showTrayIcon=false" \
-      --add-flags "-Dcryptomator.buildNumber='nix'" \
+      --add-flags "-Dfile.encoding='utf-8'" \
+      --add-flags "-Dcryptomator.logDir='@{userhome}/.local/share/Cryptomator/logs'" \
+      --add-flags "-Dcryptomator.pluginDir='@{userhome}/.local/share/Cryptomator/plugins'" \
+      --add-flags "-Dcryptomator.settingsPath='@{userhome}/.config/Cryptomator/settings.json'" \
+      --add-flags "-Dcryptomator.p12Path='@{userhome}/.config/Cryptomator/key.p12'" \
+      --add-flags "-Dcryptomator.ipcSocketPath='@{userhome}/.config/Cryptomator/ipc.socket'" \
+      --add-flags "-Dcryptomator.mountPointsDir='@{userhome}/.local/share/Cryptomator/mnt'" \
+      --add-flags "-Dcryptomator.showTrayIcon=true" \
+      --add-flags "-Dcryptomator.buildNumber='nix-${src.rev}'" \
       --add-flags "-Dcryptomator.appVersion='${version}'" \
-      --add-flags "-Djdk.gtk.version=3" \
+      --add-flags "-Djava.net.useSystemProxies=true" \
       --add-flags "-Xss20m" \
       --add-flags "-Xmx512m" \
-      --add-flags "-Djavafx.embed.singleThread=true " \
-      --add-flags "-Dawt.useSystemAAFontSettings=on" \
+      --add-flags "-Dcryptomator.disableUpdateCheck=true" \
+      --add-flags "-Dcryptomator.integrationsLinux.trayIconsDir='$out/share/icons/hicolor/symbolic/apps'" \
       --add-flags "--module org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator" \
       --prefix PATH : "$out/share/cryptomator/libs/:${lib.makeBinPath [ jdk glib ]}" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ fuse3 ]}" \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ fuse3 libayatana-appindicator ]}" \
       --set JAVA_HOME "${jdk.home}"
 
     # install desktop entry and icons
@@ -78,7 +81,7 @@ mavenJdk.buildMavenPackage rec {
     wrapGAppsHook
     jdk
   ];
-  buildInputs = [ fuse3 jdk glib ];
+  buildInputs = [ fuse3 jdk glib libayatana-appindicator ];
 
   meta = with lib; {
     description = "Free client-side encryption for your cloud files";
diff --git a/pkgs/tools/security/ctmg/default.nix b/pkgs/tools/security/ctmg/default.nix
index b08af06825e3c..81d57513aac37 100644
--- a/pkgs/tools/security/ctmg/default.nix
+++ b/pkgs/tools/security/ctmg/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ mrVanDalo ];
     platforms = platforms.linux;
+    mainProgram = "ctmg";
   };
 }
diff --git a/pkgs/tools/security/cyclonedx-gomod/default.nix b/pkgs/tools/security/cyclonedx-gomod/default.nix
index 1c404aa3f8369..1a00303ac96f4 100644
--- a/pkgs/tools/security/cyclonedx-gomod/default.nix
+++ b/pkgs/tools/security/cyclonedx-gomod/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "cyclonedx-gomod";
-  version = "1.4.1";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "CycloneDX";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-JczDfNBYT/Ap2lDucEvuT8NAwuQgmavOUvtznI6Q+Zc=";
+    hash = "sha256-3YHlh7edRWU8plAJh96RDkrC9YUQjvV4vNGOxmbS0sA=";
   };
 
-  vendorHash = "sha256-5Mn+f+oVwbn2qGaZct5+9f6tOBXfsB/I72yD7fHUrC8=";
+  vendorHash = "sha256-0Fx9pOofcY5rpX6DU2xPeg7xEZ8ows/DWwyV5B7LHGY=";
 
   # Tests require network access and cyclonedx executable
   doCheck = false;
@@ -25,5 +25,6 @@ buildGoModule rec {
     changelog = "https://github.com/CycloneDX/cyclonedx-gomod/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "cyclonedx-gomod";
   };
 }
diff --git a/pkgs/tools/security/dalfox/default.nix b/pkgs/tools/security/dalfox/default.nix
index 85fc3c55a3b04..b41ca04f7798d 100644
--- a/pkgs/tools/security/dalfox/default.nix
+++ b/pkgs/tools/security/dalfox/default.nix
@@ -5,16 +5,21 @@
 
 buildGoModule rec {
   pname = "dalfox";
-  version = "2.9.0";
+  version = "2.9.2";
 
   src = fetchFromGitHub {
     owner = "hahwul";
-    repo = pname;
+    repo = "dalfox";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-AG5CNqkxPQJQ+HN3JGUIgSYxgFigmUqVGn1yAHmo7Mo=";
+    hash = "sha256-sKW6UYSPgXkZbLiOeYru/XpG/Cpvvhwos6Z5J/WxjXo=";
   };
 
-  vendorHash = "sha256-OLT85GOcTnWmU+ZRem2+vY29nzvzXhnmIN2W+U6phPk=";
+  vendorHash = "sha256-0eNaH82iCmxaie+nA9qxEWb8Uq6LaEQoU9wRFJ+GFv0=";
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   # Tests require network access
   doCheck = false;
@@ -25,5 +30,6 @@ buildGoModule rec {
     changelog = "https://github.com/hahwul/dalfox/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "dalfox";
   };
 }
diff --git a/pkgs/tools/security/deepsecrets/default.nix b/pkgs/tools/security/deepsecrets/default.nix
index 09c8aac926b88..c509311f3a6de 100644
--- a/pkgs/tools/security/deepsecrets/default.nix
+++ b/pkgs/tools/security/deepsecrets/default.nix
@@ -6,7 +6,7 @@
 python3.pkgs.buildPythonApplication rec {
   pname = "deepsecrets";
   version = "1.0.6";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "avito-tech";
@@ -17,9 +17,9 @@ python3.pkgs.buildPythonApplication rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'pyyaml = "^5.4.1"' 'pyyaml = "*"' \
-      --replace 'regex = "^2023.3.23"' 'regex = "*"' \
-      --replace 'mmh3 = "^3.0.0"' 'mmh3 = "*"'
+      --replace-warn 'pyyaml = "^5.4.1"' 'pyyaml = "*"' \
+      --replace-warn 'regex = "^2023.3.23"' 'regex = "*"' \
+      --replace-warn 'mmh3 = "^3.0.0"' 'mmh3 = "*"'
   '';
 
   nativeBuildInputs = with python3.pkgs; [
@@ -30,7 +30,7 @@ python3.pkgs.buildPythonApplication rec {
     dotwiz
     mmh3
     ordered-set
-    pydantic
+    pydantic_1
     pygments
     pyyaml
     regex
diff --git a/pkgs/tools/security/der-ascii/default.nix b/pkgs/tools/security/der-ascii/default.nix
index 5fc3b179b3ad1..28cab27731b13 100644
--- a/pkgs/tools/security/der-ascii/default.nix
+++ b/pkgs/tools/security/der-ascii/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "der-ascii";
-  version = "0.1.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1my93m1rx08kn2yms6k8w43byr8k61r1nra4b082j8b393wwxkqc";
+    sha256 = "sha256-LgxGSZQNxwx08mK9G8mSuBFTOd3pC1mvz3Wz7Y+6XR4=";
   };
   vendorHash = null;
 
diff --git a/pkgs/tools/security/dismember/default.nix b/pkgs/tools/security/dismember/default.nix
index 2dffd8116b9cc..cb2dd99b45c57 100644
--- a/pkgs/tools/security/dismember/default.nix
+++ b/pkgs/tools/security/dismember/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/liamg/dismember";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "dismember";
   };
 }
diff --git a/pkgs/tools/security/dnsx/default.nix b/pkgs/tools/security/dnsx/default.nix
index e3ff230c1e617..648f7883788ef 100644
--- a/pkgs/tools/security/dnsx/default.nix
+++ b/pkgs/tools/security/dnsx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dnsx";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "dnsx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hO6m4WsoK50tLBr7I9ui7HE3rxKpOES8IOugi04yeQo=";
+    hash = "sha256-dyqZXc5k76BwF2Kh2vm9d+dpvgpXK/8VQeGjx1UzA6k=";
   };
 
-  vendorHash = "sha256-c3HHfcWppAUfKjePsB+/CvxJWjp5zV6TJvsm3yKH4cw=";
+  vendorHash = "sha256-S1mJMVfQSy49Lm4q3v05kjbXBlBgBt/AAzLOoQkk75A=";
 
   # Tests require network access
   doCheck = false;
diff --git a/pkgs/tools/security/donkey/default.nix b/pkgs/tools/security/donkey/default.nix
index 514df406f3b92..ec95715853ec4 100644
--- a/pkgs/tools/security/donkey/default.nix
+++ b/pkgs/tools/security/donkey/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   passthru.tests.version = testers.testVersion { package = donkey; };
 
   meta = with lib; {
-    description = "an alternative for S/KEY's 'key' command.";
+    description = "An alternative for S/KEY's 'key' command";
     longDescription = ''
 Donkey is an alternative for S/KEY's "key" command.  The new feature that
 the original key doesn't have is print an entry for skeykeys as
diff --git a/pkgs/tools/security/doppler/default.nix b/pkgs/tools/security/doppler/default.nix
index 272caf42e90e7..92b964ad2c95f 100644
--- a/pkgs/tools/security/doppler/default.nix
+++ b/pkgs/tools/security/doppler/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "doppler";
-  version = "3.66.3";
+  version = "3.66.5";
 
   src = fetchFromGitHub {
     owner = "dopplerhq";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-zS5nIULnzoOG43nNcVb6MdmKNDcDK75mh3SOMB5BXIY=";
+    sha256 = "sha256-/kcGfTDthm4gp1M4lSeY1x8Q7EWVX2pZVjF2rAbz+Es=";
   };
 
   vendorHash = "sha256-FOmaK6S61fkzybpDx6qfi6m4e2IaqBpavaFhEgIvmqw=";
diff --git a/pkgs/tools/security/earlybird/default.nix b/pkgs/tools/security/earlybird/default.nix
index c7c16ab47d382..c7cb35fe335c7 100644
--- a/pkgs/tools/security/earlybird/default.nix
+++ b/pkgs/tools/security/earlybird/default.nix
@@ -5,20 +5,16 @@
 
 buildGoModule rec {
   pname = "earlybird";
-  version = "3.16.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "americanexpress";
     repo = "earlybird";
     rev = "v${version}";
-    hash = "sha256-qSW8O13UW5L2eVsqIuqOguhCyZBPqevZ9fJ7qkraa7M=";
+    hash = "sha256-guSm/ha4ICaOcoynvAwFeojE6ikaCykMcdfskD/ehTw=";
   };
 
-  patches = [
-    ./fix-go.mod-dependency.patch
-  ];
-
-  vendorHash = "sha256-ktsQvWc0CTnqOer+9cc0BddrQp0F3Xk7YJP3jxfuw1w=";
+  vendorHash = "sha256-39jXqCXAwg/C+9gEXiS1X58OD61nMNQifnhgVGEF6ck=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/tools/security/earlybird/fix-go.mod-dependency.patch b/pkgs/tools/security/earlybird/fix-go.mod-dependency.patch
deleted file mode 100644
index fb1cf4afdabc8..0000000000000
--- a/pkgs/tools/security/earlybird/fix-go.mod-dependency.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/go.mod
-+++ b/go.mod
-@@ -42,8 +42,9 @@ require (
- 	github.com/src-d/gcfg v1.4.0 // indirect
- 	github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
- 	github.com/xanzy/ssh-agent v0.2.1 // indirect
--	golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 // indirect
-+	golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect
- 	golang.org/x/sys v0.0.0-20220906165534-d0df966e6959 // indirect
-+	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
- 	google.golang.org/protobuf v1.23.0 // indirect
- 	gopkg.in/src-d/go-billy.v4 v4.3.2 // indirect
- 	gopkg.in/warnings.v0 v0.1.2 // indirect
diff --git a/pkgs/tools/security/echidna/default.nix b/pkgs/tools/security/echidna/default.nix
index 80dcba3a8038b..7f503acd6f0bd 100644
--- a/pkgs/tools/security/echidna/default.nix
+++ b/pkgs/tools/security/echidna/default.nix
@@ -7,63 +7,34 @@
 , slither-analyzer
 }:
 
-let haskellPackagesOverride = haskellPackages.override {
-      overrides = self: super: {
-        # following the revision specified in echidna/stack.yaml
-        # TODO: 0.51.3 is not in haskellPackages yet
-        hevm = haskell.lib.overrideCabal super.hevm (oa: {
-          version = "0.51.3";
-          src = fetchFromGitHub {
-            owner = "ethereum";
-            repo = "hevm";
-            rev = "release/0.51.3";
-            hash = "sha256-H6oURBGoQWSOuPhBB+UKg2UarVzXgv1tmfDBLnOtdhU=";
-          };
-          libraryHaskellDepends = oa.libraryHaskellDepends
-                                  ++ (with haskellPackages;[githash witch]);
-        });
-      };
-    };
-in mkDerivation rec {
+mkDerivation rec {
   pname = "echidna";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "crytic";
     repo = "echidna";
     rev = "v${version}";
-    sha256 = "sha256-5d9ttPR3rRHywBeLM85EGCEZLNZNZzOAhIN6AJToJyI=";
+    sha256 = "sha256-l1ILdO+xb0zx/TFM6Am9j5hq1RnIMNf2HU6YvslAj0w=";
   };
 
-  # Note: pending PR https://github.com/crytic/echidna/pull/1096
-  patches = [
-     (fetchpatch {
-       name = "brick-1.9-update";
-       url = "https://github.com/crytic/echidna/pull/1096/commits/36657d54943727e569691a6b3d85b83130480a2e.patch";
-       sha256 = "sha256-AOmB/fAZCF7ruXW1HusRe7wWWsLyMCWw+j3qIPARIAc=";
-     })
-  ];
-
   isLibrary = true;
   isExecutable = true;
 
-  libraryToolDepends = with haskellPackagesOverride; [
+  libraryToolDepends = with haskellPackages; [
     haskellPackages.hpack
   ];
 
-  # Note: This can be extracted from package.yaml of echidna, the list is shorter because some are transitive.
-  executableHaskellDepends = with haskellPackagesOverride;
-    [aeson base base16-bytestring binary brick bytestring code-page containers data-dword data-has directory exceptions extra
-     filepath hashable hevm html-conduit html-entities http-conduit lens ListLike MonadRandom mtl optics optparse-applicative
-     process random semver text transformers unix unliftio unordered-containers vector vector-instances vty with-utf8
-     xml-conduit yaml];
+  executableHaskellDepends = with haskellPackages; [ aeson base base16-bytestring binary bytestring code-page
+  containers data-bword data-dword deepseq directory exceptions extra filepath hashable hevm html-conduit html-entities
+  http-conduit ListLike MonadRandom mtl optics optics-core optparse-applicative process random rosezipper semver split
+  strip-ansi-escape text time transformers unliftio utf8-string vector wai-extra warp with-utf8 word-wrap xml-conduit
+  yaml ];
 
   # Note: there is also a runtime dependency of slither-analyzer, let's include it also.
   executableSystemDepends = [ slither-analyzer ];
 
-  testHaskellDepends = with haskellPackagesOverride; [
-    tasty tasty-hunit tasty-quickcheck
-  ];
+  testHaskellDepends = with haskellPackages; [ tasty tasty-hunit tasty-quickcheck ];
 
   preConfigure = ''
     hpack
diff --git a/pkgs/tools/security/efitools/default.nix b/pkgs/tools/security/efitools/default.nix
index 59cb794d718e1..70032504f475f 100644
--- a/pkgs/tools/security/efitools/default.nix
+++ b/pkgs/tools/security/efitools/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, gnu-efi, openssl, sbsigntool, perl, perlPackages,
-help2man, fetchgit }:
+help2man, fetchzip }:
 stdenv.mkDerivation rec {
   pname = "efitools";
   version = "1.9.2";
@@ -16,9 +16,8 @@ stdenv.mkDerivation rec {
     help2man
   ];
 
-  src = fetchgit {
-    url = "https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git";
-    rev = "v${version}";
+  src = fetchzip {
+    url = "https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/snapshot/efitools-v${version}.tar.gz";
     sha256 = "0jabgl2pxvfl780yvghq131ylpf82k7banjz0ksjhlm66ik8gb1i";
   };
 
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
index e399974b4c6ef..b7cae61ad2c76 100644
--- a/pkgs/tools/security/eid-mw/default.nix
+++ b/pkgs/tools/security/eid-mw/default.nix
@@ -21,13 +21,13 @@
 stdenv.mkDerivation rec {
   pname = "eid-mw";
   # NOTE: Don't just blindly update to the latest version/tag. Releases are always for a specific OS.
-  version = "5.1.11";
+  version = "5.1.15";
 
   src = fetchFromGitHub {
     owner = "Fedict";
     repo = "eid-mw";
     rev = "v${version}";
-    hash = "sha256-70UjfkH+rx1Q+2XEuAByoDsP5ZelyuGXaHdkjTe/sCY=";
+    hash = "sha256-balyAdQO8aZ9wGYerPUDxgBWGG7Ya2eIyo6UX62M4SI=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/enc/default.nix b/pkgs/tools/security/enc/default.nix
index 646d7c80559eb..ffacccf6a311a 100644
--- a/pkgs/tools/security/enc/default.nix
+++ b/pkgs/tools/security/enc/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "enc";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "life4";
     repo = "enc";
     rev = version;
-    hash = "sha256-kVK/+pR3Rzg7oCjHKr+i+lK6nhqlBN6Wj92i4SKU2l0=";
+    hash = "sha256-G6x17CDAKpmqvl7FTycSQ5bF0JndNP+SlUoBVUk76IQ=";
   };
 
-  vendorHash = "sha256-6LNo4iBZDc0DTn8f/2PdCb6CNFCjU6o1xDkB5m/twJk=";
+  vendorHash = "sha256-lB4DoHB+hGKjIcrAjeCd8a5prTn8XFIWhzNakA7utHI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/enpass/data.json b/pkgs/tools/security/enpass/data.json
index dc6ef20497235..bcb086410723d 100644
--- a/pkgs/tools/security/enpass/data.json
+++ b/pkgs/tools/security/enpass/data.json
@@ -1,8 +1,8 @@
 {
   "amd64": {
-    "path": "pool/main/e/enpass/enpass_6.9.0.1467_amd64.deb",
-    "sha256": "fe405f7119d45822164da3ad009b99c5cd516685198c1d335b7803d84e5ba2ca",
-    "version": "6.9.0.1467"
+    "path": "pool/main/e/enpass/enpass_6.9.2.1563_amd64.deb",
+    "sha256": "013a6ecab29ad6b1a91203fea3cd771d039d777ea24c03d0a74ec5aa86b720ff",
+    "version": "6.9.2.1563"
   },
   "i386": {
     "path": "pool/main/e/enpass/enpass_5.6.9_i386.deb",
diff --git a/pkgs/tools/security/enum4linux-ng/default.nix b/pkgs/tools/security/enum4linux-ng/default.nix
index 2c9ab122e657f..d30bcbf665d47 100644
--- a/pkgs/tools/security/enum4linux-ng/default.nix
+++ b/pkgs/tools/security/enum4linux-ng/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonApplication rec {
   pname = "enum4linux-ng";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "cddmp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-qO34sVK8eunALPCzLoCqWkO78tG4iEavij8jClCRi88=";
+    hash = "sha256-O3TZcCn2kRLrMjQPVg8F5Q2ri968xRbXrdnfytfMkYM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/security/erosmb/default.nix b/pkgs/tools/security/erosmb/default.nix
index b7984feac5136..f03e9a958de20 100644
--- a/pkgs/tools/security/erosmb/default.nix
+++ b/pkgs/tools/security/erosmb/default.nix
@@ -44,5 +44,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/viktor02/EroSmb/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "erosmb";
   };
 }
diff --git a/pkgs/tools/security/evil-winrm/default.nix b/pkgs/tools/security/evil-winrm/default.nix
index fe10bfaefec0e..30420c7aad685 100644
--- a/pkgs/tools/security/evil-winrm/default.nix
+++ b/pkgs/tools/security/evil-winrm/default.nix
@@ -1,14 +1,19 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, bundlerEnv }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, bundlerEnv
+}:
 
 stdenv.mkDerivation rec {
   pname = "evil-winrm";
-  version = "3.3";
+  version = "3.5";
 
   src = fetchFromGitHub {
     owner = "Hackplayers";
     repo = "evil-winrm";
-    rev = "v${version}";
-    sha256 = "sha256-uWhRkq7I/XRWSUpR8lWRhDImE6x0pX9/B3gKhRIhkf8=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-8Lyo7BgypzrHMEcbYlxo/XWwOtBqs2tczYnc3+XEbeA=";
   };
 
   env = bundlerEnv {
@@ -18,8 +23,13 @@ stdenv.mkDerivation rec {
     gemset = ./gemset.nix;
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ env.wrappedRuby ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  buildInputs = [
+    env.wrappedRuby
+  ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -27,9 +37,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/Hackplayers/evil-winrm";
-    changelog = "https://github.com/Hackplayers/evil-winrm/releases/tag/v${version}";
     description = "WinRM shell for hacking/pentesting";
+    homepage = "https://github.com/Hackplayers/evil-winrm";
+    changelog = "https://github.com/Hackplayers/evil-winrm/blob/v${version}/CHANGELOG.md";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ elohmeier ];
   };
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index 0ac3a206e1b52..27d6ce498439e 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2023-10-10";
+  version = "2024-02-01";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-svFj+Kc2lonKqkwA4fbrvWK+JNJm3ANfWL+DCjB67pQ=";
+    hash = "sha256-Ypl2OdyOLKGISQZ0A6jM3uwUBGGzHjuwOL7RHQynTow=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 780f1b4dfb0c0..0ed0af4e0698b 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
     substituteInPlace setup.py --replace /usr/share/doc/ share/doc/
 
     # see https://github.com/NixOS/nixpkgs/issues/4968
-    ${python3.interpreter} setup.py install_data --install-dir=$out --root=$out
+    ${python3.pythonOnBuildForHost.interpreter} setup.py install_data --install-dir=$out --root=$out
   '';
 
   postInstall =
@@ -61,6 +61,11 @@ python3.pkgs.buildPythonApplication rec {
       rm -r "${sitePackages}/etc"
 
       installManPage man/*.[1-9]
+
+      # This is a symlink to the build python version created by `updatePyExec`, seemingly to assure the same python version is used?
+      rm $out/bin/fail2ban-python
+      ln -s ${python3.interpreter} $out/bin/fail2ban-python
+
     '' + lib.optionalString stdenv.isLinux ''
       # see https://github.com/NixOS/nixpkgs/issues/4968
       rm -r "${sitePackages}/usr"
diff --git a/pkgs/tools/security/faraday-agent-dispatcher/default.nix b/pkgs/tools/security/faraday-agent-dispatcher/default.nix
index 39f9398260f1a..44cf92318235b 100644
--- a/pkgs/tools/security/faraday-agent-dispatcher/default.nix
+++ b/pkgs/tools/security/faraday-agent-dispatcher/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "faraday-agent-dispatcher";
-  version = "2.6.2";
-  format = "setuptools";
+  version = "3.0.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = "faraday_agent_dispatcher";
     rev = "refs/tags/${version}";
-    hash = "sha256-+lsejepg/iBHo6CRAGNHjiUC7ZgboHbKu7EDmlN3lVk=";
+    hash = "sha256-QCxYqLZAPrhcKAFguWT2ygN/OMe2Tr7HtnMx4Kp2bGM=";
   };
 
   postPatch = ''
@@ -20,7 +20,12 @@ python3.pkgs.buildPythonApplication rec {
       --replace '"pytest-runner",' ""
   '';
 
+  pythonRelaxDeps = [
+    "python-socketio"
+  ];
+
   nativeBuildInputs = with python3.pkgs; [
+    pythonRelaxDepsHook
     setuptools-scm
   ];
 
@@ -34,6 +39,7 @@ python3.pkgs.buildPythonApplication rec {
     pytenable
     python-gvm
     python-owasp-zap-v2-4
+    python-socketio
     pyyaml
     requests
     syslog-rfc5424-formatter
diff --git a/pkgs/tools/security/faraday-cli/default.nix b/pkgs/tools/security/faraday-cli/default.nix
index cebe1540c605b..b0ee2015555c4 100644
--- a/pkgs/tools/security/faraday-cli/default.nix
+++ b/pkgs/tools/security/faraday-cli/default.nix
@@ -5,16 +5,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "faraday-cli";
-  version = "2.1.9";
-  format = "setuptools";
+  version = "2.1.10";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-8D1oYYqf0R41DPYtorcvykZ99p6P6Diwe7PgEN378pU=";
+    hash = "sha256-7Yg2m0xHpBPZ58gJodSYO8vXaxSlr4GK1Lin63WozOE=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     arrow
     click
diff --git a/pkgs/tools/security/feroxbuster/default.nix b/pkgs/tools/security/feroxbuster/default.nix
index 09f14d6799a4b..18af1a0f1c486 100644
--- a/pkgs/tools/security/feroxbuster/default.nix
+++ b/pkgs/tools/security/feroxbuster/default.nix
@@ -9,13 +9,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "feroxbuster";
-  version = "2.10.0";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "epi052";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-u2c+s5kCAYOKwl5eb1zY7xdl4pD6eAjiyRj6JFkA07M=";
+    hash = "sha256-AFh/IeB88NYPsyUqzaN92GoDbAgl+HG87cIy+Ni06Q8=";
   };
 
   # disable linker overrides on aarch64-linux
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
     rm .cargo/config
   '';
 
-  cargoHash = "sha256-rPFj53KQkucz1/yAr6U2nk6gTdxcBxyRHVqGeawBYZU=";
+  cargoHash = "sha256-Fu3qw3qRK3TZlzK1WcmI/GQ5TM1j+gbGoedwp18SolY=";
 
   OPENSSL_NO_VENDOR = true;
 
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
     platforms = platforms.unix;
+    mainProgram = "feroxbuster";
   };
 }
 
diff --git a/pkgs/tools/security/ffuf/default.nix b/pkgs/tools/security/ffuf/default.nix
index 3831ff4d8e228..e0e5976c75101 100644
--- a/pkgs/tools/security/ffuf/default.nix
+++ b/pkgs/tools/security/ffuf/default.nix
@@ -1,23 +1,38 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 }:
 
 buildGoModule rec {
   pname = "ffuf";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "ffuf";
+    repo = "ffuf";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TfPglATKQ3RIGODcIpSRL6FjbLyCjDzbi70jTLKYlLk=";
+    hash = "sha256-+wcNqQHtB8yCLiJXMBxolCWsYZbBAsBGS1hs7j1lzUU=";
   };
 
-  vendorHash = "sha256-nqv45e1W7MA8ElsJ7b4XWs26OicJ7IXmh93+wkueZg4=";
+  vendorHash = "sha256-SrC6Q7RKf+gwjJbxSZkWARw+kRtkwVv1UJshc/TkNdc=";
+
+  patches = [
+    # Fix CSV test, https://github.com/ffuf/ffuf/pull/731
+    (fetchpatch {
+      name = "fix-csv-test.patch";
+      url = "https://github.com/ffuf/ffuf/commit/7f2aae005ad73988a1fa13c1c33dab71f4ae5bbd.patch";
+      hash = "sha256-/v9shGICmsbFfEJe4qBkBHB9PVbBlrjY3uFmODxHu9M=";
+    })
+  ];
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   meta = with lib; {
-    description = "Fast web fuzzer written in Go";
+    description = "Tool for web fuzzing";
     longDescription = ''
       FFUF, or “Fuzz Faster you Fool” is an open source web fuzzing tool,
       intended for discovering elements and content within web applications
diff --git a/pkgs/tools/security/fingerprintx/default.nix b/pkgs/tools/security/fingerprintx/default.nix
index 1a685c48126cc..940195b4e2b51 100644
--- a/pkgs/tools/security/fingerprintx/default.nix
+++ b/pkgs/tools/security/fingerprintx/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "fingerprintx";
-  version = "1.1.9";
+  version = "1.1.13";
 
   src = fetchFromGitHub {
     owner = "praetorian-inc";
     repo = "fingerprintx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XWZzLVY+Vw8x8anFQ+P0FVbHgCuMTvV+fEJ2OmDdkQU=";
+    hash = "sha256-kWMwadE3ZJTqwEgtrXvXlyc/2+cf1NGhubwZuYpDMBQ=";
   };
 
   vendorHash = "sha256-TMy6FwAFlo+ARvm+RiRqly0xIk4lBCXuZrtdnNSMSxw=";
diff --git a/pkgs/tools/security/flare-floss/default.nix b/pkgs/tools/security/flare-floss/default.nix
index b049ea1661083..c9a9c8cd1380a 100644
--- a/pkgs/tools/security/flare-floss/default.nix
+++ b/pkgs/tools/security/flare-floss/default.nix
@@ -5,15 +5,15 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "flare-floss";
-  version = "2.3.0";
-  format = "setuptools";
+  version = "3.0.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mandiant";
     repo = "flare-floss";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true; # for tests
-    hash = "sha256-tOLnve5XBc3TtSgucPIddBHD0YJhsRpRduXsKrtJ/eQ=";
+    hash = "sha256-bmOWOFqyvOvSrNTbwLqo0WMq4IAZxZ0YYaWCdCrpziU=";
   };
 
   postPatch = ''
@@ -24,11 +24,16 @@ python3.pkgs.buildPythonPackage rec {
       --replace 'sigs_path = os.path.join(get_default_root(), "sigs")' 'sigs_path = "'"$out"'/share/flare-floss/sigs"'
   '';
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
+    binary2strings
     halo
     networkx
     pefile
-    pydantic
+    pydantic_1
     rich
     tabulate
     tqdm
@@ -47,6 +52,10 @@ python3.pkgs.buildPythonPackage rec {
     cp -r floss/sigs $out/share/flare-floss/
   '';
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   meta = with lib; {
     description = "Automatically extract obfuscated strings from malware";
     homepage = "https://github.com/mandiant/flare-floss";
diff --git a/pkgs/tools/security/fscan/default.nix b/pkgs/tools/security/fscan/default.nix
index 29a1c55d610a7..00ce9d8ec78e3 100644
--- a/pkgs/tools/security/fscan/default.nix
+++ b/pkgs/tools/security/fscan/default.nix
@@ -2,22 +2,22 @@
 
 buildGoModule rec {
   pname = "fscan";
-  version = "1.8.2";
+  version = "1.8.3-build3";
 
   src = fetchFromGitHub {
     owner = "shadow1ng";
     repo = "fscan";
     rev = version;
-    hash = "sha256-PbhCKIr7qy4/hzx3TC7lnrQQw8rlUlprAbHdKdxgVuY=";
+    hash = "sha256-GtOCd8JaR6tx8hoB+P9QXrEnN7Wvmv7jddhc2/8hjvQ=";
   };
 
-  vendorHash = "sha256-pzcZgBcjGU5AyZfh+mHnphEboDDvQqseiuouwgb8rN8=";
+  vendorHash = "sha256-hvb2IfypwYauF3ubE36u0bTU+l/FWP/CZt6dFd9zc6s=";
 
   meta = with lib; {
     description = "An intranet comprehensive scanning tool";
     homepage = "https://github.com/shadow1ng/fscan";
     license = licenses.mit;
     maintainers = with maintainers; [ Misaka13514 ];
-    platforms = with platforms; unix ++ windows;
+    mainProgram = "fscan";
   };
 }
diff --git a/pkgs/tools/security/fulcio/default.nix b/pkgs/tools/security/fulcio/default.nix
index 4d085fb9980a6..9c40c051bebcc 100644
--- a/pkgs/tools/security/fulcio/default.nix
+++ b/pkgs/tools/security/fulcio/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fulcio";
-  version = "1.4.1";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6muoKiryWTGIoy1U3kWjuka0X1+gcrUQOvbuas26H1M=";
+    sha256 = "sha256-LT8J9s008XQtDtNdH1ungQREqQUrlTsoxnlRLKimqLY=";
     # 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
     '';
   };
-  vendorHash = "sha256-i9RK9kNSB9FOnVbYcHLBHt8KKBQCNsEDONNm1IxgTJc=";
+  vendorHash = "sha256-ImZJXdOfMepMFU1z47XyNU39NGGdiCzQji2/tKVfibQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/fwknop/default.nix b/pkgs/tools/security/fwknop/default.nix
index 5625ab47058d4..6c4ce6507657d 100644
--- a/pkgs/tools/security/fwknop/default.nix
+++ b/pkgs/tools/security/fwknop/default.nix
@@ -25,6 +25,14 @@ stdenv.mkDerivation rec {
       url = "https://github.com/mrash/fwknop/commit/a8214fd58bc46d23b64b3a55db023c7f5a5ea6af.patch";
       sha256 = "0cp1350q66n455hpd3rdydb9anx66bcirza5gyyyy5232zgg58bi";
     })
+
+    # Pull patch pending upstream inclusion for `autoconf-2.72` support:
+    #   https://github.com/mrash/fwknop/pull/357
+    (fetchpatch {
+      name = "autoconf-2.72.patch";
+      url = "https://github.com/mrash/fwknop/commit/bee7958532338499e35c19e75937891c8113f7de.patch";
+      hash = "sha256-lrro5dSDR0Zz9aO3bV5vFFADNJjoDR9z6P5lFYWyLW8=";
+    })
   ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/security/gallia/default.nix b/pkgs/tools/security/gallia/default.nix
index f0e71f8c9c057..5d0cc05ec46da 100644
--- a/pkgs/tools/security/gallia/default.nix
+++ b/pkgs/tools/security/gallia/default.nix
@@ -6,25 +6,18 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gallia";
-  version = "1.1.4";
-  format = "pyproject";
+  version = "1.5.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Fraunhofer-AISEC";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-McHzHK404kDB992T2f84dZHDxujpPIz4qglYMmv3kTw=";
+    hash = "sha256-JeEJ4xTIOFeMADnuPMLNGxB/qEPKMnaIhQ6FCUaNa7E=";
   };
 
-  pythonRelaxDeps = [
-    "aiofiles"
-    "argcomplete"
-    "msgspec"
-  ];
-
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -33,6 +26,9 @@ python3.pkgs.buildPythonApplication rec {
     aiosqlite
     argcomplete
     can
+    exitcode
+    platformdirs
+    psutil
     construct
     msgspec
     pydantic
diff --git a/pkgs/tools/security/gau/default.nix b/pkgs/tools/security/gau/default.nix
index 41c858ba9797b..eea5df85162c9 100644
--- a/pkgs/tools/security/gau/default.nix
+++ b/pkgs/tools/security/gau/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gau";
-  version = "2.1.2";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "lc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-z8JmMMob12wRTdpFoVbRHTDwet9AMXet49lHEDVVAnw=";
+    sha256 = "sha256-AtKakeQnxRbFAbK/aQ4OQoEowN753jm4P4M57Oo3x1Y=";
   };
 
-  vendorHash = "sha256-HQATUCzYvhhlqe4HhNu9H4CqmY2IGLNJ9ydt3/igSmQ=";
+  vendorHash = "sha256-nhsGhuX5AJMHg+zQUt1G1TwVgMCxnuJ2T3uBrx7bJNs=";
 
   meta = with lib; {
     description = "Tool to fetch known URLs";
diff --git a/pkgs/tools/security/gen-oath-safe/default.nix b/pkgs/tools/security/gen-oath-safe/default.nix
index bb607c1fbd322..9ce87ac3bdd13 100644
--- a/pkgs/tools/security/gen-oath-safe/default.nix
+++ b/pkgs/tools/security/gen-oath-safe/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     platforms =  platforms.unix;
     license = licenses.mit;
     maintainers = [ maintainers.makefu ];
+    mainProgram = "gen-oath-safe";
   };
 
 }
diff --git a/pkgs/tools/security/ggshield/default.nix b/pkgs/tools/security/ggshield/default.nix
index f2cf2e9050d83..50b3439732d37 100644
--- a/pkgs/tools/security/ggshield/default.nix
+++ b/pkgs/tools/security/ggshield/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ggshield";
-  version = "1.19.1";
-  format = "pyproject";
+  version = "1.23.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "GitGuardian";
     repo = "ggshield";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yAH1MWviOfo5m7esvnm6KlcQeS62aIqgFD4hzBMbHVU=";
+    hash = "sha256-c2EXgUs+6GA5zHHF7Cx21LIsZ+jbmQFFUwLft2q5M30=";
   };
 
   pythonRelaxDeps = true;
@@ -42,6 +42,7 @@ python3.pkgs.buildPythonApplication rec {
   nativeCheckInputs = [
     git
   ] ++ (with python3.pkgs; [
+    jsonschema
     pyfakefs
     pytest-mock
     pytest-voluptuous
diff --git a/pkgs/tools/security/ghauri/default.nix b/pkgs/tools/security/ghauri/default.nix
index fb230dc68d270..6e7ddeb3cd968 100644
--- a/pkgs/tools/security/ghauri/default.nix
+++ b/pkgs/tools/security/ghauri/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ghauri";
-  version = "1.1.8";
+  version = "1.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "r0oth3x49";
     repo = "ghauri";
     rev = "refs/tags/${version}";
-    hash = "sha256-WEWiWu8U7DmRjj42BEBXA3CHTyJh2Apz59ImFrmQXEk=";
+    hash = "sha256-CZhkb8GmXXSA5QqhW7IAirwsxQg6YNFT3RHrGsyqAbk=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch b/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch
index 03ddf76e8ffe2..7fb7d53e352fc 100644
--- a/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch
+++ b/pkgs/tools/security/ghidra/0001-Use-protobuf-gradle-plugin.patch
@@ -1,112 +1,129 @@
 diff --git a/Ghidra/Debug/Debugger-gadp/build.gradle b/Ghidra/Debug/Debugger-gadp/build.gradle
-index f4dbd3cd0..6108e8534 100644
+index 9e1c57faf..3a3242eb5 100644
 --- a/Ghidra/Debug/Debugger-gadp/build.gradle
 +++ b/Ghidra/Debug/Debugger-gadp/build.gradle
-@@ -23,42 +23,18 @@ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
+@@ -18,11 +18,16 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle"
+ apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle"
+ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
  apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle"
+-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle"
++apply plugin: 'com.google.protobuf'
  
  apply plugin: 'eclipse'
-+apply plugin: 'com.google.protobuf'
  eclipse.project.name = 'Debug Debugger-gadp'
  
--configurations {
--	allProtocArtifacts
--	protocArtifact
--}
--
- def platform = getCurrentPlatformName()
- 
--dependencies {
--	allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:windows-x86_64@exe'
--	allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe'
--	allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:linux-aarch_64@exe'
--	allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:osx-x86_64@exe'
--	allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:osx-aarch_64@exe'
--
--	if (isCurrentWindows()) {
--		protocArtifact 'com.google.protobuf:protoc:3.21.8:windows-x86_64@exe'
--	}
--	if (isCurrentLinux()) {
--		if (platform.endsWith("x86_64")) {
--			protocArtifact 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe'
--		}
--		else {
--			protocArtifact 'com.google.protobuf:protoc:3.21.8:linux-aarch_64@exe'
--		}
--	}
--	if (isCurrentMac()) {
--		if (platform.endsWith("x86_64")) {
--			protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-x86_64@exe'
--		}
--		else {
--			protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-aarch_64@exe'
--		}
 +buildscript {
 +	dependencies {
 +		classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
- 	}
++	}
 +}
- 
-+dependencies {
+ dependencies {
  	api project(':Framework-AsyncComm')
  	api project(':Framework-Debugging')
- 	api project(':ProposedUtils')
-@@ -73,37 +49,3 @@ dependencies {
- 	}
- }*/
- 
--task generateProto {
--	ext.srcdir = file("src/main/proto")
--	ext.src = fileTree(srcdir) {
--		include "**/*.proto"
--	}
--	ext.outdir = file("build/generated/source/proto/main/java")
--	outputs.dir(outdir)
--	inputs.files(src)
--	dependsOn(configurations.protocArtifact)
--	doLast {
--		def exe = configurations.protocArtifact.first()
--		if (!isCurrentWindows()) {
--			exe.setExecutable(true)
--		}
--		exec {
--			commandLine exe, "--java_out=$outdir", "-I$srcdir"
--			args src
--		}
--	}
--}
--
--tasks.compileJava.dependsOn(tasks.generateProto)
--tasks.eclipse.dependsOn(tasks.generateProto)
--rootProject.tasks.prepDev.dependsOn(tasks.generateProto)
--
--sourceSets {
--	main {
--		java {
--			srcDir tasks.generateProto.outdir
--		}
--	}
--}
--zipSourceSubproject.dependsOn generateProto
--
 diff --git a/Ghidra/Debug/Debugger-isf/build.gradle b/Ghidra/Debug/Debugger-isf/build.gradle
-index 6bf945c2e..3225d095d 100644
+index d135294a0..785681ca2 100644
 --- a/Ghidra/Debug/Debugger-isf/build.gradle
 +++ b/Ghidra/Debug/Debugger-isf/build.gradle
-@@ -20,42 +20,18 @@ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
+@@ -18,11 +18,15 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle"
+ apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle"
+ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
  apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle"
- 
- apply plugin: 'eclipse'
+-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle"
+-
 +apply plugin: 'com.google.protobuf'
+ apply plugin: 'eclipse'
  eclipse.project.name = 'Debug Debugger-isf'
  
++buildscript {
++	dependencies {
++		classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
++	}
++}
+ dependencies {
+ 	api project(':Framework-AsyncComm')
+ 	api project(':Framework-Debugging')
+diff --git a/Ghidra/Debug/Debugger-rmi-trace/build.gradle b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
+index eec00786e..666cccafc 100644
+--- a/Ghidra/Debug/Debugger-rmi-trace/build.gradle
++++ b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
+@@ -18,12 +18,17 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle"
+ apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle"
+ apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
+ apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle"
+-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle"
++apply plugin: 'com.google.protobuf'
+ apply from: "${rootProject.projectDir}/gradle/debugger/hasPythonPackage.gradle"
+ 
+ apply plugin: 'eclipse'
+ eclipse.project.name = 'Debug Debugger-rmi-trace'
+ 
++buildscript {
++	dependencies {
++		classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
++	}
++}
+ dependencies {
+ 	api project(':Debugger')
+ }
+@@ -36,7 +41,7 @@ task generateProtoPy {
+ 	ext.outdir = file("build/generated/source/proto/main/py")
+ 	outputs.dir(outdir)
+ 	inputs.files(src)
+-	dependsOn(configurations.protocArtifact)
++	dependsOn(protobuf.generateProtoTasks.all())
+ 	doLast {
+ 		def exe = configurations.protocArtifact.first()
+ 		if (!isCurrentWindows()) {
+diff --git a/build.gradle b/build.gradle
+index b0c717fb1..5f56506a5 100644
+--- a/build.gradle
++++ b/build.gradle
+@@ -74,6 +74,12 @@ if (flatRepo.isDirectory()) {
+ 			jcenter()
+ 			flatDir name: "flat", dirs:["$flatRepo"]
+ 		}
++		buildscript {
++			repositories {
++				mavenLocal()
++				mavenCentral()
++			}
++		}
+ 	}
+ }
+ else {	
+diff --git a/gradle/debugger/hasProtobuf.gradle b/gradle/debugger/hasProtobuf.gradle
+deleted file mode 100644
+index 23b4ce74b..000000000
+--- a/gradle/debugger/hasProtobuf.gradle
++++ /dev/null
+@@ -1,94 +0,0 @@
+-/* ###
+- * IP: GHIDRA
+- *
+- * Licensed under the Apache License, Version 2.0 (the "License");
+- * you may not use this file except in compliance with the License.
+- * You may obtain a copy of the License at
+- * 
+- *      http://www.apache.org/licenses/LICENSE-2.0
+- * 
+- * Unless required by applicable law or agreed to in writing, software
+- * distributed under the License is distributed on an "AS IS" BASIS,
+- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- * See the License for the specific language governing permissions and
+- * limitations under the License.
+- */
+-/*plugins {
+-	id 'com.google.protobuf' version '0.8.10'
+-}*/
+-
 -configurations {
 -	allProtocArtifacts
 -	protocArtifact
 -}
 -
- def platform = getCurrentPlatformName()
- 
+-def platform = getCurrentPlatformName()
+-
+-
 -dependencies {
 -	allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:windows-x86_64@exe'
 -	allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe'
@@ -132,20 +149,15 @@ index 6bf945c2e..3225d095d 100644
 -		else {
 -			protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-aarch_64@exe'
 -		}
-+buildscript {
-+	dependencies {
-+		classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
- 	}
-+}
- 
-+dependencies {
- 	api project(':Framework-AsyncComm')
- 	api project(':Framework-Debugging')
- 	api project(':ProposedUtils')
-@@ -64,40 +40,6 @@ dependencies {
- 	testImplementation project(path: ':Framework-Debugging', configuration: 'testArtifacts')
- }
- 
+-	}
+-}
+-
+-/*protobuf {
+-	protoc {
+-		artifact = 'com.google.protobuf:protoc:3.21.8'
+-	}
+-}*/
+-
 -task generateProto {
 -	ext.srcdir = file("src/main/proto")
 -	ext.src = fileTree(srcdir) {
@@ -179,24 +191,3 @@ index 6bf945c2e..3225d095d 100644
 -	}
 -}
 -zipSourceSubproject.dependsOn generateProto
--
- // Include buildable native source in distribution
- rootProject.assembleDistribution {
-     from (this.project.projectDir.toString()) {
-diff --git a/build.gradle b/build.gradle
-index b0c717fb1..5f56506a5 100644
---- a/build.gradle
-+++ b/build.gradle
-@@ -74,6 +74,12 @@ if (flatRepo.isDirectory()) {
- 			jcenter()
- 			flatDir name: "flat", dirs:["$flatRepo"]
- 		}
-+		buildscript {
-+			repositories {
-+				mavenLocal()
-+				mavenCentral()
-+			}
-+		}
- 	}
- }
- else {	
diff --git a/pkgs/tools/security/ghidra/build.nix b/pkgs/tools/security/ghidra/build.nix
index 16bc1dbe5cd71..da164c94b0b5b 100644
--- a/pkgs/tools/security/ghidra/build.nix
+++ b/pkgs/tools/security/ghidra/build.nix
@@ -10,18 +10,19 @@
 , icoutils
 , xcbuild
 , protobuf
+, fetchurl
 }:
 
 let
   pkg_path = "$out/lib/ghidra";
   pname = "ghidra";
-  version = "10.3.3";
+  version = "11.0";
 
   src = fetchFromGitHub {
     owner = "NationalSecurityAgency";
     repo = "Ghidra";
     rev = "Ghidra_${version}_build";
-    hash = "sha256-KDSiZ/JwAqX6Obg9UD8ZQut01l/eMXbioJy//GluXn0=";
+    hash = "sha256-LVtDqgceZUrMriNy6+yK/ruBrTI8yx6hzTaPa1BTGlc=";
   };
 
   gradle = gradle_7;
@@ -36,24 +37,6 @@ let
   };
 
   # postPatch scripts.
-  # Tells ghidra to use our own protoc binary instead of the prebuilt one.
-  fixProtoc = ''
-    cat >>Ghidra/Debug/Debugger-gadp/build.gradle <<HERE
-protobuf {
-  protoc {
-    path = '${protobuf}/bin/protoc'
-  }
-}
-HERE
-    cat >>Ghidra/Debug/Debugger-isf/build.gradle <<HERE
-protobuf {
-  protoc {
-    path = '${protobuf}/bin/protoc'
-  }
-}
-HERE
-  '';
-
   # Adds a gradle step that downloads all the dependencies to the gradle cache.
   addResolveStep = ''
     cat >>build.gradle <<HERE
@@ -85,7 +68,7 @@ HERE
     inherit version src;
 
     patches = [ ./0001-Use-protobuf-gradle-plugin.patch ];
-    postPatch = fixProtoc + addResolveStep;
+    postPatch = addResolveStep;
 
     nativeBuildInputs = [ gradle perl ] ++ lib.optional stdenv.isDarwin xcbuild;
     buildPhase = ''
@@ -109,20 +92,28 @@ HERE
     '';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-HveS3f8XHpJqefc4djYmnYfd01H2OBFK5PLNOsHAqlc=";
+    outputHash = "sha256-KT+XXowCNaNfOiPzYLwbPMaF84omKFobHkkNqZ6oyUA=";
   };
 
 in stdenv.mkDerivation {
   inherit pname version src;
 
   nativeBuildInputs = [
-    gradle unzip makeWrapper icoutils
+    gradle unzip makeWrapper icoutils protobuf
   ] ++ lib.optional stdenv.isDarwin xcbuild;
 
   dontStrip = true;
 
-  patches = [ ./0001-Use-protobuf-gradle-plugin.patch ];
-  postPatch = fixProtoc;
+  patches = [
+    ./0001-Use-protobuf-gradle-plugin.patch
+    # we use fetchurl since the fetchpatch normalization strips the whole diff
+    # https://github.com/NixOS/nixpkgs/issues/266556
+    (fetchurl {
+      name = "0002-remove-executable-bit.patch";
+      url = "https://github.com/NationalSecurityAgency/ghidra/commit/e2a945624b74e5d42dc85e9c1f992315dd154db1.diff";
+      sha256 = "07mjfl7hvag2akk65g4cknp330qlk07dgbmh20dyg9qxzmk91fyq";
+    })
+  ];
 
   buildPhase = ''
     export HOME="$NIX_BUILD_TOP/home"
@@ -133,6 +124,8 @@ in stdenv.mkDerivation {
 
     sed -i "s#mavenLocal()#mavenLocal(); maven { url '${deps}/maven' }#g" build.gradle
 
+    rm -v Ghidra/Debug/Debugger-rmi-trace/build.gradle.orig
+
     gradle --offline --no-daemon --info -Dorg.gradle.java.home=${openjdk17} buildGhidra
   '';
 
diff --git a/pkgs/tools/security/ghidra/default.nix b/pkgs/tools/security/ghidra/default.nix
index 34dcca4b4ca34..5f9346937b36c 100644
--- a/pkgs/tools/security/ghidra/default.nix
+++ b/pkgs/tools/security/ghidra/default.nix
@@ -24,12 +24,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ghidra";
-  version = "10.3.1";
-  versiondate = "20230614";
+  version = "10.4";
+  versiondate = "20230928";
 
   src = fetchzip {
     url = "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_${version}_build/ghidra_${version}_PUBLIC_${versiondate}.zip";
-    hash = "sha256-I4FUEbBF/iwMP/iiA9Hjf36J4sAInhO80hLTbxWmUFc=";
+    hash = "sha256-IiAQ9OKmr8ZgqmGftuW0ITdG06fb9Lr30n2H9GArctk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/gitleaks/default.nix b/pkgs/tools/security/gitleaks/default.nix
index 96c4b0f4e1553..7fc15a3fb2b11 100644
--- a/pkgs/tools/security/gitleaks/default.nix
+++ b/pkgs/tools/security/gitleaks/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "8.18.0";
+  version = "8.18.1";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-659wQBv8DuYB4vI+qnBLS9u22kGlg4ne4DyKFoomlOw=";
+    hash = "sha256-v0d/ulxYJRkyyhVctnQjKW2ODWtu+gSwp/qSkVLQ1Jo=";
   };
 
-  vendorHash = "sha256-PPEEQ2Bt20UK+mQL59jVnX8HtzCsqW4uRwR3mOdhDis=";
+  vendorHash = "sha256-lPfvoeHPYWSnFPuAR9CxG6+pQ++cZEw/jYuGgDrm57E=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/gnupg/22.nix b/pkgs/tools/security/gnupg/22.nix
index 78f4af894a306..59e7bcc13d669 100644
--- a/pkgs/tools/security/gnupg/22.nix
+++ b/pkgs/tools/security/gnupg/22.nix
@@ -5,6 +5,7 @@
 , enableMinimal ? false
 , withPcsc ? !enableMinimal, pcsclite
 , guiSupport ? stdenv.isDarwin, pinentry
+, nixosTests
 }:
 
 assert guiSupport -> enableMinimal == false;
@@ -80,7 +81,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.tests = lib.nixosTests.gnupg;
+  passthru.tests = nixosTests.gnupg;
 
   meta = with lib; {
     homepage = "https://gnupg.org";
diff --git a/pkgs/tools/security/gnupg/24-revert-rfc4880bis-defaults.patch b/pkgs/tools/security/gnupg/24-revert-rfc4880bis-defaults.patch
new file mode 100644
index 0000000000000..8bc65ede79c06
--- /dev/null
+++ b/pkgs/tools/security/gnupg/24-revert-rfc4880bis-defaults.patch
@@ -0,0 +1,200 @@
+From 1e4f1550996334d2a631a5d769e937d29ace47bb Mon Sep 17 00:00:00 2001
+From: Jakub Jelen <jjelen@redhat.com>
+Date: Thu, 9 Feb 2023 16:38:58 +0100
+Subject: [PATCH gnupg] Revert the introduction of the RFC4880bis draft into
+ defaults
+
+This reverts commit 4583f4fe2 (gpg: Merge --rfc4880bis features into
+--gnupg, 2022-10-31).
+---
+ g10/gpg.c    | 35 ++++++++++++++++++++++++++++++++---
+ g10/keygen.c | 30 ++++++++++++++++++------------
+ 2 files changed, 50 insertions(+), 15 deletions(-)
+
+diff --git a/g10/gpg.c b/g10/gpg.c
+index dcab0a11a..796888013 100644
+--- a/g10/gpg.c
++++ b/g10/gpg.c
+@@ -247,6 +247,7 @@ enum cmd_and_opt_values
+     oGnuPG,
+     oRFC2440,
+     oRFC4880,
++    oRFC4880bis,
+     oOpenPGP,
+     oPGP7,
+     oPGP8,
+@@ -636,6 +637,7 @@ static gpgrt_opt_t opts[] = {
+   ARGPARSE_s_n (oGnuPG, "no-pgp8", "@"),
+   ARGPARSE_s_n (oRFC2440, "rfc2440", "@"),
+   ARGPARSE_s_n (oRFC4880, "rfc4880", "@"),
++  ARGPARSE_s_n (oRFC4880bis, "rfc4880bis", "@"),
+   ARGPARSE_s_n (oOpenPGP, "openpgp", N_("use strict OpenPGP behavior")),
+   ARGPARSE_s_n (oPGP7, "pgp6", "@"),
+   ARGPARSE_s_n (oPGP7, "pgp7", "@"),
+@@ -978,7 +980,6 @@ static gpgrt_opt_t opts[] = {
+   ARGPARSE_s_n (oNoop, "no-allow-multiple-messages", "@"),
+   ARGPARSE_s_s (oNoop, "aead-algo", "@"),
+   ARGPARSE_s_s (oNoop, "personal-aead-preferences","@"),
+-  ARGPARSE_s_n (oNoop, "rfc4880bis", "@"),
+   ARGPARSE_s_n (oNoop, "override-compliance-check", "@"),
+ 
+ 
+@@ -2227,7 +2228,7 @@ static struct gnupg_compliance_option compliance_options[] =
+   {
+     { "gnupg",      oGnuPG },
+     { "openpgp",    oOpenPGP },
+-    { "rfc4880bis", oGnuPG },
++    { "rfc4880bis", oRFC4880bis },
+     { "rfc4880",    oRFC4880 },
+     { "rfc2440",    oRFC2440 },
+     { "pgp6",       oPGP7 },
+@@ -2243,8 +2244,28 @@ static struct gnupg_compliance_option compliance_options[] =
+ static void
+ set_compliance_option (enum cmd_and_opt_values option)
+ {
++  opt.flags.rfc4880bis = 0;  /* Clear because it is initially set.  */
++
+   switch (option)
+     {
++    case oRFC4880bis:
++      opt.flags.rfc4880bis = 1;
++      opt.compliance = CO_RFC4880;
++      opt.flags.dsa2 = 1;
++      opt.flags.require_cross_cert = 1;
++      opt.rfc2440_text = 0;
++      opt.allow_non_selfsigned_uid = 1;
++      opt.allow_freeform_uid = 1;
++      opt.escape_from = 1;
++      opt.not_dash_escaped = 0;
++      opt.def_cipher_algo = 0;
++      opt.def_digest_algo = 0;
++      opt.cert_digest_algo = 0;
++      opt.compress_algo = -1;
++      opt.s2k_mode = 3; /* iterated+salted */
++      opt.s2k_digest_algo = DIGEST_ALGO_SHA256;
++      opt.s2k_cipher_algo = CIPHER_ALGO_AES256;
++      break;
+     case oOpenPGP:
+     case oRFC4880:
+       /* This is effectively the same as RFC2440, but with
+@@ -2288,6 +2309,7 @@ set_compliance_option (enum cmd_and_opt_values option)
+     case oPGP8:  opt.compliance = CO_PGP8;  break;
+     case oGnuPG:
+       opt.compliance = CO_GNUPG;
++      opt.flags.rfc4880bis = 1;
+       break;
+ 
+     case oDE_VS:
+@@ -2491,6 +2513,7 @@ main (int argc, char **argv)
+     opt.emit_version = 0;
+     opt.weak_digests = NULL;
+     opt.compliance = CO_GNUPG;
++    opt.flags.rfc4880bis = 1;
+ 
+     /* Check special options given on the command line.  */
+     orig_argc = argc;
+@@ -3033,6 +3056,7 @@ main (int argc, char **argv)
+           case oOpenPGP:
+           case oRFC2440:
+           case oRFC4880:
++          case oRFC4880bis:
+           case oPGP7:
+           case oPGP8:
+           case oGnuPG:
+@@ -3862,6 +3886,11 @@ main (int argc, char **argv)
+     if( may_coredump && !opt.quiet )
+ 	log_info(_("WARNING: program may create a core file!\n"));
+ 
++    if (!opt.flags.rfc4880bis)
++      {
++        opt.mimemode = 0; /* This will use text mode instead.  */
++      }
++
+     if (eyes_only) {
+       if (opt.set_filename)
+ 	  log_info(_("WARNING: %s overrides %s\n"),
+@@ -4078,7 +4107,7 @@ main (int argc, char **argv)
+     /* Check our chosen algorithms against the list of legal
+        algorithms. */
+ 
+-    if(!GNUPG)
++    if(!GNUPG && !opt.flags.rfc4880bis)
+       {
+ 	const char *badalg=NULL;
+ 	preftype_t badtype=PREFTYPE_NONE;
+diff --git a/g10/keygen.c b/g10/keygen.c
+index a2cfe3ccf..2a1dd1f81 100644
+--- a/g10/keygen.c
++++ b/g10/keygen.c
+@@ -404,7 +404,7 @@ keygen_set_std_prefs (const char *string,int personal)
+ 	      strcat(dummy_string,"S7 ");
+ 	    strcat(dummy_string,"S2 "); /* 3DES */
+ 
+-            if (!openpgp_aead_test_algo (AEAD_ALGO_OCB))
++            if (opt.flags.rfc4880bis && !openpgp_aead_test_algo (AEAD_ALGO_OCB))
+ 	      strcat(dummy_string,"A2 ");
+ 
+             if (personal)
+@@ -889,7 +889,7 @@ keygen_upd_std_prefs (PKT_signature *sig, void *opaque)
+   /* Make sure that the MDC feature flag is set if needed.  */
+   add_feature_mdc (sig,mdc_available);
+   add_feature_aead (sig, aead_available);
+-  add_feature_v5 (sig, 1);
++  add_feature_v5 (sig, opt.flags.rfc4880bis);
+   add_keyserver_modify (sig,ks_modify);
+   keygen_add_keyserver_url(sig,NULL);
+ 
+@@ -3382,7 +3382,10 @@ parse_key_parameter_part (ctrl_t ctrl,
+                 }
+             }
+           else if (!ascii_strcasecmp (s, "v5"))
+-            keyversion = 5;
++            {
++              if (opt.flags.rfc4880bis)
++                keyversion = 5;
++            }
+           else if (!ascii_strcasecmp (s, "v4"))
+             keyversion = 4;
+           else
+@@ -3641,7 +3644,7 @@ parse_key_parameter_part (ctrl_t ctrl,
+  *   ecdsa := Use algorithm ECDSA.
+  *   eddsa := Use algorithm EdDSA.
+  *   ecdh  := Use algorithm ECDH.
+- *   v5    := Create version 5 key
++ *   v5    := Create version 5 key (requires option --rfc4880bis)
+  *
+  * There are several defaults and fallbacks depending on the
+  * algorithm.  PART can be used to select which part of STRING is
+@@ -4513,9 +4516,9 @@ read_parameter_file (ctrl_t ctrl, const char *fname )
+ 	    }
+ 	}
+ 
+-        if ((keywords[i].key == pVERSION
+-             || keywords[i].key == pSUBVERSION))
+-          ; /* Ignore version.  */
++        if (!opt.flags.rfc4880bis && (keywords[i].key == pVERSION
++                                      || keywords[i].key == pSUBVERSION))
++          ; /* Ignore version unless --rfc4880bis is active.  */
+         else
+           {
+             r = xmalloc_clear( sizeof *r + strlen( value ) );
+@@ -4610,11 +4613,14 @@ quickgen_set_para (struct para_data_s *para, int for_subkey,
+       para = r;
+     }
+ 
+-  r = xmalloc_clear (sizeof *r + 20);
+-  r->key = for_subkey? pSUBVERSION : pVERSION;
+-  snprintf (r->u.value, 20, "%d", version);
+-  r->next = para;
+-  para = r;
++  if (opt.flags.rfc4880bis)
++    {
++      r = xmalloc_clear (sizeof *r + 20);
++      r->key = for_subkey? pSUBVERSION : pVERSION;
++      snprintf (r->u.value, 20, "%d", version);
++      r->next = para;
++      para = r;
++    }
+ 
+   if (keytime)
+     {
diff --git a/pkgs/tools/security/gnupg/24.nix b/pkgs/tools/security/gnupg/24.nix
index 2f5c6e2ce428e..95a6d9c0fa5ff 100644
--- a/pkgs/tools/security/gnupg/24.nix
+++ b/pkgs/tools/security/gnupg/24.nix
@@ -13,11 +13,11 @@ assert guiSupport -> enableMinimal == false;
 
 stdenv.mkDerivation rec {
   pname = "gnupg";
-  version = "2.4.1";
+  version = "2.4.4";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
-    hash = "sha256-drceWutEO/2RDOnLyCgbYXyDQWh6+2e65FWHeXK1neg=";
+    hash = "sha256-Z+vgFsqQ+naIzmejh+vYLGJh6ViX23sj3yT/M1voW8Y=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     ./tests-add-test-cases-for-import-without-uid.patch
     ./accept-subkeys-with-a-good-revocation-but-no-self-sig.patch
     ./24-allow-import-of-previously-known-keys-even-without-UI.patch
+    ./24-revert-rfc4880bis-defaults.patch
     # Patch for DoS vuln from https://seclists.org/oss-sec/2022/q3/27
     ./v3-0001-Disallow-compressed-signatures-and-certificates.patch
   ];
diff --git a/pkgs/tools/security/gnupg/gpgkey2ssh-20.patch b/pkgs/tools/security/gnupg/gpgkey2ssh-20.patch
deleted file mode 100644
index 65804bac76425..0000000000000
--- a/pkgs/tools/security/gnupg/gpgkey2ssh-20.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/tools/gpgkey2ssh.c b/tools/gpgkey2ssh.c
-index 903fb5b..d5611dc 100644
---- a/tools/gpgkey2ssh.c
-+++ b/tools/gpgkey2ssh.c
-@@ -268,7 +268,7 @@ main (int argc, char **argv)
-   keyid = argv[1];
- 
-   ret = asprintf (&command,
--		  "gpg --list-keys --with-colons --with-key-data '%s'",
-+		  "@out@/bin/gpg --list-keys --with-colons --with-key-data '%s'",
- 		  keyid);
-   assert (ret > 0);
- 
-
diff --git a/pkgs/tools/security/go-dork/default.nix b/pkgs/tools/security/go-dork/default.nix
index 5e6c21d2397ba..d5b999d96990f 100644
--- a/pkgs/tools/security/go-dork/default.nix
+++ b/pkgs/tools/security/go-dork/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/dwisiswant0/go-dork/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "go-dork";
   };
 }
diff --git a/pkgs/tools/security/go-exploitdb/default.nix b/pkgs/tools/security/go-exploitdb/default.nix
index 345b40fbaf142..d400cd22a6f05 100644
--- a/pkgs/tools/security/go-exploitdb/default.nix
+++ b/pkgs/tools/security/go-exploitdb/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "go-exploitdb";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "vulsio";
     repo = "go-exploitdb";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iBOpgeL/cLoQufla0MpQs/0icRWUj1HngnAwOcKLSsQ=";
+    hash = "sha256-xQQnMlj5dxvvGPqzMyMVloJQe5qY2EPQkYaw3RpgxjI=";
   };
 
-  vendorHash = "sha256-e+E8qcc5sRlb9clOFUrOzVwJlp3AFnZ6/lNAxaBe+hQ=";
+  vendorHash = "sha256-1HvhphLJH0572au2iSXVjN35JCpZr1hesnMrIpdOBRc=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix
index 92c0992c86e6f..6573c511474a7 100644
--- a/pkgs/tools/security/gopass/default.nix
+++ b/pkgs/tools/security/gopass/default.nix
@@ -13,7 +13,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.15.8";
+  version = "1.15.11";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = "gopass";
     rev = "v${version}";
-    hash = "sha256-l8Ce0ioMnSlet+PMrQCMvyH3IvmQaE1MQSJR9myyLB8=";
+    hash = "sha256-wgrZkRRMEWA9Lk9eW+iGi+dZNYfDVhRu1phimZC079c=";
   };
 
-  vendorHash = "sha256-xyQTlbTPAC2iG8XQ4oEHBXjfXauwuBhaTbsew23nlVw=";
+  vendorHash = "sha256-TvohrwSFVv5ylVRd6jPdRDyRRhqqWa0xey9KN9vtyY8=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/gopass/git-credential.nix b/pkgs/tools/security/gopass/git-credential.nix
index aac7deb19d5fd..8654d05d9d13a 100644
--- a/pkgs/tools/security/gopass/git-credential.nix
+++ b/pkgs/tools/security/gopass/git-credential.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "git-credential-gopass";
-  version = "1.15.8";
+  version = "1.15.11";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "git-credential-gopass";
     rev = "v${version}";
-    hash = "sha256-gp/5ZBAxngQKRmr924f7ZQ4GX3uYHz2ULw1Gn+d7vug=";
+    hash = "sha256-qnWgrpcj3DZQu5haP/5xqoO7eogkRjBmc8XpgFFNT6I=";
   };
 
-  vendorHash = "sha256-IXY8w5TLXA3SIT2Jyjqt+pPtZ35zQnG0wY08OB1spDw=";
+  vendorHash = "sha256-bit4+YgQ+Y/TA2q7KdZwYTE3ZKBwL6tUam+tHzBMiQw=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/gopass/hibp.nix b/pkgs/tools/security/gopass/hibp.nix
index 590b183194eb4..11ee0a94dbf9b 100644
--- a/pkgs/tools/security/gopass/hibp.nix
+++ b/pkgs/tools/security/gopass/hibp.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gopass-hibp";
-  version = "1.15.8";
+  version = "1.15.11";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-hibp";
     rev = "v${version}";
-    hash = "sha256-dNzvC+ubkZPHx40bVwFT2R7TMrPdeD5oJz0lAd0vtw0=";
+    hash = "sha256-2XhvUIa8RxQ6CAKPGpL8/rBiJSX/WsSGtIpaHLIBM1E=";
   };
 
-  vendorHash = "sha256-zaB8xrzqk3moR/ScXdHtqIgA9lZqWFzLWi4NAqbs0XU=";
+  vendorHash = "sha256-i9PUqircNf+jz5gcr3rVIR4tD9/bkV2h6LiDFhjiLaw=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/gopass/jsonapi.nix b/pkgs/tools/security/gopass/jsonapi.nix
index b00b4bf014799..37ac46356c3a4 100644
--- a/pkgs/tools/security/gopass/jsonapi.nix
+++ b/pkgs/tools/security/gopass/jsonapi.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "gopass-jsonapi";
-  version = "1.15.8";
+  version = "1.15.11";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-jsonapi";
     rev = "v${version}";
-    hash = "sha256-CL9PcztiFCCy1T7w0v2SzLmwkA6z8aPUx65ye5AJDr4=";
+    hash = "sha256-wJlnm+sgFg55LW4RWGjcT538DgNhJtFjwgwgqwLWH50=";
   };
 
-  vendorHash = "sha256-Czlp3MyxRGcIV5uFZzF8t0JrucLzPzxyCUCtjICjPM0=";
+  vendorHash = "sha256-qRmPO2WM9RD43twl5a47IT3xC1LGFwNF99ojIU2xg6A=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/gopass/summon.nix b/pkgs/tools/security/gopass/summon.nix
index 848cff91a65db..97aed94c05fe1 100644
--- a/pkgs/tools/security/gopass/summon.nix
+++ b/pkgs/tools/security/gopass/summon.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gopass-summon-provider";
-  version = "1.15.8";
+  version = "1.15.11";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-summon-provider";
     rev = "v${version}";
-    hash = "sha256-7Oj/1h1468zz6r3+Cv5IaIFbkrs0dPteY0SRsOZ8UXI=";
+    hash = "sha256-rbfzmr6HtGUBCjO9jkocSghTAN+aNXTsSsMC38HqgW0=";
   };
 
-  vendorHash = "sha256-IXY8w5TLXA3SIT2Jyjqt+pPtZ35zQnG0wY08OB1spDw=";
+  vendorHash = "sha256-bit4+YgQ+Y/TA2q7KdZwYTE3ZKBwL6tUam+tHzBMiQw=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/gotestwaf/default.nix b/pkgs/tools/security/gotestwaf/default.nix
index 46ad8ffd952b5..8ed30a7fc78b0 100644
--- a/pkgs/tools/security/gotestwaf/default.nix
+++ b/pkgs/tools/security/gotestwaf/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gotestwaf";
-  version = "0.4.6";
+  version = "0.4.11";
 
   src = fetchFromGitHub {
     owner = "wallarm";
-    repo = pname;
+    repo = "gotestwaf";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jiEs5/HWNZ3DmahWVC6j2eJqFyCAibp1rFS+gtK7haI=";
+    hash = "sha256-xvlzSBvOM09b/m4gI1sbIpIlFJnXQL0G4xet/AL3Yxo=";
   };
 
   vendorHash = null;
@@ -22,6 +22,8 @@ buildGoModule rec {
   doCheck = false;
 
   ldflags = [
+    "-w"
+    "-s"
     "-X=github.com/wallarm/gotestwaf/internal/version.Version=v${version}"
   ];
 
diff --git a/pkgs/tools/security/gotrue/supabase.nix b/pkgs/tools/security/gotrue/supabase.nix
index 6955f08a2264b..36ce6d72ceb80 100644
--- a/pkgs/tools/security/gotrue/supabase.nix
+++ b/pkgs/tools/security/gotrue/supabase.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gotrue";
-  version = "2.99.0";
+  version = "2.105.0";
 
   src = fetchFromGitHub {
     owner = "supabase";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-OUxiAEPX1mWL4td3xdiK9420i4K9pwNdGqch/5T21BY=";
+    hash = "sha256-6tFXuVBd7UptoVMSse1Pk9ok6XyGL994pfFkFTyc5I0=";
   };
 
-  vendorHash = "sha256-r1xJka1ISahaHJOkFwjn/Nrf2EU0iGVosz8PZnH31TE=";
+  vendorHash = "sha256-cwTwze8WuhL5exaY5HJYDgcxNB9O1QuFpJgZmj6R838=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/goverview/default.nix b/pkgs/tools/security/goverview/default.nix
index 77f46526d95d6..02038bf27b99a 100644
--- a/pkgs/tools/security/goverview/default.nix
+++ b/pkgs/tools/security/goverview/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 }:
 
 buildGoModule rec {
@@ -20,6 +21,15 @@ buildGoModule rec {
     "-w"
     "-s"
   ];
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+  postInstall = ''
+    installShellCompletion --cmd goverview \
+      --bash <($out/bin/goverview completion bash) \
+      --fish <($out/bin/goverview completion fish) \
+      --zsh <($out/bin/goverview completion zsh)
+  '';
 
   # Tests require network access
   doCheck = false;
diff --git a/pkgs/tools/security/govulncheck/default.nix b/pkgs/tools/security/govulncheck/default.nix
index 61249d354df19..7cf4589afce15 100644
--- a/pkgs/tools/security/govulncheck/default.nix
+++ b/pkgs/tools/security/govulncheck/default.nix
@@ -1,20 +1,29 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, substituteAll
 }:
 
 buildGoModule rec {
   pname = "govulncheck";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "vuln";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cewQ03dK/k3mXevE09M01Yox/3ZWP6IrG0H4QsZMzy8=";
+    hash = "sha256-1x2hj4HD3KAo9w1QXh5qsWtcAM0Kly5u/DRd13Mqa5w=";
   };
 
-  vendorHash = "sha256-r9XshbgVA5rppJF46SFYPad344ZHMLWTHTnL6vbIFH8=";
+  patches = [
+    # patch in version information
+    (substituteAll {
+      src = ./version.patch;
+      inherit version;
+    })
+  ];
+
+  vendorHash = "sha256-Jg2Nx63Xak149111jbBP6SgK3hze21Dx5qcDKXCqa48=";
 
   subPackages = [
     "cmd/govulncheck"
diff --git a/pkgs/tools/security/govulncheck/version.patch b/pkgs/tools/security/govulncheck/version.patch
new file mode 100644
index 0000000000000..2a79276fa15aa
--- /dev/null
+++ b/pkgs/tools/security/govulncheck/version.patch
@@ -0,0 +1,15 @@
+diff --git a/internal/scan/run.go b/internal/scan/run.go
+index fa7fe37..216ca43 100644
+--- a/internal/scan/run.go
++++ b/internal/scan/run.go
+@@ -99,8 +99,8 @@ func scannerVersion(cfg *config, bi *debug.BuildInfo) {
+ 	if bi.Path != "" {
+ 		cfg.ScannerName = path.Base(bi.Path)
+ 	}
+-	if bi.Main.Version != "" && bi.Main.Version != "(devel)" {
+-		cfg.ScannerVersion = bi.Main.Version
++	if true {
++		cfg.ScannerVersion = "@version@"
+ 		return
+ 	}
+ 
diff --git a/pkgs/tools/security/gowitness/default.nix b/pkgs/tools/security/gowitness/default.nix
index a361c141d3a0b..bd9ab97a0f384 100644
--- a/pkgs/tools/security/gowitness/default.nix
+++ b/pkgs/tools/security/gowitness/default.nix
@@ -1,23 +1,30 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
 buildGoModule rec {
   pname = "gowitness";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "sensepost";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-rylft6v6Np8xOm2AUtH7e/zDZQ87WNPeerXEtziSrDw=";
+    repo = "gowitness";
+    rev = "refs/tags/${version}";
+    hash = "sha256-37OorjzxDu27FNAz4LTtQdFjt0tL9jSb9tGZhlq797Q=";
   };
 
-  vendorHash = "sha256-l6jdVsKKLqEyFpz7JhkLLjVTWX1pZenlCY5UqSZVMdc=";
+  vendorHash = "sha256-Exw5NfR3nDYH+hWMPOKuVIRyrVkOJyP7Kwe4jzQwnsI=";
 
-  ldflags = [ "-s" "-w" ];
+  ldflags = [
+    "-s"
+    "-w"
+  ];
 
   meta = with lib; {
     description = "Web screenshot utility";
     homepage = "https://github.com/sensepost/gowitness";
+    changelog = "https://github.com/sensepost/gowitness/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/tools/security/gpg-tui/default.nix b/pkgs/tools/security/gpg-tui/default.nix
index 44f7b5dd0fc16..64a2737845405 100644
--- a/pkgs/tools/security/gpg-tui/default.nix
+++ b/pkgs/tools/security/gpg-tui/default.nix
@@ -4,8 +4,6 @@
 , fetchFromGitHub
 , gpgme
 , libgpg-error
-, libxcb
-, libxkbcommon
 , pkg-config
 , python3
 , AppKit
@@ -13,6 +11,7 @@
 , libiconv
 , libobjc
 , libresolv
+, x11Support ? true, libxcb, libxkbcommon
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -38,6 +37,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [
     gpgme
     libgpg-error
+  ] ++ lib.optionals x11Support [
     libxcb
     libxkbcommon
   ] ++ lib.optionals stdenv.isDarwin [
@@ -53,6 +53,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/orhun/gpg-tui";
     changelog = "https://github.com/orhun/gpg-tui/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda ];
+    maintainers = with maintainers; [ dotlambda matthiasbeyer ];
   };
 }
diff --git a/pkgs/tools/security/graphw00f/default.nix b/pkgs/tools/security/graphw00f/default.nix
index caa7586d37f6b..7f1d5ede3e718 100644
--- a/pkgs/tools/security/graphw00f/default.nix
+++ b/pkgs/tools/security/graphw00f/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "graphw00f";
-  version = "1.1.8";
+  version = "1.1.15";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "dolevf";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-stTCUHt9UCu1QuxDPB8a26LsrHNttyoVd0tmS7e2t2Y=";
+    hash = "sha256-wAymwT2PRyX7m/yh6BAa8YNkH7pE69bKHKZ15phuUJo=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix
index ff996562572b3..dc48dd5215063 100644
--- a/pkgs/tools/security/grype/default.nix
+++ b/pkgs/tools/security/grype/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.69.1";
+  version = "0.74.4";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-AXw2mtN4FC6EKWN8dObrU04+WSHDWLY19FSWqQlkq/Q=";
+    hash = "sha256-jBBiwsmQDbzay2C6uLM2uzPvTbD+3t8+jyBkEfHwohQ=";
     # 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;
@@ -28,7 +28,7 @@ buildGoModule rec {
 
   proxyVendor = true;
 
-  vendorHash = "sha256-iitWThvWVfeJMLcJLgmFnVguFVF4DejObZPZ3qB5cY0=";
+  vendorHash = "sha256-w0dqgyJvn7UZYoUII9jxTuiBOq+HENaQlxfP+rZdpS0=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -73,6 +73,8 @@ buildGoModule rec {
       --replace "TestCmd" "SkipCmd"
     substituteInPlace grype/pkg/provider_test.go \
       --replace "TestSyftLocationExcludes" "SkipSyftLocationExcludes"
+    substituteInPlace test/cli/cmd_test.go \
+      --replace "Test_descriptorNameAndVersionSet" "Skip_descriptorNameAndVersionSet"
     # remove tests that depend on git
     substituteInPlace test/cli/db_validations_test.go \
       --replace "TestDBValidations" "SkipDBValidations"
@@ -83,6 +85,8 @@ buildGoModule rec {
       --replace "TestSBOMInput_AsArgument" "SkipSBOMInput_AsArgument"
     substituteInPlace test/cli/subprocess_test.go \
       --replace "TestSubprocessStdin" "SkipSubprocessStdin"
+    substituteInPlace grype/internal/packagemetadata/names_test.go \
+      --replace "TestAllNames" "SkipAllNames"
 
     # segfault
     rm grype/db/v5/namespace/cpe/namespace_test.go
diff --git a/pkgs/tools/security/hash-identifier/default.nix b/pkgs/tools/security/hash-identifier/default.nix
index 5e9b49dd73db6..0fe78a4a0db51 100644
--- a/pkgs/tools/security/hash-identifier/default.nix
+++ b/pkgs/tools/security/hash-identifier/default.nix
@@ -18,10 +18,11 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "Software to identify the different types of hashes used to encrypt data and especially passwords.";
+    description = "Identify the different types of hashes used to encrypt data and especially passwords";
     homepage = "https://github.com/blackploit/hash-identifier";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ethancedwards8 ];
+    mainProgram = "hash-identifier";
   };
 }
diff --git a/pkgs/tools/security/hash-slinger/default.nix b/pkgs/tools/security/hash-slinger/default.nix
index 0f0eeeb6b2af9..cb02b806a986c 100644
--- a/pkgs/tools/security/hash-slinger/default.nix
+++ b/pkgs/tools/security/hash-slinger/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    mkdir -p $out/bin $out/man $out/lib/${python3.libPrefix}/site-packages
+    mkdir -p $out/bin $out/man $out/${python3.sitePackages}
     make install
     wrapPythonPrograms
   '';
diff --git a/pkgs/tools/security/hashcat/default.nix b/pkgs/tools/security/hashcat/default.nix
index 5a2304b5fd0bf..2e8370be85fe2 100644
--- a/pkgs/tools/security/hashcat/default.nix
+++ b/pkgs/tools/security/hashcat/default.nix
@@ -21,8 +21,14 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
+     # Select libstdc++ or libc++ based on stdenv
+     # MACOSX_DEPLOYMENT_TARGET is defined by the enviroment
      # Remove hardcoded paths on darwin
     substituteInPlace src/Makefile \
+  '' + lib.optionalString (stdenv.cc.libcxx != null) ''
+      --replace "-lstdc++" "-lc++ -l${stdenv.cc.libcxx.cxxabi.libName}" \
+  '' + ''
+      --replace "export MACOSX_DEPLOYMENT_TARGET" "#export MACOSX_DEPLOYMENT_TARGET" \
       --replace "/usr/bin/ar" "ar" \
       --replace "/usr/bin/sed" "sed" \
       --replace '-i ""' '-i'
diff --git a/pkgs/tools/security/hcxdumptool/default.nix b/pkgs/tools/security/hcxdumptool/default.nix
index 0633e74e76f30..c718ec0b5a0f1 100644
--- a/pkgs/tools/security/hcxdumptool/default.nix
+++ b/pkgs/tools/security/hcxdumptool/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxdumptool";
-  version = "6.3.1";
+  version = "6.3.2";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = "hcxdumptool";
     rev = version;
-    sha256 = "sha256-FWBr0uDpefu2MCWQZrMfPJ/MUJcmk9fWMzhtTDmC0L0=";
+    sha256 = "sha256-InMyDUEH135Y1RYJ3z1+RQxPMi7+QMf670S/S2ZL9vg=";
   };
 
   buildInputs = [ openssl ];
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ danielfullmer ];
+    mainProgram = "hcxdumptool";
   };
 }
diff --git a/pkgs/tools/security/hcxtools/default.nix b/pkgs/tools/security/hcxtools/default.nix
index fb0d921ec2f65..df7695276c2ac 100644
--- a/pkgs/tools/security/hcxtools/default.nix
+++ b/pkgs/tools/security/hcxtools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxtools";
-  version = "6.3.1";
+  version = "6.3.2";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EDTxzstQwQy7MSkdi1nQis8qEm8ZPblkeOkM8B48IRE=";
+    sha256 = "sha256-ZEkuWGt2PGkFW1RXCyrUiew92N4ov35mMObHk1xD6uM=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/security/hfinger/default.nix b/pkgs/tools/security/hfinger/default.nix
index 2c584f35ff4fe..8d3d7e25d33fc 100644
--- a/pkgs/tools/security/hfinger/default.nix
+++ b/pkgs/tools/security/hfinger/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "hfinger";
-  version = "0.2.1";
+  version = "0.2.2";
   disabled = python3.pythonOlder "3.3";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-QKnrprDDBq+D8N1brkqgcfK4E+6ssvgPtRaSxkF0C84=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-gxwirAqtY4R3KDHyNmDIknABO+SFuoDua9nm1UyXbxA=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/himitsu/default.nix b/pkgs/tools/security/himitsu/default.nix
index a29b65ae3b17e..ae647768c7f41 100644
--- a/pkgs/tools/security/himitsu/default.nix
+++ b/pkgs/tools/security/himitsu/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "himitsu";
-  version = "0.3";
+  version = "0.5";
 
   src = fetchFromSourcehut {
     name = pname + "-src";
     owner = "~sircmpwn";
     repo = pname;
     rev = version;
-    hash = "sha256-HoAntg9aQhMmff3T3/xnor7Sf3yX9qBbZlpVfyac5o8=";
+    hash = "sha256-rZ3gzVz7V3psHAMxTCaJXZh4uP4gIeyb9Bf23kzCBWg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/honggfuzz/default.nix b/pkgs/tools/security/honggfuzz/default.nix
index 3885316271b9e..7bb89718baca7 100644
--- a/pkgs/tools/security/honggfuzz/default.nix
+++ b/pkgs/tools/security/honggfuzz/default.nix
@@ -4,21 +4,20 @@
 , makeWrapper
 , clang
 , llvm
-# TODO: switch to latest versions when 2.6 release is out to include
-#   https://github.com/google/honggfuzz/commit/90fdf81006614664ef05e5e3c6f94d91610f11b2
-, libbfd_2_38, libopcodes_2_38
+, libbfd
+, libopcodes
 , libunwind
 , libblocksruntime }:
 
 stdenv.mkDerivation rec {
   pname = "honggfuzz";
-  version = "2.5";
+  version = "2.6";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = version;
-    sha256 = "sha256-TkyUKmiiSAfCnfQhSOUxuce6+dRyMmHy7vFK59jPIxM=";
+    sha256 = "sha256-/ra6g0qjjC8Lo8/n2XEbwnZ95yDHcGhYd5+TTvQ6FAc=";
   };
 
   postPatch = ''
@@ -30,7 +29,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ llvm ];
-  propagatedBuildInputs = [ libbfd_2_38 libopcodes_2_38 libunwind libblocksruntime ];
+  propagatedBuildInputs = [ libbfd libopcodes libunwind libblocksruntime ];
+
+  # Fortify causes build failures: 'str*' defined both normally and as 'alias' attribute
+  hardeningDisable = [ "fortify" ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
index 4bcc379c5c9af..9667d1997a08d 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.3.5";
+  version = "1.3.9";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DayYelnimsIvM5zkUoCQcS3TiZi81MDjvys/5M2xc48=";
+    hash = "sha256-3k/3CJ+/17Ygj4N8KPRYiAT+QJx3RlQMNemFztKtTt4=";
   };
 
-  vendorHash = "sha256-aUQc8dv3IHTIgeg8YHcoMbT2EzBoqCj4ST2113tg73Q=";
+  vendorHash = "sha256-apTCSKWkAarAHDEVvyyRjBm5s5M2YDXP5bMITDLoq20=";
 
   subPackages = [
     "cmd/httpx"
diff --git a/pkgs/tools/security/iaito/default.nix b/pkgs/tools/security/iaito/default.nix
index 641f7edf2406d..5812b1e6cfeab 100644
--- a/pkgs/tools/security/iaito/default.nix
+++ b/pkgs/tools/security/iaito/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
     install -m755 -Dt $out/bin iaito
     install -m644 -Dt $out/share/metainfo ../org.radare.iaito.appdata.xml
     install -m644 -Dt $out/share/applications ../org.radare.iaito.desktop
-    install -m644 -Dt $out/share/pixmaps ../img/iaito-o.svg
+    install -m644 -Dt $out/share/pixmaps ../img/org.radare.iaito.svg
 
     pushd ../../../${translations_src.name}
     make install -j$NIX_BUILD_CORES PREFIX=$out
diff --git a/pkgs/tools/security/ibm-sw-tpm2/default.nix b/pkgs/tools/security/ibm-sw-tpm2/default.nix
index 012d492aacad6..9a13c21030169 100644
--- a/pkgs/tools/security/ibm-sw-tpm2/default.nix
+++ b/pkgs/tools/security/ibm-sw-tpm2/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, fetchurl, lib, openssl }:
-
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, openssl
+}:
+let
+  makefile =
+    if stdenv.isDarwin
+    then "makefile.mac"
+    else "makefile";
+in
 stdenv.mkDerivation rec {
   pname = "ibm-sw-tpm2";
   version = "1682";
@@ -9,16 +19,30 @@ stdenv.mkDerivation rec {
     hash = "sha256-PLZC+HGheyPVCwRuX5X0ScIodBX8HnrrS9u4kg28s48=";
   };
 
+  patches = [
+    # Backport openssl-3.1 from development branch.
+    # Can be removed with next release.
+    (fetchpatch {
+      name = "openssl-3.1.patch";
+      url = "https://github.com/kgoldman/ibmswtpm2/commit/15501bf4973d334ca9420fa2fb0f0fe1800871e0.patch";
+      includes = [ "TpmToOsslMath.h" ];
+      stripLen = 1;
+      hash = "sha256-8TwyZVy8pQwq5Fl8cy9xJWtdckwL+QK0+DL5EHDLYUY=";
+    })
+  ];
+
   buildInputs = [ openssl ];
 
   sourceRoot = "src";
 
+  inherit makefile;
+
   prePatch = ''
     # Fix hardcoded path to GCC.
-    substituteInPlace makefile --replace /usr/bin/gcc "${stdenv.cc}/bin/cc"
+    substituteInPlace ${makefile} --replace /usr/bin/gcc "${stdenv.cc}/bin/cc"
 
     # Remove problematic default CFLAGS.
-    substituteInPlace makefile \
+    substituteInPlace ${makefile} \
       --replace -Werror "" \
       --replace -O0 "" \
       --replace -ggdb ""
@@ -32,7 +56,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "IBM's Software TPM 2.0, an implementation of the TCG TPM 2.0 specification";
     homepage = "https://sourceforge.net/projects/ibmswtpm2/";
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ delroth ];
     license = licenses.bsd3;
   };
diff --git a/pkgs/tools/security/ic-keysmith/default.nix b/pkgs/tools/security/ic-keysmith/default.nix
index c3fd58933a3bb..30ca2a467576e 100644
--- a/pkgs/tools/security/ic-keysmith/default.nix
+++ b/pkgs/tools/security/ic-keysmith/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/dfinity/keysmith";
     license = licenses.mit;
     maintainers = with maintainers; [ imalison ];
+    mainProgram = "keysmith";
   };
 }
diff --git a/pkgs/tools/security/ioc-scan/default.nix b/pkgs/tools/security/ioc-scan/default.nix
index 0fea93dc50813..e080426162a6f 100644
--- a/pkgs/tools/security/ioc-scan/default.nix
+++ b/pkgs/tools/security/ioc-scan/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ioc-scan";
-  version = "1.5.0";
+  version = "1.5.4";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "cisagov";
     repo = "ioc-scanner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dRrLd41HVVHJse7nkem8Cy+ltfJRnJiWrX/WShMfcOw=";
+    hash = "sha256-LQljpIlTDy1uxuwj1WyygwrB5hQ7dib1ViB+SEhRJ6Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/ioccheck/default.nix b/pkgs/tools/security/ioccheck/default.nix
index fc457e0c7fd42..2f25aa4ea8978 100644
--- a/pkgs/tools/security/ioccheck/default.nix
+++ b/pkgs/tools/security/ioccheck/default.nix
@@ -13,7 +13,7 @@ let
           owner = "carpedm20";
           repo = "emoji";
           rev = "v${version}";
-          sha256 = "sha256-vKQ51RP7uy57vP3dOnHZRSp/Wz+YDzeLUR8JnIELE/I=";
+          hash = "sha256-vKQ51RP7uy57vP3dOnHZRSp/Wz+YDzeLUR8JnIELE/I=";
         };
       };
 
@@ -26,29 +26,35 @@ let
           owner = "tweepy";
           repo = "tweepy";
           rev = "v${version}";
-          sha256 = "0k4bdlwjna6f1k19jki4xqgckrinkkw8b9wihzymr1l04rwd05nw";
+          hash = "sha256-3BbQeCaAhlz9h5GnhficNubJHu4kTpnCDM4oKzlti0w=";
         };
         doCheck = false;
       };
     };
   };
-in
-with py.pkgs;
-
-buildPythonApplication rec {
+in py.pkgs.buildPythonApplication rec {
   pname = "ioccheck";
   version = "unstable-2021-09-29";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ranguli";
-    repo = pname;
+    repo = "ioccheck";
     rev = "db02d921e2519b77523a200ca2d78417802463db";
     hash = "sha256-qf5tHIpbj/BfrzUST+EzohKh1hUg09KwF+vT0tj1+FE=";
   };
 
   nativeBuildInputs = with py.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "backoff"
+    "pyfiglet"
+    "tabulate"
+    "termcolor"
+    "vt-py"
   ];
 
   propagatedBuildInputs = with py.pkgs; [
@@ -73,11 +79,7 @@ buildPythonApplication rec {
   postPatch = ''
     # Can be removed with the next release
     substituteInPlace pyproject.toml \
-      --replace '"hurry.filesize" = "^0.9"' "" \
-      --replace 'vt-py = ">=0.6.1,<0.8.0"' 'vt-py = ">=0.6.1"' \
-      --replace 'backoff = "^1.10.0"' 'backoff = ">=1.10.0"' \
-      --replace 'termcolor = "^1.1.0"' 'termcolor = "*"' \
-      --replace 'tabulate = "^0.8.9"' 'tabulate = "*"'
+      --replace '"hurry.filesize" = "^0.9"' ""
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/tools/security/isolate/default.nix b/pkgs/tools/security/isolate/default.nix
index ae975dc78ae94..4aa5920296003 100644
--- a/pkgs/tools/security/isolate/default.nix
+++ b/pkgs/tools/security/isolate/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "isolate";
-  version = "1.10";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "ioi";
     repo = "isolate";
     rev = "v${version}";
-    hash = "sha256-fuv9HOw0XkRBRjwAp4b6LpoB5p7a+yo66AcT3B0yQUw=";
+    hash = "sha256-xY2omzqIJYElLtzj4byy/QG4pW4erCxc+cD2X9nA2jM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/jadx/default.nix b/pkgs/tools/security/jadx/default.nix
index 10f67d5f0b356..a1fbd44b02320 100644
--- a/pkgs/tools/security/jadx/default.nix
+++ b/pkgs/tools/security/jadx/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , gradle
 , jdk
+, quark-engine
 , makeWrapper
 , perl
 , imagemagick
@@ -114,7 +115,9 @@ in stdenv.mkDerivation (finalAttrs: {
     cp -R build/jadx/lib $out
     for prog in jadx jadx-gui; do
       cp build/jadx/bin/$prog $out/bin
-      wrapProgram $out/bin/$prog --set JAVA_HOME ${jdk.home}
+      wrapProgram $out/bin/$prog \
+        --set JAVA_HOME ${jdk.home} \
+        --prefix PATH : "${lib.makeBinPath [ quark-engine ]}"
     done
 
     for size in 16 32 48; do
@@ -153,6 +156,6 @@ in stdenv.mkDerivation (finalAttrs: {
     ];
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ delroth ];
+    maintainers = with maintainers; [ delroth emilytrau ];
   };
 })
diff --git a/pkgs/tools/security/jd-cli/default.nix b/pkgs/tools/security/jd-cli/default.nix
index 367851a0d4349..10fa31a706c1c 100644
--- a/pkgs/tools/security/jd-cli/default.nix
+++ b/pkgs/tools/security/jd-cli/default.nix
@@ -11,7 +11,7 @@ maven.buildMavenPackage rec {
     hash = "sha256-rRttA5H0A0c44loBzbKH7Waoted3IsOgxGCD2VM0U/Q=";
   };
 
-  mvnHash = "sha256-1zn980QP48fWvm45HR1yDHdyzHYPkl/P0RpII+Zu+xc=";
+  mvnHash = "sha256-yqMAEjaNHxm/c/cbApiMjkN7V6Gx/crs1LPbD0k0cgk=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/security/joomscan/default.nix b/pkgs/tools/security/joomscan/default.nix
new file mode 100644
index 0000000000000..665df74b10bcc
--- /dev/null
+++ b/pkgs/tools/security/joomscan/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, perl, makeWrapper }:
+
+let
+  p = perl.withPackages (ps: with ps; [ LWP LWPProtocolHttps ]);
+in
+stdenv.mkDerivation rec {
+  pname = "joomscan";
+  version = "unstable-2021-06-08";
+
+  src = fetchFromGitHub {
+    owner = "owasp";
+    repo = pname;
+    rev = "79315393509caa39895e553c489667636ac31b85";
+    sha256 = "Yg91iUhqbKZyPghiX0UZ7S1ql0DZLtPHOk9VEY1ZZOg=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share
+    cp -r . $out/share/joomscan
+    makeWrapper ${p}/bin/perl $out/bin/joomscan.pl \
+      --add-flags $out/share/joomscan/joomscan.pl
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Joomla Vulnerability Scanner";
+    homepage = "https://wiki.owasp.org/index.php/Category:OWASP_Joomla_Vulnerability_Scanner_Project";
+    mainProgram = "joomscan.pl";
+    maintainers = with maintainers; [ emilytrau ];
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/security/jwt-hack/default.nix b/pkgs/tools/security/jwt-hack/default.nix
index 351414b25eeef..4922f67fe576a 100644
--- a/pkgs/tools/security/jwt-hack/default.nix
+++ b/pkgs/tools/security/jwt-hack/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/hahwul/jwt-hack";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "jwt-hack";
   };
 }
diff --git a/pkgs/tools/security/jwx/default.nix b/pkgs/tools/security/jwx/default.nix
index 01ca4c302f9ba..6841cfe573ab8 100644
--- a/pkgs/tools/security/jwx/default.nix
+++ b/pkgs/tools/security/jwx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "jwx";
-  version = "2.0.13";
+  version = "2.0.19";
 
   src = fetchFromGitHub {
     owner = "lestrrat-go";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-jtNG/d70Q67IKKEfRBewl40cxH6wYj3CPfx+S/vuQnQ=";
+    hash = "sha256-JR2Z1XOcTfocaXHA+q6INcIZFeuMjB+G16fRmYjOhzU=";
   };
 
-  vendorHash = "sha256-o3EHPIXGLz/io0d8jhl9cxzctP3CeOjEDMQl1SY9lXg=";
+  vendorHash = "sha256-g97cSHGo0nw7Ker+S/qG0awUf1/UdcSkF55BjMyTfAY=";
 
   sourceRoot = "${src.name}/cmd/jwx";
 
diff --git a/pkgs/tools/security/katana/default.nix b/pkgs/tools/security/katana/default.nix
index 04ae5c74ad1bc..1f4a7300e228c 100644
--- a/pkgs/tools/security/katana/default.nix
+++ b/pkgs/tools/security/katana/default.nix
@@ -5,18 +5,25 @@
 
 buildGoModule rec {
   pname = "katana";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
-    repo = pname;
+    repo = "katana";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wpGRpgRJtywkTJ3YBk5TzXc2taPPWjOhj+Kg8hAgm7M=";
+    hash = "sha256-phxJhrZaJ+gw7gZWwQK0pvWWxkS4UDi77s+qgTvS/fo=";
   };
 
-  vendorHash = "sha256-qqivaKipe7lfUq3Neod8JMvtMVQN4O03JpDMSMHf8YY=";
+  vendorHash = "sha256-go+6NOQOnmds7EuA5k076Qdib2CqGthH9BHOm0YYKaA=";
 
-  subPackages = [ "cmd/katana" ];
+  subPackages = [
+    "cmd/katana"
+  ];
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   meta = with lib; {
     description = "A next-generation crawling and spidering framework";
diff --git a/pkgs/tools/security/keepwn/default.nix b/pkgs/tools/security/keepwn/default.nix
index 9720e14d7a506..bb856c80710b8 100644
--- a/pkgs/tools/security/keepwn/default.nix
+++ b/pkgs/tools/security/keepwn/default.nix
@@ -6,20 +6,27 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "keepwn";
-  version = "0.1";
-  format = "setuptools";
+  version = "0.3";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Orange-Cyberdefense";
     repo = "KeePwn";
     rev = "refs/tags/${version}";
-    hash = "sha256-s+r6QEUzkzCbs5j1G+PVgDx8cvnmQzEQ1MHAakG+skA=";
+    hash = "sha256-haKWuoTtyC9vIise+gznruHEwMIDz1W6euihLLKnSdc=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     chardet
     impacket
     lxml
+    pefile
+    pykeepass
+    python-magic
     termcolor
   ];
 
diff --git a/pkgs/tools/security/kepler/default.nix b/pkgs/tools/security/kepler/default.nix
index f4a229030f1dc..e4d2fc914cf94 100644
--- a/pkgs/tools/security/kepler/default.nix
+++ b/pkgs/tools/security/kepler/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Exein-io/kepler";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "kepler";
   };
 }
diff --git a/pkgs/tools/security/kestrel/default.nix b/pkgs/tools/security/kestrel/default.nix
index 69622b71e0e1f..f3d40b5ade0cc 100644
--- a/pkgs/tools/security/kestrel/default.nix
+++ b/pkgs/tools/security/kestrel/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kestrel";
-  version = "0.10.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "finfet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kEM81HIfWETVrUiqXu1+3az+Stg3GdjHE7FaxXJgNYk=";
+    hash = "sha256-n0XIFBCwpc6QTj3PjGp+fYtU4U+RAfA4PRcettFlxVA=";
   };
 
-  cargoHash = "sha256-xv35oFawFLVXZS3Eum6RCo8LcVvHftfv+UvJYYmIDx4=";
+  cargoHash = "sha256-GZK4IaAolU1up2bYd/2tBahcCP70hO5/shDODUD+aRE=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix
index 28665e618d04d..3d990468109b8 100644
--- a/pkgs/tools/security/keybase/default.nix
+++ b/pkgs/tools/security/keybase/default.nix
@@ -5,7 +5,7 @@
 
 buildGoModule rec {
   pname = "keybase";
-  version = "6.2.2";
+  version = "6.2.4";
 
   modRoot = "go";
   subPackages = [ "kbnm" "keybase" ];
@@ -16,7 +16,7 @@ buildGoModule rec {
     owner = "keybase";
     repo = "client";
     rev = "v${version}";
-    hash = "sha256-1vJCuAkJmehFcVYLwp3UIlQiGji7mHVczCBtXq9Fl68=";
+    hash = "sha256-z7vpCUK+NU7xU9sNBlQnSy9sjXD7/m8jSRKfJAgyyN8=";
   };
   vendorHash = "sha256-tXEEVEfjoKub2A4m7F3hDc5ABJ+R+axwX1+1j7e3BAM=";
 
@@ -36,7 +36,7 @@ buildGoModule rec {
     homepage = "https://www.keybase.io/";
     description = "The Keybase official command-line utility and service";
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ avaq carlsverre np rvolosatovs Br1ght0ne shofius ];
+    maintainers = with maintainers; [ avaq np rvolosatovs Br1ght0ne shofius ];
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/tools/security/keybase/gui.nix b/pkgs/tools/security/keybase/gui.nix
index 15bc22a7f1bb0..8541b02d583ef 100644
--- a/pkgs/tools/security/keybase/gui.nix
+++ b/pkgs/tools/security/keybase/gui.nix
@@ -4,16 +4,16 @@
 , runtimeShell, gsettings-desktop-schemas }:
 
 let
-  versionSuffix = "20230726175256.4464bfb32d";
+  versionSuffix = "20240101011938.ae7e4a1c15";
 in
 
 stdenv.mkDerivation rec {
   pname = "keybase-gui";
-  version = "6.2.2"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
+  version = "6.2.4"; # Find latest version and versionSuffix from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version + "-" + versionSuffix}_amd64.deb";
-    hash = "sha256-X3BJksdddTdxeUqVjzcq3cDRGRqmaYE7Z+eXtHoqbkg=";
+    hash = "sha256-XyGb9F83z8+OSjxOaO5k+h2qIY78ofS/ZfTXki54E5Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/kube-bench/default.nix b/pkgs/tools/security/kube-bench/default.nix
index 0d154eac13810..28b90f3d4baef 100644
--- a/pkgs/tools/security/kube-bench/default.nix
+++ b/pkgs/tools/security/kube-bench/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kube-bench";
-  version = "0.6.17";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-9pXW8PVJhaYi9uKArIJcXbQ6FbCjFA4z9f5M3DLKnng=";
+    hash = "sha256-EsUjGc7IIu5PK9KaODlQSfmm8jpjuBXvGZPNjSc1824=";
   };
 
-  vendorHash = "sha256-dBN6Yi8HtS9LzXr08jhw1hqDwS8a4UqrYaRpM+RzvVM=";
+  vendorHash = "sha256-i4k7eworPUvLUustr5U53qizHqUVw8yqGjdPQT6UIf4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/kube-hunter/default.nix b/pkgs/tools/security/kube-hunter/default.nix
index 05ee083f4d77c..bc23c3845b896 100644
--- a/pkgs/tools/security/kube-hunter/default.nix
+++ b/pkgs/tools/security/kube-hunter/default.nix
@@ -14,8 +14,6 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "sha256-+M8P/VSF9SKPvq+yNPjokyhggY7hzQ9qLLhkiTNbJls=";
   };
 
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   nativeBuildInputs = with python3.pkgs; [
     setuptools-scm
   ];
@@ -59,5 +57,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/aquasecurity/kube-hunter";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "kube-hunter";
   };
 }
diff --git a/pkgs/tools/security/kubeaudit/default.nix b/pkgs/tools/security/kubeaudit/default.nix
index 61488fdb513bc..135d29c272232 100644
--- a/pkgs/tools/security/kubeaudit/default.nix
+++ b/pkgs/tools/security/kubeaudit/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "kubeaudit";
-  version = "0.22.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-e6No8Md/KZUFNtPJOrSdv1GlGmxX7+tmWNjQGFdtJpc=";
+    hash = "sha256-ebqOjnr79S1utXaTKa9Jop9GvQsoW/IBMmIeOsGuvuE=";
   };
 
   vendorHash = "sha256-IxrAJaltg7vo3SQRC7OokSD5SM8xiX7iG8ZxKYEe9/E=";
diff --git a/pkgs/tools/security/kubeclarity/default.nix b/pkgs/tools/security/kubeclarity/default.nix
index ca4cb1bfb5923..4aed36bbeaa23 100644
--- a/pkgs/tools/security/kubeclarity/default.nix
+++ b/pkgs/tools/security/kubeclarity/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "kubeclarity";
-  version = "2.21.1";
+  version = "2.23.1";
 
   src = fetchFromGitHub {
     owner = "openclarity";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-+kWqw8o5KlVciWIB8cCVkMuiqW0wpIfua5qVgXZG3ww=";
+    hash = "sha256-buEahr6lr+C/99ANAgYdexPX76ECW6yGMes8u2GZKh4=";
   };
 
-  vendorHash = "sha256-kYdKCHqzDbfCGMlTMPSHAQkSLyhkCl/OvV7CF5jdyaY=";
+  vendorHash = "sha256-eAqF0ohZGryRh4u+j/30BObYP23yyrTecPrt+xmn9Sg=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/security/kubernetes-polaris/default.nix b/pkgs/tools/security/kubernetes-polaris/default.nix
index c8f8dbf07b871..8851065284839 100644
--- a/pkgs/tools/security/kubernetes-polaris/default.nix
+++ b/pkgs/tools/security/kubernetes-polaris/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubernetes-polaris";
-  version = "8.5.1";
+  version = "8.5.4";
 
   src = fetchFromGitHub {
     owner = "FairwindsOps";
     repo = "polaris";
     rev = version;
-    sha256 = "sha256-cfasYaZvUF5Ptc/BDVhafQ8wP6FA5msY+2IaeqmOvD8=";
+    sha256 = "sha256-Ip8SJi77QjNF2ez2NU48NKi+suOhViecuQyXSY6hLkI=";
   };
 
   vendorHash = "sha256-ZWetW+Xar4BXXlR0iG+O/NRqYk41x+PPVCGis2W2Nkk=";
diff --git a/pkgs/tools/security/kubesec/default.nix b/pkgs/tools/security/kubesec/default.nix
index a2b7078896ac4..4fa9337e1cb5e 100644
--- a/pkgs/tools/security/kubesec/default.nix
+++ b/pkgs/tools/security/kubesec/default.nix
@@ -6,15 +6,15 @@
 
 buildGoModule rec {
   pname = "kubesec";
-  version = "2.13.0";
+  version = "2.14.0";
 
   src = fetchFromGitHub {
     owner = "controlplaneio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9WhY1mJawMkSgqM50DO0y9bxGYW89N14gLirO5zVuzc=";
+    sha256 = "sha256-RNLvmoHna5EO0/p24opBagyWzzNbmFkWGzkUXirdWe0=";
   };
-  vendorHash = "sha256-xcIFveR0MwpYGYhHKXwQPHF08620yilEtb+BdKZWrdw=";
+  vendorHash = "sha256-+Y5k9PRxnBR3lqi4T+3DH4Pw+cyHtt9+9OX4aw0CVl0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/kubestroyer/default.nix b/pkgs/tools/security/kubestroyer/default.nix
index bbe0d9cad7a3f..8e0922e4dfb07 100644
--- a/pkgs/tools/security/kubestroyer/default.nix
+++ b/pkgs/tools/security/kubestroyer/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/Rolix44/Kubestroyer/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "kubestroyer";
   };
 }
diff --git a/pkgs/tools/security/ldapnomnom/default.nix b/pkgs/tools/security/ldapnomnom/default.nix
index 132ecf70591a3..59daa142856bb 100644
--- a/pkgs/tools/security/ldapnomnom/default.nix
+++ b/pkgs/tools/security/ldapnomnom/default.nix
@@ -5,22 +5,28 @@
 
 buildGoModule rec {
   pname = "ldapnomnom";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "lkarlslund";
-    repo = pname;
+    repo = "ldapnomnom";
     rev = "refs/tags/v${version}";
-    hash = "sha256-o29vcPKRX8TWRCpa20DVsh/4K7d3IbaLS3B+jJGBEmo=";
+    hash = "sha256-3s2mLNqnJ+wZ17gy8Yr2Ze0S62A1bmE91E2ciLNO14E=";
   };
 
   vendorHash = "sha256-3ucnLD+qhBSWY2wLtBcsOcuEf1woqHP17qQg7LlERA8=";
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   meta = with lib; {
     description = "Tool to anonymously bruteforce usernames from Domain controllers";
     homepage = "https://github.com/lkarlslund/ldapnomnom";
     changelog = "https://github.com/lkarlslund/ldapnomnom/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "ldapnomnom";
   };
 }
diff --git a/pkgs/tools/security/ldeep/default.nix b/pkgs/tools/security/ldeep/default.nix
index e82dd9381a3c1..623acf50f3b8c 100644
--- a/pkgs/tools/security/ldeep/default.nix
+++ b/pkgs/tools/security/ldeep/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ldeep";
-  version = "1.0.38";
+  version = "1.0.51";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "franc-pentest";
     repo = "ldeep";
     rev = "refs/tags/${version}";
-    hash = "sha256-QoisQL7K4Xg4k7IGymvsMjNfTkjHtkVJpygHtX8lUqs=";
+    hash = "sha256-UbZotbq97ehVj8dF0vXM2Z61IG1H+21xk14DXKmWirA=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/lethe/default.nix b/pkgs/tools/security/lethe/default.nix
index 0e63b0db2a53e..eb34742938148 100644
--- a/pkgs/tools/security/lethe/default.nix
+++ b/pkgs/tools/security/lethe/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/kostassoid/lethe";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "lethe";
   };
 }
diff --git a/pkgs/tools/security/libmodsecurity/default.nix b/pkgs/tools/security/libmodsecurity/default.nix
index e1d78b79753eb..66a8c3c130613 100644
--- a/pkgs/tools/security/libmodsecurity/default.nix
+++ b/pkgs/tools/security/libmodsecurity/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libmodsecurity";
-  version = "3.0.10";
+  version = "3.0.11";
 
   src = fetchFromGitHub {
     owner = "SpiderLabs";
     repo = "ModSecurity";
     rev = "v${version}";
-    sha256 = "sha256-VaoPpJ0twuGWU7G9AvKK4kq9Ed0BeG2J7B81sOuJVrE=";
+    sha256 = "sha256-dbAX4lokmiUc+glhTG0PPaD/WEXcoQX0AQ/WZwJQYPY=";
     fetchSubmodules = true;
   };
 
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "modsec-rules-check";
   };
 }
diff --git a/pkgs/tools/security/lmp/default.nix b/pkgs/tools/security/lmp/default.nix
index 2b945478f3dae..021b9d33d35a1 100644
--- a/pkgs/tools/security/lmp/default.nix
+++ b/pkgs/tools/security/lmp/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/0xInfection/LogMePwn";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "lmp";
   };
 }
diff --git a/pkgs/tools/security/log4jcheck/default.nix b/pkgs/tools/security/log4jcheck/default.nix
index 291bf1ff96b4b..1a7608fa73de6 100644
--- a/pkgs/tools/security/log4jcheck/default.nix
+++ b/pkgs/tools/security/log4jcheck/default.nix
@@ -30,5 +30,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/NorthwaveSecurity/log4jcheck";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "log4jcheck";
   };
 }
diff --git a/pkgs/tools/security/log4shell-detector/default.nix b/pkgs/tools/security/log4shell-detector/default.nix
index 76fc657284385..c29a32bea3969 100644
--- a/pkgs/tools/security/log4shell-detector/default.nix
+++ b/pkgs/tools/security/log4shell-detector/default.nix
@@ -36,5 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/Neo23x0/log4shell-detector";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "log4shell-detector";
   };
 }
diff --git a/pkgs/tools/security/logkeys/default.nix b/pkgs/tools/security/logkeys/default.nix
index a0c6e0a5f6286..1172250f9c483 100644
--- a/pkgs/tools/security/logkeys/default.nix
+++ b/pkgs/tools/security/logkeys/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   preConfigure = "./autogen.sh";
 
   meta = with lib; {
-    description = "A GNU/Linux keylogger that works!";
+    description = "A GNU/Linux keylogger that works";
     license = licenses.gpl3;
     homepage = "https://github.com/kernc/logkeys";
     maintainers = with maintainers; [mikoim offline];
diff --git a/pkgs/tools/security/logmap/default.nix b/pkgs/tools/security/logmap/default.nix
index d6d4cb0f1a54e..50f14bc33affb 100644
--- a/pkgs/tools/security/logmap/default.nix
+++ b/pkgs/tools/security/logmap/default.nix
@@ -30,5 +30,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/zhzyker/logmap";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "logmap";
   };
 }
diff --git a/pkgs/tools/security/mantra/default.nix b/pkgs/tools/security/mantra/default.nix
index 7453926a8bd35..348c0afc32513 100644
--- a/pkgs/tools/security/mantra/default.nix
+++ b/pkgs/tools/security/mantra/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/MrEmpy/Mantra/releases/tag/v.${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mantra";
   };
 }
diff --git a/pkgs/tools/security/mbox/default.nix b/pkgs/tools/security/mbox/default.nix
deleted file mode 100644
index a39d226aac575..0000000000000
--- a/pkgs/tools/security/mbox/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, openssl, which }:
-
-stdenv.mkDerivation {
-  pname = "mbox";
-  version = "unstable-2014-05-26";
-
-  src = fetchFromGitHub {
-    owner = "tsgates";
-    repo = "mbox";
-    rev = "a131424b6cb577e1c916bd0e8ffb2084a5f73048";
-    sha256 = "06qggqxnzcxnc34m6sbafxwr2p64x65m9zm5wp7pwyarcckhh2hd";
-  };
-
-  buildInputs = [ openssl which ];
-
-  preConfigure = ''
-    cd src
-    cp {.,}configsbox.h
-  '';
-
-  doCheck = true;
-  checkPhase = ''
-    rm tests/test-*vim.sh tests/test-pip.sh
-
-    patchShebangs ./; dontPatchShebags=1
-    sed -i 's|^/bin/||' tests/test-fileops.sh
-
-    ./testall.sh
-  '';
-
-  meta = with lib;    {
-    description = "Lightweight sandboxing mechanism that any user can use without special privileges";
-    homepage = "http://pdos.csail.mit.edu/mbox/";
-    maintainers = with maintainers; [ ehmry ];
-    license = licenses.bsd3;
-    platforms = [ "x86_64-linux" ];
-    broken = true;
-  };
-}
diff --git a/pkgs/tools/security/melt/default.nix b/pkgs/tools/security/melt/default.nix
index 99186a40c1703..01664f2118b12 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.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "melt";
     rev = "v${version}";
-    sha256 = "sha256-ZDUvwBxPFE0RBgNGoZlU+LkyIXINZITqBnKDFnr59+Q=";
+    sha256 = "sha256-LKHAVVzVhHlYRDgQCIQDQ8MLnTzxsKo198BITdHjTDA=";
   };
 
-  vendorHash = "sha256-vTSLyRdv4rAYvy/2S7NnQNs144wyJOLzFkyBBW0TRmo=";
+  vendorHash = "sha256-xTisSPACxuBrv0R2GYinFGYNXD0zoCD8DFkirdc9gIE=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 310fa1b719127..0227191fedeb3 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.3.37"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.3.53"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index c44c869c7cd39..862a4d1977824 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,12 +1,12 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 40ba61c644b1529ec4493ecb59dd5a8e4b3f16c1
-  ref: refs/tags/6.3.37
+  revision: 45efd21e748da75cc37d999dbfa3ec6c4fc4d0e9
+  ref: refs/tags/6.3.53
   specs:
-    metasploit-framework (6.3.37)
-      actionpack (~> 7.0)
-      activerecord (~> 7.0)
-      activesupport (~> 7.0)
+    metasploit-framework (6.3.53)
+      actionpack (~> 7.0.0)
+      activerecord (~> 7.0.0)
+      activesupport (~> 7.0.0)
       aws-sdk-ec2
       aws-sdk-ec2instanceconnect
       aws-sdk-iam
@@ -28,14 +28,14 @@ GIT
       filesize
       hrr_rb_ssh-ed25519
       http-cookie
-      irb
+      irb (~> 1.7.4)
       jsobfu
       json
       metasm
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.154)
+      metasploit-payloads (= 2.0.165)
       metasploit_data_models
       metasploit_payloads-mettle (= 1.0.26)
       mqtt
@@ -62,6 +62,7 @@ GIT
       rb-readline
       recog
       redcarpet
+      reline
       rex-arch
       rex-bin_tools
       rex-core
@@ -82,7 +83,7 @@ GIT
       rex-zip
       ruby-macho
       ruby-mysql
-      ruby_smb (~> 3.2.0)
+      ruby_smb (~> 3.3.0)
       rubyntlm
       rubyzip
       sinatra
@@ -105,66 +106,67 @@ GEM
   remote: https://rubygems.org/
   specs:
     Ascii85 (1.1.0)
-    actionpack (7.0.7.2)
-      actionview (= 7.0.7.2)
-      activesupport (= 7.0.7.2)
+    actionpack (7.0.8)
+      actionview (= 7.0.8)
+      activesupport (= 7.0.8)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (7.0.7.2)
-      activesupport (= 7.0.7.2)
+    actionview (7.0.8)
+      activesupport (= 7.0.8)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activemodel (7.0.7.2)
-      activesupport (= 7.0.7.2)
-    activerecord (7.0.7.2)
-      activemodel (= 7.0.7.2)
-      activesupport (= 7.0.7.2)
-    activesupport (7.0.7.2)
+    activemodel (7.0.8)
+      activesupport (= 7.0.8)
+    activerecord (7.0.8)
+      activemodel (= 7.0.8)
+      activesupport (= 7.0.8)
+    activesupport (7.0.8)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-    addressable (2.8.5)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     afm (0.2.2)
     arel-helpers (2.14.0)
       activerecord (>= 3.1.0, < 8)
-    aws-eventstream (1.2.0)
-    aws-partitions (1.811.0)
-    aws-sdk-core (3.181.0)
-      aws-eventstream (~> 1, >= 1.0.2)
+    aws-eventstream (1.3.0)
+    aws-partitions (1.872.0)
+    aws-sdk-core (3.190.1)
+      aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
-      aws-sigv4 (~> 1.5)
+      aws-sigv4 (~> 1.8)
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-ec2 (1.402.0)
-      aws-sdk-core (~> 3, >= 3.177.0)
+    aws-sdk-ec2 (1.431.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ec2instanceconnect (1.32.0)
-      aws-sdk-core (~> 3, >= 3.177.0)
+    aws-sdk-ec2instanceconnect (1.36.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.86.0)
-      aws-sdk-core (~> 3, >= 3.177.0)
+    aws-sdk-iam (1.92.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.71.0)
-      aws-sdk-core (~> 3, >= 3.177.0)
+    aws-sdk-kms (1.75.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.134.0)
-      aws-sdk-core (~> 3, >= 3.181.0)
+    aws-sdk-s3 (1.141.0)
+      aws-sdk-core (~> 3, >= 3.189.0)
       aws-sdk-kms (~> 1)
-      aws-sigv4 (~> 1.6)
-    aws-sdk-ssm (1.156.0)
-      aws-sdk-core (~> 3, >= 3.177.0)
+      aws-sigv4 (~> 1.8)
+    aws-sdk-ssm (1.162.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.6.0)
+    aws-sigv4 (1.8.0)
       aws-eventstream (~> 1, >= 1.0.2)
-    bcrypt (3.1.19)
+    base64 (0.2.0)
+    bcrypt (3.1.20)
     bcrypt_pbkdf (1.1.0)
     bindata (2.4.15)
-    bootsnap (1.16.0)
+    bootsnap (1.17.0)
       msgpack (~> 1.2)
     bson (4.15.0)
     builder (3.2.4)
@@ -173,11 +175,10 @@ GEM
     cookiejar (0.3.3)
     crass (1.0.6)
     daemons (1.4.1)
-    date (3.3.3)
+    date (3.3.4)
     dnsruby (1.70.0)
       simpleidn (~> 0.2.1)
-    domain_name (0.5.20190701)
-      unf (>= 0.0.5, < 1.0.0)
+    domain_name (0.6.20231109)
     ed25519 (1.3.0)
     em-http-request (1.1.7)
       addressable (>= 2.3.4)
@@ -189,9 +190,10 @@ GEM
       eventmachine (>= 1.0.0.beta.4)
     erubi (1.12.0)
     eventmachine (1.2.7)
-    faker (3.2.1)
+    faker (3.2.2)
       i18n (>= 1.8.11, < 2)
-    faraday (2.7.10)
+    faraday (2.8.1)
+      base64
       faraday-net_http (>= 2.0, < 3.1)
       ruby2_keywords (>= 0.0.4)
     faraday-net_http (3.0.2)
@@ -200,7 +202,7 @@ GEM
     faye-websocket (0.11.3)
       eventmachine (>= 0.12.0)
       websocket-driver (>= 0.5.1)
-    ffi (1.15.5)
+    ffi (1.16.3)
     filesize (0.2.0)
     gssapi (1.3.1)
       ffi (>= 1.0.1)
@@ -218,27 +220,27 @@ GEM
     httpclient (2.8.3)
     i18n (1.14.1)
       concurrent-ruby (~> 1.0)
-    io-console (0.6.0)
+    io-console (0.7.1)
     irb (1.7.4)
       reline (>= 0.3.6)
     jmespath (1.6.2)
     jsobfu (0.4.2)
       rkelly-remix
-    json (2.6.3)
+    json (2.7.1)
     little-plugger (1.1.4)
     logging (2.3.1)
       little-plugger (~> 1.1)
       multi_json (~> 1.14)
-    loofah (2.21.3)
+    loofah (2.22.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
     metasm (1.0.5)
-    metasploit-concern (5.0.1)
+    metasploit-concern (5.0.2)
       activemodel (~> 7.0)
       activesupport (~> 7.0)
       railties (~> 7.0)
       zeitwerk
-    metasploit-credential (6.0.5)
+    metasploit-credential (6.0.6)
       metasploit-concern
       metasploit-model
       metasploit_data_models (>= 5.0.0)
@@ -248,12 +250,12 @@ GEM
       rex-socket
       rubyntlm
       rubyzip
-    metasploit-model (5.0.1)
+    metasploit-model (5.0.2)
       activemodel (~> 7.0)
       activesupport (~> 7.0)
       railties (~> 7.0)
-    metasploit-payloads (2.0.154)
-    metasploit_data_models (6.0.2)
+    metasploit-payloads (2.0.165)
+    metasploit_data_models (6.0.3)
       activerecord (~> 7.0)
       activesupport (~> 7.0)
       arel-helpers
@@ -265,26 +267,26 @@ GEM
       webrick
     metasploit_payloads-mettle (1.0.26)
     method_source (1.0.0)
-    mini_portile2 (2.8.4)
-    minitest (5.19.0)
+    mini_portile2 (2.8.5)
+    minitest (5.20.0)
     mqtt (0.6.0)
     msgpack (1.6.1)
     multi_json (1.15.0)
     mustermann (3.0.0)
       ruby2_keywords (~> 0.0.1)
     nessus_rest (0.1.6)
-    net-imap (0.3.7)
+    net-imap (0.4.8)
       date
       net-protocol
     net-ldap (0.18.0)
-    net-protocol (0.2.1)
+    net-protocol (0.2.2)
       timeout
-    net-smtp (0.3.3)
+    net-smtp (0.4.0)
       net-protocol
-    net-ssh (7.2.0)
+    net-ssh (7.2.1)
     network_interface (0.0.4)
     nexpose (7.3.0)
-    nio4r (2.5.9)
+    nio4r (2.7.0)
     nokogiri (1.14.5)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
@@ -305,11 +307,11 @@ GEM
       hashery (~> 2.0)
       ruby-rc4
       ttfunk
-    pg (1.5.3)
-    public_suffix (5.0.3)
-    puma (6.3.1)
+    pg (1.5.4)
+    public_suffix (5.0.4)
+    puma (6.4.0)
       nio4r (~> 2.0)
-    racc (1.7.1)
+    racc (1.7.3)
     rack (2.2.8)
     rack-protection (3.1.0)
       rack (~> 2.2, >= 2.2.4)
@@ -322,77 +324,77 @@ GEM
     rails-html-sanitizer (1.6.0)
       loofah (~> 2.21)
       nokogiri (~> 1.14)
-    railties (7.0.7.2)
-      actionpack (= 7.0.7.2)
-      activesupport (= 7.0.7.2)
+    railties (7.0.8)
+      actionpack (= 7.0.8)
+      activesupport (= 7.0.8)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
       zeitwerk (~> 2.5)
-    rake (13.0.6)
+    rake (13.1.0)
     rasn1 (0.12.1)
       strptime (~> 0.2.5)
     rb-readline (0.5.5)
-    recog (3.1.2)
+    recog (3.1.4)
       nokogiri
     redcarpet (3.6.0)
-    reline (0.3.8)
+    reline (0.4.1)
       io-console (~> 0.5)
-    rex-arch (0.1.14)
+    rex-arch (0.1.15)
       rex-text
-    rex-bin_tools (0.1.8)
+    rex-bin_tools (0.1.9)
       metasm
       rex-arch
       rex-core
       rex-struct2
       rex-text
     rex-core (0.1.31)
-    rex-encoder (0.1.6)
+    rex-encoder (0.1.7)
       metasm
       rex-arch
       rex-text
-    rex-exploitation (0.1.38)
+    rex-exploitation (0.1.39)
       jsobfu
       metasm
       rex-arch
       rex-encoder
       rex-text
       rexml
-    rex-java (0.1.6)
-    rex-mime (0.1.7)
+    rex-java (0.1.7)
+    rex-mime (0.1.8)
       rex-text
-    rex-nop (0.1.2)
+    rex-nop (0.1.3)
       rex-arch
-    rex-ole (0.1.7)
+    rex-ole (0.1.8)
       rex-text
-    rex-powershell (0.1.98)
+    rex-powershell (0.1.99)
       rex-random_identifier
       rex-text
       ruby-rc4
-    rex-random_identifier (0.1.10)
+    rex-random_identifier (0.1.11)
       rex-text
-    rex-registry (0.1.4)
-    rex-rop_builder (0.1.4)
+    rex-registry (0.1.5)
+    rex-rop_builder (0.1.5)
       metasm
       rex-core
       rex-text
-    rex-socket (0.1.52)
+    rex-socket (0.1.55)
       rex-core
-    rex-sslscan (0.1.9)
+    rex-sslscan (0.1.10)
       rex-core
       rex-socket
       rex-text
-    rex-struct2 (0.1.3)
-    rex-text (0.2.52)
-    rex-zip (0.1.4)
+    rex-struct2 (0.1.4)
+    rex-text (0.2.55)
+    rex-zip (0.1.5)
       rex-text
     rexml (3.2.6)
     rkelly-remix (0.0.7)
     ruby-macho (4.0.0)
-    ruby-mysql (4.0.0)
+    ruby-mysql (4.1.0)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.5)
-    ruby_smb (3.2.5)
+    ruby_smb (3.3.1)
       bindata
       openssl-ccm
       openssl-cmac
@@ -410,7 +412,7 @@ GEM
       rack (~> 2.2, >= 2.2.4)
       rack-protection (= 3.1.0)
       tilt (~> 2.0)
-    sqlite3 (1.6.3)
+    sqlite3 (1.6.9)
       mini_portile2 (~> 2.8.0)
     sshkey (3.0.0)
     strptime (0.2.5)
@@ -419,9 +421,9 @@ GEM
       daemons (~> 1.0, >= 1.0.9)
       eventmachine (~> 1.0, >= 1.0.4)
       rack (>= 1, < 3)
-    thor (1.2.2)
-    tilt (2.2.0)
-    timeout (0.4.0)
+    thor (1.3.0)
+    tilt (2.3.0)
+    timeout (0.4.1)
     ttfunk (1.7.0)
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
@@ -429,7 +431,7 @@ GEM
       tzinfo (>= 1.0.0)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.8.2)
+    unf_ext (0.0.9.1)
     unix-crypt (1.3.1)
     warden (1.2.9)
       rack (>= 2.0.9)
@@ -453,7 +455,7 @@ GEM
       activesupport (>= 4.2, < 8.0)
     xmlrpc (0.3.3)
       webrick
-    zeitwerk (2.6.11)
+    zeitwerk (2.6.12)
 
 PLATFORMS
   ruby
@@ -462,4 +464,4 @@ DEPENDENCIES
   metasploit-framework!
 
 BUNDLED WITH
-   2.4.19
+   2.5.3
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index fdc61c0c87746..fc5a7d0ac4eb5 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -15,17 +15,22 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.3.37";
+  version = "6.3.53";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
-    rev = version;
-    sha256 = "sha256-veyBJpRycTBuNQocUss6xBOaiImj4EyLv0261UmI7mM=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-LyI5Ne2ztO0Or1btT0jG96PYNZVMTwEZNwYCEIc6Rd4=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ (python3.withPackages (ps: [ ps.requests ])) ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  buildInputs = [
+    (python3.withPackages (ps: [ ps.requests ]))
+  ];
 
   dontPatchELF = true; # stay away from exploit executables
 
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index 71dc2b4c8d816..88af87f272c2c 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -4,60 +4,60 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qamc5ly521wk9i1658h9jv7avmyyp92kffa1da2fn5zk0wgyhf4";
+      sha256 = "1l319p0gipfgq8bp8dvbv97qqb72rad9zcqn5snhgv20cmpqr69b";
       type = "gem";
     };
-    version = "7.0.7.2";
+    version = "7.0.8";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "151zxb61bb6q7g0sn34qz79k8bg02vmb8mmnsn0fr15lxw92dfhm";
+      sha256 = "0xnpdwj1d8m6c2d90jp9cs50ggiz0jj02ls2h9lg68k4k8mnjbd2";
       type = "gem";
     };
-    version = "7.0.7.2";
+    version = "7.0.8";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1crjq1dznlbsrwd5yijxraz1591xmg4vdcwwnmrw4nh6hrwq5fj5";
+      sha256 = "004w8zaz2g3y6lnrsvlcmljll0m3ndqpgwf0wfscgq6iysibiglm";
       type = "gem";
     };
-    version = "7.0.7.2";
+    version = "7.0.8";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03vrssdqaqm41w27s21r37skdfxa41midvjy37i2zh3rnbnq8ps2";
+      sha256 = "04wavps80q3pvhvfbmi4gs102y1p6mxbg8xylzvib35b6m92adpj";
       type = "gem";
     };
-    version = "7.0.7.2";
+    version = "7.0.8";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vlzcnyqlbchaq85phmdv73ydlc18xpvxy1cbsk191cwd29i7q32";
+      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
       type = "gem";
     };
-    version = "7.0.7.2";
+    version = "7.0.8";
   };
   addressable = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.5";
+    version = "2.8.6";
   };
   afm = {
     groups = ["default"];
@@ -94,110 +94,120 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
+      sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0082fsywglghvam55i4jz7cj2vyd8hb8b7658cr9yqlwna9j1sp3";
+      sha256 = "1ddbcz8p3abbw8d8pn796z1ry1mbapl6ayhh37ziwal6bd047kvm";
       type = "gem";
     };
-    version = "1.811.0";
+    version = "1.872.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xjw9cf6ldbw50xi5ric8d63r8kybpsvaqxh2v6n7374hfady73i";
+      sha256 = "1ansagfl5irx1y6b9xf4xpi9j6q6k5pbd2aw80hn0p4m3ycafamh";
       type = "gem";
     };
-    version = "3.181.0";
+    version = "3.190.1";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kl5b8m0ad2dxj2r0f5wkphfwhnpq820jbzrdmxyh20kivckv33c";
+      sha256 = "04lg4g6aivkf6zvvcc1clw0dqdlpkn3c87kiz5mfc7m2jr0m0ljx";
       type = "gem";
     };
-    version = "1.402.0";
+    version = "1.431.0";
   };
   aws-sdk-ec2instanceconnect = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jbvh6v2kbybk1qjzhzrl82d7advh6hf3va9zyaxlrcijkz6jjg4";
+      sha256 = "1iifrmdls17a3hniq43iyj9q4mr8iy0danqmy65xbh05bnqq2ca9";
       type = "gem";
     };
-    version = "1.32.0";
+    version = "1.36.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bp18pi29zncznkzkjzlg5j1cl99q41xvw0z5qx9q55mcwaj7i8";
+      sha256 = "0whclpcvbdy7gzvqpk8734nxjfxs3362k197xl1wnrpixklkacyz";
       type = "gem";
     };
-    version = "1.86.0";
+    version = "1.92.0";
   };
   aws-sdk-kms = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zr5w2cjd895abyn7y5gifhq37bxcinssvdx2l1qmlkllbdxbwq0";
+      sha256 = "1qzxqfgrhnl5rdc39a1gl2pgrdxgnsj12zycpxnsx8lg6arfmnr1";
       type = "gem";
     };
-    version = "1.71.0";
+    version = "1.75.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fbz259as60xnf563z9byp8blq5fsc81h92h3wicai4bmz45w4r5";
+      sha256 = "0bnhpmi0iiaj88rqc5lhhnp2gyrk4fs8xz51lj36wwzng94qinya";
       type = "gem";
     };
-    version = "1.134.0";
+    version = "1.141.0";
   };
   aws-sdk-ssm = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "178nnrlpz5ihx5615i1mml7ymg2pklvfxxakhhwcjbys52cz6jsk";
+      sha256 = "0xz10344dwm4pj8qnl19bnh99arxp7cd9mn2alslrnw7y2gipzz1";
       type = "gem";
     };
-    version = "1.156.0";
+    version = "1.162.0";
   };
   aws-sigv4 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z889c4c1w7wsjm3szg64ay5j51kjl4pdf94nlr1yks2rlanm7na";
+      sha256 = "1g3w27wzjy4si6kp49w10as6ml6g6zl3xrfqs5ikpfciidv9kpc4";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.8.0";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
   };
   bcrypt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14crcsmcsyiskr9xzgzcfz2dr74zg1jvavrrxpf5vnn9q75fakz9";
+      sha256 = "16a0g2q40biv93i1hch3gw8rbmhp77qnnifj1k0a6m7dng3zh444";
       type = "gem";
     };
-    version = "3.1.19";
+    version = "3.1.20";
   };
   bcrypt_pbkdf = {
     groups = ["default"];
@@ -224,10 +234,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vcg52gwl64xhhal6kwk1pc01y1klzdlnv1awyk89kb91z010x7q";
+      sha256 = "0iqkzby0fdgi786m873nm0ckmc847wy9a4ydinb29m7hd3fs83kb";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.17.0";
   };
   bson = {
     groups = ["default"];
@@ -304,10 +314,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1";
+      sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.3.4";
   };
   dnsruby = {
     groups = ["default"];
@@ -324,10 +334,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+      sha256 = "1gpciaifmxql8h01ci12qq08dnqrdlzkkz6fmia9v9yc3r9a29si";
       type = "gem";
     };
-    version = "0.5.20190701";
+    version = "0.6.20231109";
   };
   ed25519 = {
     groups = ["default"];
@@ -384,20 +394,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ysiqlvyy1351bzx7h92r93a35s32l8giyf9bac6sgr142sh3cnn";
+      sha256 = "1ic47k6f0q6xl9g2yxa3x60gfbwx98wnx75qnbhhgk0zc7a5ijhy";
       type = "gem";
     };
-    version = "3.2.1";
+    version = "3.2.2";
   };
   faraday = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
+      sha256 = "19p45ryrvxff6ggdj4fq76dk7wlkfgrh474c3kwzdsjx3xpdq8x8";
       type = "gem";
     };
-    version = "2.7.10";
+    version = "2.8.1";
   };
   faraday-net_http = {
     groups = ["default"];
@@ -434,10 +444,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   filesize = {
     groups = ["default"];
@@ -544,10 +554,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dikardh14c72gd9ypwh8dim41wvqmzfzf35mincaj5yals9m7ff";
+      sha256 = "1fmwbcapyhla84xhwj3gfws6rb4lw3928ybz6g3lr372dgxakzx5";
       type = "gem";
     };
-    version = "0.6.0";
+    version = "0.7.1";
   };
   irb = {
     groups = ["default"];
@@ -584,10 +594,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
+      sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq";
       type = "gem";
     };
-    version = "2.6.3";
+    version = "2.7.1";
   };
   little-plugger = {
     groups = ["default"];
@@ -614,10 +624,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p744kjpb5zk2ihklbykzii77alycjc04vpnm2ch2f3cp65imlj3";
+      sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
       type = "gem";
     };
-    version = "2.21.3";
+    version = "2.22.0";
   };
   metasm = {
     groups = ["default"];
@@ -634,62 +644,62 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12qhihgrhlxcr8pss42blf9jx6sdwp85kg0790n6lf6knz9yi7yc";
+      sha256 = "1w06rcr3fa4lq4dhq49b5wh6pd3lj6daf3mq3wmx5zzi4gv0mlic";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "5.0.2";
   };
   metasploit-credential = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pdfrbw8442aspvf4h691p542sgm6rj2xfl3bfc6rplmz82j1ay5";
+      sha256 = "1nmh37pss5bsxjasl52pi9jxnzv75wacpnhrif5cprg6jxwn8dzl";
       type = "gem";
     };
-    version = "6.0.5";
+    version = "6.0.6";
   };
   metasploit-framework = {
     groups = ["default"];
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "40ba61c644b1529ec4493ecb59dd5a8e4b3f16c1";
-      sha256 = "0qzfi14xbfjdpy5lrq53i649l4y47b5m470a6mp30wbjjhk83v5x";
+      rev = "45efd21e748da75cc37d999dbfa3ec6c4fc4d0e9";
+      sha256 = "1pj57a3i00h66wch2kscjlsxi8zpqr44zvanmw7fvd5kxlskj8ig";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.3.37";
+    version = "6.3.53";
   };
   metasploit-model = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01i35h3wl7qly2kx20f5r1x00grmfd5vnarjvi3qjjyy380qw793";
+      sha256 = "0vn50jnvdanmqbjm9xmp0i4xwzc9g3c6g2c4b59i2bz47kwp1pi7";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "5.0.2";
   };
   metasploit-payloads = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s3iii3y6jhmiymylhpxqcksgm8gwmmm3rhqspmd4n9ab4p4l36s";
+      sha256 = "0v9vr3iklxm53vfkyiqja8a942n8r0a49w9rmvk9ql4h3r5xcgpw";
       type = "gem";
     };
-    version = "2.0.154";
+    version = "2.0.165";
   };
   metasploit_data_models = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07k32bv9qnxg9vcq29p0r6qcfrhwby3aydpir3z8a7h8iz17lz9i";
+      sha256 = "1h22d30aviskjg1jm7a65jy5ynjpw92wg8hzv5mknhlbsv4dhzkm";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   metasploit_payloads-mettle = {
     groups = ["default"];
@@ -716,20 +726,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq";
+      sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.5";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6";
+      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
       type = "gem";
     };
-    version = "5.19.0";
+    version = "5.20.0";
   };
   mqtt = {
     groups = ["default"];
@@ -786,10 +796,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lf7wqg7czhaj51qsnmn28j7jmcxhkh3m28rl1cjrqsgjxhwj7r3";
+      sha256 = "1wnmxcrpv7zaf8wli5nvfnz5ybmw7f3r06s05p3d96idc61193mv";
       type = "gem";
     };
-    version = "0.3.7";
+    version = "0.4.8";
   };
   net-ldap = {
     groups = ["default"];
@@ -806,30 +816,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dxckrlw4q1lcn3qg4mimmjazmg9bma5gllv72f8js3p36fb3b91";
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.2.2";
   };
   net-smtp = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
+      sha256 = "1rx3758w0bmbr21s2nsc6llflsrnp50fwdnly3ixra4v53gbhzid";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.4.0";
   };
   net-ssh = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jyj6j7w9zpj2zhp4dyhdjiwsn9rqwksj7s7fzpnn7rx2xvz2a1a";
+      sha256 = "1i01340c4i144vvn3x54lc2rb77ch829qipl1rh6rqwm3yxzml9w";
       type = "gem";
     };
-    version = "7.2.0";
+    version = "7.2.1";
   };
   network_interface = {
     groups = ["default"];
@@ -856,10 +866,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w9978zwjf1qhy3amkivab0f9syz6a7k0xgydjidaf7xc831d78f";
+      sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm";
       type = "gem";
     };
-    version = "2.5.9";
+    version = "2.7.0";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -967,40 +977,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zcvxmfa8hxkhpp59fhxyxy1arp70f11zi1jh9c7bsdfspifb7kb";
+      sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
       type = "gem";
     };
-    version = "1.5.3";
+    version = "1.5.4";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
+      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.4";
   };
   puma = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x4dwx2shx0p7lsms97r85r7ji7zv57bjy3i1kmcpxc8bxvrr67c";
+      sha256 = "1y8jcw80zcxvdq0id329lzmp5pzx7hpac227d7sgjkblc89s3pfm";
       type = "gem";
     };
-    version = "6.3.1";
+    version = "6.4.0";
   };
   racc = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.7.3";
   };
   rack = {
     groups = ["default"];
@@ -1057,20 +1067,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01pdn9sn7kawwrvrbr3vz44j287xbka8mm7nrv9cl510y8gzxi2x";
+      sha256 = "0sfc16zrcn4jgf5xczb08n6prhmqqgg9f0b4mn73zlzg6cwmqchj";
       type = "gem";
     };
-    version = "7.0.7.2";
+    version = "7.0.8";
   };
   rake = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.1.0";
   };
   rasn1 = {
     groups = ["default"];
@@ -1097,10 +1107,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15633qvzbgsigx55dxb9b07xh0spwr9njd5y2f454kc5zrrapp1a";
+      sha256 = "1a9m9ngmcgvgzg8m8ahdhjvfm65k6hp8r7dqmrsh3zcphim4x71k";
       type = "gem";
     };
-    version = "3.1.2";
+    version = "3.1.4";
   };
   redcarpet = {
     groups = ["default"];
@@ -1117,30 +1127,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lv1nv7z63n4qmsm3h5h273m7daxngkcq8ynkk9j8lmn7jji98lb";
+      sha256 = "1hi6zfj6zqzxcbamhjm9w9cswv62f76l8gsdfcnmhpw35cyxphh8";
       type = "gem";
     };
-    version = "0.3.8";
+    version = "0.4.1";
   };
   rex-arch = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gi9641869pg30ij7ba3r2z89flvdqsma4spbpww6c8ph62iy4bp";
+      sha256 = "1gxjhiqdbh4ix76rqhaghzy1vsz22gcdfdwj9lqnfifibk7wabpa";
       type = "gem";
     };
-    version = "0.1.14";
+    version = "0.1.15";
   };
   rex-bin_tools = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0p5r2h0zaixdjhp9k0jq0vgsvbhifx2jh3p9pr2w80qda1hkgqgj";
+      sha256 = "0hdkjv9g04d9k6mq1j9fxg9l6ifzym5i204majhzb9hqkfgslw5p";
       type = "gem";
     };
-    version = "0.1.8";
+    version = "0.1.9";
   };
   rex-core = {
     groups = ["default"];
@@ -1157,150 +1167,150 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15c2yqrvn3hxf6gn4cqrz2l65rdh68gbk2a7lwdq43nchfjnsnvg";
+      sha256 = "1rlpxmw4amqf04vn14my6aim5iya0wh5gpi1hrvnqq9xnhkpk2qs";
       type = "gem";
     };
-    version = "0.1.6";
+    version = "0.1.7";
   };
   rex-exploitation = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1afz3qvdmaav542klxz2jwwgrayhw1lyrivmpfv5jk2c613cky3n";
+      sha256 = "1pdr7zz9hm7bihq6055jjzdrklp7qn1m50ddr63ilr32wlgldjvh";
       type = "gem";
     };
-    version = "0.1.38";
+    version = "0.1.39";
   };
   rex-java = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g8xdj7ij4y51wgh6l29al6i107bqn6pwql6za7ahms75m8s9dys";
+      sha256 = "1ynqlq1xqnw9asqnkszbjds972xm98fz92yq5ywrxz7p3x66ybbp";
       type = "gem";
     };
-    version = "0.1.6";
+    version = "0.1.7";
   };
   rex-mime = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00qpd5i8naw601q6aij652gw8x6my5d5drf63lq9fridjrqj0nja";
+      sha256 = "0gi2xidygk6j7zwml6225d221bc3s7n2if5g1v1w45ksl19499b3";
       type = "gem";
     };
-    version = "0.1.7";
+    version = "0.1.8";
   };
   rex-nop = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yjlmgmaaa65lkd6jrm71g8yfn8xy91jl07nd1v90xp9jrzrrl92";
+      sha256 = "1vavmdzv5aw20izhrbf2f180dwvrraw8i9bh4yz5gsapjizcqrhy";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "0.1.3";
   };
   rex-ole = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rlsy1a4lig7iqvb4zn60fpf125v8k4bjrjzakks74prjb2qmqnp";
+      sha256 = "0vbiqg120gqd0kfa7kw2jg4jy4y2favsm6kqvysxfjfwp6vfycl6";
       type = "gem";
     };
-    version = "0.1.7";
+    version = "0.1.8";
   };
   rex-powershell = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09bsf88faglr04ag71cplyhhmy7drp1cqs2dqq77m7q8w1ibk8rj";
+      sha256 = "0kvzw1fnj05cwbczajclwnpv60zky48hjc5svckapfgx8c5mi69f";
       type = "gem";
     };
-    version = "0.1.98";
+    version = "0.1.99";
   };
   rex-random_identifier = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11gdz9n44jlhq1w5swq63705gliwjc7jg7avgprgw2j4sscnypjp";
+      sha256 = "1qxc05f0xvradyp50vz8s1h9lzgh9c31nz8yq7r22bph03v71f0c";
       type = "gem";
     };
-    version = "0.1.10";
+    version = "0.1.11";
   };
   rex-registry = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09b6jhcih4srrh0j52v49vbffqz8ngki6qpmq9b2wdabqnw63d1v";
+      sha256 = "1sbcs0lkl8b57d5xdlfffrpwxpvvwfcfbgzqc9p7xgmqb1xl2s62";
       type = "gem";
     };
-    version = "0.1.4";
+    version = "0.1.5";
   };
   rex-rop_builder = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ssynxq3kc86v3xnc6jx8pg5zh13q61wl2klqbi9hzn2n8lhdgvj";
+      sha256 = "1gbc9sssyzbq1s2nk0ajc9y0x4v10cp4za4f4gbssrjw4d3zf9dl";
       type = "gem";
     };
-    version = "0.1.4";
+    version = "0.1.5";
   };
   rex-socket = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b8pymg7c6yjb2jc73sky917rdq2kmn9cwxlhm7703yc3y1fyj2x";
+      sha256 = "0qs8fq14ivhnhssq966ikxdis864gw80pfbxllbs35v0njw46nj3";
       type = "gem";
     };
-    version = "0.1.52";
+    version = "0.1.55";
   };
   rex-sslscan = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lgwadsmdwdkv9irxlvrc2x0wh1c1r1b9254blpc797ksh5qm4l1";
+      sha256 = "0plcz9jwpg1yw206ljky3mk6dk31j24jdmcpnky5k9m2npsp0jlf";
       type = "gem";
     };
-    version = "0.1.9";
+    version = "0.1.10";
   };
   rex-struct2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hp8yv55j995dl587hismwa7ydyprs03c75gia6rwp7v5bhshy4n";
+      sha256 = "1p6afmicm1adlngp196604rrgb1nsly10y8nphva5h5vncismscz";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.1.4";
   };
   rex-text = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xibdr82pr0p4h7jixf4r56y70rqzda5287bv3mw43r9vwsi949f";
+      sha256 = "1finkvvmxa654mldx1vqpnl9w1xvjp0s7lyb7qjymlphvbj3mi40";
       type = "gem";
     };
-    version = "0.2.52";
+    version = "0.2.55";
   };
   rex-zip = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0azm4g4dm9k6vrav769vn0gffrv7pgxknlj4dr9yav632920cvqj";
+      sha256 = "15jjb3ldndi9p5x7pb3dllkrm4cy3p7dccy4rxz0vh5m4vlqbhsd";
       type = "gem";
     };
-    version = "0.1.4";
+    version = "0.1.5";
   };
   rexml = {
     groups = ["default"];
@@ -1337,10 +1347,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sh12qscqrc1ihgy7734r4vrg9kzd9lifwsfk4n1r5i4gv5q0jd2";
+      sha256 = "1g6wcnzqsbqg2q1lfbhlz4z9rq306az2xx8kk8dnr60dziy1a5b5";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.1.0";
   };
   ruby-rc4 = {
     groups = ["default"];
@@ -1367,10 +1377,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "075ib787qp2g0ghx0pww76ff843l09y5d5h1x63zbnxzm3q3v4dz";
+      sha256 = "04m366ldi33h79k7f35dvyhq0jyh762v8360zf8ss5jbax3bzlkk";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.3.1";
   };
   rubyntlm = {
     groups = ["default"];
@@ -1423,15 +1433,14 @@
     version = "3.1.0";
   };
   sqlite3 = {
-    dependencies = ["mini_portile2"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h95kr5529qv786mfk8r2jjdsdi6v7v3k3dpz69mrcc9i0vpdd37";
+      sha256 = "08irz5llz31im8pmkk5k0kw433jyyji1qa98xkdmpphncdjr38am";
       type = "gem";
     };
-    version = "1.6.3";
+    version = "1.6.9";
   };
   sshkey = {
     groups = ["default"];
@@ -1478,30 +1487,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
+      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.3.0";
   };
   tilt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7";
+      sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.3.0";
   };
   timeout = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d9cvm0f4zdpwa795v3zv4973y5zk59j7s1x3yn90jjrhcz1yvfd";
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
       type = "gem";
     };
-    version = "0.4.0";
+    version = "0.4.1";
   };
   ttfunk = {
     groups = ["default"];
@@ -1548,10 +1557,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
+      sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
       type = "gem";
     };
-    version = "0.0.8.2";
+    version = "0.0.9.1";
   };
   unix-crypt = {
     groups = ["default"];
@@ -1658,9 +1667,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mwdd445w63khz13hpv17m2br5xngyjl3jdj08xizjbm78i2zrxd";
+      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
       type = "gem";
     };
-    version = "2.6.11";
+    version = "2.6.12";
   };
 }
diff --git a/pkgs/tools/security/metasploit/update.sh b/pkgs/tools/security/metasploit/update.sh
index ba41b78c0e8d8..45f820d7870a9 100755
--- a/pkgs/tools/security/metasploit/update.sh
+++ b/pkgs/tools/security/metasploit/update.sh
@@ -13,5 +13,8 @@ bundler install
 bundix
 sed -i '/[ ]*dependencies =/d' gemset.nix
 
+# Hacks
+sed -i 's/nokogiri = {/nokogiri = {\n    dependencies = ["mini_portile2" "racc"];/g' gemset.nix
+
 cd "../../../../"
 nix-update metasploit --version "$latest"
diff --git a/pkgs/tools/security/minisign/default.nix b/pkgs/tools/security/minisign/default.nix
index 2ab1babcafc78..aaa280f40e90b 100644
--- a/pkgs/tools/security/minisign/default.nix
+++ b/pkgs/tools/security/minisign/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ joachifm ];
     platforms = platforms.unix;
+    mainProgram = "minisign";
   };
 }
diff --git a/pkgs/tools/security/mitmproxy2swagger/default.nix b/pkgs/tools/security/mitmproxy2swagger/default.nix
index 053824c3bd3b0..56d47973b7e3a 100644
--- a/pkgs/tools/security/mitmproxy2swagger/default.nix
+++ b/pkgs/tools/security/mitmproxy2swagger/default.nix
@@ -5,18 +5,23 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mitmproxy2swagger";
-  version = "0.10.1";
+  version = "0.13.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "alufers";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-vWeMAtNyxYpuVlxav0ibTMoTKwLCNRFJpFKG3bIatTQ=";
+    hash = "sha256-VHxqxee5sQWRS13V4SfY4LWaN0oxxWsNVDOEqUyKHfg=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "ruamel.yaml"
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/mkp224o/default.nix b/pkgs/tools/security/mkp224o/default.nix
index 2ac4304d6d2eb..d6ee40e6f5eab 100644
--- a/pkgs/tools/security/mkp224o/default.nix
+++ b/pkgs/tools/security/mkp224o/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mkp224o";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "cathugger";
     repo = "mkp224o";
     rev = "v${version}";
-    sha256 = "sha256-+TJ137DmgaFZX+/N6VwXJwfVCoTWtC8NqfXfYJC8UHo=";
+    sha256 = "sha256-OL3xhoxIS1OqfVp0QboENFdNH/e1Aq1R/MFFM9LNFbQ=";
   };
 
   buildCommand =
diff --git a/pkgs/tools/security/mkpasswd/default.nix b/pkgs/tools/security/mkpasswd/default.nix
index 38c26a93b4e39..2ee71b8227eb1 100644
--- a/pkgs/tools/security/mkpasswd/default.nix
+++ b/pkgs/tools/security/mkpasswd/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "mkpasswd";
-  inherit (whois) version src;
+  inherit (whois) version src patches;
 
   nativeBuildInputs = [ perl pkg-config ];
   buildInputs = [ libxcrypt ];
diff --git a/pkgs/tools/security/mktemp/default.nix b/pkgs/tools/security/mktemp/default.nix
index 02be5103cbf6d..5010780800dea 100644
--- a/pkgs/tools/security/mktemp/default.nix
+++ b/pkgs/tools/security/mktemp/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchurl, groff }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, groff
+}:
 
 stdenv.mkDerivation rec {
   pname = "mktemp";
@@ -7,6 +12,15 @@ stdenv.mkDerivation rec {
   # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
   NROFF = "${groff}/bin/nroff";
 
+  patches = [
+    # Pull upstream fix for parallel install failures.
+    (fetchpatch {
+      name = "parallel-install.patch";
+      url = "https://www.mktemp.org/repos/mktemp/raw-rev/eb87d96ce8b7";
+      hash = "sha256-cJ/0pFj8tOkByUwhlMwLNSQgTHyAU8svEkjKWWwsNmY=";
+    })
+  ];
+
   # Don't use "install -s"
   postPatch = ''
     substituteInPlace Makefile.in --replace " 0555 -s " " 0555 "
@@ -17,6 +31,8 @@ stdenv.mkDerivation rec {
     sha256 = "0x969152znxxjbj7387xb38waslr4yv6bnj5jmhb4rpqxphvk54f";
   };
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Simple tool to make temporary file handling in shells scripts safe and simple";
     homepage = "https://www.mktemp.org";
diff --git a/pkgs/tools/security/mongoaudit/default.nix b/pkgs/tools/security/mongoaudit/default.nix
index 3ba19256ec34e..2f980be5163b0 100644
--- a/pkgs/tools/security/mongoaudit/default.nix
+++ b/pkgs/tools/security/mongoaudit/default.nix
@@ -35,5 +35,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/stampery/mongoaudit";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mongoaudit";
   };
 }
diff --git a/pkgs/tools/security/naabu/default.nix b/pkgs/tools/security/naabu/default.nix
index 9715e756a96ee..7d3981222f914 100644
--- a/pkgs/tools/security/naabu/default.nix
+++ b/pkgs/tools/security/naabu/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "naabu";
-  version = "2.1.9";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "naabu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MxIAWVcMiLLmddvyjPNprJWseOw+9ZEYV+LSMeH2Igo=";
+    hash = "sha256-z81LL+tx15Zo6OWj4gRSodo7Dk763M+QQ5kYgjrWO3Q=";
   };
 
-  vendorHash = "sha256-4lTik5POzK4aE3c1gGi3NuefEdbMdTLvJIkvTRSPraI=";
+  vendorHash = "sha256-nwrqxlbvr9FZXJpzmcn0IBEtlJfeYCy8DJsBvxEgj6k=";
 
   buildInputs = [
     libpcap
@@ -27,6 +27,11 @@ buildGoModule rec {
     "cmd/naabu/"
   ];
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   meta = with lib; {
     description = "Fast SYN/CONNECT port scanner";
     longDescription = ''
diff --git a/pkgs/tools/security/netexec/default.nix b/pkgs/tools/security/netexec/default.nix
new file mode 100644
index 0000000000000..625cd39742521
--- /dev/null
+++ b/pkgs/tools/security/netexec/default.nix
@@ -0,0 +1,106 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, python3
+}:
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      impacket = super.impacket.overridePythonAttrs {
+        version = "0.12.0.dev1-unstable-2023-11-30";
+        src = fetchFromGitHub {
+          owner = "Pennyw0rth";
+          repo = "impacket";
+          rev = "d370e6359a410063b2c9c68f6572c3b5fb178a38";
+          hash = "sha256-Jozn4lKAnLQ2I53+bx0mFY++OH5P4KyqVmrS5XJUY3E=";
+        };
+        # Fix version to be compliant with Python packaging rules
+        postPatch = ''
+          substituteInPlace setup.py \
+            --replace 'version="{}.{}.{}.{}{}"' 'version="{}.{}.{}"'
+        '';
+      };
+    };
+  };
+in
+python.pkgs.buildPythonApplication rec {
+  pname = "netexec";
+  version = "1.1.0-unstable-2024-01-15";
+  pyproject = true;
+  pythonRelaxDeps = true;
+  pythonRemoveDeps = [
+    # Fail to detect dev version requirement
+    "neo4j"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "Pennyw0rth";
+    repo = "NetExec";
+    rev = "9df72e2f68b914dfdbd75b095dd8f577e992615f";
+    hash = "sha256-oQHtTE5hdlxHX4uc412VfNUrN0UHVbwI0Mm9kmJpNW4=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '{ git = "https://github.com/Pennyw0rth/impacket.git", branch = "gkdi" }' '"*"' \
+      --replace '{ git = "https://github.com/Pennyw0rth/oscrypto" }' '"*"'
+  '';
+
+  nativeBuildInputs = with python.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python.pkgs; [
+    aardwolf
+    aioconsole
+    aiosqlite
+    argcomplete
+    asyauth
+    beautifulsoup4
+    bloodhound-py
+    dploot
+    dsinternals
+    impacket
+    lsassy
+    masky
+    minikerberos
+    msgpack
+    neo4j
+    oscrypto
+    paramiko
+    pyasn1-modules
+    pylnk3
+    pypsrp
+    pypykatz
+    python-libnmap
+    pywerview
+    requests
+    rich
+    sqlalchemy
+    termcolor
+    terminaltables
+    xmltodict
+  ];
+
+  nativeCheckInputs = with python.pkgs; [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  meta = with lib; {
+    description = "Network service exploitation tool (maintained fork of CrackMapExec)";
+    homepage = "https://github.com/Pennyw0rth/NetExec";
+    changelog = "https://github.com/Pennyw0rth/NetExec/releases/tag/v${version}";
+    license = with licenses; [ bsd2 ];
+    mainProgram = "nxc";
+    maintainers = with maintainers; [ vncsb ];
+    # FIXME: failing fixupPhase:
+    # $ Rewriting #!/nix/store/<hash>-python3-3.11.7/bin/python3.11 to #!/nix/store/<hash>-python3-3.11.7
+    # $ /nix/store/<hash>-wrap-python-hook/nix-support/setup-hook: line 65: 47758 Killed: 9               sed -i "$f" -e "1 s^#!/nix/store/<hash>-python3-3.11.7^#!/nix/store/<hash>-python3-3.11.7^"
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/tools/security/nitrokey-app/default.nix b/pkgs/tools/security/nitrokey-app/default.nix
index d48047a7b1c62..8e654900e1720 100644
--- a/pkgs/tools/security/nitrokey-app/default.nix
+++ b/pkgs/tools/security/nitrokey-app/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "Nitrokey";
     repo = "nitrokey-app";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-c6EC5uuMna07xVHDRFq0UDwuSeopZTmZGZ9ZD5zaq8Y=";
   };
 
@@ -38,14 +38,15 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description      = "Provides extra functionality for the Nitrokey Pro and Storage";
-    longDescription  = ''
-       The nitrokey-app provides a QT system tray widget with which you can
-       access the extra functionality of a Nitrokey Storage or Nitrokey Pro.
-       See https://www.nitrokey.com/ for more information.
+    description = "Provides extra functionality for the Nitrokey Pro and Storage";
+    longDescription = ''
+      The nitrokey-app provides a QT system tray widget with which you can
+      access the extra functionality of a Nitrokey Storage or Nitrokey Pro.
+      See https://www.nitrokey.com/ for more information.
     '';
-    homepage         = "https://github.com/Nitrokey/nitrokey-app";
-    license          = licenses.gpl3;
-    maintainers      = with maintainers; [ kaiha panicgh ];
+    homepage = "https://github.com/Nitrokey/nitrokey-app";
+    changelog = "https://github.com/Nitrokey/nitrokey-app/releases/tag/v${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ kaiha panicgh ];
   };
 }
diff --git a/pkgs/tools/security/nitrokey-app2/default.nix b/pkgs/tools/security/nitrokey-app2/default.nix
index 3d35b4d07750c..d56e882cb09ee 100644
--- a/pkgs/tools/security/nitrokey-app2/default.nix
+++ b/pkgs/tools/security/nitrokey-app2/default.nix
@@ -1,22 +1,26 @@
 { lib
-, python3
+, buildPythonApplication
 , fetchFromGitHub
+, pythonOlder
+, pyside6
+, poetry-core
 , pynitrokey
-, wrapQtAppsHook
+, pyudev
+, qt-material
 }:
 
-python3.pkgs.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "nitrokey-app2";
-  version = "2.1.2";
+  version = "2.1.5";
   pyproject = true;
 
-  disabled = python3.pythonOlder "3.9";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Nitrokey";
     repo = "nitrokey-app2";
     rev = "v${version}";
-    hash = "sha256-VyhIFNXxH/FohgjhBeZXoQYppP7PEz+ei0qzsWz1xhk=";
+    hash = "sha256-mR13zUgCdNS09EnpGLrnOnoIn3p6ZM/0fHKg0OUMWj4=";
   };
 
   # https://github.com/Nitrokey/nitrokey-app2/issues/152
@@ -24,36 +28,20 @@ python3.pkgs.buildPythonApplication rec {
   # pythonRelaxDepsHook does not work here, because it runs in postBuild and
   # only modifies the dependencies in the built distribution.
   postPatch = ''
-    substituteInPlace pyproject.toml --replace "pynitrokey ==" "pynitrokey >="
+    substituteInPlace pyproject.toml --replace 'pynitrokey = "' 'pynitrokey = ">='
   '';
 
-  # The pyproject.toml file seems to be incomplete and does not generate
-  # resources (i.e. run pyrcc5 and pyuic5) but the Makefile does.
-  preBuild = ''
-    make build-ui
-  '';
-
-  nativeBuildInputs = with python3.pkgs; [
-    flit-core
-    pyqt5
-    wrapQtAppsHook
+  nativeBuildInputs = [
+    poetry-core
   ];
 
-  dontWrapQtApps = true;
-
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = [
     pynitrokey
     pyudev
-    pyqt5
-    pyqt5-stubs
+    pyside6
     qt-material
   ];
 
-  preFixup = ''
-    wrapQtApp "$out/bin/nitrokeyapp" \
-      --set-default CRYPTOGRAPHY_OPENSSL_NO_LEGACY 1
-  '';
-
   pythonImportsCheck = [
     "nitrokeyapp"
   ];
@@ -63,7 +51,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/Nitrokey/nitrokey-app2";
     changelog = "https://github.com/Nitrokey/nitrokey-app2/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ _999eagle ];
+    maintainers = with maintainers; [ _999eagle panicgh ];
     mainProgram = "nitrokeyapp";
   };
 }
diff --git a/pkgs/tools/security/nmap-formatter/default.nix b/pkgs/tools/security/nmap-formatter/default.nix
index 02379ed53aea6..b78cb2e075d24 100644
--- a/pkgs/tools/security/nmap-formatter/default.nix
+++ b/pkgs/tools/security/nmap-formatter/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nmap-formatter";
-  version = "2.1.3";
+  version = "2.1.6";
 
   src = fetchFromGitHub {
     owner = "vdjagilev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tc946SAWBeKSNgLJZSkEoygxyXm3xbQm3cinIK1uOoY=";
+    hash = "sha256-40ix4D/f63Q5cqVmBvpSmbK2KNXiYLdv/xXBNPJXfac=";
   };
 
-  vendorHash = "sha256-c2n8GlaD6q21gWUqr31UOioZRxO0s0tSpVRKl/YHXZU=";
+  vendorHash = "sha256-OUhvQwC7EJF7CIM7NHCs0TqRTZHTiDupkfYREPaxpXo=";
 
   meta = with lib; {
     description = "Tool that allows you to convert nmap output";
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix
index 1f9084964b296..64dcd4f220bda 100644
--- a/pkgs/tools/security/nmap/default.nix
+++ b/pkgs/tools/security/nmap/default.nix
@@ -26,6 +26,10 @@ stdenv.mkDerivation rec {
     "--without-zenmap"
   ];
 
+  postInstall = ''
+    install -m 444 -D nselib/data/passwords.lst $out/share/wordlists/nmap.lst
+  '';
+
   makeFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "AR=${stdenv.cc.bintools.targetPrefix}ar"
     "RANLIB=${stdenv.cc.bintools.targetPrefix}ranlib"
diff --git a/pkgs/tools/security/notation/default.nix b/pkgs/tools/security/notation/default.nix
index 845f3fbc4b8d5..07c9ef4997172 100644
--- a/pkgs/tools/security/notation/default.nix
+++ b/pkgs/tools/security/notation/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "notation";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "notaryproject";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-mj+LCO6Q4kKfYewPl0R9axZB9O4Yy+GkLlUIDe6yhlI=";
+    hash = "sha256-MJBFdtx+HkPCN1SIohKOy33BW746GNN2fWkr7TIuBmk=";
   };
 
-  vendorHash = "sha256-wQTRgOSOq0LeiSwF5eowaW4R2xCx+kEb0WQ+upsxdAA=";
+  vendorHash = "sha256-USkufc1dG4eyRfRJHSX4mVZHnvOc5onHenF98Aedac4=";
 
   # This is a Go sub-module and cannot be built directly (e2e tests).
   excludedPackages = [ "./test" ];
@@ -33,5 +33,6 @@ buildGoModule rec {
     homepage = "https://notaryproject.dev/";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "notation";
   };
 }
diff --git a/pkgs/tools/security/nsjail/default.nix b/pkgs/tools/security/nsjail/default.nix
index 5abb9012b7d33..23b938a83f9a9 100644
--- a/pkgs/tools/security/nsjail/default.nix
+++ b/pkgs/tools/security/nsjail/default.nix
@@ -4,20 +4,22 @@
 
 stdenv.mkDerivation rec {
   pname = "nsjail";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner           = "google";
     repo            = "nsjail";
     rev             = version;
     fetchSubmodules = true;
-    hash            = "sha256-L5x3rUDd1nXxDjoP/ZErQa02w2MJSkMBlgu00cy1D3M=";
+    hash            = "sha256-/K+qJV5Dq+my45Cpw6czdsWLtO9lnJwZTsOIRt4Iijk=";
   };
 
   nativeBuildInputs = [ autoconf bison flex installShellFiles libtool pkg-config which ];
   buildInputs = [ libnl protobuf protobufc ];
   enableParallelBuilding = true;
 
+  env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error" ];
+
   preBuild = ''
     makeFlagsArray+=(USER_DEFINES='-DNEWUIDMAP_PATH=${shadow}/bin/newuidmap -DNEWGIDMAP_PATH=${shadow}/bin/newgidmap')
   '';
@@ -32,8 +34,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters";
     homepage    = "https://nsjail.dev/";
+    changelog   = "https://github.com/google/nsjail/releases/tag/${version}";
     license     = licenses.asl20;
     maintainers = with maintainers; [ arturcygan bosu c0bw3b ];
     platforms   = platforms.linux;
+    mainProgram = "nsjail";
   };
 }
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index 1f6dd8baeeb1e..56db6fb78b955 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -5,22 +5,26 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.9.15";
+  version = "3.1.9";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
-    repo = pname;
+    repo = "nuclei";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/7013cf9nnDiKqcwFOYZUF1D+wkQKXPBcwz3YhpBUK0=";
+    hash = "sha256-0GQoX4S4k3d7/BJ1KDTKH9UceLL12IHlEAt1E4JRPLA=";
   };
 
-  vendorHash = "sha256-b5CY66c2vfGaqlFENw2lnK47Cf2+buh/LtbJyPSAbOA=";
+  vendorHash = "sha256-0ERUvPUAxj0H62YcRvsfYX8h0Hp/mA6NdE8E/BjPGzw=";
 
-  modRoot = "./v2";
   subPackages = [
     "cmd/nuclei/"
   ];
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   # Test files are not part of the release tarball
   doCheck = false;
 
@@ -37,5 +41,6 @@ buildGoModule rec {
     changelog = "https://github.com/projectdiscovery/nuclei/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab Misaka13514 ];
+    mainProgram = "nuclei";
   };
 }
diff --git a/pkgs/tools/security/oath-toolkit/default.nix b/pkgs/tools/security/oath-toolkit/default.nix
index fe8367ea57e46..3e01af4886d97 100644
--- a/pkgs/tools/security/oath-toolkit/default.nix
+++ b/pkgs/tools/security/oath-toolkit/default.nix
@@ -8,11 +8,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "oath-toolkit";
-  version = "2.6.7";
+  version = "2.6.10";
 
   src = fetchurl {
     url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1aa620k05lsw3l3slkp2mzma40q3p9wginspn9zk8digiz7dzv9n";
+    sha256 = "sha256-hsJyJPfW19rUek9r7mX2uIS/W70VxemM8sxpYl2/I5E=";
   };
 
   buildInputs = [ securityDependency ];
@@ -26,5 +26,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://www.nongnu.org/oath-toolkit/";
     maintainers = with maintainers; [ schnusch ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "oathtool";
   };
 }
diff --git a/pkgs/tools/security/oauth2c/default.nix b/pkgs/tools/security/oauth2c/default.nix
index 5ecfb111f2af4..2cc9a05e3d156 100644
--- a/pkgs/tools/security/oauth2c/default.nix
+++ b/pkgs/tools/security/oauth2c/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "oauth2c";
-  version = "1.11.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "cloudentity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-fNd/fGW/0TXI7c3/Sy9Pxdnh6N/AOHr0LT8aKSj79YM=";
+    hash = "sha256-NNVHEV8qnPv+xXFzPsh1V+fSOQZxpADCRPIUsak5M5M=";
   };
 
-  vendorHash = "sha256-euEmslrSbXPVDNZkIguq+ukt74Um4H0+lIXEyCBorjE=";
+  vendorHash = "sha256-x6cb19rKJXm+EIxJeykhpFmUYOPb/VljzCOVjorP5MQ=";
 
   doCheck = false; # tests want to talk to oauth2c.us.authz.cloudentity.io
 
diff --git a/pkgs/tools/security/onesixtyone/default.nix b/pkgs/tools/security/onesixtyone/default.nix
index 374d1322246bf..1ff1b0266eaf0 100644
--- a/pkgs/tools/security/onesixtyone/default.nix
+++ b/pkgs/tools/security/onesixtyone/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.fishi0x01 ];
+    mainProgram = "onesixtyone";
   };
 }
 
diff --git a/pkgs/tools/security/onioncircuits/default.nix b/pkgs/tools/security/onioncircuits/default.nix
index 7666e86e01206..c1468becc262d 100644
--- a/pkgs/tools/security/onioncircuits/default.nix
+++ b/pkgs/tools/security/onioncircuits/default.nix
@@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
     gobject-introspection
     intltool
     wrapGAppsHook
-    python3.pkgs.distutils_extra
+    python3.pkgs.distutils-extra
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/onlykey-agent/default.nix b/pkgs/tools/security/onlykey-agent/default.nix
index 8d1f00388adbc..c88e1d2b064d9 100644
--- a/pkgs/tools/security/onlykey-agent/default.nix
+++ b/pkgs/tools/security/onlykey-agent/default.nix
@@ -17,11 +17,11 @@ let
 
   # onlykey requires a patched version of libagent
   lib-agent = with python3Packages; libagent.overridePythonAttrs (oa: rec{
-    version = "1.0.4";
+    version = "1.0.6";
     src = fetchPypi {
       inherit version;
       pname = "lib-agent";
-      sha256 = "sha256-MwtufyJVPWuK7bbX+9Kv6wEi/zq4ftXrfjrMOYpcIfc=";
+      sha256 = "sha256-IrJizIHDIPHo4tVduUat7u31zHo3Nt8gcMOyUUqkNu0=";
     };
     propagatedBuildInputs = oa.propagatedBuildInputs or [ ] ++ [
       bech32
@@ -45,11 +45,11 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "onlykey-agent";
-  version = "1.1.13";
+  version = "1.1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-GAb6crtW6rLAbFtdi6fAGCPjXpKFhravguoGjuNcIxc=";
+    sha256 = "sha256-SbGb7CjcD7cFPvASZtip56B4uxRiFKZBvbsf6sb8fds=";
   };
 
   propagatedBuildInputs = with python3Packages; [ lib-agent onlykey-cli ];
@@ -66,7 +66,7 @@ python3Packages.buildPythonApplication rec {
   pythonImportsCheck = [ "onlykey_agent" ];
 
   meta = with lib; {
-    description = " The OnlyKey agent is essentially middleware that lets you use OnlyKey as a hardware SSH/GPG device.";
+    description = "Middleware that lets you use OnlyKey as a hardware SSH/GPG device";
     homepage = "https://github.com/trustcrypto/onlykey-agent";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/pkgs/tools/security/onlykey-cli/default.nix b/pkgs/tools/security/onlykey-cli/default.nix
index bed910da3f778..4d0b0a267a38f 100644
--- a/pkgs/tools/security/onlykey-cli/default.nix
+++ b/pkgs/tools/security/onlykey-cli/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "onlykey-cli";
-  version = "1.2.9";
+  version = "1.2.10";
 
   src = fetchPypi {
     inherit version;
     pname = "onlykey";
-    sha256 = "sha256-92CzDZgtmww0eABtjeBo6HNQ00sijWakjXLPJiOXY/A=";
+    sha256 = "sha256-ZmQnyZx9YlIIxMMdZ0U2zb+QANfcwrtG7iR1LpgzmBQ=";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
 
   # Requires having the physical onlykey (a usb security key)
   doCheck = false;
-  pythonImportsCheck = [ "onlykey.cli" ];
+  pythonImportsCheck = [ "onlykey.client" ];
 
   meta = with lib; {
     description = "OnlyKey client and command-line tool";
diff --git a/pkgs/tools/security/onlykey/default.nix b/pkgs/tools/security/onlykey/default.nix
index 018c53b0c083c..c63173d889b2e 100644
--- a/pkgs/tools/security/onlykey/default.nix
+++ b/pkgs/tools/security/onlykey/default.nix
@@ -1,9 +1,11 @@
 { lib
 , node_webkit
 , pkgs
-, runCommand
+, copyDesktopItems
+, makeDesktopItem
 , stdenv
 , writeShellScript
+, wrapGAppsHook
 }:
 
 let
@@ -47,7 +49,26 @@ let
     ${node_webkit}/bin/nw ${onlykey}/lib/node_modules/${onlykey.packageName}/build
   '';
 in
-runCommand "${onlykey.packageName}-${onlykey.version}" { } ''
-  mkdir -p $out/bin
-  ln -s ${script} $out/bin/onlykey
-''
+stdenv.mkDerivation {
+  pname = "${onlykey.packageName}";
+  inherit (onlykey) version;
+  dontUnpack = true;
+  nativeBuildInputs = [ wrapGAppsHook copyDesktopItems ];
+  desktopItems = [
+    (makeDesktopItem {
+      name = onlykey.packageName;
+      exec = script;
+      icon = "${onlykey}/lib/node_modules/${onlykey.packageName}/resources/onlykey_logo_128.png";
+      desktopName = onlykey.packageName;
+      genericName = onlykey.packageName;
+    })
+  ];
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    ln -s ${script} $out/bin/onlykey
+
+    runHook postInstall
+  '';
+}
diff --git a/pkgs/tools/security/openpgp-card-tools/default.nix b/pkgs/tools/security/openpgp-card-tools/default.nix
index 6a630883580b6..38f814bbd2e2c 100644
--- a/pkgs/tools/security/openpgp-card-tools/default.nix
+++ b/pkgs/tools/security/openpgp-card-tools/default.nix
@@ -12,17 +12,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "openpgp-card-tools";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "openpgp-card";
     repo = "openpgp-card-tools";
     rev = "v${version}";
-    hash = "sha256-ISIABjuh0BC6OUFa5I9Wou+av7Dp4bZH8Aazi6x7cqY=";
+    hash = "sha256-VD0eDq+lfeAu2gY9VZfz2ola3+CJCWerTEaGivpILyo=";
   };
 
-  cargoHash = "sha256-+EEpoI9OQvnJR6bVbEuLn3O7w6BchjBzr+oMGsWdP/k=";
+  cargoHash = "sha256-tfawWfwsdWUOimd97b059HXt83ew6KBouI2MdGN8Knc=";
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
   buildInputs = [ pcsclite nettle ] ++ lib.optionals stdenv.isDarwin [ PCSC ];
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "CLI tools for OpenPGP cards";
     homepage = "https://gitlab.com/openpgp-card/openpgp-card";
-    license = licenses.asl20;
+    license = with licenses ;[ asl20 /* OR */ mit ];
     maintainers = with maintainers; [ nickcao ];
     mainProgram = "opgpcard";
   };
diff --git a/pkgs/tools/security/opensc/default.nix b/pkgs/tools/security/opensc/default.nix
index 9b5b6fba8b24f..856921edbf18f 100644
--- a/pkgs/tools/security/opensc/default.nix
+++ b/pkgs/tools/security/opensc/default.nix
@@ -8,23 +8,15 @@
 
 stdenv.mkDerivation rec {
   pname = "opensc";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "OpenSC";
     repo = "OpenSC";
     rev = version;
-    sha256 = "sha256-Yo8dwk7+d6q+hi7DmJ0GJM6/pmiDOiyEm/tEBSbCU8k=";
+    sha256 = "sha256-1mm0b4AAtX0AgjShpU1FR6e7pUkea5TOJdIGkNQgjuE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2023-2977.patch";
-      url = "https://github.com/OpenSC/OpenSC/commit/81944d1529202bd28359bede57c0a15deb65ba8a.patch";
-      hash = "sha256-rCeYYKPtv3pii5zgDP5x9Kl2r98p3uxyBSCYlPJZR/s=";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config autoreconfHook ];
   buildInputs = [
     zlib readline openssl libassuan
diff --git a/pkgs/tools/security/ospd-openvas/default.nix b/pkgs/tools/security/ospd-openvas/default.nix
index 778d3d7866250..0e4b4b16e7523 100644
--- a/pkgs/tools/security/ospd-openvas/default.nix
+++ b/pkgs/tools/security/ospd-openvas/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ospd-openvas";
-  version = "22.6.0";
+  version = "22.6.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "greenbone";
     repo = "ospd-openvas";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1538XMNnerhfV3xQ8/TyoztCfWnkRvy0p6QtKMQb2p4=";
+    hash = "sha256-SO2+PpxjyP+Yba0X81EgNCOAu7ntlG7zOeWA+7XdRIA=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/tools/security/ossec/agent.nix b/pkgs/tools/security/ossec/agent.nix
new file mode 100644
index 0000000000000..003d2141c567c
--- /dev/null
+++ b/pkgs/tools/security/ossec/agent.nix
@@ -0,0 +1,69 @@
+{ lib, stdenv, fetchFromGitHub, which, pcre2, zlib, ncurses, openssl }:
+let
+  version = "unstable-2023-08-09";
+in
+stdenv.mkDerivation {
+  pname = "ossec-agent";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "ossec";
+    repo = "ossec-hids";
+    rev = "c8a36b0af3d4ee5252855b90236407cbfb996eb2";
+    sha256 = "sha256-AZ8iubyhNHXGR/l+hA61ifNDUoan7AQ42l/uRTt5GmE=";
+  };
+
+  # clear is used during the build process
+  nativeBuildInputs = [ ncurses ];
+
+  buildInputs = [ which pcre2 zlib openssl ];
+
+  # patch to remove root manipulation, install phase which tries to add users to the system, and init phase which tries to modify the system to launch files
+  patches = [ ./no-root.patch ];
+
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: src/common/mgmt/pint-worker-external.po:(.data.rel.local+0x0): multiple definition of
+  #     `PINT_worker_external_impl'; src/common/mgmt/pint-mgmt.po:(.bss+0x20): first defined here
+  env.NIX_CFLAGS_COMPILE = "-fcommon";
+
+  buildPhase = ''
+    mkdir $out
+    export USER_DIR="$out" # just to satisy the script
+    ./install.sh <<EOF
+en
+
+agent
+127.0.0.1
+yes
+yes
+yes
+EOF
+
+  '';
+
+  installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share
+      mv $out/active-response/bin/* $out/bin
+      mv $out/etc $out/share
+      mv $out/queue $out/share
+      mv $out/var $out/share
+      mv $out/agentless $out/share
+      mv $out/.ssh $out/share
+      rm -r $out/active-response
+      rm -r $out/tmp
+
+      runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Open source host-based instrusion detection system";
+    homepage = "https://www.ossec.net";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ happysalada ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/pkgs/tools/security/ossec/default.nix b/pkgs/tools/security/ossec/default.nix
deleted file mode 100644
index 1aa606f592742..0000000000000
--- a/pkgs/tools/security/ossec/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, stdenv, fetchurl, which }:
-
-stdenv.mkDerivation rec {
-  pname = "ossec-client";
-  version = "2.6";
-
-  src = fetchurl {
-    url = "https://www.ossec.net/files/ossec-hids-${version}.tar.gz";
-    sha256 = "0k1b59wdv9h50gbyy88qw3cnpdm8hv0nrl0znm92h9a11i5b39ip";
-  };
-
-  buildInputs = [ which ];
-
-  patches = [ ./no-root.patch ];
-
-  # Workaround build failure on -fno-common toolchains like upstream
-  # gcc-10. Otherwise build fails as:
-  #   ld: src/common/mgmt/pint-worker-external.po:(.data.rel.local+0x0): multiple definition of
-  #     `PINT_worker_external_impl'; src/common/mgmt/pint-mgmt.po:(.bss+0x20): first defined here
-  env.NIX_CFLAGS_COMPILE = "-fcommon";
-
-  buildPhase = ''
-    echo "en
-
-agent
-$out
-no
-127.0.0.1
-yes
-yes
-yes
-
-
-"   | ./install.sh
-  '';
-
-  meta = with lib; {
-    description = "Open source host-based instrusion detection system";
-    homepage = "https://www.ossec.net";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
-  };
-}
-
diff --git a/pkgs/tools/security/ossec/no-root.patch b/pkgs/tools/security/ossec/no-root.patch
index ea6e9c54a9ae5..ef2f28560070f 100644
--- a/pkgs/tools/security/ossec/no-root.patch
+++ b/pkgs/tools/security/ossec/no-root.patch
@@ -1,7 +1,8 @@
-diff -Naur ossec-hids-2.6-orig/install.sh ossec-hids-2.6/install.sh
---- ossec-hids-2.6-orig/install.sh	2011-07-11 15:36:58.000000000 -0400
-+++ ossec-hids-2.6/install.sh	2012-07-09 09:58:57.970692818 -0400
-@@ -119,14 +119,14 @@
+diff --git a/install.sh b/install.sh
+index 387bde1a..cb6dcbf2 100755
+--- a/install.sh
++++ b/install.sh
+@@ -126,14 +126,14 @@ Install()
      # Generate the /etc/ossec-init.conf
      VERSION_FILE="./src/VERSION"
      VERSION=`cat ${VERSION_FILE}`
@@ -12,19 +13,38 @@ diff -Naur ossec-hids-2.6-orig/install.sh ossec-hids-2.6/install.sh
 -    echo "TYPE=\"${INSTYPE}\"" >> ${OSSEC_INIT}
 -    chmod 600 ${OSSEC_INIT}
 -    cp -pr ${OSSEC_INIT} ${INSTALLDIR}${OSSEC_INIT}
--    chmod 644 ${INSTALLDIR}${OSSEC_INIT}
-+    echo chmod 700 ${OSSEC_INIT} > /dev/null 2>&1
-+    echo "DIRECTORY=\"${INSTALLDIR}\"" > ${INSTALLDIR}${OSSEC_INIT}
-+    echo "VERSION=\"${VERSION}\"" >> ${INSTALLDIR}${OSSEC_INIT}
-+    echo "DATE=\"`date`\"" >> ${INSTALLDIR}${OSSEC_INIT}
-+    echo "TYPE=\"${INSTYPE}\"" >> ${INSTALLDIR}${OSSEC_INIT}
-+    echo chmod 600 ${OSSEC_INIT}
-+    echo cp -pr ${OSSEC_INIT} ${INSTALLDIR}${OSSEC_INIT}
-+    echo chmod 644 ${INSTALLDIR}${OSSEC_INIT}
+-    chmod 640 ${INSTALLDIR}${OSSEC_INIT}
++    # chmod 700 ${OSSEC_INIT} > /dev/null 2>&1
++    # echo "DIRECTORY=\"${INSTALLDIR}\"" > ${OSSEC_INIT}
++    # echo "VERSION=\"${VERSION}\"" >> ${OSSEC_INIT}
++    # echo "DATE=\"`date`\"" >> ${OSSEC_INIT}
++    # echo "TYPE=\"${INSTYPE}\"" >> ${OSSEC_INIT}
++    # chmod 600 ${OSSEC_INIT}
++    # cp -pr ${OSSEC_INIT} ${INSTALLDIR}${OSSEC_INIT}
++    # chmod 640 ${INSTALLDIR}${OSSEC_INIT}
  
  
      # If update_rules is set, we need to tweak
-@@ -926,11 +926,6 @@
+@@ -148,12 +148,12 @@ Install()
+     fi
+ 
+     # Calling the init script  to start ossec hids during boot
+-    if [ "X${update_only}" = "X" ]; then
+-        runInit
+-        if [ $? = 1 ]; then
+-            notmodified="yes"
+-        fi
+-    fi
++    # if [ "X${update_only}" = "X" ]; then
++    #     runInit
++    #     if [ $? = 1 ]; then
++    #         notmodified="yes"
++    #     fi
++    # fi
+ 
+ }
+ 
+@@ -965,10 +965,10 @@ main()
          catError "0x1-location";
      fi
  
@@ -32,145 +52,246 @@ diff -Naur ossec-hids-2.6-orig/install.sh ossec-hids-2.6/install.sh
 -    if [ ! "X$ME" = "Xroot" ]; then
 -        catError "0x2-beroot";
 -    fi
--
++    # # Must be root
++    # if [ ! "X$ME" = "Xroot" ]; then
++    #     catError "0x2-beroot";
++    # fi
+ 
      # Checking dependencies
      checkDependencies
- 
-diff -Naur ossec-hids-2.6-orig/src/InstallAgent.sh ossec-hids-2.6/src/InstallAgent.sh
---- ossec-hids-2.6-orig/src/InstallAgent.sh	2011-07-11 15:36:58.000000000 -0400
-+++ ossec-hids-2.6/src/InstallAgent.sh	2012-07-09 09:56:12.061870552 -0400
-@@ -80,7 +80,7 @@
+diff --git a/src/Makefile b/src/Makefile
+index 7fc04c0b..0eb27a0a 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -144,7 +144,7 @@ endif
+ ifeq (${uname_S},AIX)
+         INSTALL_CMD?=./install-shim-aix.ksh -m $(1) -o $(2) -g $(3)
  else
-     grep "^${USER}" /etc/passwd > /dev/null 2>&1
-     if [ ! $? = 0 ]; then
--	/usr/sbin/groupadd ${GROUP}
-+	echo /usr/sbin/groupadd ${GROUP}
- 
-     # We first check if /sbin/nologin is present. If it is not,
-     # we look for bin/false. If none of them is present, we
-@@ -93,7 +93,7 @@
-             OSMYSHELL="/bin/false"
-         fi
-     fi        
--	/usr/sbin/useradd -d ${DIR} -s ${OSMYSHELL} -g ${GROUP} ${USER}
-+	echo /usr/sbin/useradd -d ${DIR} -s ${OSMYSHELL} -g ${GROUP} ${USER}
-     fi
- fi
- 
-@@ -105,31 +105,31 @@
- done
- 
- # Default for all directories
--chmod -R 550 ${DIR}
--chown -R root:${GROUP} ${DIR}
-+echo chmod -R 550 ${DIR}
-+echo chown -R root:${GROUP} ${DIR}
- 
- # To the ossec queue (default for agentd to read)
--chown -R ${USER}:${GROUP} ${DIR}/queue/ossec
--chmod -R 770 ${DIR}/queue/ossec
-+echo chown -R ${USER}:${GROUP} ${DIR}/queue/ossec
-+echo chmod -R 770 ${DIR}/queue/ossec
- 
- # For the logging user
--chown -R ${USER}:${GROUP} ${DIR}/logs
--chmod -R 750 ${DIR}/logs
--chmod -R 775 ${DIR}/queue/rids
--touch ${DIR}/logs/ossec.log
--chown ${USER}:${GROUP} ${DIR}/logs/ossec.log
--chmod 664 ${DIR}/logs/ossec.log
+-        INSTALL_CMD?=install -m $(1) -o $(2) -g $(3)
++        INSTALL_CMD?=install
+ endif
+ 
+ ifdef DEBUGAD
+@@ -404,10 +404,10 @@ endif
+ install: install-${TARGET}
+ 
+ install-agent: install-common
+-	$(call INSTALL_CMD,0550,root,0) ossec-agentd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) agent-auth ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-agentd ${PREFIX}/bin
++	$(call INSTALL_CMD) agent-auth ${PREFIX}/bin
+ 
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/rids
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/rids
+ 
+ install-local: install-server-generic
+ 
+@@ -416,133 +416,126 @@ install-hybrid: install-server-generic
+ install-server: install-server-generic
+ 
+ install-common: build
+-	./init/adduser.sh ${OSSEC_USER} ${OSSEC_USER_MAIL} ${OSSEC_USER_REM} ${OSSEC_GROUP} ${PREFIX}
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs
+-	$(call INSTALL_CMD,0660,${OSSEC_USER},${OSSEC_GROUP}) /dev/null ${PREFIX}/logs/ossec.log
 -
--chown -R ${USER}:${GROUP} ${DIR}/queue/diff
--chmod -R 750 ${DIR}/queue/diff
--chmod 740 ${DIR}/queue/diff/* > /dev/null 2>&1
-+echo chown -R ${USER}:${GROUP} ${DIR}/logs
-+echo chmod -R 750 ${DIR}/logs
-+echo chmod -R 775 ${DIR}/queue/rids
-+echo touch ${DIR}/logs/ossec.log
-+echo chown ${USER}:${GROUP} ${DIR}/logs/ossec.log
-+echo chmod 664 ${DIR}/logs/ossec.log
-+
-+echo chown -R ${USER}:${GROUP} ${DIR}/queue/diff
-+echo chmod -R 750 ${DIR}/queue/diff
-+echo chmod 740 ${DIR}/queue/diff/* "> /dev/null 2>&1"
+-	$(call INSTALL_CMD,0550,root,0) -d ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-logcollector ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-syscheckd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-execd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) manage_agents ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ../contrib/util.sh ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) ${OSSEC_CONTROL_SRC} ${PREFIX}/bin/ossec-control
++	$(call INSTALL_CMD) -d ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-logcollector ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-syscheckd ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-execd ${PREFIX}/bin
++	$(call INSTALL_CMD) manage_agents ${PREFIX}/bin
++	$(call INSTALL_CMD) ../contrib/util.sh ${PREFIX}/bin/
++	$(call INSTALL_CMD) ${OSSEC_CONTROL_SRC} ${PREFIX}/bin/ossec-control
  
+ ifeq (${LUA_ENABLE},yes)
+-	$(call INSTALL_CMD,0550,root,0) -d ${PREFIX}/lua
+-	$(call INSTALL_CMD,0550,root,0) -d ${PREFIX}/lua/native
+-	$(call INSTALL_CMD,0550,root,0) -d ${PREFIX}/lua/compiled
+-	$(call INSTALL_CMD,0550,root,0) ${EXTERNAL_LUA}src/ossec-lua ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) ${EXTERNAL_LUA}src/ossec-luac ${PREFIX}/bin/
++	$(call INSTALL_CMD) -d ${PREFIX}/lua
++	$(call INSTALL_CMD) -d ${PREFIX}/lua/native
++	$(call INSTALL_CMD) -d ${PREFIX}/lua/compiled
++	$(call INSTALL_CMD) ${EXTERNAL_LUA}src/ossec-lua ${PREFIX}/bin/
++	$(call INSTALL_CMD) ${EXTERNAL_LUA}src/ossec-luac ${PREFIX}/bin/
+ endif
  
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/queue
+-	$(call INSTALL_CMD,0770,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/alerts
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/ossec
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/syscheck
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/diff
++	$(call INSTALL_CMD) -d ${PREFIX}/queue
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/alerts
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/ossec
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/syscheck
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/diff
  
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/etc
++	$(call INSTALL_CMD) -d ${PREFIX}/etc
+ ifeq (${INSTALL_LOCALTIME},yes)
+-	$(call INSTALL_CMD,0440,root,${OSSEC_GROUP}) /etc/localtime ${PREFIX}/etc
++	$(call INSTALL_CMD) /etc/localtime ${PREFIX}/etc
+ endif
+ ifeq (${INSTALL_RESOLVCONF},yes)
+-	$(call INSTALL_CMD,0440,root,${OSSEC_GROUP}) /etc/resolv.conf ${PREFIX}/etc
++	$(call INSTALL_CMD) /etc/resolv.conf ${PREFIX}/etc
+ endif
  
- # For the etc dir
--chmod 550 ${DIR}/etc
--chown -R root:${GROUP} ${DIR}/etc
-+echo chmod 550 ${DIR}/etc
-+echo chown -R root:${GROUP} ${DIR}/etc
+-	$(call INSTALL_CMD,1550,root,${OSSEC_GROUP}) -d ${PREFIX}/tmp
++	$(call INSTALL_CMD) -d ${PREFIX}/tmp
+ 
+ ifneq (,$(wildcard /etc/TIMEZONE))
+-	$(call INSTALL_CMD,440,root,${OSSEC_GROUP}) /etc/TIMEZONE ${PREFIX}/etc/
++	$(call INSTALL_CMD) /etc/TIMEZONE ${PREFIX}/etc/
+ endif
+ # Solaris Needs some extra files
+ ifeq (${uname_S},SunOS)
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/usr/share/lib/zoneinfo/
++	$(call INSTALL_CMD) -d ${PREFIX}/usr/share/lib/zoneinfo/
+ 	cp -r /usr/share/lib/zoneinfo/* ${PREFIX}/usr/share/lib/zoneinfo/
+ endif
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) -b ../etc/internal_options.conf ${PREFIX}/etc/
++	$(call INSTALL_CMD) -b ../etc/internal_options.conf ${PREFIX}/etc/
+ ifeq (,$(wildcard ${PREFIX}/etc/local_internal_options.conf))
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ../etc/local_internal_options.conf ${PREFIX}/etc/local_internal_options.conf
++	$(call INSTALL_CMD) ../etc/local_internal_options.conf ${PREFIX}/etc/local_internal_options.conf
+ endif
+ ifeq (,$(wildcard ${PREFIX}/etc/client.keys))
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) /dev/null ${PREFIX}/etc/client.keys
++	$(call INSTALL_CMD) /dev/null ${PREFIX}/etc/client.keys
+ endif
+ ifeq (,$(wildcard ${PREFIX}/etc/ossec.conf))
+ ifneq (,$(wildcard ../etc/ossec.mc))
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ../etc/ossec.mc ${PREFIX}/etc/ossec.conf
++	$(call INSTALL_CMD) ../etc/ossec.mc ${PREFIX}/etc/ossec.conf
+ else
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ${OSSEC_CONF_SRC} ${PREFIX}/etc/ossec.conf
++	$(call INSTALL_CMD) ${OSSEC_CONF_SRC} ${PREFIX}/etc/ossec.conf
+ endif
+ endif
+ 
+-	$(call INSTALL_CMD,0770,root,${OSSEC_GROUP}) -d ${PREFIX}/etc/shared
+-	$(call INSTALL_CMD,0640,${OSSEC_USER},${OSSEC_GROUP}) rootcheck/db/*.txt ${PREFIX}/etc/shared/
++	$(call INSTALL_CMD) -d ${PREFIX}/etc/shared
++	$(call INSTALL_CMD) rootcheck/db/*.txt ${PREFIX}/etc/shared/
+ 
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/active-response
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/active-response/bin
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/agentless
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) agentlessd/scripts/* ${PREFIX}/agentless/
++	$(call INSTALL_CMD) -d ${PREFIX}/active-response
++	$(call INSTALL_CMD) -d ${PREFIX}/active-response/bin
++	$(call INSTALL_CMD) -d ${PREFIX}/agentless
++	$(call INSTALL_CMD) agentlessd/scripts/* ${PREFIX}/agentless/
+ 
+-	$(call INSTALL_CMD,0700,root,${OSSEC_GROUP}) -d ${PREFIX}/.ssh
++	$(call INSTALL_CMD) -d ${PREFIX}/.ssh
+ 
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) ../active-response/*.sh ${PREFIX}/active-response/bin/
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) ../active-response/firewalls/*.sh ${PREFIX}/active-response/bin/
++	$(call INSTALL_CMD) ../active-response/*.sh ${PREFIX}/active-response/bin/
++	$(call INSTALL_CMD) ../active-response/firewalls/*.sh ${PREFIX}/active-response/bin/
+ 
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/var
+-	$(call INSTALL_CMD,0770,root,${OSSEC_GROUP}) -d ${PREFIX}/var/run
+-
+-	./init/fw-check.sh execute
++	$(call INSTALL_CMD) -d ${PREFIX}/var
++	$(call INSTALL_CMD) -d ${PREFIX}/var/run
  
- ls /etc/localtime > /dev/null 2>&1
- if [ $? = 0 ]; then
-@@ -167,25 +167,25 @@
- cp -pr ../etc/client.keys ${DIR}/etc/ > /dev/null 2>&1
- cp -pr agentlessd/scripts/* ${DIR}/agentless/
  
--chown root:${GROUP} ${DIR}/etc/internal_options.conf
--chown root:${GROUP} ${DIR}/etc/local_internal_options.conf > /dev/null 2>&1
--chown root:${GROUP} ${DIR}/etc/client.keys > /dev/null 2>&1
--chown root:${GROUP} ${DIR}/agentless/*
--chown ${USER}:${GROUP} ${DIR}/.ssh
--chown -R root:${GROUP} ${DIR}/etc/shared
+ 
+ install-server-generic: install-common
+-	$(call INSTALL_CMD,0660,${OSSEC_USER},${OSSEC_GROUP}) /dev/null ${PREFIX}/logs/active-responses.log
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs/archives
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs/alerts
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs/firewall
+-
+-	$(call INSTALL_CMD,0550,root,0) ossec-agentlessd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-analysisd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-monitord ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-reportd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-maild ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-remoted ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-logtest ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-csyslogd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-authd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-dbd ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) ossec-makelists ${PREFIX}/bin
+-	$(call INSTALL_CMD,0550,root,0) verify-agent-conf ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) clear_stats ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) list_agents ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) ossec-regex ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) syscheck_update ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) agent_control ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) syscheck_control ${PREFIX}/bin/
+-	$(call INSTALL_CMD,0550,root,0) rootcheck_control ${PREFIX}/bin/
 -
--chmod 550 ${DIR}/etc
--chmod 440 ${DIR}/etc/internal_options.conf
--chmod 440 ${DIR}/etc/local_internal_options.conf > /dev/null 2>&1
--chmod 440 ${DIR}/etc/client.keys > /dev/null 2>&1
--chmod -R 770 ${DIR}/etc/shared # ossec must be able to write to it
--chmod 550 ${DIR}/agentless/*
--chmod 700 ${DIR}/.ssh
-+echo chown root:${GROUP} ${DIR}/etc/internal_options.conf
-+echo chown root:${GROUP} ${DIR}/etc/local_internal_options.conf "> /dev/null 2>&1"
-+echo chown root:${GROUP} ${DIR}/etc/client.keys "> /dev/null 2>&1"
-+echo chown root:${GROUP} ${DIR}/agentless/*
-+echo chown ${USER}:${GROUP} ${DIR}/.ssh
-+echo chown -R root:${GROUP} ${DIR}/etc/shared
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/stats
+-	$(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/rules
++	$(call INSTALL_CMD) /dev/null ${PREFIX}/logs/active-responses.log
++	$(call INSTALL_CMD) -d ${PREFIX}/logs/archives
++	$(call INSTALL_CMD) -d ${PREFIX}/logs/alerts
++	$(call INSTALL_CMD) -d ${PREFIX}/logs/firewall
 +
-+echo chmod 550 ${DIR}/etc
-+echo chmod 440 ${DIR}/etc/internal_options.conf
-+echo chmod 440 ${DIR}/etc/local_internal_options.conf > /dev/null 2>&1
-+echo chmod 440 ${DIR}/etc/client.keys > /dev/null 2>&1
-+echo chmod -R 770 ${DIR}/etc/shared # ossec must be able to write to it
-+echo chmod 550 ${DIR}/agentless/*
-+echo chmod 700 ${DIR}/.ssh
- 
- 
- # For the /var/run
--chmod 770 ${DIR}/var/run
--chown root:${GROUP} ${DIR}/var/run
-+echo chmod 770 ${DIR}/var/run
-+echo chown root:${GROUP} ${DIR}/var/run
- 
- 
- # Moving the binary files
-@@ -201,11 +201,11 @@
- sh ./init/fw-check.sh execute > /dev/null
- cp -pr ../active-response/*.sh ${DIR}/active-response/bin/
- cp -pr ../active-response/firewalls/*.sh ${DIR}/active-response/bin/
--chmod 755 ${DIR}/active-response/bin/*
--chown root:${GROUP} ${DIR}/active-response/bin/*
-+echo chmod 755 ${DIR}/active-response/bin/*
-+echo chown root:${GROUP} ${DIR}/active-response/bin/*
- 
--chown root:${GROUP} ${DIR}/bin/*
--chmod 550 ${DIR}/bin/*
-+echo chown root:${GROUP} ${DIR}/bin/*
-+echo chmod 550 ${DIR}/bin/*
- 
- 
- # Moving the config file
-@@ -221,8 +221,8 @@
- else    
-     cp -pr ../etc/ossec-agent.conf ${DIR}/etc/ossec.conf
- fi
--chown root:${GROUP} ${DIR}/etc/ossec.conf
--chmod 440 ${DIR}/etc/ossec.conf
-+echo chown root:${GROUP} ${DIR}/etc/ossec.conf
-+echo chmod 440 ${DIR}/etc/ossec.conf
++	$(call INSTALL_CMD) ossec-agentlessd ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-analysisd ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-monitord ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-reportd ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-maild ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-remoted ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-logtest ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-csyslogd ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-authd ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-dbd ${PREFIX}/bin
++	$(call INSTALL_CMD) ossec-makelists ${PREFIX}/bin
++	$(call INSTALL_CMD) verify-agent-conf ${PREFIX}/bin/
++	$(call INSTALL_CMD) clear_stats ${PREFIX}/bin/
++	$(call INSTALL_CMD) list_agents ${PREFIX}/bin/
++	$(call INSTALL_CMD) ossec-regex ${PREFIX}/bin/
++	$(call INSTALL_CMD) syscheck_update ${PREFIX}/bin/
++	$(call INSTALL_CMD) agent_control ${PREFIX}/bin/
++	$(call INSTALL_CMD) syscheck_control ${PREFIX}/bin/
++	$(call INSTALL_CMD) rootcheck_control ${PREFIX}/bin/
++
++	$(call INSTALL_CMD) -d ${PREFIX}/stats
++	$(call INSTALL_CMD) -d ${PREFIX}/rules
+ ifneq (,$(wildcard ${PREFIX}/rules/local_rules.xml))
+ 	cp ${PREFIX}/rules/local_rules.xml ${PREFIX}/rules/local_rules.xml.installbackup
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) -b ../etc/rules/*.xml ${PREFIX}/rules
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ${PREFIX}/rules/local_rules.xml.installbackup ${PREFIX}/rules/local_rules.xml
++	$(call INSTALL_CMD) -b ../etc/rules/*.xml ${PREFIX}/rules
++	$(call INSTALL_CMD) ${PREFIX}/rules/local_rules.xml.installbackup ${PREFIX}/rules/local_rules.xml
+ 	rm ${PREFIX}/rules/local_rules.xml.installbackup
+ else
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) -b ../etc/rules/*.xml ${PREFIX}/rules
++	$(call INSTALL_CMD) -b ../etc/rules/*.xml ${PREFIX}/rules
+ endif
+ 
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/fts
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/fts
+ 
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/rootcheck
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/rootcheck
+ 
+-	$(call INSTALL_CMD,0750,${OSSEC_USER_REM},${OSSEC_GROUP}) -d ${PREFIX}/queue/agent-info
+-	$(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/agentless
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/agent-info
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/agentless
+ 
+-	$(call INSTALL_CMD,0750,${OSSEC_USER_REM},${OSSEC_GROUP}) -d ${PREFIX}/queue/rids
++	$(call INSTALL_CMD) -d ${PREFIX}/queue/rids
  
+-	$(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ../etc/decoder.xml ${PREFIX}/etc/
++	$(call INSTALL_CMD) ../etc/decoder.xml ${PREFIX}/etc/
  
+ 	rm -f ${PREFIX}/etc/shared/merged.mg
  
diff --git a/pkgs/tools/security/ossec/server.nix b/pkgs/tools/security/ossec/server.nix
new file mode 100644
index 0000000000000..1a7a3e8136758
--- /dev/null
+++ b/pkgs/tools/security/ossec/server.nix
@@ -0,0 +1,70 @@
+{ lib, stdenv, fetchFromGitHub, which, pcre2, zlib, ncurses, openssl }:
+let
+  version = "unstable-2023-08-09";
+in
+stdenv.mkDerivation {
+  pname = "ossec-server";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "ossec";
+    repo = "ossec-hids";
+    rev = "c8a36b0af3d4ee5252855b90236407cbfb996eb2";
+    sha256 = "sha256-AZ8iubyhNHXGR/l+hA61ifNDUoan7AQ42l/uRTt5GmE=";
+  };
+
+  # clear is used during the build process
+  nativeBuildInputs = [ ncurses ];
+
+  buildInputs = [ which pcre2 zlib openssl ];
+
+  # patch to remove root manipulation, install phase which tries to add users to the system, and init phase which tries to modify the system to launch files
+  patches = [ ./no-root.patch ];
+
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: src/common/mgmt/pint-worker-external.po:(.data.rel.local+0x0): multiple definition of
+  #     `PINT_worker_external_impl'; src/common/mgmt/pint-mgmt.po:(.bss+0x20): first defined here
+  env.NIX_CFLAGS_COMPILE = "-fcommon";
+
+  buildPhase = ''
+    mkdir -p $out/logs
+    export USER_DIR="$out" # just to satisy the script
+    ./install.sh <<EOF
+en
+
+server
+n
+n
+EOF
+  '';
+
+  installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share
+      mv $out/active-response/bin/* $out/bin
+      mv $out/etc $out/share
+      mv $out/queue $out/share
+      mv $out/var $out/share
+      mv $out/agentless $out/share
+      mv $out/.ssh $out/share
+      mv $out/logs $out/share
+      mv $out/rules $out/share
+      mv $out/stats $out/share
+      rm -r $out/active-response
+      rm -r $out/tmp
+      ls -lah $out
+
+      runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Open source host-based instrusion detection system";
+    homepage = "https://www.ossec.net";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ happysalada ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/pkgs/tools/security/osv-scanner/default.nix b/pkgs/tools/security/osv-scanner/default.nix
index 1397405dd8ff6..2ce9241d18acc 100644
--- a/pkgs/tools/security/osv-scanner/default.nix
+++ b/pkgs/tools/security/osv-scanner/default.nix
@@ -6,16 +6,16 @@
 }:
 buildGoModule rec {
   pname = "osv-scanner";
-  version = "1.4.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-UJrqSzJ024IiQwuPOoxNGgTNNfhb00KjtIHQb5qpDPQ=";
+    hash = "sha256-ddzdOk2sHNzjCM4cLJY+H9h13MjamlC1RYcnOcDGV4M=";
   };
 
-  vendorHash = "sha256-oT4pjsEfjlPZyVo7Ic0rpTEK/sSUz1ShWk7fOJq+EQ8=";
+  vendorHash = "sha256-9cE4UcQipJYwQDZA4jlcV68BBTgft7oRVlngg/PAmWI=";
 
   subPackages = [
     "cmd/osv-scanner"
@@ -24,7 +24,7 @@ buildGoModule rec {
   ldflags = [
     "-s"
     "-w"
-    "-X main.version=${version}"
+    "-X github.com/google/osv-scanner/internal/version.OSVVersion=${version}"
     "-X main.commit=n/a"
     "-X main.date=1970-01-01T00:00:00Z"
   ];
diff --git a/pkgs/tools/security/otpauth/default.nix b/pkgs/tools/security/otpauth/default.nix
index 032372d87e92c..e4ffadef63e00 100644
--- a/pkgs/tools/security/otpauth/default.nix
+++ b/pkgs/tools/security/otpauth/default.nix
@@ -5,17 +5,16 @@
 
 buildGoModule rec {
   pname = "otpauth";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "dim13";
     repo = "otpauth";
     rev = "v${version}";
-    sha256 = "sha256-jeKxCuE3cA/oTEKwdrCGPchsrtaMyirTzv8oLl9gxtA=";
+    sha256 = "sha256-1+A1oXY5sKMr9dVa/4vB+ZkfZSDdhag5y5LfM7OJmKo=";
   };
 
-  vendorHash = "sha256-jnIq7Zc2MauJReJ9a8TeqXXsvHixsBB+znmXAxcpqUQ=";
-  doCheck = true;
+  vendorHash = "sha256-ZRCwZGlWzlWh+E3KUH83639Tfck7bwE36wXVnG7EQIE=";
 
   meta = with lib; {
     description = "Google Authenticator migration decoder";
diff --git a/pkgs/tools/security/paperkey/default.nix b/pkgs/tools/security/paperkey/default.nix
index 766b570a074e1..8e86415cb9e80 100644
--- a/pkgs/tools/security/paperkey/default.nix
+++ b/pkgs/tools/security/paperkey/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.jabberwocky.com/software/paperkey/";
     license = licenses.gpl2;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ skeidel ];
+    maintainers = with maintainers; [ AndersonTorres peterhoeg ];
   };
 }
diff --git a/pkgs/tools/security/parsero/default.nix b/pkgs/tools/security/parsero/default.nix
index a8cd9c39eb134..2c3323f25e525 100644
--- a/pkgs/tools/security/parsero/default.nix
+++ b/pkgs/tools/security/parsero/default.nix
@@ -24,5 +24,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/behindthefirewalls/Parsero";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ emilytrau fab ];
+    mainProgram = "parsero";
   };
 }
diff --git a/pkgs/tools/security/pass/extensions/audit/default.nix b/pkgs/tools/security/pass/extensions/audit/default.nix
index c9bbabd5fb2f8..365f81759cce1 100644
--- a/pkgs/tools/security/pass/extensions/audit/default.nix
+++ b/pkgs/tools/security/pass/extensions/audit/default.nix
@@ -41,12 +41,12 @@ in stdenv.mkDerivation rec {
   installFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" ];
   postInstall = ''
     wrapProgram $out/lib/password-store/extensions/audit.bash \
-      --prefix PYTHONPATH : "$out/lib/${pythonEnv.libPrefix}/site-packages" \
+      --prefix PYTHONPATH : "$out/${pythonEnv.sitePackages}" \
       --run "export COMMAND"
   '';
 
   meta = with lib; {
-    description = "Pass extension for auditing your password repository.";
+    description = "Pass extension for auditing your password repository";
     homepage = "https://github.com/roddhjav/pass-audit";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/security/pass/extensions/default.nix b/pkgs/tools/security/pass/extensions/default.nix
index 96c252156de8b..f7ac0a3d16ba0 100644
--- a/pkgs/tools/security/pass/extensions/default.nix
+++ b/pkgs/tools/security/pass/extensions/default.nix
@@ -12,4 +12,5 @@ with pkgs;
   pass-tomb = callPackage ./tomb.nix {};
   pass-update = callPackage ./update.nix {};
   pass-genphrase = callPackage ./genphrase.nix {};
+  pass-file = callPackage ./file.nix {};
 }
diff --git a/pkgs/tools/security/pass/extensions/file.nix b/pkgs/tools/security/pass/extensions/file.nix
new file mode 100644
index 0000000000000..1c07e289ad28b
--- /dev/null
+++ b/pkgs/tools/security/pass/extensions/file.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "pass-file";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "dvogt23";
+    repo = pname;
+    rev = version;
+    hash = "sha256-18KvmcfLwelyk9RV/IMaj6O/nkQEQz84eUEB/mRaKE4=";
+  };
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A pass extension that allows to add files to password-store";
+    homepage = "https://github.com/dvogt23/pass-file";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ taranarmo ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/security/pass/rofi-pass.nix b/pkgs/tools/security/pass/rofi-pass.nix
index 6b0a975099f34..f23d27314eefa 100644
--- a/pkgs/tools/security/pass/rofi-pass.nix
+++ b/pkgs/tools/security/pass/rofi-pass.nix
@@ -29,13 +29,13 @@ assert lib.assertOneOf "backend" backend [ "x11" "wayland" ];
 
 stdenv.mkDerivation {
   pname = "rofi-pass";
-  version = "unstable-2023-07-04";
+  version = "unstable-2023-07-07";
 
   src = fetchFromGitHub {
     owner = "carnager";
     repo = "rofi-pass";
-    rev = "fa16c0211d898d337e76397d22de4f92e2405ede";
-    hash = "sha256-GGa8ZNHZZD/sU+oL5ekHXxAe3bpX/42x6zO2LJuypNw=";
+    rev = "e77cbdbe0e885f0b1daba3a0b6bae793cc2b1ba3";
+    hash = "sha256-zmNuFE+++tf4pKTXSTc7s8R9rvI+XwgWl8mCEPaaIRM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/pass/wofi-pass.nix b/pkgs/tools/security/pass/wofi-pass.nix
new file mode 100644
index 0000000000000..b6edce34d20c9
--- /dev/null
+++ b/pkgs/tools/security/pass/wofi-pass.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pass-wayland
+, coreutils
+, gnugrep
+, libnotify
+, pwgen
+, findutils
+, makeWrapper
+, wl-clipboard
+, wtype
+, wofi
+, extensions ? exts: []
+}:
+
+let
+  wrapperPath = lib.makeBinPath [
+    coreutils
+    findutils
+    gnugrep
+    libnotify
+    pwgen
+    wofi
+    wl-clipboard
+    wtype
+    (pass-wayland.withExtensions extensions)
+  ];
+in
+stdenv.mkDerivation rec {
+  pname = "wofi-pass";
+  version = "23.1.4";
+
+  src = fetchFromGitHub {
+    owner = "schmidtandreas";
+    repo = "wofi-pass";
+    rev = "v${version}";
+    sha256 = "sha256-Ycu1NFHoglJdOzGuJ7yfmDo1+f+FMPkpQXJuz6nvtig=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -Dm755 wofi-pass -t $out/bin
+    install -Dm755 wofi-pass.conf -t $out/share/doc/wofi-pass/wofi-pass.conf
+  '';
+
+  fixupPhase = ''
+    patchShebangs $out/bin
+
+    wrapProgram $out/bin/wofi-pass \
+      --prefix PATH : "${wrapperPath}"
+  '';
+
+  meta = {
+    description = "A script to make wofi work with password-store";
+    homepage = "https://github.com/schmidtandreas/wofi-pass";
+    maintainers = with lib.maintainers; [ akechishiro ];
+    license = lib.licenses.gpl2Plus;
+    platforms = with lib.platforms; linux;
+    mainProgram = "wofi-pass";
+  };
+}
diff --git a/pkgs/tools/security/pass2csv/default.nix b/pkgs/tools/security/pass2csv/default.nix
index 95649695bfffb..6a1d4f5a27f45 100644
--- a/pkgs/tools/security/pass2csv/default.nix
+++ b/pkgs/tools/security/pass2csv/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonApplication rec {
   pname = "pass2csv";
-  version = "1.0.0";
+  version = "1.1.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-a/PQl/nqdj9xOM2hfAIiLuGy5F4KmEWFJihZ4gilaJw=";
+    sha256 = "sha256-sJX09gyyqCszjypRnJj40BzRl8xW963hSbuGDekxGdA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/passage/default.nix b/pkgs/tools/security/passage/default.nix
index e2570c2adf4b4..1d6bdfa225aab 100644
--- a/pkgs/tools/security/passage/default.nix
+++ b/pkgs/tools/security/passage/default.nix
@@ -5,6 +5,12 @@
 , substituteAll
 , age
 , getopt
+, coreutils
+, findutils
+, gnugrep
+, gnused
+, qrencode ? null
+, wl-clipboard ? null
 , git ? null
 , xclip ? null
 # Used to pretty-print list of all stored passwords, but is not needed to fetch
@@ -32,7 +38,18 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ makeBinaryWrapper ];
 
-  extraPath = lib.makeBinPath [ age git xclip tree ];
+  extraPath = lib.makeBinPath [
+    age
+    coreutils
+    findutils
+    git
+    gnugrep
+    gnused
+    qrencode
+    tree
+    wl-clipboard
+    xclip
+  ];
 
   # Using $0 is bad, it causes --help to mention ".passage-wrapped".
   postInstall = ''
@@ -46,8 +63,9 @@ stdenv.mkDerivation {
     description = "Stores, retrieves, generates, and synchronizes passwords securely";
     homepage    = "https://github.com/FiloSottile/passage";
     license     = licenses.gpl2Plus;
-    maintainers = with maintainers; [ kaction ];
+    maintainers = with maintainers; [ kaction ma27 ];
     platforms   = platforms.unix;
+    mainProgram = "passage";
 
     longDescription = ''
       passage is a fork of password-store (https://www.passwordstore.org) that uses
diff --git a/pkgs/tools/security/passff-host/default.nix b/pkgs/tools/security/passff-host/default.nix
index 4eb615b79032b..bc882cb419f6e 100644
--- a/pkgs/tools/security/passff-host/default.nix
+++ b/pkgs/tools/security/passff-host/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "passff-host";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "passff";
     repo = pname;
     rev = version;
-    sha256 = "sha256-1JPToJF/ruu69TEZAAvV3Zl0qcTpEyMb2qQDAWWgKNw=";
+    sha256 = "sha256-P5h0B5ilwp3OVyDHIOQ23Zv4eLjN4jFkdZF293FQnNE=";
   };
 
   buildInputs = [ python3 ];
diff --git a/pkgs/tools/security/pcsc-tools/default.nix b/pkgs/tools/security/pcsc-tools/default.nix
new file mode 100644
index 0000000000000..c479caa0a6137
--- /dev/null
+++ b/pkgs/tools/security/pcsc-tools/default.nix
@@ -0,0 +1,96 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoconf-archive
+, autoreconfHook
+, gobject-introspection
+, makeWrapper
+, pkg-config
+, wrapGAppsHook
+, systemd
+, dbus
+, pcsclite
+, PCSC
+, wget
+, coreutils
+, perlPackages
+, testers
+, nix-update-script
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "pcsc-tools";
+  version = "1.7.1";
+
+  src = fetchFromGitHub {
+    owner = "LudovicRousseau";
+    repo = "pcsc-tools";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-+cvgSNlSYSJ2Zr2iWk96AacyQ38ru9/RK8yeK3ceqCo=";
+  };
+
+  configureFlags = [
+    "--datarootdir=${placeholder "out"}/share"
+  ];
+
+  buildInputs = [ dbus perlPackages.perl pcsclite ]
+    ++ lib.optional stdenv.isDarwin PCSC
+    ++ lib.optional stdenv.isLinux systemd;
+
+  nativeBuildInputs = [
+    autoconf-archive
+    autoreconfHook
+    gobject-introspection
+    makeWrapper
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/scriptor \
+      --set PERL5LIB "${with perlPackages; makePerlPath [ ChipcardPCSC libintl-perl ]}"
+
+    wrapProgram $out/bin/gscriptor \
+      ''${makeWrapperArgs[@]} \
+      --set PERL5LIB "${with perlPackages; makePerlPath [
+          ChipcardPCSC
+          libintl-perl
+          GlibObjectIntrospection
+          Glib
+          Gtk3
+          Pango
+          Cairo
+          CairoGObject
+      ]}"
+
+    wrapProgram $out/bin/ATR_analysis \
+      --set PERL5LIB "${with perlPackages; makePerlPath [ ChipcardPCSC libintl-perl ]}"
+
+    wrapProgram $out/bin/pcsc_scan \
+      --prefix PATH : "$out/bin:${lib.makeBinPath [ coreutils wget ]}"
+
+    install -Dm444 -t $out/share/pcsc smartcard_list.txt
+  '';
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      command = "pcsc_scan -V";
+    };
+    updateScript = nix-update-script { };
+  };
+
+  meta = with lib; {
+    description = "Tools used to test a PC/SC driver, card or reader";
+    homepage = "https://pcsc-tools.apdu.fr/";
+    changelog = "https://github.com/LudovicRousseau/pcsc-tools/releases/tag/${finalAttrs.version}";
+    license = licenses.gpl2Plus;
+    mainProgram = "pcsc_scan";
+    maintainers = with maintainers; [ peterhoeg anthonyroussel ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index 478cca8be0e2f..2b55b76b66543 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -1,37 +1,36 @@
 { stdenv
 , lib
-, fetchurl
+, fetchFromGitLab
 , autoreconfHook
 , autoconf-archive
+, flex
 , pkg-config
 , perl
 , python3
 , dbus
 , polkit
-, systemdMinimal
+, systemdLibs
 , IOKit
+, testers
+, nix-update-script
 , pname ? "pcsclite"
 , polkitSupport ? false
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   inherit pname;
-  version = "1.9.5";
+  version = "2.0.1";
 
-  outputs = [ "bin" "out" "dev" "doc" "man" ];
+  outputs = [ "out" "lib" "dev" "doc" "man" ];
 
-  src = fetchurl {
-    url = "https://pcsclite.apdu.fr/files/pcsc-lite-${version}.tar.bz2";
-    hash = "sha256-nuP5szNTdWIXeJNVmtT3uNXCPr6Cju9TBWwC2xQEnQg=";
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "rousseau";
+    repo = "PCSC";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-7NGlU4byGxtGBticewg8K4FUiDSQZAiB7Q/y+LaqKPo=";
   };
 
-  patches = [ ./no-dropdir-literals.patch ];
-
-  postPatch = ''
-    sed -i configure.ac \
-      -e "s@polkit_policy_dir=.*@polkit_policy_dir=$bin/share/polkit-1/actions@"
-  '';
-
   configureFlags = [
     "--enable-confdir=/etc"
     # The OS should care on preparing the drivers into this location
@@ -40,13 +39,19 @@ stdenv.mkDerivation rec {
     (lib.enableFeature polkitSupport "polkit")
   ] ++ lib.optionals stdenv.isLinux [
     "--enable-ipcdir=/run/pcscd"
-    "--with-systemdsystemunitdir=${placeholder "bin"}/lib/systemd/system"
+    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+  ];
+
+  makeFlags = [
+    "POLICY_DIR=$(out)/share/polkit-1/actions"
   ];
 
-  postConfigure = ''
-    sed -i -re '/^#define *PCSCLITE_HP_DROPDIR */ {
-      s/(DROPDIR *)(.*)/\1(getenv("PCSCLITE_HP_DROPDIR") ? : \2)/
-    }' config.h
+  # disable building pcsc-wirecheck{,-gen} when cross compiling
+  # see also: https://github.com/LudovicRousseau/PCSC/issues/25
+  postPatch = lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+    substituteInPlace src/Makefile.am \
+      --replace "noinst_PROGRAMS = testpcsc pcsc-wirecheck pcsc-wirecheck-gen" \
+                "noinst_PROGRAMS = testpcsc"
   '';
 
   postInstall = ''
@@ -56,17 +61,34 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ autoreconfHook autoconf-archive pkg-config perl ];
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    flex
+    pkg-config
+    perl
+  ];
 
   buildInputs = [ python3 ]
-    ++ lib.optionals stdenv.isLinux [ systemdMinimal ]
+    ++ lib.optionals stdenv.isLinux [ systemdLibs ]
     ++ lib.optionals stdenv.isDarwin [ IOKit ]
     ++ lib.optionals polkitSupport [ dbus polkit ];
 
+  passthru = {
+    tests.version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      command = "pcscd --version";
+    };
+    updateScript = nix-update-script { };
+  };
+
   meta = with lib; {
     description = "Middleware to access a smart card using SCard API (PC/SC)";
     homepage = "https://pcsclite.apdu.fr/";
+    changelog = "https://salsa.debian.org/rousseau/PCSC/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.bsd3;
+    mainProgram = "pcscd";
+    maintainers = [ maintainers.anthonyroussel ];
     platforms = with platforms; unix;
   };
-}
+})
diff --git a/pkgs/tools/security/pcsclite/no-dropdir-literals.patch b/pkgs/tools/security/pcsclite/no-dropdir-literals.patch
deleted file mode 100644
index 4c6d5554d77a1..0000000000000
--- a/pkgs/tools/security/pcsclite/no-dropdir-literals.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/src/hotplug_libudev.c b/src/hotplug_libudev.c
-index 51bd95f..84f959b 100644
---- a/src/hotplug_libudev.c
-+++ b/src/hotplug_libudev.c
-@@ -120,7 +120,8 @@ static LONG HPReadBundleValues(void)
- 
- 	if (NULL == hpDir)
- 	{
--		Log1(PCSC_LOG_ERROR, "Cannot open PC/SC drivers directory: " PCSCLITE_HP_DROPDIR);
-+		Log2(PCSC_LOG_ERROR, "Cannot open PC/SC drivers directory: %s",
-+			PCSCLITE_HP_DROPDIR);
- 		Log1(PCSC_LOG_ERROR, "Disabling USB support for pcscd.");
- 		return -1;
- 	}
-@@ -741,7 +742,7 @@ ULONG HPRegisterForHotplugEvents(void)
- 
- 	if (driverSize <= 0)
- 	{
--		Log1(PCSC_LOG_INFO, "No bundle files in pcsc drivers directory: "
-+		Log2(PCSC_LOG_INFO, "No bundle files in pcsc drivers directory: %s",
- 			PCSCLITE_HP_DROPDIR);
- 		Log1(PCSC_LOG_INFO, "Disabling USB support for pcscd");
- 		return 0;
-diff --git a/src/hotplug_libusb.c b/src/hotplug_libusb.c
-index 0ada9f5..d49a407 100644
---- a/src/hotplug_libusb.c
-+++ b/src/hotplug_libusb.c
-@@ -142,7 +142,8 @@ static LONG HPReadBundleValues(void)
- 
- 	if (hpDir == NULL)
- 	{
--		Log1(PCSC_LOG_ERROR, "Cannot open PC/SC drivers directory: " PCSCLITE_HP_DROPDIR);
-+		Log2(PCSC_LOG_ERROR, "Cannot open PC/SC drivers directory: %s",
-+			PCSCLITE_HP_DROPDIR);
- 		Log1(PCSC_LOG_ERROR, "Disabling USB support for pcscd.");
- 		return -1;
- 	}
-@@ -282,7 +283,8 @@ static LONG HPReadBundleValues(void)
- 
- 	if (driverSize == 0)
- 	{
--		Log1(PCSC_LOG_INFO, "No bundle files in pcsc drivers directory: " PCSCLITE_HP_DROPDIR);
-+		Log2(PCSC_LOG_INFO, "No bundle files in pcsc drivers directory: %s",
-+			PCSCLITE_HP_DROPDIR);
- 		Log1(PCSC_LOG_INFO, "Disabling USB support for pcscd");
- 	}
- #ifdef DEBUG_HOTPLUG
diff --git a/pkgs/tools/security/pcsctools/default.nix b/pkgs/tools/security/pcsctools/default.nix
deleted file mode 100644
index ec2a5f3fb3058..0000000000000
--- a/pkgs/tools/security/pcsctools/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, autoreconfHook
-, makeWrapper
-, pkg-config
-, systemd
-, dbus
-, pcsclite
-, wget
-, coreutils
-, perlPackages
-}:
-
-stdenv.mkDerivation rec {
-  pname = "pcsc-tools";
-  version = "1.6.2";
-
-  src = fetchFromGitHub {
-    owner = "LudovicRousseau";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-c7md8m1llvz0EQqA0qY4aGb3guGFoj+8uS4hUTzie5o=";
-  };
-
-  postPatch = ''
-    substituteInPlace ATR_analysis \
-      --replace /usr/local/pcsc /etc/pcsc \
-      --replace /usr/share/pcsc $out/share/pcsc
-  '';
-
-  buildInputs = [ dbus perlPackages.perl pcsclite ]
-    ++ lib.optional stdenv.isLinux systemd;
-
-  nativeBuildInputs = [ autoreconfHook makeWrapper pkg-config ];
-
-  postInstall = ''
-    wrapProgram $out/bin/scriptor \
-      --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl ]}"
-    wrapProgram $out/bin/gscriptor \
-      --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl GlibObjectIntrospection Glib Gtk3 Pango Cairo CairoGObject ]}"
-    wrapProgram $out/bin/ATR_analysis \
-      --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl ]}"
-    wrapProgram $out/bin/pcsc_scan \
-      --prefix PATH : "$out/bin:${lib.makeBinPath [ coreutils wget ]}"
-
-    install -Dm444 -t $out/share/pcsc smartcard_list.txt
-  '';
-
-  meta = with lib; {
-    description = "Tools used to test a PC/SC driver, card or reader";
-    homepage = "https://pcsc-tools.apdu.fr/";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/security/pgpdump/default.nix b/pkgs/tools/security/pgpdump/default.nix
index 60dc724d5aa9b..9ebe0d920027b 100644
--- a/pkgs/tools/security/pgpdump/default.nix
+++ b/pkgs/tools/security/pgpdump/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgpdump";
-  version = "0.35";
+  version = "0.36";
 
   src = fetchFromGitHub {
     owner = "kazu-yamamoto";
     repo = "pgpdump";
     rev = "v${version}";
-    sha256 = "sha256-GjPy/feF437WtDqbEn1lGwWayWtvKhqsyJFMuH3IFl4=";
+    sha256 = "sha256-JKedgHCTDnvLyLR3nGl4XFAaxXDU1TgHrxPMlRFwtBo=";
   };
 
   buildInputs = lib.optionals supportCompressedPackets [ zlib bzip2 ];
diff --git a/pkgs/tools/security/pinentry-bemenu/default.nix b/pkgs/tools/security/pinentry-bemenu/default.nix
index aec655d0b5594..36fff7d34d5cd 100644
--- a/pkgs/tools/security/pinentry-bemenu/default.nix
+++ b/pkgs/tools/security/pinentry-bemenu/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pinentry-bemenu";
-  version = "0.12.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "t-8ch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5ll4a/1Ughx0s2l/mcIsp1g4oNoNhm0RWvY/tXDvPGE=";
+    sha256 = "sha256-h+PC8IGwCW5ZroLGpypcmpejOo+JGM7zG4N5fguBWvM=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jc ];
     platforms = with platforms; linux;
+    mainProgram = "pinentry-bemenu";
   };
 }
diff --git a/pkgs/tools/security/pinentry-rofi/default.nix b/pkgs/tools/security/pinentry-rofi/default.nix
index 67b23697525cf..e0fffff7cedf3 100644
--- a/pkgs/tools/security/pinentry-rofi/default.nix
+++ b/pkgs/tools/security/pinentry-rofi/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pinentry-rofi";
-  version = "2.0.4";
+  version = "2.0.5";
 
   src = fetchFromGitHub {
     owner = "plattfot";
     repo = pname;
     rev = version;
-    sha256 = "sha256-H9Y7oPLpDuKtIy80HLS8/iXpOq8ZKiy8ZIH2NwguetY=";
+    sha256 = "sha256-6dhzzxjE3GE5JZTirMLeMh91BS2wzDZoubgf4Wefe1o=";
   };
 
   nativeBuildInputs = [
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ seqizz ];
+    mainProgram = "pinentry-rofi";
   };
 }
diff --git a/pkgs/tools/security/pinentry/mac.nix b/pkgs/tools/security/pinentry/mac.nix
index d824a816dc908..4620aedecc75b 100644
--- a/pkgs/tools/security/pinentry/mac.nix
+++ b/pkgs/tools/security/pinentry/mac.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     homepage = "https://github.com/GPGTools/pinentry-mac";
     platforms = lib.platforms.darwin;
+    mainProgram = passthru.binaryPath;
   };
 }
diff --git a/pkgs/tools/security/pretender/default.nix b/pkgs/tools/security/pretender/default.nix
index 9ea3918b36998..91452f34d62b7 100644
--- a/pkgs/tools/security/pretender/default.nix
+++ b/pkgs/tools/security/pretender/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "pretender";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "RedTeamPentesting";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-3i7zNzwURSNSleiW+KBkxdqBv9yshtBu1hLKtjWe9OE=";
+    hash = "sha256-adWdUlsReRptSgRAjNH9bWy9dpwpuAWtVxlbDL2pMmk=";
   };
 
-  vendorHash = "sha256-uw3mpf27OH5uNKmvCFcTw+YFoxVEqT4Fz/CSl9Wjbv0=";
+  vendorHash = "sha256-kDHRjd3Y90ocBGSJ0B2jAM9tO+iDSXoUOzLEWX2G0J4=";
 
   # Tests require network access
   doCheck = false;
diff --git a/pkgs/tools/security/proxmark3/default.nix b/pkgs/tools/security/proxmark3/default.nix
index a6c59919e28fe..de586e7e9004b 100644
--- a/pkgs/tools/security/proxmark3/default.nix
+++ b/pkgs/tools/security/proxmark3/default.nix
@@ -25,13 +25,13 @@
 assert withBlueshark -> stdenv.hostPlatform.isLinux;
 stdenv.mkDerivation rec {
   pname = "proxmark3";
-  version = "4.17140";
+  version = "4.17768";
 
   src = fetchFromGitHub {
     owner = "RfidResearchGroup";
     repo = "proxmark3";
     rev = "v${version}";
-    hash = "sha256-l66syIpTM4P0733eJKEjnEYHvQlIc7KKxXLcc7XBnHE=";
+    hash = "sha256-4x8GN4Jsk9xqk4MbGu8SpE4Zh0Opb3akCH5NlASzLQo=";
   };
 
   patches = [
diff --git a/pkgs/tools/security/prs/default.nix b/pkgs/tools/security/prs/default.nix
index 33df7e7948ce9..cfab2229efeeb 100644
--- a/pkgs/tools/security/prs/default.nix
+++ b/pkgs/tools/security/prs/default.nix
@@ -59,5 +59,6 @@ rustPlatform.buildRustPackage rec {
       gpl3Only  # everything else
     ];
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "prs";
   };
 }
diff --git a/pkgs/tools/security/psudohash/default.nix b/pkgs/tools/security/psudohash/default.nix
index d5be9f9a772b9..7a42d1900db3b 100644
--- a/pkgs/tools/security/psudohash/default.nix
+++ b/pkgs/tools/security/psudohash/default.nix
@@ -1,8 +1,7 @@
-{
-  lib,
-  fetchFromGitHub,
-  stdenv,
-  python3
+{ lib
+, stdenv
+, fetchFromGitHub
+, python3
 }:
 
 stdenv.mkDerivation rec {
@@ -12,11 +11,14 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "t3l3machus";
     repo = "psudohash";
+    # https://github.com/t3l3machus/psudohash/issues/8
     rev = "2d586dec8b5836546ae54b924eb59952a7ee393c";
     hash = "sha256-l/Rp9405Wf6vh85PFrRTtTLJE7GPODowseNqEw42J18=";
   };
 
-  buildInputs = [ python3 ];
+  buildInputs = [
+    python3
+  ];
 
   installPhase = ''
     runHook preInstall
@@ -36,5 +38,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/t3l3machus/psudohash";
     license = licenses.mit;
     maintainers = with maintainers; [ exploitoverload ];
+    mainProgram = "psudohash";
   };
 }
diff --git a/pkgs/tools/security/pynitrokey/default.nix b/pkgs/tools/security/pynitrokey/default.nix
deleted file mode 100644
index 9c36ceb3c841e..0000000000000
--- a/pkgs/tools/security/pynitrokey/default.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ lib
-, python3Packages
-, fetchPypi
-, nrfutil
-, libnitrokey
-, nix-update-script
-}:
-
-with python3Packages;
-
-buildPythonApplication rec {
-  pname = "pynitrokey";
-  version = "0.4.39";
-  format = "pyproject";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-KXYHeWwV9Tw1ZpO/vASHjDnceeb+1K0yIUohb7EcRAI=";
-  };
-
-  propagatedBuildInputs = [
-    certifi
-    cffi
-    click
-    click-aliases
-    cryptography
-    ecdsa
-    frozendict
-    fido2
-    intelhex
-    nkdfu
-    nrfutil
-    python-dateutil
-    pyusb
-    requests
-    semver
-    spsdk
-    tqdm
-    urllib3
-    tlv8
-    typing-extensions
-    importlib-metadata
-  ];
-
-  nativeBuildInputs = [
-    flit-core
-    pythonRelaxDepsHook
-  ];
-
-  # FIXME: does pythonRelaxDepsHook not work for pypaBuildHook + flit-core?
-  pypaBuildFlags = [ "--skip-dependency-check" ];
-
-  pythonRelaxDeps = [
-    "click"
-    "cryptography"
-    "protobuf"
-    "python-dateutil"
-    "spsdk"
-    "typing_extensions"
-  ];
-
-  # libnitrokey is not propagated to users of the pynitrokey Python package.
-  # It is only usable from the wrapped bin/nitropy
-  makeWrapperArgs = [
-    "--set LIBNK_PATH ${lib.makeLibraryPath [ libnitrokey ]}"
-  ];
-
-  # no tests
-  doCheck = false;
-
-  pythonImportsCheck = [ "pynitrokey" ];
-
-  passthru.updateScript = nix-update-script { };
-
-  meta = with lib; {
-    description = "Python client for Nitrokey devices";
-    homepage = "https://github.com/Nitrokey/pynitrokey";
-    license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ frogamic ];
-    mainProgram = "nitropy";
-  };
-}
diff --git a/pkgs/tools/security/qdigidoc/default.nix b/pkgs/tools/security/qdigidoc/default.nix
index 8a8fa4496c38e..097ef50239745 100644
--- a/pkgs/tools/security/qdigidoc/default.nix
+++ b/pkgs/tools/security/qdigidoc/default.nix
@@ -2,6 +2,7 @@
 , mkDerivation
 , fetchurl
 , cmake
+, flatbuffers
 , gettext
 , pkg-config
 , libdigidocpp
@@ -16,12 +17,12 @@
 
 mkDerivation rec {
   pname = "qdigidoc";
-  version = "4.2.12";
+  version = "4.4.0";
 
   src = fetchurl {
     url =
       "https://github.com/open-eid/DigiDoc4-Client/releases/download/v${version}/qdigidoc4-${version}.tar.gz";
-    hash = "sha256-6bso1qvhVhbBfrcTq4S+aHtHli7X2A926N4r45ztq4E=";
+    hash = "sha256-5zo0yoY0wufm9DWRIccxJ5g4DXn75nT4fd2h+5QP4oQ=";
   };
 
   tsl = fetchurl {
@@ -37,6 +38,7 @@ mkDerivation rec {
   '';
 
   buildInputs = [
+    flatbuffers
     libdigidocpp
     opensc
     openldap
diff --git a/pkgs/tools/security/quark-engine/default.nix b/pkgs/tools/security/quark-engine/default.nix
index e67dd3f8b944f..f89cb35f30297 100644
--- a/pkgs/tools/security/quark-engine/default.nix
+++ b/pkgs/tools/security/quark-engine/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "quark-engine";
-  version = "23.9.1";
+  version = "23.12.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-E9efhgMGN9lvMlFeZqo6xco75TtQsXULOzKX00pjqMM=";
+    sha256 = "sha256-NeJGkqGpg2uOsz10gEYz/nzh21DhXSU4RgQtI1brASQ=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -26,7 +26,9 @@ python3.pkgs.buildPythonApplication rec {
     plotly
     prettytable
     prompt-toolkit
+    r2pipe
     rzpipe
+    setuptools
     tqdm
   ];
 
diff --git a/pkgs/tools/security/quill/default.nix b/pkgs/tools/security/quill/default.nix
index b2a4f3528d565..5de9e8b8b3fc3 100644
--- a/pkgs/tools/security/quill/default.nix
+++ b/pkgs/tools/security/quill/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/dfinity/quill";
     changelog = "https://github.com/dfinity/quill/releases/tag/v${version}";
-    description = "Minimalistic ledger and governance toolkit for cold wallets on the Internet Computer.";
+    description = "Minimalistic ledger and governance toolkit for cold wallets on the Internet Computer";
     license = licenses.asl20;
     maintainers = with maintainers; [ imalison ];
   };
diff --git a/pkgs/tools/security/rblake2sum/default.nix b/pkgs/tools/security/rblake2sum/default.nix
index a5a4a1bce76c3..8f2a868363560 100644
--- a/pkgs/tools/security/rblake2sum/default.nix
+++ b/pkgs/tools/security/rblake2sum/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/crev-dev/rblake2sum";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ dpc ];
+    mainProgram = "rblake2sum";
   };
 }
diff --git a/pkgs/tools/security/rblake3sum/default.nix b/pkgs/tools/security/rblake3sum/default.nix
new file mode 100644
index 0000000000000..341dcd06fb6a7
--- /dev/null
+++ b/pkgs/tools/security/rblake3sum/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, Security
+}:
+rustPlatform.buildRustPackage {
+  pname = "rblake3sum";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "rustshop";
+    repo = "rblake3sum";
+    rev = "6a8e2576ccc05214eacb75b75a9d4cfdf272161c";
+    hash = "sha256-UFk6SJVA58WXhH1CIuT48MEF19yPUe1HD+ekn4LDj8g=";
+  };
+
+  cargoHash = "sha256-SE/Zg/UEV/vhB/VDcn8Y70OUIoxbJBh6H2QgFMkWPc4=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with lib; {
+    description = "A recursive blake3 digest (hash) of a file-system path";
+    homepage = "https://github.com/rustshop/rblake3sum";
+    license = [ licenses.mit ];
+    maintainers = with maintainers; [ dpc ];
+    mainProgram = "rblake3sum";
+  };
+}
diff --git a/pkgs/tools/security/rbw/default.nix b/pkgs/tools/security/rbw/default.nix
index 25c8af82c9506..22efd33c6abe1 100644
--- a/pkgs/tools/security/rbw/default.nix
+++ b/pkgs/tools/security/rbw/default.nix
@@ -6,6 +6,7 @@
 , pkg-config
 , installShellFiles
 , darwin
+, bash
 
   # rbw-fzf
 , withFzf ? false
@@ -24,22 +25,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rbw";
-  version = "1.8.3";
+  version = "1.9.0";
 
   src = fetchzip {
     url = "https://git.tozt.net/rbw/snapshot/rbw-${version}.tar.gz";
-    sha256 = "sha256-dC/x+ihH1POIFN/8pbk967wATXKU4YVBGI0QCo8d+SY=";
+    sha256 = "sha256-NjMH99rmJYbCxDdc7e0iOFoslSrIuwIBxuHxADp0Ks4=";
   };
 
-  cargoHash = "sha256-nI1Pf7gREbAk+JVF3Gn2j8OqprexCQ5fVvECtq2aBPM=";
+  cargoHash = "sha256-AH35v61FgUQe9BwDgVnXwoVTSQduxeMbXWy4ga3WU3k=";
 
   nativeBuildInputs = [
     installShellFiles
   ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
-    darwin.apple_sdk.frameworks.AppKit
+  buildInputs = [ bash ] # for git-credential-rbw
+  ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk_11_0.frameworks.Security
+    darwin.apple_sdk_11_0.frameworks.AppKit
   ];
 
   preConfigure = lib.optionalString stdenv.isLinux ''
diff --git a/pkgs/tools/security/rekor/default.nix b/pkgs/tools/security/rekor/default.nix
index 2820f473c11b9..afc07a63d6038 100644
--- a/pkgs/tools/security/rekor/default.nix
+++ b/pkgs/tools/security/rekor/default.nix
@@ -4,13 +4,13 @@ let
   generic = { pname, packageToBuild, description }:
     buildGoModule rec {
       inherit pname;
-      version = "1.2.2";
+      version = "1.3.4";
 
       src = fetchFromGitHub {
         owner = "sigstore";
         repo = "rekor";
         rev = "v${version}";
-        hash = "sha256-U7KxkPYVAy3/olXsEgPMX/kzg0KvYMovLO4LWw8guE4=";
+        hash = "sha256-vU/qxCMCC2XWH79Z7cGhMlqMeQOMghTPDfROWdusKX4=";
         # 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;
@@ -23,7 +23,7 @@ let
         '';
       };
 
-      vendorHash = "sha256-hZyoVlNrPKE6ub94jVEOLGvxWoXKxFYcsEZyRrZuNkQ=";
+      vendorHash = "sha256-qhBbzYYayRktBQi9HtzuxBIlSdNIOD/agCFFNEvlcBc=";
 
       nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/responder/default.nix b/pkgs/tools/security/responder/default.nix
index 51120e8a575d0..a51bb40ac5fd7 100644
--- a/pkgs/tools/security/responder/default.nix
+++ b/pkgs/tools/security/responder/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "responder";
-  version = "3.1.3.0";
+  version = "3.1.4.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "lgandx";
     repo = "Responder";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZnWUkV+9fn08Ze4468wSUtldABrmn+88N2Axc+Mip2A=";
+    hash = "sha256-BVSA/ZhpGz6UGyDRJUc4nlRJZ1/Y7er1vVOI+IbIqGk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/ronin/Gemfile.lock b/pkgs/tools/security/ronin/Gemfile.lock
index 74d82289194a2..4157e59941300 100644
--- a/pkgs/tools/security/ronin/Gemfile.lock
+++ b/pkgs/tools/security/ronin/Gemfile.lock
@@ -1,37 +1,47 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activemodel (7.0.6)
-      activesupport (= 7.0.6)
-    activerecord (7.0.6)
-      activemodel (= 7.0.6)
-      activesupport (= 7.0.6)
-    activesupport (7.0.6)
+    activemodel (7.1.0)
+      activesupport (= 7.1.0)
+    activerecord (7.1.0)
+      activemodel (= 7.1.0)
+      activesupport (= 7.1.0)
+      timeout (>= 0.4.0)
+    activesupport (7.1.0)
+      base64
+      bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
+      connection_pool (>= 2.2.5)
+      drb
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
+      mutex_m
       tzinfo (~> 2.0)
-    addressable (2.8.4)
+    addressable (2.8.5)
       public_suffix (>= 2.0.2, < 6.0)
-    async (2.6.2)
+    async (2.6.4)
       console (~> 1.10)
       fiber-annotation
       io-event (~> 1.1)
       timers (~> 4.1)
-    async-io (1.35.0)
+    async-io (1.36.0)
       async
+    base64 (0.1.1)
+    bigdecimal (3.1.4)
     chars (0.3.2)
     combinatorics (0.4.4)
     command_kit (0.4.0)
     command_mapper (0.3.1)
     concurrent-ruby (1.2.2)
     connection_pool (2.4.1)
-    console (1.18.0)
+    console (1.23.2)
       fiber-annotation
       fiber-local
     date (3.3.3)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
+    drb (2.1.1)
+      ruby2_keywords
     fake_io (0.1.0)
     fiber-annotation (0.2.0)
     fiber-local (1.0.0)
@@ -41,9 +51,10 @@ GEM
     i18n (1.14.1)
       concurrent-ruby (~> 1.0)
     io-console (0.6.0)
-    io-event (1.2.2)
-    irb (1.7.4)
-      reline (>= 0.3.6)
+    io-event (1.3.2)
+    irb (1.8.1)
+      rdoc
+      reline (>= 0.3.8)
     mechanize (2.9.1)
       addressable (~> 2.8)
       domain_name (~> 0.5, >= 0.5.20190701)
@@ -55,29 +66,30 @@ GEM
       rubyntlm (~> 0.6, >= 0.6.3)
       webrick (~> 1.7)
       webrobots (~> 0.1.2)
-    mime-types (3.4.1)
+    mime-types (3.5.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2023.0218.1)
+    mime-types-data (3.2023.1003)
     mini_portile2 (2.8.4)
-    minitest (5.18.1)
+    minitest (5.20.0)
     mustermann (3.0.0)
       ruby2_keywords (~> 0.0.1)
+    mutex_m (0.1.2)
     net-ftp (0.2.0)
       net-protocol
       time
     net-http-digest_auth (1.4.1)
     net-http-persistent (4.0.2)
       connection_pool (~> 2.2)
-    net-imap (0.3.6)
+    net-imap (0.4.1)
       date
       net-protocol
     net-pop (0.1.2)
       net-protocol
     net-protocol (0.2.1)
       timeout
-    net-smtp (0.3.3)
+    net-smtp (0.4.0)
       net-protocol
-    nokogiri (1.15.3)
+    nokogiri (1.15.4)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
     nokogiri-diff (0.2.0)
@@ -86,17 +98,21 @@ GEM
     nokogiri-ext (0.1.0)
       nokogiri (~> 1.0)
     open_namespace (0.4.1)
+    psych (5.1.0)
+      stringio
     public_suffix (5.0.3)
     racc (1.7.1)
-    rack (2.2.7)
-    rack-protection (3.0.6)
-      rack
+    rack (2.2.8)
+    rack-protection (3.1.0)
+      rack (~> 2.2, >= 2.2.4)
     rack-user_agent (0.5.3)
       rack (>= 1.5)
       woothee (>= 1.0.0)
-    reline (0.3.6)
+    rdoc (6.5.0)
+      psych (>= 4.0.0)
+    reline (0.3.9)
       io-console (~> 0.5)
-    ronin (2.0.4)
+    ronin (2.0.5)
       async-io (~> 1.0)
       open_namespace (~> 0.4)
       ronin-code-asm (~> 1.0)
@@ -107,11 +123,11 @@ GEM
       ronin-fuzzer (~> 0.1)
       ronin-payloads (~> 0.1, >= 0.1.1)
       ronin-repos (~> 0.1)
-      ronin-support (~> 1.0, >= 1.0.1)
+      ronin-support (~> 1.0, >= 1.0.3)
       ronin-vulns (~> 0.1, >= 0.1.2)
       ronin-web (~> 1.0, >= 1.0.1)
       rouge (~> 3.0)
-      wordlist (~> 1.0, >= 1.0.2)
+      wordlist (~> 1.0, >= 1.0.3)
     ronin-code-asm (1.0.0)
       ruby-yasm (~> 0.3)
     ronin-code-sql (2.1.0)
@@ -120,15 +136,15 @@ GEM
       command_kit (~> 0.4)
       irb (~> 1.0)
       reline (~> 0.1)
-    ronin-db (0.1.1)
+    ronin-db (0.1.2)
       ronin-core (~> 0.1)
       ronin-db-activerecord (~> 0.1)
       ronin-support (~> 1.0)
       sqlite3 (~> 1.0)
-    ronin-db-activerecord (0.1.1)
+    ronin-db-activerecord (0.1.2)
       activerecord (~> 7.0)
       uri-query_params (~> 0.6)
-    ronin-exploits (1.0.2)
+    ronin-exploits (1.0.3)
       ronin-code-sql (~> 2.0)
       ronin-core (~> 0.1)
       ronin-payloads (~> 0.1, >= 0.1.1)
@@ -141,7 +157,7 @@ GEM
       combinatorics (~> 0.4)
       ronin-core (~> 0.1)
       ronin-support (~> 1.0)
-    ronin-payloads (0.1.3)
+    ronin-payloads (0.1.4)
       ronin-code-asm (~> 1.0)
       ronin-core (~> 0.1)
       ronin-post_ex (~> 0.1)
@@ -153,13 +169,13 @@ GEM
       ronin-core (~> 0.1)
     ronin-repos (0.1.1)
       ronin-core (~> 0.1)
-    ronin-support (1.0.2)
+    ronin-support (1.0.3)
       addressable (~> 2.0)
       chars (~> 0.3, >= 0.3.2)
       combinatorics (~> 0.4)
       hexdump (~> 1.0)
       uri-query_params (~> 0.8)
-    ronin-vulns (0.1.3)
+    ronin-vulns (0.1.4)
       ronin-core (~> 0.1)
       ronin-support (~> 1.0, >= 1.0.1)
     ronin-web (1.0.2)
@@ -188,17 +204,18 @@ GEM
       command_mapper (~> 0.1)
     ruby2_keywords (0.0.5)
     rubyntlm (0.6.3)
-    sinatra (3.0.6)
+    sinatra (3.1.0)
       mustermann (~> 3.0)
       rack (~> 2.2, >= 2.2.4)
-      rack-protection (= 3.0.6)
+      rack-protection (= 3.1.0)
       tilt (~> 2.0)
     spidr (0.7.0)
       nokogiri (~> 1.3)
-    sqlite3 (1.6.3)
+    sqlite3 (1.6.6)
       mini_portile2 (~> 2.8.0)
+    stringio (3.0.8)
     tdiff (0.3.4)
-    tilt (2.2.0)
+    tilt (2.3.0)
     time (0.2.2)
       date
     timeout (0.4.0)
@@ -212,7 +229,7 @@ GEM
     webrick (1.8.1)
     webrobots (0.1.2)
     woothee (1.13.0)
-    wordlist (1.0.2)
+    wordlist (1.1.0)
 
 PLATFORMS
   ruby
@@ -225,4 +242,4 @@ DEPENDENCIES
   ronin
 
 BUNDLED WITH
-   2.4.10
+   2.3.26
diff --git a/pkgs/tools/security/ronin/gemset.nix b/pkgs/tools/security/ronin/gemset.nix
index 2171841a42695..fdb3c9225d0ec 100644
--- a/pkgs/tools/security/ronin/gemset.nix
+++ b/pkgs/tools/security/ronin/gemset.nix
@@ -5,32 +5,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "072iv0d3vpbp0xijg4jj99sjil1rykmqfj9addxj76bm5mbzwcaj";
+      sha256 = "01jrk2i6vp8jcll65d03mqmp1ibxa0ip7bdg5157fkm5syblzsqw";
       type = "gem";
     };
-    version = "7.0.6";
+    version = "7.1.0";
   };
   activerecord = {
-    dependencies = ["activemodel" "activesupport"];
+    dependencies = ["activemodel" "activesupport" "timeout"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l0rn43bhyzlfa4wwcfz016vb4lkzvl0jf5zibkjy4sppxxixzrq";
+      sha256 = "1lpcbgqbrb3yfk3i66mnxa5i36r0ig9dwzksjbm15i30rndr27p5";
       type = "gem";
     };
-    version = "7.0.6";
+    version = "7.1.0";
   };
   activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cjsf26656996hv48wgv2mkwxf0fy1qc68ikgzq7mzfq2mmvmayk";
+      sha256 = "1xpwx7hw7mgmjk3w3g8bkz5jfapixhgn3ihly0xkpyvgp1shp8h1";
       type = "gem";
     };
-    version = "7.0.6";
+    version = "7.1.0";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
+      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.5";
   };
   async = {
     dependencies = ["console" "fiber-annotation" "io-event" "timers"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gk3mbwrzyrc1a5669x8cw83qkddjyg42dxwdx3xb4rf7rwnzdx3";
+      sha256 = "02ng89h9s4wwpncyqbkm9n26swp4q45dkvqsb2fpmkan32zn48ji";
       type = "gem";
     };
-    version = "2.6.2";
+    version = "2.6.4";
   };
   async-io = {
     dependencies = ["async"];
@@ -60,10 +60,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cx4kgyr8yhg0rfcasmny9sbxjxvf07dmcw85yzismadfli1sndz";
+      sha256 = "11lgd7276rgy651zwbzvbsz8q0k09ljgngyhsppy7kvkjzj25n58";
       type = "gem";
     };
-    version = "1.35.0";
+    version = "1.36.0";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cydk9p2cv25qysm0sn2pb97fcpz1isa7n3c8xm1gd99li8x6x8c";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07y615s8yldk3k13lmkhpk1k190lcqvmxmnjwgh4bzjan9xrc36y";
+      type = "gem";
+    };
+    version = "3.1.4";
   };
   chars = {
     groups = ["default"];
@@ -131,10 +151,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "133csy1c80wh144hzr0pwcwg7i553pqn2byzsdw6kq5s0kg0pg8m";
+      sha256 = "150wdj94qg8c95b9v1g7ak5a9g159wxfanclpihrz9p9qbv1ga0w";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.23.2";
   };
   date = {
     groups = ["default"];
@@ -157,6 +177,17 @@
     };
     version = "0.5.20190701";
   };
+  drb = {
+    dependencies = ["ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9c2qiam82y3caapa2x157j1lkk9954hrjg3p22hxcsk8fli3vb";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
   fake_io = {
     groups = ["default"];
     platforms = [];
@@ -234,21 +265,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j36a76mbcvp5516liiv01z5gz3f64waiqgskj1zrxqbwyirx5h7";
+      sha256 = "1m2x5m2m8fa83p5890byf46qb4s1073vn3z6gan9jmbq2a5w0iy8";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.3.2";
   };
   irb = {
-    dependencies = ["reline"];
+    dependencies = ["rdoc" "reline"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158ca10kj3qqnql5g8f1g2arsnhgdl79mg74manpf8ldkwjjn3n8";
+      sha256 = "17p6arsklbzh2hvwwr8i4cfrpa7vhk8q88fhickhwmn7m80lxdw7";
       type = "gem";
     };
-    version = "1.7.4";
+    version = "1.8.1";
   };
   mechanize = {
     dependencies = ["addressable" "domain_name" "http-cookie" "mime-types" "net-http-digest_auth" "net-http-persistent" "nokogiri" "rubyntlm" "webrick" "webrobots"];
@@ -267,20 +298,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
+      sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5";
       type = "gem";
     };
-    version = "3.4.1";
+    version = "3.5.1";
   };
   mime-types-data = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pky3vzaxlgm9gw5wlqwwi7wsw3jrglrfflrppvvnsrlaiz043z9";
+      sha256 = "0yjv0apysnrhbc70ralinfpcqn9382lxr643swp7a5sdwpa9cyqg";
       type = "gem";
     };
-    version = "3.2023.0218.1";
+    version = "3.2023.1003";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -297,10 +328,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kg9wh7jlc9zsr3hkhpzkbn0ynf4np5ap9m2d8xdrb8shy0y6pmb";
+      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
       type = "gem";
     };
-    version = "5.18.1";
+    version = "5.20.0";
   };
   mustermann = {
     dependencies = ["ruby2_keywords"];
@@ -313,6 +344,16 @@
     };
     version = "3.0.0";
   };
+  mutex_m = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkxnp7p44kvs460bbbgjarr7xy1j8kjjmhwkg1kypj9wgmwb6qa";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   net-ftp = {
     dependencies = ["net-protocol" "time"];
     groups = ["default"];
@@ -351,10 +392,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k1qyjr9lkk5y3483k6wk6d9h1jx4v5hzby1mf0pj3b4kr2arxbm";
+      sha256 = "0d0r31b79appz95dd63wmasly1qjz3hn58ffxw6ix4mqk49jcbq2";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.1";
   };
   net-pop = {
     dependencies = ["net-protocol"];
@@ -384,10 +425,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
+      sha256 = "1rx3758w0bmbr21s2nsc6llflsrnp50fwdnly3ixra4v53gbhzid";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.4.0";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -395,10 +436,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jw8a20a9k05fpz3q24im19b97idss3179z76yn5scc5b8lk2rl7";
+      sha256 = "0k9w2z0953mnjrsji74cshqqp08q7m1r6zhadw1w0g34xzjh3a74";
       type = "gem";
     };
-    version = "1.15.3";
+    version = "1.15.4";
   };
   nokogiri-diff = {
     dependencies = ["nokogiri" "tdiff"];
@@ -432,6 +473,17 @@
     };
     version = "0.4.1";
   };
+  psych = {
+    dependencies = ["stringio"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1msambb54r3d1sg6smyj4k2pj9h9lz8jq4jamip7ivcyv32a85vz";
+      type = "gem";
+    };
+    version = "5.1.0";
+  };
   public_suffix = {
     groups = ["default"];
     platforms = [];
@@ -457,10 +509,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16w217k9z02c4hqizym8dkj6bqmmzx4qdvqpnskgzf174a5pwdxk";
+      sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv";
       type = "gem";
     };
-    version = "2.2.7";
+    version = "2.2.8";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -468,10 +520,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kpm67az1wxlg76h620in2r7agfyhv177ps268j5ggsanzddzih8";
+      sha256 = "0xsz78hccgza144n37bfisdkzpr2c8m0xl6rnlzgxdbsm1zrkg7r";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.1.0";
   };
   rack-user_agent = {
     dependencies = ["rack" "woothee"];
@@ -484,16 +536,27 @@
     };
     version = "0.5.3";
   };
+  rdoc = {
+    dependencies = ["psych"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05r2cxscapr9saqjw8dlp89as7jvc2mlz1h5kssrmkbz105qmfcm";
+      type = "gem";
+    };
+    version = "6.5.0";
+  };
   reline = {
     dependencies = ["io-console"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rgsfxm3sb9mgsxa7gks40wy4sb41w33j30y6izmih70ss34x4dh";
+      sha256 = "0187pj9k7d8kdvzjk6r6mf7z7wy18saxxhn7x7pqc840w6h4s0ja";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.3.9";
   };
   ronin = {
     dependencies = ["async-io" "open_namespace" "ronin-code-asm" "ronin-code-sql" "ronin-core" "ronin-db" "ronin-exploits" "ronin-fuzzer" "ronin-payloads" "ronin-repos" "ronin-support" "ronin-vulns" "ronin-web" "rouge" "wordlist"];
@@ -501,10 +564,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ssh8hijpiw4m9pazr3gqqrlsk8bsjk200fp0m15lbnjv4hc713b";
+      sha256 = "0v1v1xb2brgajhh1w38qs4lhnmgygymh1q0q63xpwq32w7a5k7s3";
       type = "gem";
     };
-    version = "2.0.4";
+    version = "2.0.5";
   };
   ronin-code-asm = {
     dependencies = ["ruby-yasm"];
@@ -545,10 +608,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x2mmwbmhc2fh4lk7nx6jbp894mg4aa6n35pkiaf8n527kksa9cd";
+      sha256 = "0fiqdk1rnqk86icx27z531yc1qjs2n41nw9p361980wg0j8b4hsj";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.2";
   };
   ronin-db-activerecord = {
     dependencies = ["activerecord" "uri-query_params"];
@@ -556,10 +619,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vygs09ib2dsna1w2lgv4f1qxa6q1niyqvihy4f49f9ppk52mwhh";
+      sha256 = "0igw9syk4psdmijji0cx1dhrv76r1abji8fzdndnrn5h819b2fm3";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.2";
   };
   ronin-exploits = {
     dependencies = ["ronin-code-sql" "ronin-core" "ronin-payloads" "ronin-post_ex" "ronin-repos" "ronin-support" "ronin-vulns" "uri-query_params"];
@@ -567,10 +630,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "078p7fkrgzkjip11wgcvifc5xwcysfy3r1qsh5pid97ysp1qg477";
+      sha256 = "1g2ilmmn6vccjn1i72wyakvjlh0b1qrgnw2nshl9f50j7yj93xpn";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   ronin-fuzzer = {
     dependencies = ["combinatorics" "ronin-core" "ronin-support"];
@@ -589,10 +652,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15n2nfrrf695i2fk1vr3f84sgnnhn6v2dhdmfxzrdknr5fckvbic";
+      sha256 = "1gsgbw90xmwwnpc8i873wwgia56hcjkhlyjpxl7s4yvd7ml7pj0f";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.1.4";
   };
   ronin-post_ex = {
     dependencies = ["fake_io" "hexdump" "ronin-core"];
@@ -622,10 +685,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ds32mk7s96gsi3q0m2ljgl122glalya1cbjx1xjjq8wbrbsxdjr";
+      sha256 = "0k2vs6mkcyx0h7k3rjs2bwqimhkfa2m50ll8rgm7zygxz3f6gny3";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   ronin-vulns = {
     dependencies = ["ronin-core" "ronin-support"];
@@ -633,10 +696,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xw029nfxnbjs9nhnb0fgyhksismswap393zm3cnjjw46d643jl8";
+      sha256 = "1p00xrj71436g301b0wnq23ps89x4g9mmzvkghw9sqyfazgc829f";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.1.4";
   };
   ronin-web = {
     dependencies = ["mechanize" "nokogiri" "nokogiri-diff" "nokogiri-ext" "open_namespace" "ronin-core" "ronin-support" "ronin-web-server" "ronin-web-spider" "ronin-web-user_agents"];
@@ -728,10 +791,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q0ghxfqgjhg2dq9699mn5qx6m6q2cgldg312kh41pzwwy71a7hx";
+      sha256 = "00541cnypsh1mnilfxxqlz6va9afrixf9m1asn4wzjp5m59777p8";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.1.0";
   };
   spidr = {
     dependencies = ["nokogiri"];
@@ -750,10 +813,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h95kr5529qv786mfk8r2jjdsdi6v7v3k3dpz69mrcc9i0vpdd37";
+      sha256 = "15415lmz69jbzl6nch4q5l2jxv054676nk6y0vgy0g3iklmjrxvc";
       type = "gem";
     };
-    version = "1.6.3";
+    version = "1.6.6";
+  };
+  stringio = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ix96dxbjqlpymdigb4diwrifr0bq7qhsrng95fkkp18av326nqk";
+      type = "gem";
+    };
+    version = "3.0.8";
   };
   tdiff = {
     groups = ["default"];
@@ -770,10 +843,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7";
+      sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.3.0";
   };
   time = {
     dependencies = ["date"];
@@ -883,9 +956,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "133v1v0b8l7v7vdvyhxa2szaf1nb4hsfcqflx1avax93ah3n7ikn";
+      sha256 = "06d4nj2nd172sn5yjw9qmpz7zqnymadbsxph741yx2h9va8q0qgd";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.1.0";
   };
 }
diff --git a/pkgs/tools/security/routersploit/default.nix b/pkgs/tools/security/routersploit/default.nix
index e147e8feac0b4..3f656e8e45787 100644
--- a/pkgs/tools/security/routersploit/default.nix
+++ b/pkgs/tools/security/routersploit/default.nix
@@ -52,5 +52,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/threat9/routersploit";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "rsf";
   };
 }
diff --git a/pkgs/tools/security/rucredstash/default.nix b/pkgs/tools/security/rucredstash/default.nix
index 3a6fcfbf53257..972695ad565e1 100644
--- a/pkgs/tools/security/rucredstash/default.nix
+++ b/pkgs/tools/security/rucredstash/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/psibi/rucredstash";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
+    mainProgram = "rucredstash";
   };
 }
diff --git a/pkgs/tools/security/saml2aws/default.nix b/pkgs/tools/security/saml2aws/default.nix
index 4fa1609629939..a4246f3c4df40 100644
--- a/pkgs/tools/security/saml2aws/default.nix
+++ b/pkgs/tools/security/saml2aws/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.36.11";
+  version = "2.36.13";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "sha256-Sx/MAgjPcUzg4sX0O3CobAXCZQi2msZu6dKZ9q7/K+k=";
+    sha256 = "sha256-cLH1GcMgTPnPJVpHOQkW71hf0MKusL8NRc1YQsNSW2I=";
   };
 
-  vendorHash = "sha256-T5x8C1cKyJaHVJbf2xNabD3XXwde2lOOCa8GHjdFlh0=";
+  vendorHash = "sha256-E3WYExtV4VsrBZ0uEQZ36CUCK+qf8LTPlNwcdO0eEzA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];
 
diff --git a/pkgs/tools/security/sbctl/default.nix b/pkgs/tools/security/sbctl/default.nix
index 6471425a85814..a5fe6cf6548c6 100644
--- a/pkgs/tools/security/sbctl/default.nix
+++ b/pkgs/tools/security/sbctl/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "sbctl";
-  version = "0.11";
+  version = "0.13";
 
   src = fetchFromGitHub {
     owner = "Foxboron";
     repo = pname;
     rev = version;
-    hash = "sha256-kApPb8X1JCP1XfyVFcoCDd+yrytTKSkNWRHKDA3mGaQ=";
+    hash = "sha256-vxPYWoBU4k2fKWXGaMzIkUdj+EmPWTtCvMwAVmsgKaE=";
   };
 
-  vendorHash = "sha256-WbPYTETTOzqWH+q6fzyDgm0wMScbLWlksLxkDjopF4E=";
+  vendorHash = "sha256-kVXzHTONPCE1UeAnUiULjubJeZFD0DAxIk+w8/Dqs6c=";
 
   ldflags = [ "-s" "-w" "-X github.com/foxboron/sbctl.DatabasePath=${databasePath}" ];
 
diff --git a/pkgs/tools/security/scrypt/default.nix b/pkgs/tools/security/scrypt/default.nix
index aad2873d4aca0..d2b8228f6511f 100644
--- a/pkgs/tools/security/scrypt/default.nix
+++ b/pkgs/tools/security/scrypt/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "scrypt";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchurl {
     url = "https://www.tarsnap.com/scrypt/${pname}-${version}.tgz";
-    sha256 = "1hnl0r6pmyxiy4dmafmqk1db7wpc0x9rqpzqcwr9d2cmghcj6byz";
+    sha256 = "sha256-1jLBGTQgrG+uv5SC5l4z06VmTszWQ7CaUJ0h0cHym+I=";
   };
 
   outputs = [ "out" "lib" "dev" ];
diff --git a/pkgs/tools/security/secp256k1/default.nix b/pkgs/tools/security/secp256k1/default.nix
index 8485b28ce5a07..5494f8f26c24e 100644
--- a/pkgs/tools/security/secp256k1/default.nix
+++ b/pkgs/tools/security/secp256k1/default.nix
@@ -7,13 +7,13 @@
 stdenv.mkDerivation rec {
   pname = "secp256k1";
 
-  version = "0.3.2";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "bitcoin-core";
     repo = "secp256k1";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-9nJJVENMXjXEJZzw8DHzin1DkFkF8h9m/c6PuM7Uk4s=";
+    sha256 = "sha256-atq34GnWkSkWTWxZP4PCSF3hIjGFhQ534E+WUtLRkiM=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/security/sedutil/default.nix b/pkgs/tools/security/sedutil/default.nix
index cb0e367fa2ccf..0e83472da0e70 100644
--- a/pkgs/tools/security/sedutil/default.nix
+++ b/pkgs/tools/security/sedutil/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , autoreconfHook
 }:
 
@@ -15,6 +16,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-NG/7aqe48ShHWW5hW8axYWV4+zX0dBE7Wy9q58l0S3E=";
   };
 
+  patches = [
+    # Fix for gcc-13 pending upstream inclusion:
+    #   https://github.com/Drive-Trust-Alliance/sedutil/pull/425
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/Drive-Trust-Alliance/sedutil/commit/927cd88cad7bea94c2eebecc18f7881f0defaccb.patch";
+      hash = "sha256-/Lvn3CQd7pzNhLa7sQY8VwbyJK/jEM5FzLijTQnzXx8=";
+    })
+  ];
+
   postPatch = ''
     patchShebangs .
   '';
diff --git a/pkgs/tools/security/sequoia-chameleon-gnupg/default.nix b/pkgs/tools/security/sequoia-chameleon-gnupg/default.nix
index 95d0426729e0f..96d15250e1637 100644
--- a/pkgs/tools/security/sequoia-chameleon-gnupg/default.nix
+++ b/pkgs/tools/security/sequoia-chameleon-gnupg/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia-chameleon-gnupg";
-  version = "0.3.2";
+  version = "unstable-2023-11-22";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-Qe9KKZh0Zim/BdPn2aMxkH6FBOBB6zijkp5ft9YfzzU=";
+    rev = "fd9df5a4e1ec3c3ca986a1a25bacf13f024c934a";
+    hash = "sha256-OxWlkOQxuuCFyLMx+ucervyqIduUpyJ9lCGFQlfEUFc=";
   };
 
-  cargoHash = "sha256-KuVSpbAfLVIy5YJ/8qb+Rfw1TgZkWfR+Ai9gDcf4EQ4=";
+  cargoHash = "sha256-4+PA1kYJgn8yDAYr88DQYg6sdgSN3MWzKAUATW3VO6I=";
 
   nativeBuildInputs = [
     rustPlatform.bindgenHook
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
     sqlite
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   # gpgconf: error creating socket directory
diff --git a/pkgs/tools/security/sequoia-sq/default.nix b/pkgs/tools/security/sequoia-sq/default.nix
index d8bac3e707259..699a8ee63632f 100644
--- a/pkgs/tools/security/sequoia-sq/default.nix
+++ b/pkgs/tools/security/sequoia-sq/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia-sq";
-  version = "0.31.0";
+  version = "0.32.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
     repo = "sequoia-sq";
     rev = "v${version}";
-    hash = "sha256-rrNN52tDM3CEGyNvsT3x4GmfWIpU8yoT2XsgOhPyLjo=";
+    hash = "sha256-2a6LIW5ohSi7fbMwk/wmNJ0AOz5JIXiXJI7EoVKv1Sk=";
   };
 
-  cargoHash = "sha256-B+gtUzUB99At+kusupsN/v6sCbpXs36/EbpTL3gUxnc=";
+  cargoHash = "sha256-beA0viJVDjfANsPegkc/x2syVp8uGKTMnrPcM7jcvG4=";
 
   nativeBuildInputs = [
     pkg-config
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
     openssl
     sqlite
     nettle
-  ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security SystemConfiguration ]);
 
   # Sometimes, tests fail on CI (ofborg) & hydra without this
   checkFlags = [
diff --git a/pkgs/tools/security/sequoia-sqop/default.nix b/pkgs/tools/security/sequoia-sqop/default.nix
index f4cae90b546b8..19dd99b871b0e 100644
--- a/pkgs/tools/security/sequoia-sqop/default.nix
+++ b/pkgs/tools/security/sequoia-sqop/default.nix
@@ -9,7 +9,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia-sqop";
-  version = "0.28.0";
+  version = "0.31.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage rec {
     # generated etc
     repo = "sequoia-sop";
     rev = "v${version}";
-    hash = "sha256-4A0eZMXzFtojRD5cXQQUVoS32sQ2lWtFll+q6yhnwG4=";
+    hash = "sha256-qGSVmjLdx84YphAXt1MRF1cIfk7xLOvtUj+3e7vO+jA=";
   };
 
-  cargoHash = "sha256-gH5WM+PmciViD+eFVlp8tzdc0KdYy1WZLQi92UEWVG4=";
+  cargoHash = "sha256-y4n6UPAYwI9P+jw59TOf98xSdNvzEgJp5n/GtiixsIU=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/security/shellz/default.nix b/pkgs/tools/security/shellz/default.nix
index f1b226c32137c..e7d44bd21926f 100644
--- a/pkgs/tools/security/shellz/default.nix
+++ b/pkgs/tools/security/shellz/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/evilsocket/shellz";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "shellz";
   };
 }
diff --git a/pkgs/tools/security/sherlock/default.nix b/pkgs/tools/security/sherlock/default.nix
index 05954db516292..e3d6f658aeaff 100644
--- a/pkgs/tools/security/sherlock/default.nix
+++ b/pkgs/tools/security/sherlock/default.nix
@@ -1,50 +1,61 @@
-{ stdenv, lib, fetchFromGitHub, python3, makeWrapper }:
-let
-  pyenv = python3.withPackages (pp: with pp; [
-    beautifulsoup4
-    certifi
-    colorama
-    lxml
-    pandas
-    pysocks
-    requests
-    requests-futures
-    soupsieve
-    stem
-    torrequest
-  ]);
-in
-stdenv.mkDerivation rec {
+{ lib
+, fetchFromGitHub
+, makeWrapper
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
   pname = "sherlock";
-  version = "0.14.3";
+  version = "unstable-2023-10-06";
+  format = "other";
 
   src = fetchFromGitHub {
     owner = "sherlock-project";
     repo = pname;
-    rev = "ab2f6788340903df797d8c336a97fa6e742daf77";
-    hash = "sha256-AbWZa33DNrDM0FdjoFSVMnz4Ph7mUiUe/erhI3w7GQQ";
+    rev = "7ec56895a37ada47edd6573249c553379254d14a";
+    hash = "sha256-bK5yEdh830vgKcsU3gLH7TybLncnX6eRIiYPUiVWM74=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
-  postPatch = ''
-    substituteInPlace sherlock/sherlock.py \
-      --replace "os.path.dirname(__file__)" "\"$out/share\""
-  '';
+  propagatedBuildInputs = with python3.pkgs; [
+    certifi
+    colorama
+    pandas
+    pysocks
+    requests
+    requests-futures
+    stem
+    torrequest
+  ];
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/bin $out/share
-    cp ./sherlock/*.py $out/bin/
-    cp --recursive ./sherlock/resources/ $out/share
-    makeWrapper ${pyenv.interpreter} $out/bin/sherlock --add-flags "$out/bin/sherlock.py"
+    cp -R ./sherlock $out/share
+
     runHook postInstall
   '';
 
+  postFixup = ''
+    makeWrapper ${python3.interpreter} $out/bin/sherlock \
+      --add-flags $out/share/sherlock/sherlock.py \
+      --prefix PYTHONPATH : "$PYTHONPATH"
+  '';
+
+  checkInputs = with python3.pkgs; [
+    exrex
+  ];
+
   checkPhase = ''
     runHook preCheck
-    cd $srcRoot/sherlock
-    ${pyenv.interpreter} -m unittest tests.all.SherlockSiteCoverageTests --verbose
+
+    cd $out/share/sherlock
+    for tests in all test_multiple_usernames; do
+      ${python3.interpreter} -m unittest tests.$tests --verbose
+    done
+
     runHook postCheck
   '';
 
@@ -52,6 +63,7 @@ stdenv.mkDerivation rec {
     homepage = "https://sherlock-project.github.io/";
     description = "Hunt down social media accounts by username across social networks";
     license = licenses.mit;
+    mainProgram = "sherlock";
     maintainers = with maintainers; [ applePrincess ];
   };
 }
diff --git a/pkgs/tools/security/sigma-cli/default.nix b/pkgs/tools/security/sigma-cli/default.nix
index bbed9910f251b..817f459956433 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.7.7";
-  format = "pyproject";
+  version = "0.7.11";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "SigmaHQ";
-    repo = pname;
+    repo = "sigma-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qqe9nJZfCb7xh93ERrV3XpqdtfeRECt7RDca9eQU3eQ=";
+    hash = "sha256-cNrI+YWwLK9sgvVYPOcTXW29omVRqnhh/458FuaoODo=";
   };
 
   postPatch = ''
@@ -50,6 +50,15 @@ python3.pkgs.buildPythonApplication rec {
     "test_plugin_install_notexisting"
     "test_plugin_install"
     "test_plugin_uninstall"
+    # Tests require network access
+    "test_check_with_issues"
+    "test_plugin_show_identifier"
+    "test_plugin_show_nonexisting"
+    "test_plugin_show_uuid"
+    # Tests compare STDOUT results
+    "test_check_valid"
+    "test_check_stdin"
+    "test_check_exclude"
   ];
 
   pythonImportsCheck = [
@@ -59,6 +68,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "Sigma command line interface";
     homepage = "https://github.com/SigmaHQ/sigma-cli";
+    changelog = "https://github.com/SigmaHQ/sigma-cli/releases/tag/v${version}";
     license = with licenses; [ lgpl21Plus ];
     maintainers = with maintainers; [ fab ];
     mainProgram = "sigma";
diff --git a/pkgs/tools/security/silenthound/default.nix b/pkgs/tools/security/silenthound/default.nix
index 92b651bc9a837..f2915c447675a 100644
--- a/pkgs/tools/security/silenthound/default.nix
+++ b/pkgs/tools/security/silenthound/default.nix
@@ -39,5 +39,6 @@ python3.pkgs.buildPythonApplication rec {
     # Unknown license, https://github.com/layer8secure/SilentHound/issues/1
     license = licenses.unfree;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "silenthound";
   };
 }
diff --git a/pkgs/tools/security/slowhttptest/default.nix b/pkgs/tools/security/slowhttptest/default.nix
index b4c2b0efeec3b..94e60a6a00845 100644
--- a/pkgs/tools/security/slowhttptest/default.nix
+++ b/pkgs/tools/security/slowhttptest/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/shekyan/slowhttptest";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "slowhttptest";
   };
 }
diff --git a/pkgs/tools/security/slsa-verifier/default.nix b/pkgs/tools/security/slsa-verifier/default.nix
index 6e4d70787d844..5a6ab18a49ec5 100644
--- a/pkgs/tools/security/slsa-verifier/default.nix
+++ b/pkgs/tools/security/slsa-verifier/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "slsa-verifier";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "slsa-framework";
     repo = "slsa-verifier";
     rev = "v${version}";
-    hash = "sha256-2/4ExhMWXIKpkYQIodEsajA7q9zb4tOT9QUGunAutl0=";
+    hash = "sha256-swyBDJTv6Sp65Q46QGm/N/kIfGfln+vBTYXVOI9CAOE=";
   };
 
-  vendorHash = "sha256-TwPbxoNu9PYAFEbUT5htyUY1RbkGow712ARJW6y496E=";
+  vendorHash = "sha256-rCGj2o59US2t/ckqXirEDgYn9dGvVSzMVcFEZosasBc=";
 
   CGO_ENABLED = 0;
   GO111MODULE = "on";
@@ -27,7 +27,6 @@ buildGoModule rec {
   ldflags = [
     "-s"
     "-w"
-    "-buildid="
     "-X sigs.k8s.io/release-utils/version.gitVersion=${version}"
   ];
 
diff --git a/pkgs/tools/security/smbmap/default.nix b/pkgs/tools/security/smbmap/default.nix
index f4236ef2fcd31..698fd8b194486 100644
--- a/pkgs/tools/security/smbmap/default.nix
+++ b/pkgs/tools/security/smbmap/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "smbmap";
-  version = "1.9.2";
+  version = "1.10.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "ShawnDEvans";
     repo = "smbmap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n0cLj1K9Xt/1TlHOh9Kp/xIXYaUhmGSxrHL/yxDbfk4=";
+    hash = "sha256-6+kO2Wfz3gGABS4fGxoebCubzvFAaJIGnMPA+k1mckc=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/smbscan/default.nix b/pkgs/tools/security/smbscan/default.nix
index f807704005e14..ea2a99b64bb0d 100644
--- a/pkgs/tools/security/smbscan/default.nix
+++ b/pkgs/tools/security/smbscan/default.nix
@@ -37,5 +37,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/jeffhacks/smbscan";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "smbscan";
   };
 }
diff --git a/pkgs/tools/security/sn0int/default.nix b/pkgs/tools/security/sn0int/default.nix
index 397f7eb832e7c..66f89f77e8eae 100644
--- a/pkgs/tools/security/sn0int/default.nix
+++ b/pkgs/tools/security/sn0int/default.nix
@@ -1,10 +1,12 @@
 { lib
 , fetchFromGitHub
 , rustPlatform
-, libsodium
 , libseccomp
-, sqlite
+, libsodium
 , pkg-config
+, pkgs
+, sqlite
+, stdenv
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -26,8 +28,11 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = [
     libsodium
-    libseccomp
     sqlite
+  ] ++ lib.optionals stdenv.isLinux [
+    libseccomp
+  ] ++ lib.optionals stdenv.isDarwin [
+    pkgs.darwin.apple_sdk.frameworks.Security
   ];
 
   # One of the dependencies (chrootable-https) tries to read "/etc/resolv.conf"
@@ -40,6 +45,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/kpcyrd/sn0int/releases/tag/v${version}";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ fab xrelkd ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/security/snallygaster/default.nix b/pkgs/tools/security/snallygaster/default.nix
index 2f7f5d12192aa..662b46700c78b 100644
--- a/pkgs/tools/security/snallygaster/default.nix
+++ b/pkgs/tools/security/snallygaster/default.nix
@@ -33,6 +33,6 @@ python3Packages.buildPythonApplication rec {
     description = "Tool to scan for secret files on HTTP servers";
     homepage = "https://github.com/hannob/snallygaster";
     license = licenses.cc0;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/security/solo2-cli/default.nix b/pkgs/tools/security/solo2-cli/default.nix
index 1580b946e71e0..417afd93a99c3 100644
--- a/pkgs/tools/security/solo2-cli/default.nix
+++ b/pkgs/tools/security/solo2-cli/default.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = [ "cli" ];
 
   meta = with lib; {
-    description = "A CLI tool for managing SoloKeys' Solo2 USB security keys.";
+    description = "A CLI tool for managing SoloKeys' Solo2 USB security keys";
     homepage = "https://github.com/solokeys/solo2-cli";
     license = with licenses; [ asl20 mit ]; # either at your option
     maintainers = with maintainers; [ lukegb ];
diff --git a/pkgs/tools/security/sops/default.nix b/pkgs/tools/security/sops/default.nix
index 6a1dc84fe11fd..1c1b058973602 100644
--- a/pkgs/tools/security/sops/default.nix
+++ b/pkgs/tools/security/sops/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
     homepage = "https://github.com/getsops/sops";
     description = "Simple and flexible tool for managing secrets";
     changelog = "https://github.com/getsops/sops/blob/v${version}/CHANGELOG.rst";
+    mainProgram = "sops";
     maintainers = [ maintainers.marsam ];
     license = licenses.mpl20;
   };
diff --git a/pkgs/tools/security/spire/default.nix b/pkgs/tools/security/spire/default.nix
index 13e42efa78881..abebc4e3e1243 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.7.2";
+  version = "1.8.7";
 
   outputs = [ "out" "agent" "server" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "spiffe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3D7TlL4SulLAqpVIMJ4Yl2OWnNsMYMLVJqgGhOYMiio=";
+    sha256 = "sha256-D6NNG//1rM7EIzawKdMA/8nloqMNAkF75YyFpHvxUkI=";
   };
 
-  vendorHash = "sha256-Vct++sjkkosBOY0Uho58MHSQoL5121kYbQTf1j+HFUk=";
+  vendorHash = "sha256-bSQitqXTY1LMnpGkXAmDiDsMd0xZHrcr/Ms1F6avBKM=";
 
   subPackages = [ "cmd/spire-agent" "cmd/spire-server" ];
 
diff --git a/pkgs/tools/security/srm/default.nix b/pkgs/tools/security/srm/default.nix
index ba776b8af3e3f..7cde2be4fbc5f 100644
--- a/pkgs/tools/security/srm/default.nix
+++ b/pkgs/tools/security/srm/default.nix
@@ -1,14 +1,18 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchsvn, autoreconfHook }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "srm";
-  version = "1.2.15";
+  version = "1.2.15-unstable-2017-12-18";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/project/srm/${version}/srm-${version}.tar.gz";
-    sha256 = "10sjarhprs6s4zandndg720528rcnd4xk8dl48pjj7li1q9c30vm";
+  src = fetchsvn {
+    url = "svn://svn.code.sf.net/p/srm/srm/trunk/";
+    rev = "268";
+    sha256 = "sha256-bY8p6IS5zeByoe/uTmvBAaBN4Wu7J19dVSpbtqx4OeQ=";
   };
 
+  patches = [ ./fix-output-in-verbose-mode.patch ];
+  nativeBuildInputs = [ autoreconfHook ];
+
   meta = with lib; {
     description = "Delete files securely";
     longDescription = ''
@@ -22,5 +26,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch b/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch
new file mode 100644
index 0000000000000..966d7ba4612ea
--- /dev/null
+++ b/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch
@@ -0,0 +1,57 @@
+diff --git a/src/sunlink.c b/src/sunlink.c
+index 7050713..ffcb8d3 100644
+--- a/src/sunlink.c
++++ b/src/sunlink.c
+@@ -468,6 +468,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 5, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 6, 0xFF) < 0) return -1;
+       if(overwrite_random(srm, 7, 1) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_DOE)
+     {
+@@ -475,6 +477,8 @@ static int overwrite_selector(struct srm_target *srm)
+ 	error("US DoE mode");
+       if(overwrite_random(srm, 1, 2) < 0) return -1;
+       if(overwrite_bytes(srm, 3, 'D', 'o', 'E') < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_OPENBSD)
+     {
+@@ -483,12 +487,16 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 1, 0xFF) < 0) return -1;
+       if(overwrite_byte(srm, 2, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 3, 0xFF) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_SIMPLE)
+     {
+       if((srm->options&SRM_OPT_V) > 1)
+ 	error("Simple mode");
+       if(overwrite_byte(srm, 1, 0x00) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_RCMP)
+     {
+@@ -497,6 +505,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 1, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 2, 0xFF) < 0) return -1;
+       if(overwrite_string(srm, 3, "RCMP") < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else
+     {
+@@ -535,6 +545,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_random(srm, 32, 4) < 0) return -1;
+       /* if you want to backup your partition or shrink your vmware image having the file zero-ed gives best compression results. */
+       if(overwrite_byte(srm, 36, 0x00) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+ #if 0
+   if((srm->options & SRM_OPT_V) > 1)
diff --git a/pkgs/tools/security/ssb/default.nix b/pkgs/tools/security/ssb/default.nix
deleted file mode 100644
index 725f72e6c7cf8..0000000000000
--- a/pkgs/tools/security/ssb/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-}:
-
-buildGoModule rec {
-  pname = "ssb";
-  version = "0.1.1";
-
-  src = fetchFromGitHub {
-    owner = "kitabisa";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0dkd02l30461cwn5hsssnjyb9s8ww179wll3l7z5hy1hv3x6h9g1";
-  };
-
-  vendorHash = null;
-
-  meta = with lib; {
-    description = "Tool to bruteforce SSH server";
-    homepage = "https://github.com/kitabisa/ssb";
-    license = with licenses; [ asl20 ];
-    maintainers = with maintainers; [ fab ];
-    broken = true; # vendor isn't reproducible with go > 1.17: nix-build -A $name.goModules --check
-  };
-}
diff --git a/pkgs/tools/security/ssh-audit/default.nix b/pkgs/tools/security/ssh-audit/default.nix
index 2a4abc11ea7b8..54ec4e8f4ee1e 100644
--- a/pkgs/tools/security/ssh-audit/default.nix
+++ b/pkgs/tools/security/ssh-audit/default.nix
@@ -1,24 +1,29 @@
 { lib
 , fetchFromGitHub
+, nixosTests
 , python3Packages
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "ssh-audit";
-  version = "3.0.0";
+  version = "3.1.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jtesta";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-+v+DLZPDC5uffTIJPzMvY/nLoy7BGiAsTddjNZZhTpo=";
+    sha256 = "sha256-pO6qpY1gqE40bb7q8J/35Dd0XckoFAaIBwWjFsxFO3c=";
   };
 
   nativeCheckInputs = with python3Packages; [
     pytestCheckHook
   ];
 
+  passthru.tests = {
+    inherit (nixosTests) ssh-audit;
+  };
+
   meta = with lib; {
     description = "Tool for ssh server auditing";
     homepage = "https://github.com/jtesta/ssh-audit";
diff --git a/pkgs/tools/security/ssh-to-pgp/default.nix b/pkgs/tools/security/ssh-to-pgp/default.nix
index 29d3c82ac209e..c8735cffd5f2c 100644
--- a/pkgs/tools/security/ssh-to-pgp/default.nix
+++ b/pkgs/tools/security/ssh-to-pgp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ssh-to-pgp";
-  version = "1.1.0";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "ssh-to-pgp";
     rev = version;
-    sha256 = "sha256-3R/3YPYLdirK3QtiRNO2tpJRO2DKgN+K4txb9xwnQvQ=";
+    sha256 = "sha256-SoHKBuI3ROfWTI45rFdMNkHVYHa5nX1A0/ljgGpF8NY=";
   };
 
-  vendorHash = "sha256-RCz2+IZdgmPnEakKxn/C3zFfRyWnMLB51Nm8VGOxBkc=";
+  vendorHash = "sha256-sHvb6jRSMXIUv1D0dbTJWmETCaFr9BquNmcc8J06m/o=";
 
   nativeCheckInputs = [ gnupg ];
   checkPhase = ''
diff --git a/pkgs/tools/security/sshocker/default.nix b/pkgs/tools/security/sshocker/default.nix
index b42c0a7580c39..bb8177ea38780 100644
--- a/pkgs/tools/security/sshocker/default.nix
+++ b/pkgs/tools/security/sshocker/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "sshocker";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "lima-vm";
     repo = "sshocker";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Z1Dg+AeyfFmUDc3jV8/tOcUrxuyInfwubzo0cLpfFl8=";
+    hash = "sha256-IDbGRQSLQlT4lt2bextGYB4fJfbpLhPx3JF1eYDJ6gw=";
   };
 
-  vendorHash = "sha256-ceQzYByJNXr02IDBKhYuqnKfaTbnX5T03p2US4HRu6I=";
+  vendorHash = "sha256-kee5D80RjCVosts/Jd6WuvtiK/J5+79HsM5ITHs15xc=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/sslscan/default.nix b/pkgs/tools/security/sslscan/default.nix
index 55207b1231f4e..529b1bb1683e6 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.1.1";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = "refs/tags/${version}";
-    hash = "sha256-AsOuNJ5adI7/8A6siK4MzLtpBstsU7JxX1d6WWVJHAY=";
+    hash = "sha256-oLlMeFVicDwr2XjCX/0cBMTXLKB8js50646uAf3tP9k=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/sss-cli/default.nix b/pkgs/tools/security/sss-cli/default.nix
new file mode 100644
index 0000000000000..80daa4a6627ea
--- /dev/null
+++ b/pkgs/tools/security/sss-cli/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sss-cli";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "dsprenkels";
+    repo = "sss-cli";
+    rev = "v${version}";
+    hash = "sha256-9Wht+t48SsWpj1z2yY6P7G+h9StmuqfMdODtyPffhak=";
+  };
+
+  cargoPatches = [ ./fix-cargo-lock.patch ];
+
+  cargoHash = "sha256-nKb0J9ym3ZYC80KemwQwT5vVtQUngYD4/091hAIYAiU=";
+
+  meta = with lib; {
+    homepage = "https://github.com/dsprenkels/sss-cli";
+    description = "Command line program for secret-sharing strings";
+    license = licenses.mit;
+    maintainers = with maintainers; [ laalsaas ];
+  };
+}
diff --git a/pkgs/tools/security/sss-cli/fix-cargo-lock.patch b/pkgs/tools/security/sss-cli/fix-cargo-lock.patch
new file mode 100644
index 0000000000000..4af581c4962d8
--- /dev/null
+++ b/pkgs/tools/security/sss-cli/fix-cargo-lock.patch
@@ -0,0 +1,21 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index a57c5d8..27278d9 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1,5 +1,7 @@
+ # This file is automatically @generated by Cargo.
+ # It is not intended for manual editing.
++version = 3
++
+ [[package]]
+ name = "aho-corasick"
+ version = "0.7.15"
+@@ -253,7 +255,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "shamirsecretsharing-cli"
+-version = "0.1.0"
++version = "0.1.1"
+ dependencies = [
+  "atty",
+  "clap",
diff --git a/pkgs/tools/security/stacs/default.nix b/pkgs/tools/security/stacs/default.nix
index 672cd082849cf..205d85f0622e9 100644
--- a/pkgs/tools/security/stacs/default.nix
+++ b/pkgs/tools/security/stacs/default.nix
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3.pkgs; [
     click
-    pydantic
+    pydantic_1
     typing-extensions
     yara-python
   ];
diff --git a/pkgs/tools/security/steamguard-cli/default.nix b/pkgs/tools/security/steamguard-cli/default.nix
deleted file mode 100644
index 643a5ad07ef96..0000000000000
--- a/pkgs/tools/security/steamguard-cli/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "steamguard-cli";
-  version = "0.12.2";
-
-  src = fetchFromGitHub {
-    owner = "dyc3";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-p3v7XiOXWH6F1oIiARr0K3sYOXCcNS97+THIG7k72wk=";
-  };
-
-  cargoHash = "sha256-qQA7UdtFqGPyCRHdV+FfbQFiPaOeW4rT4dYC3BeHDw0=";
-
-  meta = with lib; {
-    changelog = "https://github.com/dyc3/steamguard-cli/releases/tag/v${version}";
-    description = "A linux utility for generating 2FA codes for Steam and managing Steam trade confirmations.";
-    homepage = "https://github.com/dyc3/steamguard-cli";
-    license = with licenses; [ gpl3Only ];
-    mainProgram = "steamguard";
-    maintainers = with maintainers; [ surfaceflinger ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/security/stegseek/default.nix b/pkgs/tools/security/stegseek/default.nix
index f898b5eab0e6a..dd2c100457541 100644
--- a/pkgs/tools/security/stegseek/default.nix
+++ b/pkgs/tools/security/stegseek/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/RickdeJager/stegseek";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "stegseek";
   };
 }
diff --git a/pkgs/tools/security/step-ca/default.nix b/pkgs/tools/security/step-ca/default.nix
index 7e149ad143bfe..6bdbfa02d62a3 100644
--- a/pkgs/tools/security/step-ca/default.nix
+++ b/pkgs/tools/security/step-ca/default.nix
@@ -12,20 +12,20 @@
 
 buildGoModule rec {
   pname = "step-ca";
-  version = "0.25.0";
+  version = "0.25.2";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "certificates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CO9Qjx4D6qNGjOdva88KRCJOQq85r5U5nwmXC1G94dY=";
+    hash = "sha256-cP3QypBNWGbr7R7lJLfaoBh6C37ubGuaxnxWlZ1Z000=";
   };
 
-  vendorHash = "sha256-Weq8sS+8gsfdoVSBDm8E2DCrngfNsolqQR2/yd9etPo=";
+  vendorHash = "sha256-AXMMpzXEhdKSGeVg/KK2NEgalxIXP6DUTcoxOQVqow4=";
 
-  ldflags = [ "-buildid=" ];
-
-  nativeBuildInputs = lib.optionals hsmSupport [ pkg-config ];
+  nativeBuildInputs = lib.optionals hsmSupport [
+    pkg-config
+  ];
 
   buildInputs =
     lib.optionals (hsmSupport && stdenv.isLinux) [ pcsclite ]
@@ -43,9 +43,14 @@ buildGoModule rec {
     install -Dm444 -t $out/lib/systemd/system systemd/step-ca.service
   '';
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   # Tests start http servers which need to bind to local addresses:
   # panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
   __darwinAllowLocalNetworking = true;
+
   # Tests need to run in a reproducible order, otherwise they run unreliably on
   # (at least) x86_64-linux.
   checkFlags = [ "-p 1" ];
diff --git a/pkgs/tools/security/step-cli/default.nix b/pkgs/tools/security/step-cli/default.nix
index 040c25b65c3f1..4ba73b2ac2e54 100644
--- a/pkgs/tools/security/step-cli/default.nix
+++ b/pkgs/tools/security/step-cli/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "step-cli";
-  version = "0.25.0";
+  version = "0.25.2";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8sMF7KSrHyApdXZ3Oy4KogEqd6R8KlQVkqIcvYQBPJY=";
+    hash = "sha256-umo0f4cXxnxg3xH1aHeJE2brUT9w+Gp+0Qzq4zIQ8oI=";
   };
 
   ldflags = [
@@ -25,7 +25,7 @@ buildGoModule rec {
     rm command/certificate/remote_test.go
   '';
 
-  vendorHash = "sha256-c+2mOAMdGcqeL7zAURso3XVcnb93HNS/i6c63kiIHKU=";
+  vendorHash = "sha256-R9UJHXs35/yvwlqu1iR3lJN/w8DWMqw48Kc+7JKfD7I=";
 
   meta = with lib; {
     description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
diff --git a/pkgs/tools/security/step-kms-plugin/default.nix b/pkgs/tools/security/step-kms-plugin/default.nix
index 66413b1798aca..9e948bf52dd6f 100644
--- a/pkgs/tools/security/step-kms-plugin/default.nix
+++ b/pkgs/tools/security/step-kms-plugin/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "step-kms-plugin";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-pbSv3qTQkeYWtg5HKu9kUIWYw6t6yKKA4GQuiwGEPD8=";
+    hash = "sha256-l0MMcLghhqVVQAdhk0a0nDqYvJbXCV2PFbRtiGQcDn0=";
   };
 
-  vendorHash = "sha256-hb1Nn/+PVhhBByQ8I9MuUEd5di5jEZVMtSpm0+qBXQk=";
+  vendorHash = "sha256-3du8KlM08N5hKmzZWYZdfPOL5R+BspbK6ABF+RSJzHg=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/security/stoken/default.nix b/pkgs/tools/security/stoken/default.nix
index 526caf44d6792..455310c202b8c 100644
--- a/pkgs/tools/security/stoken/default.nix
+++ b/pkgs/tools/security/stoken/default.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , libxml2
 , nettle
-, withGTK3 ? true
+, withGTK3 ? !stdenv.hostPlatform.isStatic
 , gtk3
 }:
 
diff --git a/pkgs/tools/security/stricat/default.nix b/pkgs/tools/security/stricat/default.nix
index bdd7d18923f17..b21498e009f1a 100644
--- a/pkgs/tools/security/stricat/default.nix
+++ b/pkgs/tools/security/stricat/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license     = lib.licenses.bsd3;
     platforms   = lib.platforms.unix;
     maintainers = [ lib.maintainers.thoughtpolice ];
+    mainProgram = "stricat";
   };
 }
diff --git a/pkgs/tools/security/sudo-rs/default.nix b/pkgs/tools/security/sudo-rs/default.nix
index 0be60c5025b7f..d0e547dc2d237 100644
--- a/pkgs/tools/security/sudo-rs/default.nix
+++ b/pkgs/tools/security/sudo-rs/default.nix
@@ -70,7 +70,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A memory safe implementation of sudo and su.";
+    description = "A memory safe implementation of sudo and su";
     homepage = "https://github.com/memorysafety/sudo-rs";
     changelog = "${meta.homepage}/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index 24c1212d607c9..996baca2567f7 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , buildPackages
 , coreutils
 , pam
@@ -13,30 +12,15 @@
 , withSssd ? false
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "sudo";
-  version = "1.9.14p3";
+  version = "1.9.15p5";
 
   src = fetchurl {
-    url = "https://www.sudo.ws/dist/${pname}-${version}.tar.gz";
-    hash = "sha256-oIMYscS8hYLABNTNmuKQOrxUnn5GuoFeQf6B0cB4K2I=";
+    url = "https://www.sudo.ws/dist/sudo-${finalAttrs.version}.tar.gz";
+    hash = "sha256-VY0QuaGZH7O5+n+nsH7EQFt677WzywsIcdvIHjqI5Vg=";
   };
 
-  patches = [
-    # Extra bugfix not included in 1.9.14p3 to address a bug that impacts the
-    # NixOS test suite for sudo.
-    (fetchpatch {
-      url = "https://github.com/sudo-project/sudo/commit/760c9c11074cb921ecc0da9fbb5f0a12afd46233.patch";
-      hash = "sha256-smwyoYEkaqfQYz9C4VVz59YMtKabOPpwhS+RBwXbWuE=";
-    })
-    # Fix for the patch above:
-    #   https://bugzilla.sudo.ws/show_bug.cgi?id=1057
-    (fetchpatch {
-      url = "https://github.com/sudo-project/sudo/commit/d148e7d8f9a98726dd4fde6f187c7d614e1258c7.patch";
-      hash = "sha256-3I3PnuAHlBs3JOn0Ul900aFxuUkDGV4sM3S5DNtW7bE=";
-    })
-  ];
-
   prePatch = ''
     # do not set sticky bit in nix store
     substituteInPlace src/Makefile.in --replace 04755 0755
@@ -87,9 +71,8 @@ stdenv.mkDerivation rec {
 
   passthru.tests = { inherit (nixosTests) sudo; };
 
-  meta = {
+  meta = with lib; {
     description = "A command to run commands as root";
-
     longDescription =
       ''
         Sudo (su "do") allows a system administrator to delegate
@@ -97,13 +80,11 @@ stdenv.mkDerivation rec {
         to run some (or all) commands as root or another user while
         providing an audit trail of the commands and their arguments.
       '';
-
     homepage = "https://www.sudo.ws/";
-
-    license = "https://www.sudo.ws/sudo/license.html";
-
-    maintainers = with lib.maintainers; [ delroth ];
-
-    platforms = lib.platforms.linux;
+    # From https://www.sudo.ws/about/license/
+    license = with licenses; [ sudo bsd2 bsd3 zlib ];
+    maintainers = with maintainers; [ delroth ];
+    platforms = platforms.linux;
+    mainProgram = "sudo";
   };
-}
+})
diff --git a/pkgs/tools/security/swtpm/default.nix b/pkgs/tools/security/swtpm/default.nix
index d132e27a8059c..8c4785dee62b2 100644
--- a/pkgs/tools/security/swtpm/default.nix
+++ b/pkgs/tools/security/swtpm/default.nix
@@ -14,14 +14,14 @@
 , nixosTests
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "swtpm";
   version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "stefanberger";
     repo = "swtpm";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-QKR5S7FlMFDw4+VpyRdqixMWyzLpQkf3QCUceQvsliU=";
   };
 
@@ -100,5 +100,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/stefanberger/swtpm";
     license = licenses.bsd3;
     maintainers = [ maintainers.baloo ];
+    mainProgram = "swtpm";
   };
-}
+})
diff --git a/pkgs/tools/security/sx-go/default.nix b/pkgs/tools/security/sx-go/default.nix
index 11a9b497fdf02..8c8ceee0fe747 100644
--- a/pkgs/tools/security/sx-go/default.nix
+++ b/pkgs/tools/security/sx-go/default.nix
@@ -41,5 +41,6 @@ buildGoModule rec {
     homepage = "https://github.com/v-byte-cpu/sx";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "sx-go";
   };
 }
diff --git a/pkgs/tools/security/tell-me-your-secrets/default.nix b/pkgs/tools/security/tell-me-your-secrets/default.nix
index c01308e0de6e3..a85a62fdfcc37 100644
--- a/pkgs/tools/security/tell-me-your-secrets/default.nix
+++ b/pkgs/tools/security/tell-me-your-secrets/default.nix
@@ -6,7 +6,7 @@
 python3.pkgs.buildPythonApplication rec {
   pname = "tell-me-your-secrets";
   version = "2.4.2";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "valayDave";
@@ -17,6 +17,7 @@ python3.pkgs.buildPythonApplication rec {
 
   pythonRelaxDeps = [
     "gitignore-parser"
+    "pandas"
   ];
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/terrascan/default.nix b/pkgs/tools/security/terrascan/default.nix
index fd8c512837ff4..91470205666b0 100644
--- a/pkgs/tools/security/terrascan/default.nix
+++ b/pkgs/tools/security/terrascan/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "terrascan";
-  version = "1.18.3";
+  version = "1.18.11";
 
   src = fetchFromGitHub {
     owner = "accurics";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-2jIdKBNn3Ajvq+fQ1OuQ0VB8+S0QYwLZnJMlGqZ7WtE=";
+    hash = "sha256-BICXMSkfGDXOqBH+4UlJmqkUSV+oZa1wg7c20EtJ3WI=";
   };
 
-  vendorHash = "sha256-PH94le8IwVuinlRsk84HGSxhBSJTTJDrou7nfD1J1JM=";
+  vendorHash = "sha256-9zD81p/UjH43B0aeqlItP9vrGMaT/zhVYv60ot153Gc=";
 
   # Tests want to download a vulnerable Terraform project
   doCheck = false;
diff --git a/pkgs/tools/security/tessen/default.nix b/pkgs/tools/security/tessen/default.nix
index 1113134a14514..e8517dda9b4e7 100644
--- a/pkgs/tools/security/tessen/default.nix
+++ b/pkgs/tools/security/tessen/default.nix
@@ -48,5 +48,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ monaaraj ];
+    mainProgram = "tessen";
   };
 }
diff --git a/pkgs/tools/security/theharvester/default.nix b/pkgs/tools/security/theharvester/default.nix
index 5280036646973..812b30f0df9af 100644
--- a/pkgs/tools/security/theharvester/default.nix
+++ b/pkgs/tools/security/theharvester/default.nix
@@ -5,16 +5,25 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "theharvester";
-  version = "4.4.4";
-  format = "setuptools";
+  version = "4.5.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "laramies";
-    repo = pname;
+    repo = "theharvester";
     rev = "refs/tags/${version}";
-    hash = "sha256-L0WbPZE2alregOvWc+0nuMvsD17ayCw3JtahGhf4B1o=";
+    hash = "sha256-tnCiI4bte2RSWSkEL2rwFz6WFjfRMMFiEBOvv3QMyos=";
   };
 
+  postPatch = ''
+    # Requirements are pinned
+    sed -i 's/==.*//' requirements/base.txt
+  '';
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     aiodns
     aiofiles
@@ -28,7 +37,7 @@ python3.pkgs.buildPythonApplication rec {
     fastapi
     lxml
     netaddr
-    orjson
+    ujson
     plotly
     pyppeteer
     python-dateutil
@@ -64,7 +73,8 @@ python3.pkgs.buildPythonApplication rec {
     '';
     homepage = "https://github.com/laramies/theHarvester";
     changelog = "https://github.com/laramies/theHarvester/releases/tag/${version}";
-    maintainers = with maintainers; [ c0bw3b fab treemo ];
     license = licenses.gpl2Only;
+    maintainers = with maintainers; [ c0bw3b fab treemo ];
+    mainProgram = "theHarvester";
   };
 }
diff --git a/pkgs/tools/security/threatest/default.nix b/pkgs/tools/security/threatest/default.nix
index cfae26aaa034e..faa5977986fca 100644
--- a/pkgs/tools/security/threatest/default.nix
+++ b/pkgs/tools/security/threatest/default.nix
@@ -6,17 +6,17 @@
 
 buildGoModule rec {
   pname = "threatest";
-  version = "1.2.4";
+  version = "1.2.5";
 
   src = fetchFromGitHub {
     owner = "DataDog";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-pCSSAEeVxi3/yK7B2g9ZZRU5TjdNd8qp+52Yc1HmxT8=";
+    hash = "sha256-rVRBrf/RTcHvKOLHNASzvij3fV+uQEuIVKb07CZ/cT0=";
   };
 
   proxyVendor = true;
-  vendorHash = "sha256-nHA+UJP6gYWdbTKFcxw1gI6X2ueTUIsHVBIlaprPwsQ=";
+  vendorHash = "sha256-zwHcGy7wjy2yx7nMi88R+z+Is+YcqGRMK0czeBNlcdA=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/security/tlsx/default.nix b/pkgs/tools/security/tlsx/default.nix
index 10915cad9ecd3..2ba9be6315b7c 100644
--- a/pkgs/tools/security/tlsx/default.nix
+++ b/pkgs/tools/security/tlsx/default.nix
@@ -5,16 +5,21 @@
 
 buildGoModule rec {
   pname = "tlsx";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-lS/D3p8Q6Zu3/XxwkC77fPS9cXVrUTkDPGd46Y+krbo=";
+    repo = "tlsx";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-FF5/STjf8joyJM6qPds1wFeRfncSamy/wWfNRZcG5kc=";
   };
 
-  vendorHash = "sha256-aEsq9LwU/ZWvuZGGzZ4NEvMWFk1m/Sr9LOXiCA/X388=";
+  vendorHash = "sha256-sJravmpvwOSZiVNWFUTLlTA4xk6drItDj4JzR8JNrOo=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
 
   # Tests require network access
   doCheck = false;
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index a4c0fc51b6442..5fc68c0a1c292 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -30,11 +30,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.8.7";
+  version = "0.4.8.10";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "sha256-sg0rnHTbKKAMB/CQ7lsCQbK2hPOv3szMa4AIkxxVdJE=";
+    sha256 = "sha256-5ii0+rcO20cncVsjzykxN1qfdoWsCPLFnqSYoXhGOoY=";
   };
 
   outputs = [ "out" "geoip" ];
@@ -46,6 +46,11 @@ stdenv.mkDerivation rec {
   patches = [ ./disable-monotonic-timer-tests.patch ];
 
   configureFlags =
+    # allow inclusion of GPL-licensed code (needed for Proof of Work defense for onion services)
+    # for more details see
+    # https://gitlab.torproject.org/tpo/onion-services/onion-support/-/wikis/Documentation/PoW-FAQ#compiling-c-tor-with-the-pow-defense
+    [ "--enable-gpl" ]
+    ++
     # cross compiles correctly but needs the following
     lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--disable-tool-name-check" ]
     ++
@@ -113,7 +118,7 @@ stdenv.mkDerivation rec {
       the TCP protocol.
     '';
 
-    license = licenses.bsd3;
+    license = with licenses; [ bsd3 gpl3Only ];
 
     maintainers = with maintainers;
       [ thoughtpolice joachifm prusnak ];
diff --git a/pkgs/tools/security/tpm2-tools/default.nix b/pkgs/tools/security/tpm2-tools/default.nix
index 4e8fd919f9ae5..d622ab5b93da6 100644
--- a/pkgs/tools/security/tpm2-tools/default.nix
+++ b/pkgs/tools/security/tpm2-tools/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tools";
-  version = "5.5";
+  version = "5.6";
 
   src = fetchurl {
     url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-H9tJxzBTe/2u0IiISIGmHjv9Eh6VfsC9zu7AJhI2wSM=";
+    sha256 = "sha256-Usi8uq3KCCq/5et+5JZ9LWMthLFndnXy8HG20uwizsM=";
   };
 
   patches = [
diff --git a/pkgs/tools/security/truecrack/default.nix b/pkgs/tools/security/truecrack/default.nix
index c58ce4ae57b19..19ae85105657f 100644
--- a/pkgs/tools/security/truecrack/default.nix
+++ b/pkgs/tools/security/truecrack/default.nix
@@ -40,7 +40,7 @@ gccStdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   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.";
+    description = "A brute-force password cracker for TrueCrypt volumes, optimized for Nvidia Cuda technology";
     homepage = "https://gitlab.com/kalilinux/packages/truecrack";
     broken = cudaSupport;
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/security/trueseeing/default.nix b/pkgs/tools/security/trueseeing/default.nix
index a9c4f300141fa..5feccbb2d8beb 100644
--- a/pkgs/tools/security/trueseeing/default.nix
+++ b/pkgs/tools/security/trueseeing/default.nix
@@ -5,36 +5,32 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "trueseeing";
-  version = "2.1.7";
-  format = "pyproject";
+  version = "2.1.10";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "alterakey";
-    repo = pname;
+    repo = "trueseeing";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pnIn+Rqun5J3F9cgeBUBX4e9WP5fgbm+vwN3Wqh/yEc=";
+    hash = "sha256-q7hUsBmTRPizmNWueFtFDc5t7rd1evMrBj3oX1Q2VfM=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
     flit-core
+    pythonRelaxDepsHook
   ];
 
+  pythonRelaxDeps = true;
+
   propagatedBuildInputs = with python3.pkgs; [
     attrs
-    ipython
     jinja2
     lxml
     pypubsub
     pyyaml
-    docker
+    termcolor
   ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "attrs~=21.4" "attrs>=21.4" \
-      --replace "docker~=5.0.3" "docker"
-  '';
-
   # Project has no tests
   doCheck = false;
 
diff --git a/pkgs/tools/security/trufflehog/default.nix b/pkgs/tools/security/trufflehog/default.nix
index 86346b62010bb..d5c8957d31a4b 100644
--- a/pkgs/tools/security/trufflehog/default.nix
+++ b/pkgs/tools/security/trufflehog/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.59.0";
+  version = "3.66.3";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-J+hmWEBjTFb7mE9uj0g4uq+VZjKS/3sIOtJyNweYkRw=";
+    hash = "sha256-US94BFN2cS9QEtOkXP6QsDsP70JUCq9cu8qpSx8VraI=";
   };
 
-  vendorHash = "sha256-xsdtqRU3Exeo/EHkA8xars9+FUnrVZRdET0PGtv4ikI=";
+  vendorHash = "sha256-yhgNsiKh0sgVn0N1LqpWT1Utapc5DL+Ueposg+bAO5o=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/trustymail/default.nix b/pkgs/tools/security/trustymail/default.nix
index eb384ce162539..88d321708886f 100644
--- a/pkgs/tools/security/trustymail/default.nix
+++ b/pkgs/tools/security/trustymail/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "trustymail";
-  version = "0.8.1";
+  version = "0.8.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "cisagov";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-hKiQWAOzUjmoCcEH9OTgkgU7s1V+Vv3+93OLkqDRDoU=";
+    hash = "sha256-aFXz78Gviki0yIcnn2EgR3mHmt0wMoY5u6RoT6zQc1Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/uncover/default.nix b/pkgs/tools/security/uncover/default.nix
index 1ea2f41447801..f0ee8aa23757f 100644
--- a/pkgs/tools/security/uncover/default.nix
+++ b/pkgs/tools/security/uncover/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "uncover";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-FJtd73z6Cc56+nBderYncjrac3xRydDeoiJqn8xW29U=";
+    hash = "sha256-CJA+rDLubghaQT+yb0zQY3y8hF0/5ISH9YFvIQHwH2Y=";
   };
 
-  vendorHash = "sha256-mpojOzGedkTthD+fHl9Uhul7tOCN1EGIin+7USoaNmE=";
+  vendorHash = "sha256-A7XPsl27Q5CaQXQUEvNB05B2M3mFGz/yZ4sOnOHxhw8=";
 
   meta = with lib; {
     description = "API wrapper to search for exposed hosts";
diff --git a/pkgs/tools/security/vals/default.nix b/pkgs/tools/security/vals/default.nix
index 9282bf7bb9cec..55fffe9fd2bf2 100644
--- a/pkgs/tools/security/vals/default.nix
+++ b/pkgs/tools/security/vals/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vals";
-  version = "0.28.0";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "variantdev";
     repo = pname;
-    sha256 = "sha256-6sKwRYbWaKrnMLU+G4/s3CTjUYeovsWttAvk1MnIFPI=";
+    sha256 = "sha256-ZF73oLe/2s+zsMNElgjnVT7GCsH4VSP1IWTy647JZyw=";
   };
 
-  vendorHash = "sha256-CwRhtC+Ome/oyTSd8rPpQ3TgBkFb9CM3XRc0k2g2lHU=";
+  vendorHash = "sha256-1wlwG0YaLcoLEh5t1hAfgQ+8EMfMDQn430nWGsuFTqs=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/vault-ssh-plus/default.nix b/pkgs/tools/security/vault-ssh-plus/default.nix
index 44be0d6e014dc..a1c77e5d0a29f 100644
--- a/pkgs/tools/security/vault-ssh-plus/default.nix
+++ b/pkgs/tools/security/vault-ssh-plus/default.nix
@@ -8,16 +8,16 @@
 }:
 buildGoModule rec {
   pname = "vault-ssh-plus";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "isometry";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-t987QIMXrG+p+mmRnVrYnhvsmkqCFe/qe1AEtzKArnY=";
+    hash = "sha256-IRmFC5WsLmHfPjS/jW5V7dNF5rNvmsh3YKwW7rGII24=";
   };
 
-  vendorHash = "sha256-VUsy4z1kIK6TDb5RYNwgDsoqjO6bsTNrXVMO7IXkjO4=";
+  vendorHash = "sha256-cuU7rEpJrwrbiXLajdv4h6GePbpZclweyB9qZ3SIjP0=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index fb9ce6fd6d5a6..ddb4532e2af12 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.14.4";
+  version = "1.15.4";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "sha256-E7lEKsbl2L6KhLgAZbemCaTIjbsvl3wg3oCURn/Judc=";
+    sha256 = "sha256-Q+j5AS8ccAfqjtPQ/y6Bfga3IxMhE5SZWxZK5OUCJ34=";
   };
 
-  vendorHash = "sha256-8ytAT7qVXAIfoeMyTBMJ6DiWn74sRM1WrrOYaKTlKMo=";
+  vendorHash = "sha256-YEEvFAZ+VqmFR3TLJ0ztgWbT2C5r5pfYM4dmCf8G7sw=";
 
   proxyVendor = true;
 
@@ -46,7 +46,7 @@ buildGoModule rec {
     homepage = "https://www.vaultproject.io/";
     description = "A tool for managing secrets";
     changelog = "https://github.com/hashicorp/vault/blob/v${version}/CHANGELOG.md";
-    license = licenses.mpl20;
+    license = licenses.bsl11;
     mainProgram = "vault";
     maintainers = with maintainers; [ rushmorem lnl7 offline pradeepchhetri Chili-Man techknowlogick ];
   };
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index f9d1dd74e1265..abb548e687757 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.15.0";
+  version = "1.15.4";
 
   src =
     let
@@ -16,11 +16,11 @@ stdenv.mkDerivation rec {
         aarch64-darwin = "darwin_arm64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-TLpH6s9odZFh9LFnLiZjpcx0+W+6XrdDhja/xcixx7s=";
-        aarch64-linux = "sha256-QQejEfJrCB+68SXhQm7Ub763ZL72Cy+HB1be+4p4XrM=";
-        i686-linux = "sha256-1dFPAIBNyDQheIdszmoiHU6AmLZ1TtbT+If7n8ZQQAY=";
-        x86_64-darwin = "sha256-51A12pOMaJGYacgiIIW3sqUytApDXrSWBkNl7fWqFgk=";
-        aarch64-darwin = "sha256-PacsdP9n7mdK/wKJW63Ajbt5G+PFPwa+XB4OEz3YUno=";
+        x86_64-linux = "sha256-E1tNqPkaZVnJXtV+ENt2Ajpdq0AYMPZSFMLAFiSxknY=";
+        aarch64-linux = "sha256-p+pYU4WenDHZmQQQFTm2ttHjxL+63NWy8G+cbAZLJEI=";
+        i686-linux = "sha256-FoClSgz/QAD7uktFcYmKsCXnS8kIm8a7BLd2N29Z/fE=";
+        x86_64-darwin = "sha256-Lykhs/tTFDBqk8SJ26k712oMUAhXlmBeNNi3Ve/M1B4=";
+        aarch64-darwin = "sha256-r9OamlIgFUGgIFX1baQCdBsDGmPwZoTVu+Zab99KnhM=";
       };
     in
     fetchzip {
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     description = "A tool for managing secrets, this binary includes the UI";
     homepage = "https://www.vaultproject.io";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    license = licenses.mpl20;
+    license = licenses.bsl11;
     maintainers = with maintainers; teams.serokell.members ++ [ offline psyanticy Chili-Man techknowlogick mkaito ];
     mainProgram = "vault";
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ];
diff --git a/pkgs/tools/security/vaultwarden/Cargo.lock b/pkgs/tools/security/vaultwarden/Cargo.lock
deleted file mode 100644
index cf74b7f886481..0000000000000
--- a/pkgs/tools/security/vaultwarden/Cargo.lock
+++ /dev/null
@@ -1,3832 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "addr2line"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aho-corasick"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "alloc-no-stdlib"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
-
-[[package]]
-name = "alloc-stdlib"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
-dependencies = [
- "alloc-no-stdlib",
-]
-
-[[package]]
-name = "android-tzdata"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "argon2"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e554a8638bdc1e4eae9984845306cc95f8a9208ba8d49c3859fd958b46774d"
-dependencies = [
- "base64ct",
- "blake2",
- "cpufeatures",
- "password-hash",
-]
-
-[[package]]
-name = "async-channel"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
-dependencies = [
- "concurrent-queue",
- "event-listener",
- "futures-core",
-]
-
-[[package]]
-name = "async-compression"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b74f44609f0f91493e3082d3734d98497e094777144380ea4db9f9905dd5b6"
-dependencies = [
- "brotli",
- "flate2",
- "futures-core",
- "memchr",
- "pin-project-lite",
- "tokio",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
-dependencies = [
- "async-lock",
- "async-task",
- "concurrent-queue",
- "fastrand 1.9.0",
- "futures-lite",
- "slab",
-]
-
-[[package]]
-name = "async-global-executor"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
-dependencies = [
- "async-channel",
- "async-executor",
- "async-io",
- "async-lock",
- "blocking",
- "futures-lite",
- "once_cell",
-]
-
-[[package]]
-name = "async-io"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
-dependencies = [
- "async-lock",
- "autocfg",
- "cfg-if",
- "concurrent-queue",
- "futures-lite",
- "log",
- "parking",
- "polling",
- "rustix 0.37.23",
- "slab",
- "socket2 0.4.9",
- "waker-fn",
-]
-
-[[package]]
-name = "async-lock"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
-dependencies = [
- "event-listener",
-]
-
-[[package]]
-name = "async-process"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
-dependencies = [
- "async-io",
- "async-lock",
- "autocfg",
- "blocking",
- "cfg-if",
- "event-listener",
- "futures-lite",
- "rustix 0.37.23",
- "signal-hook",
- "windows-sys",
-]
-
-[[package]]
-name = "async-std"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
-dependencies = [
- "async-channel",
- "async-global-executor",
- "async-io",
- "async-lock",
- "async-process",
- "crossbeam-utils",
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-lite",
- "gloo-timers",
- "kv-log-macro",
- "log",
- "memchr",
- "once_cell",
- "pin-project-lite",
- "pin-utils",
- "slab",
- "wasm-bindgen-futures",
-]
-
-[[package]]
-name = "async-stream"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
-dependencies = [
- "async-stream-impl",
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-stream-impl"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "async-task"
-version = "4.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
-
-[[package]]
-name = "async-trait"
-version = "0.1.73"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "atomic"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba"
-
-[[package]]
-name = "atomic-waker"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "backtrace"
-version = "0.3.68"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
-version = "0.21.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
-
-[[package]]
-name = "base64ct"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
-
-[[package]]
-name = "binascii"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "383d29d513d8764dcdc42ea295d979eb99c3c9f00607b3692cf68a431f7dca72"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
-
-[[package]]
-name = "blake2"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
-dependencies = [
- "digest",
-]
-
-[[package]]
-name = "block-buffer"
-version = "0.10.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "blocking"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
-dependencies = [
- "async-channel",
- "async-lock",
- "async-task",
- "atomic-waker",
- "fastrand 1.9.0",
- "futures-lite",
- "log",
-]
-
-[[package]]
-name = "brotli"
-version = "3.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
- "brotli-decompressor",
-]
-
-[[package]]
-name = "brotli-decompressor"
-version = "2.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "bytes"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
-
-[[package]]
-name = "cached"
-version = "0.44.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b195e4fbc4b6862bbd065b991a34750399c119797efff72492f28a5864de8700"
-dependencies = [
- "async-trait",
- "cached_proc_macro",
- "cached_proc_macro_types",
- "futures",
- "hashbrown 0.13.2",
- "instant",
- "once_cell",
- "thiserror",
- "tokio",
-]
-
-[[package]]
-name = "cached_proc_macro"
-version = "0.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b48814962d2fd604c50d2b9433c2a41a0ab567779ee2c02f7fba6eca1221f082"
-dependencies = [
- "cached_proc_macro_types",
- "darling",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "cached_proc_macro_types"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
-
-[[package]]
-name = "cc"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "chrono"
-version = "0.4.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
-dependencies = [
- "android-tzdata",
- "iana-time-zone",
- "num-traits",
- "serde",
- "winapi",
-]
-
-[[package]]
-name = "chrono-tz"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1369bc6b9e9a7dfdae2055f6ec151fe9c554a9d23d357c0237cee2e25eaabb7"
-dependencies = [
- "chrono",
- "chrono-tz-build",
- "phf",
-]
-
-[[package]]
-name = "chrono-tz-build"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2f5ebdc942f57ed96d560a6d1a459bae5851102a25d5bf89dc04ae453e31ecf"
-dependencies = [
- "parse-zoneinfo",
- "phf",
- "phf_codegen",
-]
-
-[[package]]
-name = "concurrent-queue"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "cookie"
-version = "0.16.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
-dependencies = [
- "percent-encoding",
- "time",
- "version_check",
-]
-
-[[package]]
-name = "cookie"
-version = "0.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24"
-dependencies = [
- "percent-encoding",
- "time",
- "version_check",
-]
-
-[[package]]
-name = "cookie_store"
-version = "0.16.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d606d0fba62e13cf04db20536c05cb7f13673c161cb47a47a82b9b9e7d3f1daa"
-dependencies = [
- "cookie 0.16.2",
- "idna 0.2.3",
- "log",
- "publicsuffix",
- "serde",
- "serde_derive",
- "serde_json",
- "time",
- "url",
-]
-
-[[package]]
-name = "cookie_store"
-version = "0.19.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5a18f35792056f8c7c2de9c002e7e4fe44c7b5f66e7d99f46468dbb730a7ea7"
-dependencies = [
- "cookie 0.16.2",
- "idna 0.3.0",
- "log",
- "publicsuffix",
- "serde",
- "serde_derive",
- "serde_json",
- "time",
- "url",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "cron"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ff76b51e4c068c52bfd2866e1567bee7c567ae8f24ada09fd4307019e25eab7"
-dependencies = [
- "chrono",
- "nom",
- "once_cell",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array",
- "typenum",
-]
-
-[[package]]
-name = "darling"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
-dependencies = [
- "darling_core",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "dashmap"
-version = "5.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d"
-dependencies = [
- "cfg-if",
- "hashbrown 0.14.0",
- "lock_api",
- "once_cell",
- "parking_lot_core",
-]
-
-[[package]]
-name = "data-encoding"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
-
-[[package]]
-name = "data-url"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f"
-
-[[package]]
-name = "deranged"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929"
-
-[[package]]
-name = "devise"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6eacefd3f541c66fc61433d65e54e0e46e0a029a819a7dbbc7a7b489e8a85f8"
-dependencies = [
- "devise_codegen",
- "devise_core",
-]
-
-[[package]]
-name = "devise_codegen"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8cf4b8dd484ede80fd5c547592c46c3745a617c8af278e2b72bea86b2dfed6"
-dependencies = [
- "devise_core",
- "quote",
-]
-
-[[package]]
-name = "devise_core"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35b50dba0afdca80b187392b24f2499a88c336d5a8493e4b4ccfb608708be56a"
-dependencies = [
- "bitflags 2.4.0",
- "proc-macro2",
- "proc-macro2-diagnostics",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "diesel"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7a532c1f99a0f596f6960a60d1e119e91582b24b39e2d83a190e61262c3ef0c"
-dependencies = [
- "bitflags 2.4.0",
- "byteorder",
- "chrono",
- "diesel_derives",
- "itoa",
- "libsqlite3-sys",
- "mysqlclient-sys",
- "percent-encoding",
- "pq-sys",
- "r2d2",
- "time",
- "url",
-]
-
-[[package]]
-name = "diesel_derives"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74398b79d81e52e130d991afeed9c86034bb1b7735f46d2f5bf7deb261d80303"
-dependencies = [
- "diesel_table_macro_syntax",
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "diesel_logger"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23010b507517129dc9b11fb35f36d76fd2d3dd4c85232733697622e345375f2f"
-dependencies = [
- "diesel",
- "log",
-]
-
-[[package]]
-name = "diesel_migrations"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac"
-dependencies = [
- "diesel",
- "migrations_internals",
- "migrations_macros",
-]
-
-[[package]]
-name = "diesel_table_macro_syntax"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
-dependencies = [
- "syn 2.0.28",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "block-buffer",
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "dotenvy"
-version = "0.15.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
-
-[[package]]
-name = "either"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
-
-[[package]]
-name = "email-encoding"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbfb21b9878cf7a348dcb8559109aabc0ec40d69924bd706fa5149846c4fef75"
-dependencies = [
- "base64 0.21.2",
- "memchr",
-]
-
-[[package]]
-name = "email_address"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2153bd83ebc09db15bcbdc3e2194d901804952e3dc96967e1cd3b0c5c32d112"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "enum-as-inner"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "equivalent"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-
-[[package]]
-name = "errno"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "error-chain"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "event-listener"
-version = "2.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
-[[package]]
-name = "fastrand"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fastrand"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
-
-[[package]]
-name = "fern"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee"
-dependencies = [
- "log",
- "syslog",
-]
-
-[[package]]
-name = "figment"
-version = "0.10.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4547e226f4c9ab860571e070a9034192b3175580ecea38da34fcdb53a018c9a5"
-dependencies = [
- "atomic",
- "pear",
- "serde",
- "toml",
- "uncased",
- "version_check",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "futures"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-
-[[package]]
-name = "futures-lite"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
-dependencies = [
- "fastrand 1.9.0",
- "futures-core",
- "futures-io",
- "memchr",
- "parking",
- "pin-project-lite",
- "waker-fn",
-]
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
-
-[[package]]
-name = "futures-task"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
-
-[[package]]
-name = "futures-timer"
-version = "3.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
-
-[[package]]
-name = "futures-util"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "generator"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e"
-dependencies = [
- "cc",
- "libc",
- "log",
- "rustversion",
- "windows",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "gimli"
-version = "0.27.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
-
-[[package]]
-name = "glob"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
-
-[[package]]
-name = "gloo-timers"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
-dependencies = [
- "futures-channel",
- "futures-core",
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "governor"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4"
-dependencies = [
- "cfg-if",
- "dashmap",
- "futures",
- "futures-timer",
- "no-std-compat",
- "nonzero_ext",
- "parking_lot",
- "quanta",
- "rand",
- "smallvec",
-]
-
-[[package]]
-name = "h2"
-version = "0.3.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
-dependencies = [
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap 1.9.3",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "half"
-version = "1.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
-
-[[package]]
-name = "handlebars"
-version = "4.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d"
-dependencies = [
- "log",
- "pest",
- "pest_derive",
- "serde",
- "serde_json",
- "thiserror",
- "walkdir",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
-
-[[package]]
-name = "heck"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
-
-[[package]]
-name = "hmac"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-dependencies = [
- "digest",
-]
-
-[[package]]
-name = "hostname"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
-dependencies = [
- "libc",
- "match_cfg",
- "winapi",
-]
-
-[[package]]
-name = "html5gum"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c4e556171a058ba117bbe88b059fb37b6289023e007d2903ea6dca3a3cbff14"
-dependencies = [
- "jetscii",
-]
-
-[[package]]
-name = "http"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "http-body"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
-dependencies = [
- "bytes",
- "http",
- "pin-project-lite",
-]
-
-[[package]]
-name = "httparse"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-[[package]]
-name = "httpdate"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-
-[[package]]
-name = "hyper"
-version = "0.14.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
-dependencies = [
- "bytes",
- "futures-channel",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "httparse",
- "httpdate",
- "itoa",
- "pin-project-lite",
- "socket2 0.4.9",
- "tokio",
- "tower-service",
- "tracing",
- "want",
-]
-
-[[package]]
-name = "hyper-tls"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
-dependencies = [
- "bytes",
- "hyper",
- "native-tls",
- "tokio",
- "tokio-native-tls",
-]
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "windows",
-]
-
-[[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "idna"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
- "serde",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
-dependencies = [
- "equivalent",
- "hashbrown 0.14.0",
-]
-
-[[package]]
-name = "inlinable_string"
-version = "0.1.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb"
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys",
-]
-
-[[package]]
-name = "ipconfig"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
-dependencies = [
- "socket2 0.5.3",
- "widestring",
- "windows-sys",
- "winreg 0.50.0",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
-
-[[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi",
- "rustix 0.38.8",
- "windows-sys",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "jetscii"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47f142fe24a9c9944451e8349de0a56af5f3e7226dc46f3ed4d4ecc0b85af75e"
-
-[[package]]
-name = "job_scheduler_ng"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10bbdf445513bbe53f4666218b7057d265c76fa0b30475e121a6bf05dbaacaae"
-dependencies = [
- "chrono",
- "cron",
- "uuid",
-]
-
-[[package]]
-name = "js-sys"
-version = "0.3.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "jsonwebtoken"
-version = "8.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
-dependencies = [
- "base64 0.21.2",
- "pem",
- "ring",
- "serde",
- "serde_json",
- "simple_asn1",
-]
-
-[[package]]
-name = "kv-log-macro"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "lettre"
-version = "0.10.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76bd09637ae3ec7bd605b8e135e757980b3968430ff2b1a4a94fb7769e50166d"
-dependencies = [
- "async-std",
- "async-trait",
- "base64 0.21.2",
- "email-encoding",
- "email_address",
- "fastrand 1.9.0",
- "futures-io",
- "futures-util",
- "hostname",
- "httpdate",
- "idna 0.3.0",
- "mime",
- "native-tls",
- "nom",
- "once_cell",
- "quoted_printable",
- "serde",
- "socket2 0.4.9",
- "tokio",
- "tokio-native-tls",
- "tracing",
-]
-
-[[package]]
-name = "libc"
-version = "0.2.147"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
-
-[[package]]
-name = "libmimalloc-sys"
-version = "0.1.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4ac0e912c8ef1b735e92369695618dc5b1819f5a7bf3f167301a3ba1cea515e"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "libsqlite3-sys"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
-dependencies = [
- "cc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "linked-hash-map"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
-
-[[package]]
-name = "lock_api"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
-dependencies = [
- "value-bag",
-]
-
-[[package]]
-name = "loom"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
-dependencies = [
- "cfg-if",
- "generator",
- "scoped-tls",
- "serde",
- "serde_json",
- "tracing",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "lru-cache"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
-dependencies = [
- "linked-hash-map",
-]
-
-[[package]]
-name = "mach2"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "match_cfg"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
-
-[[package]]
-name = "matchers"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
-dependencies = [
- "regex-automata 0.1.10",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "migrations_internals"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada"
-dependencies = [
- "serde",
- "toml",
-]
-
-[[package]]
-name = "migrations_macros"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08"
-dependencies = [
- "migrations_internals",
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "mimalloc"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e2894987a3459f3ffb755608bd82188f8ed00d0ae077f1edea29c068d639d98"
-dependencies = [
- "libmimalloc-sys",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
-dependencies = [
- "libc",
- "wasi",
- "windows-sys",
-]
-
-[[package]]
-name = "multer"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2"
-dependencies = [
- "bytes",
- "encoding_rs",
- "futures-util",
- "http",
- "httparse",
- "log",
- "memchr",
- "mime",
- "spin 0.9.8",
- "tokio",
- "tokio-util",
- "version_check",
-]
-
-[[package]]
-name = "mysqlclient-sys"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f61b381528ba293005c42a409dd73d034508e273bf90481f17ec2e964a6e969b"
-dependencies = [
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "native-tls"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
-dependencies = [
- "lazy_static",
- "libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
-]
-
-[[package]]
-name = "no-std-compat"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
-
-[[package]]
-name = "nom"
-version = "7.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "nonzero_ext"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21"
-
-[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-derive"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "num_threads"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "object"
-version = "0.31.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
-name = "openssl"
-version = "0.10.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
-[[package]]
-name = "openssl-src"
-version = "111.27.0+1.1.1v"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06e8f197c82d7511c5b014030c9b1efeda40d7d5f99d23b4ceed3524a5e63f02"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.91"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac"
-dependencies = [
- "cc",
- "libc",
- "openssl-src",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "overload"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
-
-[[package]]
-name = "parking"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
-
-[[package]]
-name = "parking_lot"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-dependencies = [
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall",
- "smallvec",
- "windows-targets",
-]
-
-[[package]]
-name = "parse-zoneinfo"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
-dependencies = [
- "regex",
-]
-
-[[package]]
-name = "password-hash"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
-dependencies = [
- "base64ct",
- "rand_core",
- "subtle",
-]
-
-[[package]]
-name = "paste"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
-
-[[package]]
-name = "pear"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a386cd715229d399604b50d1361683fe687066f42d56f54be995bc6868f71c"
-dependencies = [
- "inlinable_string",
- "pear_codegen",
- "yansi 1.0.0-rc.1",
-]
-
-[[package]]
-name = "pear_codegen"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f0f13dac8069c139e8300a6510e3f4143ecf5259c60b116a9b271b4ca0d54"
-dependencies = [
- "proc-macro2",
- "proc-macro2-diagnostics",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "pem"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
-dependencies = [
- "base64 0.13.1",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
-
-[[package]]
-name = "pest"
-version = "2.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a"
-dependencies = [
- "thiserror",
- "ucd-trie",
-]
-
-[[package]]
-name = "pest_derive"
-version = "2.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853"
-dependencies = [
- "pest",
- "pest_generator",
-]
-
-[[package]]
-name = "pest_generator"
-version = "2.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929"
-dependencies = [
- "pest",
- "pest_meta",
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "pest_meta"
-version = "2.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48"
-dependencies = [
- "once_cell",
- "pest",
- "sha2",
-]
-
-[[package]]
-name = "phf"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
-dependencies = [
- "phf_shared",
-]
-
-[[package]]
-name = "phf_codegen"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
-dependencies = [
- "phf_generator",
- "phf_shared",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
-dependencies = [
- "phf_shared",
- "rand",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "pico-args"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
-
-[[package]]
-name = "polling"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if",
- "concurrent-queue",
- "libc",
- "log",
- "pin-project-lite",
- "windows-sys",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "pq-sys"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd"
-dependencies = [
- "vcpkg",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "proc-macro2-diagnostics"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
- "version_check",
- "yansi 1.0.0-rc.1",
-]
-
-[[package]]
-name = "psl-types"
-version = "2.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
-
-[[package]]
-name = "publicsuffix"
-version = "2.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457"
-dependencies = [
- "idna 0.3.0",
- "psl-types",
-]
-
-[[package]]
-name = "quanta"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab"
-dependencies = [
- "crossbeam-utils",
- "libc",
- "mach2",
- "once_cell",
- "raw-cpuid",
- "wasi",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
-name = "quote"
-version = "1.0.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "quoted_printable"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49"
-
-[[package]]
-name = "r2d2"
-version = "0.8.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93"
-dependencies = [
- "log",
- "parking_lot",
- "scheduled-thread-pool",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "raw-cpuid"
-version = "10.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "ref-cast"
-version = "1.0.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61ef7e18e8841942ddb1cf845054f8008410030a3997875d9e49b7a363063df1"
-dependencies = [
- "ref-cast-impl",
-]
-
-[[package]]
-name = "ref-cast-impl"
-version = "1.0.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfaf0c85b766276c797f3791f5bc6d5bd116b41d53049af2789666b0c0bc9fa"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "regex"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata 0.3.6",
- "regex-syntax 0.7.4",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-dependencies = [
- "regex-syntax 0.6.29",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax 0.7.4",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
-
-[[package]]
-name = "regex-syntax"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
-
-[[package]]
-name = "reqwest"
-version = "0.11.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
-dependencies = [
- "async-compression",
- "base64 0.21.2",
- "bytes",
- "cookie 0.16.2",
- "cookie_store 0.16.2",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-tls",
- "ipnet",
- "js-sys",
- "log",
- "mime",
- "native-tls",
- "once_cell",
- "percent-encoding",
- "pin-project-lite",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
- "tokio-native-tls",
- "tokio-socks",
- "tokio-util",
- "tower-service",
- "trust-dns-resolver",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "wasm-streams",
- "web-sys",
- "winreg 0.10.1",
-]
-
-[[package]]
-name = "resolv-conf"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
-dependencies = [
- "hostname",
- "quick-error",
-]
-
-[[package]]
-name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "rmp"
-version = "0.8.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20"
-dependencies = [
- "byteorder",
- "num-traits",
- "paste",
-]
-
-[[package]]
-name = "rmpv"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e0e0214a4a2b444ecce41a4025792fc31f77c7bb89c46d253953ea8c65701ec"
-dependencies = [
- "num-traits",
- "rmp",
-]
-
-[[package]]
-name = "rocket"
-version = "0.5.0-rc.3"
-source = "git+https://github.com/SergioBenitez/Rocket?rev=ce441b5f46fdf5cd99cb32b8b8638835e4c2a5fa#ce441b5f46fdf5cd99cb32b8b8638835e4c2a5fa"
-dependencies = [
- "async-stream",
- "async-trait",
- "atomic",
- "binascii",
- "bytes",
- "either",
- "figment",
- "futures",
- "indexmap 1.9.3",
- "is-terminal",
- "log",
- "memchr",
- "multer",
- "num_cpus",
- "parking_lot",
- "pin-project-lite",
- "rand",
- "ref-cast",
- "rocket_codegen",
- "rocket_http",
- "serde",
- "serde_json",
- "state",
- "tempfile",
- "time",
- "tokio",
- "tokio-stream",
- "tokio-util",
- "ubyte",
- "version_check",
- "yansi 0.5.1",
-]
-
-[[package]]
-name = "rocket_codegen"
-version = "0.5.0-rc.3"
-source = "git+https://github.com/SergioBenitez/Rocket?rev=ce441b5f46fdf5cd99cb32b8b8638835e4c2a5fa#ce441b5f46fdf5cd99cb32b8b8638835e4c2a5fa"
-dependencies = [
- "devise",
- "glob",
- "indexmap 1.9.3",
- "proc-macro2",
- "quote",
- "rocket_http",
- "syn 2.0.28",
- "unicode-xid",
-]
-
-[[package]]
-name = "rocket_http"
-version = "0.5.0-rc.3"
-source = "git+https://github.com/SergioBenitez/Rocket?rev=ce441b5f46fdf5cd99cb32b8b8638835e4c2a5fa#ce441b5f46fdf5cd99cb32b8b8638835e4c2a5fa"
-dependencies = [
- "cookie 0.17.0",
- "either",
- "futures",
- "http",
- "hyper",
- "indexmap 1.9.3",
- "log",
- "memchr",
- "pear",
- "percent-encoding",
- "pin-project-lite",
- "ref-cast",
- "rustls",
- "rustls-pemfile",
- "serde",
- "smallvec",
- "stable-pattern",
- "state",
- "time",
- "tokio",
- "tokio-rustls",
- "uncased",
-]
-
-[[package]]
-name = "rocket_ws"
-version = "0.1.0-rc.3"
-source = "git+https://github.com/SergioBenitez/Rocket?rev=ce441b5f46fdf5cd99cb32b8b8638835e4c2a5fa#ce441b5f46fdf5cd99cb32b8b8638835e4c2a5fa"
-dependencies = [
- "rocket",
- "tokio-tungstenite",
-]
-
-[[package]]
-name = "rpassword"
-version = "7.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322"
-dependencies = [
- "libc",
- "rtoolbox",
- "winapi",
-]
-
-[[package]]
-name = "rtoolbox"
-version = "0.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-[[package]]
-name = "rustix"
-version = "0.37.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
-dependencies = [
- "bitflags 2.4.0",
- "errno",
- "libc",
- "linux-raw-sys 0.4.5",
- "windows-sys",
-]
-
-[[package]]
-name = "rustls"
-version = "0.21.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
-dependencies = [
- "log",
- "ring",
- "rustls-webpki",
- "sct",
-]
-
-[[package]]
-name = "rustls-pemfile"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
-dependencies = [
- "base64 0.21.2",
-]
-
-[[package]]
-name = "rustls-webpki"
-version = "0.101.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "rustversion"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
-
-[[package]]
-name = "ryu"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-
-[[package]]
-name = "same-file"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "schannel"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
-dependencies = [
- "windows-sys",
-]
-
-[[package]]
-name = "scheduled-thread-pool"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19"
-dependencies = [
- "parking_lot",
-]
-
-[[package]]
-name = "scoped-tls"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
-
-[[package]]
-name = "scopeguard"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-
-[[package]]
-name = "sct"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "security-framework"
-version = "2.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-
-[[package]]
-name = "serde"
-version = "1.0.183"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_cbor"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
-dependencies = [
- "half",
- "serde",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.183"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.104"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_spanned"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sha-1"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sha1"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sha2"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sharded-slab"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
-name = "signal-hook"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "simple_asn1"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
-dependencies = [
- "num-bigint",
- "num-traits",
- "thiserror",
- "time",
-]
-
-[[package]]
-name = "siphasher"
-version = "0.3.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
-
-[[package]]
-name = "slab"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
-
-[[package]]
-name = "socket2"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "socket2"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
-dependencies = [
- "libc",
- "windows-sys",
-]
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
-
-[[package]]
-name = "stable-pattern"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4564168c00635f88eaed410d5efa8131afa8d8699a612c80c455a0ba05c21045"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "state"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8"
-dependencies = [
- "loom",
-]
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "subtle"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syslog"
-version = "6.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7434e95bcccce1215d30f4bf84fe8c00e8de1b9be4fb736d747ca53d36e7f96f"
-dependencies = [
- "error-chain",
- "hostname",
- "libc",
- "log",
- "time",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651"
-dependencies = [
- "cfg-if",
- "fastrand 2.0.0",
- "redox_syscall",
- "rustix 0.38.8",
- "windows-sys",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
-dependencies = [
- "cfg-if",
- "once_cell",
-]
-
-[[package]]
-name = "threadpool"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
-dependencies = [
- "num_cpus",
-]
-
-[[package]]
-name = "time"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"
-dependencies = [
- "deranged",
- "itoa",
- "libc",
- "num_threads",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
-
-[[package]]
-name = "time-macros"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
-dependencies = [
- "time-core",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-[[package]]
-name = "tokio"
-version = "1.31.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40de3a2ba249dcb097e01be5e67a5ff53cf250397715a071a81543e8a832a920"
-dependencies = [
- "backtrace",
- "bytes",
- "libc",
- "mio",
- "num_cpus",
- "parking_lot",
- "pin-project-lite",
- "signal-hook-registry",
- "socket2 0.5.3",
- "tokio-macros",
- "windows-sys",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "tokio-native-tls"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
-dependencies = [
- "native-tls",
- "tokio",
-]
-
-[[package]]
-name = "tokio-rustls"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
-dependencies = [
- "rustls",
- "tokio",
-]
-
-[[package]]
-name = "tokio-socks"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0"
-dependencies = [
- "either",
- "futures-util",
- "thiserror",
- "tokio",
-]
-
-[[package]]
-name = "tokio-stream"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
-dependencies = [
- "futures-core",
- "pin-project-lite",
- "tokio",
-]
-
-[[package]]
-name = "tokio-tungstenite"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec509ac96e9a0c43427c74f003127d953a265737636129424288d27cb5c4b12c"
-dependencies = [
- "futures-util",
- "log",
- "tokio",
- "tungstenite",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
-dependencies = [
- "bytes",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "toml"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit",
-]
-
-[[package]]
-name = "toml_datetime"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.19.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
-dependencies = [
- "indexmap 2.0.0",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "totp-lite"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc496875d9c8fe9a0ce19e3ee8e8808c60376831a439543f0aac71c9dd129fa"
-dependencies = [
- "digest",
- "hmac",
- "sha-1",
- "sha2",
-]
-
-[[package]]
-name = "tower-service"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-
-[[package]]
-name = "tracing"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
-dependencies = [
- "cfg-if",
- "log",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
-dependencies = [
- "once_cell",
- "valuable",
-]
-
-[[package]]
-name = "tracing-log"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
-dependencies = [
- "lazy_static",
- "log",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
-dependencies = [
- "matchers",
- "nu-ansi-term",
- "once_cell",
- "regex",
- "sharded-slab",
- "smallvec",
- "thread_local",
- "tracing",
- "tracing-core",
- "tracing-log",
-]
-
-[[package]]
-name = "trust-dns-proto"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26"
-dependencies = [
- "async-trait",
- "cfg-if",
- "data-encoding",
- "enum-as-inner",
- "futures-channel",
- "futures-io",
- "futures-util",
- "idna 0.2.3",
- "ipnet",
- "lazy_static",
- "rand",
- "smallvec",
- "thiserror",
- "tinyvec",
- "tokio",
- "tracing",
- "url",
-]
-
-[[package]]
-name = "trust-dns-resolver"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe"
-dependencies = [
- "cfg-if",
- "futures-util",
- "ipconfig",
- "lazy_static",
- "lru-cache",
- "parking_lot",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio",
- "tracing",
- "trust-dns-proto",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-
-[[package]]
-name = "tungstenite"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15fba1a6d6bb030745759a9a2a588bfe8490fc8b4751a277db3a0be1c9ebbf67"
-dependencies = [
- "byteorder",
- "bytes",
- "data-encoding",
- "http",
- "httparse",
- "log",
- "rand",
- "sha1",
- "thiserror",
- "url",
- "utf-8",
-]
-
-[[package]]
-name = "typenum"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-
-[[package]]
-name = "ubyte"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c81f0dae7d286ad0d9366d7679a77934cfc3cf3a8d67e82669794412b2368fe6"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "ucd-trie"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
-
-[[package]]
-name = "uncased"
-version = "0.9.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b9bc53168a4be7402ab86c3aad243a84dd7381d09be0eddc81280c1da95ca68"
-dependencies = [
- "serde",
- "version_check",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
-name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "url"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
-dependencies = [
- "form_urlencoded",
- "idna 0.4.0",
- "percent-encoding",
- "serde",
-]
-
-[[package]]
-name = "utf-8"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
-
-[[package]]
-name = "uuid"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "valuable"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
-
-[[package]]
-name = "value-bag"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
-
-[[package]]
-name = "vaultwarden"
-version = "1.0.0"
-dependencies = [
- "argon2",
- "bytes",
- "cached",
- "chrono",
- "chrono-tz",
- "cookie 0.16.2",
- "cookie_store 0.19.1",
- "dashmap",
- "data-encoding",
- "data-url",
- "diesel",
- "diesel_logger",
- "diesel_migrations",
- "dotenvy",
- "email_address",
- "fern",
- "futures",
- "governor",
- "handlebars",
- "html5gum",
- "job_scheduler_ng",
- "jsonwebtoken",
- "lettre",
- "libsqlite3-sys",
- "log",
- "mimalloc",
- "num-derive",
- "num-traits",
- "once_cell",
- "openssl",
- "paste",
- "percent-encoding",
- "pico-args",
- "rand",
- "regex",
- "reqwest",
- "ring",
- "rmpv",
- "rocket",
- "rocket_ws",
- "rpassword",
- "semver",
- "serde",
- "serde_json",
- "syslog",
- "time",
- "tokio",
- "tokio-tungstenite",
- "totp-lite",
- "tracing",
- "url",
- "uuid",
- "webauthn-rs",
- "which",
- "yubico",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "waker-fn"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
-
-[[package]]
-name = "walkdir"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
-dependencies = [
- "same-file",
- "winapi-util",
-]
-
-[[package]]
-name = "want"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
-dependencies = [
- "try-lock",
-]
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 2.0.28",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
-dependencies = [
- "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
-
-[[package]]
-name = "wasm-streams"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078"
-dependencies = [
- "futures-util",
- "js-sys",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webauthn-rs"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90b266eccb4b32595876f5c73ea443b0516da0b1df72ca07bc08ed9ba7f96ec1"
-dependencies = [
- "base64 0.13.1",
- "nom",
- "openssl",
- "rand",
- "serde",
- "serde_cbor",
- "serde_derive",
- "serde_json",
- "thiserror",
- "tracing",
- "url",
-]
-
-[[package]]
-name = "which"
-version = "4.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
-dependencies = [
- "either",
- "libc",
- "once_cell",
-]
-
-[[package]]
-name = "widestring"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-
-[[package]]
-name = "winnow"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5504cc7644f4b593cbc05c4a55bf9bd4e94b867c3c0bd440934174d50482427d"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "winreg"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winreg"
-version = "0.50.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
-dependencies = [
- "cfg-if",
- "windows-sys",
-]
-
-[[package]]
-name = "yansi"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
-
-[[package]]
-name = "yansi"
-version = "1.0.0-rc.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377"
-
-[[package]]
-name = "yubico"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "173f75d2c4010429a2d74ae3a114a69930c59e2b1a4c97b1c75d259a4960d5fb"
-dependencies = [
- "base64 0.13.1",
- "form_urlencoded",
- "futures",
- "hmac",
- "rand",
- "reqwest",
- "sha1",
- "threadpool",
-]
diff --git a/pkgs/tools/security/vaultwarden/default.nix b/pkgs/tools/security/vaultwarden/default.nix
index e7d620a1bc209..762c8312c1e63 100644
--- a/pkgs/tools/security/vaultwarden/default.nix
+++ b/pkgs/tools/security/vaultwarden/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, callPackage, rustPlatform, fetchFromGitHub, nixosTests
 , pkg-config, openssl
-, libiconv, Security, CoreServices
+, libiconv, Security, CoreServices, SystemConfiguration
 , dbBackend ? "sqlite", libmysqlclient, postgresql }:
 
 let
@@ -9,25 +9,20 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "vaultwarden";
-  version = "1.29.2";
+  version = "1.30.1";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    hash = "sha256-ByMPS68GBOvjB/RpoLAvgE+NcbbIa1qfU1TQ4yhbH+I=";
+    hash = "sha256-9JCrEe0tla4v207XPgprLqP3g0BslpX8f7xa9aUhQcg=";
   };
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "rocket-0.5.0-rc.3" = "sha256-E71cktkHCbmQyjkjWWJ20KfCm3B/h3jQ2TMluYhvCQw=";
-    };
-  };
+  cargoHash = "sha256-4KyBMOdTAHe5uD6X69gMd0aqIo4w2Rqrlg+25yY2B6o=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = with lib; [ openssl ]
-    ++ optionals stdenv.isDarwin [ libiconv Security CoreServices ]
+    ++ optionals stdenv.isDarwin [ libiconv Security CoreServices SystemConfiguration ]
     ++ optional (dbBackend == "mysql") libmysqlclient
     ++ optional (dbBackend == "postgresql") postgresql;
 
@@ -44,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dani-garcia/vaultwarden";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ msteen ivan ];
+    mainProgram = "vaultwarden";
   };
 }
diff --git a/pkgs/tools/security/vaultwarden/update.nix b/pkgs/tools/security/vaultwarden/update.nix
index c2c03413cc435..4d0c6c4a50474 100644
--- a/pkgs/tools/security/vaultwarden/update.nix
+++ b/pkgs/tools/security/vaultwarden/update.nix
@@ -1,4 +1,4 @@
-{ writeShellScript
+{ writeShellApplication
 , lib
 , nix
 , nix-prefetch-git
@@ -8,20 +8,23 @@
 , gnugrep
 , gnused
 , jq
+, yq
 }:
 
-writeShellScript "update-vaultwarden" ''
-  PATH=${lib.makeBinPath [ curl git gnugrep gnused jq nix nix-prefetch-git nix-update ]}
+lib.getExe (writeShellApplication {
+  name = "update-vaultwarden";
+  runtimeInputs = [ curl git gnugrep gnused jq yq nix nix-prefetch-git nix-update ];
 
-  set -euxo pipefail
+  text = ''
+    VAULTWARDEN_VERSION=$(curl --silent https://api.github.com/repos/dani-garcia/vaultwarden/releases/latest | jq -r '.tag_name')
+    nix-update "vaultwarden" --version "$VAULTWARDEN_VERSION"
 
-  VAULTWARDEN_VERSION=$(curl --silent https://api.github.com/repos/dani-garcia/vaultwarden/releases/latest | jq -r '.tag_name')
-  nix-update "vaultwarden" --version "$VAULTWARDEN_VERSION"
-
-  URL="https://raw.githubusercontent.com/dani-garcia/vaultwarden/''${VAULTWARDEN_VERSION}/docker/Dockerfile.j2"
-  WEBVAULT_VERSION=$(curl --silent "$URL" | grep "set vault_version" | sed -E "s/.*\"v([^\"]+)\".*/\\1/")
-  old_hash=$(nix --extra-experimental-features nix-command eval -f default.nix --raw vaultwarden.webvault.bw_web_builds.outputHash)
-  new_hash=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $(nix-prefetch-git https://github.com/dani-garcia/bw_web_builds.git --rev "v$WEBVAULT_VERSION" | jq --raw-output ".sha256"))
-  sed -e "s#$old_hash#$new_hash#" -i pkgs/tools/security/vaultwarden/webvault.nix
-  nix-update "vaultwarden.webvault" --version "$WEBVAULT_VERSION"
-''
+    URL="https://raw.githubusercontent.com/dani-garcia/vaultwarden/''${VAULTWARDEN_VERSION}/docker/DockerSettings.yaml"
+    WEBVAULT_VERSION="$(curl --silent "$URL" | yq -r ".vault_version" | sed s/^v//)"
+    old_hash="$(nix --extra-experimental-features nix-command eval -f default.nix --raw vaultwarden.webvault.bw_web_builds.outputHash)"
+    new_hash="$(nix-prefetch-git https://github.com/dani-garcia/bw_web_builds.git --rev "v$WEBVAULT_VERSION" | jq --raw-output ".sha256")"
+    new_hash_sri="$(nix --extra-experimental-features nix-command hash to-sri --type sha256 "$new_hash")"
+    sed -e "s#$old_hash#$new_hash_sri#" -i pkgs/tools/security/vaultwarden/webvault.nix
+    nix-update "vaultwarden.webvault" --version "$WEBVAULT_VERSION"
+  '';
+})
diff --git a/pkgs/tools/security/vaultwarden/webvault.nix b/pkgs/tools/security/vaultwarden/webvault.nix
index 585c1b5c51626..3e4180cc05b23 100644
--- a/pkgs/tools/security/vaultwarden/webvault.nix
+++ b/pkgs/tools/security/vaultwarden/webvault.nix
@@ -7,14 +7,15 @@
 }:
 
 let
-  version = "2023.7.1";
+  version = "2024.1.1b";
 
   bw_web_builds = fetchFromGitHub {
     owner = "dani-garcia";
     repo = "bw_web_builds";
     rev = "v${version}";
-    hash = "sha256-B7FGLKuwxldlHnIIzQbDjZT9cs5+lixo/fBtlexNLQc=";
+    hash = "sha256-jdr+3sIFdKmi0CI3TyFv+wCbhOBJECKQtx+X5EZjRsQ=";
   };
+
 in buildNpmPackage rec {
   pname = "vaultwarden-webvault";
   inherit version;
@@ -23,10 +24,10 @@ in buildNpmPackage rec {
     owner = "bitwarden";
     repo = "clients";
     rev = "web-v${lib.removeSuffix "b" version}";
-    hash = "sha256-HEEUboaIY/Zi/wUhp9y7oIOuQl6csjo97eygTLPNfNo=";
+    hash = "sha256-695iCkFhPEyyI4ekbjsdWpxgPy+bX392/X30HyL4F4Y=";
   };
 
-  npmDepsHash = "sha256-8Epkvjzllt//kdrKT4jUDOhj47Fnb0qSFU1qJthL2Mo=";
+  npmDepsHash = "sha256-IJ5JVz9hHu3NOzFJAyzfhsMfPQgYQGntDEDuBMI/iZc=";
 
   postPatch = ''
     ln -s ${bw_web_builds}/{patches,resources} ..
@@ -48,6 +49,8 @@ in buildNpmPackage rec {
     "--workspace" "apps/web"
   ];
 
+  npmFlags = [ "--legacy-peer-deps" ];
+
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/vaultwarden
@@ -63,6 +66,7 @@ in buildNpmPackage rec {
   meta = with lib; {
     description = "Integrates the web vault into vaultwarden";
     homepage = "https://github.com/dani-garcia/bw_web_builds";
+    changelog = "https://github.com/dani-garcia/bw_web_builds/releases/tag/v${version}";
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda msteen mic92 ];
diff --git a/pkgs/tools/security/volatility/default.nix b/pkgs/tools/security/volatility/default.nix
deleted file mode 100644
index 9a4f27a0debc4..0000000000000
--- a/pkgs/tools/security/volatility/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, fetchFromGitHub, python2Packages }:
-
-python2Packages.buildPythonApplication rec {
-  pname = "volatility";
-  version = "2.6.1";
-
-  src = fetchFromGitHub {
-    owner = "volatilityfoundation";
-    repo = pname;
-    rev = version;
-    sha256 = "1v92allp3cv3akk71kljcwxr27h1k067dsq7j9h8jnlwk9jxh6rf";
-  };
-
-  doCheck = false;
-
-  propagatedBuildInputs = with python2Packages; [ pycrypto distorm3 pillow ];
-
-  meta = with lib; {
-    homepage = "https://www.volatilityfoundation.org/";
-    description = "Advanced memory forensics framework";
-    maintainers = with maintainers; [ bosu ];
-    license = licenses.gpl2Plus;
-    broken = true;
-  };
-}
diff --git a/pkgs/tools/security/webanalyze/default.nix b/pkgs/tools/security/webanalyze/default.nix
index cfce48228b570..427d84c5282db 100644
--- a/pkgs/tools/security/webanalyze/default.nix
+++ b/pkgs/tools/security/webanalyze/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "webanalyze";
-  version = "0.3.8";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "rverton";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-1z4hi9a/OzBXIMBk1f0JpPMV/kRgBnTQAEygIZqV+1w=";
+    hash = "sha256-rnNbEPlbye0gjUamwq1xjFM/4g0eEHsGOAZWziEqxwM=";
   };
 
-  vendorHash = "sha256-kXtWYGsZUUhBNvkTOah3Z+ta118k6PXfpBx6MLr/pq0=";
+  vendorHash = "sha256-XPOsC+HoLytgv1fhAaO5HYSvuOP6OhjLyOYTfiD64QI=";
 
   meta = with lib; {
     description = "Tool to uncover technologies used on websites";
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/rverton/webanalyze/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "webanalyze";
   };
 }
diff --git a/pkgs/tools/security/websploit/default.nix b/pkgs/tools/security/websploit/default.nix
deleted file mode 100644
index b8db06427f863..0000000000000
--- a/pkgs/tools/security/websploit/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, buildPythonApplication, fetchFromGitHub
-, requests, scapy }:
-
-buildPythonApplication rec {
-  pname = "websploit";
-  version = "4.0.4";
-
-  src = fetchFromGitHub {
-    owner = "f4rih";
-    repo = pname;
-    rev = version;
-    sha256 = "LpDfJmH2FbL37Fk86CAC/bxFqM035DBN6c6FPfGpaIw=";
-  };
-
-  propagatedBuildInputs = [
-    requests
-    scapy
-  ];
-
-  # Project has no tests
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A high level MITM framework";
-    homepage = "https://github.com/f4rih/websploit";
-    license = licenses.mit;
-    maintainers = with maintainers; [ emilytrau ];
-  };
-}
diff --git a/pkgs/tools/security/witness/default.nix b/pkgs/tools/security/witness/default.nix
index d16f74940d3b0..42e6455ae7dd7 100644
--- a/pkgs/tools/security/witness/default.nix
+++ b/pkgs/tools/security/witness/default.nix
@@ -1,17 +1,24 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+
+# testing
+, testers
+, witness
+}:
 
 buildGoModule rec {
   pname = "witness";
-  version = "0.1.14";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
-    owner = "testifysec";
-    repo = pname;
+    owner = "in-toto";
+    repo = "witness";
     rev = "v${version}";
-    sha256 = "sha256-TUEbFkrS0OztTiY0OXiZsqraq3TINtC/DQEyCGPNXpE=";
+    sha256 = "sha256-U+dcaPi9Drg4I2SZlZPaR3Ryb+Dz27nyPI2XJPG/LWc=";
   };
-  proxyVendor = true;
-  vendorHash = "sha256-L2NaEt64mgFZVta/F8/uUQ4djlra59JPcHJLGbFCQJs=";
+  vendorHash = "sha256-pjcyAGdR8TsU9YBy5zd6u575vDKPwy8s85TXUsuxZiU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -21,7 +28,7 @@ buildGoModule rec {
   ldflags = [
     "-s"
     "-w"
-    "-X github.com/testifysec/witness/cmd.Version=v${version}"
+    "-X github.com/in-toto/witness/cmd.Version=v${version}"
   ];
 
   # Feed in all tests for testing
@@ -38,13 +45,11 @@ 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
-  '';
+  passthru.tests.version = testers.testVersion {
+    package = witness;
+    command = "witness version";
+    version = "v${version}";
+  };
 
   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";
@@ -57,6 +62,7 @@ buildGoModule rec {
       PKI distribution system will mitigate against many software supply chain
       attack vectors and can be used as a framework for automated governance.
     '';
+    mainProgram = "witness";
     homepage = "https://github.com/testifysec/witness";
     changelog = "https://github.com/testifysec/witness/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/security/wpscan/Gemfile.lock b/pkgs/tools/security/wpscan/Gemfile.lock
index b233f57a58179..186144a3b1a91 100644
--- a/pkgs/tools/security/wpscan/Gemfile.lock
+++ b/pkgs/tools/security/wpscan/Gemfile.lock
@@ -1,57 +1,57 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.1.7.4)
+    activesupport (6.1.7.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
       zeitwerk (~> 2.3)
-    addressable (2.8.4)
+    addressable (2.8.5)
       public_suffix (>= 2.0.2, < 6.0)
-    cms_scanner (0.13.8)
-      ethon (>= 0.14, < 0.16)
+    cms_scanner (0.13.9)
+      ethon (>= 0.14, < 0.17)
       get_process_mem (~> 0.2.5)
-      nokogiri (>= 1.11.4, < 1.14.0)
+      nokogiri (>= 1.11.4, < 1.16.0)
       opt_parse_validator (~> 1.9.5)
-      public_suffix (~> 4.0.3)
-      ruby-progressbar (>= 1.10, < 1.12)
-      sys-proctable (~> 1.2.2)
+      public_suffix (>= 4.0.3, < 5.1.0)
+      ruby-progressbar (>= 1.10, < 1.14)
+      sys-proctable (>= 1.2.2, < 1.4.0)
       typhoeus (>= 1.3, < 1.5)
       xmlrpc (~> 0.3)
       yajl-ruby (~> 1.4.1)
     concurrent-ruby (1.2.2)
-    ethon (0.15.0)
+    ethon (0.16.0)
       ffi (>= 1.15.0)
-    ffi (1.15.5)
+    ffi (1.16.3)
     get_process_mem (0.2.7)
       ffi (~> 1.0)
     i18n (1.14.1)
       concurrent-ruby (~> 1.0)
-    mini_portile2 (2.8.2)
-    minitest (5.18.1)
-    nokogiri (1.13.10)
-      mini_portile2 (~> 2.8.0)
+    mini_portile2 (2.8.5)
+    minitest (5.20.0)
+    nokogiri (1.15.5)
+      mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
     opt_parse_validator (1.9.5)
       activesupport (>= 5.2, < 6.2.0)
       addressable (>= 2.5, < 2.9)
-    public_suffix (4.0.7)
-    racc (1.7.1)
-    ruby-progressbar (1.11.0)
-    sys-proctable (1.2.7)
+    public_suffix (5.0.4)
+    racc (1.7.3)
+    ruby-progressbar (1.13.0)
+    sys-proctable (1.3.0)
       ffi (~> 1.1)
-    typhoeus (1.4.0)
+    typhoeus (1.4.1)
       ethon (>= 0.9.0)
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
     webrick (1.8.1)
-    wpscan (3.8.24)
-      cms_scanner (~> 0.13.8)
-    xmlrpc (0.3.2)
+    wpscan (3.8.25)
+      cms_scanner (~> 0.13.9)
+    xmlrpc (0.3.3)
       webrick
     yajl-ruby (1.4.3)
-    zeitwerk (2.6.8)
+    zeitwerk (2.6.12)
 
 PLATFORMS
   ruby
@@ -60,4 +60,4 @@ DEPENDENCIES
   wpscan
 
 BUNDLED WITH
-   2.4.13
+   2.4.22
diff --git a/pkgs/tools/security/wpscan/gemset.nix b/pkgs/tools/security/wpscan/gemset.nix
index 5cae455dd0143..abe19a29bf8f4 100644
--- a/pkgs/tools/security/wpscan/gemset.nix
+++ b/pkgs/tools/security/wpscan/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s465919p6fcgcsqin8w8hay2m598dvnzks490hbsb0p68sdz69m";
+      sha256 = "1nhrdih0rk46i0s6x7nqhbypmj1hf23zl5gfl9xasb6k4r2a1dxk";
       type = "gem";
     };
-    version = "6.1.7.4";
+    version = "6.1.7.6";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
+      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.5";
   };
   cms_scanner = {
     dependencies = ["ethon" "get_process_mem" "nokogiri" "opt_parse_validator" "public_suffix" "ruby-progressbar" "sys-proctable" "typhoeus" "xmlrpc" "yajl-ruby"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15d7djrrkrcwznglgkr4y80jbsbxaf071qhjnn4i1c4n7nszwwfj";
+      sha256 = "0p3vdkkd04r31d503z5v0480xlq1fhiw77icbk5s17y6dwfacydy";
       type = "gem";
     };
-    version = "0.13.8";
+    version = "0.13.9";
   };
   concurrent-ruby = {
     groups = ["default"];
@@ -48,20 +48,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kd7c61f28f810fgxg480j7457nlvqarza9c2ra0zhav0dd80288";
+      sha256 = "17ix0mijpsy3y0c6ywrk5ibarmvqzjsirjyprpsy3hwax8fdm85v";
       type = "gem";
     };
-    version = "0.15.0";
+    version = "0.16.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   get_process_mem = {
     dependencies = ["ffi"];
@@ -90,20 +90,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6";
+      sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs";
       type = "gem";
     };
-    version = "2.8.2";
+    version = "2.8.5";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kg9wh7jlc9zsr3hkhpzkbn0ynf4np5ap9m2d8xdrb8shy0y6pmb";
+      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
       type = "gem";
     };
-    version = "5.18.1";
+    version = "5.20.0";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -111,10 +111,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n79k78c5vdcyl0m3y3l5x9kxl6xf5lgriwi2vd665qmdkr01vnk";
+      sha256 = "004ip9x9281fxhpipwi8di1sb1dnabscq9dy1p3cxgdwbniqqi12";
       type = "gem";
     };
-    version = "1.13.10";
+    version = "1.15.5";
   };
   opt_parse_validator = {
     dependencies = ["activesupport" "addressable"];
@@ -132,30 +132,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
+      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
       type = "gem";
     };
-    version = "4.0.7";
+    version = "5.0.4";
   };
   racc = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.7.3";
   };
   ruby-progressbar = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
+      sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.13.0";
   };
   sys-proctable = {
     dependencies = ["ffi"];
@@ -163,10 +163,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "121ix0bl19pawhljs17sfgddkd0hgxlhchsz9kxw14ipmskjq9ah";
+      sha256 = "0m3fj6j1qpfszqnsvr6wpak0d9vw5ggylaqkalhl3m50kbbimxii";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.3.0";
   };
   typhoeus = {
     dependencies = ["ethon"];
@@ -174,10 +174,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
+      sha256 = "0z7gamf6s83wy0yqms3bi4srirn3fc0lc7n65lqanidxcj1xn5qw";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.4.1";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -206,10 +206,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qh7x5sjx1i9h8zrp86qz126brxbqx0c3wxc8vn7fpln0y78nw9q";
+      sha256 = "1x04asq0aznbm6m79jlsv7mjbhq755759s4bi3qbyrv5rwpy7hji";
       type = "gem";
     };
-    version = "3.8.24";
+    version = "3.8.25";
   };
   xmlrpc = {
     dependencies = ["webrick"];
@@ -217,10 +217,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xa79ry3976ylap38cr5g6q3m81plm611flqd3dwgnmgbkycb6jp";
+      sha256 = "0fwfnccagsjrbvrav5nbk3zracj9zncr7i375nn20jd4cfy4cggc";
       type = "gem";
     };
-    version = "0.3.2";
+    version = "0.3.3";
   };
   yajl-ruby = {
     groups = ["default"];
@@ -237,9 +237,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ck6bj7wa73dkdh13735jl06k6cfny98glxjkas82aivlmyzqqbk";
+      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
       type = "gem";
     };
-    version = "2.6.8";
+    version = "2.6.12";
   };
 }
diff --git a/pkgs/tools/security/xcrawl3r/default.nix b/pkgs/tools/security/xcrawl3r/default.nix
index c7b63c238be10..b714d555bafb7 100644
--- a/pkgs/tools/security/xcrawl3r/default.nix
+++ b/pkgs/tools/security/xcrawl3r/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/hueristiq/xcrawl3r/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "xcrawl3r";
   };
 }
diff --git a/pkgs/tools/security/xsubfind3r/default.nix b/pkgs/tools/security/xsubfind3r/default.nix
index 9ca2d3457a057..7c5470a0715ae 100644
--- a/pkgs/tools/security/xsubfind3r/default.nix
+++ b/pkgs/tools/security/xsubfind3r/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "xsubfind3r";
-  version = "0.3.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "hueristiq";
     repo = "xsubfind3r";
     rev = "refs/tags/${version}";
-    hash = "sha256-DY9/qcE8Ryue6NEWglM1F+xd669DPBIgt743ta+O//4=";
+    hash = "sha256-tukynKPcIwDwpH0/SFyif6OGVZrmLVdXfhrFaaVd1d8=";
   };
 
-  vendorHash = "sha256-dFjyeIiDGdGTlZoZvsW9cwb+urS0NRxBMFf3+Y+rsAE=";
+  vendorHash = "sha256-0tX/s5a6PPQuEw3BTs6uW9c5OHqXryzIfDNPnQH5sS8=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/yara/default.nix b/pkgs/tools/security/yara/default.nix
index dc6d4acb6cbed..83f772d48410a 100644
--- a/pkgs/tools/security/yara/default.nix
+++ b/pkgs/tools/security/yara/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yara";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Q+Q52W/MhurG3x0CIr0nv31qc4bdaLDk9AGGpMxKOcI=";
+    hash = "sha256-axHFy7YwLhhww+lh+ORyW6YG+T385msysIHK5SMyhMk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/yatas/default.nix b/pkgs/tools/security/yatas/default.nix
index 057f0c7b18b4c..e351ea244f5de 100644
--- a/pkgs/tools/security/yatas/default.nix
+++ b/pkgs/tools/security/yatas/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/padok-team/YATAS/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "yatas";
   };
 }
diff --git a/pkgs/tools/security/yersinia/default.nix b/pkgs/tools/security/yersinia/default.nix
index cc8b7752e62a7..a913835743aa3 100644
--- a/pkgs/tools/security/yersinia/default.nix
+++ b/pkgs/tools/security/yersinia/default.nix
@@ -8,32 +8,15 @@
 
 stdenv.mkDerivation rec {
   pname = "yersinia";
-  version = "0.8.2";
+  version = "unstable-2022-11-20";
 
   src = fetchFromGitHub {
     owner = "tomac";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "06yfpf9iyi525rly1ychsihzvw3sas8kp0nxxr99xkwiqp5dc78b";
+    rev = "867b309eced9e02b63412855440cd4f5f7727431";
+    sha256 = "sha256-VShg9Nzd8dzUNiqYnKcDzRgqjwar/8XRGEJCJL25aR0=";
   };
 
-  patches = [
-    # ncurses-6.3 support, included in next release
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://github.com/tomac/yersinia/commit/d91bbf6f475e7ea39f131b77ce91b2de9646d5ca.patch";
-      sha256 = "fl1pZKWA+nLtBm9+3FBFqaeuVZjszQCNkNl6Cf++BAI=";
-    })
-
-    # Pull upstream fix for -fno-common toolchain support:
-    #   https://github.com/tomac/yersinia/pull/66
-    (fetchpatch {
-      name = "fno-common.patch";
-      url = "https://github.com/tomac/yersinia/commit/36247225dc7a6f38c4ba70537e20351f04762749.patch";
-      sha256 = "KHaN8gfgNROEico27gWnYiP9ZVhpWz0KjFYy2t5tPBo=";
-    })
-  ];
-
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ libpcap libnet ncurses ]
     ++ lib.optional withGtk gtk2;
@@ -58,7 +41,5 @@ stdenv.mkDerivation rec {
     # so not sure, but it could work on openbsd, illumos, and freebsd
     # if you have a machine to test with, feel free to add these
     platforms = with platforms; linux;
-    # never built on aarch64-linux since first introduction in nixpkgs
-    broken = stdenv.isLinux && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/tools/security/yubihsm-connector/default.nix b/pkgs/tools/security/yubihsm-connector/default.nix
index 8e56cc6a227e1..aee210beabac6 100644
--- a/pkgs/tools/security/yubihsm-connector/default.nix
+++ b/pkgs/tools/security/yubihsm-connector/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   preBuild = ''
-    go generate
+    GOOS= GOARCH= go generate
   '';
 
   meta = with lib; {
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://developers.yubico.com/yubihsm-connector/";
     maintainers = with maintainers; [ matthewcroughan ];
     license = licenses.asl20;
+    mainProgram = "yubihsm-connector";
   };
 }
diff --git a/pkgs/tools/security/yubihsm-shell/default.nix b/pkgs/tools/security/yubihsm-shell/default.nix
index 650224dd03b1a..24d96f43ba434 100644
--- a/pkgs/tools/security/yubihsm-shell/default.nix
+++ b/pkgs/tools/security/yubihsm-shell/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yubihsm-shell";
-  version = "2.4.0";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "Yubico";
     repo = "yubihsm-shell";
     rev = version;
-    hash = "sha256-zWhvECPdZnrbSAVPDVZk54SWHVkd/HEQxS3FgXoqXHY=";
+    hash = "sha256-Un3DNmrD9aC9+A3+NNM21yrH1g14THXPHkJ0SUYrL/M=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/yubikey-touch-detector/default.nix b/pkgs/tools/security/yubikey-touch-detector/default.nix
index 26402caa812b0..a8474a1a5b3fd 100644
--- a/pkgs/tools/security/yubikey-touch-detector/default.nix
+++ b/pkgs/tools/security/yubikey-touch-detector/default.nix
@@ -44,7 +44,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool to detect when your YubiKey is waiting for a touch (to send notification or display a visual indicator on the screen).";
+    description = "A tool to detect when your YubiKey is waiting for a touch";
     homepage = "https://github.com/maximbaz/yubikey-touch-detector";
     maintainers = with maintainers; [ sumnerevans ];
     license = with licenses; [ bsd2 isc ];
diff --git a/pkgs/tools/security/zeekscript/default.nix b/pkgs/tools/security/zeekscript/default.nix
index c1ab0cb4a190c..eb7d097c5d744 100644
--- a/pkgs/tools/security/zeekscript/default.nix
+++ b/pkgs/tools/security/zeekscript/default.nix
@@ -5,12 +5,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "zeekscript";
-  version = "1.2.1";
-  format = "pyproject";
+  version = "1.2.8";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LogI9sJHvLN5WHJGdW47D09XZInKln/I2hNmG62d1JU=";
+    hash = "sha256-v0PJY0Ahxa4k011AwtWSIAWBXvt3Aybrd382j1SIT6M=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/zlint/default.nix b/pkgs/tools/security/zlint/default.nix
index 68db5038c6f03..ba8eeeb12fa58 100644
--- a/pkgs/tools/security/zlint/default.nix
+++ b/pkgs/tools/security/zlint/default.nix
@@ -7,18 +7,18 @@
 
 buildGoModule rec {
   pname = "zlint";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "zmap";
     repo = "zlint";
     rev = "v${version}";
-    hash = "sha256-PpCA7BeamXWWRIXcoIGg2gufpqrzI6goXxQhJaH04cA=";
+    hash = "sha256-SGQOWMpjSS0XHrBjhPSRPBssCk073Hc1OlzQh/pnSRs=";
   };
 
   modRoot = "v3";
 
-  vendorHash = "sha256-MDg09cjJ/vSLjXm4l5S4v/r2YQPV4enH8V3ByBtDVfM=";
+  vendorHash = "sha256-LP7I7NY/Am6zWfVSvwJanCFwiLfcHKA3Fb9RIMD76a0=";
 
   postPatch = ''
     # Remove a package which is not declared in go.mod.
diff --git a/pkgs/tools/security/zsteg/Gemfile.lock b/pkgs/tools/security/zsteg/Gemfile.lock
index b611fb93f5a9d..0cd593f60a0ff 100644
--- a/pkgs/tools/security/zsteg/Gemfile.lock
+++ b/pkgs/tools/security/zsteg/Gemfile.lock
@@ -1,13 +1,19 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    iostruct (0.0.4)
-    rainbow (3.0.0)
-    zpng (0.3.1)
-      rainbow
-    zsteg (0.2.2)
-      iostruct
-      zpng (>= 0.3.1)
+    forwardable (1.3.3)
+    iostruct (0.0.5)
+    prime (0.1.2)
+      forwardable
+      singleton
+    rainbow (3.1.1)
+    singleton (0.2.0)
+    zpng (0.4.5)
+      rainbow (~> 3.1.1)
+    zsteg (0.2.13)
+      iostruct (>= 0.0.5)
+      prime
+      zpng (>= 0.4.5)
 
 PLATFORMS
   ruby
@@ -16,4 +22,4 @@ DEPENDENCIES
   zsteg
 
 BUNDLED WITH
-   2.1.4
+   2.4.13
diff --git a/pkgs/tools/security/zsteg/default.nix b/pkgs/tools/security/zsteg/default.nix
index e47f285de70a7..2171a77fce1a2 100644
--- a/pkgs/tools/security/zsteg/default.nix
+++ b/pkgs/tools/security/zsteg/default.nix
@@ -8,9 +8,10 @@ bundlerApp {
   exes = [ "zsteg" ];
 
   meta = with lib; {
-    description = "Detect stegano-hidden data in PNG & BMP.";
+    description = "Detect stegano-hidden data in PNG & BMP";
     homepage = "http://zed.0xff.me/";
     license = licenses.mit;
-    maintainers = with maintainers; [ applePrincess ];
+    maintainers = with maintainers; [ applePrincess h7x4 ];
+    mainProgram = "zsteg";
   };
 }
diff --git a/pkgs/tools/security/zsteg/gemset.nix b/pkgs/tools/security/zsteg/gemset.nix
index 4f5bd79ce44c7..5cb55829a6acd 100644
--- a/pkgs/tools/security/zsteg/gemset.nix
+++ b/pkgs/tools/security/zsteg/gemset.nix
@@ -1,23 +1,54 @@
 {
+  forwardable = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b5g1i3xdvmxxpq4qp0z4v78ivqnazz26w110fh4cvzsdayz8zgi";
+      type = "gem";
+    };
+    version = "1.3.3";
+  };
   iostruct = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kwp6ryis32j3z7myw8g7v1yszwrwyl04g2c7flr42pwxga1afxc";
+      sha256 = "1z3vnb8mhzns3ybf78vlj5cy6lq4pyfm8n40kqba2s33xccs3kl0";
       type = "gem";
     };
-    version = "0.0.4";
+    version = "0.0.5";
+  };
+  prime = {
+    dependencies = ["forwardable" "singleton"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1973kz8lbck6ga5v42f55jk8b8pnbgwp9p67dl1xw15gvz55dsfl";
+      type = "gem";
+    };
+    version = "0.1.2";
   };
   rainbow = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  singleton = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qq54imvbksnckzf9hrq9bjzcdb0n8wfv6l5jc0di10n88277jx6";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "0.2.0";
   };
   zpng = {
     dependencies = ["rainbow"];
@@ -25,20 +56,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ciyab7qxqsxjhfvr6rbpdzg655fi1zygqg9sd9m6wmgc037dj74";
+      sha256 = "0xyr7ipgls7wci1gnsz340idm69jls0gind0q4f63ccjwgzsfkqw";
       type = "gem";
     };
-    version = "0.3.1";
+    version = "0.4.5";
   };
   zsteg = {
-    dependencies = ["iostruct" "zpng"];
+    dependencies = ["iostruct" "prime" "zpng"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mwajlsgs27449n2yf2f9hz8g46qv9bz9f58i9cz1jg58spvpxpk";
+      sha256 = "128kbv9vsi288mj17zwvc45ijpzf3p116vk9kcvkz978hz0n6spm";
       type = "gem";
     };
-    version = "0.2.2";
+    version = "0.2.13";
   };
 }
diff --git a/pkgs/tools/system/actkbd/default.nix b/pkgs/tools/system/actkbd/default.nix
index 61be7e5a4a92e..5dd024e573d4e 100644
--- a/pkgs/tools/system/actkbd/default.nix
+++ b/pkgs/tools/system/actkbd/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     homepage = "http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/";
     platforms = platforms.linux;
+    mainProgram = "actkbd";
   };
 }
diff --git a/pkgs/tools/system/amdgpu_top/Cargo.lock b/pkgs/tools/system/amdgpu_top/Cargo.lock
index 4cdf083101033..7905f0a57f327 100644
--- a/pkgs/tools/system/amdgpu_top/Cargo.lock
+++ b/pkgs/tools/system/amdgpu_top/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "ab_glyph"
-version = "0.2.20"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe21446ad43aa56417a767f3e2f3d7c4ca522904de1dd640529a76e9c5c3b33c"
+checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225"
 dependencies = [
  "ab_glyph_rasterizer",
  "owned_ttf_parser",
@@ -20,9 +20,9 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
 
 [[package]]
 name = "accesskit"
-version = "0.11.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02c98a5d094590335462354da402d754fe2cb78f0e6ce5024611c28ed539c1de"
+checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2"
 dependencies = [
  "enumn",
  "serde",
@@ -36,38 +36,54 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if",
  "getrandom",
  "once_cell",
  "serde",
  "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
 ]
 
 [[package]]
 name = "amdgpu_top"
-version = "0.1.11"
+version = "0.6.1"
 dependencies = [
  "amdgpu_top_gui",
  "amdgpu_top_json",
  "amdgpu_top_tui",
+ "gix",
  "libamdgpu_top",
 ]
 
 [[package]]
 name = "amdgpu_top_gui"
-version = "0.1.0"
+version = "0.6.1"
 dependencies = [
  "eframe",
+ "egui_plot",
+ "i18n-embed",
+ "i18n-embed-fl",
  "libamdgpu_top",
+ "once_cell",
+ "rust-embed",
 ]
 
 [[package]]
 name = "amdgpu_top_json"
-version = "0.1.0"
+version = "0.6.1"
 dependencies = [
  "libamdgpu_top",
  "serde_json",
@@ -75,7 +91,7 @@ dependencies = [
 
 [[package]]
 name = "amdgpu_top_tui"
-version = "0.1.0"
+version = "0.6.1"
 dependencies = [
  "cursive",
  "libamdgpu_top",
@@ -83,12 +99,12 @@ dependencies = [
 
 [[package]]
 name = "android-activity"
-version = "0.4.1"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6"
+checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0"
 dependencies = [
  "android-properties",
- "bitflags",
+ "bitflags 1.3.2",
  "cc",
  "jni-sys",
  "libc",
@@ -96,7 +112,7 @@ dependencies = [
  "ndk",
  "ndk-context",
  "ndk-sys",
- "num_enum",
+ "num_enum 0.6.1",
 ]
 
 [[package]]
@@ -107,22 +123,21 @@ checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051"
 
 [[package]]
 name = "arboard"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854"
+checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08"
 dependencies = [
  "clipboard-win",
  "log",
  "objc",
  "objc-foundation",
  "objc_id",
- "once_cell",
  "parking_lot",
  "thiserror",
  "winapi",
@@ -130,22 +145,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "arrayref"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
-
-[[package]]
-name = "arrayvec"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
-
-[[package]]
-name = "atomic_refcell"
-version = "0.1.9"
+name = "arc-swap"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "857253367827bd9d0fd973f0ef15506a96e79e41b0ad7aa691203a4e3214f6c8"
+checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
 
 [[package]]
 name = "autocfg"
@@ -155,9 +158,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "base64"
-version = "0.13.1"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "bitflags"
@@ -166,12 +169,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "block"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
 name = "block-sys"
 version = "0.1.0-beta.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -191,49 +212,70 @@ dependencies = [
 ]
 
 [[package]]
+name = "bstr"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+dependencies = [
+ "memchr",
+ "regex-automata",
+ "serde",
+]
+
+[[package]]
+name = "btoi"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
 name = "bumpalo"
-version = "3.12.0"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "bytemuck"
-version = "1.13.1"
+version = "1.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
+checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.44",
 ]
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "calloop"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192"
+checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8"
 dependencies = [
+ "bitflags 1.3.2",
  "log",
  "nix 0.25.1",
  "slotmap",
@@ -243,11 +285,12 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
+ "libc",
 ]
 
 [[package]]
@@ -289,12 +332,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "clru"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807"
+
+[[package]]
 name = "cocoa"
 version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "block",
  "cocoa-foundation",
  "core-foundation",
@@ -306,15 +355,14 @@ dependencies = [
 
 [[package]]
 name = "cocoa-foundation"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6"
+checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "block",
  "core-foundation",
  "core-graphics-types",
- "foreign-types",
  "libc",
  "objc",
 ]
@@ -337,9 +385,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -347,9 +395,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "core-graphics"
@@ -357,7 +405,7 @@ version = "0.22.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "core-foundation",
  "core-graphics-types",
  "foreign-types",
@@ -366,13 +414,21 @@ dependencies = [
 
 [[package]]
 name = "core-graphics-types"
-version = "0.1.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "core-foundation",
- "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+dependencies = [
  "libc",
 ]
 
@@ -387,9 +443,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.7"
+version = "0.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
+checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -397,9 +453,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.15"
+version = "0.8.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c"
 dependencies = [
  "cfg-if",
 ]
@@ -410,7 +466,7 @@ version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "crossterm_winapi",
  "libc",
  "mio",
@@ -422,14 +478,24 @@ dependencies = [
 
 [[package]]
 name = "crossterm_winapi"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
 dependencies = [
  "winapi",
 ]
 
 [[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
 name = "cursive"
 version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -470,9 +536,9 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.14.4"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -480,56 +546,68 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.14.4"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.44",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.14.4"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.44",
 ]
 
 [[package]]
-name = "directories-next"
-version = "2.0.0"
+name = "dashmap"
+version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if",
- "dirs-sys-next",
+ "hashbrown",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
 ]
 
 [[package]]
-name = "dirs"
-version = "4.0.0"
+name = "deranged"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
- "dirs-sys",
+ "powerfmt",
 ]
 
 [[package]]
-name = "dirs-sys"
-version = "0.3.7"
+name = "digest"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
- "libc",
- "redox_users",
- "winapi",
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "directories-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
 ]
 
 [[package]]
@@ -550,12 +628,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
 
 [[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.44",
+]
+
+[[package]]
 name = "dlib"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
- "libloading",
+ "libloading 0.8.1",
 ]
 
 [[package]]
@@ -565,10 +654,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
+name = "dunce"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+
+[[package]]
 name = "ecolor"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e479a7fa3f23d4e794f8b2f8b3568dd4e47886ad1b12c9c095e141cb591eb63"
+checksum = "4b7637fc2e74d17e52931bac90ff4fc061ac776ada9c7fa272f24cdca5991972"
 dependencies = [
  "bytemuck",
  "serde",
@@ -576,9 +671,9 @@ dependencies = [
 
 [[package]]
 name = "eframe"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4596583a2c680c55b6feaa748f74890c4f9cb9c7cb69d6117110444cb65b2f"
+checksum = "cdd73918a828c35a7efb4d7188ea973df4bffc589178ed95f521c917b03ddcfa"
 dependencies = [
  "bytemuck",
  "cocoa",
@@ -593,10 +688,12 @@ dependencies = [
  "js-sys",
  "log",
  "objc",
+ "parking_lot",
  "percent-encoding",
  "raw-window-handle",
  "ron",
  "serde",
+ "static_assertions",
  "thiserror",
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -607,9 +704,9 @@ dependencies = [
 
 [[package]]
 name = "egui"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3aef8ec3ae1b772f340170c65bf27d5b8c28f543a0116c844d2ac08d01123e7"
+checksum = "c55bcb864b764eb889515a38b8924757657a250738ad15126637ee2df291ee6b"
 dependencies = [
  "accesskit",
  "ahash",
@@ -622,41 +719,50 @@ dependencies = [
 
 [[package]]
 name = "egui-winit"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a49155fd4a0a4fb21224407a91de0030847972ef90fc64edb63621caea61cb2"
+checksum = "3b673606b6606b12b95e3a3194d7882bf5cff302db36a520b8144c7c342e4e84"
 dependencies = [
  "arboard",
  "egui",
- "instant",
  "log",
  "raw-window-handle",
  "serde",
  "smithay-clipboard",
+ "web-time",
  "webbrowser",
  "winit",
 ]
 
 [[package]]
 name = "egui_glow"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f8c2752cdf1b0ef5fcda59a898cacabad974d4f5880e92a420b2c917022da64"
+checksum = "262151f9d57c557c02a40a46f27b9e050a6eb0b006b94dced9c6f4519a04d489"
 dependencies = [
  "bytemuck",
  "egui",
  "glow",
  "log",
- "memoffset",
+ "memoffset 0.7.1",
  "wasm-bindgen",
  "web-sys",
 ]
 
 [[package]]
+name = "egui_plot"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b37b2edcdd197db41825266ae7979bd7591fa2eb6b40152375ac05eb323eb9d2"
+dependencies = [
+ "egui",
+]
+
+[[package]]
 name = "emath"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3857d743a6e0741cdd60b622a74c7a36ea75f5f8f11b793b41d905d2c9721a4b"
+checksum = "a045c6c0b44b35e98513fc1e9d183ab42881ac27caccb9fa345465601f56cce4"
 dependencies = [
  "bytemuck",
  "serde",
@@ -664,65 +770,64 @@ dependencies = [
 
 [[package]]
 name = "enum-map"
-version = "2.5.0"
+version = "2.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "988f0d17a0fa38291e5f41f71ea8d46a5d5497b9054d5a759fae2cbb819f2356"
+checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9"
 dependencies = [
  "enum-map-derive",
 ]
 
 [[package]]
 name = "enum-map-derive"
-version = "0.11.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a4da76b3b6116d758c7ba93f7ec6a35d2e2cf24feda76c6e38a375f4d5c59f2"
+checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.44",
 ]
 
 [[package]]
 name = "enumn"
-version = "0.1.8"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76"
+checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.44",
 ]
 
 [[package]]
 name = "enumset"
-version = "1.0.12"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753"
+checksum = "226c0da7462c13fb57e5cc9e0dc8f0635e7d27f276a3a7fd30054647f669007d"
 dependencies = [
  "enumset_derive",
 ]
 
 [[package]]
 name = "enumset_derive"
-version = "0.6.1"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0"
+checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.44",
 ]
 
 [[package]]
 name = "epaint"
-version = "0.22.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09333964d4d57f40a85338ba3ca5ed4716070ab184dcfed966b35491c5c64f3b"
+checksum = "7d1b9e000d21bab9b535ce78f9f7745be28b3f777f6c7223936561c5c7fefab8"
 dependencies = [
  "ab_glyph",
  "ahash",
- "atomic_refcell",
  "bytemuck",
  "ecolor",
  "emath",
@@ -733,6 +838,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "error-code"
 version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -743,22 +864,90 @@ dependencies = [
 ]
 
 [[package]]
+name = "faster-hex"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
 name = "fdeflate"
-version = "0.3.0"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd"
 dependencies = [
  "simd-adler32",
 ]
 
 [[package]]
+name = "find-crate"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2"
+dependencies = [
+ "toml 0.5.11",
+]
+
+[[package]]
 name = "flate2"
-version = "1.0.25"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.6.2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fluent"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61f69378194459db76abd2ce3952b790db103ceb003008d3d50d97c41ff847a7"
+dependencies = [
+ "fluent-bundle",
+ "unic-langid",
+]
+
+[[package]]
+name = "fluent-bundle"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd"
+dependencies = [
+ "fluent-langneg",
+ "fluent-syntax",
+ "intl-memoizer",
+ "intl_pluralrules",
+ "rustc-hash",
+ "self_cell 0.10.3",
+ "smallvec",
+ "unic-langid",
+]
+
+[[package]]
+name = "fluent-langneg"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94"
+dependencies = [
+ "unic-langid",
+]
+
+[[package]]
+name = "fluent-syntax"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78"
+dependencies = [
+ "thiserror",
 ]
 
 [[package]]
@@ -784,18 +973,28 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.1.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
 name = "gethostname"
-version = "0.2.3"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
 dependencies = [
  "libc",
  "winapi",
@@ -803,9 +1002,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
  "cfg-if",
  "libc",
@@ -813,6 +1012,466 @@ dependencies = [
 ]
 
 [[package]]
+name = "gix"
+version = "0.55.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "002667cd1ebb789313d0d0afe3d23b2821cf3b0e91605095f0e6d8751f0ceeea"
+dependencies = [
+ "gix-actor",
+ "gix-commitgraph",
+ "gix-config",
+ "gix-date",
+ "gix-diff",
+ "gix-discover",
+ "gix-features",
+ "gix-fs",
+ "gix-glob",
+ "gix-hash",
+ "gix-hashtable",
+ "gix-lock",
+ "gix-macros",
+ "gix-object",
+ "gix-odb",
+ "gix-pack",
+ "gix-path",
+ "gix-ref",
+ "gix-refspec",
+ "gix-revision",
+ "gix-revwalk",
+ "gix-sec",
+ "gix-tempfile",
+ "gix-trace",
+ "gix-traverse",
+ "gix-url",
+ "gix-utils",
+ "gix-validate",
+ "once_cell",
+ "parking_lot",
+ "smallvec",
+ "thiserror",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "gix-actor"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417"
+dependencies = [
+ "bstr",
+ "btoi",
+ "gix-date",
+ "itoa",
+ "thiserror",
+ "winnow",
+]
+
+[[package]]
+name = "gix-chunk"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "003ec6deacf68076a0c157271a127e0bb2c031c1a41f7168cbe5d248d9b85c78"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
+name = "gix-commitgraph"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36"
+dependencies = [
+ "bstr",
+ "gix-chunk",
+ "gix-features",
+ "gix-hash",
+ "memmap2 0.9.3",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-config"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cae98c6b4c66c09379bc35274b172587d6b0ac369a416c39128ad8c6454f9bb"
+dependencies = [
+ "bstr",
+ "gix-config-value",
+ "gix-features",
+ "gix-glob",
+ "gix-path",
+ "gix-ref",
+ "gix-sec",
+ "memchr",
+ "once_cell",
+ "smallvec",
+ "thiserror",
+ "unicode-bom",
+ "winnow",
+]
+
+[[package]]
+name = "gix-config-value"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52e0be46f4cf1f8f9e88d0e3eb7b29718aff23889563249f379119bd1ab6910e"
+dependencies = [
+ "bitflags 2.4.1",
+ "bstr",
+ "gix-path",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-date"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb7f3dfb72bebe3449b5e642be64e3c6ccbe9821c8b8f19f487cf5bfbbf4067e"
+dependencies = [
+ "bstr",
+ "itoa",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "gix-diff"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "931394f69fb8c9ed6afc0aae3487bd869e936339bcc13ed8884472af072e0554"
+dependencies = [
+ "gix-hash",
+ "gix-object",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-discover"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a45d5cf0321178883e38705ab2b098f625d609a7d4c391b33ac952eff2c490f2"
+dependencies = [
+ "bstr",
+ "dunce",
+ "gix-hash",
+ "gix-path",
+ "gix-ref",
+ "gix-sec",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-features"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2"
+dependencies = [
+ "crc32fast",
+ "flate2",
+ "gix-hash",
+ "gix-trace",
+ "libc",
+ "once_cell",
+ "prodash",
+ "sha1_smol",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
+name = "gix-fs"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107"
+dependencies = [
+ "gix-features",
+]
+
+[[package]]
+name = "gix-glob"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19"
+dependencies = [
+ "bitflags 2.4.1",
+ "bstr",
+ "gix-features",
+ "gix-path",
+]
+
+[[package]]
+name = "gix-hash"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f8cf8c2266f63e582b7eb206799b63aa5fa68ee510ad349f637dfe2d0653de0"
+dependencies = [
+ "faster-hex",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-hashtable"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca"
+dependencies = [
+ "gix-hash",
+ "hashbrown",
+ "parking_lot",
+]
+
+[[package]]
+name = "gix-lock"
+version = "11.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37"
+dependencies = [
+ "gix-tempfile",
+ "gix-utils",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-macros"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d75e7ab728059f595f6ddc1ad8771b8d6a231971ae493d9d5948ecad366ee8bb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.44",
+]
+
+[[package]]
+name = "gix-object"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "740f2a44267f58770a1cb3a3d01d14e67b089c7136c48d4bddbb3cfd2bf86a51"
+dependencies = [
+ "bstr",
+ "btoi",
+ "gix-actor",
+ "gix-date",
+ "gix-features",
+ "gix-hash",
+ "gix-validate",
+ "itoa",
+ "smallvec",
+ "thiserror",
+ "winnow",
+]
+
+[[package]]
+name = "gix-odb"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8630b56cb80d8fa684d383dad006a66401ee8314e12fbf0e566ddad8c115143b"
+dependencies = [
+ "arc-swap",
+ "gix-date",
+ "gix-features",
+ "gix-hash",
+ "gix-object",
+ "gix-pack",
+ "gix-path",
+ "gix-quote",
+ "parking_lot",
+ "tempfile",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-pack"
+version = "0.44.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1431ba2e30deff1405920693d54ab231c88d7c240dd6ccc936ee223d8f8697c3"
+dependencies = [
+ "clru",
+ "gix-chunk",
+ "gix-features",
+ "gix-hash",
+ "gix-hashtable",
+ "gix-object",
+ "gix-path",
+ "gix-tempfile",
+ "memmap2 0.7.1",
+ "parking_lot",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-path"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dd0998ab245f33d40ca2267e58d542fe54185ebd1dc41923346cf28d179fb6"
+dependencies = [
+ "bstr",
+ "gix-trace",
+ "home",
+ "once_cell",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-quote"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7dc10303d73a960d10fb82f81188b036ac3e6b11b5795b20b1a60b51d1321f"
+dependencies = [
+ "bstr",
+ "btoi",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-ref"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ec2f6d07ac88d2fb8007ee3fa3e801856fb9d82e7366ec0ca332eb2c9d74a52"
+dependencies = [
+ "gix-actor",
+ "gix-date",
+ "gix-features",
+ "gix-fs",
+ "gix-hash",
+ "gix-lock",
+ "gix-object",
+ "gix-path",
+ "gix-tempfile",
+ "gix-validate",
+ "memmap2 0.7.1",
+ "thiserror",
+ "winnow",
+]
+
+[[package]]
+name = "gix-refspec"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccb0974cc41dbdb43a180c7f67aa481e1c1e160fcfa8f4a55291fd1126c1a6e7"
+dependencies = [
+ "bstr",
+ "gix-hash",
+ "gix-revision",
+ "gix-validate",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-revision"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ca97ac73459a7f3766aa4a5638a6e37d56d4c7962bc1986fbaf4883d0772588"
+dependencies = [
+ "bstr",
+ "gix-date",
+ "gix-hash",
+ "gix-hashtable",
+ "gix-object",
+ "gix-revwalk",
+ "gix-trace",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-revwalk"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a16d8c892e4cd676d86f0265bf9d40cefd73d8d94f86b213b8b77d50e77efae0"
+dependencies = [
+ "gix-commitgraph",
+ "gix-date",
+ "gix-hash",
+ "gix-hashtable",
+ "gix-object",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-sec"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78f6dce0c6683e2219e8169aac4b1c29e89540a8262fef7056b31d80d969408c"
+dependencies = [
+ "bitflags 2.4.1",
+ "gix-path",
+ "libc",
+ "windows",
+]
+
+[[package]]
+name = "gix-tempfile"
+version = "11.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23"
+dependencies = [
+ "gix-fs",
+ "libc",
+ "once_cell",
+ "parking_lot",
+ "tempfile",
+]
+
+[[package]]
+name = "gix-trace"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8e1127ede0475b58f4fe9c0aaa0d9bb0bad2af90bbd93ccd307c8632b863d89"
+
+[[package]]
+name = "gix-traverse"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14d050ec7d4e1bb76abf0636cf4104fb915b70e54e3ced9a4427c999100ff38a"
+dependencies = [
+ "gix-commitgraph",
+ "gix-date",
+ "gix-hash",
+ "gix-hashtable",
+ "gix-object",
+ "gix-revwalk",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-url"
+version = "0.25.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005"
+dependencies = [
+ "bstr",
+ "gix-features",
+ "gix-path",
+ "home",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "gix-utils"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de6225e2de30b6e9bca2d9f1cc4731640fcef0fb3cabddceee366e7e85d3e94f"
+dependencies = [
+ "fastrand",
+]
+
+[[package]]
+name = "gix-validate"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac7cc36f496bd5d96cdca0f9289bb684480725d40db60f48194aa7723b883854"
+dependencies = [
+ "bstr",
+ "thiserror",
+]
+
+[[package]]
 name = "gl_generator"
 version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -825,9 +1484,9 @@ dependencies = [
 
 [[package]]
 name = "glow"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1"
+checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728"
 dependencies = [
  "js-sys",
  "slotmap",
@@ -837,11 +1496,11 @@ dependencies = [
 
 [[package]]
 name = "glutin"
-version = "0.30.7"
+version = "0.30.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f89bab9ec7715de13d5d5402238e66f48e3a5ae636ebb45aba4013c962e2ff15"
+checksum = "8fc93b03242719b8ad39fb26ed2b01737144ce7bd4bfc7adadcef806596760fe"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg_aliases",
  "cgl",
  "core-foundation",
@@ -849,12 +1508,12 @@ dependencies = [
  "glutin_egl_sys",
  "glutin_glx_sys",
  "glutin_wgl_sys",
- "libloading",
+ "libloading 0.7.4",
  "objc2",
  "once_cell",
  "raw-window-handle",
  "wayland-sys 0.30.1",
- "windows-sys",
+ "windows-sys 0.45.0",
  "x11-dl",
 ]
 
@@ -872,12 +1531,12 @@ dependencies = [
 
 [[package]]
 name = "glutin_egl_sys"
-version = "0.4.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5aaf0abb5c4148685b33101ae326a207946b4d3764d6cdc79f8316cdaa8367d"
+checksum = "af784eb26c5a68ec85391268e074f0aa618c096eadb5d6330b0911cf34fe57c5"
 dependencies = [
  "gl_generator",
- "windows-sys",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
@@ -901,9 +1560,88 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "i18n-config"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "0c9ce3c48cbc21fd5b22b9331f32b5b51f6ad85d969b99e793427332e76e7640"
+dependencies = [
+ "log",
+ "serde",
+ "serde_derive",
+ "thiserror",
+ "toml 0.8.8",
+ "unic-langid",
+]
+
+[[package]]
+name = "i18n-embed"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94205d95764f5bb9db9ea98fa77f89653365ca748e27161f5bbea2ffd50e459c"
+dependencies = [
+ "arc-swap",
+ "fluent",
+ "fluent-langneg",
+ "fluent-syntax",
+ "i18n-embed-impl",
+ "intl-memoizer",
+ "lazy_static",
+ "locale_config",
+ "log",
+ "parking_lot",
+ "rust-embed",
+ "thiserror",
+ "unic-langid",
+ "walkdir",
+]
+
+[[package]]
+name = "i18n-embed-fl"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc1f8715195dffc4caddcf1cf3128da15fe5d8a137606ea8856c9300047d5a2"
+dependencies = [
+ "dashmap",
+ "find-crate",
+ "fluent",
+ "fluent-syntax",
+ "i18n-config",
+ "i18n-embed",
+ "lazy_static",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.44",
+ "unic-langid",
+]
+
+[[package]]
+name = "i18n-embed-impl"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81093c4701672f59416582fe3145676126fd23ba5db910acad0793c1108aaa58"
+dependencies = [
+ "find-crate",
+ "i18n-config",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.44",
+]
 
 [[package]]
 name = "ident_case"
@@ -913,9 +1651,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.3.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -923,9 +1661,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.6"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a"
+checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -937,11 +1675,11 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
- "autocfg",
+ "equivalent",
  "hashbrown",
 ]
 
@@ -958,10 +1696,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "intl-memoizer"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f"
+dependencies = [
+ "type-map",
+ "unic-langid",
+]
+
+[[package]]
+name = "intl_pluralrules"
+version = "7.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972"
+dependencies = [
+ "unic-langid",
+]
+
+[[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jni"
@@ -976,7 +1733,7 @@ dependencies = [
  "log",
  "thiserror",
  "walkdir",
- "windows-sys",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
@@ -987,18 +1744,18 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.61"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1017,7 +1774,7 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libamdgpu_top"
-version = "0.1.10"
+version = "0.6.1"
 dependencies = [
  "anyhow",
  "libdrm_amdgpu_sys",
@@ -1025,15 +1782,14 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.141"
+version = "0.2.151"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 
 [[package]]
 name = "libdrm_amdgpu_sys"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6441089848c428085639f12ef420bcae8ac6650f4cf1d7f9215611a34176bb"
+version = "0.4.1"
+source = "git+https://github.com/Umio-Yasuno/libdrm-amdgpu-sys-rs#d2e0bd7d1dd822b95789842d96e183ae1bb31aeb"
 dependencies = [
  "libc",
 ]
@@ -1049,10 +1805,61 @@ dependencies = [
 ]
 
 [[package]]
+name = "libloading"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+
+[[package]]
+name = "locale_config"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
+dependencies = [
+ "lazy_static",
+ "objc",
+ "objc-foundation",
+ "regex",
+ "winapi",
+]
+
+[[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1060,12 +1867,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "malloc_buf"
@@ -1078,9 +1882,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -1092,6 +1896,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "memmap2"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memmap2"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "memoffset"
 version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1101,18 +1923,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.6.2"
+name = "memoffset"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
 dependencies = [
- "adler",
+ "autocfg",
 ]
 
 [[package]]
@@ -1127,14 +1943,14 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.6"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
  "wasi",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1143,10 +1959,10 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "jni-sys",
  "ndk-sys",
- "num_enum",
+ "num_enum 0.5.11",
  "raw-window-handle",
  "thiserror",
 ]
@@ -1172,10 +1988,10 @@ version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset",
+ "memoffset 0.6.5",
 ]
 
 [[package]]
@@ -1185,33 +2001,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
 dependencies = [
  "autocfg",
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset",
+ "memoffset 0.6.5",
 ]
 
 [[package]]
-name = "nohash-hasher"
-version = "0.2.0"
+name = "nix"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.7.1",
+]
 
 [[package]]
-name = "nom"
-version = "7.1.3"
+name = "nohash-hasher"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
+checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
 
 [[package]]
 name = "num"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
+checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
 dependencies = [
  "num-complex",
  "num-integer",
@@ -1222,9 +2040,9 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d"
+checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
 dependencies = [
  "num-traits",
 ]
@@ -1263,9 +2081,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -1276,7 +2094,16 @@ version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
 dependencies = [
- "num_enum_derive",
+ "num_enum_derive 0.5.11",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1"
+dependencies = [
+ "num_enum_derive 0.6.1",
 ]
 
 [[package]]
@@ -1292,6 +2119,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "num_enum_derive"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.44",
+]
+
+[[package]]
 name = "num_threads"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1328,9 +2167,9 @@ checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7"
 
 [[package]]
 name = "objc2"
-version = "0.3.0-beta.3"
+version = "0.3.0-beta.3.patch-leaks.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe31e5425d3d0b89a15982c024392815da40689aceb34bad364d58732bcfd649"
+checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468"
 dependencies = [
  "block2",
  "objc-sys",
@@ -1357,27 +2196,24 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "orbclient"
-version = "0.3.44"
+version = "0.3.47"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e9829e16c5e112e94efb5e2ad1fe17f8c1c99bb0fcdc8c65c44e935d904767d"
+checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166"
 dependencies = [
- "cfg-if",
- "redox_syscall 0.2.16",
- "wasm-bindgen",
- "web-sys",
+ "libredox 0.0.2",
 ]
 
 [[package]]
 name = "owned_ttf_parser"
-version = "0.18.1"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e25e9fb15717794fae58ab55c26e044103aad13186fbb625893f9a3bbcc24228"
+checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7"
 dependencies = [
  "ttf-parser",
 ]
@@ -1403,66 +2239,102 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.7"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.2.16",
+ "redox_syscall 0.4.1",
  "smallvec",
- "windows-sys",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "percent-encoding"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.26"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
 
 [[package]]
 name = "png"
-version = "0.17.8"
+version = "0.17.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa"
+checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide 0.7.1",
+ "miniz_oxide",
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "proc-macro-crate"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
  "once_cell",
- "toml_edit",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.73"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "2dd5e8a1f1029c43224ad5898e50140c2aebb1705f19e67c918ebf5b9e797fe1"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
+name = "prodash"
+version = "26.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf"
+
+[[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "22a37c9326af5ed140c86a46655b5278de879853be5573c01df185b6f49a580a"
 dependencies = [
  "proc-macro2",
 ]
@@ -1475,49 +2347,132 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
  "getrandom",
- "redox_syscall 0.2.16",
+ "libredox 0.0.1",
  "thiserror",
 ]
 
 [[package]]
+name = "regex"
+version = "1.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
 name = "ron"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff"
+checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
  "base64",
- "bitflags",
+ "bitflags 2.4.1",
  "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rust-embed"
+version = "8.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a82c0bbc10308ed323529fd3c1dce8badda635aa319a5ff0e6466f33b8101e3f"
+dependencies = [
+ "rust-embed-impl",
+ "rust-embed-utils",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-impl"
+version = "8.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6227c01b1783cdfee1bcf844eb44594cd16ec71c35305bf1c9fb5aade2735e16"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "rust-embed-utils",
+ "syn 2.0.44",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-utils"
+version = "8.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cb0a25bfbb2d4b4402179c2cf030387d9990857ce08a32592c6238db9fa8665"
+dependencies = [
+ "sha2",
+ "walkdir",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.38.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -1536,48 +2491,50 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
-name = "sctk-adwaita"
-version = "0.5.4"
+name = "self_cell"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09"
+checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d"
 dependencies = [
- "ab_glyph",
- "log",
- "memmap2",
- "smithay-client-toolkit",
- "tiny-skia",
+ "self_cell 1.0.3",
 ]
 
 [[package]]
+name = "self_cell"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
+
+[[package]]
 name = "serde"
-version = "1.0.159"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.159"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.44",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.95"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
+checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9"
 dependencies = [
  "itoa",
  "ryu",
@@ -1585,10 +2542,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "sha1_smol"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
 name = "signal-hook"
-version = "0.3.15"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
 dependencies = [
  "libc",
  "signal-hook-registry",
@@ -1616,37 +2599,37 @@ dependencies = [
 
 [[package]]
 name = "simd-adler32"
-version = "0.3.5"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
 name = "slotmap"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
+checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
 dependencies = [
  "version_check",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.16.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454"
+checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "calloop",
  "dlib",
  "lazy_static",
  "log",
- "memmap2",
+ "memmap2 0.5.10",
  "nix 0.24.3",
  "pkg-config",
  "wayland-client",
@@ -1671,16 +2654,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 
 [[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
 name = "str-buf"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
 
 [[package]]
-name = "strict-num"
-version = "0.1.0"
+name = "strsim"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9df65f20698aeed245efdde3628a6b559ea1239bbb871af1b6e3b58c413b2bd1"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "syn"
@@ -1695,9 +2684,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.15"
+version = "2.0.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
+checksum = "92d27c2c202598d05175a6dd3af46824b7f747f8d8e9b14c623f19fa5069735d"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1705,34 +2694,49 @@ dependencies = [
 ]
 
 [[package]]
+name = "tempfile"
+version = "3.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall 0.4.1",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "b2cd5904763bad08ad5513ddbb12cf2ae273ca53fa9f68e843e236ec6dfccc09"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "3dcf4a824cce0aeacd6f38ae6f24234c8e80d68632338ebaa1443b5df9e29e19"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.44",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.20"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
+ "deranged",
  "itoa",
  "libc",
  "num_threads",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -1740,42 +2744,26 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.8"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
 dependencies = [
  "time-core",
 ]
 
 [[package]]
-name = "tiny-skia"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfef3412c6975196fdfac41ef232f910be2bb37b9dd3313a49a1a6bc815a5bdb"
-dependencies = [
- "arrayref",
- "arrayvec",
- "bytemuck",
- "cfg-if",
- "png",
- "tiny-skia-path",
-]
-
-[[package]]
-name = "tiny-skia-path"
-version = "0.8.3"
+name = "tinystr"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4b5edac058fc98f51c935daea4d805b695b38e2f151241cad125ade2a2ac20d"
+checksum = "83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece"
 dependencies = [
- "arrayref",
- "bytemuck",
- "strict-num",
+ "displaydoc",
 ]
 
 [[package]]
@@ -1794,39 +2782,116 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.21.0",
+]
+
+[[package]]
 name = "toml_datetime"
-version = "0.6.1"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.8"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
  "indexmap",
+ "serde",
+ "serde_spanned",
  "toml_datetime",
  "winnow",
 ]
 
 [[package]]
 name = "ttf-parser"
-version = "0.18.1"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
+
+[[package]]
+name = "type-map"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46"
+dependencies = [
+ "rustc-hash",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unic-langid"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633"
+checksum = "238722e6d794ed130f91f4ea33e01fcff4f188d92337a21297892521c72df516"
+dependencies = [
+ "unic-langid-impl",
+]
+
+[[package]]
+name = "unic-langid-impl"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bd55a2063fdea4ef1f8633243a7b0524cbeef1905ae04c31a1c9b9775c55bc6"
+dependencies = [
+ "serde",
+ "tinystr",
+]
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+
+[[package]]
+name = "unicode-bom"
+version = "2.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
@@ -1845,15 +2910,15 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "url"
-version = "2.3.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -1874,9 +2939,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -1890,9 +2955,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -1900,24 +2965,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.44",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.34"
+version = "0.4.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -1927,9 +2992,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -1937,22 +3002,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.44",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "wayland-client"
@@ -1960,7 +3025,7 @@ version = "0.29.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "downcast-rs",
  "libc",
  "nix 0.24.3",
@@ -1999,7 +3064,7 @@ version = "0.29.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "wayland-client",
  "wayland-commons",
  "wayland-scanner",
@@ -2041,9 +3106,19 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.61"
+version = "0.3.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2051,12 +3126,12 @@ dependencies = [
 
 [[package]]
 name = "webbrowser"
-version = "0.8.9"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b692165700260bbd40fbc5ff23766c03e339fbaca907aeea5cb77bf0a553ca83"
+checksum = "82b2391658b02c27719fc5a0a73d6e696285138e8b12fba9d4baa70451023c71"
 dependencies = [
  "core-foundation",
- "dirs",
+ "home",
  "jni",
  "log",
  "ndk-context",
@@ -2084,9 +3159,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -2107,12 +3182,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core",
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
 name = "windows-sys"
 version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -2121,13 +3233,43 @@ version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
 ]
 
 [[package]]
@@ -2137,49 +3279,133 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
 
 [[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[package]]
 name = "windows_x86_64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
 name = "winit"
-version = "0.28.3"
+version = "0.28.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f504e8c117b9015f618774f8d58cd4781f5a479bc41079c064f974cbb253874"
+checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94"
 dependencies = [
  "android-activity",
- "bitflags",
+ "bitflags 1.3.2",
  "cfg_aliases",
  "core-foundation",
  "core-graphics",
@@ -2195,7 +3421,6 @@ dependencies = [
  "percent-encoding",
  "raw-window-handle",
  "redox_syscall 0.3.5",
- "sctk-adwaita",
  "smithay-client-toolkit",
  "wasm-bindgen",
  "wayland-client",
@@ -2203,15 +3428,15 @@ dependencies = [
  "wayland-protocols",
  "wayland-scanner",
  "web-sys",
- "windows-sys",
+ "windows-sys 0.45.0",
  "x11-dl",
 ]
 
 [[package]]
 name = "winnow"
-version = "0.4.1"
+version = "0.5.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28"
+checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c"
 dependencies = [
  "memchr",
 ]
@@ -2229,12 +3454,12 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.10.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
+checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
 dependencies = [
  "gethostname",
- "nix 0.24.3",
+ "nix 0.26.4",
  "winapi",
  "winapi-wsapoll",
  "x11rb-protocol",
@@ -2242,21 +3467,18 @@ dependencies = [
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.10.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67"
+checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
 dependencies = [
- "nix 0.24.3",
+ "nix 0.26.4",
 ]
 
 [[package]]
 name = "xcursor"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
-dependencies = [
- "nom",
-]
+checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911"
 
 [[package]]
 name = "xi-unicode"
@@ -2266,6 +3488,26 @@ checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
 
 [[package]]
 name = "xml-rs"
-version = "0.8.4"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.44",
+]
diff --git a/pkgs/tools/system/amdgpu_top/default.nix b/pkgs/tools/system/amdgpu_top/default.nix
index b8f753bc5a46b..3b220a919fef0 100644
--- a/pkgs/tools/system/amdgpu_top/default.nix
+++ b/pkgs/tools/system/amdgpu_top/default.nix
@@ -14,16 +14,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "amdgpu_top";
-  version = "0.1.11";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "Umio-Yasuno";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-jeKwvecB67U+TACr4uXGjRWvRG3GUleiqyu5MYlFwq0=";
+    hash = "sha256-/8fYoIp0EezqamKYoZYLllKm5BmljJ0iRpaM2uSPw5Q=";
   };
 
   cargoLock = {
+    outputHashes = {
+      "libdrm_amdgpu_sys-0.4.1" = "sha256-4z6f0vQHF2sAbvAoGMTrAzI953bjsA7Kw719HDuhjg4=";
+    };
     lockFile = ./Cargo.lock;
   };
 
@@ -54,5 +57,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ geri1701 ];
     platforms = platforms.linux;
+    mainProgram = "amdgpu_top";
   };
 }
diff --git a/pkgs/tools/system/at/default.nix b/pkgs/tools/system/at/default.nix
index 11a45fbe391aa..e5eebb727b54f 100644
--- a/pkgs/tools/system/at/default.nix
+++ b/pkgs/tools/system/at/default.nix
@@ -5,22 +5,38 @@
 
 stdenv.mkDerivation rec {
   pname = "at";
-  version = "3.1.23";
+  version = "3.2.5";
 
   src = fetchurl {
     # Debian is apparently the last location where it can be found.
     url = "mirror://debian/pool/main/a/at/at_${version}.orig.tar.gz";
-    sha256 = "040pr2ivfbrhvrhzis97cpwfkzpr7nin33nc301aga5aajlhlicp";
+    hash = "sha256-uwZrOJ18m7nYSjVzgDK4XDDLp9lJ91gZKtxyyUd/07g=";
   };
 
   patches = [
-    ./install.patch
+    # Remove glibc assumption
     (fetchpatch {
       url = "https://raw.githubusercontent.com/riscv/riscv-poky/master/meta/recipes-extended/at/at/0001-remove-glibc-assumption.patch";
-      sha256 = "1rk4hskp0c1jqkanzdxf873i6jgki3xhrm609fsam8an8sl1njnm";
+      hash = "sha256-1UobqEZWoaq0S8DUDPuI80kTx0Gut2/VxDIwcKeGZOY=";
     })
   ];
 
+  postPatch = ''
+    # Remove chown commands and setuid bit
+    substituteInPlace Makefile.in \
+      --replace ' -o root ' ' ' \
+      --replace ' -g root ' ' ' \
+      --replace ' -o $(DAEMON_USERNAME) ' ' ' \
+      --replace ' -o $(DAEMON_GROUPNAME) ' ' ' \
+      --replace ' -g $(DAEMON_GROUPNAME) ' ' ' \
+      --replace '$(DESTDIR)$(etcdir)' "$out/etc" \
+      --replace '$(DESTDIR)$(ATJOB_DIR)' "$out/var/spool/atjobs" \
+      --replace '$(DESTDIR)$(ATSPOOL_DIR)' "$out/var/spool/atspool" \
+      --replace '$(DESTDIR)$(LFILE)' "$out/var/spool/atjobs/.SEQ" \
+      --replace 'chown' '# skip chown' \
+      --replace '6755' '0755'
+  '';
+
   nativeBuildInputs = [ bison flex perl /* for `prove` (tests) */ ];
 
   buildInputs = [ pam ];
@@ -45,15 +61,17 @@ stdenv.mkDerivation rec {
 
   # Ensure that "batch" can invoke the setuid "at" wrapper, if it exists, or
   # else we get permission errors (on NixOS). "batch" is a shell script, so
-  # when the kernel executes it it drops setuid perms.
+  # when the kernel executes it drops setuid perms.
   postInstall = ''
     sed -i "6i test -x ${atWrapperPath} && exec ${atWrapperPath} -qb now  # exec doesn't return" "$out/bin/batch"
   '';
 
-  meta = {
+  meta = with lib; {
     description = "The classical Unix `at' job scheduling command";
-    license = lib.licenses.gpl2Plus;
-    homepage = "https://packages.qa.debian.org/at";
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2Plus;
+    homepage = "https://tracker.debian.org/pkg/at";
+    changelog = "https://salsa.debian.org/debian/at/-/raw/master/ChangeLog";
+    platforms = platforms.linux;
+    mainProgram = "at";
   };
 }
diff --git a/pkgs/tools/system/at/install.patch b/pkgs/tools/system/at/install.patch
deleted file mode 100644
index 41a35a7895388..0000000000000
--- a/pkgs/tools/system/at/install.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- at-3.1.14/Makefile.in	2013-09-08 14:43:53.000000000 +0200
-+++ at-3.1.14/Makefile.in	2014-07-27 20:42:04.017703443 +0200
-@@ -91,35 +91,28 @@
- 	$(CC) -c $(CFLAGS) $(DEFS) $*.c
- 
- install: all
--	$(INSTALL) -g root -o root -m 755 -d $(IROOT)$(etcdir)
--	$(INSTALL) -g root -o root -m 755 -d $(IROOT)$(bindir)
--	$(INSTALL) -g root -o root -m 755 -d $(IROOT)$(sbindir)
--	$(INSTALL) -g root -o root -m 755 -d $(IROOT)$(docdir)
--	$(INSTALL) -g root -o root -m 755 -d $(IROOT)$(atdocdir)
--	$(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
--	chmod 1770 $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
--	touch $(IROOT)$(LFILE)
--	chmod 600 $(IROOT)$(LFILE)
--	chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(IROOT)$(LFILE)
--	test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(IROOT)$(etcdir)/
--	$(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 at $(IROOT)$(bindir)
-+	$(INSTALL) -m 755 -d $(IROOT)$(bindir)
-+	$(INSTALL) -m 755 -d $(IROOT)$(sbindir)
-+	$(INSTALL) -m 755 -d $(IROOT)$(docdir)
-+	$(INSTALL) -m 755 -d $(IROOT)$(atdocdir)
-+	$(INSTALL) -m 0755 at $(IROOT)$(bindir)
- 	$(LN_S) -f at $(IROOT)$(bindir)/atq
- 	$(LN_S) -f at $(IROOT)$(bindir)/atrm
--	$(INSTALL) -g root -o root -m 755 batch $(IROOT)$(bindir)
--	$(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man1dir)
--	$(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man5dir)
--	$(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man8dir)
--	$(INSTALL) -g root -o root -m 755 atd $(IROOT)$(sbindir)
--	$(INSTALL) -g root -o root -m 755 atrun $(IROOT)$(sbindir)
--	$(INSTALL) -g root -o root -m 644 at.1 $(IROOT)$(man1dir)/
-+	$(INSTALL) -m 755 batch $(IROOT)$(bindir)
-+	$(INSTALL) -d -m 755 $(IROOT)$(man1dir)
-+	$(INSTALL) -d -m 755 $(IROOT)$(man5dir)
-+	$(INSTALL) -d -m 755 $(IROOT)$(man8dir)
-+	$(INSTALL) -m 755 atd $(IROOT)$(sbindir)
-+	$(INSTALL) -m 755 atrun $(IROOT)$(sbindir)
-+	$(INSTALL) -m 644 at.1 $(IROOT)$(man1dir)/
- 	cd $(IROOT)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
--	$(INSTALL) -g root -o root -m 644 atd.8 $(IROOT)$(man8dir)/
-+	$(INSTALL) -m 644 atd.8 $(IROOT)$(man8dir)/
- 	sed "s,\$${exec_prefix},$(exec_prefix),g" <atrun.8>tmpman
--	$(INSTALL) -g root -o root -m 644 tmpman $(IROOT)$(man8dir)/atrun.8
-+	$(INSTALL) -m 644 tmpman $(IROOT)$(man8dir)/atrun.8
- 	rm -f tmpman
--	$(INSTALL) -g root -o root -m 644 at.allow.5 $(IROOT)$(man5dir)/
-+	$(INSTALL) -m 644 at.allow.5 $(IROOT)$(man5dir)/
- 	cd $(IROOT)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5
--	$(INSTALL) -g root -o root -m 644 $(DOCS) $(IROOT)$(atdocdir)
-+	$(INSTALL) -m 644 $(DOCS) $(IROOT)$(atdocdir)
- 	rm -f $(IROOT)$(mandir)/cat1/at.1* $(IROOT)$(mandir)/cat1/batch.1* \
- 		$(IROOT)$(mandir)/cat1/atq.1*
- 	rm -f $(IROOT)$(mandir)/cat1/atd.8*
diff --git a/pkgs/tools/system/augeas/bootstrap.diff b/pkgs/tools/system/augeas/bootstrap.diff
new file mode 100644
index 0000000000000..3740134c54788
--- /dev/null
+++ b/pkgs/tools/system/augeas/bootstrap.diff
@@ -0,0 +1,15 @@
+diff --git a/bootstrap b/bootstrap
+index a84eb39..cac656d 100755
+--- a/bootstrap
++++ b/bootstrap
+@@ -53,9 +53,6 @@ case ${GNULIB_SRCDIR--} in
+     echo "$0: getting gnulib files..."
+     git submodule update || exit $?
+     GNULIB_SRCDIR=.gnulib
+-  else
+-    echo >&2 "$0: invalid gnulib srcdir: $GNULIB_SRCDIR"
+-    exit 1
+   fi
+   ;;
+ esac
+
diff --git a/pkgs/tools/system/augeas/default.nix b/pkgs/tools/system/augeas/default.nix
index bea2edd553d4b..e30de64f5ad17 100644
--- a/pkgs/tools/system/augeas/default.nix
+++ b/pkgs/tools/system/augeas/default.nix
@@ -1,23 +1,65 @@
-{ lib, stdenv, fetchurl, pkg-config, readline, libxml2 }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, bison
+, flex
+, perl # for pod2man
+, pkg-config
+, readline
+, libxml2
+}:
 
 stdenv.mkDerivation rec {
   pname = "augeas";
-  version = "1.12.0";
+  version = "1.14.1";
 
-  src = fetchurl {
-    url = "http://download.augeas.net/${pname}-${version}.tar.gz";
-    sha256 = "11ybhb13wkkilsn7b416a1dn61m1xrq0lbdpkhp5w61jrk4l469j";
+  src = fetchFromGitHub {
+    owner = "hercules-team";
+    repo = "augeas";
+    rev = "release-${version}";
+    fetchSubmodules = true;
+    hash = "sha256-U5tm3LDUeI/idHtL2Zy33BigkyvHunXPjToDC59G9VE=";
   };
-  nativeBuildInputs = [ pkg-config ];
+
+  patches = [
+    # already have the submodules so don't fail when .git doesn't exist.
+    ./bootstrap.diff
+  ];
+
+  postPatch = ''
+    ./bootstrap --gnulib-srcdir=.gnulib
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    bison
+    flex
+    perl
+    pkg-config
+  ];
+
   buildInputs = [ readline libxml2 ];
 
   enableParallelBuilding = true;
 
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+    patchShebangs --build gnulib/tests tests
+    make -j $NIX_BUILD_CORES check
+    runHook postCheck
+  '';
+
+  outputs = [ "out" "dev" ];
+
   meta = with lib; {
     description = "Configuration editing tool";
     license = licenses.lgpl21Only;
     homepage = "https://augeas.net/";
-    changelog = "https://augeas.net/news.html";
+    changelog = "https://github.com/hercules-team/augeas/releases/tag/release-${version}";
+    mainProgram = "augtool";
     maintainers = with maintainers; [ offline ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/system/automatic-timezoned/default.nix b/pkgs/tools/system/automatic-timezoned/default.nix
index ff64d0aec7eb7..d8d2fb0ccf237 100644
--- a/pkgs/tools/system/automatic-timezoned/default.nix
+++ b/pkgs/tools/system/automatic-timezoned/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "automatic-timezoned";
-  version = "1.0.129";
+  version = "1.0.147";
 
   src = fetchFromGitHub {
     owner = "maxbrunet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-U6nuPzXvqIn4KqKbPNeCvTg6IbVF6EQ4hDm9SZsre70=";
+    sha256 = "sha256-4+Sad0Z1JbkUJWyszo0cK3xTR8HLuR3i74ljWXxPqPw=";
   };
 
-  cargoHash = "sha256-2Uf78T38ot03xgv8nsoJKmHCXbbJgOE4WFhVAOdUcOA=";
+  cargoHash = "sha256-humC32QujjmcSvRioGAciNFCJXwoepAgO9zDGfdUheY=";
 
   meta = with lib; {
     description = "Automatically update system timezone based on location";
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ maxbrunet ];
     platforms = platforms.linux;
+    mainProgram = "automatic-timezoned";
   };
 }
diff --git a/pkgs/tools/system/awstats/default.nix b/pkgs/tools/system/awstats/default.nix
index 21b76adf3e596..e1479e6192cb9 100644
--- a/pkgs/tools/system/awstats/default.nix
+++ b/pkgs/tools/system/awstats/default.nix
@@ -63,5 +63,6 @@ perlPackages.buildPerlPackage rec {
     homepage = "https://awstats.org";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
+    mainProgram = "awstats";
   };
 }
diff --git a/pkgs/tools/system/bar/default.nix b/pkgs/tools/system/bar/default.nix
index 9ff8d2080f7fe..1109def2bf309 100644
--- a/pkgs/tools/system/bar/default.nix
+++ b/pkgs/tools/system/bar/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.rdnetto ];
     platforms = lib.platforms.all;
+    mainProgram = "bar";
   };
 }
diff --git a/pkgs/tools/system/bfs/default.nix b/pkgs/tools/system/bfs/default.nix
index 7df1cbd6bd07f..17f6af921c788 100644
--- a/pkgs/tools/system/bfs/default.nix
+++ b/pkgs/tools/system/bfs/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "bfs";
-  version = "3.0.1";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     repo = "bfs";
     owner = "tavianator";
     rev = version;
-    sha256 = "sha256-/CiQUK6nmu3MtkG5PMQPn05qIO/M0Oy/LdBI/8oFdqA=";
+    hash = "sha256-45pWJjC2ol89HYGxi3QP8Y9/pFRx7NBNyYCK4RN2SXk=";
   };
 
   buildInputs = [ oniguruma ] ++ lib.optionals stdenv.isLinux [ libcap acl ];
 
   # Disable LTO on darwin. See https://github.com/NixOS/nixpkgs/issues/19098
   preConfigure = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace Makefile --replace "-flto" ""
+    substituteInPlace GNUMakefile --replace "-flto=auto" ""
   '';
 
   makeFlags = [ "PREFIX=$(out)" ];
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/tavianator/bfs";
     license = licenses.bsd0;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ yesbox ];
+    maintainers = with maintainers; [ yesbox cafkafk ];
+    mainProgram = "bfs";
   };
 }
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index a4a5156525dd2..b95fdc7578a22 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -1,31 +1,36 @@
 { lib
+, config
 , stdenv
 , fetchFromGitHub
+, cmake
 , darwin
 , removeReferencesTo
 , btop
 , testers
+, cudaSupport ? config.cudaSupport
+, cudaPackages
 }:
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.2.13";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-F/muCjhcnM+VqAn6FlD4lv23OLITrmtnHkFc5zv97yk=";
+    hash = "sha256-QQM2/LO/EHovhj+S+4x3ro/aOVrtuxteVVvYAd6feTk=";
   };
 
+  nativeBuildInputs = [ cmake ] ++ lib.optionals cudaSupport [
+    cudaPackages.autoAddOpenGLRunpathHook
+  ];
+
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.CoreFoundation
     darwin.apple_sdk_11_0.frameworks.IOKit
   ];
 
-  env.ADDFLAGS = lib.optionalString stdenv.isDarwin
-    "-F${darwin.apple_sdk_11_0.frameworks.IOKit}/Library/Frameworks/";
-
   installFlags = [ "PREFIX=$(out)" ];
 
   postInstall = ''
@@ -43,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ rmcgibbo ];
+    mainProgram = "btop";
   };
 }
diff --git a/pkgs/tools/system/chase/default.nix b/pkgs/tools/system/chase/default.nix
index d20d33235cf87..40f09089fdff1 100644
--- a/pkgs/tools/system/chase/default.nix
+++ b/pkgs/tools/system/chase/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.polyrod ];
     platforms = platforms.all;
+    mainProgram = "chase";
   };
 }
diff --git a/pkgs/tools/system/clinfo/default.nix b/pkgs/tools/system/clinfo/default.nix
index 746f83690e7dd..50e72498bf640 100644
--- a/pkgs/tools/system/clinfo/default.nix
+++ b/pkgs/tools/system/clinfo/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.cc0;
     maintainers = with maintainers; [ athas r-burns ];
     platforms = platforms.unix;
+    mainProgram = "clinfo";
   };
 }
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index b350558887ff3..5dcd854483756 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -24,6 +24,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/collectd/collectd/commit/3f575419e7ccb37a3b10ecc82adb2e83ff2826e1.patch";
       sha256 = "0jwjdlfl0dp7mlbwygp6h0rsbaqfbgfm5z07lr5l26z6hhng2h2y";
     })
+    (fetchpatch {
+      name = "no_include_longintrepr.patch";
+      url = "https://github.com/collectd/collectd/commit/623e95394e0e62e7f9ced2104b786d21e9c0bf53.patch";
+      hash = "sha256-0eD7yNW3TWVyNMpLsADhYFDvy6COoCaI0kS1XJrwDgM=";
+    })
   ];
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/tools/system/colorls/default.nix b/pkgs/tools/system/colorls/default.nix
index 8243590cd7d55..3dc460140cb63 100644
--- a/pkgs/tools/system/colorls/default.nix
+++ b/pkgs/tools/system/colorls/default.nix
@@ -14,5 +14,6 @@ bundlerApp {
     license     = with licenses; mit;
     maintainers = with maintainers; [ lukebfox nicknovitski cbley ];
     platforms   = ruby.meta.platforms;
+    mainProgram = "colorls";
   };
 }
diff --git a/pkgs/tools/system/confd/default.nix b/pkgs/tools/system/confd/default.nix
index 25f03e1a665ff..bdbba9bc9f212 100644
--- a/pkgs/tools/system/confd/default.nix
+++ b/pkgs/tools/system/confd/default.nix
@@ -20,5 +20,6 @@ buildGoPackage rec {
     homepage = "https://github.com/kelseyhightower/confd";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.zimbatm ];
+    mainProgram = "confd";
   };
 }
diff --git a/pkgs/tools/system/consul-template/default.nix b/pkgs/tools/system/consul-template/default.nix
index e1d4102430f99..ea25b0cb19554 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.34.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "consul-template";
     rev = "v${version}";
-    hash = "sha256-LqgA990os33Hftu8+h/HKnOcGcKsAXVuQl1hmCmA5n4=";
+    hash = "sha256-qhncff3DAJ3fiLJRVVcRZpDmzFEQI5J1cFXnlyUJRRs=";
   };
 
-  vendorHash = "sha256-zY6c9Wnq00cAuw0WIK3XsTZ1/YL8lnzSEnusUY5VsxY=";
+  vendorHash = "sha256-nOxdhVEMepZMq51M6MDIyTxBYThrwrT0C0wdwzsjoPI=";
 
   # consul-template tests depend on vault and consul services running to
   # execute tests so we skip them here
@@ -27,5 +27,6 @@ buildGoModule rec {
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud pradeepchhetri ];
+    mainProgram = "consul-template";
   };
 }
diff --git a/pkgs/tools/system/ctop/default.nix b/pkgs/tools/system/ctop/default.nix
index e3a9e82d8a223..6cf30afa3fd7d 100644
--- a/pkgs/tools/system/ctop/default.nix
+++ b/pkgs/tools/system/ctop/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://ctop.sh/";
     license = licenses.mit;
     maintainers = with maintainers; [ apeyroux marsam ];
+    mainProgram = "ctop";
   };
 }
diff --git a/pkgs/tools/system/daemon/default.nix b/pkgs/tools/system/daemon/default.nix
index 7d63b12850ead..0a7b579347176 100644
--- a/pkgs/tools/system/daemon/default.nix
+++ b/pkgs/tools/system/daemon/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.sander ];
     platforms = platforms.unix;
+    mainProgram = "daemon";
   };
 }
diff --git a/pkgs/tools/system/daemonize/default.nix b/pkgs/tools/system/daemonize/default.nix
index b3cf2a4356f61..3a1340e606d0a 100644
--- a/pkgs/tools/system/daemonize/default.nix
+++ b/pkgs/tools/system/daemonize/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "http://software.clapper.org/daemonize/";
     license = licenses.bsd3;
     platforms = with platforms; linux ++ freebsd ++ darwin;
+    mainProgram = "daemonize";
   };
 }
diff --git a/pkgs/tools/system/datefudge/default.nix b/pkgs/tools/system/datefudge/default.nix
index d83e4aa383bc6..f1810c24a8fe7 100644
--- a/pkgs/tools/system/datefudge/default.nix
+++ b/pkgs/tools/system/datefudge/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "datefudge";
-  version = "1.24";
+  version = "1.25";
 
   src = fetchgit {
     url = "https://salsa.debian.org/debian/${pname}.git";
     rev = "debian/${version}";
-    sha256 = "1nh433yx4y4djp0bs6aawqbwk7miq7fsbs9wpjlyh2k9dvil2lrm";
+    sha256 = "sha256-FDrwd5kahIfKGfUBIm7BBuqHwrQ/+UE1gRQrJNd031o=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ leenaars ];
+    mainProgram = "datefudge";
   };
 }
diff --git a/pkgs/tools/system/dcfldd/default.nix b/pkgs/tools/system/dcfldd/default.nix
index 7047d41c5bb53..395b4431acee0 100644
--- a/pkgs/tools/system/dcfldd/default.nix
+++ b/pkgs/tools/system/dcfldd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.all;
     maintainers = with maintainers; [ qknight ];
+    mainProgram = "dcfldd";
   };
 }
diff --git a/pkgs/tools/system/ddh/default.nix b/pkgs/tools/system/ddh/default.nix
index cba8ade1f4286..33618da36376e 100644
--- a/pkgs/tools/system/ddh/default.nix
+++ b/pkgs/tools/system/ddh/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ h7x4 ];
     platforms = platforms.all;
+    mainProgram = "ddh";
   };
 }
diff --git a/pkgs/tools/system/ddrescue/default.nix b/pkgs/tools/system/ddrescue/default.nix
index d18225a93b9bc..2b5e7e7bd33e3 100644
--- a/pkgs/tools/system/ddrescue/default.nix
+++ b/pkgs/tools/system/ddrescue/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ddrescue";
-  version = "1.27";
+  version = "1.28";
 
   src = fetchurl {
     url = "mirror://gnu/ddrescue/ddrescue-${version}.tar.lz";
-    sha256 = "sha256-OMgMmMWkTxXlNmPkUQCX/WjW7CB1jv3zqSUDfBgyMus=";
+    sha256 = "sha256-ZibAenyhzB0DytCVhSLFJ5sVYiLTLDQugRF8/vrrEME=";
   };
 
   nativeBuildInputs = [ lzip ];
diff --git a/pkgs/tools/system/ddrescueview/default.nix b/pkgs/tools/system/ddrescueview/default.nix
index c22c74cd4a84e..3576c0eb65376 100644
--- a/pkgs/tools/system/ddrescueview/default.nix
+++ b/pkgs/tools/system/ddrescueview/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ orivej ];
+    mainProgram = "ddrescueview";
   };
 }
diff --git a/pkgs/tools/system/dell-command-configure/default.nix b/pkgs/tools/system/dell-command-configure/default.nix
new file mode 100644
index 0000000000000..c029a98773373
--- /dev/null
+++ b/pkgs/tools/system/dell-command-configure/default.nix
@@ -0,0 +1,108 @@
+{
+  stdenv,
+  lib,
+  fetchurl,
+  dpkg,
+  autoPatchelfHook,
+  patchelfUnstable,
+  openssl,
+}:
+
+# Use techniques described in https://web.archive.org/web/20220904051329/https://tapesoftware.net/replace-symbol/
+
+# Adapted from https://github.com/KenMacD/etc-nixos/blob/d3d28085586358a62b2bb4b427eb21aad05b5b23/dcc/default.nix
+
+# Used https://github.com/NixOS/nixpkgs/pull/84926 as a template
+# then converted to use autoPatchelfHook instead, and link with
+# the dependencies from other pkgs.
+
+let
+  version = "4.8.0-494";
+
+  unpacked = stdenv.mkDerivation rec {
+    inherit version;
+    pname = "dell-command-configure-unpacked";
+
+    src = fetchurl {
+      url =
+        "https://dl.dell.com/FOLDER08911312M/1/command-configure_${version}.ubuntu20_amd64.tar.gz";
+      # The CDN blocks the Curl user-agent, so set to blank instead.
+      curlOpts = ''-A=""'';
+      hash = "sha256-l5oHgDkFBF6llNsHufTmuDzjkhGmXHYXlOJ4hvZfRoE=";
+    };
+
+    dontBuild = true;
+
+    nativeBuildInputs = [ dpkg ];
+
+    unpackPhase = ''
+      tar -xzf ${src}
+      dpkg-deb -x command-configure_${version}.ubuntu20_amd64.deb command-configure
+      dpkg-deb -x srvadmin-hapi_9.5.0_amd64.deb srvadmin-hapi
+    '';
+
+    installPhase = ''
+      mkdir $out
+      cp -r . $out
+    '';
+  };
+
+  # Contains a fopen() wrapper for finding the firmware package
+  wrapperLibName = "wrapper-lib.so";
+  wrapperLib = stdenv.mkDerivation {
+    pname = "dell-command-configure-unpacked-wrapper-lib";
+    inherit version;
+
+    src = ./.;
+
+    postPatch = ''
+      ls -al
+      substitute wrapper-lib.c lib.c \
+        --subst-var-by to "${unpacked}/srvadmin-hapi/opt/dell/srvadmin/etc/omreg.d/omreg-hapi.cfg"
+      cc -fPIC -shared lib.c -o ${wrapperLibName}
+    '';
+    installPhase = ''
+      install -D ${wrapperLibName} -t $out/lib
+    '';
+  };
+
+in stdenv.mkDerivation rec {
+  inherit version;
+  pname = "dell-command-configure";
+
+  buildInputs = [ openssl stdenv.cc.cc.lib ];
+  nativeBuildInputs = [ autoPatchelfHook ];
+  dontConfigure = true;
+
+  src = unpacked;
+
+  installPhase = ''
+    install -D -t $out/lib -m644 -v command-configure/opt/dell/dcc/libhapiintf.so
+    install -D -t $out/lib -m644 -v command-configure/opt/dell/dcc/libsmbios_c.so.2
+    install -D -t $out/bin -m755 -v command-configure/opt/dell/dcc/cctk
+    install -D -t $out/bin -m755 -v srvadmin-hapi/opt/dell/srvadmin/sbin/dchcfg
+    for lib in $(find srvadmin-hapi/opt/dell/srvadmin/lib64 -type l); do
+        install -D -t $out/lib -m644 -v $lib
+    done
+  '';
+
+  postFixup = ''
+    echo fopen fopen_wrapper > fopen_name_map
+    echo access access_wrapper > access_name_map
+    ${patchelfUnstable}/bin/patchelf \
+      --rename-dynamic-symbols fopen_name_map \
+      --rename-dynamic-symbols access_name_map \
+      --add-needed ${wrapperLibName} \
+      --set-rpath ${lib.makeLibraryPath [ wrapperLib ]} \
+      $out/lib/*
+  '';
+
+  meta = with lib; {
+    description = "Configure BIOS settings on Dell laptops";
+    homepage =
+      "https://www.dell.com/support/article/us/en/19/sln311302/dell-command-configure";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ryangibb ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/tools/system/dell-command-configure/wrapper-lib.c b/pkgs/tools/system/dell-command-configure/wrapper-lib.c
new file mode 100755
index 0000000000000..f93bcd58ab751
--- /dev/null
+++ b/pkgs/tools/system/dell-command-configure/wrapper-lib.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+#include <string.h>
+
+static const char from[] =  "/usr/lib/ext/dell/omreg.cfg";
+static const char to[] = "@to@";
+
+int access_wrapper(const char *fn, int mode)
+{
+	if (!strcmp(fn, from)) {
+		printf("access_wrapper.c: Replacing path '%s' with '%s'\n", from, to);
+		fn = to;
+	}
+	return access(fn, mode);
+}
+
+FILE* fopen_wrapper(const char* fn, const char* mode)
+{
+	if (!strcmp(fn, from)) {
+		printf("fopen_wrapper.c: Replacing path '%s' with '%s'\n", from, to);
+		fn = to;
+	}
+	return fopen(fn, mode);
+}
diff --git a/pkgs/tools/system/dfc/default.nix b/pkgs/tools/system/dfc/default.nix
index 6478e699539f9..0ad1d745b066c 100644
--- a/pkgs/tools/system/dfc/default.nix
+++ b/pkgs/tools/system/dfc/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [qknight];
     platforms = lib.platforms.all;
+    mainProgram = "dfc";
   };
 }
diff --git a/pkgs/tools/system/dfrs/default.nix b/pkgs/tools/system/dfrs/default.nix
index f9bbbd12388fe..002e421900b9f 100644
--- a/pkgs/tools/system/dfrs/default.nix
+++ b/pkgs/tools/system/dfrs/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/anthraxx/dfrs";
     license = licenses.mit;
     maintainers = with maintainers; [ wamserma ];
+    mainProgram = "dfrs";
   };
 }
diff --git a/pkgs/tools/system/disk-filltest/default.nix b/pkgs/tools/system/disk-filltest/default.nix
deleted file mode 100644
index ecfa14aa91be9..0000000000000
--- a/pkgs/tools/system/disk-filltest/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "disk-filltest";
-  version = "0.8.2";
-
-  src = fetchFromGitHub {
-    owner = "bingmann";
-    repo = "disk-filltest";
-    rev = "v${version}";
-    sha256 = "0qmcf5k5j7946wsbxrw4rqfj48mwl3r6kb4l3gppl97k7iyni6kj";
-  };
-
-  preBuild = ''
-    substituteInPlace Makefile --replace 'prefix = /usr/local' 'prefix = $(out)'
-  '';
-
-  postInstall = ''
-    install -D -m0644 -t $out/share/doc COPYING README
-    mkdir -p $out/share/man; mv $out/man1 $out/share/man
-  '';
-
-  meta = with lib; {
-    description = "Simple program to detect bad disks by filling them with random data";
-    longDescription = ''
-      disk-filltest is a tool to check storage disks for coming
-      failures by write files with pseudo-random data to the current
-      directory until the disk is full, read the files again
-      and verify the sequence written. It also can measure
-      read/write speed while filling the disk.
-    '';
-    homepage = "https://panthema.net/2013/disk-filltest";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ caadar ];
-    platforms = platforms.all;
-  };
-
-}
diff --git a/pkgs/tools/system/dog/default.nix b/pkgs/tools/system/dog/default.nix
index 6d15f5bbd52b7..b8ed50c0c63e8 100644
--- a/pkgs/tools/system/dog/default.nix
+++ b/pkgs/tools/system/dog/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ qknight ];
     platforms = platforms.all;
+    mainProgram = "dog";
   };
 }
diff --git a/pkgs/tools/system/dool/default.nix b/pkgs/tools/system/dool/default.nix
index 27d98a49ef7d7..b312e0a363c18 100644
--- a/pkgs/tools/system/dool/default.nix
+++ b/pkgs/tools/system/dool/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dool";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "scottchiefbaker";
     repo = "dool";
     rev = "v${version}";
-    hash = "sha256-FekCxzB+jZtiPfJ/yAtvCsaNZJJkgWUAFe6hMXznSJw=";
+    hash = "sha256-g74XyNtNdYf2qTCFBWIVZ3LhngDln/yu3bRJzO890JU=";
   };
 
   buildInputs = [
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.unix;
+    mainProgram = "dool";
   };
 }
diff --git a/pkgs/tools/system/efivar/default.nix b/pkgs/tools/system/efivar/default.nix
index 8507c7c7cec0e..9ddb83ca5e363 100644
--- a/pkgs/tools/system/efivar/default.nix
+++ b/pkgs/tools/system/efivar/default.nix
@@ -29,6 +29,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/rhboot/efivar/commit/cece3ffd5be2f8641eb694513f2b73e5eb97ffd3.patch";
       sha256 = "7/E0gboU0A45/BY6jGPLuvds6qKtNjzpgKgdNTaVaZQ=";
     })
+
+    # Fix build against gcc-13: https://github.com/rhboot/efivar/pull/242
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/rhboot/efivar/commit/52fece47d4f3ebd588bd85598bfc7a0142365f7e.patch";
+      hash = "sha256-tOmxbY7kD6kzbBZ2RhQ5gCCpHtu+2gRNa7VUAWdCKu0=";
+    })
   ];
 
   nativeBuildInputs = [ pkg-config mandoc ];
diff --git a/pkgs/tools/system/envconsul/default.nix b/pkgs/tools/system/envconsul/default.nix
index 5f21a0bcafdc9..f3e5609d9abd9 100644
--- a/pkgs/tools/system/envconsul/default.nix
+++ b/pkgs/tools/system/envconsul/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "Read and set environmental variables for processes from Consul";
     license = licenses.mpl20;
     maintainers = with maintainers; [ pradeepchhetri ];
+    mainProgram = "envconsul";
   };
 }
diff --git a/pkgs/tools/system/epilys-bb/default.nix b/pkgs/tools/system/epilys-bb/default.nix
index 169e10bc30c42..44a1e566c5d47 100644
--- a/pkgs/tools/system/epilys-bb/default.nix
+++ b/pkgs/tools/system/epilys-bb/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ cafkafk ];
     platforms = platforms.linux;
+    mainProgram = "bb";
   };
 }
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index c6c091c1fba1b..02c48d302ac35 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.unix;
+    mainProgram = "facter";
   };
 }
diff --git a/pkgs/tools/system/fakechroot/default.nix b/pkgs/tools/system/fakechroot/default.nix
index fd8fa04d21d2c..2357d87cc1538 100644
--- a/pkgs/tools/system/fakechroot/default.nix
+++ b/pkgs/tools/system/fakechroot/default.nix
@@ -39,6 +39,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/dex4er/fakechroot/commit/e7c1f3a446e594a4d0cce5f5d499c9439ce1d5c5.patch";
       sha256 = "sha256-eX6kB4U1ZlXoRtkSVEIBTRjO/cTS/7z5a9S366DiRMg=";
     })
+    # pass __readlinkat_chk buffer length
+    (fetchpatch {
+      url = "https://github.com/dex4er/fakechroot/pull/115/commits/15479d9436b534cee0115064bd8deb8d4ece9b8c.patch";
+      hash = "sha256-wMIZ3hW5XkRXQYBMADlN6kxhDSiEr84PGWBW+f4b4Ko=";
+    })
   ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/system/fakeroot/default.nix b/pkgs/tools/system/fakeroot/default.nix
index dd6ab9868aa85..9a24f59099093 100644
--- a/pkgs/tools/system/fakeroot/default.nix
+++ b/pkgs/tools/system/fakeroot/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru = {
     tests = {
       version = testers.testVersion {
-        package = finalAttrs;
+        package = finalAttrs.finalPackage;
       };
       # A lightweight *unit* test that exercises fakeroot and fakechroot together:
       nixos-etc = nixosTests.etc.test-etc-fakeroot;
diff --git a/pkgs/tools/system/fancy-motd/default.nix b/pkgs/tools/system/fancy-motd/default.nix
index f2ac62f2874a9..f05ea8adceb90 100644
--- a/pkgs/tools/system/fancy-motd/default.nix
+++ b/pkgs/tools/system/fancy-motd/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Fancy, colorful MOTD written in bash. Server status at a glance.";
+    description = "Fancy, colorful MOTD written in bash. Server status at a glance";
     homepage = "https://github.com/bcyran/fancy-motd";
     license = licenses.mit;
     maintainers = with maintainers; [ rhoriguchi ];
diff --git a/pkgs/tools/system/fdisk/default.nix b/pkgs/tools/system/fdisk/default.nix
index e12fedd6eec99..b48108ea76c4c 100644
--- a/pkgs/tools/system/fdisk/default.nix
+++ b/pkgs/tools/system/fdisk/default.nix
@@ -1,30 +1,57 @@
-{ fetchurl, lib, stdenv, parted, libuuid, gettext, guile }:
+{ lib
+, stdenv
+, fetchurl
+, gettext
+, guile
+, libuuid
+, parted
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnufdisk";
-  version = "2.0.0a"; # .0a1 seems broken, see https://lists.gnu.org/archive/html/bug-fdisk/2012-09/msg00000.html
+  version = "2.0.0a1";
 
   src = fetchurl {
     url = "mirror://gnu/fdisk/gnufdisk-${version}.tar.gz";
-    sha256 = "04nd7civ561x2lwcmxhsqbprml3178jfc58fy1v7hzqg5k4nbhy3";
+    hash = "sha256-yWPYTf8RxBIQ//mUdC6fkKct/csEgbzEtTAiPtNRH7U=";
   };
 
-  buildInputs = [ parted libuuid gettext guile ];
+  postPatch = ''
+    sed -i "s/gnufdisk-common.h .*/\n/g" backend/configure
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    gettext
+    guile
+  ];
+
+  buildInputs = [
+    guile
+    libuuid
+    parted
+  ];
+
+  env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " [
+    "-I../common/include"
+    "-I../debug/include"
+    "-I../exception/include"
+  ];
 
   doCheck = true;
 
   meta = {
     description = "A command-line disk partitioning tool";
-
     longDescription = ''
-      GNU fdisk provides alternatives to util-linux fdisk and util-linux
-      cfdisk.  It uses GNU Parted.
+      GNU fdisk provides a GNU version of the common disk partitioning tool
+      fdisk.  fdisk is used for the creation and manipulation of disk partition
+      tables, and it understands a variety of different formats.
     '';
-
-    license = lib.licenses.gpl3Plus;
-
     homepage = "https://www.gnu.org/software/fdisk/";
-
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "gnufdisk";
+    maintainers = [ lib.maintainers.wegank ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/fio/default.nix b/pkgs/tools/system/fio/default.nix
index 441e359e13db4..45aed59dee8fa 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.35";
+  version = "3.36";
 
   src = fetchFromGitHub {
     owner  = "axboe";
     repo   = "fio";
     rev    = "fio-${version}";
-    sha256 = "sha256-8LMpgayxBebHb0MXYmjlqqtndSiL42/yEQpgamxt9kI=";
+    sha256 = "sha256-w1k1DGgGYL2K/fZ30HMQE2vMcT6ZaaweM+KTcHKVEq4=";
   };
 
   buildInputs = [ python3 zlib ]
diff --git a/pkgs/tools/system/foreman/default.nix b/pkgs/tools/system/foreman/default.nix
index ce2f201762902..8a7cfde32ee05 100644
--- a/pkgs/tools/system/foreman/default.nix
+++ b/pkgs/tools/system/foreman/default.nix
@@ -11,5 +11,6 @@ bundlerEnv {
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
     platforms = ruby.meta.platforms;
+    mainProgram = "foreman";
   };
 }
diff --git a/pkgs/tools/system/foremost/default.nix b/pkgs/tools/system/foremost/default.nix
index 140ce91fd66cc..a1a09826c5374 100644
--- a/pkgs/tools/system/foremost/default.nix
+++ b/pkgs/tools/system/foremost/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = [ maintainers.jiegec ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "foremost";
   };
 }
diff --git a/pkgs/tools/system/gdmap/default.nix b/pkgs/tools/system/gdmap/default.nix
index 2d5cafc4de1c0..900dabf834b54 100644
--- a/pkgs/tools/system/gdmap/default.nix
+++ b/pkgs/tools/system/gdmap/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "gdmap";
   };
 }
diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix
index 1b6f44fd700b7..ba95a6730630c 100644
--- a/pkgs/tools/system/gdu/default.nix
+++ b/pkgs/tools/system/gdu/default.nix
@@ -55,5 +55,6 @@ buildGoModule rec {
     changelog = "https://github.com/dundee/gdu/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab zowoq ];
+    mainProgram = "gdu";
   };
 }
diff --git a/pkgs/tools/system/gkraken/default.nix b/pkgs/tools/system/gkraken/default.nix
index f37a21db79f47..330d9f1129f7b 100644
--- a/pkgs/tools/system/gkraken/default.nix
+++ b/pkgs/tools/system/gkraken/default.nix
@@ -82,5 +82,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.linux;
+    mainProgram = "gkraken";
   };
 }
diff --git a/pkgs/tools/system/go-audit/default.nix b/pkgs/tools/system/go-audit/default.nix
index 83bd7827fff51..38fd388973902 100644
--- a/pkgs/tools/system/go-audit/default.nix
+++ b/pkgs/tools/system/go-audit/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
     platforms = platforms.linux;
+    mainProgram = "go-audit";
   };
 }
diff --git a/pkgs/tools/system/gohai/default.nix b/pkgs/tools/system/gohai/default.nix
index 64d051a923f22..5fa84e873ba3f 100644
--- a/pkgs/tools/system/gohai/default.nix
+++ b/pkgs/tools/system/gohai/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
       information. It is used by the Datadog agent to provide detailed
       system metrics.
     '';
+    mainProgram = "gohai";
   };
 }
diff --git a/pkgs/tools/system/gopsuinfo/default.nix b/pkgs/tools/system/gopsuinfo/default.nix
index df8cd5026eaf7..b4a1003e40cfe 100644
--- a/pkgs/tools/system/gopsuinfo/default.nix
+++ b/pkgs/tools/system/gopsuinfo/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ otini ];
     platforms = platforms.linux;
+    mainProgram = "gopsuinfo";
   };
 }
diff --git a/pkgs/tools/system/gotop/default.nix b/pkgs/tools/system/gotop/default.nix
index 966406971a551..9681d3286cefd 100644
--- a/pkgs/tools/system/gotop/default.nix
+++ b/pkgs/tools/system/gotop/default.nix
@@ -49,5 +49,6 @@ buildGoModule rec {
     changelog = "https://github.com/xxxserxxx/gotop/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = [ maintainers.magnetophon ];
+    mainProgram = "gotop";
   };
 }
diff --git a/pkgs/tools/system/gptman/default.nix b/pkgs/tools/system/gptman/default.nix
index e8fc661dd72dc..533210ee4d8f8 100644
--- a/pkgs/tools/system/gptman/default.nix
+++ b/pkgs/tools/system/gptman/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gptman";
-  version = "1.0.2";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "rust-disk-partition-management";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Qi2nrvF566AK+JsP7V9tVQXwAU63TNpfTFZLuM/h1Ps=";
+    hash = "sha256-ebV61EilGggix6JSN/MW4Ka0itkSpvikLDSO005TTYY=";
   };
 
-  cargoHash = "sha256-YMlwlSq14S37SqewglvxZYUL67fT66hh22t0N8h+2vk=";
+  cargoHash = "sha256-P+qez0oVsHBiaBYban2o8MRvF8ElLf5zb+p+tYunWWA=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-disk-partition-management/gptman";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ akshgpt7 ];
+    mainProgram = "gptman";
   };
 }
diff --git a/pkgs/tools/system/gt5/default.nix b/pkgs/tools/system/gt5/default.nix
index edd1a8ecfd488..49d9fe651d497 100644
--- a/pkgs/tools/system/gt5/default.nix
+++ b/pkgs/tools/system/gt5/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; all;
+    mainProgram = "gt5";
   };
 }
diff --git a/pkgs/tools/system/gtop/default.nix b/pkgs/tools/system/gtop/default.nix
index 766719dfb347e..5d882740e1a0e 100644
--- a/pkgs/tools/system/gtop/default.nix
+++ b/pkgs/tools/system/gtop/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "gtop";
-  version = "1.1.3";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "aksakalli";
     repo = "gtop";
     rev = "v${version}";
-    hash = "sha256-7jcfJOdy3PKT6+07iaZnjWnlPLk9BhPn8LApk23E8l4=";
+    hash = "sha256-FKbaUV28d0JH9tmTSJBFYQrM5iensnIpcXUFFvXDMe4=";
   };
 
-  npmDepsHash = "sha256-CUfoVkG74C7HpcO3T9HmwbxHsYAgW1vYBAgNvx2av0k=";
+  npmDepsHash = "sha256-QKMLFalaOQjhgVkv8lIDnKyH7+GOqOKIl3zoLwrHIF4=";
 
   dontNpmBuild = true;
 
@@ -23,5 +23,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/aksakalli/gtop";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tfc ];
+    mainProgram = "gtop";
   };
 }
diff --git a/pkgs/tools/system/hardinfo/default.nix b/pkgs/tools/system/hardinfo/default.nix
index 66669b5e850c3..99ffe50786ec6 100644
--- a/pkgs/tools/system/hardinfo/default.nix
+++ b/pkgs/tools/system/hardinfo/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ bjornfor ];
     platforms = [ "x86_64-linux" "i686-linux" ]; # ARMv7 and AArch64 are unsupported
+    mainProgram = "hardinfo";
   };
 }
diff --git a/pkgs/tools/system/hddfancontrol/default.nix b/pkgs/tools/system/hddfancontrol/default.nix
index 117acd7f75311..64409cbcdba03 100644
--- a/pkgs/tools/system/hddfancontrol/default.nix
+++ b/pkgs/tools/system/hddfancontrol/default.nix
@@ -30,5 +30,6 @@ python3Packages.buildPythonPackage rec {
     homepage = "https://github.com/desbma/hddfancontrol";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ benley ];
+    mainProgram = "hddfancontrol";
   };
 }
diff --git a/pkgs/tools/system/hiera-eyaml/default.nix b/pkgs/tools/system/hiera-eyaml/default.nix
index be6fb1c7462ab..1f48d37f5847a 100644
--- a/pkgs/tools/system/hiera-eyaml/default.nix
+++ b/pkgs/tools/system/hiera-eyaml/default.nix
@@ -13,5 +13,6 @@ bundlerEnv {
     license = licenses.mit;
     maintainers = with maintainers; [ benley nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "eyaml";
   };
 }
diff --git a/pkgs/tools/system/honcho/default.nix b/pkgs/tools/system/honcho/default.nix
index 1fef47933bb5c..08c0fb3f6b58f 100644
--- a/pkgs/tools/system/honcho/default.nix
+++ b/pkgs/tools/system/honcho/default.nix
@@ -34,5 +34,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/nickstenning/honcho";
     maintainers = with maintainers; [ benley ];
     platforms = platforms.unix;
+    mainProgram = "honcho";
   };
 }
diff --git a/pkgs/tools/system/hostctl/default.nix b/pkgs/tools/system/hostctl/default.nix
index 9f349423f9f0f..76c41d85ecdfd 100644
--- a/pkgs/tools/system/hostctl/default.nix
+++ b/pkgs/tools/system/hostctl/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     homepage = "https://guumaster.github.io/hostctl/";
     license = licenses.mit;
     maintainers = with maintainers; [ blaggacao ];
+    mainProgram = "hostctl";
   };
 }
diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix
index 50c6ea461f365..20274695f8ac2 100644
--- a/pkgs/tools/system/htop/default.nix
+++ b/pkgs/tools/system/htop/default.nix
@@ -11,13 +11,13 @@ assert systemdSupport -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   pname = "htop";
-  version = "3.2.2";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "htop-dev";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OrlNE1A71q4XAauYNfumV1Ev1wBpFIBxPiw7aF++yjM=";
+    hash = "sha256-qDhQkzY2zj2yxbgFUXwE0MGEgAFOsAhnapUuetO9WTw=";
   };
 
   nativeBuildInputs = [ autoreconfHook ]
diff --git a/pkgs/tools/system/hw-probe/default.nix b/pkgs/tools/system/hw-probe/default.nix
index 501ae69dbfd2b..8b190087ffd57 100644
--- a/pkgs/tools/system/hw-probe/default.nix
+++ b/pkgs/tools/system/hw-probe/default.nix
@@ -136,5 +136,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; (linux ++ freebsd ++ netbsd ++ openbsd);
     license = with licenses; [ lgpl21 bsdOriginal ];
     maintainers = with maintainers; [ rehno-lindeque  ];
+    mainProgram = "hw-probe";
   };
 }
diff --git a/pkgs/tools/system/idle3tools/default.nix b/pkgs/tools/system/idle3tools/default.nix
index c0386fb66bcf9..d66a7f9b66a81 100644
--- a/pkgs/tools/system/idle3tools/default.nix
+++ b/pkgs/tools/system/idle3tools/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
+    mainProgram = "idle3ctl";
   };
 }
diff --git a/pkgs/tools/system/illum/default.nix b/pkgs/tools/system/illum/default.nix
index c9e87bef62144..3d33be9ed635f 100644
--- a/pkgs/tools/system/illum/default.nix
+++ b/pkgs/tools/system/illum/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.dancek ];
     license = lib.licenses.agpl3;
+    mainProgram = "illum-d";
   };
 }
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index b03a7c14a7d63..a376146032ac2 100644
--- a/pkgs/tools/system/inxi/default.nix
+++ b/pkgs/tools/system/inxi/default.nix
@@ -58,5 +58,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
+    mainProgram = "inxi";
   };
 }
diff --git a/pkgs/tools/system/ioping/default.nix b/pkgs/tools/system/ioping/default.nix
index 9af290503f494..f610258cf503e 100644
--- a/pkgs/tools/system/ioping/default.nix
+++ b/pkgs/tools/system/ioping/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3Plus;
     homepage = "https://github.com/koct9i/ioping";
+    mainProgram = "ioping";
   };
 }
diff --git a/pkgs/tools/system/java-service-wrapper/default.nix b/pkgs/tools/system/java-service-wrapper/default.nix
index 63300964f672b..7155d1359da52 100644
--- a/pkgs/tools/system/java-service-wrapper/default.nix
+++ b/pkgs/tools/system/java-service-wrapper/default.nix
@@ -1,6 +1,10 @@
-{ lib, stdenv, fetchurl
+{ lib
+, stdenv
+, fetchurl
 , jdk
-, ant, cunit, ncurses
+, ant
+, cunit
+, ncurses
 }:
 
 stdenv.mkDerivation rec {
@@ -12,18 +16,25 @@ stdenv.mkDerivation rec {
     hash = "sha256-t16i1WqvDqr4J5sDldeUk6+DAyN/6oWGV6eME5yj+i4=";
   };
 
-  buildInputs = [ jdk ];
-  nativeBuildInputs = [ ant cunit ncurses ];
+  strictDeps = true;
+
+  buildInputs = [ cunit ncurses ];
+
+  nativeBuildInputs = [ ant jdk ];
+
+  postConfigure = ''
+    substituteInPlace default.properties \
+      --replace "javac.target.version=1.4" "javac.target.version=8"
+  '';
 
   buildPhase = ''
     runHook preBuild
 
-    export ANT_HOME=${ant}
-    export JAVA_HOME=${jdk}/lib/openjdk/jre/
+    export JAVA_HOME=${jdk}/lib/openjdk/
     export JAVA_TOOL_OPTIONS=-Djava.home=$JAVA_HOME
     export CLASSPATH=${jdk}/lib/openjdk/lib/tools.jar
 
-    ${if stdenv.isi686 then "./build32.sh" else "./build64.sh"}
+    ant -f build.xml -Dbits=${if stdenv.isi686 then "32" else "64"}
 
     runHook postBuild
   '';
@@ -44,7 +55,8 @@ stdenv.mkDerivation rec {
     homepage = "https://wrapper.tanukisoftware.com/";
     changelog = "https://wrapper.tanukisoftware.com/doc/english/release-notes.html#${version}";
     license = licenses.gpl2Only;
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
     maintainers = [ maintainers.suhr ];
+    mainProgram = "wrapper";
   };
 }
diff --git a/pkgs/tools/system/jobber/default.nix b/pkgs/tools/system/jobber/default.nix
index d226d82d8cd84..d9620e49977b8 100644
--- a/pkgs/tools/system/jobber/default.nix
+++ b/pkgs/tools/system/jobber/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     description = "An alternative to cron, with sophisticated status-reporting and error-handling";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
+    mainProgram = "jobber";
   };
 }
diff --git a/pkgs/tools/system/journalwatch/default.nix b/pkgs/tools/system/journalwatch/default.nix
index 3eea1a3796564..b732af4771699 100644
--- a/pkgs/tools/system/journalwatch/default.nix
+++ b/pkgs/tools/system/journalwatch/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
 
   meta = with lib; {
-    description = "journalwatch is a tool to find error messages in the systemd journal.";
+    description = "A tool to find error messages in the systemd journal";
     homepage = "https://github.com/The-Compiler/journalwatch";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ florianjacob ];
diff --git a/pkgs/tools/system/jsvc/default.nix b/pkgs/tools/system/jsvc/default.nix
index 4dcc773ebf436..f8f67b0f45f95 100644
--- a/pkgs/tools/system/jsvc/default.nix
+++ b/pkgs/tools/system/jsvc/default.nix
@@ -32,9 +32,10 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://commons.apache.org/proper/commons-daemon";
-    description = "JSVC is part of the Apache Commons Daemon software, a set of utilities and Java support classes for running Java applications as server processes.";
+    description = "A part of the Apache Commons Daemon software, a set of utilities and Java support classes for running Java applications as server processes";
     maintainers = with lib.maintainers; [ rsynnest ];
     license     = lib.licenses.asl20;
     platforms = with lib.platforms; unix;
+    mainProgram = "jsvc";
   };
 }
diff --git a/pkgs/tools/system/jump/default.nix b/pkgs/tools/system/jump/default.nix
index 3ff64996d0137..483ea356f0e98 100644
--- a/pkgs/tools/system/jump/default.nix
+++ b/pkgs/tools/system/jump/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/gsamokovarov/jump";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "jump";
   };
 }
diff --git a/pkgs/tools/system/kanata/default.nix b/pkgs/tools/system/kanata/default.nix
index 6e86812ece449..eab7fb3d4b17c 100644
--- a/pkgs/tools/system/kanata/default.nix
+++ b/pkgs/tools/system/kanata/default.nix
@@ -1,4 +1,6 @@
-{ lib
+{ stdenv
+, lib
+, darwin
 , rustPlatform
 , fetchFromGitHub
 , withCmd ? false
@@ -6,19 +8,26 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kanata";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "jtroo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Tenh2LARajYAFHJ5gddeozY7rfySSvqFhudc/7b9cGg=";
+    sha256 = "sha256-ci/0Ksmi0uNHIvpZlihWvGeNabzmk+k3fUeuMDVpFeE=";
   };
 
-  cargoHash = "sha256-oJVGZhKJVK8q5lgK+G+KhVupOF05u37B7Nmv4rrI28I=";
+  cargoHash = "sha256-IzgVF6SHJjOB48VehQ5taD5iWQXFKLcVBWTEl3ArkGQ=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.IOKit ];
 
   buildFeatures = lib.optional withCmd "cmd";
 
+  # Workaround for https://github.com/nixos/nixpkgs/issues/166205
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
   postInstall = ''
     install -Dm 444 assets/kanata-icon.svg $out/share/icons/hicolor/scalable/apps/kanata.svg
   '';
@@ -27,8 +36,8 @@ rustPlatform.buildRustPackage rec {
     description = "A tool to improve keyboard comfort and usability with advanced customization";
     homepage = "https://github.com/jtroo/kanata";
     license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ linj ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ bmanuel linj ];
+    platforms = platforms.unix;
     mainProgram = "kanata";
   };
 }
diff --git a/pkgs/tools/system/kmon/default.nix b/pkgs/tools/system/kmon/default.nix
index 589460e6a893c..df7ccfa4cf25f 100644
--- a/pkgs/tools/system/kmon/default.nix
+++ b/pkgs/tools/system/kmon/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kmon";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lB6vJqb6/Qwj3odCJzyQ0+xEl5V/ZPj9cAJGNfiYAOY=";
+    sha256 = "sha256-61HLWSGACnonjp/n14sVo8DdVOUbOpIQHpPL0PmKmpI=";
   };
 
-  cargoSha256 = "sha256-Ff5vGc90VxmyKQSsjUfoI1NL95DmD1SJx3eC1SP6rt4=";
+  cargoSha256 = "sha256-yxpM4aUPVfaMuYwj50C/Uwh/diraJLON1mNjuYJR6Ck=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/orhun/kmon/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ figsoda misuzu ];
+    maintainers = with maintainers; [ figsoda misuzu matthiasbeyer ];
+    mainProgram = "kmon";
   };
 }
diff --git a/pkgs/tools/system/lact/default.nix b/pkgs/tools/system/lact/default.nix
index e91326972949b..16ce41007ea7b 100644
--- a/pkgs/tools/system/lact/default.nix
+++ b/pkgs/tools/system/lact/default.nix
@@ -1,6 +1,7 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, blueprint-compiler
 , pkg-config
 , wrapGAppsHook
 , gdk-pixbuf
@@ -13,18 +14,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lact";
-  version = "0.4.4";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "ilya-zlobintsev";
     repo = "LACT";
     rev = "v${version}";
-    hash = "sha256-5tFXwx76KudojKnynCB+cnHcClB/JJD+9ugwxHG5xy4=";
+    hash = "sha256-B3YAlEKELbHGIQ8AIvortYZsHY6wsuaFxm9lC9Uh+Zg=";
   };
 
-  cargoHash = "sha256-QnJmczOep9XtPoNolrO2DSj+g6qLLowd4rgWQilnV+U=";
+  cargoHash = "sha256-MbE6OrYJGPoQPQggxa9dssx8Nc6/5w53V58E1yLLeq0=";
 
   nativeBuildInputs = [
+    blueprint-compiler
     pkg-config
     wrapGAppsHook
   ];
@@ -53,7 +55,7 @@ rustPlatform.buildRustPackage rec {
 
     pushd $cargoDepsCopy/pciid-parser
     oldHash=$(sha256sum src/lib.rs | cut -d " " -f 1)
-    sed 's|@hwdata@|${hwdata}|g' < ${./pci-ids.patch} | patch -p1
+    substituteInPlace src/lib.rs --subst-var-by hwdata ${hwdata}
     substituteInPlace .cargo-checksum.json \
       --replace $oldHash $(sha256sum src/lib.rs | cut -d " " -f 1)
     popd
@@ -76,5 +78,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "lact";
   };
 }
diff --git a/pkgs/tools/system/lact/pci-ids.patch b/pkgs/tools/system/lact/pci-ids.patch
deleted file mode 100644
index e861ade68aced..0000000000000
--- a/pkgs/tools/system/lact/pci-ids.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/lib.rs
-+++ b/src/lib.rs
-@@ -18,7 +18,7 @@ use std::{
- };
- use tracing::trace;
- 
--const DB_PATHS: &[&str] = &["/usr/share/hwdata/pci.ids", "/usr/share/misc/pci.ids"];
-+const DB_PATHS: &[&str] = &["@hwdata@/share/hwdata/pci.ids"];
- #[cfg(feature = "online")]
- const URL: &str = "https://pci-ids.ucw.cz/v2.2/pci.ids";
diff --git a/pkgs/tools/system/localtime/default.nix b/pkgs/tools/system/localtime/default.nix
index 10ee42bf0308d..bdb1fa2e74445 100644
--- a/pkgs/tools/system/localtime/default.nix
+++ b/pkgs/tools/system/localtime/default.nix
@@ -39,5 +39,6 @@ buildGoModule {
     maintainers = with maintainers; [ lovesegfault ];
     platforms = platforms.linux;
     license = licenses.gpl3;
+    mainProgram = "localtimed";
   };
 }
diff --git a/pkgs/tools/system/logrotate/default.nix b/pkgs/tools/system/logrotate/default.nix
index e7d60479a3e5f..e92f34188f4ff 100644
--- a/pkgs/tools/system/logrotate/default.nix
+++ b/pkgs/tools/system/logrotate/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.viric ];
     platforms = platforms.all;
+    mainProgram = "logrotate";
   };
 }
diff --git a/pkgs/tools/system/lr/default.nix b/pkgs/tools/system/lr/default.nix
index 806b329196a28..e3f62a79e4c13 100644
--- a/pkgs/tools/system/lr/default.nix
+++ b/pkgs/tools/system/lr/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ vikanezrimaya ];
+    mainProgram = "lr";
   };
 }
diff --git a/pkgs/tools/system/lshw/default.nix b/pkgs/tools/system/lshw/default.nix
deleted file mode 100644
index f5b4486365c33..0000000000000
--- a/pkgs/tools/system/lshw/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, hwdata
-, gtk2
-, pkg-config
-, gettext
-, sqlite # compile GUI
-, withGUI ? false
-}:
-
-stdenv.mkDerivation rec {
-  pname = "lshw";
-  # FIXME: when switching to a stable release:
-  # 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 = "unstable-2023-03-20";
-
-  src = fetchFromGitHub {
-    owner = "lyonel";
-    repo = pname;
-    rev = "b4e067307906ec6f277cce5c8a882f5edd03cbbc";
-    #rev = "B.${version}";
-    sha256 = "sha256-ahdaQeYZEFCVxwAMJPMB9bfo3ndIiqFyM6OghXwtm1A=";
-  };
-
-  nativeBuildInputs = [ pkg-config gettext ];
-
-  buildInputs = [ hwdata ]
-    ++ lib.optionals withGUI [ gtk2 sqlite ];
-
-  makeFlags = [
-    "PREFIX=$(out)"
-    "VERSION=${src.rev}"
-  ];
-
-  buildFlags = [ "all" ] ++ lib.optional withGUI "gui";
-
-  installTargets = [ "install" ] ++ lib.optional withGUI "install-gui";
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    homepage = "https://ezix.org/project/wiki/HardwareLiSter";
-    description = "Provide detailed information on the hardware configuration of the machine";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ thiagokokada ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/system/mediawriter/default.nix b/pkgs/tools/system/mediawriter/default.nix
index eaea077c8520f..bf2b4ce27ff47 100644
--- a/pkgs/tools/system/mediawriter/default.nix
+++ b/pkgs/tools/system/mediawriter/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mediawriter";
-  version = "5.0.8";
+  version = "5.0.9";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = "MediaWriter";
     rev = "refs/tags/${version}";
-    hash = "sha256-6c2RXBIsJiW/xk+Q89RGibh6CIqIWHlBDBLb5o/mIGQ=";
+    hash = "sha256-FmMiv78r95shCpqN5PV6Oxms/hQY9ycqRn9L61aR8n4=";
   };
 
   nativeBuildInputs = [
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/FedoraQt/MediaWriter/releases/tag/${version}";
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mediawriter";
   };
 }
diff --git a/pkgs/tools/system/memtester/default.nix b/pkgs/tools/system/memtester/default.nix
index 14b3610abe979..7753ed804e164 100644
--- a/pkgs/tools/system/memtester/default.nix
+++ b/pkgs/tools/system/memtester/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.unix;
+    mainProgram = "memtester";
   };
 }
diff --git a/pkgs/tools/system/minijail/default.nix b/pkgs/tools/system/minijail/default.nix
index ab237dd307279..87913252ab4bd 100644
--- a/pkgs/tools/system/minijail/default.nix
+++ b/pkgs/tools/system/minijail/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ pcarrier qyliss ];
     platforms = platforms.linux;
+    mainProgram = "minijail0";
   };
 }
diff --git a/pkgs/tools/system/minijail/tools.nix b/pkgs/tools/system/minijail/tools.nix
index f54e76777612a..266879a303338 100644
--- a/pkgs/tools/system/minijail/tools.nix
+++ b/pkgs/tools/system/minijail/tools.nix
@@ -21,7 +21,7 @@ buildPythonApplication {
     make libconstants.gen.c libsyscalls.gen.c
     ${targetClang}/bin/${targetClang.targetPrefix}cc -S -emit-llvm \
         libconstants.gen.c libsyscalls.gen.c
-    ${python.pythonForBuild.interpreter} tools/generate_constants_json.py \
+    ${python.pythonOnBuildForHost.interpreter} tools/generate_constants_json.py \
         --output constants.json \
         libconstants.gen.ll libsyscalls.gen.ll
   '';
diff --git a/pkgs/tools/system/mlc/default.nix b/pkgs/tools/system/mlc/default.nix
index 5df3579ca9a1e..409738e4a353a 100644
--- a/pkgs/tools/system/mlc/default.nix
+++ b/pkgs/tools/system/mlc/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ basvandijk ];
     platforms = with platforms; linux;
+    mainProgram = "mlc";
   };
 }
diff --git a/pkgs/tools/system/monit/default.nix b/pkgs/tools/system/monit/default.nix
index f1ebd6596c5bf..bd36d6fa400e0 100644
--- a/pkgs/tools/system/monit/default.nix
+++ b/pkgs/tools/system/monit/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.agpl3;
     maintainers = with lib.maintainers; [ raskin wmertens ryantm ];
     platforms = with lib; platforms.linux ++ platforms.darwin;
+    mainProgram = "monit";
   };
 }
diff --git a/pkgs/tools/system/mq-cli/default.nix b/pkgs/tools/system/mq-cli/default.nix
index cdbff1921a79b..81adc7daa2725 100644
--- a/pkgs/tools/system/mq-cli/default.nix
+++ b/pkgs/tools/system/mq-cli/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license          = licenses.mit;
     maintainers      = with maintainers; [ tazjin ];
     platforms        = platforms.linux;
+    mainProgram      = "mq";
   };
 }
diff --git a/pkgs/tools/system/nats-top/default.nix b/pkgs/tools/system/nats-top/default.nix
index 49d70e0b30cf5..c26c65d48a89a 100644
--- a/pkgs/tools/system/nats-top/default.nix
+++ b/pkgs/tools/system/nats-top/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     changelog = "https://github.com/nats-io/nats-top/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "nats-top";
   };
 }
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index 5d9286a1c4d1a..4248b00003ec9 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -2,23 +2,24 @@
 , CoreFoundation, IOKit, libossp_uuid
 , nixosTests
 , netdata-go-plugins
-, bash, curl, jemalloc, libuv, zlib, libyaml
+, bash, curl, jemalloc, json_c, libuv, zlib, libyaml
 , libcap, libuuid, lm_sensors, protobuf
 , withCups ? false, cups
 , withDBengine ? true, lz4
 , withIpmi ? (!stdenv.isDarwin), freeipmi
 , withNetfilter ? (!stdenv.isDarwin), libmnl, libnetfilter_acct
-, withCloud ? (!stdenv.isDarwin), json_c
+, withCloud ? false
 , withCloudUi ? false
 , withConnPubSub ? false, google-cloud-cpp, grpc
 , withConnPrometheus ? false, snappy
 , withSsl ? true, openssl
+, withSystemdJournal ? (!stdenv.isDarwin), systemd
 , withDebug ? false
 }:
 
 stdenv.mkDerivation rec {
   # Don't forget to update go.d.plugin.nix as well
-  version = "1.42.4";
+  version = "1.44.0";
   pname = "netdata";
 
   src = fetchFromGitHub {
@@ -26,8 +27,8 @@ stdenv.mkDerivation rec {
     repo = "netdata";
     rev = "v${version}";
     hash = if withCloudUi
-      then "sha256-MaU9sOQD+Y03M+yoSWt1GuV+DrBlD7+r/Qm2JJ9s8EU="
-      else "sha256-41QntBt0MoO1hAsDb8LhHgvvNMzt9R1ZdgiPaR7NrPU=";
+      then "sha256-8kkOpMfcYPcHI3GuevZ2NYjJjlZvrvBgIs883Zsztgw="
+      else "sha256-Kui3sV8OzBri4h47qD10snQgdvdi6yi/2z4cXWREcxE=";
     fetchSubmodules = true;
 
     # Remove v2 dashboard distributed under NCUL1. Make sure an empty
@@ -42,17 +43,17 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper protobuf ];
   # bash is only used to rewrite shebangs
-  buildInputs = [ bash curl jemalloc libuv zlib libyaml ]
+  buildInputs = [ bash curl jemalloc json_c libuv zlib libyaml ]
     ++ lib.optionals stdenv.isDarwin [ CoreFoundation IOKit libossp_uuid ]
     ++ lib.optionals (!stdenv.isDarwin) [ libcap libuuid ]
     ++ lib.optionals withCups [ cups ]
     ++ lib.optionals withDBengine [ lz4 ]
     ++ lib.optionals withIpmi [ freeipmi ]
     ++ lib.optionals withNetfilter [ libmnl libnetfilter_acct ]
-    ++ lib.optionals withCloud [ json_c ]
     ++ lib.optionals withConnPubSub [ google-cloud-cpp grpc ]
     ++ lib.optionals withConnPrometheus [ snappy ]
     ++ lib.optionals (withCloud || withConnPrometheus) [ protobuf ]
+    ++ lib.optionals withSystemdJournal [ systemd ]
     ++ lib.optionals withSsl [ openssl ];
 
   patches = [
@@ -94,6 +95,10 @@ stdenv.mkDerivation rec {
        $out/libexec/netdata/plugins.d/perf.plugin.org
     mv $out/libexec/netdata/plugins.d/slabinfo.plugin \
        $out/libexec/netdata/plugins.d/slabinfo.plugin.org
+    ${lib.optionalString withSystemdJournal ''
+      mv $out/libexec/netdata/plugins.d/systemd-journal.plugin \
+         $out/libexec/netdata/plugins.d/systemd-journal.plugin.org
+    ''}
     ${lib.optionalString withIpmi ''
       mv $out/libexec/netdata/plugins.d/freeipmi.plugin \
          $out/libexec/netdata/plugins.d/freeipmi.plugin.org
@@ -110,6 +115,8 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
     "--disable-ebpf"
     "--with-jemalloc=${jemalloc}"
+  ] ++ lib.optionals (withSystemdJournal) [
+    "--enable-plugin-systemd-journal"
   ] ++ lib.optionals (!withDBengine) [
     "--disable-dbengine"
   ] ++ lib.optionals (!withCloud) [
@@ -119,6 +126,10 @@ stdenv.mkDerivation rec {
   ];
 
   postFixup = ''
+    # remove once https://github.com/netdata/netdata/pull/16300 merged
+    substituteInPlace $out/bin/netdata-claim.sh \
+      --replace /bin/echo echo
+
     wrapProgram $out/bin/netdata-claim.sh --prefix PATH : ${lib.makeBinPath [ openssl ]}
     wrapProgram $out/libexec/netdata/plugins.d/cgroup-network-helper.sh --prefix PATH : ${lib.makeBinPath [ bash ]}
     wrapProgram $out/bin/netdatacli --set NETDATA_PIPENAME /run/netdata/ipc
diff --git a/pkgs/tools/system/netdata/go.d.plugin.nix b/pkgs/tools/system/netdata/go.d.plugin.nix
index 4fcb7a6d43ce3..c741d1d62beb0 100644
--- a/pkgs/tools/system/netdata/go.d.plugin.nix
+++ b/pkgs/tools/system/netdata/go.d.plugin.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "netdata-go-plugins";
-  version = "0.56.1";
+  version = "0.58.0";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "go.d.plugin";
     rev = "v${version}";
-    hash = "sha256-OA//50j7MWCNyQ85DzSkk0kI8XonBOMpEmsIJ7QLbHY=";
+    hash = "sha256-XZBF0uNXTo5UcBuhMVznij+QGhHM06j5J2xflZf40kI=";
   };
 
-  vendorHash = "sha256-1ir6paAz4NyJDPivBrHyiTrNwJMJ00Q4/sWBLBnwqPM=";
+  vendorHash = "sha256-bdW6ZDMYVFGWD7KEDU2kaoccgwbOPl7ADnZ1npGBLAc=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch b/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
index 6e24d707d0ae8..039376fe4e3a7 100644
--- a/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
+++ b/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
@@ -1,8 +1,8 @@
-diff --git a/collectors/Makefile.am b/collectors/Makefile.am
-index 2aec3dd3e..27385ec28 100644
---- a/collectors/Makefile.am
-+++ b/collectors/Makefile.am
-@@ -31,7 +31,7 @@ usercustompluginsconfigdir=$(configdir)/custom-plugins.d
+diff --git c/collectors/Makefile.am i/collectors/Makefile.am
+index 1bbb2e0ef..96c400d33 100644
+--- c/collectors/Makefile.am
++++ i/collectors/Makefile.am
+@@ -33,7 +33,7 @@ usercustompluginsconfigdir=$(configdir)/custom-plugins.d
  usergoconfigdir=$(configdir)/go.d
  
  # Explicitly install directories to avoid permission issues due to umask
@@ -11,10 +11,10 @@ index 2aec3dd3e..27385ec28 100644
  	$(INSTALL) -d $(DESTDIR)$(usercustompluginsconfigdir)
  	$(INSTALL) -d $(DESTDIR)$(usergoconfigdir)
  
-diff --git a/collectors/charts.d.plugin/Makefile.am b/collectors/charts.d.plugin/Makefile.am
-index 03c7f0a94..01985db01 100644
---- a/collectors/charts.d.plugin/Makefile.am
-+++ b/collectors/charts.d.plugin/Makefile.am
+diff --git c/collectors/charts.d.plugin/Makefile.am i/collectors/charts.d.plugin/Makefile.am
+index f82992fd4..4cac1ae4f 100644
+--- c/collectors/charts.d.plugin/Makefile.am
++++ i/collectors/charts.d.plugin/Makefile.am
 @@ -34,7 +34,7 @@ dist_userchartsconfig_DATA = \
      $(NULL)
  
@@ -24,10 +24,10 @@ index 03c7f0a94..01985db01 100644
  	$(INSTALL) -d $(DESTDIR)$(userchartsconfigdir)
  
  chartsconfigdir=$(libconfigdir)/charts.d
-diff --git a/collectors/ebpf.plugin/Makefile.am b/collectors/ebpf.plugin/Makefile.am
+diff --git c/collectors/ebpf.plugin/Makefile.am i/collectors/ebpf.plugin/Makefile.am
 index 2d5f92a6b..8b11c7502 100644
---- a/collectors/ebpf.plugin/Makefile.am
-+++ b/collectors/ebpf.plugin/Makefile.am
+--- c/collectors/ebpf.plugin/Makefile.am
++++ i/collectors/ebpf.plugin/Makefile.am
 @@ -9,7 +9,7 @@ SUFFIXES = .in
  userebpfconfigdir=$(configdir)/ebpf.d
  
@@ -37,10 +37,10 @@ index 2d5f92a6b..8b11c7502 100644
  	$(INSTALL) -d $(DESTDIR)$(userebpfconfigdir)
  
  dist_noinst_DATA = \
-diff --git a/collectors/python.d.plugin/Makefile.am b/collectors/python.d.plugin/Makefile.am
+diff --git c/collectors/python.d.plugin/Makefile.am i/collectors/python.d.plugin/Makefile.am
 index ca49c1c02..1b9bcc446 100644
---- a/collectors/python.d.plugin/Makefile.am
-+++ b/collectors/python.d.plugin/Makefile.am
+--- c/collectors/python.d.plugin/Makefile.am
++++ i/collectors/python.d.plugin/Makefile.am
 @@ -32,7 +32,7 @@ dist_userpythonconfig_DATA = \
      $(NULL)
  
@@ -50,10 +50,10 @@ index ca49c1c02..1b9bcc446 100644
  	$(INSTALL) -d $(DESTDIR)$(userpythonconfigdir)
  
  pythonconfigdir=$(libconfigdir)/python.d
-diff --git a/collectors/statsd.plugin/Makefile.am b/collectors/statsd.plugin/Makefile.am
+diff --git c/collectors/statsd.plugin/Makefile.am i/collectors/statsd.plugin/Makefile.am
 index c8144c137..f8aaa89b6 100644
---- a/collectors/statsd.plugin/Makefile.am
-+++ b/collectors/statsd.plugin/Makefile.am
+--- c/collectors/statsd.plugin/Makefile.am
++++ i/collectors/statsd.plugin/Makefile.am
 @@ -19,5 +19,5 @@ dist_userstatsdconfig_DATA = \
      $(NULL)
  
@@ -61,10 +61,10 @@ index c8144c137..f8aaa89b6 100644
 -install-exec-local:
 +no-install-exec-local:
  	$(INSTALL) -d $(DESTDIR)$(userstatsdconfigdir)
-diff --git a/health/Makefile.am b/health/Makefile.am
-index 20e000860..add0137b3 100644
---- a/health/Makefile.am
-+++ b/health/Makefile.am
+diff --git c/health/Makefile.am i/health/Makefile.am
+index 7d7bca4cc..3086876dd 100644
+--- c/health/Makefile.am
++++ i/health/Makefile.am
 @@ -19,7 +19,7 @@ dist_userhealthconfig_DATA = \
      $(NULL)
  
@@ -74,11 +74,24 @@ index 20e000860..add0137b3 100644
  	$(INSTALL) -d $(DESTDIR)$(userhealthconfigdir)
  
  healthconfigdir=$(libconfigdir)/health.d
-diff --git a/system/Makefile.am b/system/Makefile.am
-index 54e9278c8..e7cc7acea 100644
---- a/system/Makefile.am
-+++ b/system/Makefile.am
-@@ -21,12 +21,9 @@ include $(top_srcdir)/build/subst.inc
+diff --git c/logsmanagement/Makefile.am i/logsmanagement/Makefile.am
+index 33f08d556..1f08cbae9 100644
+--- c/logsmanagement/Makefile.am
++++ i/logsmanagement/Makefile.am
+@@ -6,7 +6,7 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
+ userlogsmanagconfigdir=$(configdir)/logsmanagement.d
+ 
+ # Explicitly install directories to avoid permission issues due to umask
+-install-exec-local:
++no-install-exec-local:
+ 	$(INSTALL) -d $(DESTDIR)$(userlogsmanagconfigdir)
+ 
+ dist_libconfig_DATA = \
+diff --git c/system/Makefile.am i/system/Makefile.am
+index 1e96f6f4f..98122ecdc 100644
+--- c/system/Makefile.am
++++ i/system/Makefile.am
+@@ -22,12 +22,9 @@ include $(top_srcdir)/build/subst.inc
  SUFFIXES = .in
  
  dist_config_SCRIPTS = \
@@ -91,7 +104,7 @@ index 54e9278c8..e7cc7acea 100644
      $(NULL)
  
  libconfigvnodesdir=$(libconfigdir)/vnodes
-@@ -46,7 +43,7 @@ libsysrunitdir=$(libsysdir)/runit
+@@ -47,7 +44,7 @@ libsysrunitdir=$(libsysdir)/runit
  libsyssystemddir=$(libsysdir)/systemd
  
  # Explicitly install directories to avoid permission issues due to umask
@@ -100,10 +113,10 @@ index 54e9278c8..e7cc7acea 100644
  	$(INSTALL) -d $(DESTDIR)$(configdir)
  	$(INSTALL) -d $(DESTDIR)$(libsysdir)
  	$(INSTALL) -d $(DESTDIR)$(libsyscrondir)
-diff --git a/web/Makefile.am b/web/Makefile.am
+diff --git c/web/Makefile.am i/web/Makefile.am
 index be2c545c3..55f373114 100644
---- a/web/Makefile.am
-+++ b/web/Makefile.am
+--- c/web/Makefile.am
++++ i/web/Makefile.am
 @@ -13,7 +13,7 @@ SUBDIRS = \
  usersslconfigdir=$(configdir)/ssl
  
diff --git a/pkgs/tools/system/nkeys/default.nix b/pkgs/tools/system/nkeys/default.nix
index 9914e6f142430..54a02a9065764 100644
--- a/pkgs/tools/system/nkeys/default.nix
+++ b/pkgs/tools/system/nkeys/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nkeys";
-  version = "0.4.5";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-txPd4Q/ApaNutt2Ik5E2478tHAQmpTJQKYnHA9niz3E=";
+    hash = "sha256-ui/vSa2TGe6Pe2aAzitBa1Pd2vKgTMuHoBhYYy2p6Rw=";
   };
 
-  vendorHash = "sha256-ozK0vimYs7wGplw1QhSu+q8R+YsIYHU4m08a7K6i78I=";
+  vendorHash = "sha256-SiSqmj6ktfiGsJOSu/pBY53e3vnN+RBfTkGwUuW52uo=";
 
   meta = with lib; {
     description = "Public-key signature system for NATS";
diff --git a/pkgs/tools/system/nsc/default.nix b/pkgs/tools/system/nsc/default.nix
index c3d0394c658db..bec4a31141021 100644
--- a/pkgs/tools/system/nsc/default.nix
+++ b/pkgs/tools/system/nsc/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "nsc";
-  version = "2.8.1";
+  version = "2.8.5";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kNfA/MQuXauQPWQhUspreqo4oOKb+qBqh9NdmQM1Q+A=";
+    hash = "sha256-9qsHZTbK2RCDiQ5wlo2D79GeI5dbCvL2LofPnF7f8Cc=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
     "-X main.builtBy=nixpkgs"
   ];
 
-  vendorHash = "sha256-8cTegiNVtGSZdf9O+KVoOgnjjMIv8w7YBSkFhk7gHfk=";
+  vendorHash = "sha256-B3uIFJaEsj9tpjPBiU+rXVlfcgVwZUQe3VSSoZQqBG8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -44,7 +44,7 @@ buildGoModule rec {
   # the test strips table formatting from the command output in a naive way
   # that removes all the table characters, including '-'.
   # The nix build directory looks something like:
-  # /private/tmp/nix-build-nsc-2.8.1.drv-0/nsc_test2000598938/keys
+  # /private/tmp/nix-build-nsc-2.8.5.drv-0/nsc_test2000598938/keys
   # Then the `-` are removed from the path unintentionally and the test fails.
   # This should be fixed upstream to avoid mangling the path when
   # removing the table decorations from the command output.
diff --git a/pkgs/tools/system/nvitop/default.nix b/pkgs/tools/system/nvitop/default.nix
index 9cfe26de37326..af53911c8862b 100644
--- a/pkgs/tools/system/nvitop/default.nix
+++ b/pkgs/tools/system/nvitop/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "nvitop";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "XuehaiPan";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-DPdKdIqFUozTt5Go3+c7oSv9tZSio486QeSlSfIrBZ4=";
+    hash = "sha256-TunGtNe+lgx/hk8kNtB8yaCdbkiJ3d4JJ8NKB+6urJA=";
   };
 
   pythonRelaxDeps = [ "nvidia-ml-py" ];
@@ -32,6 +32,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     description = "An interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management";
     homepage = "https://github.com/XuehaiPan/nvitop";
+    changelog = "https://github.com/XuehaiPan/nvitop/releases/tag/v${version}";
     license = licenses.gpl3;
     maintainers = with maintainers; [ GaetanLepage ];
     platforms = with platforms; linux;
diff --git a/pkgs/tools/system/opencl-info/default.nix b/pkgs/tools/system/opencl-info/default.nix
index 124b53512d726..fc549d2d7961f 100644
--- a/pkgs/tools/system/opencl-info/default.nix
+++ b/pkgs/tools/system/opencl-info/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "opencl-info";
   };
 }
diff --git a/pkgs/tools/system/openseachest/default.nix b/pkgs/tools/system/openseachest/default.nix
index 1bdcf796f7504..ab17c23bc61e9 100644
--- a/pkgs/tools/system/openseachest/default.nix
+++ b/pkgs/tools/system/openseachest/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openseachest";
-  version = "23.03.1";
+  version = "23.12";
 
   src = fetchFromGitHub {
     owner = "Seagate";
     repo = "openSeaChest";
     rev = "v${version}";
-    sha256 = "sha256-jDCCozHeOazB3cM/9TlwHq1pu7yTiD818jykHeQ+RBo=";
+    sha256 = "sha256-2snxruIC/93+yI7g/9cCXcms8FaoXnoyWq9py8GTwrs=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/system/osquery/Use-locale.h-instead-of-removed-xlocale.h-header.patch b/pkgs/tools/system/osquery/Use-locale.h-instead-of-removed-xlocale.h-header.patch
index 63dd5a387f30e..6c67653090533 100644
--- a/pkgs/tools/system/osquery/Use-locale.h-instead-of-removed-xlocale.h-header.patch
+++ b/pkgs/tools/system/osquery/Use-locale.h-instead-of-removed-xlocale.h-header.patch
@@ -1,15 +1,21 @@
-From: Jack Baldry <jack.baldry@grafana.com>
-Date: Tue, 15 Nov 2022 14:34:33 -0400
-Subject: [PATCH] Use locale.h instead of removed xlocale.h header
-
-https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27xlocale.h.27
-
-Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
----
- libraries/cmake/source/augeas/gnulib/generated/linux/x86_64/lib/locale.h  | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
+diff --git a/libraries/cmake/source/augeas/gnulib/generated/linux/aarch64/lib/locale.h b/libraries/cmake/source/augeas/gnulib/generated/linux/aarch64/lib/locale.h
+index 4f9baece2..afe947956 100644
+--- a/libraries/cmake/source/augeas/gnulib/generated/linux/aarch64/lib/locale.h
++++ b/libraries/cmake/source/augeas/gnulib/generated/linux/aarch64/lib/locale.h
+@@ -48,9 +48,9 @@
+ /* NetBSD 5.0 mis-defines NULL.  */
+ #include <stddef.h>
+ 
+-/* Mac OS X 10.5 defines the locale_t type in <xlocale.h>.  */
++/* Mac OS X 10.5 defines the locale_t type in <locale.h>.  */
+ #if 1
+-# include <xlocale.h>
++# include <locale.h>
+ #endif
+ 
+ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 diff --git a/libraries/cmake/source/augeas/gnulib/generated/linux/x86_64/lib/locale.h b/libraries/cmake/source/augeas/gnulib/generated/linux/x86_64/lib/locale.h
+index 4f9baece2..afe947956 100644
 --- a/libraries/cmake/source/augeas/gnulib/generated/linux/x86_64/lib/locale.h
 +++ b/libraries/cmake/source/augeas/gnulib/generated/linux/x86_64/lib/locale.h
 @@ -48,9 +48,9 @@
@@ -24,6 +30,3 @@ diff --git a/libraries/cmake/source/augeas/gnulib/generated/linux/x86_64/lib/loc
  #endif
  
  /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
--- 
-2.38.1
-
diff --git a/pkgs/tools/system/osquery/default.nix b/pkgs/tools/system/osquery/default.nix
index a7c8f18214fa5..5138c5374103b 100644
--- a/pkgs/tools/system/osquery/default.nix
+++ b/pkgs/tools/system/osquery/default.nix
@@ -1,6 +1,7 @@
 { lib
 , cmake
 , fetchFromGitHub
+, fetchpatch
 , git
 , llvmPackages
 , nixosTests
@@ -32,6 +33,15 @@ buildStdenv.mkDerivation rec {
     ./Remove-circular-definition-of-AUDIT_FILTER_EXCLUDE.patch
     # For current state of compilation against glibc in the clangWithLLVM toolchain, refer to the upstream issue in https://github.com/osquery/osquery/issues/7823.
     ./Remove-system-controls-table.patch
+
+    # osquery uses a vendored boost library that still relies on old standard types (e.g. `std::unary_function`)
+    # which have been removed as of C++17. The patch is already checked in upstream, but there have been no
+    # releases yet. Can likely be removed with versions > 5.10.2.
+    (fetchpatch {
+      name = "fix-build-on-clang-16.patch";
+      url  = "https://github.com/osquery/osquery/commit/222991a15b4ae0a0fb919e4965603616536e1b0a.patch";
+      hash = "sha256-PdzEoeR1LXVri1Cd+7KMhKmDC8yZhAx3f1+9tjLJKyo=";
+    })
   ];
 
 
@@ -74,7 +84,7 @@ buildStdenv.mkDerivation rec {
   passthru.tests.osquery = nixosTests.osquery;
 
   meta = with lib; {
-    description = "SQL powered operating system instrumentation, monitoring, and analytics.";
+    description = "SQL powered operating system instrumentation, monitoring, and analytics";
     longDescription = ''
       The system controls table is not included as it does not presently compile with glibc >= 2.32.
       For more information, refer to https://github.com/osquery/osquery/issues/7823
diff --git a/pkgs/tools/system/pcstat/default.nix b/pkgs/tools/system/pcstat/default.nix
index 8e45896632b3e..85e6c791990eb 100644
--- a/pkgs/tools/system/pcstat/default.nix
+++ b/pkgs/tools/system/pcstat/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/tobert/pcstat";
     license = licenses.asl20;
     maintainers = with maintainers; [ aminechikhaoui ];
+    mainProgram = "pcstat";
   };
 }
diff --git a/pkgs/tools/system/procodile/default.nix b/pkgs/tools/system/procodile/default.nix
index 6c463b4543335..3c4437ea09c47 100644
--- a/pkgs/tools/system/procodile/default.nix
+++ b/pkgs/tools/system/procodile/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = with licenses; mit;
     maintainers = with maintainers; [ manveru nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "procodile";
   };
 }
diff --git a/pkgs/tools/system/ps_mem/default.nix b/pkgs/tools/system/ps_mem/default.nix
index 8408ed5e8d189..96c21e461d4a6 100644
--- a/pkgs/tools/system/ps_mem/default.nix
+++ b/pkgs/tools/system/ps_mem/default.nix
@@ -17,5 +17,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.lgpl21;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "ps_mem";
   };
 }
diff --git a/pkgs/tools/system/psensor/default.nix b/pkgs/tools/system/psensor/default.nix
index 33749f30be0cb..47456b76f325c 100644
--- a/pkgs/tools/system/psensor/default.nix
+++ b/pkgs/tools/system/psensor/default.nix
@@ -1,5 +1,16 @@
-{ stdenv, lib, fetchurl, pkg-config, lm_sensors, libgtop, libatasmart, gtk3
-, libnotify, udisks2, libXNVCtrl, wrapGAppsHook
+{ stdenv
+, lib
+, fetchurl
+, pkg-config
+, lm_sensors
+, libgtop
+, libatasmart
+, gtk3
+, libnotify
+, udisks2
+, libXNVCtrl
+, wrapGAppsHook
+, libappindicator
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +26,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
 
   buildInputs = [
-    lm_sensors libgtop libatasmart gtk3 libnotify udisks2
+    lm_sensors
+    libgtop
+    libatasmart
+    gtk3
+    libnotify
+    udisks2
+    libappindicator
   ];
 
   preConfigure = ''
@@ -29,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "psensor";
   };
 }
diff --git a/pkgs/tools/system/psstop/default.nix b/pkgs/tools/system/psstop/default.nix
index 1d4fff918ec79..1adb6c4e5ed5d 100644
--- a/pkgs/tools/system/psstop/default.nix
+++ b/pkgs/tools/system/psstop/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     description = "Show processes' memory usage by looking into pss"; # upstream summary
     license = licenses.gpl3;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "psstop";
   };
 }
diff --git a/pkgs/tools/system/r10k/default.nix b/pkgs/tools/system/r10k/default.nix
index 12522bd8cff10..75b75d00253eb 100644
--- a/pkgs/tools/system/r10k/default.nix
+++ b/pkgs/tools/system/r10k/default.nix
@@ -19,5 +19,6 @@ bundlerApp {
     license     = licenses.asl20;
     maintainers = with maintainers; [ zimbatm manveru nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "r10k";
   };
 }
diff --git a/pkgs/tools/system/retry/default.nix b/pkgs/tools/system/retry/default.nix
index 34d4bbb139604..998ba8cb72868 100644
--- a/pkgs/tools/system/retry/default.nix
+++ b/pkgs/tools/system/retry/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ gfrascadorio ];
     platforms = platforms.all;
+    mainProgram = "retry";
   };
 }
 
diff --git a/pkgs/tools/system/rofi-systemd/default.nix b/pkgs/tools/system/rofi-systemd/default.nix
index f64a84c550958..b8be1adea984f 100644
--- a/pkgs/tools/system/rofi-systemd/default.nix
+++ b/pkgs/tools/system/rofi-systemd/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ imalison ];
     license = lib.licenses.gpl3;
     platforms = with lib.platforms; linux;
+    mainProgram = "rofi-systemd";
   };
 }
diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix
index b406c5b4a3124..b678f5cda2a9d 100644
--- a/pkgs/tools/system/rsyslog/default.nix
+++ b/pkgs/tools/system/rsyslog/default.nix
@@ -61,11 +61,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rsyslog";
-  version = "8.2308.0";
+  version = "8.2312.0";
 
   src = fetchurl {
     url = "https://www.rsyslog.com/files/download/rsyslog/${pname}-${version}.tar.gz";
-    hash = "sha256-AghrkSHocs6mnl0PbI4tjr/zMjSzytVQNmU3jTry48k=";
+    hash = "sha256-d0AyAGEoqJZDf1kT4TKqJ9v7k3zYhH5ElSLVoS1j0D4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/system/runitor/default.nix b/pkgs/tools/system/runitor/default.nix
index d724d4c437002..d5d2f50cc0f57 100644
--- a/pkgs/tools/system/runitor/default.nix
+++ b/pkgs/tools/system/runitor/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     '';
     license = licenses.bsd0;
     maintainers = with maintainers; [ bdd ];
+    mainProgram = "runitor";
   };
 }
diff --git a/pkgs/tools/system/rwc/default.nix b/pkgs/tools/system/rwc/default.nix
index 7180c2554702e..e283fb4005b07 100644
--- a/pkgs/tools/system/rwc/default.nix
+++ b/pkgs/tools/system/rwc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rwc";
-  version = "0.2";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "leahneukirchen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-axHBkrbLEcYygCDofhqfIeZ5pv1sR34I5UgFUwVb2rI=";
+    sha256 = "sha256-rB20XKprd8jPwvXYdjIEr3/8ygPGCDAgLKbHfw0EgPk=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     platforms = platforms.linux;
     maintainers = with maintainers; [ somasis ];
+    mainProgram = "rwc";
   };
 }
diff --git a/pkgs/tools/system/s-tui/default.nix b/pkgs/tools/system/s-tui/default.nix
index 29b37aa0b0fd9..8f81ba97a0da0 100644
--- a/pkgs/tools/system/s-tui/default.nix
+++ b/pkgs/tools/system/s-tui/default.nix
@@ -32,5 +32,6 @@ python3Packages.buildPythonPackage rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ infinisil ];
     broken = stdenv.isDarwin; # https://github.com/amanusk/s-tui/issues/49
+    mainProgram = "s-tui";
   };
 }
diff --git a/pkgs/tools/system/s0ix-selftest-tool/default.nix b/pkgs/tools/system/s0ix-selftest-tool/default.nix
index f75ba42ac90ae..535a68f6ff75f 100644
--- a/pkgs/tools/system/s0ix-selftest-tool/default.nix
+++ b/pkgs/tools/system/s0ix-selftest-tool/default.nix
@@ -76,5 +76,6 @@ resholve.mkDerivation {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [adamcstephens];
+    mainProgram = "s0ix-selftest-tool";
   };
 }
diff --git a/pkgs/tools/system/safe-rm/default.nix b/pkgs/tools/system/safe-rm/default.nix
index bac9bb3560245..26b0aba9889f1 100644
--- a/pkgs/tools/system/safe-rm/default.nix
+++ b/pkgs/tools/system/safe-rm/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "safe-rm";
   };
 }
diff --git a/pkgs/tools/system/safecopy/default.nix b/pkgs/tools/system/safecopy/default.nix
index ff7149a4063aa..2bf4547777653 100644
--- a/pkgs/tools/system/safecopy/default.nix
+++ b/pkgs/tools/system/safecopy/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
 
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.bluescreen303 ];
+    mainProgram = "safecopy";
   };
 }
diff --git a/pkgs/tools/system/setserial/default.nix b/pkgs/tools/system/setserial/default.nix
index be4ffa3388e79..d224b96d89dc7 100644
--- a/pkgs/tools/system/setserial/default.nix
+++ b/pkgs/tools/system/setserial/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "Serial port configuration utility";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2;
+    mainProgram = "setserial";
   };
 }
diff --git a/pkgs/tools/system/skeema/default.nix b/pkgs/tools/system/skeema/default.nix
index 86798155047c6..38d6c4d1f75a7 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.11.0";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "skeema";
     repo = "skeema";
     rev = "v${version}";
-    hash = "sha256-BXjcn9oakTvaWPYIsAsjYRwQ1aKhZ4PAV2AkxSVOF/I=";
+    hash = "sha256-S7eMqaz8BZ80AwIrVmX+rnEgIwEdy8q65FIy6Mac4CY=";
   };
 
   vendorHash = null;
@@ -53,5 +53,6 @@ buildGoModule rec {
     homepage = "https://skeema.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "skeema";
   };
 }
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index 02c4340aded2e..55ec05d2a9a77 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -38,7 +38,11 @@ stdenv.mkDerivation rec {
     cp -v ${driverdb} drivedb.h
   '';
 
-  configureFlags = [ "--with-scriptpath=${scriptPath}" ];
+  configureFlags = [
+    "--with-scriptpath=${scriptPath}"
+    # does not work on NixOS
+    "--without-update-smart-drivedb"
+  ];
 
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = lib.optionals stdenv.isDarwin [ IOKit ApplicationServices ];
diff --git a/pkgs/tools/system/snooze/default.nix b/pkgs/tools/system/snooze/default.nix
index bfe91c6e0e8d0..1a719a494f84c 100644
--- a/pkgs/tools/system/snooze/default.nix
+++ b/pkgs/tools/system/snooze/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ kaction ];
     license = licenses.cc0;
     platforms = platforms.unix;
+    mainProgram = "snooze";
   };
 }
diff --git a/pkgs/tools/system/stacer/default.nix b/pkgs/tools/system/stacer/default.nix
index 75068148bd74c..57d376bea9fe4 100644
--- a/pkgs/tools/system/stacer/default.nix
+++ b/pkgs/tools/system/stacer/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "stacer";
   };
 }
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index af29e316c278d..f37d5f628791f 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.17.00";
+  version = "0.17.04";
 
   src = fetchFromGitHub {
     owner = "ColinIanKing";
     repo = pname;
     rev = "V${version}";
-    hash = "sha256-VChEuxNDQfkJyherlInbFEBGf6djp5zRQYaZB7w7A3s=";
+    hash = "sha256-oD2NosZ5lswdSL1sh/nOHdRNyzrNJt+t+8r/dx9Z9/k=";
   };
 
   postPatch = ''
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ c0bw3b ];
     platforms = platforms.unix;
+    mainProgram = "stress-ng";
   };
 }
diff --git a/pkgs/tools/system/stress/default.nix b/pkgs/tools/system/stress/default.nix
index ab765c8201313..0334ed757b36a 100644
--- a/pkgs/tools/system/stress/default.nix
+++ b/pkgs/tools/system/stress/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     description = "Simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system";
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "stress";
   };
 }
diff --git a/pkgs/tools/system/stressapptest/default.nix b/pkgs/tools/system/stressapptest/default.nix
index 2a1bc008e18c5..3243db0d0076c 100644
--- a/pkgs/tools/system/stressapptest/default.nix
+++ b/pkgs/tools/system/stressapptest/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
     platforms = platforms.unix;
+    mainProgram = "stressapptest";
   };
 }
diff --git a/pkgs/tools/system/supercronic/default.nix b/pkgs/tools/system/supercronic/default.nix
new file mode 100644
index 0000000000000..745202ce15c52
--- /dev/null
+++ b/pkgs/tools/system/supercronic/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, python3
+, bash
+, coreutils
+}:
+
+buildGoModule rec {
+  pname = "supercronic";
+  version = "0.2.29";
+
+  src = fetchFromGitHub {
+    owner = "aptible";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-cYKVeWZEjWV5j68aTpBOE/z+5QcMBh5ovyXoV/u80o4=";
+  };
+
+  vendorHash = "sha256-uQFceysbRdcSaFvdfdFcJX6yzPWE26YYiVzAEISQeCc=";
+
+  excludedPackages = [ "cronexpr/cronexpr" ];
+
+  nativeCheckInputs = [ python3 bash coreutils ];
+
+  postConfigure = ''
+    # There are tests that set the shell to various paths
+    substituteInPlace cron/cron_test.go --replace /bin/sh ${bash}/bin/sh
+    substituteInPlace cron/cron_test.go --replace /bin/false ${coreutils}/bin/false
+  '';
+
+  meta = with lib; {
+    description = "Cron tool designed for use in containers";
+    homepage = "https://github.com/aptible/supercronic";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nasageek ];
+    mainProgram = "supercronic";
+  };
+}
diff --git a/pkgs/tools/system/symlinks/default.nix b/pkgs/tools/system/symlinks/default.nix
index 8d1213c0afefa..3a40295425597 100644
--- a/pkgs/tools/system/symlinks/default.nix
+++ b/pkgs/tools/system/symlinks/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ckauhaus ];
     platforms = platforms.unix;
+    mainProgram = "symlinks";
   };
 }
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
deleted file mode 100644
index b19cbde0aa5f6..0000000000000
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ lib, stdenv, fetchurl, openssl, libcap, curl, which
-, eventlog, pkg-config, glib, python3, systemd, perl
-, riemann_c_client, protobufc, pcre, libnet
-, json_c, libuuid, libivykis, mongoc, rabbitmq-c
-, libesmtp
-}:
-
-stdenv.mkDerivation rec {
-  pname = "syslog-ng";
-  version = "3.38.1";
-
-  src = fetchurl {
-    url = "https://github.com/${pname}/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-VJH2htC4KbabLg/A1mpi9RmRqvruAFR1v6OPqzmUQfc=";
-  };
-
-  nativeBuildInputs = [ pkg-config which ];
-
-  buildInputs = [
-    libcap
-    curl
-    openssl
-    eventlog
-    glib
-    perl
-    python3
-    systemd
-    riemann_c_client
-    protobufc
-    pcre
-    libnet
-    json_c
-    libuuid
-    libivykis
-    mongoc
-    rabbitmq-c
-    libesmtp
-  ];
-
-  configureFlags = [
-    "--enable-manpages"
-    "--enable-dynamic-linking"
-    "--enable-systemd"
-    "--enable-smtp"
-    "--with-ivykis=system"
-    "--with-librabbitmq-client=system"
-    "--with-mongoc=system"
-    "--with-jsonc=system"
-    "--with-systemd-journal=system"
-    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
-    "--without-compile-date"
-  ];
-
-  outputs = [ "out" "man" ];
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    homepage = "https://www.syslog-ng.com";
-    description = "Next-generation syslogd with advanced networking and filtering capabilities";
-    license = with licenses; [ gpl2Plus lgpl21Plus ];
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/system/systemd-journal2gelf/default.nix b/pkgs/tools/system/systemd-journal2gelf/default.nix
index ef7f5b039cfb7..cb319fbd52d82 100644
--- a/pkgs/tools/system/systemd-journal2gelf/default.nix
+++ b/pkgs/tools/system/systemd-journal2gelf/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/parse-nl/SystemdJournal2Gelf";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fadenb fpletz ];
+    mainProgram = "SystemdJournal2Gelf";
   };
 }
diff --git a/pkgs/tools/system/systeroid/default.nix b/pkgs/tools/system/systeroid/default.nix
index dca6ee3f46803..4cedd6db8a17b 100644
--- a/pkgs/tools/system/systeroid/default.nix
+++ b/pkgs/tools/system/systeroid/default.nix
@@ -35,6 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/orhun/systeroid";
     changelog = "https://github.com/orhun/systeroid/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ figsoda ];
+    maintainers = with maintainers; [ figsoda matthiasbeyer ];
   };
 }
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
index 9f667bb4203ec..193287b022d2a 100644
--- a/pkgs/tools/system/thermald/default.nix
+++ b/pkgs/tools/system/thermald/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "thermald";
   };
 }
diff --git a/pkgs/tools/system/thinkfan/default.nix b/pkgs/tools/system/thinkfan/default.nix
index dc6920a97bdce..17887cc7bdf58 100644
--- a/pkgs/tools/system/thinkfan/default.nix
+++ b/pkgs/tools/system/thinkfan/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/vmatare/thinkfan";
     maintainers = with lib.maintainers; [ domenkozar rnhmjoj ];
     platforms = lib.platforms.linux;
+    mainProgram = "thinkfan";
   };
 }
diff --git a/pkgs/tools/system/tm/default.nix b/pkgs/tools/system/tm/default.nix
index 19ade9b929cb0..129630596373a 100644
--- a/pkgs/tools/system/tm/default.nix
+++ b/pkgs/tools/system/tm/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ viric ];
     platforms = platforms.all;
+    mainProgram = "tm";
   };
 }
diff --git a/pkgs/tools/system/tp-auto-kbbl/default.nix b/pkgs/tools/system/tp-auto-kbbl/default.nix
index fa257fc2a361c..60bd8dcc64109 100644
--- a/pkgs/tools/system/tp-auto-kbbl/default.nix
+++ b/pkgs/tools/system/tp-auto-kbbl/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ sebtm ];
     platforms = platforms.linux;
+    mainProgram = "tp-auto-kbbl";
   };
 }
diff --git a/pkgs/tools/system/tree/default.nix b/pkgs/tools/system/tree/default.nix
index cb52cbdccb386..191f9466f3394 100644
--- a/pkgs/tools/system/tree/default.nix
+++ b/pkgs/tools/system/tree/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    homepage = "http://mama.indstate.edu/users/ice/tree/";
+    homepage = "https://oldmanprogrammer.net/source.php?dir=projects/tree";
     description = "Command to produce a depth indented directory listing";
     license = licenses.gpl2;
     longDescription = ''
diff --git a/pkgs/tools/system/ts/default.nix b/pkgs/tools/system/ts/default.nix
index df19955b6076e..843249f911e8f 100644
--- a/pkgs/tools/system/ts/default.nix
+++ b/pkgs/tools/system/ts/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ viric ];
     platforms = platforms.all;
+    mainProgram = "ts";
   };
 }
diff --git a/pkgs/tools/system/ttop/default.nix b/pkgs/tools/system/ttop/default.nix
deleted file mode 100644
index b108638ca7a90..0000000000000
--- a/pkgs/tools/system/ttop/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, nimPackages, fetchFromGitHub, testers }:
-
-nimPackages.buildNimPackage (finalAttrs: {
-  pname = "ttop";
-  version = "1.2.5";
-  nimBinOnly = true;
-
-  src = fetchFromGitHub {
-    owner = "inv2004";
-    repo = "ttop";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-GMGGkpBX+pmZ+TSDRs2N3H4Bwa3oXSDo9vM192js7Ww=";
-  };
-
-  buildInputs = with nimPackages; [ asciigraph illwill jsony parsetoml zippy ];
-
-  nimFlags = [
-    "-d:NimblePkgVersion=${finalAttrs.version}"
-  ];
-
-  passthru.tests = {
-    version = testers.testVersion {
-      package = finalAttrs.finalPackage;
-    };
-  };
-
-  meta = with lib; {
-    description = "Top-like system monitoring tool";
-    homepage = "https://github.com/inv2004/ttop";
-    changelog = "https://github.com/inv2004/ttop/releases/tag/${finalAttrs.src.rev}";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ figsoda sikmir ];
-  };
-})
diff --git a/pkgs/tools/system/tuptime/default.nix b/pkgs/tools/system/tuptime/default.nix
index b49063d680934..d92f65f78ae2c 100644
--- a/pkgs/tools/system/tuptime/default.nix
+++ b/pkgs/tools/system/tuptime/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tuptime";
-  version = "5.2.2";
+  version = "5.2.3";
 
   src = fetchFromGitHub {
     owner = "rfmoz";
     repo = "tuptime";
     rev = version;
-    sha256 = "sha256-YrZP2sovAwwfDBoKoobgkf0+7RmYFUtrV9jfBmDsNL8=";
+    sha256 = "sha256-kR+Pi7/nsRzmmvibp95wjj8/B/Q6FCDSn2A7vJ3sM94=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.evils ];
+    mainProgram = "tuptime";
   };
 }
diff --git a/pkgs/tools/system/ufiformat/default.nix b/pkgs/tools/system/ufiformat/default.nix
index 5b778c5230e3e..52204a073ae78 100644
--- a/pkgs/tools/system/ufiformat/default.nix
+++ b/pkgs/tools/system/ufiformat/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.amarshall ];
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
+    mainProgram = "ufiformat";
   };
 }
diff --git a/pkgs/tools/system/undaemonize/default.nix b/pkgs/tools/system/undaemonize/default.nix
index 50ae366d10bd4..83007db867dc3 100644
--- a/pkgs/tools/system/undaemonize/default.nix
+++ b/pkgs/tools/system/undaemonize/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.canndrew ];
     platforms = lib.platforms.linux;
+    mainProgram = "undaemonize";
   };
 }
 
diff --git a/pkgs/tools/system/vbetool/default.nix b/pkgs/tools/system/vbetool/default.nix
index ebdeae60c3868..8cc7b338ca96a 100644
--- a/pkgs/tools/system/vbetool/default.nix
+++ b/pkgs/tools/system/vbetool/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     license = licenses.gpl2;
+    mainProgram = "vbetool";
   };
 }
diff --git a/pkgs/tools/system/which/default.nix b/pkgs/tools/system/which/default.nix
index 82316541f4c73..831791a2f8be6 100644
--- a/pkgs/tools/system/which/default.nix
+++ b/pkgs/tools/system/which/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/which/which-${version}.tar.gz";
-    sha256 = "1bgafvy3ypbhhfznwjv1lxmd6mci3x1byilnnkc7gcr486wlb8pl";
+    hash = "sha256-9KJFuUEks3fYtJZGv0IfkVXTaqdhS26/g3BdP/x26q0=";
   };
 
   strictDeps = true;
@@ -19,10 +19,11 @@ stdenv.mkDerivation rec {
     lib.optional stdenv.hostPlatform.is32bit "-D_FILE_OFFSET_BITS=64"
   );
 
-  meta = with lib; {
+  meta = {
     homepage = "https://www.gnu.org/software/which/";
     description = "Shows the full path of (shell) commands";
-    platforms = platforms.all;
-    license = licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "which";
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/system/wsysmon/default.nix b/pkgs/tools/system/wsysmon/default.nix
index 96c3cc30587ee..8f03fdf90ccd8 100644
--- a/pkgs/tools/system/wsysmon/default.nix
+++ b/pkgs/tools/system/wsysmon/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = [ licenses.mit ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ totoroot ];
+    mainProgram = "WSysMon";
   };
 }
diff --git a/pkgs/tools/system/xe/default.nix b/pkgs/tools/system/xe/default.nix
index 133c7d8736194..2a8231b7fb039 100644
--- a/pkgs/tools/system/xe/default.nix
+++ b/pkgs/tools/system/xe/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     platforms = platforms.all;
     maintainers = with maintainers; [ ];
+    mainProgram = "xe";
   };
 }
diff --git a/pkgs/tools/system/yeshup/default.nix b/pkgs/tools/system/yeshup/default.nix
index 113d17b09b537..723021d0ee74a 100644
--- a/pkgs/tools/system/yeshup/default.nix
+++ b/pkgs/tools/system/yeshup/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.cc-by-sa-30; # From Stackoverflow answer
     maintainers = with maintainers; [ obadz ];
+    mainProgram = "yeshup";
   };
 }
diff --git a/pkgs/tools/system/zenith/Cargo.lock b/pkgs/tools/system/zenith/Cargo.lock
index 401042eea3260..0c7828d6a445d 100644
--- a/pkgs/tools/system/zenith/Cargo.lock
+++ b/pkgs/tools/system/zenith/Cargo.lock
@@ -9,13 +9,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
-name = "aho-corasick"
-version = "0.7.15"
+name = "android-tzdata"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
-dependencies = [
- "memchr",
-]
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
 
 [[package]]
 name = "android_system_properties"
@@ -27,36 +24,27 @@ dependencies = [
 ]
 
 [[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "async-channel"
-version = "1.7.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
 dependencies = [
  "concurrent-queue",
- "event-listener",
+ "event-listener 2.5.3",
  "futures-core",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.4.1"
+version = "1.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
+checksum = "2c1da3ae8dabd9c00f453a329dfe1fb28da3c0a72e2478cdcd93171740c20499"
 dependencies = [
+ "async-lock",
  "async-task",
  "concurrent-queue",
- "fastrand",
+ "fastrand 2.0.1",
  "futures-lite",
- "once_cell",
  "slab",
 ]
 
@@ -74,97 +62,101 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "1.10.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
  "async-lock",
  "autocfg",
+ "cfg-if 1.0.0",
  "concurrent-queue",
  "futures-lite",
- "libc",
  "log",
  "parking",
  "polling",
+ "rustix 0.37.25",
  "slab",
  "socket2",
  "waker-fn",
- "winapi",
 ]
 
 [[package]]
 name = "async-lock"
-version = "2.6.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
 dependencies = [
- "event-listener",
- "futures-lite",
+ "event-listener 2.5.3",
 ]
 
 [[package]]
 name = "async-net"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f"
+checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f"
 dependencies = [
  "async-io",
- "autocfg",
  "blocking",
  "futures-lite",
 ]
 
 [[package]]
 name = "async-process"
-version = "1.5.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
 dependencies = [
  "async-io",
- "autocfg",
+ "async-lock",
+ "async-signal",
  "blocking",
  "cfg-if 1.0.0",
- "event-listener",
+ "event-listener 3.0.0",
  "futures-lite",
- "libc",
- "once_cell",
- "signal-hook",
- "winapi",
+ "rustix 0.38.19",
+ "windows-sys",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2a5415b7abcdc9cd7d63d6badba5288b2ca017e3fbd4173b8f405449f1a2399"
+dependencies = [
+ "async-io",
+ "async-lock",
+ "atomic-waker",
+ "cfg-if 1.0.0",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.19",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.3.0"
+version = "4.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+checksum = "b9441c6b2fe128a7c2bf680a44c34d0df31ce09e5b7e401fcca3faa483dbc921"
 
 [[package]]
 name = "async-trait"
-version = "0.1.58"
+version = "0.1.73"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c"
+checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "atomic-waker"
-version = "1.0.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "autocfg"
@@ -183,15 +175,13 @@ dependencies = [
 
 [[package]]
 name = "bindgen"
-version = "0.59.2"
+version = "0.63.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8"
+checksum = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cexpr",
  "clang-sys",
- "clap",
- "env_logger 0.9.1",
  "lazy_static",
  "lazycell",
  "log",
@@ -201,6 +191,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
+ "syn 1.0.109",
  "which",
 ]
 
@@ -211,30 +202,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
 name = "blocking"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc"
+checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
 dependencies = [
  "async-channel",
+ "async-lock",
  "async-task",
- "atomic-waker",
- "fastrand",
+ "fastrand 2.0.1",
+ "futures-io",
  "futures-lite",
- "once_cell",
+ "piper",
+ "tracing",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.11.1"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "byte-unit"
-version = "4.0.17"
+version = "4.0.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "581ad4b3d627b0c09a0ccb2912148f839acaca0b93cf54cbe42b6c674e86079c"
+checksum = "da78b32057b8fdfc352504708feeba7216dcd65a2c9ab02978cbd288d1279b6c"
 dependencies = [
  "serde",
  "utf8-width",
@@ -242,15 +241,9 @@ dependencies = [
 
 [[package]]
 name = "bytes"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
-
-[[package]]
-name = "cache-padded"
-version = "1.2.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "cassowary"
@@ -260,9 +253,12 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
 
 [[package]]
 name = "cc"
-version = "1.0.74"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cexpr"
@@ -287,24 +283,23 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.22"
+version = "0.4.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
 dependencies = [
+ "android-tzdata",
  "iana-time-zone",
  "js-sys",
- "num-integer",
  "num-traits",
- "time",
  "wasm-bindgen",
- "winapi",
+ "windows-targets",
 ]
 
 [[package]]
 name = "clang-sys"
-version = "1.4.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
 dependencies = [
  "glob",
  "libc",
@@ -312,47 +307,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim 0.8.0",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "codespan-reporting"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-dependencies = [
- "termcolor",
- "unicode-width",
-]
-
-[[package]]
 name = "concurrent-queue"
-version = "1.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
-dependencies = [
- "cache-padded",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.7.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
+checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
 dependencies = [
- "core-foundation-sys 0.7.0",
- "libc",
+ "crossbeam-utils",
 ]
 
 [[package]]
@@ -361,21 +321,15 @@ version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
 dependencies = [
- "core-foundation-sys 0.8.3",
+ "core-foundation-sys",
  "libc",
 ]
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.3"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 
 [[package]]
 name = "crc32fast"
@@ -387,20 +341,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
-dependencies = [
- "cfg-if 1.0.0",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-deque"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
  "cfg-if 1.0.0",
  "crossbeam-epoch",
@@ -409,33 +353,33 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.11"
+version = "0.9.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
  "autocfg",
  "cfg-if 1.0.0",
  "crossbeam-utils",
- "memoffset",
+ "memoffset 0.9.0",
  "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.12"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 dependencies = [
  "cfg-if 1.0.0",
 ]
 
 [[package]]
 name = "crossterm"
-version = "0.25.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67"
+checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.0",
  "crossterm_winapi",
  "libc",
  "mio",
@@ -447,58 +391,14 @@ dependencies = [
 
 [[package]]
 name = "crossterm_winapi"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
 dependencies = [
  "winapi",
 ]
 
 [[package]]
-name = "cxx"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a"
-dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
-]
-
-[[package]]
-name = "cxx-build"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827"
-dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
- "proc-macro2",
- "quote",
- "scratch",
- "syn",
-]
-
-[[package]]
-name = "cxxbridge-flags"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a"
-
-[[package]]
-name = "cxxbridge-macro"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
 name = "darling"
 version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -518,8 +418,8 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim 0.9.3",
- "syn",
+ "strsim",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -530,7 +430,7 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
 dependencies = [
  "darling_core",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -582,30 +482,27 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "either"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "env_logger"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272"
+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
 dependencies = [
- "atty",
- "humantime",
  "log",
- "regex",
- "termcolor",
 ]
 
 [[package]]
-name = "env_logger"
-version = "0.10.0"
+name = "errno"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
 dependencies = [
- "log",
+ "libc",
+ "windows-sys",
 ]
 
 [[package]]
@@ -615,19 +512,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29e56284f00d94c1bc7fd3c77027b4623c88c1f53d8d2394c6199f2921dea325"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "fastrand"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
 dependencies = [
  "instant",
 ]
 
 [[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
 name = "flate2"
-version = "1.0.24"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -641,9 +555,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "futures"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -656,9 +570,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -666,15 +580,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
+checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -683,17 +597,17 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
 
 [[package]]
 name = "futures-lite"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
  "futures-core",
  "futures-io",
  "memchr",
@@ -704,26 +618,26 @@ dependencies = [
 
 [[package]]
 name = "futures-macro"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
 
 [[package]]
 name = "futures-task"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
 
 [[package]]
 name = "futures-timer"
@@ -733,9 +647,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
 
 [[package]]
 name = "futures-util"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -751,20 +665,20 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
 name = "glob"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "gumdrop"
@@ -783,10 +697,16 @@ checksum = "729f9bd3449d77e7831a18abfb7ba2f99ee813dfd15b8c2167c9a54ba20aa99d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
 name = "heim"
 version = "0.1.0-rc.1"
 source = "git+https://github.com/bvaisvil/heim.git?branch=zenith_changes#509c858dce58e2de0b1b772170ee2be21a58149b"
@@ -809,13 +729,13 @@ version = "0.1.0-rc.1"
 source = "git+https://github.com/bvaisvil/heim.git?branch=zenith_changes#509c858dce58e2de0b1b772170ee2be21a58149b"
 dependencies = [
  "cfg-if 1.0.0",
- "core-foundation 0.9.3",
+ "core-foundation",
  "futures-core",
  "futures-util",
  "lazy_static",
  "libc",
  "mach",
- "nix",
+ "nix 0.23.2",
  "pin-utils",
  "uom 0.31.1",
  "winapi",
@@ -844,9 +764,9 @@ name = "heim-disk"
 version = "0.1.0-rc.1"
 source = "git+https://github.com/bvaisvil/heim.git?branch=zenith_changes#509c858dce58e2de0b1b772170ee2be21a58149b"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if 1.0.0",
- "core-foundation 0.9.3",
+ "core-foundation",
  "heim-common",
  "heim-runtime",
  "libc",
@@ -891,13 +811,13 @@ name = "heim-net"
 version = "0.1.0-rc.1"
 source = "git+https://github.com/bvaisvil/heim.git?branch=zenith_changes#509c858dce58e2de0b1b772170ee2be21a58149b"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if 1.0.0",
  "heim-common",
  "heim-runtime",
  "libc",
  "macaddr",
- "nix",
+ "nix 0.23.2",
  "widestring",
  "winapi",
 ]
@@ -961,41 +881,40 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
-name = "humantime"
-version = "2.1.0"
+name = "home"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+dependencies = [
+ "windows-sys",
+]
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.53"
+version = "0.1.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
 dependencies = [
  "android_system_properties",
- "core-foundation-sys 0.8.3",
+ "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "winapi",
+ "windows",
 ]
 
 [[package]]
 name = "iana-time-zone-haiku"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
 dependencies = [
- "cxx",
- "cxx-build",
+ "cc",
 ]
 
 [[package]]
@@ -1005,6 +924,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
+name = "indoc"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+
+[[package]]
 name = "instant"
 version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1014,10 +939,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "js-sys"
-version = "0.3.60"
+version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1036,34 +981,37 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.137"
+version = "0.2.149"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
 
 [[package]]
 name = "libloading"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
 dependencies = [
  "cfg-if 1.0.0",
  "winapi",
 ]
 
 [[package]]
-name = "link-cplusplus"
-version = "1.0.7"
+name = "linux-raw-sys"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
-dependencies = [
- "cc",
-]
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
 
 [[package]]
 name = "linux-taskstats"
-version = "0.2.0"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5fe0070f80bc563d4fc21f2b064eb314a944ad167edb64dc76eb37fa8826401"
+checksum = "60fdd14efd42f7d3383f76d5da9cbc1056ac6497be7352eadfabef14a5d699c0"
 dependencies = [
  "bindgen",
  "libc",
@@ -1074,9 +1022,9 @@ dependencies = [
 
 [[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1084,12 +1032,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if 1.0.0",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "macaddr"
@@ -1107,6 +1052,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "mach2"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "memchr"
 version = "2.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1122,6 +1076,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
 name = "minimal-lexical"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1129,30 +1092,30 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.5.4"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.5"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
 dependencies = [
  "libc",
  "log",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
  "windows-sys",
 ]
 
 [[package]]
 name = "netlink-sys"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92b654097027250401127914afb37cb1f311df6610a9891ff07a757e94199027"
+checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
 dependencies = [
  "bytes",
  "libc",
@@ -1161,22 +1124,33 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.23.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
+checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cc",
  "cfg-if 1.0.0",
  "libc",
- "memoffset",
+ "memoffset 0.6.5",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if 1.0.0",
+ "libc",
 ]
 
 [[package]]
 name = "nom"
-version = "7.1.1"
+version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
 dependencies = [
  "memchr",
  "minimal-lexical",
@@ -1193,13 +1167,13 @@ dependencies = [
 
 [[package]]
 name = "num-derive"
-version = "0.3.3"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
+checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -1225,30 +1199,20 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
-name = "num_cpus"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
 name = "nvml-wrapper"
-version = "0.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "288bd66a5a56d8c97b178412b328419b3fdec261c0cbc4628ddc49cc16db8fc6"
+checksum = "7cd21b9f5a1cce3c3515c9ffa85f5c7443e07162dae0ccf4339bb7ca38ad3454"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "libloading",
  "nvml-wrapper-sys",
  "static_assertions",
@@ -1258,33 +1222,33 @@ dependencies = [
 
 [[package]]
 name = "nvml-wrapper-sys"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3d606d4edf766969f16828ec047ca9aa96652a17bd353dc0613bfaca49b61d6"
+checksum = "c961a2ea9e91c59a69b78e69090f6f5b867bb46c0c56de9482da232437c4987e"
 dependencies = [
  "libloading",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.16.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "ordered-float"
-version = "2.10.0"
+version = "2.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
+checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
 name = "parking"
-version = "2.0.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
 
 [[package]]
 name = "parking_lot"
@@ -1298,18 +1262,24 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.4"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0"
+checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
- "redox_syscall",
+ "redox_syscall 0.3.5",
  "smallvec",
- "windows-sys",
+ "windows-targets",
 ]
 
 [[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
 name = "peeking_take_while"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1317,9 +1287,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -1328,6 +1298,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
 name = "platforms"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1335,67 +1316,82 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325"
 
 [[package]]
 name = "polling"
-version = "2.4.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab4609a838d88b73d8238967b60dd115cc08d38e2bbaf51ee1e4b695f89122e2"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
  "autocfg",
+ "bitflags 1.3.2",
  "cfg-if 1.0.0",
+ "concurrent-queue",
  "libc",
  "log",
- "wepoll-ffi",
- "winapi",
+ "pin-project-lite",
+ "windows-sys",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.47"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.21"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
+name = "ratatui"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad"
+dependencies = [
+ "bitflags 2.4.0",
+ "cassowary",
+ "crossterm",
+ "indoc",
+ "itertools",
+ "paste",
+ "strum",
+ "unicode-segmentation",
+ "unicode-width",
+]
+
+[[package]]
 name = "raw-cpuid"
 version = "9.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1733f6f80c9c24268736a501cd00d41a9849b4faa7a9f9334c096e5d10553206"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "rayon"
-version = "1.5.3"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
 dependencies = [
- "autocfg",
- "crossbeam-deque",
  "either",
  "rayon-core",
 ]
 
 [[package]]
 name = "rayon-core"
-version = "1.9.3"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
@@ -1404,7 +1400,16 @@ version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags 1.3.2",
 ]
 
 [[package]]
@@ -1414,26 +1419,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
 dependencies = [
  "getrandom",
- "redox_syscall",
+ "redox_syscall 0.2.16",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.4.6"
+version = "1.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"
+checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
 dependencies = [
- "aho-corasick",
- "memchr",
  "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.27"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
 name = "rustc-hash"
@@ -1442,48 +1445,75 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
-name = "scopeguard"
-version = "1.1.0"
+name = "rustix"
+version = "0.37.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys 0.3.8",
+ "windows-sys",
+]
 
 [[package]]
-name = "scratch"
-version = "1.0.2"
+name = "rustix"
+version = "0.38.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"
+dependencies = [
+ "bitflags 2.4.0",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.10",
+ "windows-sys",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.147"
+version = "1.0.189"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965"
+checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.147"
+version = "1.0.189"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852"
+checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
 
 [[package]]
 name = "signal-hook"
-version = "0.3.14"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
 dependencies = [
  "libc",
  "signal-hook-registry",
@@ -1502,33 +1532,33 @@ dependencies = [
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "slab"
-version = "0.4.7"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
 
 [[package]]
 name = "smol"
-version = "1.2.5"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cf3b5351f3e783c1d79ab5fc604eeed8b8ae9abd36b166e8b87a089efd85e4"
+checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1"
 dependencies = [
  "async-channel",
  "async-executor",
@@ -1539,14 +1569,13 @@ dependencies = [
  "async-process",
  "blocking",
  "futures-lite",
- "once_cell",
 ]
 
 [[package]]
 name = "socket2"
-version = "0.4.7"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
 dependencies = [
  "libc",
  "winapi",
@@ -1554,18 +1583,18 @@ dependencies = [
 
 [[package]]
 name = "starship-battery"
-version = "0.7.9"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3336198ad004af4447ae69be4f4e562c26814570f8f0c1e37858405a294e015d"
+checksum = "36335b5b5ba5328b4ad2024807423010b7f533a7e5315dfd9df0acbc9d2c550e"
 dependencies = [
  "cfg-if 1.0.0",
- "core-foundation 0.7.0",
+ "core-foundation",
  "lazycell",
  "libc",
- "mach",
- "nix",
+ "mach2",
+ "nix 0.26.4",
  "num-traits",
- "uom 0.30.0",
+ "uom 0.35.0",
  "winapi",
 ]
 
@@ -1577,21 +1606,48 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "strsim"
-version = "0.8.0"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
 
 [[package]]
-name = "strsim"
-version = "0.9.3"
+name = "strum"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.25.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.38",
+]
 
 [[package]]
 name = "syn"
-version = "1.0.103"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1613,108 +1669,82 @@ dependencies = [
 ]
 
 [[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
 name = "thiserror"
-version = "1.0.37"
+version = "1.0.49"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.37"
+version = "1.0.49"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.38",
 ]
 
 [[package]]
-name = "time"
-version = "0.1.44"
+name = "tracing"
+version = "0.1.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
+checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9"
 dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
+ "pin-project-lite",
+ "tracing-core",
 ]
 
 [[package]]
-name = "tui"
-version = "0.19.0"
+name = "tracing-core"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1"
-dependencies = [
- "bitflags",
- "cassowary",
- "crossterm",
- "unicode-segmentation",
- "unicode-width",
-]
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 
 [[package]]
 name = "typenum"
-version = "1.15.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.5"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.0"
+version = "1.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "uom"
-version = "0.30.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e76503e636584f1e10b9b3b9498538279561adcef5412927ba00c2b32c4ce5ed"
+checksum = "b1ee6bfd0a27bf614353809a035cf6880b74239ec6c5e39a7b2860ca16809137"
 dependencies = [
+ "num-rational",
  "num-traits",
  "typenum",
 ]
 
 [[package]]
 name = "uom"
-version = "0.31.1"
+version = "0.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1ee6bfd0a27bf614353809a035cf6880b74239ec6c5e39a7b2860ca16809137"
+checksum = "8362194c7a9845a7a7f3562173d6e1da3f24f7132018cb78fe77a5b4474187b2"
 dependencies = [
- "num-rational",
  "num-traits",
  "typenum",
 ]
@@ -1736,22 +1766,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
 
 [[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
 name = "waker-fn"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
-
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "wasi"
@@ -1761,9 +1779,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
 dependencies = [
  "cfg-if 1.0.0",
  "wasm-bindgen-macro",
@@ -1771,24 +1789,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.38",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -1796,41 +1814,33 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.38",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
-
-[[package]]
-name = "wepoll-ffi"
-version = "0.1.2"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
-dependencies = [
- "cc",
-]
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
 name = "which"
-version = "4.3.0"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
 dependencies = [
  "either",
- "libc",
+ "home",
  "once_cell",
+ "rustix 0.38.19",
 ]
 
 [[package]]
@@ -1856,25 +1866,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
-name = "winapi-util"
-version = "0.1.5"
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
 dependencies = [
- "winapi",
+ "windows-targets",
 ]
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-sys"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
 
 [[package]]
-name = "windows-sys"
-version = "0.42.0"
+name = "windows-targets"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -1887,45 +1906,45 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "wrapcenum-derive"
@@ -1936,7 +1955,7 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1948,7 +1967,7 @@ dependencies = [
  "chrono",
  "crossterm",
  "dirs-next",
- "env_logger 0.10.0",
+ "env_logger",
  "flate2",
  "futures",
  "gumdrop",
@@ -1959,12 +1978,12 @@ dependencies = [
  "num-derive",
  "num-traits",
  "nvml-wrapper",
+ "ratatui",
  "serde",
  "serde_derive",
  "signal-hook",
  "starship-battery",
  "sysinfo",
- "tui",
  "unicode-width",
  "users",
 ]
diff --git a/pkgs/tools/system/zenith/default.nix b/pkgs/tools/system/zenith/default.nix
index 4318ba492aeec..af8231e96c6d6 100644
--- a/pkgs/tools/system/zenith/default.nix
+++ b/pkgs/tools/system/zenith/default.nix
@@ -11,13 +11,13 @@ assert nvidiaSupport -> stdenv.isLinux;
 
 rustPlatform.buildRustPackage rec {
   pname = "zenith";
-  version = "0.14.0";
+  version = "0.14.0-unstable-2023-11-21";
 
   src = fetchFromGitHub {
     owner = "bvaisvil";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-GrrdE9Ih8x8N2HN+1NfxfthfHbufLAT/Ac+ZZWW5Zg8=";
+    rev = "0ed09e6a68c1517b4d050f5e3163421718226040";
+    hash = "sha256-vw/ar2Qi06HxPfPsfcxtfRhMTqY4FCE+7tCfe9sLEv0=";
   };
 
   # remove cargo config so it can find the linker on aarch64-linux
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
       + lib.optionalString nvidiaSupport ", and NVIDIA GPU usage";
     homepage = "https://github.com/bvaisvil/zenith";
     license = licenses.mit;
-    maintainers = with maintainers; [ bbigras ];
+    maintainers = with maintainers; [ wegank ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/system/zfxtop/default.nix b/pkgs/tools/system/zfxtop/default.nix
index 0ffbeac5e638b..5c216c7ca0cbe 100644
--- a/pkgs/tools/system/zfxtop/default.nix
+++ b/pkgs/tools/system/zfxtop/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/ssleert/zfxtop";
     license = licenses.bsd2;
     maintainers = with maintainers; [ wozeparrot ];
+    mainProgram = "zfxtop";
   };
 }
diff --git a/pkgs/tools/system/zps/default.nix b/pkgs/tools/system/zps/default.nix
index f4003ed934d69..ab093d9e553bc 100644
--- a/pkgs/tools/system/zps/default.nix
+++ b/pkgs/tools/system/zps/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zps";
-  version = "1.2.8";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "zps";
     rev = version;
-    hash = "sha256-t0kVMrJn+eqUUD98pp3iIK28MoLwOplLk0sYgRJkO4c=";
+    hash = "sha256-t+y+m9cwngVlX5o7FQTI4FMj10bN0euH51DmAnOAvPc=";
   };
 
   nativeBuildInputs = [
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "zps";
   };
 }
diff --git a/pkgs/tools/system/zram-generator/Cargo.lock b/pkgs/tools/system/zram-generator/Cargo.lock
index 439161d7b4ae6..a9f1a95f44b0a 100644
--- a/pkgs/tools/system/zram-generator/Cargo.lock
+++ b/pkgs/tools/system/zram-generator/Cargo.lock
@@ -4,15 +4,15 @@ version = 3
 
 [[package]]
 name = "ahash"
-version = "0.4.7"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e"
+checksum = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289"
 
 [[package]]
 name = "anyhow"
-version = "1.0.68"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "autocfg"
@@ -27,10 +27,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
+[[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cfg-if"
@@ -44,7 +53,7 @@ version = "2.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "textwrap",
  "unicode-width",
 ]
@@ -69,6 +78,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
 name = "fasteval"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -76,24 +95,21 @@ checksum = "4f4cdac9e4065d7c48e30770f8665b8cef9a3a73a63a4056a33a5f395bc7cf75"
 
 [[package]]
 name = "fastrand"
-version = "1.8.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fs_extra"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -110,19 +126,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
 name = "libc"
-version = "0.2.139"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "liboverdrop"
@@ -134,13 +141,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "memoffset"
@@ -157,7 +167,7 @@ version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cc",
  "cfg-if",
  "libc",
@@ -182,18 +192,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.50"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.23"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -230,20 +240,11 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
@@ -257,10 +258,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustix"
+version = "0.38.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
 name = "syn"
-version = "1.0.107"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -269,16 +283,15 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.3.0"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
  "fastrand",
- "libc",
  "redox_syscall",
- "remove_dir_all",
- "winapi",
+ "rustix",
+ "windows-sys",
 ]
 
 [[package]]
@@ -292,15 +305,15 @@ dependencies = [
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.6"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "wasi"
@@ -309,26 +322,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
-name = "winapi"
-version = "0.3.9"
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
 dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
 ]
 
 [[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_x86_64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "zram-generator"
diff --git a/pkgs/tools/system/zram-generator/default.nix b/pkgs/tools/system/zram-generator/default.nix
index 81bf4082d5c14..3d55d7c19613e 100644
--- a/pkgs/tools/system/zram-generator/default.nix
+++ b/pkgs/tools/system/zram-generator/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, rust
 , rustPlatform
 , pkg-config
 , ronn
@@ -28,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   postPatch = ''
     cp ${./Cargo.lock} Cargo.lock
     substituteInPlace Makefile \
-      --replace 'target/$(BUILDTYPE)' 'target/${rust.toRustTargetSpec stdenv.hostPlatform}/$(BUILDTYPE)'
+      --replace 'target/$(BUILDTYPE)' 'target/${stdenv.hostPlatform.rust.rustcTargetSpec}/$(BUILDTYPE)'
     substituteInPlace src/generator.rs \
       --replace 'Command::new("systemd-detect-virt")' 'Command::new("${systemd}/bin/systemd-detect-virt")' \
       --replace 'Command::new("modprobe")' 'Command::new("${kmod}/bin/modprobe")'
diff --git a/pkgs/tools/system/zx/default.nix b/pkgs/tools/system/zx/default.nix
index 857661c31f2fd..1dec344ed3aaf 100644
--- a/pkgs/tools/system/zx/default.nix
+++ b/pkgs/tools/system/zx/default.nix
@@ -21,5 +21,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/google/zx";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ hlolli ];
+    mainProgram = "zx";
   };
 }
diff --git a/pkgs/tools/text/amber/default.nix b/pkgs/tools/text/amber/default.nix
index 1cd9e74f1943b..e4158b4bfc2d4 100644
--- a/pkgs/tools/text/amber/default.nix
+++ b/pkgs/tools/text/amber/default.nix
@@ -4,16 +4,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "amber";
-  version = "0.5.9";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mmgJCD7kJjvpxyagsoe5CSzqIEZcIiYMAMP3axRphv4=";
+    sha256 = "sha256-q0o2PQngbDLumck27V0bIiB35zesn55Y+MwK2GjNVWo=";
   };
 
-  cargoSha256 = "sha256-opRinhTmhZxpAwHNiVOLXL8boQf09Y1NXrWQ6HWQYQ0=";
+  cargoHash = "sha256-nBSgP30Izskq9RbhVIyqWzZgG5ZWHVdiukldw+Q0rco=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/pkgs/tools/text/ascii/default.nix b/pkgs/tools/text/ascii/default.nix
index f596c8d330d2d..b48d9d0cb4aec 100644
--- a/pkgs/tools/text/ascii/default.nix
+++ b/pkgs/tools/text/ascii/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ascii";
-  version = "3.18";
+  version = "3.19";
 
   src = fetchurl {
     url = "http://www.catb.org/~esr/ascii/${pname}-${version}.tar.gz";
-    sha256 = "0b87vy06s8s3a8q70pqavsbk4m4ff034sdml2xxa6qfsykaj513j";
+    sha256 = "sha256-+dou/tgvJFZY+VYeW3VoCecerw5adzWsW+uSTN2ppWA=";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/text/autocorrect/Cargo.lock b/pkgs/tools/text/autocorrect/Cargo.lock
index 82fb056857c2a..5e272adb048d7 100644
--- a/pkgs/tools/text/autocorrect/Cargo.lock
+++ b/pkgs/tools/text/autocorrect/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.5"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -34,9 +34,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
 name = "anstream"
-version = "0.5.0"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
+checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -48,36 +48,36 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "2.1.0"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -88,7 +88,7 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "autocorrect"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
  "autocorrect-derive 0.3.0",
  "criterion",
@@ -109,9 +109,9 @@ dependencies = [
 
 [[package]]
 name = "autocorrect"
-version = "2.8.5"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2aa23c243abf88a533e514d8e5455e668daa3a8ca93061d8eb7f22014d7ad1a"
+checksum = "b426e7dbc9997d772eeb5436cbb85e95136fdf7835a8f05085b811e5482ebd49"
 dependencies = [
  "autocorrect-derive 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "diff",
@@ -129,9 +129,9 @@ dependencies = [
 
 [[package]]
 name = "autocorrect-cli"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "clap",
  "ignore",
  "lazy_static",
@@ -166,17 +166,17 @@ dependencies = [
 
 [[package]]
 name = "autocorrect-java"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "jni",
 ]
 
 [[package]]
 name = "autocorrect-node"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "autocorrect-cli",
  "napi",
  "napi-build",
@@ -185,25 +185,25 @@ dependencies = [
 
 [[package]]
 name = "autocorrect-py"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "pyo3",
 ]
 
 [[package]]
 name = "autocorrect-rb"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocorrect 2.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "magnus",
 ]
 
 [[package]]
 name = "autocorrect-wasm"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "serde",
  "serde_json",
  "wasm-bindgen",
@@ -226,17 +226,17 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "bindgen"
-version = "0.66.1"
+version = "0.69.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
+checksum = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -247,7 +247,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -258,9 +258,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "block-buffer"
@@ -273,9 +273,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.6.2"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"
+checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
 dependencies = [
  "memchr",
  "serde",
@@ -364,14 +364,14 @@ checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
 dependencies = [
  "glob",
  "libc",
- "libloading",
+ "libloading 0.7.4",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.3"
+version = "4.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6"
+checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -379,9 +379,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.2"
+version = "4.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
+checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
 dependencies = [
  "anstream",
  "anstyle",
@@ -391,21 +391,21 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.4.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "colorchoice"
@@ -445,10 +445,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
 dependencies = [
  "libc",
 ]
@@ -499,16 +515,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-deque"
 version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -553,12 +559,12 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f34ba9a9bcb8645379e9de8cb3ecfcf4d1c85ba66d90deb3259206fa5aa193b"
+checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
 dependencies = [
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -606,48 +612,37 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "fastrand"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "filetime"
-version = "0.2.22"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -661,66 +656,54 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
 dependencies = [
  "futures-core",
 ]
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.33",
-]
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
 dependencies = [
  "futures-core",
  "futures-io",
- "futures-macro",
  "futures-task",
  "memchr",
  "pin-project-lite",
@@ -739,10 +722,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "getrandom"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -752,22 +746,22 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
  "aho-corasick",
  "bstr",
- "fnv",
  "log",
- "regex",
+ "regex-automata",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
 dependencies = [
  "bytes",
  "fnv",
@@ -775,7 +769,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 1.9.3",
+ "indexmap",
  "slab",
  "tokio",
  "tokio-util",
@@ -790,15 +784,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
@@ -808,15 +796,15 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -825,9 +813,9 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
  "http",
@@ -863,7 +851,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "tokio",
  "tower-service",
  "tracing",
@@ -872,9 +860,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.24.1"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
  "http",
@@ -886,9 +874,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -896,39 +884,28 @@ dependencies = [
 
 [[package]]
 name = "ignore"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
+checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060"
 dependencies = [
+ "crossbeam-deque",
  "globset",
- "lazy_static",
  "log",
  "memchr",
- "regex",
+ "regex-automata",
  "same-file",
- "thread_local",
  "walkdir",
  "winapi-util",
 ]
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown",
 ]
 
 [[package]]
@@ -951,9 +928,9 @@ checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
@@ -977,9 +954,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jni"
@@ -1003,9 +980,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1024,9 +1001,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.151"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 
 [[package]]
 name = "libloading"
@@ -1039,16 +1016,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "libloading"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "linux-raw-sys"
-version = "0.4.7"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1084,9 +1071,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -1129,9 +1116,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "wasi",
@@ -1140,11 +1127,11 @@ dependencies = [
 
 [[package]]
 name = "napi"
-version = "2.13.3"
+version = "2.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd063c93b900149304e3ba96ce5bf210cd4f81ef5eb80ded0d100df3e85a3ac0"
+checksum = "1133249c46e92da921bafc8aba4912bf84d6c475f7625183772ed2d0844dc3a7"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "ctor",
  "napi-derive",
  "napi-sys",
@@ -1154,15 +1141,15 @@ dependencies = [
 
 [[package]]
 name = "napi-build"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "882a73d9ef23e8dc2ebbffb6a6ae2ef467c0f18ac10711e4cc59c5485d41df0e"
+checksum = "d4b4532cf86bfef556348ac65e561e3123879f0e7566cca6d43a6ff5326f13df"
 
 [[package]]
 name = "napi-derive"
-version = "2.13.0"
+version = "2.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da1c6a8fa84d549aa8708fcd062372bf8ec6e849de39016ab921067d21bde367"
+checksum = "2b0c0743f6a3f29c20851b8377f01d485a837e2bfa57dd56d519ab7ed98ae2af"
 dependencies = [
  "cfg-if",
  "convert_case",
@@ -1174,9 +1161,9 @@ dependencies = [
 
 [[package]]
 name = "napi-derive-backend"
-version = "1.0.52"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20bbc7c69168d06a848f925ec5f0e0997f98e8c8d4f2cc30157f0da51c009e17"
+checksum = "4869e4d80615fdab57dffe38c36a5bc62fae37352a00a35ee7aca1cea41b1bb3"
 dependencies = [
  "convert_case",
  "once_cell",
@@ -1189,11 +1176,11 @@ dependencies = [
 
 [[package]]
 name = "napi-sys"
-version = "2.2.3"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "166b5ef52a3ab5575047a9fe8d4a030cdd0f63c96f071cd6907674453b07bae3"
+checksum = "2503fa6af34dc83fb74888df8b22afe933b58d37daf7d80424b1c60c68196b8b"
 dependencies = [
- "libloading",
+ "libloading 0.8.1",
 ]
 
 [[package]]
@@ -1208,9 +1195,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -1242,9 +1229,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "oorandom"
@@ -1270,9 +1257,9 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1289,15 +1276,15 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
 dependencies = [
  "memchr",
  "thiserror",
@@ -1306,9 +1293,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
 dependencies = [
  "pest",
  "pest_generator",
@@ -1316,22 +1303,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
 dependencies = [
  "once_cell",
  "pest",
@@ -1390,9 +1377,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
 dependencies = [
  "unicode-ident",
 ]
@@ -1477,9 +1464,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
 dependencies = [
  "either",
  "rayon-core",
@@ -1487,30 +1474,28 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "rb-sys"
-version = "0.9.81"
+version = "0.9.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a57240b308b155b09dce81e32829966a99f52d1088b45957e4283e526c5317a1"
+checksum = "7e5b8d560b60790a3e60e56e73a8c7be88ac14e6af39fc82b5eca72c71753840"
 dependencies = [
  "rb-sys-build",
 ]
 
 [[package]]
 name = "rb-sys-build"
-version = "0.9.81"
+version = "0.9.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f24ce877a4c5d07f06f6aa6fec3ac95e4b357b9f73b0f5445d8cbb7266d410e8"
+checksum = "c2d2bfd00002007d7e9ad93d0397437933040caf452d260c26dbef5fd95ae1a6"
 dependencies = [
  "bindgen",
  "lazy_static",
@@ -1518,7 +1503,7 @@ dependencies = [
  "quote",
  "regex",
  "shell-words",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -1529,18 +1514,18 @@ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1550,9 +1535,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1561,15 +1546,15 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.20"
+version = "0.11.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
 dependencies = [
  "base64",
  "bytes",
@@ -1593,6 +1578,7 @@ dependencies = [
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "system-configuration",
  "tokio",
  "tokio-rustls",
  "tower-service",
@@ -1606,17 +1592,16 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
+ "getrandom",
  "libc",
- "once_cell",
  "spin",
  "untrusted",
- "web-sys",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1633,22 +1618,22 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.38.13"
+version = "0.38.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.7"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -1658,18 +1643,18 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
  "base64",
 ]
 
 [[package]]
 name = "rustls-webpki"
-version = "0.101.5"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
  "ring",
  "untrusted",
@@ -1677,9 +1662,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -1698,9 +1683,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
  "ring",
  "untrusted",
@@ -1728,35 +1713,35 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa",
  "ryu",
@@ -1765,13 +1750,13 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -1788,11 +1773,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.25"
+version = "0.9.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
+checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
  "itoa",
  "ryu",
  "serde",
@@ -1801,9 +1786,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1833,15 +1818,15 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
@@ -1849,9 +1834,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
@@ -1859,9 +1844,9 @@ dependencies = [
 
 [[package]]
 name = "spin"
-version = "0.5.2"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "strsim"
@@ -1892,9 +1877,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.33"
+version = "2.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9caece70c63bfba29ec2fed841a09851b14a235c60010fa4de58089b6c025668"
+checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1902,6 +1887,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "tar"
 version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1914,15 +1920,15 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if",
  "fastrand",
@@ -1933,32 +1939,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
-dependencies = [
- "cfg-if",
- "once_cell",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -1997,9 +1993,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2007,20 +2003,20 @@ dependencies = [
  "mio",
  "num_cpus",
  "pin-project-lite",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -2035,9 +2031,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -2055,35 +2051,34 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "pin-project-lite",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "ucd-trie"
@@ -2093,9 +2088,9 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
 
 [[package]]
 name = "unicode-ident"
@@ -2132,15 +2127,15 @@ checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -2186,9 +2181,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "serde",
@@ -2198,24 +2193,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2225,9 +2220,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2235,28 +2230,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2264,9 +2259,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.2"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
 
 [[package]]
 name = "winapi"
@@ -2286,9 +2281,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -2318,6 +2313,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
 name = "windows-targets"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2348,6 +2352,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
+
+[[package]]
 name = "windows_aarch64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2360,6 +2379,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2372,6 +2397,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2384,6 +2415,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2396,6 +2433,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2408,6 +2451,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2420,6 +2469,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[package]]
 name = "windows_x86_64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2432,6 +2487,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
 name = "winreg"
 version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2443,11 +2504,13 @@ dependencies = [
 
 [[package]]
 name = "xattr"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+checksum = "d367426ae76bdfce3d8eaea6e94422afd6def7d46f9c89e2980309115b3c2c41"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
 ]
 
 [[package]]
diff --git a/pkgs/tools/text/autocorrect/default.nix b/pkgs/tools/text/autocorrect/default.nix
index fa1214762b296..676eec70076ce 100644
--- a/pkgs/tools/text/autocorrect/default.nix
+++ b/pkgs/tools/text/autocorrect/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, Security }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, Security, SystemConfiguration }:
 
 rustPlatform.buildRustPackage rec {
   pname = "autocorrect";
-  version = "2.8.5";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "huacnlee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-j59yCGGV6yiT6o+VKM1FPh87T4QG0qAeKgcKIAqpx+8=";
+    sha256 = "sha256-NCDJoKOH4ZaXtGXZ7bgOXrjgrY8Edui+EOOI8/yfW08=";
   };
 
   cargoLock = {
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
     cp ${./Cargo.lock} Cargo.lock
   '';
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
   cargoBuildFlags = [ "-p" "autocorrect-cli" ];
   cargoTestFlags = [ "-p" "autocorrect-cli" ];
diff --git a/pkgs/tools/text/boxes/default.nix b/pkgs/tools/text/boxes/default.nix
index f39349b2fbf09..5340c5eccff9e 100644
--- a/pkgs/tools/text/boxes/default.nix
+++ b/pkgs/tools/text/boxes/default.nix
@@ -34,11 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Command line ASCII boxes unlimited!";
-    longDescription = ''
-      Boxes is a command line filter program that draws ASCII art boxes around
-      your input text.
-    '';
+    description = "A command line program which draws, removes, and repairs ASCII art boxes";
     homepage = "https://boxes.thomasjensen.com";
     license = licenses.gpl2;
     maintainers = with maintainers; [ waiting-for-dev ];
diff --git a/pkgs/tools/text/chroma/default.nix b/pkgs/tools/text/chroma/default.nix
index af5241de7a05a..2b59831529dbd 100644
--- a/pkgs/tools/text/chroma/default.nix
+++ b/pkgs/tools/text/chroma/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     description = "A general purpose syntax highlighter in pure Go";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
+    mainProgram = "chroma";
   };
 }
diff --git a/pkgs/tools/text/colordiff/default.nix b/pkgs/tools/text/colordiff/default.nix
index 4146429e28397..69473bd2c6f6f 100644
--- a/pkgs/tools/text/colordiff/default.nix
+++ b/pkgs/tools/text/colordiff/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "colordiff";
   };
 }
diff --git a/pkgs/tools/text/comrak/default.nix b/pkgs/tools/text/comrak/default.nix
index 2254bb7e2c273..3b9af32c28330 100644
--- a/pkgs/tools/text/comrak/default.nix
+++ b/pkgs/tools/text/comrak/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "comrak";
-  version = "0.19.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "kivikakk";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eyLgAVo4U0a1JByJsoWOnKGhDcaOhul145KeOOkmHq8=";
+    sha256 = "sha256-gYEq2kfSLaGdVQxmHTZ8O55f4Iwj9FKjUmlNq5+QtXI=";
   };
 
-  cargoSha256 = "sha256-Q9VmiC07UxstwRPertTteeHX34zTo58a2wPkQtSwUPU=";
+  cargoHash = "sha256-rkSq18cFSlTJsZ7DvpJbXYUsg5k86Jk6bgpdO5nP6CE=";
 
   meta = with lib; {
     description = "A CommonMark-compatible GitHub Flavored Markdown parser and formatter";
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index 07bbb36327fa6..1a4115dc49643 100644
--- a/pkgs/tools/text/crowdin-cli/default.nix
+++ b/pkgs/tools/text/crowdin-cli/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "3.14.0";
+  version = "3.17.0";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-Yb4zORtmEgZGu9h05/t4sQ6eTljHba89JZKh7vzIp2Q=";
+    hash = "sha256-thiwggDtzQsfbzwWF2tTMRQHfktq+W9fBH6QT7t2gKc=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/pkgs/tools/text/csvkit/default.nix b/pkgs/tools/text/csvkit/default.nix
index cfebb5674327e..d559f12049151 100644
--- a/pkgs/tools/text/csvkit/default.nix
+++ b/pkgs/tools/text/csvkit/default.nix
@@ -6,18 +6,7 @@
 let
   python = python3.override {
     packageOverrides = self: super: {
-      sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
-        version = "1.4.46";
-        src = fetchPypi {
-          pname = "SQLAlchemy";
-          inherit version;
-          hash = "sha256-aRO4JH2KKS74MVFipRkx4rQM6RaB8bbxj2lwRSAMSjA=";
-        };
-        disabledTestPaths = [
-           "test/aaa_profiling"
-           "test/ext/mypy"
-        ];
-      });
+      sqlalchemy = super.sqlalchemy_1_4;
     };
   };
 in
diff --git a/pkgs/tools/text/d2/default.nix b/pkgs/tools/text/d2/default.nix
index bca032d6ddf96..77c5de696f126 100644
--- a/pkgs/tools/text/d2/default.nix
+++ b/pkgs/tools/text/d2/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "d2";
-  version = "0.6.1";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "terrastruct";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-bp45tkV7f6rGDAmhle/e3cHIqa7nPakANvk4QxetLts=";
+    hash = "sha256-GImv4OJHanj6dKtAJpTaGLrR4AaVTboiYHwRdh/gXaU=";
   };
 
-  vendorHash = "sha256-QMptNFCoJouI555WkA+4TJhaEzQgJJmca3jVpM3neeI=";
+  vendorHash = "sha256-T7eki06fQuGvYIJKvBJsIkFS1fQ9Jbv+ieUSr2vupqg=";
 
   excludedPackages = [ "./e2etests" ];
 
diff --git a/pkgs/tools/text/diffsitter/default.nix b/pkgs/tools/text/diffsitter/default.nix
index e46286bc0e81c..e3c14df854078 100644
--- a/pkgs/tools/text/diffsitter/default.nix
+++ b/pkgs/tools/text/diffsitter/default.nix
@@ -32,17 +32,17 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "diffsitter";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "afnanenayet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8nKZ8zcZSSF7Qd36kA9IQjio+TIhlQWRgMqKrsdInj4=";
+    hash = "sha256-rB580TlM0/HXYgPvWtm7KMtXrw6i996HyvCrNr3QmNA=";
     fetchSubmodules = false;
   };
 
-  cargoHash = "sha256-LEBAMb9tROpjrWEfucw+2ZaytnoyJE477IH3MyeUGEA=";
+  cargoHash = "sha256-8ajCXoB+mVhHrstVG+QkWYfXJqDk4+XPcO6yjR4TqpQ=";
 
   buildNoDefaultFeatures = true;
   buildFeatures = [
diff --git a/pkgs/tools/text/diffstat/default.nix b/pkgs/tools/text/diffstat/default.nix
index 15baee3c39d12..0b10014e0e6ef 100644
--- a/pkgs/tools/text/diffstat/default.nix
+++ b/pkgs/tools/text/diffstat/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "diffstat";
-  version = "1.65";
+  version = "1.66";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/diffstat/diffstat-${version}.tgz"
       "https://invisible-mirror.net/archives/diffstat/diffstat-${version}.tgz"
     ];
-    sha256 = "sha256-jPJ0JJJt682FkhdVw5FVWSiCRL0QP2LXQNxrg7VXooo=";
+    sha256 = "sha256-9UUxu+Mujg+kYfAYtB469Ra2MggBcvNh8F5QNn7Ltp4=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/text/difftastic/Cargo.lock b/pkgs/tools/text/difftastic/Cargo.lock
index f381f2979312f..f0bca647bebb6 100644
--- a/pkgs/tools/text/difftastic/Cargo.lock
+++ b/pkgs/tools/text/difftastic/Cargo.lock
@@ -15,9 +15,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
 dependencies = [
  "memchr",
 ]
@@ -28,7 +28,7 @@ version = "2.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d5c2ca00549910ec251e3bd15f87aeeb206c9456b9a77b43ff6c97c54042a472"
 dependencies = [
- "bstr",
+ "bstr 0.2.17",
  "doc-comment",
  "predicates",
  "predicates-core",
@@ -42,7 +42,7 @@ version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.19",
  "libc",
  "winapi",
 ]
@@ -60,6 +60,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
 name = "bstr"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -67,7 +73,17 @@ checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
 dependencies = [
  "lazy_static",
  "memchr",
- "regex-automata",
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "bstr"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
+dependencies = [
+ "memchr",
+ "serde",
 ]
 
 [[package]]
@@ -104,7 +120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b"
 dependencies = [
  "atty",
- "bitflags",
+ "bitflags 1.3.2",
  "clap_lex",
  "indexmap",
  "lazy_static",
@@ -190,11 +206,11 @@ dependencies = [
 
 [[package]]
 name = "crossterm"
-version = "0.26.1"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
+checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.1",
  "crossterm_winapi",
  "libc",
  "mio",
@@ -206,9 +222,9 @@ dependencies = [
 
 [[package]]
 name = "crossterm_winapi"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
 dependencies = [
  "winapi",
 ]
@@ -237,8 +253,9 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 
 [[package]]
 name = "difftastic"
-version = "0.52.0"
+version = "0.55.0"
 dependencies = [
+ "aho-corasick",
  "assert_cmd",
  "bumpalo",
  "cc",
@@ -248,12 +265,14 @@ dependencies = [
  "glob",
  "hashbrown 0.12.3",
  "humansize",
+ "ignore",
  "itertools 0.11.0",
  "lazy_static",
  "libc",
  "libmimalloc-sys",
  "line-numbers",
  "log",
+ "memchr",
  "mimalloc",
  "owo-colors",
  "predicates",
@@ -272,7 +291,6 @@ dependencies = [
  "typed-arena",
  "unicode-width",
  "version_check",
- "walkdir",
  "wu-diff",
 ]
 
@@ -290,18 +308,28 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
 
 [[package]]
 name = "env_logger"
-version = "0.7.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
 dependencies = [
- "atty",
  "humantime",
+ "is-terminal",
  "log",
  "regex",
  "termcolor",
 ]
 
 [[package]]
+name = "errno"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "fixedbitset"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -340,6 +368,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
+name = "globset"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+dependencies = [
+ "aho-corasick",
+ "bstr 1.6.0",
+ "fnv",
+ "log",
+ "regex",
+]
+
+[[package]]
 name = "hashbrown"
 version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -370,6 +411,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "hermit-abi"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+
+[[package]]
 name = "humansize"
 version = "2.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -380,11 +427,26 @@ dependencies = [
 
 [[package]]
 name = "humantime"
-version = "1.3.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "ignore"
+version = "0.4.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
 dependencies = [
- "quick-error",
+ "crossbeam-utils",
+ "globset",
+ "lazy_static",
+ "log",
+ "memchr",
+ "regex",
+ "same-file",
+ "thread_local",
+ "walkdir",
+ "winapi-util",
 ]
 
 [[package]]
@@ -398,6 +460,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi 0.3.3",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+dependencies = [
+ "hermit-abi 0.3.3",
+ "io-lifetimes",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "itertools"
 version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -429,9 +514,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.139"
+version = "0.2.149"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
 
 [[package]]
 name = "libm"
@@ -450,9 +535,15 @@ dependencies = [
 
 [[package]]
 name = "line-numbers"
-version = "0.2.2"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b25f5068853805faa3c19f44d0c401446e4eb3f47cc808fa331eec30f0ba35c"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "793a75315eb63b8699158825bdea85d63eeb850e7543cb834abef3c7b5b53780"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "lock_api"
@@ -512,7 +603,7 @@ dependencies = [
  "libc",
  "log",
  "wasi",
- "windows-sys",
+ "windows-sys 0.42.0",
 ]
 
 [[package]]
@@ -546,7 +637,7 @@ version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.19",
  "libc",
 ]
 
@@ -597,7 +688,7 @@ dependencies = [
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-sys",
+ "windows-sys 0.42.0",
 ]
 
 [[package]]
@@ -654,9 +745,9 @@ dependencies = [
 
 [[package]]
 name = "pretty_env_logger"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
+checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c"
 dependencies = [
  "env_logger",
  "log",
@@ -672,12 +763,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
 name = "quote"
 version = "1.0.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -720,17 +805,18 @@ version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.7.3"
+version = "1.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
+checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29"
 dependencies = [
  "aho-corasick",
  "memchr",
+ "regex-automata 0.3.7",
  "regex-syntax",
 ]
 
@@ -741,10 +827,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
 
 [[package]]
+name = "regex-automata"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
 name = "regex-syntax"
-version = "0.6.29"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
 name = "rustc-hash"
@@ -753,6 +850,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
+name = "rustix"
+version = "0.37.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rustversion"
 version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -812,9 +923,9 @@ dependencies = [
 
 [[package]]
 name = "signal-hook"
-version = "0.3.14"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
 dependencies = [
  "libc",
  "signal-hook-registry",
@@ -931,10 +1042,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
 name = "tree-sitter"
-version = "0.20.9"
+version = "0.20.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4423c784fe11398ca91e505cdc71356b07b1a924fc8735cfab5333afe3e18bc"
+checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d"
 dependencies = [
  "cc",
  "regex",
@@ -1045,13 +1166,37 @@ version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.42.1",
+ "windows_aarch64_msvc 0.42.1",
+ "windows_i686_gnu 0.42.1",
+ "windows_i686_msvc 0.42.1",
+ "windows_x86_64_gnu 0.42.1",
+ "windows_x86_64_gnullvm 0.42.1",
+ "windows_x86_64_msvc 0.42.1",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
 ]
 
 [[package]]
@@ -1061,42 +1206,84 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.42.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.42.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.42.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.42.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.42.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
 
 [[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
 name = "windows_x86_64_msvc"
 version = "0.42.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
 name = "wu-diff"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix
index 1db60b38a8dee..e5c04d1e4cd31 100644
--- a/pkgs/tools/text/difftastic/default.nix
+++ b/pkgs/tools/text/difftastic/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , testers
 , difftastic
+, stdenv
 }:
 
 let
@@ -16,13 +17,13 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.52.0";
+  version = "0.55.0";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    hash = "sha256-ve5oUvclHGgw56UEIuEQ0tSdzad94MfL6qzc2hoB0dw=";
+    hash = "sha256-ltlgZoR94BrF6FOOUnSNZf3Uagu5AZjxE7yxOwWWMzU=";
   };
 
   cargoLock = {
@@ -32,6 +33,16 @@ rustPlatform.buildRustPackage rec {
     };
   };
 
+  # skip flaky tests
+  checkFlags = [
+    "--skip=options::tests::test_detect_display_width"
+  ];
+
+  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
   postPatch = ''
     patch -d $cargoDepsCopy/libmimalloc-sys-0.1.24/c_src/mimalloc \
       -p1 < ${mimallocPatch}
diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/tools/text/diffutils/default.nix
index 35e0fb5e6b967..040f363fa55d8 100644
--- a/pkgs/tools/text/diffutils/default.nix
+++ b/pkgs/tools/text/diffutils/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     lib.optional (coreutils != null) "PR_PROGRAM=${coreutils}/bin/pr"
     ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "gl_cv_func_getopt_gnu=yes";
 
-  doCheck = !(stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isMusl);
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/diffutils/diffutils.html";
diff --git a/pkgs/tools/text/dos2unix/default.nix b/pkgs/tools/text/dos2unix/default.nix
index 5505893b4ec61..9785b21e0dcb3 100644
--- a/pkgs/tools/text/dos2unix/default.nix
+++ b/pkgs/tools/text/dos2unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dos2unix";
-  version = "7.5.1";
+  version = "7.5.2";
 
   src = fetchurl {
     url = "https://waterlan.home.xs4all.nl/dos2unix/${pname}-${version}.tar.gz";
-    sha256 = "sha256-2gd4i7LgKbDWP2Rx0Wb2hSis2Nos8UgjoYjoqdXB/BU=";
+    sha256 = "sha256-JkdCRGYIRC60j5bCCvbaMDyzqSs2TnLLfiT4gjnEvzo=";
   };
 
   nativeBuildInputs = [ perl gettext ];
diff --git a/pkgs/tools/text/dt/default.nix b/pkgs/tools/text/dt/default.nix
index bc4c0dd9938e9..aa478b16dd694 100644
--- a/pkgs/tools/text/dt/default.nix
+++ b/pkgs/tools/text/dt/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dt";
-  version = "1.2.4";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "so-dang-cool";
     repo = "dt";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-u9MI6mrP+QXr3VDgmXW7GRkHKCiDoA9HlznTEGNsck4=";
+    hash = "sha256-qHfvHf4T0wWnzqp5FfLg7n7te24xc2aMEdTK3Iia8Q0=";
   };
 
   nativeBuildInputs = [ zig_0_11.hook ];
diff --git a/pkgs/tools/text/enscript/0001-use-system-getopt.patch b/pkgs/tools/text/enscript/0001-use-system-getopt.patch
new file mode 100644
index 0000000000000..0ae8776f361e8
--- /dev/null
+++ b/pkgs/tools/text/enscript/0001-use-system-getopt.patch
@@ -0,0 +1,68 @@
+From 4c5cbf6db71cf2981fc836ed370c82149748d8ea Mon Sep 17 00:00:00 2001
+From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
+Date: Wed, 6 Dec 2023 22:57:19 +0000
+Subject: [PATCH] use system getopt
+
+the file compat/getopt.h also needs to be removed otherwise it will
+create conflicts with the system includes
+---
+ compat/Makefile.am | 4 ++--
+ compat/Makefile.in | 6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/compat/Makefile.am b/compat/Makefile.am
+index aefc06f..23aaf81 100644
+--- a/compat/Makefile.am
++++ b/compat/Makefile.am
+@@ -25,7 +25,7 @@
+ AUTOMAKE_OPTIONS = no-dependencies
+ 
+ noinst_LIBRARIES = libcompat.a
+-libcompat_a_SOURCES = getopt.c getopt1.c xalloc.c regex.c
++libcompat_a_SOURCES = xalloc.c regex.c
+ libcompat_a_LIBADD = @LIBOBJS@ @ALLOCA@
+ libcompat_a_DEPENDENCIES = @LIBOBJS@ @ALLOCA@
+ 
+@@ -34,7 +34,7 @@ libcompat_a_SOURCES_windelta =	\
+ 	+../w32/getpwd.c	\
+ 	+../w32/getuid.c
+ 
+-noinst_HEADERS = getopt.h regex.h xalloc.h
++noinst_HEADERS = regex.h xalloc.h
+ 
+ EXTRA_DIST = ChangeLog.old strerror.c memmove.c memcpy.c strtol.c	\
+ 	strtoul.c gettext.h
+diff --git a/compat/Makefile.in b/compat/Makefile.in
+index edfc620..dee05d7 100644
+--- a/compat/Makefile.in
++++ b/compat/Makefile.in
+@@ -137,7 +137,7 @@ am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+ am__v_AR_0 = @echo "  AR      " $@;
+ am__v_AR_1 = 
+ libcompat_a_AR = $(AR) $(ARFLAGS)
+-am_libcompat_a_OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) \
++am_libcompat_a_OBJECTS = \
+ 	xalloc.$(OBJEXT) regex.$(OBJEXT)
+ libcompat_a_OBJECTS = $(am_libcompat_a_OBJECTS)
+ AM_V_P = $(am__v_P_@AM_V@)
+@@ -326,7 +326,7 @@ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ AUTOMAKE_OPTIONS = no-dependencies
+ noinst_LIBRARIES = libcompat.a
+-libcompat_a_SOURCES = getopt.c getopt1.c xalloc.c regex.c
++libcompat_a_SOURCES = xalloc.c regex.c
+ libcompat_a_LIBADD = @LIBOBJS@ @ALLOCA@
+ libcompat_a_DEPENDENCIES = @LIBOBJS@ @ALLOCA@
+ libcompat_a_SOURCES_windelta = \
+@@ -334,7 +334,7 @@ libcompat_a_SOURCES_windelta = \
+ 	+../w32/getpwd.c	\
+ 	+../w32/getuid.c
+ 
+-noinst_HEADERS = getopt.h regex.h xalloc.h
++noinst_HEADERS = regex.h xalloc.h
+ EXTRA_DIST = ChangeLog.old strerror.c memmove.c memcpy.c strtol.c	\
+ 	strtoul.c gettext.h
+ 
+-- 
+2.42.0
+
diff --git a/pkgs/tools/text/enscript/default.nix b/pkgs/tools/text/enscript/default.nix
index 1299ef78679c1..e5aeb75ca6266 100644
--- a/pkgs/tools/text/enscript/default.nix
+++ b/pkgs/tools/text/enscript/default.nix
@@ -9,12 +9,20 @@ stdenv.mkDerivation rec {
     sha256 = "1fy0ymvzrrvs889zanxcaxjfcxarm2d3k43c9frmbl1ld7dblmkd";
   };
 
-  preBuild =
-    ''
-      # Fix building on Darwin with GCC.
-      substituteInPlace compat/regex.c --replace \
-         __private_extern__  '__attribute__ ((visibility ("hidden")))'
-    '';
+  patches = [
+    # fix compile failure on macos. use system getopt like linux
+    # requires that compat/getopt.h is also removed
+    # https://savannah.gnu.org/bugs/?64307
+    ./0001-use-system-getopt.patch
+  ];
+
+  postPatch = ''
+    # the delete component of 0001-use-system-getopt.patch
+    rm compat/getopt.h
+    # Fix building on Darwin with GCC.
+    substituteInPlace compat/regex.c --replace \
+       __private_extern__  '__attribute__ ((visibility ("hidden")))'
+  '';
 
   buildInputs = [ gettext ];
 
diff --git a/pkgs/tools/text/epub2txt2/default.nix b/pkgs/tools/text/epub2txt2/default.nix
index c8645fc5fe2a2..80a3ebde74547 100644
--- a/pkgs/tools/text/epub2txt2/default.nix
+++ b/pkgs/tools/text/epub2txt2/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "CC:=$(CC)" "PREFIX:=$(out)" ];
 
   meta = {
-    description = "A simple command-line utility for Linux, for extracting text from EPUB documents.";
+    description = "A simple command-line utility for Linux, for extracting text from EPUB documents";
     homepage = "https://github.com/kevinboone/epub2txt2";
     license = lib.licenses.gpl3Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index 7d27a45b56fd1..1fd4988bb39e2 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -2,20 +2,28 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "4.25.0";
+  version = "4.30.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ky6N/AcfoXJahW7tw++WtnpTnpRv4ZUraMTWjVXDjEE=";
+    hash = "sha256-bUJWpl0sBN7ljr1tPDW2a346NsgLhWexl/kzdXTki1o=";
   };
 
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     beautifulsoup4
+    brotli
     chardet
     cloudscraper
     html5lib
     html2text
+    requests
     requests-file
+    urllib3
   ];
 
   doCheck = false; # no tests exist
diff --git a/pkgs/tools/text/fastmod/default.nix b/pkgs/tools/text/fastmod/default.nix
index a9f1b79c474a8..f8317d70d7782 100644
--- a/pkgs/tools/text/fastmod/default.nix
+++ b/pkgs/tools/text/fastmod/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fastmod";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "facebookincubator";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-j5+6ijJ04/Non7AUSN35OhfZ04MiPUDU4V1HLwZaM9k=";
+    sha256 = "sha256-A/3vzfwaStoQ9gdNM8yjmL2J/pQjj6yb68WThiTF+1E=";
   };
 
-  cargoSha256 = "sha256-RNTnP3RKRZXo3+L54y/8nBunGbsxVY72sbl+ZrqfeMI=";
+  cargoHash = "sha256-sFrABp4oYhel+GONFsTbunq+4We2DicvF9A3FT/ZArc=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/pkgs/tools/text/frawk/default.nix b/pkgs/tools/text/frawk/default.nix
index 1f975823fa1d4..230d1328d457a 100644
--- a/pkgs/tools/text/frawk/default.nix
+++ b/pkgs/tools/text/frawk/default.nix
@@ -6,6 +6,7 @@
 , zlib
 , features ? [ "default" ]
 , llvmPackages_12
+, stdenv
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -30,6 +31,11 @@ rustPlatform.buildRustPackage rec {
     export RUSTC_BOOTSTRAP=1
   '';
 
+  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
   # depends on cpu instructions that may not be available on builders
   doCheck = false;
 
diff --git a/pkgs/tools/text/frogmouth/default.nix b/pkgs/tools/text/frogmouth/default.nix
index 8e01940053088..9ec9134c661e2 100644
--- a/pkgs/tools/text/frogmouth/default.nix
+++ b/pkgs/tools/text/frogmouth/default.nix
@@ -5,16 +5,23 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "frogmouth";
-  version = "0.9.0";
+  version = "0.9.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Textualize";
     repo = "frogmouth";
     rev = "v${version}";
-    hash = "sha256-TMCeIwMEoNDQV9iue4XrdYQMmwofXDvdMMLTZKILQ9Q=";
+    hash = "sha256-0fcCON/M9JklE7X9aRfzTkEFG4ckJqLoQlYCSrWHHGQ=";
   };
 
+  # Per <https://github.com/srstevenson/xdg-base-dirs/tree/6.0.0#xdg-base-dirs>, the package is
+  # renamed from `xdg` to `xdg_base_dirs`, but upstream isn't amenable to performing that rename.
+  # See <https://github.com/Textualize/frogmouth/pull/59>. So this is a minimal fix.
+  postUnpack = ''
+    sed -i -e "s,from xdg import,from xdg_base_dirs import," $sourceRoot/frogmouth/data/{config,data_directory}.py
+  '';
+
   nativeBuildInputs = [
     python3.pkgs.poetry-core
     python3.pkgs.pythonRelaxDepsHook
@@ -24,13 +31,13 @@ python3.pkgs.buildPythonApplication rec {
     httpx
     textual
     typing-extensions
-    xdg
+    xdg-base-dirs
   ];
 
   pythonRelaxDeps = [
     "httpx"
     "textual"
-    "xdg"
+    "xdg-base-dirs"
   ];
 
   pythonImportsCheck = [ "frogmouth" ];
diff --git a/pkgs/tools/text/gawk/fix-typos-corrected-in-libharu-2.4.4.patch b/pkgs/tools/text/gawk/fix-typos-corrected-in-libharu-2.4.4.patch
new file mode 100644
index 0000000000000..6b4a416a718c2
--- /dev/null
+++ b/pkgs/tools/text/gawk/fix-typos-corrected-in-libharu-2.4.4.patch
@@ -0,0 +1,62 @@
+diff --git a/haru/pdf.c b/haru/pdf.c
+index d16f573..3129427 100644
+--- a/haru/pdf.c
++++ b/haru/pdf.c
+@@ -105,7 +105,7 @@ static awk_scalar_t HPDF_CS_PATTERN_node;
+ /*  LineCap */
+ static awk_scalar_t HPDF_BUTT_END_node;
+ static awk_scalar_t HPDF_ROUND_END_node;
+-static awk_scalar_t HPDF_PROJECTING_SCUARE_END_node;
++static awk_scalar_t HPDF_PROJECTING_SQUARE_END_node;
+ 
+ /*  _LineJoin */
+ static awk_scalar_t HPDF_MITER_JOIN_node;
+@@ -248,7 +248,7 @@ static awk_scalar_t HPDF_ENCODER_UNKNOWN_node;
+ /* ByteType */
+ static awk_scalar_t HPDF_BYTE_TYPE_SINGLE_node;
+ static awk_scalar_t HPDF_BYTE_TYPE_LEAD_node;
+-static awk_scalar_t HPDF_BYTE_TYPE_TRIAL_node;
++static awk_scalar_t HPDF_BYTE_TYPE_TRAIL_node;
+ static awk_scalar_t HPDF_BYTE_TYPE_UNKNOWN_node;
+ 
+ /* TextAlignment */
+@@ -308,7 +308,7 @@ static const struct varinit varinit[] = {
+ 	ENTRY(HPDF_CS_PATTERN, 1)
+ 	ENTRY(HPDF_BUTT_END, 1)
+ 	ENTRY(HPDF_ROUND_END, 1)
+-	ENTRY(HPDF_PROJECTING_SCUARE_END, 1)
++	ENTRY(HPDF_PROJECTING_SQUARE_END, 1)
+ 	ENTRY(HPDF_MITER_JOIN, 1)
+ 	ENTRY(HPDF_ROUND_JOIN, 1)
+ 	ENTRY(HPDF_BEVEL_JOIN, 1)
+@@ -417,7 +417,7 @@ static const struct varinit varinit[] = {
+ 	ENTRY(HPDF_ENCODER_UNKNOWN, 1)
+ 	ENTRY(HPDF_BYTE_TYPE_SINGLE, 1)
+ 	ENTRY(HPDF_BYTE_TYPE_LEAD, 1)
+-	ENTRY(HPDF_BYTE_TYPE_TRIAL, 1)
++	ENTRY(HPDF_BYTE_TYPE_TRAIL, 1)
+ 	ENTRY(HPDF_BYTE_TYPE_UNKNOWN, 1)
+ 	ENTRY(HPDF_TALIGN_LEFT, 1)
+ 	ENTRY(HPDF_TALIGN_RIGHT, 1)
+diff --git a/haru/pdf.h b/haru/pdf.h
+index a4ef39a..07cf168 100644
+--- a/haru/pdf.h
++++ b/haru/pdf.h
+@@ -86,7 +86,7 @@
+ 
+ #define DEFAULT_HPDF_BUTT_END HPDF_BUTT_END
+ #define DEFAULT_HPDF_ROUND_END HPDF_ROUND_END
+-#define DEFAULT_HPDF_PROJECTING_SCUARE_END HPDF_PROJECTING_SCUARE_END
++#define DEFAULT_HPDF_PROJECTING_SQUARE_END HPDF_PROJECTING_SQUARE_END
+ 
+ /*  _LineJoin */
+ #define DEFAULT_HPDF_MITER_JOIN HPDF_MITER_JOIN
+@@ -229,7 +229,7 @@
+ /* ByteType */
+ #define DEFAULT_HPDF_BYTE_TYPE_SINGLE HPDF_BYTE_TYPE_SINGLE
+ #define DEFAULT_HPDF_BYTE_TYPE_LEAD HPDF_BYTE_TYPE_LEAD
+-#define DEFAULT_HPDF_BYTE_TYPE_TRIAL HPDF_BYTE_TYPE_TRIAL 
++#define DEFAULT_HPDF_BYTE_TYPE_TRAIL HPDF_BYTE_TYPE_TRAIL
+ #define DEFAULT_HPDF_BYTE_TYPE_UNKNOWN HPDF_BYTE_TYPE_UNKNOWN 
+ 
+ /* TextAlignment */
diff --git a/pkgs/tools/text/gawk/gawkextlib.nix b/pkgs/tools/text/gawk/gawkextlib.nix
index 9a25407d7116a..be50b93a7e2f8 100644
--- a/pkgs/tools/text/gawk/gawkextlib.nix
+++ b/pkgs/tools/text/gawk/gawkextlib.nix
@@ -5,7 +5,7 @@
 
 let
   buildExtension = lib.makeOverridable
-    ({ name, gawkextlib, extraBuildInputs ? [ ], doCheck ? true }:
+    ({ name, gawkextlib, extraBuildInputs ? [ ], doCheck ? true, patches ? [ ] }:
       let is_extension = gawkextlib != null;
       in stdenv.mkDerivation rec {
         pname = "gawkextlib-${name}";
@@ -17,6 +17,8 @@ let
           sha256 = "sha256-0p3CrQ3TBl7UcveZytK/9rkAzn69RRM2GwY2eCeqlkg=";
         };
 
+        inherit patches;
+
         postPatch = ''
           cd ${name}
         '';
@@ -83,12 +85,16 @@ let
       name = "gd";
       extraBuildInputs = [ gd ];
     };
-    # Build has been broken: https://github.com/NixOS/nixpkgs/issues/191072
-    # haru = buildExtension {
-    #   inherit gawkextlib;
-    #   name = "haru";
-    #   extraBuildInputs = [ libharu ];
-    # };
+    haru = buildExtension {
+      inherit gawkextlib;
+      name = "haru";
+      extraBuildInputs = [ libharu ];
+      patches = [
+        # Renames references to two identifiers with typos that libharu fixed in 2.4.4
+        # https://github.com/libharu/libharu/commit/88271b73c68c521a49a15e3555ef00395aa40810
+        ./fix-typos-corrected-in-libharu-2.4.4.patch
+      ];
+    };
     json = buildExtension {
       inherit gawkextlib;
       name = "json";
diff --git a/pkgs/tools/text/groff/site.tmac b/pkgs/tools/text/groff/site.tmac
index 07923f1200095..6f0f18dea6d5f 100644
--- a/pkgs/tools/text/groff/site.tmac
+++ b/pkgs/tools/text/groff/site.tmac
@@ -1,13 +1,26 @@
 .
 .if n \{\
-.  \" Character translations for non-keyboard
-.  \" characters - to make them searchable
+.  \" With groff 1.23.0 "[t]he 'utf8' output device now maps the input
+.  \" characters '^' (caret, circumflex accent, or 'hat') and '~' (tilde)
+.  \" to U+02C6 (modifier letter circumflex accent) and U+02DC (small tilde),
+.  \" respectively, for consistency with groff's other output devices.
+.  \" This change is expected to expose glyph usage errors in man pages.
+.  \" See [http://git.savannah.gnu.org/cgit/groff.git/tree/PROBLEMS] for
+.  \" a recipe that will conceal these errors"
+.  \" -- https://lists.gnu.org/archive/html/groff/2023-07/msg00051.html
+.  \"
+.  \" Conceal glyph usage errors in man pages with the following
+.  \" character translations for non-keyboard characters to make them searchable.
 .  if '\*[.T]'utf8' \{\
 .    char \- \N'45'
 .    char - \N'45'
-.    char ' \N'39'
-.    char \' \N'39'
+.    char \' \[aq]
+.    char ' \[aq]
+.    char ` \[ga]
+.    char ^ \[ha]
+.    char ~ \[ti]
 .  \}
+.\}
 .
 .ds doc-default-operating-system Nixpkgs
 .ds doc-volume-operating-system Nixpkgs
diff --git a/pkgs/tools/text/gtranslator/default.nix b/pkgs/tools/text/gtranslator/default.nix
index d51ac05701d4b..5c9c7c8687387 100644
--- a/pkgs/tools/text/gtranslator/default.nix
+++ b/pkgs/tools/text/gtranslator/default.nix
@@ -6,28 +6,27 @@
 , pkg-config
 , itstool
 , gettext
-, python3
-, wrapGAppsHook
+, wrapGAppsHook4
 , libxml2
+, libadwaita
 , libgda6
-, libhandy
 , libsoup_3
+, libspelling
 , json-glib
-, gspell
 , glib
-, gtk3
-, gtksourceview4
+, gtk4
+, gtksourceview5
 , gnome
 , gsettings-desktop-schemas
 }:
 
 stdenv.mkDerivation rec {
   pname = "gtranslator";
-  version = "42.0";
+  version = "45.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "Kme8v+ZDBhsGltiaEIR9UL81kF/zNhuYcTV9PjQi8Ts=";
+    sha256 = "MBAgTfXHpa4Cf1owsVRNaXfUF/Dku53il/CtGoAzGHM=";
   };
 
   nativeBuildInputs = [
@@ -36,29 +35,23 @@ stdenv.mkDerivation rec {
     pkg-config
     itstool
     gettext
-    python3
-    wrapGAppsHook
+    wrapGAppsHook4
   ];
 
   buildInputs = [
     libxml2
     glib
-    gtk3
-    gtksourceview4
+    gtk4
+    gtksourceview5
+    libadwaita
     libgda6
-    libhandy
     libsoup_3
+    libspelling
     json-glib
     gettext
-    gspell
     gsettings-desktop-schemas
   ];
 
-  postPatch = ''
-    chmod +x build-aux/meson/meson_post_install.py
-    patchShebangs build-aux/meson/meson_post_install.py
-  '';
-
   passthru = {
     updateScript = gnome.updateScript {
       packageName = pname;
diff --git a/pkgs/tools/text/gtree/default.nix b/pkgs/tools/text/gtree/default.nix
index 022ed0b0f0b6b..436185e754a30 100644
--- a/pkgs/tools/text/gtree/default.nix
+++ b/pkgs/tools/text/gtree/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gtree";
-  version = "1.9.12";
+  version = "1.10.7";
 
   src = fetchFromGitHub {
     owner = "ddddddO";
     repo = "gtree";
     rev = "v${version}";
-    hash = "sha256-N4gw2SaNAcQULNxE+v4I+UhfziLH7zLs0cIP5mHGUx0=";
+    hash = "sha256-RdbUTYdHRjLal/4o6JlIZ9PZsGiO0VWArpIQQI5NkMI=";
   };
 
-  vendorHash = "sha256-3VNcis7G0k/WTt8APvFaVBoYTo+RhjpnT1cGWhQhXK0=";
+  vendorHash = "sha256-s6TT7baF07U12owOV/BiUJaXxyybfSy4Tr4euYCjlec=";
 
   subPackages = [
     "cmd/gtree"
diff --git a/pkgs/tools/text/highlight/default.nix b/pkgs/tools/text/highlight/default.nix
index 4287b79648012..7e02f3f60ceb2 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.7";
+    version = "4.10";
 
     src = fetchFromGitLab {
       owner = "saalen";
       repo = "highlight";
       rev = "v${version}";
-      sha256 = "sha256-WblpRrvfFp4PlyH4RS2VNKXYD911H+OcnSL5rctyxiM=";
+      sha256 = "sha256-WBX5WQXGgB7n7htxHxpBNIE1wFCFht6sMy5lkqeieqM=";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/tools/text/html2text/default.nix b/pkgs/tools/text/html2text/default.nix
index fff3e44baf694..7ef802e925fb5 100644
--- a/pkgs/tools/text/html2text/default.nix
+++ b/pkgs/tools/text/html2text/default.nix
@@ -13,6 +13,9 @@ stdenv.mkDerivation rec {
     substituteInPlace configure \
         --replace /bin/echo echo \
         --replace CXX=unknown ':'
+  '' + lib.optionalString stdenv.cc.isClang ''
+    substituteInPlace HTMLParser.C \
+      --replace "register " ""
   '';
 
   # the --prefix has no effect
diff --git a/pkgs/tools/text/igrep/default.nix b/pkgs/tools/text/igrep/default.nix
index 34f9202cfa05e..db947ca2cc38e 100644
--- a/pkgs/tools/text/igrep/default.nix
+++ b/pkgs/tools/text/igrep/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
     owner = "konradsz";
     repo = "igrep";
     rev = "v${version}";
-    sha256 = "sha256-L5mHuglU0CvTi02pbR8xfezBoH8L/DS+7jgvYvb4yro=";
+    hash = "sha256-L5mHuglU0CvTi02pbR8xfezBoH8L/DS+7jgvYvb4yro=";
   };
 
   cargoHash = "sha256-k63tu5Ffus4z0yd8vQ79q4+tokWAXD05Pvv9JByfnDg=";
diff --git a/pkgs/tools/text/invoice2data/default.nix b/pkgs/tools/text/invoice2data/default.nix
index fd5ead9e0c359..aed1bd2afd50f 100644
--- a/pkgs/tools/text/invoice2data/default.nix
+++ b/pkgs/tools/text/invoice2data/default.nix
@@ -10,14 +10,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "invoice2data";
-  version = "0.4.2";
+  version = "0.4.4";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "invoice-x";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ss2h8cg0sga+lzJyQHckrZB/Eb63Oj3FkqmGqWCzCQ8=";
+    hash = "sha256-pAvkp8xkHYi/7ymbxaT7/Jhu44j2P8emm8GyXC6IBnI=";
   };
 
   patches = [
@@ -38,6 +38,7 @@ python3.pkgs.buildPythonApplication rec {
     pdfminer-six
     pillow
     pyyaml
+    setuptools
   ];
 
   makeWrapperArgs = ["--prefix" "PATH" ":" (lib.makeBinPath [
diff --git a/pkgs/tools/text/ispell/default.nix b/pkgs/tools/text/ispell/default.nix
index 6a004253a4f08..2f7b25d5fa255 100644
--- a/pkgs/tools/text/ispell/default.nix
+++ b/pkgs/tools/text/ispell/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ispell";
-  version = "3.4.05";
+  version = "3.4.06";
 
   src = fetchurl {
     url = "https://www.cs.hmc.edu/~geoff/tars/${pname}-${version}.tar.gz";
-    sha256 = "sha256-zwxt7eP9JfraQ3XYasr+WDy5bY/lRt50apLrtt+JVgI=";
+    sha256 = "sha256-F8kWM9TIB1rMUDFjoWRj/FSrHHRTKArTnNPbdceD66Y=";
   };
 
   buildInputs = [ bison ncurses ];
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index 8904d1bf690e8..5afca943d26a6 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -14,11 +14,11 @@
 
 mkDerivation rec {
   pname = "kdiff3";
-  version = "1.10.6";
+  version = "1.10.7";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-EzOu+dZjbGs0ZqF/0sXZbpGdTrUh6isjUoJUETau+zE=";
+    url = "mirror://kde/stable/kdiff3/kdiff3-${version}.tar.xz";
+    hash = "sha256-/otpnRJM1NJjKzwnqgas7Fyqj8v4t2SM8MANektqzlA=";
   };
 
   buildInputs = [ boost ];
diff --git a/pkgs/tools/text/l2md/default.nix b/pkgs/tools/text/l2md/default.nix
index 758130e9f0aa2..08ec219690f6a 100644
--- a/pkgs/tools/text/l2md/default.nix
+++ b/pkgs/tools/text/l2md/default.nix
@@ -1,12 +1,11 @@
-{ lib, stdenv, fetchgit, libgit2 }:
+{ lib, stdenv, fetchzip, libgit2 }:
 
 stdenv.mkDerivation rec {
   pname = "l2md";
   version = "unstable-2021-10-27";
 
-  src = fetchgit {
-    url = "https://git.kernel.org/pub/scm/linux/kernel/git/dborkman/l2md.git";
-    rev = "9db252bc1716ebaf0abd3a47a59ea78e4e6253d6";
+  src = fetchzip {
+    url = "https://git.kernel.org/pub/scm/linux/kernel/git/dborkman/l2md.git/snapshot/l2md-9db252bc1716ebaf0abd3a47a59ea78e4e6253d6.tar.gz";
     sha256 = "sha256-H/leDUwQM55akyXsmTnI2YsnG4i1KQtf4bBt1fizy8E=";
   };
 
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index 65fcb5b71e7bc..ed4543140e863 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 = "6.2";
+  version = "6.3";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "sha256-I0Blp3o+NVL0b/86UTztufwKVkgO9KNXtBuUrUnbWco=";
+    sha256 = "sha256-S6iBg7nEKCLrFzUnCseTaxFl6/YeRic2tJnBPLuXmWw=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/pkgs/tools/text/markdownlint-cli/default.nix b/pkgs/tools/text/markdownlint-cli/default.nix
index 6916999cb42ef..cfe92cf9e42b1 100644
--- a/pkgs/tools/text/markdownlint-cli/default.nix
+++ b/pkgs/tools/text/markdownlint-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "markdownlint-cli";
-  version = "0.35.0";
+  version = "0.39.0";
 
   src = fetchFromGitHub {
     owner = "igorshubovych";
     repo = "markdownlint-cli";
     rev = "v${version}";
-    hash = "sha256-PkvgZn7cQafKO7p5i1fYYZrWjNcFuX700r223qUMN5I=";
+    hash = "sha256-kNnTSSu55zqOwKCPxXhCmGOseDzAWaB6oToyWDSe0Cc=";
   };
 
-  npmDepsHash = "sha256-hh8T2MRjUJQVibd+cY7vkJvBgNDueWuluGE3HxWOCU8=";
+  npmDepsHash = "sha256-mpqLI9wYxp9g6uO/Peau51KS4KdNmVulb6sVO1uDC6c=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/text/mawk/default.nix b/pkgs/tools/text/mawk/default.nix
index 412467deacca2..54e1e303fd4ce 100644
--- a/pkgs/tools/text/mawk/default.nix
+++ b/pkgs/tools/text/mawk/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mawk";
-  version = "1.3.4-20230525";
+  version = "1.3.4-20240123";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/mawk/mawk-${version}.tgz"
       "https://invisible-mirror.net/archives/mawk/mawk-${version}.tgz"
     ];
-    sha256 = "sha256-VjnRS7kSQ3Oz1/lX0rklrYrZZW1GISw/I9vKgQzJJp8=";
+    sha256 = "sha256-qOMZqDdEsfH7aYjfoYnWGIf4ZukUDMmknrADsrBlXog=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/tools/text/mdbook-admonish/default.nix b/pkgs/tools/text/mdbook-admonish/default.nix
index 074d7cc1fe66f..1fc72d16c3ce3 100644
--- a/pkgs/tools/text/mdbook-admonish/default.nix
+++ b/pkgs/tools/text/mdbook-admonish/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-admonish";
-  version = "1.12.1";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "tommilligan";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-U9boL+Ki4szDwhdPBvXA5iXYjL9LEMVyez8DX35i5gI=";
+    hash = "sha256-31lYwvlpjeg0ZysusMY/PClEPB1tgroE9EvL4yX+2s0=";
   };
 
-  cargoHash = "sha256-cqzY6z4e3ZAVG5HOxkTKYEcAxXu4OsUjpP6SD/LIX74=";
+  cargoHash = "sha256-Cqxgwf121waOsXUGqQJ+GgUqVWK+5kYUl8SL8MtuExs=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/mdbook-footnote/default.nix b/pkgs/tools/text/mdbook-footnote/default.nix
new file mode 100644
index 0000000000000..d69c7e4fdd864
--- /dev/null
+++ b/pkgs/tools/text/mdbook-footnote/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, CoreServices
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "mdbook-footnote";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "daviddrysdale";
+    repo = "mdbook-footnote";
+    rev = "v${version}";
+    hash = "sha256-WUMgm1hwsU9BeheLfb8Di0AfvVQ6j92kXxH2SyG3ses=";
+  };
+
+  cargoSha256 = "sha256-Ig+uVCO5oHIkkvFsKiBiUFzjUgH/Pydn4MVJHb2wKGc=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
+
+  meta = with lib; {
+    description = "A preprocessor for mdbook to support the inclusion of automatically numbered footnotes";
+    homepage = "https://github.com/daviddrysdale/mdbook-footnote";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ brianmcgillion ];
+  };
+}
diff --git a/pkgs/tools/text/mdbook-graphviz/default.nix b/pkgs/tools/text/mdbook-graphviz/default.nix
index cdba18e5b0203..ddb4f48fd2f77 100644
--- a/pkgs/tools/text/mdbook-graphviz/default.nix
+++ b/pkgs/tools/text/mdbook-graphviz/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   nativeCheckInputs = [ graphviz ];
 
   meta = with lib; {
-    description = "A preprocessor for mdbook, rendering Graphviz graphs to HTML at build time.";
+    description = "A preprocessor for mdbook, rendering Graphviz graphs to HTML at build time";
     homepage = "https://github.com/dylanowen/mdbook-graphviz";
     changelog = "https://github.com/dylanowen/mdbook-graphviz/releases/tag/v${version}";
     license = [ licenses.mpl20 ];
diff --git a/pkgs/tools/text/mdbook-i18n-helpers/default.nix b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
index e3485f46295a0..a0c80149d6af4 100644
--- a/pkgs/tools/text/mdbook-i18n-helpers/default.nix
+++ b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
@@ -5,16 +5,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-i18n-helpers";
-  version = "0.2.4";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mdbook-i18n-helpers";
-    rev = "refs/tags/${version}";
-    hash = "sha256-TxSALv/uqRFdv4JZ8BCiAlirMcizGRkw0YxMCBVkgo4=";
+    # TODO fix once upstream uses semver for tags again
+    rev = "refs/tags/mdbook-i18n-helpers-${version}";
+    hash = "sha256-oS1U76BgTW+YnhyLPRTlIg03RR9s5oybFIdCm3MVkvc=";
   };
 
-  cargoHash = "sha256-BhaSK2A/z05a75dEx8c4RHKau1HRJabOcQ6/eLvcdio=";
+  cargoHash = "sha256-bDv6pJTFs6U5vnWy5vcLv28Mjf7zrepsfs+JCu00xkA=";
 
   meta = with lib; {
     description = "Helpers for a mdbook i18n workflow based on Gettext";
diff --git a/pkgs/tools/text/mdbook-katex/default.nix b/pkgs/tools/text/mdbook-katex/default.nix
index 7be47c0c8d4d7..ec4223d27dd52 100644
--- a/pkgs/tools/text/mdbook-katex/default.nix
+++ b/pkgs/tools/text/mdbook-katex/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-katex";
-  version = "0.5.8";
+  version = "0.5.9";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-YFrl0YR/+lDJW8GjLF0wk0D6Bx9zUxAoAXd9twaxrmM=";
+    hash = "sha256-IecCEXoWkjCgIHlhmtF2H+FM/0B8yK4XmHuBHv/yGk8=";
   };
 
-  cargoHash = "sha256-wBaek9AQKwPsg9TzBmS0yBtn1G0KCnmxfmGCGCFNWxc=";
+  cargoHash = "sha256-vHbTL62Z4UdU77VePN2HSRzS9amn33smw1Yy6I2Btcc=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
-    description = "A preprocessor for mdbook, rendering LaTeX equations to HTML at build time.";
+    description = "A preprocessor for mdbook, rendering LaTeX equations to HTML at build time";
     homepage = "https://github.com/lzanini/${pname}";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/tools/text/mdbook-linkcheck/default.nix b/pkgs/tools/text/mdbook-linkcheck/default.nix
index 0d2533eba48df..c144ea4be954d 100644
--- a/pkgs/tools/text/mdbook-linkcheck/default.nix
+++ b/pkgs/tools/text/mdbook-linkcheck/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests.version = testers.testVersion { package = mdbook-linkcheck; };
 
   meta = with lib; {
-    description = "A backend for `mdbook` which will check your links for you.";
+    description = "A backend for `mdbook` which will check your links for you";
     homepage = "https://github.com/Michael-F-Bryan/mdbook-linkcheck";
     license = licenses.mit;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/pkgs/tools/text/mdbook-mermaid/default.nix b/pkgs/tools/text/mdbook-mermaid/default.nix
index 9ca9669fa2014..f5bf827cfd7f7 100644
--- a/pkgs/tools/text/mdbook-mermaid/default.nix
+++ b/pkgs/tools/text/mdbook-mermaid/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-mermaid";
-  version = "0.12.6";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "badboy";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-1mSSnAfsg9AEnDAgINrSLIeu9O2vLqchZPSH12cjATk=";
+    hash = "sha256-Qyt5N6Fito++5lpjDXlzupmguue9kc409IpaDkIRgxw=";
   };
 
-  cargoHash = "sha256-9PMBHVpf8bDuSIYKrIFZjmBE2icejPTML+hhZ4DLq/Y=";
+  cargoHash = "sha256-ji38ZNOZ+SDL7+9dvaRIA38EsqMqYWpSmZntexJqcMU=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreServices
diff --git a/pkgs/tools/text/mdbook-open-on-gh/default.nix b/pkgs/tools/text/mdbook-open-on-gh/default.nix
index a570d68059287..8ce422340ed05 100644
--- a/pkgs/tools/text/mdbook-open-on-gh/default.nix
+++ b/pkgs/tools/text/mdbook-open-on-gh/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-open-on-gh";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "badboy";
     repo = pname;
     rev = version;
-    hash = "sha256-d+8/7lli6iyzAWHIi0ahwPBwGhXrQrCKQisD2+jPHQ0=";
+    hash = "sha256-ZExmOHvQApGZaepOuf3yXYe8NV3FpMtCqCR1KE6q4no=";
   };
 
-  cargoHash = "sha256-WbPYrjDMJEwle+Pev5nr9ZhnycbXUjdrx8XAqQ0OpaM=";
+  cargoHash = "sha256-WLCcYgkrH5fZvv3LZNEolBQUcTZC2URs6bIgzf4BtWU=";
 
   meta = with lib; {
     description = "mdbook preprocessor to add a open-on-github link on every page";
diff --git a/pkgs/tools/text/mdbook-pagetoc/default.nix b/pkgs/tools/text/mdbook-pagetoc/default.nix
index 74e88c8ef358e..5e9738c1c1400 100644
--- a/pkgs/tools/text/mdbook-pagetoc/default.nix
+++ b/pkgs/tools/text/mdbook-pagetoc/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-pagetoc";
-  version = "0.1.7";
+  version = "0.1.8";
 
   src = fetchFromGitHub {
     owner = "slowsage";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-rhg/QDdO44Qwb/z1tQEYK5DcGuUI6cQvpHTYmqYyoWY=";
+    hash = "sha256-yFgzgppGX3moLt7X4Xa6Cqs7v5OYJMjXKTV0sqRFL3o=";
   };
 
-  cargoHash = "sha256-03/bLFbP+BSfRW6wyg7LnryDP0kqvfvYqrFBKFZ2xY8=";
+  cargoHash = "sha256-U5KNkUXqCU3cVYOqap19aYpaTyY91kGaGxcW8oxsUxI=";
 
   meta = with lib; {
     description = "Table of contents for mdbook (in sidebar)";
diff --git a/pkgs/tools/text/mdbook-pdf/default.nix b/pkgs/tools/text/mdbook-pdf/default.nix
index 9ff9a80214f32..18b234a4ec089 100644
--- a/pkgs/tools/text/mdbook-pdf/default.nix
+++ b/pkgs/tools/text/mdbook-pdf/default.nix
@@ -10,14 +10,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-pdf";
-  version = "0.1.7";
+  version = "0.1.8";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-3hyvLLBcS7MLAL707tkvW8LGue/x9DudOYhJDDqAdRg=";
+    hash = "sha256-UPSh0/8HFaLvnU95Gyd+uQaRvWeXlp+HViVUKX0I1jI=";
   };
 
-  cargoHash = "sha256-ecIaKSrkqUsQWchkm9uCTXLuQabzGmEz1UqDR13vX8Y=";
+  cargoHash = "sha256-WYG2EkfEqjOOelxwivk5srtTNLxEPGX1ztwntvgft1I=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/text/mdbook-toc/default.nix b/pkgs/tools/text/mdbook-toc/default.nix
index 52e8070e0794a..b9bf0ca208c8d 100644
--- a/pkgs/tools/text/mdbook-toc/default.nix
+++ b/pkgs/tools/text/mdbook-toc/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-toc";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "badboy";
     repo = pname;
     rev = version;
-    sha256 = "sha256-F0dIqtDEOVUXlWhmXKPOaJTEuA3Tl3h0vaEu7VsBo7s=";
+    sha256 = "sha256-OFNp+kFDafYbzqb7xfPTO885cAjgWfNeDvUPDKq5GJU=";
   };
 
-  cargoHash = "sha256-gbBX6Hj+271BA9FWmkZdyR0tMP2Lny7UgW0o+kZe9bU=";
+  cargoHash = "sha256-95W0gERjwL9r0+DOgxQu+sjSFSThWeShLAqlDQiGxFw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/mdbook/default.nix b/pkgs/tools/text/mdbook/default.nix
index 80afa95330847..aacdf243f997e 100644
--- a/pkgs/tools/text/mdbook/default.nix
+++ b/pkgs/tools/text/mdbook/default.nix
@@ -1,20 +1,29 @@
-{ lib, stdenv, fetchFromGitHub, nix, rustPlatform, CoreServices }:
+{ lib, stdenv, fetchFromGitHub, nix, rustPlatform, CoreServices, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.34";
+  version = "0.4.36";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "mdBook";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-QkgsFnX6J0ZgXCzGE/dTNLxdXLhCFwLsZCvmZ4SU4Zs=";
+    sha256 = "sha256-QQSGnOWRx5KK9eJP759E1V9zFVzvRol5bdJfD9mDr5g=";
   };
 
-  cargoHash = "sha256-Dhblzn7NytYeY76RmvI8cNjChnCSnTPadxPKyU5QT1Q=";
+  cargoHash = "sha256-IlD4YI7jsWZw0Dn1PoljmhuIOqejva8HMhU4ULy32yE=";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
+  postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+    installShellCompletion --cmd mdbook \
+      --bash <($out/bin/mdbook completions bash) \
+      --fish <($out/bin/mdbook completions fish) \
+      --zsh  <($out/bin/mdbook completions zsh )
+  '';
+
   passthru = {
     tests = {
       inherit nix;
diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix
index 86809e28487ea..6fa512c39bf3b 100644
--- a/pkgs/tools/text/mdcat/default.nix
+++ b/pkgs/tools/text/mdcat/default.nix
@@ -13,20 +13,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "2.0.4";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "swsnr";
     repo = "mdcat";
     rev = "mdcat-${version}";
-    hash = "sha256-QGGZv+wk0w01eL6vAsRRUw+CuTdI949sGOM8ot4dGIc=";
+    hash = "sha256-2ThjIv77kdjHyOpGcQplYZXPdu+cN4oBnyHRGptN7f4=";
   };
 
   nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoHash = "sha256-VH9MmASMiD62rxDZSKmrW7N+qp0Fpm7Pcyhxpkpl/oM=";
+  cargoHash = "sha256-y828L8HHkFeem/76yizQWX7DpCGQP+HzJP+pQnxAn70=";
 
   nativeCheckInputs = [ ansi2html ];
   # Skip tests that use the network and that include files.
@@ -56,6 +56,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "cat for markdown";
     homepage = "https://github.com/swsnr/mdcat";
+    changelog = "https://github.com/swsnr/mdcat/releases/tag/mdcat-${version}";
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/tools/text/mdhtml/default.nix b/pkgs/tools/text/mdhtml/default.nix
new file mode 100644
index 0000000000000..4c68eb32d9dde
--- /dev/null
+++ b/pkgs/tools/text/mdhtml/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitea
+}:
+
+buildGoModule rec {
+  pname = "mdhtml";
+  version = "1.0";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "Tomkoid";
+    repo = pname;
+    rev = version;
+    hash = "sha256-Fv5XpWA2ebqXdA+46gZQouuZ3XxH4WDj/W6xJ0ETg8E=";
+  };
+
+  vendorHash = null;
+
+  meta = with lib; {
+    description = "Really simple CLI Markdown to HTML converter with styling support";
+    homepage = "https://codeberg.org/Tomkoid/mdhtml";
+    license = licenses.mit;
+    changelog = "https://codeberg.org/Tomkoid/mdhtml/releases";
+    maintainers = with maintainers; [ tomkoid ];
+    mainProgram = "mdhtml";
+  };
+}
diff --git a/pkgs/tools/text/mecab/base.nix b/pkgs/tools/text/mecab/base.nix
index d52d4e907730e..ea572104238c8 100644
--- a/pkgs/tools/text/mecab/base.nix
+++ b/pkgs/tools/text/mecab/base.nix
@@ -1,4 +1,4 @@
-{ fetchurl }:
+{ fetchurl, libiconv }:
 
 finalAttrs: {
   version = "0.996";
@@ -9,9 +9,15 @@ finalAttrs: {
     hash = "sha256-4HMyV4MTW3LmZhRceBu0j62lg9UiT7JJD7bBQDumnFk=";
   };
 
+  buildInputs = [ libiconv ];
+
   configureFlags = [
     "--with-charset=utf8"
   ];
 
+  # mecab uses several features that have been removed in C++17.
+  # Force the language mode to C++14, so that it can compile with clang 16.
+  makeFlags = [ "CXXFLAGS=-std=c++14" ];
+
   doCheck = true;
 }
diff --git a/pkgs/tools/text/mecab/default.nix b/pkgs/tools/text/mecab/default.nix
index 58396d2aa4621..f1f9fc6503c81 100644
--- a/pkgs/tools/text/mecab/default.nix
+++ b/pkgs/tools/text/mecab/default.nix
@@ -1,13 +1,14 @@
-{ lib, stdenv, fetchurl, mecab-ipadic }:
+{ lib, stdenv, fetchurl, mecab-ipadic, libiconv }:
 
 let
-  mecab-base = import ./base.nix { inherit fetchurl; };
+  mecab-base = import ./base.nix { inherit fetchurl libiconv; };
 in
 stdenv.mkDerivation (finalAttrs: ((mecab-base finalAttrs) // {
   pname = "mecab";
 
   postInstall = ''
-    sed -i 's|^dicdir = .*$|dicdir = ${mecab-ipadic}|' "$out/etc/mecabrc"
+    mkdir -p $out/lib/mecab/dic
+    ln -s ${mecab-ipadic} $out/lib/mecab/dic/ipadic
   '';
 
   meta = with lib; {
@@ -16,6 +17,6 @@ stdenv.mkDerivation (finalAttrs: ((mecab-base finalAttrs) // {
     license = licenses.bsd3;
     platforms = platforms.unix;
     mainProgram = "mecab";
-    maintainers = with maintainers; [ auntie paveloom ];
+    maintainers = with maintainers; [ auntie ];
   };
 }))
diff --git a/pkgs/tools/text/mecab/nodic.nix b/pkgs/tools/text/mecab/nodic.nix
index 5e33b09db1453..a40e2a19698d8 100644
--- a/pkgs/tools/text/mecab/nodic.nix
+++ b/pkgs/tools/text/mecab/nodic.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, libiconv }:
 
 let
-  mecab-base = import ./base.nix { inherit fetchurl; };
+  mecab-base = import ./base.nix { inherit fetchurl libiconv; };
 in
 stdenv.mkDerivation (finalAttrs: ((mecab-base finalAttrs) // {
   pname = "mecab-nodic";
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
index 3a4198fa630eb..f1fd15b1fb963 100644
--- a/pkgs/tools/text/miller/default.nix
+++ b/pkgs/tools/text/miller/default.nix
@@ -2,16 +2,23 @@
 
 buildGoModule rec {
   pname = "miller";
-  version = "6.9.0";
+  version = "6.11.0";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "sha256-g2Jnqo3U9acyqohGpcEEogq871qJQTc7k0/oIawAQW8=";
+    sha256 = "sha256-MmQBj3ANiObyTsAW55Bh9p94Pu+ynySaxHjHjpBacno=";
   };
 
-  vendorHash = "sha256-/1/FTQL3Ki8QzL+1J4Ah8kwiJyGPd024di/1MC8gtkE=";
+  outputs = [ "out" "man" ];
+
+  vendorHash = "sha256-K9B++jinB8iRWb96Lha/gM8/3vPQNd4LoZggGXh7VD4=";
+
+  postInstall = ''
+    mkdir -p $man/share/man/man1
+    mv ./man/mlr.1 $man/share/man/man1
+  '';
 
   subPackages = [ "cmd/mlr" ];
 
diff --git a/pkgs/tools/text/nerdfix/default.nix b/pkgs/tools/text/nerdfix/default.nix
index 91a34796518df..8bb9113f013ac 100644
--- a/pkgs/tools/text/nerdfix/default.nix
+++ b/pkgs/tools/text/nerdfix/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nerdfix";
-  version = "0.3.1";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "loichyan";
     repo = "nerdfix";
     rev = "v${version}";
-    hash = "sha256-cqTaup/MrtLcBIoY+1vQLLlU+Cmu3iODH4jmZImjGrg=";
+    hash = "sha256-V9f39/9k9kYjngYOSXJYblaKDABPCZbVWxD0p3ZWzlY=";
   };
 
-  cargoHash = "sha256-V/M70ARqOyN0f/uudWPHc4bGc3WXK3PpcM8r2MBEWAs=";
+  cargoHash = "sha256-PkUQZPLzvVJ7s1D9TkMmgIVQiR/E79BRCYmjZVcHIv8=";
 
   meta = with lib; {
     description = "Nerdfix helps you to find/fix obsolete nerd font icons in your project";
diff --git a/pkgs/tools/text/nltk_data/default.nix b/pkgs/tools/text/nltk_data/default.nix
index 118598083d5df..6445dd8c06e21 100644
--- a/pkgs/tools/text/nltk_data/default.nix
+++ b/pkgs/tools/text/nltk_data/default.nix
@@ -48,6 +48,11 @@ lib.makeScope newScope (self: {
     location = "taggers";
     hash = "sha256-ilTs4HWPUoHxQb4kWEy3wJ6QsE/98+EQya44gtV2inw=";
   });
+  snowball_data = makeNltkDataPackage ({
+    pname = "snowball_data";
+    location = "stemmers";
+    hash = "sha256-Y6LERPtaRbCtWmJCvMAd2xH02xdrevZBFNYvP9N4+3s=";
+  });
   stopwords = makeNltkDataPackage ({
     pname = "stopwords";
     location = "corpora";
diff --git a/pkgs/tools/text/opencc/default.nix b/pkgs/tools/text/opencc/default.nix
index 97f417b1b64e2..4093554604f62 100644
--- a/pkgs/tools/text/opencc/default.nix
+++ b/pkgs/tools/text/opencc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencc";
-  version = "1.1.6";
+  version = "1.1.7";
 
   src = fetchFromGitHub {
     owner = "BYVoid";
     repo = "OpenCC";
     rev = "ver.${version}";
-    sha256 = "sha256-0aIYnUuG5XATruxwY6+LZbEdKkHP3X1N1ueVE7R37Qk=";
+    sha256 = "sha256-N7nazA0xoQ2ewOGDiJg1vBBYMdF1/qiCfNjG5CFFbuk=";
   };
 
   nativeBuildInputs = [ cmake python3 ];
diff --git a/pkgs/tools/text/ov/default.nix b/pkgs/tools/text/ov/default.nix
index e988f1c2f204d..ff5a076c6ecf2 100644
--- a/pkgs/tools/text/ov/default.nix
+++ b/pkgs/tools/text/ov/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "ov";
-  version = "0.32.0";
+  version = "0.33.2";
 
   src = fetchFromGitHub {
     owner = "noborus";
     repo = "ov";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mQ1KwElD8RizOT2trHWo4T1QiZ974xwhQCCa5snpnZM=";
+    hash = "sha256-EaAguJPr/FVDfmfbC26zpmkZFnX+3Cdez/zvx2lr4jM=";
   };
 
-  vendorHash = "sha256-XACdtJdACMKQ5gSJcjGAPNGPFL1Tbt6QOovl15mvFGI=";
+  vendorHash = "sha256-/S7YKIwuZyQBGIbcPt/ffv8Vx6vzXsk/fDRCIXANPTE=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/text/percollate/default.nix b/pkgs/tools/text/percollate/default.nix
index 6c1ce360da20e..ea55446aac6e7 100644
--- a/pkgs/tools/text/percollate/default.nix
+++ b/pkgs/tools/text/percollate/default.nix
@@ -2,21 +2,21 @@
 
 buildNpmPackage rec {
   pname = "percollate";
-  version = "4.0.2";
+  version = "4.0.5";
 
   src = fetchFromGitHub {
     owner = "danburzo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QLbLg/zdDCZsRKgC4vR0OT//JHaapGmX33l7jIqUc1M=";
+    hash = "sha256-St9a22Af2QV3gOR80LmDMeq0x9tf/ZJz9Z4IgeeM80I=";
   };
 
-  npmDepsHash = "sha256-Hxhgjdiz0zC/UlFXK8vvKZFI963Wi2Wx6iHWegr6f10=";
+  npmDepsHash = "sha256-WHOv5N893G35bMC03aGb2m7rQz5xIRd9hPldbRku+RY=";
 
   dontNpmBuild = true;
 
   # Dev dependencies include an unnecessary Java dependency (epubchecker)
-  # https://github.com/danburzo/percollate/blob/v4.0.2/package.json#L40
+  # https://github.com/danburzo/percollate/blob/v4.0.5/package.json#L40
   npmInstallFlags = [ "--omit=dev" ];
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/text/platinum-searcher/default.nix b/pkgs/tools/text/platinum-searcher/default.nix
index cbca59bdc6e58..4271fe131dac9 100644
--- a/pkgs/tools/text/platinum-searcher/default.nix
+++ b/pkgs/tools/text/platinum-searcher/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "the_platinum_searcher";
-  version = "2.1.5";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "monochromegane";
     repo = "the_platinum_searcher";
     rev = "v${version}";
-    hash = "sha256-AJsFLleZf5yhLY5UZnaQUBQYntzBLXFh6jU2UtKg8/g=";
+    hash = "sha256-FNHlALFwMbajaHWOehdSFeQmvZSuCZLdqGqLZ7DF+pI=";
   };
 
   vendorHash = "sha256-GIjPgu0e+duN5MeWcRaF5xUFCkqe2aZJCwGbLUMko08=";
diff --git a/pkgs/tools/text/poedit/default.nix b/pkgs/tools/text/poedit/default.nix
index 2a01b58c3a6c3..7e8b78fda19f8 100644
--- a/pkgs/tools/text/poedit/default.nix
+++ b/pkgs/tools/text/poedit/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "3.3.2";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "poedit";
     rev = "v${version}-oss";
-    hash = "sha256-4WImcTr2nWIdsYJ9ADztvjKEzHK4F8qpJ0QGMOfB3ng=";
+    hash = "sha256-CfCWfKRzeGGk8/B0BLauO4Xb88/Si1ezvcGKeURgC9o=";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook
diff --git a/pkgs/tools/text/pomsky/Cargo.lock b/pkgs/tools/text/pomsky/Cargo.lock
index 9c93b91631e17..2064e8c6a1ffc 100644
--- a/pkgs/tools/text/pomsky/Cargo.lock
+++ b/pkgs/tools/text/pomsky/Cargo.lock
@@ -3,65 +3,39 @@
 version = 3
 
 [[package]]
-name = "ahash"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "anes"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "anstyle"
-version = "0.3.5"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "arbitrary"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e"
+checksum = "a2e1373abdaa212b704512ec2bd8b26bd0b7d5c3f70117411a5d9a451383c859"
 dependencies = [
  "derive_arbitrary",
 ]
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.10"
+version = "2.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0b2340f55d9661d76793b2bfc2eb0e62689bd79d067a95707ea762afd5e9dd"
+checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
 dependencies = [
  "anstyle",
  "bstr",
  "doc-comment",
- "predicates 3.0.1",
+ "predicates 3.0.4",
  "predicates-core",
  "predicates-tree",
  "wait-timeout",
@@ -69,31 +43,20 @@ dependencies = [
 
 [[package]]
 name = "assert_fs"
-version = "1.0.12"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9d5bf7e5441c6393b5a9670a5036abe6b4847612f594b870f7332dbf10cf6fa"
+checksum = "f070617a68e5c2ed5d06ee8dd620ee18fb72b99f6c094bed34cf8ab07c875b48"
 dependencies = [
  "anstyle",
  "doc-comment",
  "globwalk",
- "predicates 3.0.1",
+ "predicates 3.0.4",
  "predicates-core",
  "predicates-tree",
  "tempfile",
 ]
 
 [[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
-
-[[package]]
 name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -103,22 +66,20 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 name = "benchmark"
 version = "0.1.3"
 dependencies = [
- "criterion",
+ "divan",
  "melody_compiler",
  "pomsky",
 ]
 
 [[package]]
 name = "bindgen"
-version = "0.59.2"
+version = "0.64.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8"
+checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cexpr",
  "clang-sys",
- "clap 2.34.0",
- "env_logger",
  "lazy_static",
  "lazycell",
  "log",
@@ -128,6 +89,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
+ "syn 1.0.109",
  "which",
 ]
 
@@ -138,6 +100,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
 name = "block-buffer"
 version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -148,35 +116,23 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.4.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09"
+checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019"
 dependencies = [
  "memchr",
- "once_cell",
  "regex-automata",
  "serde",
 ]
 
 [[package]]
-name = "bumpalo"
-version = "3.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
-
-[[package]]
-name = "cast"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
-
-[[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
+ "libc",
 ]
 
 [[package]]
@@ -195,37 +151,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
-name = "ciborium"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
-dependencies = [
- "ciborium-io",
- "ciborium-ll",
- "serde",
-]
-
-[[package]]
-name = "ciborium-io"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
-
-[[package]]
-name = "ciborium-ll"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
-dependencies = [
- "ciborium-io",
- "half",
-]
-
-[[package]]
 name = "clang-sys"
-version = "1.6.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
 dependencies = [
  "glob",
  "libc",
@@ -234,124 +163,43 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "2.34.0"
+version = "4.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
 dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim 0.8.0",
- "textwrap 0.11.0",
- "unicode-width",
- "vec_map",
+ "clap_builder",
 ]
 
 [[package]]
-name = "clap"
-version = "3.2.23"
+name = "clap_builder"
+version = "4.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
 dependencies = [
- "bitflags",
+ "anstyle",
  "clap_lex",
- "indexmap",
- "textwrap 0.16.0",
+ "terminal_size 0.3.0",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-dependencies = [
- "os_str_bytes",
-]
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "criterion"
-version = "0.3.6"
-source = "git+https://github.com/bheisler/criterion.rs?branch=version-0.4#935c6327e152e44f2b9178797682b9b99b5123a5"
-dependencies = [
- "anes",
- "atty",
- "cast",
- "ciborium",
- "clap 3.2.23",
- "criterion-plot",
- "itertools",
- "lazy_static",
- "num-traits",
- "oorandom",
- "plotters",
- "rayon",
- "regex",
- "serde",
- "serde_derive",
- "serde_json",
- "tinytemplate",
- "walkdir",
-]
-
-[[package]]
-name = "criterion-plot"
-version = "0.4.5"
-source = "git+https://github.com/bheisler/criterion.rs?branch=version-0.4#935c6327e152e44f2b9178797682b9b99b5123a5"
-dependencies = [
- "cast",
- "itertools",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.7"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
+checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
 
 [[package]]
-name = "crossbeam-deque"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.14"
+name = "condtype"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "memoffset",
- "scopeguard",
-]
+checksum = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af"
 
 [[package]]
-name = "crossbeam-utils"
-version = "0.8.15"
+name = "cpufeatures"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
- "cfg-if",
+ "libc",
 ]
 
 [[package]]
@@ -366,13 +214,13 @@ dependencies = [
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7"
+checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -383,68 +231,65 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
 ]
 
 [[package]]
-name = "doc-comment"
-version = "0.3.3"
+name = "divan"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+checksum = "fab20f5802e0b897093184f5dc5d23447fa715604f238dc798f6da188b230019"
+dependencies = [
+ "clap",
+ "condtype",
+ "divan-macros",
+ "linkme",
+ "regex-lite",
+]
 
 [[package]]
-name = "either"
-version = "1.8.1"
+name = "divan-macros"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "1c5d6354551e0b5c451a948814fc47fe745a14eac7835c087d60162661019db4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
 
 [[package]]
-name = "env_logger"
-version = "0.9.3"
+name = "doc-comment"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
-name = "errno"
-version = "0.2.8"
+name = "either"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "winapi",
-]
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "errno"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys",
 ]
 
 [[package]]
 name = "fastrand"
-version = "1.9.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "float-cmp"
@@ -463,26 +308,15 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
 ]
 
 [[package]]
-name = "getrandom"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
 name = "glob"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -490,9 +324,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
-version = "0.4.10"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
+checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
 dependencies = [
  "aho-corasick",
  "bstr",
@@ -507,61 +341,31 @@ version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "ignore",
  "walkdir",
 ]
 
 [[package]]
-name = "half"
-version = "1.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash",
-]
-
-[[package]]
 name = "helptext"
 version = "0.1.0"
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
-name = "hermit-abi"
-version = "0.2.6"
+name = "home"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
 dependencies = [
- "libc",
+ "windows-sys",
 ]
 
 [[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
 name = "ignore"
 version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -579,45 +383,14 @@ dependencies = [
 ]
 
 [[package]]
-name = "indexmap"
-version = "1.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
-dependencies = [
- "autocfg",
- "hashbrown",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb"
-dependencies = [
- "hermit-abi 0.3.1",
- "libc",
- "windows-sys 0.45.0",
-]
-
-[[package]]
 name = "is-terminal"
-version = "0.4.5"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
+ "hermit-abi",
  "rustix",
- "windows-sys 0.45.0",
+ "windows-sys",
 ]
 
 [[package]]
@@ -636,27 +409,27 @@ dependencies = [
 ]
 
 [[package]]
-name = "itoa"
-version = "1.0.6"
+name = "itertools"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
 
 [[package]]
-name = "jobserver"
-version = "0.1.26"
+name = "itoa"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
-dependencies = [
- "libc",
-]
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
-name = "js-sys"
-version = "0.3.61"
+name = "jobserver"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
- "wasm-bindgen",
+ "libc",
 ]
 
 [[package]]
@@ -679,9 +452,9 @@ checksum = "baff4b617f7df3d896f97fe922b64817f6cd9a756bb81d40f8883f2f66dcb401"
 
 [[package]]
 name = "libc"
-version = "0.2.140"
+version = "0.2.149"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
 
 [[package]]
 name = "libloading"
@@ -694,25 +467,42 @@ dependencies = [
 ]
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.1.4"
+name = "linkme"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+checksum = "91ed2ee9464ff9707af8e9ad834cffa4802f072caad90639c583dd3c62e6e608"
+dependencies = [
+ "linkme-impl",
+]
 
 [[package]]
-name = "log"
-version = "0.4.17"
+name = "linkme-impl"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+checksum = "ba125974b109d512fccbc6c0244e7580143e460895dfd6ea7f8bbb692fd94396"
 dependencies = [
- "cfg-if",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
 ]
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
 name = "melody_compiler"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c65dfed91963cb9aa714e283edbc99cfffc3a971f9ea816eed3dbf593d378d6"
+checksum = "7684213d4adcea6264d0fd61379a0eb9968d0866de0f05c75dee3af02a6c6ff8"
 dependencies = [
  "once_cell",
  "pest",
@@ -722,24 +512,15 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memoffset"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
-dependencies = [
- "autocfg",
-]
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "miette"
-version = "5.6.0"
+version = "5.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07749fb52853e739208049fb513287c6f448de9103dfa78b05ae01f2fc5809bb"
+checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e"
 dependencies = [
  "is-terminal",
  "miette-derive",
@@ -748,21 +529,21 @@ dependencies = [
  "supports-color",
  "supports-hyperlinks",
  "supports-unicode",
- "terminal_size",
- "textwrap 0.15.2",
+ "terminal_size 0.1.17",
+ "textwrap",
  "thiserror",
  "unicode-width",
 ]
 
 [[package]]
 name = "miette-derive"
-version = "5.6.0"
+version = "5.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a07ad93a80d1b92bb44cb42d7c49b49c9aab1778befefad49cceb5e4c5bf460"
+checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -789,28 +570,18 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
-name = "num_cpus"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
-dependencies = [
- "hermit-abi 0.2.6",
- "libc",
-]
-
-[[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "onig"
@@ -818,7 +589,7 @@ version = "6.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "libc",
  "once_cell",
  "onig_sys",
@@ -827,8 +598,7 @@ dependencies = [
 [[package]]
 name = "onig_sys"
 version = "69.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
+source = "git+https://github.com/rust-onig/rust-onig#fa90c0e97e90a056af89f183b23cd417b59ee6a2"
 dependencies = [
  "bindgen",
  "cc",
@@ -836,18 +606,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "oorandom"
-version = "11.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
-
-[[package]]
 name = "owo-colors"
 version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -855,21 +613,20 @@ checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
 
 [[package]]
 name = "pcre2"
-version = "0.2.3"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85b30f2f69903b439dd9dc9e824119b82a55bf113b29af8d70948a03c1b11ab1"
+checksum = "9deb1d02d6a373ee392128ba86087352a986359f32a106e2e3b08cc90cc659c9"
 dependencies = [
  "libc",
  "log",
  "pcre2-sys",
- "thread_local",
 ]
 
 [[package]]
 name = "pcre2-sys"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dec30e5e9ec37eb8fbf1dea5989bc957fd3df56fbee5061aa7b7a99dbb37b722"
+checksum = "ae234f441970dbd52d4e29bee70f3b56ca83040081cb2b55b7df772b16e0b06e"
 dependencies = [
  "cc",
  "libc",
@@ -884,19 +641,20 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pest"
-version = "2.5.6"
+version = "2.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7"
+checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4"
 dependencies = [
+ "memchr",
  "thiserror",
  "ucd-trie",
 ]
 
 [[package]]
 name = "pest_derive"
-version = "2.5.6"
+version = "2.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7"
+checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8"
 dependencies = [
  "pest",
  "pest_generator",
@@ -904,22 +662,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.5.6"
+version = "2.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b"
+checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.5.6"
+version = "2.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80"
+checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d"
 dependencies = [
  "once_cell",
  "pest",
@@ -928,47 +686,17 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
-
-[[package]]
-name = "plotters"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
-dependencies = [
- "num-traits",
- "plotters-backend",
- "plotters-svg",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "plotters-backend"
-version = "0.3.4"
+version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
-
-[[package]]
-name = "plotters-svg"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
-dependencies = [
- "plotters-backend",
-]
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "pomsky"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "arbitrary",
- "atty",
  "lexopt",
  "miette",
- "once_cell",
  "pomsky-syntax",
  "regex",
  "regex-test",
@@ -976,14 +704,14 @@ dependencies = [
 
 [[package]]
 name = "pomsky-bin"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "assert_cmd",
  "assert_fs",
- "atty",
  "helptext",
  "lexopt",
  "miette",
+ "pcre2",
  "pomsky",
  "predicates 2.1.5",
  "serde",
@@ -993,17 +721,17 @@ dependencies = [
 
 [[package]]
 name = "pomsky-macro"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "pomsky",
 ]
 
 [[package]]
 name = "pomsky-syntax"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "arbitrary",
- "strsim 0.10.0",
+ "strsim",
 ]
 
 [[package]]
@@ -1014,7 +742,7 @@ checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd"
 dependencies = [
  "difflib",
  "float-cmp",
- "itertools",
+ "itertools 0.10.5",
  "normalize-line-endings",
  "predicates-core",
  "regex",
@@ -1022,13 +750,13 @@ dependencies = [
 
 [[package]]
 name = "predicates"
-version = "3.0.1"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba7d6ead3e3966038f68caa9fc1f860185d95a793180bbcfe0d0da47b3961ed"
+checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
 dependencies = [
  "anstyle",
  "difflib",
- "itertools",
+ "itertools 0.11.0",
  "predicates-core",
 ]
 
@@ -1050,58 +778,48 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.52"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
-name = "rayon"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.11.0"
+name = "redox_syscall"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
-name = "redox_syscall"
-version = "0.2.16"
+name = "regex"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
- "bitflags",
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
 ]
 
 [[package]]
-name = "regex"
-version = "1.7.2"
+name = "regex-automata"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1109,16 +827,16 @@ dependencies = [
 ]
 
 [[package]]
-name = "regex-automata"
-version = "0.1.10"
+name = "regex-lite"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.29"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "regex-test"
@@ -1137,23 +855,22 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.36.11"
+version = "0.38.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e"
+checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.1",
  "errno",
- "io-lifetimes",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.45.0",
+ "windows-sys",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "same-file"
@@ -1165,36 +882,30 @@ dependencies = [
 ]
 
 [[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
 name = "serde"
-version = "1.0.158"
+version = "1.0.189"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9"
+checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.158"
+version = "1.0.189"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad"
+checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.4",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.94"
+version = "1.0.107"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
+checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
 dependencies = [
  "itoa",
  "ryu",
@@ -1203,9 +914,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.6"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1214,21 +925,15 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
 
 [[package]]
 name = "smawk"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
 
 [[package]]
 name = "strsim"
@@ -1238,9 +943,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "supports-color"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4950e7174bffabe99455511c39707310e7e9b440364a2fcb1cc21521be57b354"
+checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89"
 dependencies = [
  "is-terminal",
  "is_ci",
@@ -1248,9 +953,9 @@ dependencies = [
 
 [[package]]
 name = "supports-hyperlinks"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b4806e0b03b9906e76b018a5d821ebf198c8e9dc0829ed3328eeeb5094aed60"
+checksum = "f84231692eb0d4d41e4cdd0cabfdd2e6cd9e255e65f80c9aa7c98dd502b4233d"
 dependencies = [
  "is-terminal",
 ]
@@ -1277,9 +982,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.4"
+version = "2.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c622ae390c9302e214c31013517c2061ecb2699935882c60a9b37f82f8625ae"
+checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1288,34 +993,35 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.4.0"
+version = "3.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
+checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
 dependencies = [
  "cfg-if",
  "fastrand",
  "redox_syscall",
  "rustix",
- "windows-sys 0.42.0",
+ "windows-sys",
 ]
 
 [[package]]
-name = "termcolor"
-version = "1.2.0"
+name = "terminal_size"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
 dependencies = [
- "winapi-util",
+ "libc",
+ "winapi",
 ]
 
 [[package]]
 name = "terminal_size"
-version = "0.1.17"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "libc",
- "winapi",
+ "rustix",
+ "windows-sys",
 ]
 
 [[package]]
@@ -1326,15 +1032,6 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "textwrap"
 version = "0.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b7b3e525a49ec206798b40326a44121291b530c963cfb01018f63e135bac543d"
@@ -1345,29 +1042,23 @@ dependencies = [
 ]
 
 [[package]]
-name = "textwrap"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-
-[[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.49"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.49"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.4",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -1381,54 +1072,34 @@ dependencies = [
 ]
 
 [[package]]
-name = "tinytemplate"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
-dependencies = [
- "serde",
- "serde_json",
-]
-
-[[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "ucd-trie"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-linebreak"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
-dependencies = [
- "hashbrown",
- "regex",
-]
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "version_check"
@@ -1447,93 +1118,24 @@ dependencies = [
 
 [[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
  "winapi-util",
 ]
 
 [[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
-
-[[package]]
-name = "web-sys"
-version = "0.3.61"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
 name = "which"
-version = "4.4.0"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
 dependencies = [
  "either",
- "libc",
+ "home",
  "once_cell",
+ "rustix",
 ]
 
 [[package]]
@@ -1554,9 +1156,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -1569,33 +1171,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
  "windows-targets",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -1608,42 +1195,42 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
diff --git a/pkgs/tools/text/pomsky/default.nix b/pkgs/tools/text/pomsky/default.nix
index 45e44b06e8a5b..474ea404c937a 100644
--- a/pkgs/tools/text/pomsky/default.nix
+++ b/pkgs/tools/text/pomsky/default.nix
@@ -1,23 +1,36 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchFromGitHub, pkg-config, oniguruma }:
 
 rustPlatform.buildRustPackage rec {
   pname = "pomsky";
-  version = "0.10";
+  version = "0.11";
 
   src = fetchFromGitHub {
     owner = "pomsky-lang";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-V4WztquClcBQF74c8WalWITT+SRymEawLXmvTflNEGk=";
+    hash = "sha256-BoA59P0jzV08hlFO7NPB9E+fdpYB9G50dNggFkexc/c=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "criterion-0.3.6" = "sha256-biFm0+AjKLwV9yHgCaK6E6L6W+6sRbnY2QOKVhv/1C8=";
+      "onig_sys-69.8.1" = "sha256-NJv/Dooh93yQ9KYyuNBhO1c4U7Gd7X007ECXyRsztrY=";
     };
   };
 
+  nativeBuildInputs = [
+    pkg-config
+    rustPlatform.bindgenHook
+  ];
+
+  buildInputs = [
+    oniguruma
+  ];
+
+  env = {
+    RUSTONIG_SYSTEM_LIBONIG = true;
+  };
+
   # thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: invalid option '--test-threads''
   doCheck = false;
 
diff --git a/pkgs/tools/text/qgrep/default.nix b/pkgs/tools/text/qgrep/default.nix
deleted file mode 100644
index 7db56539bf2e2..0000000000000
--- a/pkgs/tools/text/qgrep/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, CoreServices, CoreFoundation, fetchpatch }:
-
-stdenv.mkDerivation rec {
-  version = "1.1";
-  pname = "qgrep";
-
-  src = fetchFromGitHub {
-    owner = "zeux";
-    repo = "qgrep";
-    rev = "v${version}";
-    sha256 = "046ccw34vz2k5jn6gyxign5gs2qi7i50jy9b74wqv7sjf5zayrh0";
-    fetchSubmodules = true;
-  };
-
-  patches = lib.optionals stdenv.isDarwin [
-    (fetchpatch {
-      url = "https://github.com/zeux/qgrep/commit/21c4d1a5ab0f0bdaa0b5ca993c1315c041418cc6.patch";
-      sha256 = "0wpxzrd9pmhgbgby17vb8279xwvkxfdd99gvv7r74indgdxqg7v8";
-    })
-  ];
-
-  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices CoreFoundation ];
-
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12") [
-    # Needed with GCC 12 but breaks on darwin (with clang) or older gcc
-    "-Wno-error=mismatched-new-delete"
-  ]);
-
-  postPatch = lib.optionalString stdenv.isAarch64 ''
-    substituteInPlace Makefile \
-      --replace "-msse2" "" --replace "-DUSE_SSE2" ""
-  '';
-
-  installPhase = ''
-    install -Dm755 qgrep $out/bin/qgrep
-  '';
-
-  meta = with lib; {
-    description = "Fast regular expression grep for source code with incremental index updates";
-    homepage = "https://github.com/zeux/qgrep";
-    license = licenses.mit;
-    maintainers = [ maintainers.yrashk ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/tools/text/repgrep/default.nix b/pkgs/tools/text/repgrep/default.nix
index cefc0fba03494..607aa230569b3 100644
--- a/pkgs/tools/text/repgrep/default.nix
+++ b/pkgs/tools/text/repgrep/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
 , asciidoctor
@@ -9,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "repgrep";
-  version = "0.14.3";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "acheronfail";
     repo = "repgrep";
     rev = version;
-    hash = "sha256-33b0dZJY/lnVJGMfAg/faD6PPJIFZsvMZOmKAqCZw8k=";
+    hash = "sha256-6ba7EJUts0Ni9EA3ENlK+a2FaPo7JohtCyqwR9DdL1E=";
   };
 
-  cargoHash = "sha256-UMMTdWJ0/M8lN4abTJEVUGtoNp/g49DyW+OASg3TKfg=";
+  cargoHash = "sha256-XEjKTZ3qaiLWbm2wF+V97u9tGXDq/oTm249ubUE9n94=";
 
   nativeBuildInputs = [
     asciidoctor
@@ -32,8 +33,13 @@ rustPlatform.buildRustPackage rec {
 
     pushd "$(dirname "$(find -path '**/repgrep-stamp' | head -n 1)")"
     installManPage rgr.1
-    installShellCompletion rgr.{bash,fish} _rgr
     popd
+  '' + lib.optionalString (stdenv.hostPlatform.canExecute stdenv.buildPlatform) ''
+    # As it can be seen here: https://github.com/acheronfail/repgrep/blob/0.15.0/.github/workflows/release.yml#L206, the completions are just the same as ripgrep
+    installShellCompletion --cmd rgr \
+      --bash <(${lib.getExe ripgrep} --generate complete-bash | sed 's/-c rg/-c rgr/') \
+      --zsh <(${lib.getExe ripgrep} --generate complete-zsh | sed 's/-c rg/-c rgr/') \
+      --fish <(${lib.getExe ripgrep} --generate complete-fish | sed 's/-c rg/-c rgr/')
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/text/reveal-md/default.nix b/pkgs/tools/text/reveal-md/default.nix
index 0ae05e59025df..0cddbf34093a6 100644
--- a/pkgs/tools/text/reveal-md/default.nix
+++ b/pkgs/tools/text/reveal-md/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "reveal-md";
-  version = "5.5.1";
+  version = "5.5.2";
 
   src = fetchFromGitHub {
     owner = "webpro";
     repo = "reveal-md";
     rev = version;
-    hash = "sha256-BlUZsETMdOmnz+OFGQhQ9aLHxIIAZ12X1ipy3u59zxo=";
+    hash = "sha256-Uge7N6z9O1wc+nW/0k5qz+CPYbYgr7u2mulH75pXvHY=";
   };
 
-  npmDepsHash = "sha256-xaDBB16egGi8zThHRrhcN8TVf6Nqkx8fkbxWqvJwJb4=";
+  npmDepsHash = "sha256-+gzur0pAmZe4nrDxNQwjFn/hM9TvZEd6JzLOnJLhNtg=";
 
   env = {
     PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = true;
diff --git a/pkgs/tools/text/riffdiff/default.nix b/pkgs/tools/text/riffdiff/default.nix
index cd5e2caa8f0da..8b71eeec4818f 100644
--- a/pkgs/tools/text/riffdiff/default.nix
+++ b/pkgs/tools/text/riffdiff/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "riffdiff";
-  version = "2.27.0";
+  version = "2.27.1";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = "riff";
     rev = version;
-    hash = "sha256-yrIZsCxoFV9LFh96asYxpAYv1KvrLq+RlqL8gZXaeak=";
+    hash = "sha256-cW43nt8Go4VjEwXpCieGYIXwG1XMexslgriMsZ0BB1g=";
   };
 
-  cargoHash = "sha256-tO49qAEW15q76hLcHOtniwLqGy29MZ/dabyZHYAsiME=";
+  cargoHash = "sha256-phTo0XvCiTnBFF5r5myvwmiWnpcYLnkaMLcaXw4oL/Y=";
 
   meta = with lib; {
     description = "A diff filter highlighting which line parts have changed";
diff --git a/pkgs/tools/security/chainsaw/Cargo.lock b/pkgs/tools/text/ripgrep-all/Cargo.lock
index 8ddb4bbf29e09..aefe51f87f928 100644
--- a/pkgs/tools/security/chainsaw/Cargo.lock
+++ b/pkgs/tools/text/ripgrep-all/Cargo.lock
@@ -3,26 +3,63 @@
 version = 3
 
 [[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.4"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
 name = "android-tzdata"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -38,85 +75,165 @@ dependencies = [
 ]
 
 [[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
 name = "anstream"
-version = "0.3.2"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
- "is-terminal",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.1"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "1.0.2"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.73"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f768393e7fabd388fe8409b13faa4d93ab0fef35db1508438dfdb066918bcf38"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+dependencies = [
+ "backtrace",
+]
 
 [[package]]
-name = "arrayref"
-version = "0.3.7"
+name = "async-compression"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a"
+dependencies = [
+ "bzip2",
+ "flate2",
+ "futures-core",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+ "xz2",
+ "zstd 0.11.2+zstd.1.5.2",
+ "zstd-safe 5.0.2+zstd.1.5.2",
+]
 
 [[package]]
-name = "arrayvec"
-version = "0.7.4"
+name = "async-compression"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
+dependencies = [
+ "brotli",
+ "bzip2",
+ "deflate64",
+ "flate2",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+ "xz2",
+ "zstd 0.13.0",
+ "zstd-safe 7.0.0",
+]
 
 [[package]]
-name = "assert_cmd"
-version = "2.0.12"
+name = "async-recursion"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
+checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
- "anstyle",
- "bstr",
- "doc-comment",
- "predicates",
- "predicates-core",
- "predicates-tree",
- "wait-timeout",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "async-stream"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "async_zip"
+version = "0.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2105142db9c6203b9dadc83b0553394589a6cb31b1449a3b46b42f47c3434d0"
+dependencies = [
+ "async-compression 0.3.15",
+ "chrono",
+ "crc32fast",
+ "log",
+ "pin-project",
+ "thiserror",
+ "tokio",
 ]
 
 [[package]]
@@ -137,10 +254,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
 name = "base64"
-version = "0.21.2"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "bincode"
@@ -159,105 +291,77 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
-name = "blake3"
-version = "1.4.1"
+name = "brotli"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "199c42ab6972d92c9f8995f086273d25c42fc0f7b2a1fcefba465c1352d25ba5"
+checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
 dependencies = [
- "arrayref",
- "arrayvec",
- "cc",
- "cfg-if",
- "constant_time_eq",
- "digest",
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
 ]
 
 [[package]]
-name = "block-buffer"
-version = "0.10.4"
+name = "brotli-decompressor"
+version = "2.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
 dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "bstr"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
-dependencies = [
- "memchr",
- "regex-automata",
- "serde",
+ "alloc-no-stdlib",
+ "alloc-stdlib",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "bytecount"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "bytesize"
-version = "1.2.0"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5"
+checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
 
 [[package]]
-name = "camino"
-version = "1.1.6"
+name = "bytes"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
-dependencies = [
- "serde",
-]
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
-name = "cargo-platform"
-version = "0.1.3"
+name = "bzip2"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
 dependencies = [
- "serde",
+ "bzip2-sys",
+ "libc",
 ]
 
 [[package]]
-name = "cargo_metadata"
-version = "0.14.2"
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
 dependencies = [
- "camino",
- "cargo-platform",
- "semver",
- "serde",
- "serde_json",
+ "cc",
+ "libc",
+ "pkg-config",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.82"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
+ "jobserver",
  "libc",
 ]
 
@@ -268,145 +372,69 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
-name = "chainsaw"
-version = "2.7.3"
+name = "charset"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46"
 dependencies = [
- "aho-corasick",
- "anyhow",
- "assert_cmd",
  "base64",
- "bincode",
- "bytesize",
- "chrono",
- "chrono-tz",
- "clap 4.3.21",
- "crossterm",
- "evtx",
- "indicatif",
- "lazy_static",
- "mft",
- "notatin",
- "once_cell",
- "paste",
- "predicates",
- "prettytable-rs",
- "quick-xml 0.30.0",
- "rayon",
- "regex",
- "rustc-hash",
- "serde",
- "serde_json",
- "serde_yaml",
- "smallvec",
- "tau-engine",
- "tempfile",
- "terminal_size",
- "uuid",
+ "encoding_rs",
 ]
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
- "js-sys",
  "num-traits",
- "serde",
- "time 0.1.45",
- "wasm-bindgen",
- "winapi",
-]
-
-[[package]]
-name = "chrono-tz"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1369bc6b9e9a7dfdae2055f6ec151fe9c554a9d23d357c0237cee2e25eaabb7"
-dependencies = [
- "chrono",
- "chrono-tz-build",
- "phf",
- "serde",
-]
-
-[[package]]
-name = "chrono-tz-build"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2f5ebdc942f57ed96d560a6d1a459bae5851102a25d5bf89dc04ae453e31ecf"
-dependencies = [
- "parse-zoneinfo",
- "phf",
- "phf_codegen",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "clap"
-version = "3.2.25"
+version = "2.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
 dependencies = [
+ "ansi_term",
  "atty",
  "bitflags 1.3.2",
- "clap_lex 0.2.4",
- "indexmap 1.9.3",
- "strsim",
- "termcolor",
+ "strsim 0.8.0",
  "textwrap",
+ "unicode-width",
+ "vec_map",
 ]
 
 [[package]]
 name = "clap"
-version = "4.3.21"
+version = "4.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd"
+checksum = "80932e03c33999b9235edb8655bc9df3204adc9887c2f95b50cb1deb9fd54253"
 dependencies = [
  "clap_builder",
- "clap_derive",
- "once_cell",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.3.21"
+version = "4.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa"
+checksum = "d6c0db58c659eef1c73e444d298c27322a1b52f6927d2ad470c0c0f96fa7b8fa"
 dependencies = [
  "anstream",
  "anstyle",
- "clap_lex 0.5.0",
- "strsim",
-]
-
-[[package]]
-name = "clap_derive"
-version = "4.3.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-dependencies = [
- "os_str_bytes",
+ "clap_lex",
+ "strsim 0.10.0",
+ "terminal_size",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "colorchoice"
@@ -415,29 +443,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
-name = "console"
-version = "0.15.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
-dependencies = [
- "encode_unicode 0.3.6",
- "lazy_static",
- "libc",
- "unicode-width",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "constant_time_eq"
-version = "0.3.0"
+name = "convert_case"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "crc32fast"
@@ -449,144 +464,107 @@ dependencies = [
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.3"
+name = "crossbeam"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
 dependencies = [
- "cfg-if",
+ "crossbeam-channel",
+ "crossbeam-deque",
  "crossbeam-epoch",
+ "crossbeam-queue",
  "crossbeam-utils",
 ]
 
 [[package]]
-name = "crossbeam-epoch"
-version = "0.9.15"
+name = "crossbeam-channel"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
-name = "crossbeam-utils"
-version = "0.8.16"
+name = "crossbeam-deque"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "crossterm"
-version = "0.27.0"
+name = "crossbeam-epoch"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "bitflags 2.4.0",
- "crossterm_winapi",
- "libc",
- "mio",
- "parking_lot",
- "signal-hook",
- "signal-hook-mio",
- "winapi",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "crossterm_winapi"
-version = "0.9.1"
+name = "crossbeam-queue"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
- "winapi",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "crypto-common"
-version = "0.1.6"
+name = "crossbeam-utils"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array",
- "typenum",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
-name = "csv"
-version = "1.2.2"
+name = "ctor"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086"
+checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
 dependencies = [
- "csv-core",
- "itoa",
- "ryu",
- "serde",
+ "quote",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "csv-core"
-version = "0.1.10"
+name = "data-encoding"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
-dependencies = [
- "memchr",
-]
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
-name = "deranged"
-version = "0.3.7"
+name = "deflate64"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929"
+checksum = "c61ceff48ed7e0e66d428a569d36485a091c39fe118ee1220217655f6b814fa9"
 
 [[package]]
-name = "dialoguer"
-version = "0.10.4"
+name = "derive_more"
+version = "0.99.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 dependencies = [
- "console",
- "shell-words",
- "tempfile",
- "zeroize",
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
 ]
 
 [[package]]
-name = "difflib"
-version = "0.4.0"
+name = "diff"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
 
 [[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "block-buffer",
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "dirs-next"
+name = "directories-next"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
 dependencies = [
  "cfg-if",
  "dirs-sys-next",
@@ -604,216 +582,216 @@ dependencies = [
 ]
 
 [[package]]
-name = "doc-comment"
-version = "0.3.3"
+name = "dyn-clonable"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4"
+dependencies = [
+ "dyn-clonable-impl",
+ "dyn-clone",
+]
 
 [[package]]
-name = "either"
-version = "1.9.0"
+name = "dyn-clonable-impl"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
 
 [[package]]
-name = "encode_unicode"
-version = "0.3.6"
+name = "dyn-clone"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
 
 [[package]]
-name = "encode_unicode"
-version = "1.0.0"
+name = "encoding_rs"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
 
 [[package]]
-name = "encoding"
-version = "0.2.33"
+name = "encoding_rs_io"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
+checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83"
 dependencies = [
- "encoding-index-japanese",
- "encoding-index-korean",
- "encoding-index-simpchinese",
- "encoding-index-singlebyte",
- "encoding-index-tradchinese",
+ "encoding_rs",
 ]
 
 [[package]]
-name = "encoding-index-japanese"
-version = "1.20141219.5"
+name = "env_logger"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
- "encoding_index_tests",
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
 ]
 
 [[package]]
-name = "encoding-index-korean"
-version = "1.20141219.5"
+name = "equivalent"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
-dependencies = [
- "encoding_index_tests",
-]
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
-name = "encoding-index-simpchinese"
-version = "1.20141219.5"
+name = "errno"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "encoding_index_tests",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "encoding-index-singlebyte"
-version = "1.20141219.5"
+name = "fallible-iterator"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
-dependencies = [
- "encoding_index_tests",
-]
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
 
 [[package]]
-name = "encoding-index-tradchinese"
-version = "1.20141219.5"
+name = "fallible-streaming-iterator"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
-dependencies = [
- "encoding_index_tests",
-]
+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
-name = "encoding_index_tests"
-version = "0.1.4"
+name = "fastrand"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
-name = "enum-primitive-derive"
-version = "0.2.2"
+name = "filetime"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c375b9c5eadb68d0a6efee2999fef292f45854c3444c86f09d8ab086ba942b0e"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
- "num-traits",
- "quote",
- "syn 1.0.109",
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "env_logger"
-version = "0.7.1"
+name = "fixedbitset"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
+ "crc32fast",
+ "miniz_oxide",
 ]
 
 [[package]]
-name = "equivalent"
-version = "1.0.1"
+name = "fnv"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
-name = "errno"
-version = "0.3.2"
+name = "futures-core"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "futures-io"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
-name = "error-chain"
-version = "0.12.4"
+name = "futures-macro"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
- "version_check",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "evtx"
-version = "0.8.1"
+name = "futures-sink"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3c0a23f64c81e962c993ccb5d9e88bbd62a3fcabdec20b037a8383f7c3e163f"
-dependencies = [
- "anyhow",
- "bitflags 1.3.2",
- "byteorder",
- "chrono",
- "clap 3.2.25",
- "crc32fast",
- "dialoguer",
- "encoding",
- "indoc 1.0.9",
- "log",
- "quick-xml 0.24.1",
- "rayon",
- "serde",
- "serde_json",
- "simplelog",
- "skeptic",
- "thiserror",
- "winstructs",
-]
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
-name = "fastrand"
-version = "2.0.0"
+name = "futures-task"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
-name = "float-cmp"
-version = "0.9.0"
+name = "futures-util"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
- "num-traits",
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
 ]
 
 [[package]]
 name = "generic-array"
-version = "0.14.7"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
 dependencies = [
  "typenum",
- "version_check",
+]
+
+[[package]]
+name = "getopts"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+dependencies = [
+ "unicode-width",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
 name = "glob"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -827,24 +805,31 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.13.2"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
  "ahash",
+ "allocator-api2",
 ]
 
 [[package]]
-name = "hashbrown"
-version = "0.14.0"
+name = "hashlink"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
+dependencies = [
+ "hashbrown 0.14.3",
+]
 
 [[package]]
 name = "heck"
-version = "0.4.1"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
 
 [[package]]
 name = "hermit-abi"
@@ -857,31 +842,28 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "humantime"
-version = "1.3.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows",
+ "windows-core",
 ]
 
 [[package]]
@@ -901,97 +883,59 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
 dependencies = [
  "autocfg",
  "hashbrown 0.12.3",
+ "serde",
 ]
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
-name = "indicatif"
-version = "0.17.6"
+name = "is-terminal"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b297dc40733f23a0e52728a58fa9489a5b7638a324932de16b41adc3ef80730"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
- "console",
- "instant",
- "number_prefix",
- "portable-atomic",
- "unicode-width",
+ "hermit-abi 0.3.3",
+ "rustix",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "indoc"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
-
-[[package]]
-name = "indoc"
-version = "2.0.3"
+name = "itoa"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c785eefb63ebd0e33416dfcb8d6da0bf27ce752843a45632a67bf10d4d4b5c4"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
-name = "instant"
-version = "0.1.12"
+name = "jobserver"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi 0.3.2",
  "libc",
- "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi 0.3.2",
- "rustix 0.38.8",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "itertools"
-version = "0.10.5"
+name = "js-sys"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
- "either",
+ "wasm-bindgen",
 ]
 
 [[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "js-sys"
-version = "0.3.64"
+name = "json_comments"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
-dependencies = [
- "wasm-bindgen",
-]
+checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105"
 
 [[package]]
 name = "lazy_static"
@@ -1001,27 +945,43 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.3.8"
+name = "libredox"
+version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "libsqlite3-sys"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.5"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1034,63 +994,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
-name = "lru"
-version = "0.9.0"
+name = "lzma-sys"
+version = "0.1.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17"
+checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27"
 dependencies = [
- "hashbrown 0.13.2",
+ "cc",
+ "libc",
+ "pkg-config",
 ]
 
 [[package]]
-name = "md5"
-version = "0.7.0"
+name = "mailparse"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+checksum = "6b56570f5f8c0047260d1c8b5b331f62eb9c660b9dd4071a8c46f8c7d3f280aa"
+dependencies = [
+ "charset",
+ "data-encoding",
+ "quoted_printable",
+]
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
-name = "memoffset"
-version = "0.9.0"
+name = "mime2ext"
+version = "0.1.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "mft"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52cf53faa705fc7f6574f99a34fae16ffa12b6391eabd9f7269377738e583e99"
-dependencies = [
- "anyhow",
- "bitflags 1.3.2",
- "byteorder",
- "chrono",
- "clap 4.3.21",
- "csv",
- "dialoguer",
- "encoding",
- "indoc 2.0.3",
- "itertools",
- "log",
- "lru",
- "num-derive",
- "num-traits",
- "rand",
- "serde",
- "serde_json",
- "simplelog",
- "skeptic",
- "thiserror",
- "winstructs",
-]
+checksum = "a1a85a5069ebd40e64b1985773cc81addbe9d90d7ecf60e7b5475a57ad584c70"
 
 [[package]]
 name = "minimal-lexical"
@@ -1099,14 +1034,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
+name = "miniz_oxide"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
- "log",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
  "windows-sys 0.48.0",
 ]
 
@@ -1121,41 +1064,11 @@ dependencies = [
 ]
 
 [[package]]
-name = "normalize-line-endings"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
-
-[[package]]
-name = "notatin"
-version = "1.0.0"
-source = "git+https://github.com/strozfriedberg/notatin?tag=v1.0.0#f07fddb498d5dfc8a61e1988ced0a28a2c8f253c"
-dependencies = [
- "bitflags 2.4.0",
- "blake3",
- "chrono",
- "crossterm",
- "enum-primitive-derive",
- "md5",
- "nom",
- "num",
- "num-traits",
- "paste",
- "regex",
- "serde",
- "serde_json",
- "strum_macros",
- "thiserror",
- "winstructs",
-]
-
-[[package]]
 name = "num"
-version = "0.4.1"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
+checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36"
 dependencies = [
- "num-bigint",
  "num-complex",
  "num-integer",
  "num-iter",
@@ -1164,37 +1077,16 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-bigint"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
 dependencies = [
+ "autocfg",
  "num-traits",
 ]
 
 [[package]]
-name = "num-derive"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "num-integer"
 version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1217,21 +1109,20 @@ dependencies = [
 
 [[package]]
 name = "num-rational"
-version = "0.4.1"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
 dependencies = [
  "autocfg",
- "num-bigint",
  "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -1242,36 +1133,24 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.3",
  "libc",
 ]
 
 [[package]]
-name = "num_threads"
-version = "0.1.6"
+name = "object"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
- "libc",
+ "memchr",
 ]
 
 [[package]]
-name = "number_prefix"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
-
-[[package]]
 name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.5.1"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "parking_lot"
@@ -1285,24 +1164,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
+ "redox_syscall 0.4.1",
  "smallvec",
- "windows-targets 0.48.2",
-]
-
-[[package]]
-name = "parse-zoneinfo"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
-dependencies = [
- "regex",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -1312,246 +1182,161 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
-name = "phf"
-version = "0.11.2"
+name = "path-clean"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
-dependencies = [
- "phf_shared",
-]
+checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef"
 
 [[package]]
-name = "phf_codegen"
-version = "0.11.2"
+name = "petgraph"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
- "phf_generator",
- "phf_shared",
+ "fixedbitset",
+ "indexmap 2.1.0",
 ]
 
 [[package]]
-name = "phf_generator"
-version = "0.11.2"
+name = "pin-project"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
 dependencies = [
- "phf_shared",
- "rand",
+ "pin-project-internal",
 ]
 
 [[package]]
-name = "phf_shared"
-version = "0.11.2"
+name = "pin-project-internal"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
- "siphasher",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
-
-[[package]]
-name = "portable-atomic"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "predicates"
-version = "3.0.3"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9"
-dependencies = [
- "anstyle",
- "difflib",
- "float-cmp",
- "itertools",
- "normalize-line-endings",
- "predicates-core",
- "regex",
-]
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
-name = "predicates-core"
-version = "1.0.6"
+name = "pin-utils"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
-name = "predicates-tree"
-version = "1.0.9"
+name = "pkg-config"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
-dependencies = [
- "predicates-core",
- "termtree",
-]
+checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
 
 [[package]]
-name = "prettytable-rs"
-version = "0.10.0"
+name = "pretty-bytes"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a"
+checksum = "009d6edd2c1dbf2e1c0cd48a2f7766e03498d49ada7109a01c6911815c685316"
 dependencies = [
- "csv",
- "encode_unicode 1.0.0",
- "is-terminal",
- "lazy_static",
- "term",
- "unicode-width",
+ "atty",
+ "getopts",
 ]
 
 [[package]]
-name = "proc-macro2"
-version = "1.0.66"
+name = "pretty_assertions"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
 dependencies = [
- "unicode-ident",
+ "diff",
+ "yansi",
 ]
 
 [[package]]
-name = "pulldown-cmark"
-version = "0.9.3"
+name = "proc-macro-error"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 dependencies = [
- "bitflags 1.3.2",
- "memchr",
- "unicase",
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
 ]
 
 [[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
-name = "quick-xml"
-version = "0.24.1"
+name = "proc-macro-error-attr"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37dddbbe9df96afafcb8027fcf263971b726530e12f0787f620a7ba5b4846081"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
 dependencies = [
- "memchr",
+ "proc-macro2",
+ "quote",
+ "version_check",
 ]
 
 [[package]]
-name = "quick-xml"
-version = "0.30.0"
+name = "proc-macro2"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
 dependencies = [
- "memchr",
- "serde",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.32"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rayon"
-version = "1.7.0"
+name = "quoted_printable"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
-]
+checksum = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49"
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
  "getrandom",
- "redox_syscall 0.2.16",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.3"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1561,9 +1346,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.6"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1572,62 +1357,132 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
-name = "rustc-hash"
-version = "1.1.0"
+name = "ripgrep_all"
+version = "0.10.6"
+dependencies = [
+ "anyhow",
+ "async-compression 0.4.5",
+ "async-recursion",
+ "async-stream",
+ "async-trait",
+ "async_zip",
+ "bincode",
+ "bytes",
+ "clap 4.4.17",
+ "crossbeam",
+ "crossbeam-channel",
+ "ctor",
+ "derive_more",
+ "directories-next",
+ "dyn-clonable",
+ "dyn-clone",
+ "encoding_rs",
+ "encoding_rs_io",
+ "env_logger",
+ "glob",
+ "json_comments",
+ "lazy_static",
+ "log",
+ "mailparse",
+ "memchr",
+ "mime2ext",
+ "paste",
+ "path-clean",
+ "pretty-bytes",
+ "pretty_assertions",
+ "regex",
+ "rusqlite",
+ "schemars",
+ "serde",
+ "serde_json",
+ "size_format",
+ "structopt",
+ "tempfile",
+ "tokio",
+ "tokio-rusqlite",
+ "tokio-stream",
+ "tokio-tar",
+ "tokio-test",
+ "tokio-util",
+ "tree_magic_mini",
+]
+
+[[package]]
+name = "rusqlite"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d"
+dependencies = [
+ "bitflags 2.4.1",
+ "fallible-iterator",
+ "fallible-streaming-iterator",
+ "hashlink",
+ "libsqlite3-sys",
+ "smallvec",
+]
 
 [[package]]
-name = "rustix"
-version = "0.37.23"
+name = "rustc-demangle"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys 0.48.0",
+ "semver",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.8"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
- "linux-raw-sys 0.4.5",
- "windows-sys 0.48.0",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "rustversion"
-version = "1.0.14"
+name = "ryu"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
-name = "ryu"
-version = "1.0.15"
+name = "schemars"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
+dependencies = [
+ "dyn-clone",
+ "indexmap 1.9.3",
+ "schemars_derive",
+ "serde",
+ "serde_json",
+]
 
 [[package]]
-name = "same-file"
-version = "1.0.6"
+name = "schemars_derive"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
 dependencies = [
- "winapi-util",
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1638,130 +1493,101 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-dependencies = [
- "serde",
-]
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 
 [[package]]
 name = "serde"
-version = "1.0.183"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.183"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "serde_json"
-version = "1.0.104"
+name = "serde_derive_internals"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
+checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
 dependencies = [
- "itoa",
- "ryu",
- "serde",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
 ]
 
 [[package]]
-name = "serde_yaml"
-version = "0.9.25"
+name = "serde_json"
+version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
 dependencies = [
- "indexmap 2.0.0",
  "itoa",
  "ryu",
  "serde",
- "unsafe-libyaml",
-]
-
-[[package]]
-name = "shell-words"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
-
-[[package]]
-name = "signal-hook"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
-dependencies = [
- "libc",
- "signal-hook-registry",
 ]
 
 [[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
+name = "signal-hook-registry"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
 dependencies = [
  "libc",
- "mio",
- "signal-hook",
 ]
 
 [[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
+name = "size_format"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "6ed5f6ab2122c6dec69dca18c72fa4590a27e581ad20d44960fe74c032a0b23b"
 dependencies = [
- "libc",
+ "generic-array",
+ "num",
 ]
 
 [[package]]
-name = "simplelog"
-version = "0.12.1"
+name = "slab"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
- "log",
- "termcolor",
- "time 0.3.25",
+ "autocfg",
 ]
 
 [[package]]
-name = "siphasher"
-version = "0.3.10"
+name = "smallvec"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e"
 
 [[package]]
-name = "skeptic"
-version = "0.13.7"
+name = "socket2"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
- "bytecount",
- "cargo_metadata",
- "error-chain",
- "glob",
- "pulldown-cmark",
- "tempfile",
- "walkdir",
+ "libc",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "smallvec"
-version = "1.11.0"
+name = "strsim"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 
 [[package]]
 name = "strsim"
@@ -1770,23 +1596,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
-name = "strum_macros"
-version = "0.25.2"
+name = "structopt"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
+checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
 dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 2.0.28",
+ "clap 2.34.0",
+ "lazy_static",
+ "structopt-derive",
 ]
 
 [[package]]
-name = "subtle"
-version = "2.5.0"
+name = "structopt-derive"
+version = "0.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
 
 [[package]]
 name = "syn"
@@ -1801,9 +1632,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.28"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1811,247 +1642,244 @@ dependencies = [
 ]
 
 [[package]]
-name = "tau-engine"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4566a9d67931bc2b779cbabb58ddef3e9b452e6059333fb34992ca46525a8413"
-dependencies = [
- "aho-corasick",
- "lazy_static",
- "regex",
- "serde",
- "serde_json",
- "serde_yaml",
- "tracing",
-]
-
-[[package]]
 name = "tempfile"
-version = "3.7.1"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall 0.3.5",
- "rustix 0.38.8",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "term"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
-dependencies = [
- "dirs-next",
- "rustversion",
- "winapi",
+ "redox_syscall 0.4.1",
+ "rustix",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.1.3"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "terminal_size"
-version = "0.2.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.37.23",
+ "rustix",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "termtree"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
-
-[[package]]
 name = "textwrap"
-version = "0.16.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
 
 [[package]]
 name = "thiserror"
-version = "1.0.45"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dedd246497092a89beedfe2c9f176d44c1b672ea6090edc20544ade01fbb7ea0"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.45"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d7b1fadccbbc7e19ea64708629f9d8dccd007c260d66485f20a6d41bc1cf4b3"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "time"
-version = "0.1.45"
+name = "tokio"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
+ "backtrace",
+ "bytes",
  "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "time"
-version = "0.3.25"
+name = "tokio-macros"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
- "deranged",
- "itoa",
- "libc",
- "num_threads",
- "serde",
- "time-core",
- "time-macros",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "time-core"
-version = "0.1.1"
+name = "tokio-rusqlite"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "dc785c98d0c872455381e59be1f33a8f3a6b4e852544212e37601cc2ccb21d39"
+dependencies = [
+ "crossbeam-channel",
+ "rusqlite",
+ "tokio",
+]
 
 [[package]]
-name = "time-macros"
-version = "0.2.11"
+name = "tokio-stream"
+version = "0.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
+checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
 dependencies = [
- "time-core",
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
 ]
 
 [[package]]
-name = "tracing"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+name = "tokio-tar"
+version = "0.3.1"
+source = "git+https://github.com/vorot93/tokio-tar#87338a76092330bc6fe60de95d83eae5597332e1"
 dependencies = [
- "cfg-if",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
+ "filetime",
+ "futures-core",
+ "libc",
+ "redox_syscall 0.3.5",
+ "tokio",
+ "tokio-stream",
+ "xattr",
 ]
 
 [[package]]
-name = "tracing-attributes"
-version = "0.1.26"
+name = "tokio-test"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
+ "async-stream",
+ "bytes",
+ "futures-core",
+ "tokio",
+ "tokio-stream",
 ]
 
 [[package]]
-name = "tracing-core"
-version = "0.1.31"
+name = "tokio-util"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
- "once_cell",
+ "bytes",
+ "futures-core",
+ "futures-io",
+ "futures-sink",
+ "futures-util",
+ "hashbrown 0.14.3",
+ "pin-project-lite",
+ "slab",
+ "tokio",
+ "tracing",
 ]
 
 [[package]]
-name = "typenum"
-version = "1.16.0"
+name = "tracing"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-core",
+]
 
 [[package]]
-name = "unicase"
-version = "2.6.0"
+name = "tracing-core"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
- "version_check",
+ "once_cell",
 ]
 
 [[package]]
-name = "unicode-ident"
-version = "1.0.11"
+name = "tree_magic_mini"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "91adfd0607cacf6e4babdb870e9bec4037c1c4b151cfd279ccefc5e0c7feaa6d"
+dependencies = [
+ "bytecount",
+ "fnv",
+ "lazy_static",
+ "nom",
+ "once_cell",
+ "petgraph",
+]
 
 [[package]]
-name = "unicode-width"
-version = "0.1.10"
+name = "typenum"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
-name = "unsafe-libyaml"
-version = "0.2.9"
+name = "unicode-ident"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
-name = "utf8parse"
-version = "0.2.1"
+name = "unicode-segmentation"
+version = "1.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
-name = "uuid"
-version = "1.4.1"
+name = "unicode-width"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
-dependencies = [
- "getrandom",
- "serde",
-]
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
-name = "version_check"
-version = "0.9.4"
+name = "utf8parse"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
-name = "wait-timeout"
-version = "0.2.0"
+name = "vcpkg"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
-dependencies = [
- "libc",
-]
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
-name = "walkdir"
-version = "2.3.3"
+name = "vec_map"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
-dependencies = [
- "same-file",
- "winapi-util",
-]
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 
 [[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
+name = "version_check"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "wasi"
@@ -2061,9 +1889,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2071,24 +1899,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2096,22 +1924,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "winapi"
@@ -2131,9 +1959,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -2145,166 +1973,235 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "windows"
-version = "0.48.0"
+name = "windows-core"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.48.2",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "windows-sys"
-version = "0.45.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.42.2",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "windows-sys"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.48.2",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.48.2"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1eeca1c172a285ee6c2c84c341ccea837e7c01b12fbb2d0fe3c9e550ce49ec8"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
 dependencies = [
- "windows_aarch64_gnullvm 0.48.2",
- "windows_aarch64_msvc 0.48.2",
- "windows_i686_gnu 0.48.2",
- "windows_i686_msvc 0.48.2",
- "windows_x86_64_gnu 0.48.2",
- "windows_x86_64_gnullvm 0.48.2",
- "windows_x86_64_msvc 0.48.2",
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.2"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b10d0c968ba7f6166195e13d593af609ec2e3d24f916f081690695cf5eaffb2f"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.2"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "571d8d4e62f26d4932099a9efe89660e8bd5087775a2ab5cdd8b747b811f1058"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.2"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2229ad223e178db5fbbc8bd8d3835e51e566b8474bfca58d2e6150c48bb723cd"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.2"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "600956e2d840c194eedfc5d18f8242bc2e17c7775b6684488af3a9fff6fe3287"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.2"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea99ff3f8b49fb7a8e0d305e5aec485bd068c2ba691b6e277d29eaeac945868a"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.2"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f1a05a1ece9a7a0d5a7ccf30ba2c33e3a61a30e042ffd247567d1de1d94120d"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.2"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d419259aba16b663966e29e6d7c6ecfa0bb8425818bb96f6f1f3c3eb71a6e7b9"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
-name = "winstructs"
-version = "0.3.0"
+name = "xattr"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13eb723aae62864dbb48c23bd55a51be9c53a1880c7762805efdd62570c22acf"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
- "bitflags 1.3.2",
- "byteorder",
- "chrono",
- "env_logger",
- "log",
- "num-derive",
- "num-traits",
- "serde",
- "serde_json",
- "thiserror",
+ "libc",
+ "linux-raw-sys",
+ "rustix",
+]
+
+[[package]]
+name = "xz2"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2"
+dependencies = [
+ "lzma-sys",
+]
+
+[[package]]
+name = "yansi"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "zstd"
+version = "0.11.2+zstd.1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
+dependencies = [
+ "zstd-safe 5.0.2+zstd.1.5.2",
 ]
 
 [[package]]
-name = "zeroize"
-version = "1.6.0"
+name = "zstd"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110"
+dependencies = [
+ "zstd-safe 7.0.0",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "5.0.2+zstd.1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
+dependencies = [
+ "libc",
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "7.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e"
+dependencies = [
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "2.0.9+zstd.1.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
diff --git a/pkgs/tools/text/ripgrep-all/default.nix b/pkgs/tools/text/ripgrep-all/default.nix
index d25d068b7e075..9844a72f9d520 100644
--- a/pkgs/tools/text/ripgrep-all/default.nix
+++ b/pkgs/tools/text/ripgrep-all/default.nix
@@ -1,52 +1,54 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg
-, pandoc, poppler_utils, ripgrep, Security, imagemagick, tesseract3
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, makeWrapper
+, ffmpeg
+, pandoc
+, poppler_utils
+, ripgrep
+, Security
+, zip
 }:
 
-rustPlatform.buildRustPackage rec {
+let
+  path = [
+    ffmpeg
+    pandoc
+    poppler_utils
+    ripgrep
+    zip
+  ];
+in rustPlatform.buildRustPackage rec {
   pname = "ripgrep-all";
-  version = "0.9.6";
+  version = "0.10.6";
 
   src = fetchFromGitHub {
     owner = "phiresky";
-    repo = pname;
+    repo = "ripgrep-all";
     rev = "v${version}";
-    sha256 = "1wjpgi7m3lxybllkr3r60zaphp02ykq2syq72q9ail2760cjcir6";
+    hash = "sha256-ns7RL7kiG72r07LkF6RzShNg8M2SU6tU5+gXDxzUQHM=";
   };
 
-  cargoSha256 = "1l71xj5crfb51wfp2bdvdqp1l8kg182n5d6w23lq2wjszaqcj7cw";
-  nativeBuildInputs = [ makeWrapper ];
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "tokio-tar-0.3.1" = "sha256-oYXcZepnQyZ13zCvECwNqbXUnov3Y6uJlpkHz1zVpRo=";
+    };
+  };
+
+  nativeBuildInputs = [ makeWrapper poppler_utils ];
   buildInputs = lib.optional stdenv.isDarwin Security;
 
+  nativeCheckInputs = path;
+
   postInstall = ''
     wrapProgram $out/bin/rga \
-      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg pandoc poppler_utils ripgrep imagemagick tesseract3 ]}"
+      --prefix PATH ":" "${lib.makeBinPath path}"
   '';
 
-  # Use upstream's example data to run a couple of queries to ensure the dependencies
-  # for all of the adapters are available.
-  installCheckPhase = ''
-    set -e
-    export PATH="$PATH:$out/bin"
-
-    test1=$(rga --rga-no-cache "hello" exampledir/ | wc -l)
-    test2=$(rga --rga-no-cache --rga-adapters=tesseract "crate" exampledir/screenshot.png | wc -l)
-
-    if [ $test1 != 26 ]
-    then
-      echo "ERROR: test1 failed! Could not find the word 'hello' 26 times in the sample data."
-      exit 1
-    fi
-
-    if [ $test2 != 1 ]
-    then
-      echo "ERROR: test2 failed! Could not find the word 'crate' in the screenshot."
-      exit 1
-    fi
-  '';
-
-  doInstallCheck = true;
-
   meta = with lib; {
+    changelog = "https://github.com/phiresky/ripgrep-all/blob/${src.rev}/CHANGELOG.md";
     description = "Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, and more";
     longDescription = ''
       Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix
index 456956986cb42..427625a0000f8 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
+, buildPackages
 , fetchFromGitHub
 , rustPlatform
-, asciidoctor
 , installShellFiles
 , pkg-config
 , Security
@@ -9,46 +9,53 @@
 , pcre2
 }:
 
-rustPlatform.buildRustPackage rec {
+let
+  canRunRg = stdenv.hostPlatform.emulatorAvailable buildPackages;
+  rg = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/rg";
+in rustPlatform.buildRustPackage rec {
   pname = "ripgrep";
-  version = "13.0.0";
+  version = "14.1.0";
 
   src = fetchFromGitHub {
     owner = "BurntSushi";
     repo = pname;
     rev = version;
-    sha256 = "0pdcjzfi0fclbzmmf701fdizb95iw427vy3m1svy6gdn2zwj3ldr";
+    hash = "sha256-CBU1GzgWMPTVsgaPMy39VRcENw5iWRUrRpjyuGiZpPI=";
   };
 
-  cargoSha256 = "1kfdgh8dra4jxgcdb0lln5wwrimz0dpp33bq3h7jgs8ngaq2a9wp";
+  cargoHash = "sha256-8FxN5MhYduMkzym7Xx4dnVbWaBKv9pgbXMIRGiRRQew=";
 
-  nativeBuildInputs = [ asciidoctor installShellFiles ]
+  nativeBuildInputs = [ installShellFiles ]
     ++ lib.optional withPCRE2 pkg-config;
   buildInputs = lib.optional withPCRE2 pcre2
     ++ lib.optional stdenv.isDarwin Security;
 
   buildFeatures = lib.optional withPCRE2 "pcre2";
 
-  preFixup = ''
-    installManPage $releaseDir/build/ripgrep-*/out/rg.1
+  preFixup = lib.optionalString canRunRg ''
+    ${rg} --generate man > rg.1
+    installManPage rg.1
 
-    installShellCompletion $releaseDir/build/ripgrep-*/out/rg.{bash,fish}
-    installShellCompletion --zsh complete/_rg
+    installShellCompletion --cmd rg \
+      --bash <(${rg} --generate complete-bash) \
+      --fish <(${rg} --generate complete-fish) \
+      --zsh <(${rg} --generate complete-zsh)
   '';
 
   doInstallCheck = true;
   installCheckPhase = ''
     file="$(mktemp)"
     echo "abc\nbcd\ncde" > "$file"
-    $out/bin/rg -N 'bcd' "$file"
-    $out/bin/rg -N 'cd' "$file"
+    ${rg} -N 'bcd' "$file"
+    ${rg} -N 'cd' "$file"
   '' + lib.optionalString withPCRE2 ''
-    echo '(a(aa)aa)' | $out/bin/rg -P '\((a*|(?R))*\)'
+    echo '(a(aa)aa)' | ${rg} -P '\((a*|(?R))*\)'
   '';
 
   meta = with lib; {
     description = "A utility that combines the usability of The Silver Searcher with the raw speed of grep";
     homepage = "https://github.com/BurntSushi/ripgrep";
+    changelog = "https://github.com/BurntSushi/ripgrep/releases/tag/${version}";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = with maintainers; [ globin ma27 zowoq ];
     mainProgram = "rg";
diff --git a/pkgs/tools/text/rsbkb/default.nix b/pkgs/tools/text/rsbkb/default.nix
index fd02babac0b02..32b8f4387b4e1 100644
--- a/pkgs/tools/text/rsbkb/default.nix
+++ b/pkgs/tools/text/rsbkb/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rsbkb";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchFromGitHub {
     owner = "trou";
     repo = "rsbkb";
     rev = "release-${version}";
-    hash = "sha256-Y6YTjEbefNUPcl6rNYWVZLGZYTUPr5pvfLabS+zDWqA=";
+    hash = "sha256-SGV7ovaOVnOFlCSyxKrd4Tg8Ak71BzvLgEvCneHhx0w=";
   };
 
-  cargoHash = "sha256-RMX+ZdPaqtqRJvhHFJJrPZnBGwQwZSCXNg1oNo+v2+8=";
+  cargoHash = "sha256-UC9i1rPdQ4YLQoMQYXyL0j6EUhMwyKuD+vk4z5XLLAk=";
 
   # Setup symlinks for all the utilities,
   # busybox style
diff --git a/pkgs/tools/text/ruby-zoom/default.nix b/pkgs/tools/text/ruby-zoom/default.nix
index 965d23d0c44bf..06e505816648e 100644
--- a/pkgs/tools/text/ruby-zoom/default.nix
+++ b/pkgs/tools/text/ruby-zoom/default.nix
@@ -9,7 +9,7 @@ bundlerEnv {
   passthru.updateScript = bundlerUpdateScript "ruby-zoom";
 
   meta = with lib; {
-    description = "Quickly open CLI search results in your favorite editor!";
+    description = "Quickly open CLI search results in your favorite editor";
     homepage    = "https://gitlab.com/mjwhitta/zoom";
     license     = with licenses; gpl3;
     maintainers = with maintainers; [ vmandela nicknovitski ];
diff --git a/pkgs/tools/text/runiq/default.nix b/pkgs/tools/text/runiq/default.nix
index 7b1e99978a450..42b9e2aef395d 100644
--- a/pkgs/tools/text/runiq/default.nix
+++ b/pkgs/tools/text/runiq/default.nix
@@ -1,15 +1,19 @@
-{ fetchCrate, lib, rustPlatform }:
+{ lib, rustPlatform, fetchCrate, stdenv, darwin }:
 
 rustPlatform.buildRustPackage rec {
   pname = "runiq";
-  version = "1.2.2";
+  version = "2.0.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-WPQgTQICZ0DFr+7D99UGMx+I78376IC6iIJ3tCsj0Js=";
+    sha256 = "sha256-qcgPuJOpK2fCsHAgzoIKF7upb9B3ySIZkpu9xf4JnCc=";
   };
 
-  cargoSha256 = "sha256-QKtrd690eoPXyd5CQg5/yAiTDk297y60XaUdoeFAe0c=";
+  cargoHash = "sha256-WSMV0GNKNckN9uSPN647iDloGkNtaKcrZbeyglUappc=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
 
   meta = with lib; {
     description = "An efficient way to filter duplicate lines from input, à la uniq";
diff --git a/pkgs/tools/text/scraper/default.nix b/pkgs/tools/text/scraper/default.nix
index d325646a35d2b..05c4957f27dd0 100644
--- a/pkgs/tools/text/scraper/default.nix
+++ b/pkgs/tools/text/scraper/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "scraper";
-  version = "0.17.1";
+  version = "0.18.1";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-SVrQi9VxTzUHkdFdieOAIBhKvyrZqi3xKGooHkCEmhQ=";
+    hash = "sha256-fnX2v7VxVFgn9UT1+qWBvN+oDDI2DbK6UFKmby5aB5c=";
   };
 
-  cargoHash = "sha256-/Lut38gFO4XtrBHXr4sfcII+bWgcCDrHf5/PKPrDiDs=";
+  cargoHash = "sha256-HeT3U4H/OM/91BdXTvZq+gpmOnt/P4wTlqc2dl4erlQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/text/sd/default.nix b/pkgs/tools/text/sd/default.nix
index 009150062db20..8dc160cd014dd 100644
--- a/pkgs/tools/text/sd/default.nix
+++ b/pkgs/tools/text/sd/default.nix
@@ -1,28 +1,33 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+, Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sd";
-  version = "0.7.6";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "chmln";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0c5bsqs6c55x4j640vhzlmbiylhp5agr7lx0jrwcjazfyvxihc01";
+    hash = "sha256-hC4VKEgrAVuqOX7b24XhtrxrnJW5kmlX4E6QbY9H8OA=";
   };
 
-  cargoSha256 = "1iwgy9zzdxay6hb9pz47jchy03jrsy5csxijlq4i228qhqnvq1lr";
+  cargoHash = "sha256-IhCuWCaSU7c7Tot4uvxE7oabY69wDLstuBN35OzkQcU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  preFixup = ''
-    installManPage $releaseDir/build/sd-*/out/sd.1
+  postInstall = ''
+    installManPage gen/sd.1
 
-    installShellCompletion $releaseDir/build/sd-*/out/sd.{bash,fish}
-    installShellCompletion --zsh $releaseDir/build/sd-*/out/_sd
+    installShellCompletion gen/completions/sd.{bash,fish}
+    installShellCompletion --zsh gen/completions/_sd
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/text/sgml/linuxdoc-tools/default.nix b/pkgs/tools/text/sgml/linuxdoc-tools/default.nix
index dad9975ebf12d..d2611bec73187 100644
--- a/pkgs/tools/text/sgml/linuxdoc-tools/default.nix
+++ b/pkgs/tools/text/sgml/linuxdoc-tools/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, makeWrapper, fetchFromGitLab, perl, flex
-, gnused, coreutils, which, opensp, groff, texlive, texinfo, withLatex ? false
+, gnused, coreutils, which, opensp, groff, texliveMedium, texinfo, withLatex ? false
 }:
 
 stdenv.mkDerivation rec {
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ flex which makeWrapper ];
 
   buildInputs = [ opensp groff texinfo perl gnused coreutils ]
-    ++ lib.optionals withLatex [ texlive.combined.scheme-medium ];
+    ++ lib.optionals withLatex [ texliveMedium ];
 
   meta = with lib; {
     description = "Toolset for processing LinuxDoc DTD SGML files";
diff --git a/pkgs/tools/text/sift/default.nix b/pkgs/tools/text/sift/default.nix
index 1e79570622c0b..25dd61a3e4a06 100644
--- a/pkgs/tools/text/sift/default.nix
+++ b/pkgs/tools/text/sift/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "A fast and powerful alternative to grep";
     homepage = "https://sift-tool.org";
-    maintainers = with maintainers; [ carlsverre viraptor ];
+    maintainers = with maintainers; [ viraptor ];
     license = licenses.gpl3;
   };
 }
diff --git a/pkgs/tools/text/source-highlight/default.nix b/pkgs/tools/text/source-highlight/default.nix
index c8a775e644591..d20b3692f31c3 100644
--- a/pkgs/tools/text/source-highlight/default.nix
+++ b/pkgs/tools/text/source-highlight/default.nix
@@ -14,16 +14,24 @@ stdenv.mkDerivation rec {
   patches = [
     # gcc-11 compat upstream patch
     (fetchpatch {
-      url = "http://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=904949c9026cb772dc93fbe0947a252ef47127f4";
-      sha256 = "1wnj0jmkmrwjww7qk9dvfxh8h06jdn7mi8v2fvwh95b6x87z5l47";
+      url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=904949c9026cb772dc93fbe0947a252ef47127f4";
+      hash = "sha256-h9DyD+pmlQT5dmKjWI9t0gCIYHe7pYkP55LnOqsE0vI=";
       excludes = [ "ChangeLog" ];
     })
 
     # Upstream fix for clang-13 and gcc-12 test support
     (fetchpatch {
       name = "gcc-12.patch";
-      url = "http://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9";
-      sha256 = "1v33zd2766k7cdgmajw2lffw9wd7v4f8z01f40z53f6bp608nr62";
+      url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9";
+      hash = "sha256-wmSLgLnLuFE+IC6AjxzZp/HEnaOCS1VfY2cac0T7Y+w=";
+    })
+  ] ++ lib.optionals stdenv.cc.isClang [
+    # Adds compatibility with C++17 by removing the `register` storage class specifier.
+    (fetchpatch {
+      name = "remove-register-keyword";
+      url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=416b39758dba2c74515584514a959ad1b0ad50d1";
+      hash = "sha256-R5A7IGHhU82EqceMCsuNBanhRz4dFVqiaH8637dr7jw=";
+      includes = [ "lib/*" ];
     })
   ];
 
diff --git a/pkgs/tools/text/tab/default.nix b/pkgs/tools/text/tab/default.nix
index 89c31d0440aac..3f8ef799a6bf0 100644
--- a/pkgs/tools/text/tab/default.nix
+++ b/pkgs/tools/text/tab/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
-  version = "9.1";
+  version = "9.2";
   pname = "tab";
 
   src = fetchFromGitHub {
     owner = "ivan-tkatchev";
     repo = pname;
     rev = version;
-    sha256 = "sha256-AhgWeV/ojB8jM16A5ggrOD1YjWfRVcoQbkd3S2bgdyE=";
+    hash = "sha256-UOXfnpzYMKDdp8EeBo2HsVPGn61hkCqHe8olX9KAgOU=";
   };
 
   # gcc12; see https://github.com/ivan-tkatchev/tab/commit/673bdac998
diff --git a/pkgs/tools/text/tesh/default.nix b/pkgs/tools/text/tesh/default.nix
index 0b702ae0052a4..abff7771add23 100644
--- a/pkgs/tools/text/tesh/default.nix
+++ b/pkgs/tools/text/tesh/default.nix
@@ -1,7 +1,7 @@
 { python3Packages, fetchFromGitHub, fetchpatch }:
 
 let
-  version = "0.3.0";
+  version = "0.3.2";
 in python3Packages.buildPythonPackage rec {
   pname = "tesh";
   inherit version;
@@ -12,24 +12,9 @@ in python3Packages.buildPythonPackage rec {
     owner = "OceanSprint";
     repo = "tesh";
     rev = version;
-    hash = "sha256-/CSYz2YXbjKZszb1HMOCS+srVJ+TcFSeLeuz9VvtlI4=";
+    hash = "sha256-GIwg7Cv7tkLu81dmKT65c34eeVnRR5MIYfNwTE7j2Vs=";
   };
 
-  patches = [
-    # https://github.com/OceanSprint/tesh/pull/49
-    (fetchpatch {
-      name = "replace-poetry-with-poetry-core-1.patch";
-      url = "https://github.com/OceanSprint/tesh/commit/49b90f5a3c9cf111931393248943b1da966dc3ec.patch";
-      hash = "sha256-s+eGO4NXTGbyXcLP37kCg4GDrjAsYIlOwNDR1Q7+1Uc=";
-    })
-    # https://github.com/OceanSprint/tesh/pull/50
-    (fetchpatch {
-      name = "replace-poetry-with-poetry-core-2.patch";
-      url = "https://github.com/OceanSprint/tesh/commit/66798b54f28dc0b72159ee3a2144895cf945eaf0.patch";
-      hash = "sha256-f3uL7TZlkrTOWYihwWNfhrY5/xlBrclAMnbxRNXCGJw=";
-    })
-  ];
-
   checkInputs = [ python3Packages.pytest ];
   nativeBuildInputs = [ python3Packages.poetry-core ];
   propagatedBuildInputs = with python3Packages; [ click pexpect ];
diff --git a/pkgs/tools/text/to-html/default.nix b/pkgs/tools/text/to-html/default.nix
index 0b49fd8be2b1f..9e176a5ad19cf 100644
--- a/pkgs/tools/text/to-html/default.nix
+++ b/pkgs/tools/text/to-html/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = {
-    description = "Terminal wrapper for rendering a terminal on a website by converting ANSI escape sequences to HTML.";
+    description = "Terminal wrapper for rendering a terminal on a website by converting ANSI escape sequences to HTML";
     homepage = "https://github.com/Aloso/to-html";
     changelog = "https://github.com/Aloso/to-html/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.mit;
diff --git a/pkgs/tools/text/transifex-client/default.nix b/pkgs/tools/text/transifex-client/default.nix
deleted file mode 100644
index 07a49c3d45052..0000000000000
--- a/pkgs/tools/text/transifex-client/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ lib
-, buildPythonApplication
-, fetchPypi
-, python-slugify
-, requests
-, urllib3
-, six
-, setuptools
-, gitpython
-, pythonRelaxDepsHook
-}:
-
-buildPythonApplication rec {
-  pname = "transifex-client";
-  version = "0.14.4";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "11dc95cefe90ebf0cef3749c8c7d85b9d389c05bd0e3389bf117685df562bd5c";
-  };
-
-  # https://github.com/transifex/transifex-client/issues/323
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
-
-  pythonRelaxDeps = [
-    "python-slugify"
-  ];
-
-  propagatedBuildInputs = [
-    gitpython
-    python-slugify
-    requests
-    setuptools
-    six
-    urllib3
-  ];
-
-  # Requires external resources
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Transifex translation service client";
-    homepage = "https://www.transifex.com/";
-    license = licenses.gpl2Only;
-    maintainers = with maintainers; [ sikmir ];
-  };
-}
diff --git a/pkgs/tools/text/tuc/default.nix b/pkgs/tools/text/tuc/default.nix
index 3598a317633f7..b7b5afbdf3a3f 100644
--- a/pkgs/tools/text/tuc/default.nix
+++ b/pkgs/tools/text/tuc/default.nix
@@ -1,16 +1,16 @@
 { lib, fetchFromGitHub, rustPlatform }:
 rustPlatform.buildRustPackage rec {
   pname = "tuc";
-  version = "1.0.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "riquito";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zEWQ1wGpEowVPdlezC/LZhoPGS546nuqREfavo3fbTs=";
+    sha256 = "sha256-+QkkwQfp818bKVo1yUkWKLMqbdzRJ+oHpjxB+UFDRsU=";
   };
 
-  cargoHash = "sha256-YRw1HxVy1/SOWfareR6rh6M78xFm+Im//klhXGGt95g=";
+  cargoHash = "sha256-NbqmXptLmqLd6QizRB1bIM53Rdj010Hy3JqSuLQ4H24=";
 
   meta = with lib; {
     description = "When cut doesn't cut it";
diff --git a/pkgs/tools/text/ugrep/default.nix b/pkgs/tools/text/ugrep/default.nix
index 608ec5345aabd..0293f2770a621 100644
--- a/pkgs/tools/text/ugrep/default.nix
+++ b/pkgs/tools/text/ugrep/default.nix
@@ -2,7 +2,9 @@
 , stdenv
 , fetchFromGitHub
 , boost
+, brotli
 , bzip2
+, bzip3
 , lz4
 , pcre2
 , xz
@@ -12,18 +14,20 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ugrep";
-  version = "4.3.0";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = "ugrep";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-X2tRjQ948fnyCn7vQbpmDqktMfP4A/s7bVfrKDed5nw=";
+    hash = "sha256-aQJU4SuGJy+TyxBgaHimxc0HtW9ZJIB2b6jxcGIoqo4=";
   };
 
   buildInputs = [
     boost
+    brotli
     bzip2
+    bzip3
     lz4
     pcre2
     xz
@@ -35,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Ultra fast grep with interactive query UI";
     homepage = "https://github.com/Genivia/ugrep";
     changelog = "https://github.com/Genivia/ugrep/releases/tag/v${finalAttrs.version}";
-    maintainers = with maintainers; [ numkem ];
+    maintainers = with maintainers; [ numkem mikaelfangel ];
     license = licenses.bsd3;
     platforms = platforms.all;
   };
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index 7ac57de731a5d..9ea35d355c725 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "2.29.1";
+  version = "3.0.7";
 
   subPackages = [ "cmd/vale" ];
   outputs = [ "out" "data" ];
@@ -11,10 +11,10 @@ buildGoModule rec {
     owner = "errata-ai";
     repo = "vale";
     rev = "v${version}";
-    hash = "sha256-bvj0K7d23E5QKree+PLfA9AgKFqL6YDtlmh/nEtrPbE=";
+    hash = "sha256-wCCW5yJPbXkwkkDywtIBR7gaJG0nLEHIC4xb1LbPa3w=";
   };
 
-  vendorHash = "sha256-YUazrbTeioRV+L6Ku+oJRJzp16WCLPzlAH6F25TT6Dg=";
+  vendorHash = "sha256-uEuzAMsQHTAbKeAPIWu2yoCLhBrQNEYxdmjfzLLWONQ=";
 
   postInstall = ''
     mkdir -p $data/share/vale
diff --git a/pkgs/tools/text/vgrep/default.nix b/pkgs/tools/text/vgrep/default.nix
index f6a14e6024b5d..9022c5f5c03b2 100644
--- a/pkgs/tools/text/vgrep/default.nix
+++ b/pkgs/tools/text/vgrep/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vgrep";
-  version = "2.6.1";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "vrothberg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8xLyk1iid3xDCAuZwz1oXsEyboLaxvzm1BEyA2snQt4=";
+    hash = "sha256-+KZNNkTuZyF02YDZX3u1KdhOcZ3+Ud6aDGL/sGUN1hI=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/text/xml/rxp/default.nix b/pkgs/tools/text/xml/rxp/default.nix
index 918a491ede38d..b45c89af1c03d 100644
--- a/pkgs/tools/text/xml/rxp/default.nix
+++ b/pkgs/tools/text/xml/rxp/default.nix
@@ -9,10 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "0y365r36wzj4xn1dzhb03spxljnrx8vwqbiwnnwz4630129gzpm6";
   };
 
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration -Wno-error=int-conversion";
+
   meta = {
     license = lib.licenses.gpl2Plus;
     description = "A validating XML parser written in C";
     homepage = "https://www.cogsci.ed.ac.uk/~richard/rxp.html";
     platforms = lib.platforms.unix;
+    mainProgram = "rxp";
   };
 }
diff --git a/pkgs/tools/text/xml/xmlstarlet/default.nix b/pkgs/tools/text/xml/xmlstarlet/default.nix
index 99c97452fe58e..b5eb08199fc61 100644
--- a/pkgs/tools/text/xml/xmlstarlet/default.nix
+++ b/pkgs/tools/text/xml/xmlstarlet/default.nix
@@ -1,4 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, libxml2, libxslt }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, pkg-config
+, libxml2
+, libxslt
+}:
 
 stdenv.mkDerivation rec {
   pname = "xmlstarlet";
@@ -9,26 +17,27 @@ stdenv.mkDerivation rec {
     sha256 = "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ libxml2 libxslt ];
 
   patches = [
-    # Fixes an incompatible function pointer error with clang 16.
-    ./fix-incompatible-function-pointer.patch
+    (fetchpatch {
+      name = "0001-Fix-build-with-libxml2-2.12.patch";
+      url = "https://sourceforge.net/p/xmlstar/patches/_discuss/thread/890e29655a/66ca/attachment/0001-Fix-build-with-libxml2-2.12.patch";
+      hash = "sha256-XEk7aFOdrzdec1j2ffERJQbLH0AUNJA52QwA9jf4XWA=";
+    })
   ];
 
-  preConfigure =
-    ''
-      export LIBXSLT_PREFIX=${libxslt.dev}
-      export LIBXML_PREFIX=${libxml2.dev}
-      export LIBXSLT_LIBS=$(pkg-config --libs libxslt libexslt)
-      export LIBXML_LIBS=$(pkg-config --libs libxml-2.0)
-    '';
+  preConfigure = ''
+    export LIBXSLT_PREFIX=${libxslt.dev}
+    export LIBXML_PREFIX=${libxml2.dev}
+    export LIBXSLT_LIBS=$($PKG_CONFIG --libs libxslt libexslt)
+    export LIBXML_LIBS=$($PKG_CONFIG --libs libxml-2.0)
+  '';
 
-  postInstall =
-    ''
-      ln -s xml $out/bin/xmlstarlet
-    '';
+  postInstall = ''
+    ln -s xml $out/bin/xmlstarlet
+  '';
 
   meta = {
     description = "A command line tool for manipulating and querying XML data";
diff --git a/pkgs/tools/text/xml/xmlstarlet/fix-incompatible-function-pointer.patch b/pkgs/tools/text/xml/xmlstarlet/fix-incompatible-function-pointer.patch
deleted file mode 100644
index a0818731c217c..0000000000000
--- a/pkgs/tools/text/xml/xmlstarlet/fix-incompatible-function-pointer.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/xml_elem.c	2012-08-12 09:18:59.000000000 -0600
-+++ b/src/xml_elem.c	2023-07-11 13:17:14.220809280 -0600
-@@ -186,7 +186,7 @@
-  * put @name into @data->array[@data->offset]
-  */
- static void
--hash_key_put(void *payload, void *data, xmlChar *name)
-+hash_key_put(void *payload, void *data, const xmlChar *name)
- {
-     ArrayDest *dest = data;
-     dest->array[dest->offset++] = name;
diff --git a/pkgs/tools/text/xml/xq/default.nix b/pkgs/tools/text/xml/xq/default.nix
index 9c6db5bd5fe77..6fae10b25357c 100644
--- a/pkgs/tools/text/xml/xq/default.nix
+++ b/pkgs/tools/text/xml/xq/default.nix
@@ -2,21 +2,21 @@
 , buildGoModule
 , fetchFromGitHub
 , testers
-, xq
+, xq-xml
 }:
 
 buildGoModule rec {
   pname = "xq";
-  version = "1.2.1";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "sibprogrammer";
     repo = "xq";
     rev = "v${version}";
-    hash = "sha256-Z14x1b25wKNm9fECkNqGJglK/Z8Xq8VHmYfp5aEvvMU=";
+    hash = "sha256-g1d5sS3tgxP2VRogWG/5OXezDsJuQ6e724te+Oj3r24=";
   };
 
-  vendorHash = "sha256-CP4QsrTkFcOLDxnFc0apevXRmXHA9aJSU4AK9+TAxOU=";
+  vendorHash = "sha256-Oy/BBE6qCKJQRNDn6UiBr+/Psgi3A9Eaytmbmjt7eq8=";
 
   ldflags = [
     "-s"
@@ -27,7 +27,7 @@ buildGoModule rec {
 
   passthru.tests = {
     version = testers.testVersion {
-      package = xq;
+      package = xq-xml;
     };
   };
 
diff --git a/pkgs/tools/text/yx/default.nix b/pkgs/tools/text/yx/default.nix
index bff2b955fb42a..732be1760c9e3 100644
--- a/pkgs/tools/text/yx/default.nix
+++ b/pkgs/tools/text/yx/default.nix
@@ -1,13 +1,19 @@
-{ lib, stdenv, fetchFromGitLab, libyaml }:
+{ lib
+, stdenv
+, fetchFromGitLab
+, libyaml
+, testers
+, yx
+}:
 stdenv.mkDerivation rec {
   pname = "yx";
-  version = "1.0.0";
+  version = "1.0.2";
 
   src = fetchFromGitLab {
     owner = "tomalok";
-    repo = pname;
+    repo = "yx";
     rev = version;
-    sha256 = "sha256-oY61V9xP0DwRooabzi0XtaFsQa2GwYbuvxfERXQtYcA=";
+    hash = "sha256-uuso+hsmdsB7VpIRKob8rfMaWvRMCBHvCFnYrHPC6iw=";
   };
 
   makeFlags = [
@@ -20,12 +26,18 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.tests.version = testers.testVersion {
+    package = yx;
+    command = "${meta.mainProgram} -v";
+    version = "v${yx.version}";
+  };
+
   meta = with lib; {
     description = "YAML Data Extraction Tool";
     homepage = "https://gitlab.com/tomalok/yx";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ twz123 ];
-    mainProgram = pname;
+    mainProgram = "yx";
   };
 }
diff --git a/pkgs/tools/text/zim-tools/default.nix b/pkgs/tools/text/zim-tools/default.nix
index 855b1baf8aacd..e51755dd7e449 100644
--- a/pkgs/tools/text/zim-tools/default.nix
+++ b/pkgs/tools/text/zim-tools/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zim-tools";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "openzim";
     repo = "zim-tools";
     rev = version;
-    sha256 = "sha256-E4E2ETuhlzBZKXMy2hNA66Vq1z2VzomgCsQp2y00XHQ=";
+    sha256 = "sha256-kPUw13GVYZ1GLb4b4ch64GkJZtf6PW1gae8F/cgyG90=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix
index 5e80158d90578..69b0ccff68bd0 100644
--- a/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/pkgs/tools/typesetting/asciidoc/default.nix
@@ -6,7 +6,7 @@
 , highlight
 , pygments
 , graphviz
-, texlive
+, texliveMinimal
 , dblatexFull
 , libxslt
 , w3m
@@ -33,7 +33,7 @@
 , enableDiagFilter ? false, blockdiag, seqdiag, actdiag, nwdiag
 , enableQrcodeFilter ? false, qrencode
 , enableMatplotlibFilter ? false, matplotlib, numpy
-, enableAafigureFilter ? false, aafigure, recursivePthLoader
+, enableAafigureFilter ? false, aafigure, recursive-pth-loader
 # backends
 , enableDeckjsBackend ? false
 , enableOdfBackend ? false
@@ -56,6 +56,11 @@ let
   _enableOdfBackend = enableExtraPlugins || enableOdfBackend;
 
   #
+  # texlive environment
+  #
+  texlive = texliveMinimal.withPackages (ps: [ ps.dvipng ]);
+
+  #
   # filters
   #
 
@@ -175,7 +180,7 @@ in python3.pkgs.buildPythonApplication rec {
     echo "Extracting aafigure filter"
     unzip -d "$out/etc/asciidoc/filters/aafigure" "${aafigureFilterSrc}"
     # Add aafigure to sys.path (and it needs recursive-pth-loader)
-    pth_loader_path="$(toPythonPath ${recursivePthLoader})"
+    pth_loader_path="$(toPythonPath ${recursive-pth-loader})"
     aafigure_path="$(toPythonPath ${aafigure})"
     sed -i "/^import.*sys/asys.path.append(\"$pth_loader_path\"); sys.path.append(\"$aafigure_path\"); import sitecustomize" \
         "$out/etc/asciidoc/filters/aafigure/aafig2img.py"
diff --git a/pkgs/tools/typesetting/asciidoctorj/default.nix b/pkgs/tools/typesetting/asciidoctorj/default.nix
index ac8683a36db31..fd2bc2eabdb85 100644
--- a/pkgs/tools/typesetting/asciidoctorj/default.nix
+++ b/pkgs/tools/typesetting/asciidoctorj/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asciidoctorj";
-  version = "2.5.10";
+  version = "2.5.11";
 
   src = fetchzip {
     url = "mirror://maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "sha256-uhGwZkr5DaoQGkH+romkD7bQTLr+O8Si+wQcZXyMWOI=";
+    sha256 = "sha256-Eagq8a6xTMonaiyhuuHc47pD8gE6jqWx7cZ3xJykmeQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ moaxcp ];
+    mainProgram = "asciidoctorj";
   };
 }
diff --git a/pkgs/tools/typesetting/biber-ms/default.nix b/pkgs/tools/typesetting/biber-ms/default.nix
index 53bd708c23bd3..9cf2bbe014f1e 100644
--- a/pkgs/tools/typesetting/biber-ms/default.nix
+++ b/pkgs/tools/typesetting/biber-ms/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, fetchurl, perlPackages, shortenPerlShebang, texlive }:
 
 let
-  biberSource = lib.head (builtins.filter (p: p.tlType == "source") texlive.biber-ms.pkgs);
+  biberSource = texlive.pkgs.biber-ms.texsource;
   # missing test file
   multiscriptBltxml = (fetchFromGitHub {
     owner = "plk";
@@ -12,8 +12,7 @@ let
 in
 
 perlPackages.buildPerlModule {
-  pname = "biber-ms";
-  inherit (biberSource) version;
+  inherit (biberSource) pname version;
 
   src = "${biberSource}/source/bibtex/biber-ms/biblatex-biber-ms.tar.gz";
 
@@ -51,5 +50,6 @@ perlPackages.buildPerlModule {
     license = biberSource.meta.license;
     platforms = platforms.unix;
     maintainers = [ maintainers.xworld21 ];
+    mainProgram = "biber-ms";
   };
 }
diff --git a/pkgs/tools/typesetting/biber/default.nix b/pkgs/tools/typesetting/biber/default.nix
index bf4740802be3b..08038c41377f5 100644
--- a/pkgs/tools/typesetting/biber/default.nix
+++ b/pkgs/tools/typesetting/biber/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl, perlPackages, shortenPerlShebang, texlive }:
 
 let
-  biberSource = lib.head (builtins.filter (p: p.tlType == "source") texlive.biber.pkgs);
+  biberSource = texlive.pkgs.biber.texsource;
 in
 
 perlPackages.buildPerlModule {
-  pname = "biber";
-  inherit (biberSource) version;
+  inherit (biberSource) pname version;
 
   src = "${biberSource}/source/bibtex/biber/biblatex-biber.tar.gz";
 
@@ -32,5 +31,6 @@ perlPackages.buildPerlModule {
     license = biberSource.meta.license;
     platforms = platforms.unix;
     maintainers = [ maintainers.ttuegel ];
+    mainProgram = "biber";
   };
 }
diff --git a/pkgs/tools/typesetting/biblatex-check/default.nix b/pkgs/tools/typesetting/biblatex-check/default.nix
index d3d3be0f430fd..beff041561909 100644
--- a/pkgs/tools/typesetting/biblatex-check/default.nix
+++ b/pkgs/tools/typesetting/biblatex-check/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Pezmc/BibLatex-Check";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "biblatex-check";
   };
 }
diff --git a/pkgs/tools/typesetting/coq2html/default.nix b/pkgs/tools/typesetting/coq2html/default.nix
index 267309e2e35be..69b3bc0ff2396 100644
--- a/pkgs/tools/typesetting/coq2html/default.nix
+++ b/pkgs/tools/typesetting/coq2html/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation  rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jwiegley siraben ];
     platforms = platforms.unix;
+    mainProgram = "coq2html";
   };
 }
diff --git a/pkgs/tools/typesetting/djvu2pdf/default.nix b/pkgs/tools/typesetting/djvu2pdf/default.nix
index e6c8f80f9d252..9396d43b3962c 100644
--- a/pkgs/tools/typesetting/djvu2pdf/default.nix
+++ b/pkgs/tools/typesetting/djvu2pdf/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "https://0x2a.at/site/projects/djvu2pdf/";
     license = lib.licenses.gpl1Only;
     platforms = lib.platforms.all;
+    mainProgram = "djvu2pdf";
   };
 }
diff --git a/pkgs/tools/typesetting/docbook2odf/default.nix b/pkgs/tools/typesetting/docbook2odf/default.nix
index e17acac3dd96e..7608fb1228ed1 100644
--- a/pkgs/tools/typesetting/docbook2odf/default.nix
+++ b/pkgs/tools/typesetting/docbook2odf/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "docbook2odf";
   };
 }
diff --git a/pkgs/tools/typesetting/fop/default.nix b/pkgs/tools/typesetting/fop/default.nix
index 0855c442deb94..254f29d27a789 100644
--- a/pkgs/tools/typesetting/fop/default.nix
+++ b/pkgs/tools/typesetting/fop/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     ];
     platforms = platforms.all;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "fop";
   };
 }
diff --git a/pkgs/tools/typesetting/git-latexdiff/default.nix b/pkgs/tools/typesetting/git-latexdiff/default.nix
index 154781d1ef18b..e7e4351a2088b 100644
--- a/pkgs/tools/typesetting/git-latexdiff/default.nix
+++ b/pkgs/tools/typesetting/git-latexdiff/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     maintainers = [ ];
     license = licenses.bsd3; # https://gitlab.com/git-latexdiff/git-latexdiff/issues/9
     platforms = platforms.unix;
+    mainProgram = "git-latexdiff";
   };
 }
diff --git a/pkgs/tools/typesetting/halibut/default.nix b/pkgs/tools/typesetting/halibut/default.nix
index de76c4956d7a3..3429df706d2f4 100644
--- a/pkgs/tools/typesetting/halibut/default.nix
+++ b/pkgs/tools/typesetting/halibut/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; unix;
+    mainProgram = "halibut";
   };
 }
diff --git a/pkgs/tools/typesetting/hayagriva/default.nix b/pkgs/tools/typesetting/hayagriva/default.nix
index 522dbad6d51ed..03aea70ae6cf3 100644
--- a/pkgs/tools/typesetting/hayagriva/default.nix
+++ b/pkgs/tools/typesetting/hayagriva/default.nix
@@ -5,22 +5,32 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hayagriva";
-  version = "0.3.2";
+  version = "0.5.1";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-4HX0X8HDn0/D9mcruCVKeIs9ryCxYagW5eJ/DSqtprY=";
+    hash = "sha256-nXfoPAUU8pDUj8MdpiYbN9ToJbWk4CsUTGehgGDvykg=";
   };
 
-  cargoHash = "sha256-JvRWdoZ5/jG09ex7avkE3JUcdMGIsfirSx9PDyAtVfU=";
+  cargoHash = "sha256-xKCnHqQn4mNvZ9LBgDnD4VDlUBgRO1SYLmvqq11GFsc=";
 
   buildFeatures = [ "cli" ];
 
+  checkFlags = [
+    # requires internet access
+    "--skip=try_archive"
+    "--skip=always_archive"
+
+    # requires a separate large repository
+    "--skip=csl::tests::test_csl"
+  ];
+
   meta = with lib; {
     description = "Work with references: Literature database management, storage, and citation formatting";
     homepage = "https://github.com/typst/hayagriva";
     changelog = "https://github.com/typst/hayagriva/releases/tag/v${version}";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "hayagriva";
   };
 }
diff --git a/pkgs/tools/typesetting/htmldoc/default.nix b/pkgs/tools/typesetting/htmldoc/default.nix
index 02a1a97010c59..da54f7c62970c 100644
--- a/pkgs/tools/typesetting/htmldoc/default.nix
+++ b/pkgs/tools/typesetting/htmldoc/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
       generates corresponding HTML, PostScript, or PDF files with an optional
       table of contents.
     '';
+    mainProgram = "htmldoc";
   };
 }
diff --git a/pkgs/tools/typesetting/kramdown-asciidoc/default.nix b/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
index ebe57e3695f5e..f3058156848ed 100644
--- a/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
+++ b/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
@@ -30,6 +30,7 @@ let
       license = licenses.mit;
       maintainers = with maintainers; [ ];
       platforms = platforms.unix;
+      mainProgram = "kramdoc";
     };
   };
 in
diff --git a/pkgs/tools/typesetting/lowdown/default.nix b/pkgs/tools/typesetting/lowdown/default.nix
index ba510fe256b78..189ba55838b66 100644
--- a/pkgs/tools/typesetting/lowdown/default.nix
+++ b/pkgs/tools/typesetting/lowdown/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lowdown";
-  version = "1.0.2";
+  version = "1.1.0";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
-    hash = "sha512-tahhm2QsaC9xP6V9qWEf6HkXiyWjRo3pzEKi9tyBLvonQKUMgV+pmWkvtubUUnxYVrhTm0Xsne1lemKj9ecfWQ==";
+    hash = "sha512-EpAWTz7Zy+2qqJGgzLrt0tK7WEZ+hHbdyqzAmMiaqc6uNXscR88git6/UbTjvB9Yanvetvw9huSuyhcORCEIug==";
   };
 
   nativeBuildInputs = [ which dieHook ]
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   postInstall =
     let
-      soVersion = "3";
+      soVersion = "1";
     in
 
     # Check that soVersion is up to date even if we are not on darwin
diff --git a/pkgs/tools/typesetting/mmark/default.nix b/pkgs/tools/typesetting/mmark/default.nix
index 0cb100dde5e31..3e1c95ca02417 100644
--- a/pkgs/tools/typesetting/mmark/default.nix
+++ b/pkgs/tools/typesetting/mmark/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/mmarkdown/mmark";
     license = with lib.licenses; bsd2;
     maintainers = with lib.maintainers; [ yrashk ];
+    mainProgram = "mmark";
   };
 }
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index 9cbf61304b9a9..09285cf2843b7 100644
--- a/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -62,5 +62,6 @@ stdenv.mkDerivation rec {
     homepage = "https://jwilk.net/software/pdf2djvu";
     license = licenses.gpl2;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "pdf2djvu";
   };
 }
diff --git a/pkgs/tools/typesetting/pdf2odt/default.nix b/pkgs/tools/typesetting/pdf2odt/default.nix
deleted file mode 100644
index e0063d2f72e84..0000000000000
--- a/pkgs/tools/typesetting/pdf2odt/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ lib
-, resholve
-, fetchFromGitHub
-, bc
-, coreutils
-, file
-, gawk
-, ghostscript
-, gnused
-, imagemagick
-, zip
-, bash
-, findutils
-}:
-
-resholve.mkDerivation rec {
-  pname = "pdf2odt";
-  version = "20170207";
-
-  src = fetchFromGitHub {
-    owner  = "gutschke";
-    repo   = "pdf2odt";
-    rev    = "4533bd14306c30c085001db59dbb8114ea09c360";
-    sha256 = "14f9r5f0g6jzanl54jv86ls0frvspka1p9c8dy3fnriqpm584j0r";
-  };
-
-  patches = [ ./use_mktemp.patch ];
-
-  installPhase = ''
-    install -Dm0755 pdf2odt           -t $out/bin
-    install -Dm0644 README.md LICENSE -t $out/share/doc/pdf2odt
-
-    ln -rs $out/bin/pdf2odt $out/bin/pdf2ods
-  '';
-  solutions = {
-    default = {
-      scripts = [ "bin/pdf2odt" ];
-      interpreter = "${bash}/bin/bash";
-      inputs = [
-        coreutils
-        bc
-        file
-        imagemagick
-        gawk
-        gnused
-        ghostscript
-        zip
-        findutils
-      ];
-    };
-  };
-
-  meta = with lib; {
-    description = "PDF to ODT format converter";
-    homepage    = "https://github.com/gutschke/pdf2odt";
-    license     = licenses.mit;
-    platforms   = platforms.all;
-    maintainers = with maintainers; [ peterhoeg ];
-  };
-}
diff --git a/pkgs/tools/typesetting/pdf2odt/use_mktemp.patch b/pkgs/tools/typesetting/pdf2odt/use_mktemp.patch
deleted file mode 100644
index 1425aa5ae6a33..0000000000000
--- a/pkgs/tools/typesetting/pdf2odt/use_mktemp.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/pdf2odt b/pdf2odt
-index d38bb07..e1ddf05 100755
---- a/pdf2odt
-+++ b/pdf2odt
-@@ -173,13 +173,7 @@ if [ -e "${out}" ] &&
- fi
- 
- # Set up temporary staging directory
--TMPDIR="/tmp/pdf2odt.$$"
--[ \! -e "${TMPDIR}" ] || {
--  echo "Staging directory ${TMPDIR} already exists" >&2
--  exit 1
--}
--trap 'rm -rf "${TMPDIR}"' EXIT INT TERM QUIT HUP
--mkdir -p "${TMPDIR}"
-+TMPDIR=$(mktemp -d)
- 
- # Adjust DPI so that the image fits on a letter- or a4-sized page.
- function scale() {
diff --git a/pkgs/tools/typesetting/pdfchain/default.nix b/pkgs/tools/typesetting/pdfchain/default.nix
index 256a8ebd6c53c..6d772a6fea20a 100644
--- a/pkgs/tools/typesetting/pdfchain/default.nix
+++ b/pkgs/tools/typesetting/pdfchain/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hqurve ];
     platforms = platforms.unix;
+    mainProgram = "pdfchain";
   };
 }
diff --git a/pkgs/tools/typesetting/pdfgrep/default.nix b/pkgs/tools/typesetting/pdfgrep/default.nix
index 3b926a3a4fdc4..44854592348b1 100644
--- a/pkgs/tools/typesetting/pdfgrep/default.nix
+++ b/pkgs/tools/typesetting/pdfgrep/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ qknight fpletz ];
     platforms = with lib.platforms; unix;
+    mainProgram = "pdfgrep";
   };
 }
diff --git a/pkgs/tools/typesetting/pdfsandwich/default.nix b/pkgs/tools/typesetting/pdfsandwich/default.nix
index 26037b05664d1..377a7f7bf4327 100644
--- a/pkgs/tools/typesetting/pdfsandwich/default.nix
+++ b/pkgs/tools/typesetting/pdfsandwich/default.nix
@@ -28,5 +28,6 @@ meta = with lib; {
     license = licenses.gpl2;
     maintainers = [ maintainers.rps ];
     platforms = platforms.linux;
+    mainProgram = "pdfsandwich";
   };
 }
diff --git a/pkgs/tools/typesetting/pdftk/default.nix b/pkgs/tools/typesetting/pdftk/default.nix
index b11975d83c7fe..27d95c00c01bd 100644
--- a/pkgs/tools/typesetting/pdftk/default.nix
+++ b/pkgs/tools/typesetting/pdftk/default.nix
@@ -95,5 +95,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin averelld ];
     platforms = platforms.unix;
+    mainProgram = "pdftk";
   };
 }
diff --git a/pkgs/tools/typesetting/psutils/default.nix b/pkgs/tools/typesetting/psutils/default.nix
index 3ff93ad230116..93c7b9f2a23a4 100644
--- a/pkgs/tools/typesetting/psutils/default.nix
+++ b/pkgs/tools/typesetting/psutils/default.nix
@@ -9,9 +9,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-OFPreVhLqPvieoFUJbZan38Vsljg1DoFqFa9t11YiuQ=";
   };
 
+  postPatch = ''
+    sed -i 's/void main/int main/' *.c
+  '';
+
   configurePhase = ''
     sed -e 's,/usr/local/bin/perl,${perl}/bin/perl,' \
       -e "s,/usr/local,$out," \
+      -e "s,CFLAGS =,CFLAGS = -std=c89," \
       Makefile.unix > Makefile
   '';
 
diff --git a/pkgs/tools/typesetting/pulldown-cmark/default.nix b/pkgs/tools/typesetting/pulldown-cmark/default.nix
index ee2b124b04abd..27b669a0d1064 100644
--- a/pkgs/tools/typesetting/pulldown-cmark/default.nix
+++ b/pkgs/tools/typesetting/pulldown-cmark/default.nix
@@ -1,25 +1,24 @@
 { lib
 , rustPlatform
-, fetchFromGitHub
+, fetchCrate
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "pulldown-cmark";
-  version = "0.9.3";
+  version = "0.9.6";
 
-  src = fetchFromGitHub {
-    owner = "raphlinus";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-FK/+6N81qYyFsisPn5SkpubvWMYO7dLX9iHgNY/tAo4=";
+  src = fetchCrate {
+    inherit pname version;
+    hash = "sha256-5rCoFI+QWQVxF4YUzwP7jQytiIzTXtlOr3AJzHMdtR8=";
   };
 
-  cargoHash = "sha256-fcVnIb6WPRk133uTMH0xxmEJ3YgsftsTJXjqfOQQPDI=";
+  cargoHash = "sha256-it18jXKqUE43A6KAsx+BFc7YwufXjk1FJ0u8D2EolHQ=";
 
   meta = {
     description = "A pull parser for CommonMark written in Rust";
     homepage = "https://github.com/raphlinus/pulldown-cmark";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ CobaltCause ];
+    mainProgram = "pulldown-cmark";
   };
 }
diff --git a/pkgs/tools/typesetting/rfc-bibtex/default.nix b/pkgs/tools/typesetting/rfc-bibtex/default.nix
index a748983222efb..d9bed69466972 100644
--- a/pkgs/tools/typesetting/rfc-bibtex/default.nix
+++ b/pkgs/tools/typesetting/rfc-bibtex/default.nix
@@ -29,5 +29,6 @@ with python3.pkgs; buildPythonApplication rec {
     description = "Generate Bibtex entries for IETF RFCs and Internet-Drafts";
     license = licenses.mit;
     maintainers = with maintainers; [ teto ];
+    mainProgram = "rfcbibtex";
   };
 }
diff --git a/pkgs/tools/typesetting/rubber/default.nix b/pkgs/tools/typesetting/rubber/default.nix
index 5d605571b83aa..2ccee0bae005e 100644
--- a/pkgs/tools/typesetting/rubber/default.nix
+++ b/pkgs/tools/typesetting/rubber/default.nix
@@ -50,5 +50,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://gitlab.com/latex-rubber/rubber";
     maintainers = with maintainers; [ ttuegel peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "rubber";
   };
 }
diff --git a/pkgs/tools/typesetting/satysfi/default.nix b/pkgs/tools/typesetting/satysfi/default.nix
index 8b341298f3112..1478da2d7675a 100644
--- a/pkgs/tools/typesetting/satysfi/default.nix
+++ b/pkgs/tools/typesetting/satysfi/default.nix
@@ -10,15 +10,6 @@ let
       sha256 = "1s8wcqdkl1alvfcj67lhn3qdz8ikvd1v64f4q6bi4c0qj9lmp30k";
     };
   };
-  otfm = ocamlPackages.otfm.overrideAttrs (o: {
-    src = fetchFromGitHub {
-      owner = "gfngfn";
-      repo = "otfm";
-      rev = "v0.3.7+satysfi";
-      sha256 = "0y8s0ij1vp1s4h5y1hn3ns76fzki2ba5ysqdib33akdav9krbj8p";
-    };
-    propagatedBuildInputs = o.propagatedBuildInputs ++ [ ocamlPackages.result ];
-  });
   yojson-with-position = ocamlPackages.buildDunePackage {
     pname = "yojson-with-position";
     version = "1.4.2";
@@ -28,7 +19,6 @@ let
       rev = "v1.4.2+satysfi";
       sha256 = "17s5xrnpim54d1apy972b5l08bph4c0m5kzbndk600fl0vnlirnl";
     };
-    duneVersion = "3";
     nativeBuildInputs = [ ocamlPackages.cppo ];
     propagatedBuildInputs = [ ocamlPackages.biniou ];
     inherit (ocamlPackages.yojson) meta;
@@ -36,12 +26,12 @@ let
 in
   ocamlPackages.buildDunePackage rec {
     pname = "satysfi";
-    version = "0.0.8";
+    version = "0.0.10";
     src = fetchFromGitHub {
       owner = "gfngfn";
       repo = "SATySFi";
       rev = "v${version}";
-      sha256 = "sha256-cVGe1N3qMlEGAE/jPUji/X3zlijadayka1OL6iFioY4=";
+      hash = "sha256-qgVM7ExsKtzNQkZO+I+rcWLj4LSvKL5uyitH7Jg+ns0=";
       fetchSubmodules = true;
     };
 
@@ -51,13 +41,12 @@ in
       $out/share/satysfi
     '';
 
-    duneVersion = "3";
-
     nativeBuildInputs = with ocamlPackages; [ menhir cppo ];
 
-    buildInputs = [ camlpdf otfm yojson-with-position ] ++ (with ocamlPackages; [
+    buildInputs = [ camlpdf yojson-with-position ] ++ (with ocamlPackages; [
       menhirLib
       batteries camlimages core_kernel ppx_deriving uutf omd re
+      otfed
     ]);
 
     postInstall = ''
@@ -65,10 +54,12 @@ in
       cp -r lib-satysfi/dist/ $out/share/satysfi/
       cp -r \
         ${ipaexfont}/share/fonts/opentype/* \
-        ${junicode}/share/fonts/junicode-ttf/* \
         ${lmodern}/share/fonts/opentype/public/lm/* \
         ${lmmath}/share/fonts/opentype/latinmodern-math.otf \
-        $out/share/satysfi/dist/fonts
+        ${junicode}/share/fonts/truetype/Junicode-{Bold,BoldItalic,Italic}.ttf \
+        $out/share/satysfi/dist/fonts/
+      cp ${junicode}/share/fonts/truetype/Junicode-Regular.ttf \
+        $out/share/satysfi/dist/fonts/Junicode.ttf
     '';
 
     meta = with lib; {
@@ -78,5 +69,6 @@ in
       license = licenses.lgpl3Only;
       maintainers = [ maintainers.mt-caret maintainers.marsam ];
       platforms = platforms.all;
+      mainProgram = "satysfi";
     };
   }
diff --git a/pkgs/tools/typesetting/sile/default.nix b/pkgs/tools/typesetting/sile/default.nix
index 7c436ac419b2f..79e2db12b0630 100644
--- a/pkgs/tools/typesetting/sile/default.nix
+++ b/pkgs/tools/typesetting/sile/default.nix
@@ -46,11 +46,11 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sile";
-  version = "0.14.11";
+  version = "0.14.16";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${finalAttrs.version}/sile-${finalAttrs.version}.tar.xz";
-    sha256 = "sha256-JXlgiK1XyZZSe5QXz06zwEAnVYhiIZhhIaBmfxAgRS4=";
+    sha256 = "sha256-z5dYW33Pd9meMo9s3OcaQHAyT+AB94dvcw+gTGySOFc=";
   };
 
   configureFlags = [
@@ -137,5 +137,6 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = platforms.unix;
     maintainers = with maintainers; [ doronbehar alerque ];
     license = licenses.mit;
+    mainProgram = "sile";
   };
 })
diff --git a/pkgs/tools/typesetting/skribilo/default.nix b/pkgs/tools/typesetting/skribilo/default.nix
index a834ccdccbf5c..548b75621c3bb 100644
--- a/pkgs/tools/typesetting/skribilo/default.nix
+++ b/pkgs/tools/typesetting/skribilo/default.nix
@@ -13,7 +13,7 @@
 , enableEmacs ? false, emacs
 , enableLout ? stdenv.isLinux, lout
 , enablePloticus ? stdenv.isLinux, ploticus
-, enableTex ? true, tex
+, enableTex ? true, texliveSmall
 }:
 
 let
@@ -44,7 +44,7 @@ in stdenv.mkDerivation (finalAttrs: {
   ++ optional enableEmacs emacs
   ++ optional enableLout lout
   ++ optional enablePloticus ploticus
-  ++ optional enableTex tex;
+  ++ optional enableTex texliveSmall;
 
   postInstall = ''
     wrapProgram $out/bin/skribilo \
diff --git a/pkgs/tools/typesetting/soupault/default.nix b/pkgs/tools/typesetting/soupault/default.nix
index da3b2b509b1ec..82ea1e6f59799 100644
--- a/pkgs/tools/typesetting/soupault/default.nix
+++ b/pkgs/tools/typesetting/soupault/default.nix
@@ -8,7 +8,7 @@
 let
   pname = "soupault";
 
-  version = "4.7.0";
+  version = "4.8.0";
 in
 ocamlPackages.buildDunePackage {
   inherit pname version;
@@ -20,7 +20,7 @@ ocamlPackages.buildDunePackage {
     owner = "PataphysicalSociety";
     repo = pname;
     rev = version;
-    sha256 = "nwXyOwDUbkMnyHPrvCvmToyONdbg5kJm2mt5rWrB6HA=";
+    hash = "sha256-/QpT0zgrfMgRKjHyLHugaAlICpPkqaQ7f8fFAL0P02Y=";
   };
 
   buildInputs = with ocamlPackages; [
diff --git a/pkgs/tools/typesetting/sshlatex/default.nix b/pkgs/tools/typesetting/sshlatex/default.nix
index 8a5b4811d7705..ed1252928bb3e 100644
--- a/pkgs/tools/typesetting/sshlatex/default.nix
+++ b/pkgs/tools/typesetting/sshlatex/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;  # actually dual-licensed gpl3Plus | lppl13cplus
     platforms = lib.platforms.all;
     maintainers = [ maintainers.iblech ];
+    mainProgram = "sshlatex";
   };
 }
diff --git a/pkgs/tools/typesetting/tectonic/biber.nix b/pkgs/tools/typesetting/tectonic/biber.nix
new file mode 100644
index 0000000000000..9798c14716679
--- /dev/null
+++ b/pkgs/tools/typesetting/tectonic/biber.nix
@@ -0,0 +1,54 @@
+/*
+  This package, `biber-for-tectonic`, provides a compatible version of `biber`
+  as an optional runtime dependency of `tectonic`.
+
+  The development of tectonic is slowing down recently, such that its `biber`
+  dependency has been lagging behind the one in the nixpkgs `texlive` bundle.
+  See:
+
+  https://github.com/tectonic-typesetting/tectonic/discussions/1122
+
+  It is now feasible to track the biber dependency in nixpkgs, as the
+  version bump is not very frequent, and it would provide a more complete
+  user experience of tectonic in nixpkgs.
+*/
+
+{ lib
+, fetchFromGitHub
+, fetchpatch
+, biber
+}:
+
+let version = "2.17"; in (
+  biber.override {
+    /*
+      It is necessary to first override the `version` data here, which is
+      passed to `buildPerlModule`, and then to `mkDerivation`.
+
+      If we simply do `biber.overrideAttrs` the resulting package `name`
+      would be incorrect, since it has already been preprocessed by
+      `buildPerlModule`.
+    */
+    texlive.pkgs.biber.texsource = {
+      inherit version;
+      inherit (biber) pname meta;
+    };
+  }
+).overrideAttrs (prevAttrs: {
+  src = fetchFromGitHub {
+    owner = "plk";
+    repo = "biber";
+    rev = "v${version}";
+    hash = "sha256-Tt2sN2b2NGxcWyZDj5uXNGC8phJwFRiyH72n3yhFCi0=";
+  };
+  patches = [
+    # Perl>=5.36.0 compatibility
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/plk/biber/pull/411.patch";
+      hash = "sha256-osgldRVfe3jnMSOMnAMQSB0Ymc1s7J6KtM2ig3c93SE=";
+    })
+  ];
+  meta = prevAttrs.meta // {
+    maintainers = with lib.maintainers; [ doronbehar bryango ];
+  };
+})
diff --git a/pkgs/tools/typesetting/tectonic/default.nix b/pkgs/tools/typesetting/tectonic/default.nix
index 3c8713a4fe532..6b98a5db63438 100644
--- a/pkgs/tools/typesetting/tectonic/default.nix
+++ b/pkgs/tools/typesetting/tectonic/default.nix
@@ -1,3 +1,11 @@
+/*
+  This file provides the `tectonic-unwrapped` package. On the other hand,
+  the `tectonic` package is defined in `./wrapper.nix`, by wrapping
+  - [`tectonic-unwrapped`](./default.nix) i.e. this package, and
+  - [`biber-for-tectonic`](./biber.nix),
+    which provides a compatible version of `biber`.
+*/
+
 { lib
 , stdenv
 , fetchFromGitHub
@@ -25,18 +33,22 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-1WjZbmZFPB1+QYpjqq5Y+fDkMZNmWJYIxmMFWg7Tiac=";
 
-  nativeBuildInputs = [ pkg-config makeBinaryWrapper ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ icu fontconfig harfbuzz openssl ]
     ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ApplicationServices Cocoa Foundation ]);
 
-  postInstall = lib.optionalString stdenv.isLinux ''
+  # workaround for https://github.com/NixOS/nixpkgs/issues/166205
+  NIX_LDFLAGS = lib.optionalString (stdenv.cc.isClang && stdenv.cc.libcxx != null) " -l${stdenv.cc.libcxx.cxxabi.libName}";
+
+  postInstall = ''
+    # Makes it possible to automatically use the V2 CLI API
+    ln -s $out/bin/tectonic $out/bin/nextonic
+  '' + lib.optionalString stdenv.isLinux ''
     substituteInPlace dist/appimage/tectonic.desktop \
       --replace Exec=tectonic Exec=$out/bin/tectonic
     install -D dist/appimage/tectonic.desktop -t $out/share/applications/
     install -D dist/appimage/tectonic.svg -t $out/share/icons/hicolor/scalable/apps/
-
-    ln -s $out/bin/tectonic $out/bin/nextonic
   '';
 
   doCheck = true;
@@ -47,6 +59,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/tectonic-typesetting/tectonic/blob/tectonic@${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     mainProgram = "tectonic";
-    maintainers = with maintainers; [ lluchs doronbehar ];
+    maintainers = with maintainers; [ lluchs doronbehar bryango ];
   };
 }
diff --git a/pkgs/tools/typesetting/tectonic/tests.nix b/pkgs/tools/typesetting/tectonic/tests.nix
new file mode 100644
index 0000000000000..0ecf47bf19779
--- /dev/null
+++ b/pkgs/tools/typesetting/tectonic/tests.nix
@@ -0,0 +1,87 @@
+# This package provides `tectonic.passthru.tests`.
+# It requires internet access to fetch tectonic's resource bundle on demand.
+
+{ lib
+, fetchFromGitHub
+, runCommand
+, tectonic
+, curl
+, cacert
+, emptyFile
+}:
+
+let
+  /*
+    Currently, the test files are only fully available from the `dev` branch of
+    `biber`. When https://github.com/plk/biber/pull/467 is eventually released,
+    we can obtain the test files from `texlive.pkgs.biber.texsource`. For now,
+    i.e. biber<=2.19, we fetch the test files directly from GitHub.
+  */
+  biber-dev-source = fetchFromGitHub {
+    owner = "plk";
+    repo = "biber";
+    # curl https://api.github.com/repos/plk/biber/pulls/467 | jq .merge_commit_sha
+    rev = "d43e352586f5c9f98f0331978ca9d0b908986e09";
+    hash = "sha256-Z5BdMteBouiDQasF6GZXkS//YzrZkcX1eLvKIQIBkBs=";
+  };
+  testfiles = "${biber-dev-source}/testfiles";
+
+  noNetNotice = builtins.toFile "tectonic-offline-notice" ''
+    # To fetch tectonic's web bundle, the tests require internet access,
+    # which is not available in the current environment.
+  '';
+  # `cacert` is required for tls connections
+  nativeBuildInputs = [ curl cacert tectonic ];
+  checkInternet = ''
+    if curl --head "bing.com"; then
+      set -e # continue to the tests defined below, fail on error
+    else
+      cat "${noNetNotice}"
+      cp "${emptyFile}" "$out"
+      exit # bail out gracefully when there is no internet, do not panic
+    fi
+  '';
+
+  networkRequiringTestPkg = name: script: runCommand
+    /*
+      Introduce dependence on `tectonic` in the test package name. Note that
+      adding `tectonic` to `nativeBuildInputs` is not enough to trigger
+      rebuilds for a fixed-output derivation. One must update its name or
+      output hash to induce a rebuild. This behavior is exactly the same as a
+      standard nixpkgs "fetcher" such as `fetchurl`.
+    */
+    "test-${lib.removePrefix "${builtins.storeDir}/" tectonic.outPath}-${name}"
+    {
+      /*
+        Make a fixed-output derivation, return an `emptyFile` with fixed hash.
+        These derivations are allowed to access the internet from within a
+        sandbox, which allows us to test the automatic download of resource
+        files in tectonic, as a side effect. The `tectonic.outPath` is included
+        in `name` to induce rebuild of this fixed-output derivation whenever
+        the `tectonic` derivation is updated.
+      */
+      inherit (emptyFile)
+        outputHashAlgo
+        outputHashMode
+        outputHash
+        ;
+      allowSubstitutes = false;
+      inherit nativeBuildInputs;
+    }
+    ''
+      ${checkInternet}
+      ${script}
+      cp "${emptyFile}" "$out"
+    '';
+
+in
+lib.mapAttrs networkRequiringTestPkg {
+  biber-compatibility = ''
+    # import the test files
+    cp "${testfiles}"/* .
+
+    # tectonic caches in the $HOME directory, so set it to $PWD
+    export HOME=$PWD
+    tectonic -X compile ./test.tex
+  '';
+}
diff --git a/pkgs/tools/typesetting/tectonic/wrapper.nix b/pkgs/tools/typesetting/tectonic/wrapper.nix
new file mode 100644
index 0000000000000..f9e2f7eb59ebe
--- /dev/null
+++ b/pkgs/tools/typesetting/tectonic/wrapper.nix
@@ -0,0 +1,58 @@
+{ lib
+, symlinkJoin
+, tectonic-unwrapped
+, biber-for-tectonic
+, makeWrapper
+, callPackage
+}:
+
+symlinkJoin {
+  name = "${tectonic-unwrapped.pname}-wrapped-${tectonic-unwrapped.version}";
+  paths = [ tectonic-unwrapped ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  passthru = {
+    unwrapped = tectonic-unwrapped;
+    biber = biber-for-tectonic;
+    tests = callPackage ./tests.nix { };
+  };
+
+  # Replace the unwrapped tectonic with the one wrapping it with biber
+  postBuild = ''
+    rm $out/bin/{tectonic,nextonic}
+  ''
+    # Ideally, we would have liked to also pin the version of the online TeX
+    # bundle that Tectonic's developer distribute, so that the `biber` version
+    # and the `biblatex` version distributed from there are compatible.
+    # However, that is not currently possible, due to lack of upstream support
+    # for specifying this in runtime, there were 2 suggestions sent upstream
+    # that suggested a way of improving the situation:
+    #
+    # - https://github.com/tectonic-typesetting/tectonic/pull/1132
+    # - https://github.com/tectonic-typesetting/tectonic/pull/1131
+    #
+    # The 1st suggestion seems more promising as it'd allow us to simply use
+    # makeWrapper's --add-flags option. However, the PR linked above is not
+    # complete, and as of currently, upstream hasn't even reviewed it, or
+    # commented on the idea.
+    #
+    # Note also that upstream has announced that they will put less time and
+    # energy for the project:
+    #
+    # https://github.com/tectonic-typesetting/tectonic/discussions/1122
+    #
+    # Hence, we can be rather confident that for the near future, the online
+    # TeX bundle won't be updated and hence the biblatex distributed there
+    # won't require a higher version of biber.
+  + ''
+    makeWrapper ${lib.getBin tectonic-unwrapped}/bin/tectonic $out/bin/tectonic \
+      --prefix PATH : "${lib.getBin biber-for-tectonic}/bin"
+    ln -s $out/bin/tectonic $out/bin/nextonic
+  '';
+
+  meta = tectonic-unwrapped.meta // {
+    description = "Tectonic TeX/LaTeX engine, wrapped with a compatible biber";
+    maintainers = with lib.maintainers; [ doronbehar bryango ];
+  };
+}
diff --git a/pkgs/tools/typesetting/tex/advi/default.nix b/pkgs/tools/typesetting/tex/advi/default.nix
index 1b69270a3f4fa..ff20a10c5cf45 100644
--- a/pkgs/tools/typesetting/tex/advi/default.nix
+++ b/pkgs/tools/typesetting/tex/advi/default.nix
@@ -4,7 +4,7 @@
 , writeShellScriptBin
 , ghostscriptX
 , ocamlPackages
-, texlive
+, texliveMedium
 , which
 }:
 
@@ -51,7 +51,7 @@ ocamlPackages.buildDunePackage rec {
 
   duneVersion = "3";
 
-  nativeBuildInputs = [ fake-opam kpsexpand makeWrapper texlive.combined.scheme-medium which ];
+  nativeBuildInputs = [ fake-opam kpsexpand makeWrapper texliveMedium which ];
   buildInputs = with ocamlPackages; [ camlimages ghostscriptX graphics ];
 
   # install additional files (such as man pages)
@@ -64,7 +64,7 @@ ocamlPackages.buildDunePackage rec {
 
   meta = with lib; {
     homepage = "http://advi.inria.fr/";
-    description = "Active-DVI is a Unix-platform DVI previewer and a programmable presenter for slides written in LaTeX.";
+    description = "A Unix-platform DVI previewer and a programmable presenter for slides written in LaTeX";
     license = licenses.lgpl21Only;
     maintainers = [ maintainers.xworld21 ];
   };
diff --git a/pkgs/tools/typesetting/tex/auctex/default.nix b/pkgs/tools/typesetting/tex/auctex/default.nix
index e928608f9e22d..dc027b5c470e5 100644
--- a/pkgs/tools/typesetting/tex/auctex/default.nix
+++ b/pkgs/tools/typesetting/tex/auctex/default.nix
@@ -1,27 +1,28 @@
-{ lib, stdenv, fetchurl, emacs, texlive, ghostscript }:
+{ lib, stdenv, fetchurl, emacs, texliveBasic, ghostscript }:
 
 let auctex = stdenv.mkDerivation ( rec {
   # Make this a valid tex(live-new) package;
   # the pkgs attribute is provided with a hack below.
   pname = "auctex";
-  version = "12.3";
+  version = "13.2";
   tlType = "run";
 
   outputs = [ "out" "tex" ];
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    hash = "sha256-L9T+MLaUV8knf+IE0+g8hHK89QDI/kqBDXREBhdMqd0=";
+    hash = "sha256-Hn5AKrz4RmlOuncZklvwlcI+8zpeZgIgHHS2ymCUQDU=";
   };
 
   buildInputs = [
     emacs
     ghostscript
-    (texlive.combine { inherit (texlive) scheme-basic hypdoc;  })
+    (texliveBasic.withPackages (ps: [ ps.etoolbox ps.hypdoc ]))
   ];
 
   preConfigure = ''
     mkdir -p "$tex"
+    export HOME=$(mktemp -d)
   '';
 
   configureFlags = [
diff --git a/pkgs/tools/typesetting/tex/blahtexml/default.nix b/pkgs/tools/typesetting/tex/blahtexml/default.nix
index c71e983c56331..fb7605924023a 100644
--- a/pkgs/tools/typesetting/tex/blahtexml/default.nix
+++ b/pkgs/tools/typesetting/tex/blahtexml/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, lib, stdenv, libiconv, texlive, xercesc }:
+{ fetchFromGitHub, lib, stdenv, libiconv, texliveFull, xercesc }:
 
 stdenv.mkDerivation rec {
   pname = "blahtexml";
@@ -11,9 +11,19 @@ stdenv.mkDerivation rec {
     hash = "sha256-DL5DyfARHHbwWBVHSa/VwHzNaAx/v7EDdnw1GLOk+y0=";
   };
 
+  postPatch = lib.optionalString stdenv.cc.isClang ''
+    substituteInPlace makefile \
+      --replace "\$(CXX)" "\$(CXX) -std=c++98"
+  '' +
+  # fix the doc build on TeX Live 2023
+  ''
+    substituteInPlace Documentation/manual.tex \
+      --replace '\usepackage[utf8x]{inputenc}' '\usepackage[utf8]{inputenc}'
+  '';
+
   outputs = [ "out" "doc" ];
 
-  nativeBuildInputs = [ texlive.combined.scheme-full ]; # scheme-full needed for ucs package
+  nativeBuildInputs = [ texliveFull ]; # scheme-full needed for ucs package
   buildInputs = [ xercesc ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   buildFlags =
diff --git a/pkgs/tools/typesetting/tex/catdvi/default.nix b/pkgs/tools/typesetting/tex/catdvi/default.nix
index ea2b49423f22f..1958a2f4c0734 100644
--- a/pkgs/tools/typesetting/tex/catdvi/default.nix
+++ b/pkgs/tools/typesetting/tex/catdvi/default.nix
@@ -3,14 +3,13 @@
 , fetchurl
 , fetchpatch
 , texlive
+, texliveInfraOnly
 , buildPackages
 }:
 
 let
   buildPlatformTools = [ "pse2unic" "adobe2h" ];
-  tex = texlive.combine {
-    inherit (texlive) collection-fontsrecommended;
-  };
+  tex = texliveInfraOnly.withPackages (ps: [ ps.collection-fontsrecommended ]);
 in
 
 stdenv.mkDerivation (finalAttrs: {
@@ -29,6 +28,11 @@ stdenv.mkDerivation (finalAttrs: {
     })
   ];
 
+  # fix implicit-int compile error in test code used in configure script
+  postPatch = ''
+    sed -i 's/^main()/int main()/' configure
+  '';
+
   hardeningDisable = [ "format" ];
 
   outputs = [ "out" ] ++ lib.optional (with stdenv; buildPlatform.canExecute hostPlatform) "dev";
diff --git a/pkgs/tools/typesetting/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index 89eaf0346a4da..1f3fd13d2863e 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, python3, libxslt, texlive
+{ lib, stdenv, fetchurl, python3, libxslt, texliveBasic
 , enableAllFeatures ? false, imagemagick, fig2dev, inkscape, fontconfig, ghostscript
 
-, tex ? texlive.combine { # satisfy all packages that ./configure mentions
-    inherit (texlive) scheme-basic epstopdf anysize appendix changebar
-      fancybox fancyvrb float footmisc listings jknapltx/*for mathrsfs.sty*/
-      multirow overpic pdfpages pdflscape graphics stmaryrd subfigure titlesec wasysym
-      # pkgs below don't seem requested by dblatex, but our manual fails without them
-      ec zapfding symbol eepic times rsfs cs tex4ht courier helvetic ly1;
-  }
+, tex ? texliveBasic.withPackages (ps: with ps; [ # satisfy all packages that ./configure mentions
+    epstopdf anysize appendix changebar
+    fancybox fancyvrb float footmisc listings jknapltx/*for mathrsfs.sty*/
+    multirow overpic pdfpages pdflscape graphics stmaryrd subfigure titlesec wasysym
+    # pkgs below don't seem requested by dblatex, but our manual fails without them
+    ec zapfding symbol eepic times rsfs cs tex4ht courier helvetic ly1
+  ])
 }:
 
 # NOTE: enableAllFeatures just purifies the expression, it doesn't actually
diff --git a/pkgs/tools/typesetting/tex/mftrace/default.nix b/pkgs/tools/typesetting/tex/mftrace/default.nix
index 4b8a0350c8b15..7acc7c81b28f7 100644
--- a/pkgs/tools/typesetting/tex/mftrace/default.nix
+++ b/pkgs/tools/typesetting/tex/mftrace/default.nix
@@ -43,11 +43,7 @@ stdenv.mkDerivation (finalAttrs: rec {
 
   # experimental texlive.combine support
   # (note that only the bin/ folder will be combined into texlive)
-  passthru = {
-    tlType = "bin";
-    tlDeps = with texlive; [ kpathsea t1utils metafont ];
-    pkgs = [ finalAttrs.finalPackage ];
-  };
+  passthru.tlDeps = with texlive; [ kpathsea t1utils metafont ];
 
   meta = with lib; {
     description = "Scalable PostScript Fonts for MetaFont";
diff --git a/pkgs/tools/typesetting/tex/texlive/UPGRADING.md b/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
index 302fac3020a6b..91bc1c6f49fa5 100644
--- a/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
+++ b/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
@@ -72,6 +72,13 @@ CTAN and the various mirrors) and that the build recipe continues to produce
 the same output. Should those assumptions not hold, remove the previous fixed
 hashes for the relevant package, or for all packages.
 
+### Upgrading the ConTeXt binaries
+
+The LuaMetaTeX sources required for ConTeXt are distributed separately from the
+TeX Live tarballs and must be updated manually (see `texlive.bin.context`). You
+must use the latest tarball at https://tug.org/svn/texlive/trunk/Master/source/
+whose revision number is less than or equal to that of the package `context`.
+
 ### Updating the licensing information
 
 The license of each package in texlive is automatically extracted from texlive's
diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix
index ff4adcb78d283..df4a2862516e5 100644
--- a/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -2,8 +2,8 @@
 , texlive
 , zlib, libiconv, libpng, libX11
 , freetype, gd, libXaw, icu, ghostscript, libXpm, libXmu, libXext
-, perl, perlPackages, python3Packages, pkg-config
-, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr
+, perl, perlPackages, python3Packages, pkg-config, cmake, ninja
+, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr, mupdf
 , brotli, cairo, pixman, xorg, clisp, biber, woff2, xxHash
 , makeWrapper, shortenPerlShebang, useFixedHashes, asymptote
 , biber-ms
@@ -34,16 +34,16 @@ let
     "tex4ht" "texlive-scripts-extra" "texware" "tie" "tpic2pdftex" "ttfutils"
     "uptex" "velthuis" "vlna" "web" "xml2pmx" ];
   coreBigPackages = [ "metafont" "mflua" "metapost" "luatex" "luahbtex"
-    "xetex" ] ++ lib.optional withLuaJIT "luajittex";
+    "upmendex" "xetex" ] ++ lib.optional withLuaJIT "luajittex";
   binPackages = lib.getAttrs (corePackages ++ coreBigPackages) tlpdb;
 
   common = {
     src = fetchurl {
       urls = [
-        "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0321-source.tar.xz"
-              "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0321-source.tar.xz"
+        "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0313-source.tar.xz"
+              "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0313-source.tar.xz"
       ];
-      hash = "sha256-X/o0heUessRJBJZFD8abnXvXy55TNX2S20vNT9YXm1Y=";
+      hash = "sha256-OHiqDh7QMBwFOw4u5OmtmZxEE0X0iC55vdHI9M6eebk=";
     };
 
     prePatch = ''
@@ -141,12 +141,6 @@ core = stdenv.mkDerivation rec {
     perl
   ];
 
-  patches = [
-    # Fix implicit `int` on `main`, which results in an error when building with clang 16.
-    # This is fixed upstream and can be dropped with the 2023 release.
-    ./fix-implicit-int.patch
-  ];
-
   hardeningDisable = [ "format" ];
 
   preConfigure = ''
@@ -203,7 +197,7 @@ core = stdenv.mkDerivation rec {
 inherit (core-big) metafont mflua metapost luatex luahbtex xetex;
 luajittex = core.big.luajittex or null;
 core-big = stdenv.mkDerivation {
-  pname = "texlive-core-big.bin";
+  pname = "texlive-bin-big";
   inherit version;
 
   __structuredAttrs = true;
@@ -211,20 +205,19 @@ core-big = stdenv.mkDerivation {
   inherit (common) binToOutput src prePatch;
 
   patches = [
-    # improves reproducibility of fmt files. This patch has been proposed upstream,
-    # but they are considering some other approaches as well. This is fairly
-    # conservative so we can safely apply it until they make a decision
-    # https://mailman.ntg.nl/pipermail/dev-luatex/2022-April/006650.html
+    # improves reproducibility of fmt files
+    # see discussion at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1009196
     (fetchpatch {
-      name = "reproducible_exception_strings.patch";
-      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=reproducible_exception_strings.patch;msg=5";
-      sha256 = "sha256-RNZoEeTcWnrLaltcYrhNIORh42fFdwMzBfxMRWVurbk=";
+      name = "lua_fixed_hash.patch";
+      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=lua_fixed_hash.patch;msg=45";
+      sha256 = "sha256-FTu1eRd3AUU7IRs2/7e7uwHuvZsrzTBPypbcEZkU7y4=";
     })
     # fixes a security-issue in luatex that allows arbitrary code execution even with shell-escape disabled, see https://tug.org/~mseven/luatex.html
+    # fixed in LuaTeX 1.17.0, remove patch when upgrading to TL 2024
     (fetchpatch {
       name = "CVE-2023-32700.patch";
-      url = "https://tug.org/~mseven/luatex-files/2022/patch";
-      hash = "sha256-o9ENLc1ZIIOMX6MdwpBIgrR/Jdw6tYLmAyzW8i/FUbY=";
+      url = "https://tug.org/~mseven/luatex-files/2023/patch";
+      hash = "sha256-AvMedFkZJAFsCJ51eQqBQM4MpzLzn+GeBrzuTzISVkk=";
       excludes = [  "build.sh" ];
       stripLen = 1;
     })
@@ -238,15 +231,12 @@ core-big = stdenv.mkDerivation {
       stripLen = 1;
       extraPrefix = "libs/luajit/LuaJIT-src/";
     })
-    # Fix implicit `int` on `main`, which results in an error when building with clang 16.
-    # This is fixed upstream and can be dropped with the 2023 release.
-    ./fix-implicit-int.patch
   ];
 
   hardeningDisable = [ "format" ];
 
   inherit (core) nativeBuildInputs depsBuildBuild;
-  buildInputs = core.buildInputs ++ [ core cairo harfbuzz icu graphite2 libX11 ];
+  buildInputs = core.buildInputs ++ [ core cairo harfbuzz icu graphite2 libX11 potrace ];
 
   /* deleting the unused packages speeds up configure by a considerable margin
      and ensures we do not rebuild existing libraries by mistake */
@@ -292,8 +282,8 @@ core-big = stdenv.mkDerivation {
 
 
 chktex = stdenv.mkDerivation {
-  pname = "texlive-chktex.bin";
-  inherit version;
+  pname = "chktex";
+  inherit (texlive.pkgs.chktex) version;
 
   inherit (common) src;
 
@@ -309,28 +299,77 @@ chktex = stdenv.mkDerivation {
   enableParallelBuilding = true;
 };
 
+# the LuaMetaTeX engine (distributed since TeX Live 2023) must be built separately
+# the sources used by TL are stored in the source TL repo
+# for details see https://wiki.contextgarden.net/Building_LuaMetaTeX_for_TeX_Live
+context = stdenv.mkDerivation rec {
+  pname = "luametatex";
+  version = "2.10.08";
 
-dvisvgm = stdenv.mkDerivation rec {
-  pname = "texlive-dvisvgm.bin";
-  inherit version;
+  src = fetchurl {
+    url = "https://tug.org/svn/texlive/trunk/Master/source/luametatex-${version}.tar.xz?revision=67034&view=co";
+    hash = "sha256-3JeOUQ63jJOZWTxFCoyWjfcrspmdmC/yqgS1JaLfTWk=";
+  };
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake ninja ];
+
+  meta = with lib; {
+    description = "The LUAMETATEX engine is a follow up on LUATEX and is again part of CONTEXT development";
+    homepage = "https://www.pragma-ade.nl/luametatex-1.htm";
+    license = licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ apfelkuchen6 xworld21 ];
+  };
+};
+
+dvisvgm = stdenv.mkDerivation {
+  pname = "dvisvgm";
+  inherit (texlive.pkgs.dvisvgm) version;
 
   inherit (common) src;
 
+  patches = [
+    # do not use deprecated NEWPDF option with Ghostscript >= 10.02.0
+    # https://github.com/mgieseki/dvisvgm/issues/245
+    (fetchpatch {
+      name = "dont-use-NEWPDF-with-GS-10.02.0.patch";
+      url = "https://github.com/mgieseki/dvisvgm/commit/f31cdf14d73f586e2b92b4b0891d097a90274a0b.patch";
+      hash = "sha256-Yf/GhmJYM87M0ITZ/+7q2ZvSYnac4N2/NkTkFlJ2VII=";
+      stripLen = 1;
+      extraPrefix = "texk/dvisvgm/dvisvgm-src/";
+    })
+  ];
+
+  # since we are running configure directly in texk/dvisvgm,
+  # the option --with-system-potrace is not picked up properly
+  # and dvisvgm tries to build a vendored copy of potrace
+  postPatch = ''
+    cat > texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile <<EOF
+    all:
+    install:
+    EOF
+  '' +
+    # PDF handling requires mutool (from mupdf) since Ghostscript 10.01
+  ''
+    substituteInPlace texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp \
+      --replace 'Process("mutool"' "Process(\"$(PATH="$HOST_PATH" command -v mutool)\""
+  '';
+
   preConfigure = "cd texk/dvisvgm";
 
   configureFlags = common.configureFlags
     ++ [ "--with-system-kpathsea" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash ];
+  buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash mupdf ];
 
   enableParallelBuilding = true;
 };
 
 
 dvipng = stdenv.mkDerivation {
-  pname = "texlive-dvipng.bin";
-  inherit version;
+  pname = "dvipng";
+  inherit (texlive.pkgs.dvipng) version;
 
   inherit (common) src;
 
@@ -355,7 +394,7 @@ pygmentex = python3Packages.buildPythonApplication rec {
   inherit (src) version;
   format = "other";
 
-  src = assertFixedHash pname (lib.head (builtins.filter (p: p.tlType == "run") texlive.pygmentex.pkgs));
+  src = assertFixedHash pname texlive.pkgs.pygmentex.tex;
 
   propagatedBuildInputs = with python3Packages; [ pygments chardet ];
 
@@ -393,8 +432,8 @@ inherit biber;
 inherit biber-ms;
 bibtexu = bibtex8;
 bibtex8 = stdenv.mkDerivation {
-  pname = "texlive-bibtex-x.bin";
-  inherit version;
+  pname = "bibtex-x";
+  inherit (texlive.pkgs.bibtexu) version;
 
   inherit (common) src;
 
@@ -411,8 +450,8 @@ bibtex8 = stdenv.mkDerivation {
 
 
 xdvi = stdenv.mkDerivation {
-  pname = "texlive-xdvi.bin";
-  inherit version;
+  pname = "xdvi";
+  inherit (texlive.pkgs.xdvi) version;
 
   inherit (common) src;
 
@@ -435,8 +474,8 @@ xdvi = stdenv.mkDerivation {
 };
 
 xpdfopen = stdenv.mkDerivation {
-  pname = "texlive-xpdfopen.bin";
-  inherit (lib.head texlive.xpdfopen.pkgs) version;
+  pname = "xpdfopen";
+  inherit (texlive.pkgs.xpdfopen) version;
 
   inherit (common) src;
 
@@ -453,8 +492,8 @@ xpdfopen = stdenv.mkDerivation {
 {
 
 xindy = stdenv.mkDerivation {
-  pname = "texlive-xindy.bin";
-  inherit version;
+  pname = "xindy";
+  inherit (texlive.pkgs.xindy) version;
 
   inherit (common) src;
 
diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
index 8a32657271683..9a721168591f1 100644
--- a/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
@@ -1,55 +1,126 @@
-{ lib, buildEnv, runCommand, writeText, makeWrapper, libfaketime, makeFontsConf
-, perl, bash, coreutils, gnused, gnugrep, gawk, ghostscript
-, bin, tl }:
-# combine =
-args@{
-  pkgFilter ? (pkg: pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "core"
-                    || pkg.hasManpages or false)
-, extraName ? "combined"
-, extraVersion ? ""
-, ...
+{
+  # texlive package set
+  tl
+, bin
+
+, lib
+, buildEnv
+, libfaketime
+, makeFontsConf
+, makeWrapper
+, runCommand
+, writeShellScript
+, writeText
+, toTLPkgSets
+, bash
+, perl
+
+  # common runtime dependencies
+, coreutils
+, gawk
+, gnugrep
+, gnused
+, ghostscript
 }:
+
+lib.fix (self: {
+  withDocs ? false
+, withSources ? false
+, requiredTeXPackages ? ps: [ ps.scheme-infraonly ]
+
+### texlive.combine backward compatibility
+, __extraName ? "combined"
+, __extraVersion ? ""
+# emulate the old texlive.combine (e.g. add man pages to main output)
+, __combine ? false
+# adjust behavior further if called from the texlive.combine wrapper
+, __fromCombineWrapper ? false
+}@args:
+
 let
-  # combine a set of TL packages into a single TL meta-package
-  combinePkgs = pkgList: lib.catAttrs "pkg" (
-    let
-      # a TeX package is an attribute set { pkgs = [ ... ]; ... } where pkgs is a list of derivations
-      # the derivations make up the TeX package and optionally (for backward compatibility) its dependencies
-      tlPkgToSets = { pkgs, ... }: map ({ tlType, version ? "", outputName ? "", ... }@pkg: {
-          # outputName required to distinguish among bin.core-big outputs
-          key = "${pkg.pname or pkg.name}.${tlType}-${version}-${outputName}";
-          inherit pkg;
-        }) pkgs;
-      pkgListToSets = lib.concatMap tlPkgToSets; in
-    builtins.genericClosure {
-      startSet = pkgListToSets pkgList;
-      operator = { pkg, ... }: pkgListToSets (pkg.tlDeps or []);
-    });
+  ### texlive.combine backward compatibility
+  # if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets
+  isOldPkgList = p: ! p.outputSpecified or false && p ? pkgs && builtins.all (p: p ? tlType) p.pkgs;
+  ensurePkgSets = ps: if ! __fromCombineWrapper && builtins.any isOldPkgList ps
+    then let oldPkgLists = builtins.partition isOldPkgList ps;
+      in oldPkgLists.wrong ++ lib.concatMap toTLPkgSets oldPkgLists.right
+    else ps;
 
-  pkgSet = removeAttrs args [ "pkgFilter" "extraName" "extraVersion" ];
   pkgList = rec {
-    combined = combinePkgs (lib.attrValues pkgSet);
-    all = lib.filter pkgFilter combined;
-    splitBin = builtins.partition (p: p.tlType == "bin") all;
-    bin = splitBin.right;
-    nonbin = splitBin.wrong;
-    tlpkg = lib.filter (pkg: pkg.tlType == "tlpkg") combined;
+    # resolve dependencies of the packages that affect the runtime
+    all =
+      let
+        # order of packages is irrelevant
+        packages = builtins.sort (a: b: a.pname < b.pname) (ensurePkgSets (requiredTeXPackages tl));
+        runtime = builtins.partition
+          (p: p.outputSpecified or false -> builtins.elem (p.tlOutputName or p.outputName) [ "out" "tex" "tlpkg" ])
+          packages;
+        keySet = p: {
+          key = ((p.name or "${p.pname}-${p.version}") + "-" + p.tlOutputName or p.outputName or "");
+          inherit p;
+          tlDeps = if p ? tlDeps then ensurePkgSets p.tlDeps else (p.requiredTeXPackages or (_: [ ]) tl);
+        };
+      in
+      # texlive.combine: the wrapper already resolves all dependencies
+      if __fromCombineWrapper then requiredTeXPackages null else
+        builtins.catAttrs "p" (builtins.genericClosure {
+          startSet = map keySet runtime.right;
+          operator = p: map keySet p.tlDeps;
+        }) ++ runtime.wrong;
+
+    # group the specified outputs
+    specified = builtins.partition (p: p.outputSpecified or false) all;
+    specifiedOutputs = lib.groupBy (p: p.tlOutputName or p.outputName) specified.right;
+    otherOutputNames = builtins.catAttrs "key" (builtins.genericClosure {
+      startSet = map (key: { inherit key; }) (lib.concatLists (builtins.catAttrs "outputs" specified.wrong));
+      operator = _: [ ];
+    });
+    otherOutputs = lib.genAttrs otherOutputNames (n: builtins.catAttrs n specified.wrong);
+    outputsToInstall = builtins.catAttrs "key" (builtins.genericClosure {
+      startSet = map (key: { inherit key; })
+        ([ "out" ] ++ lib.optional (splitOutputs ? man) "man"
+          ++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong)));
+      operator = _: [ ];
+    });
+
+    # split binary and tlpkg from tex, texdoc, texsource
+    bin = if __fromCombineWrapper
+      then builtins.filter (p: p.tlType == "bin") all # texlive.combine: legacy filter
+      else otherOutputs.out or [ ] ++ specifiedOutputs.out or [ ];
+    tlpkg = if __fromCombineWrapper
+      then builtins.filter (p: p.tlType == "tlpkg") all # texlive.combine: legacy filter
+      else otherOutputs.tlpkg or [ ] ++ specifiedOutputs.tlpkg or [ ];
+
+    nonbin = if __fromCombineWrapper then builtins.filter (p: p.tlType != "bin" && p.tlType != "tlpkg") all # texlive.combine: legacy filter
+      else (if __combine then # texlive.combine: emulate old input ordering to avoid rebuilds
+        lib.concatMap (p: lib.optional (p ? tex) p.tex
+          ++ lib.optional ((withDocs || p ? man) && p ? texdoc) p.texdoc
+          ++ lib.optional (withSources && p ? texsource) p.texsource) specified.wrong
+        else otherOutputs.tex or [ ]
+          ++ lib.optionals withDocs (otherOutputs.texdoc or [ ])
+          ++ lib.optionals withSources (otherOutputs.texsource or [ ]))
+        ++ specifiedOutputs.tex or [ ] ++ specifiedOutputs.texdoc or [ ] ++ specifiedOutputs.texsource or [ ];
+
+    # outputs that do not become part of the environment
+    nonEnvOutputs = lib.subtractLists [ "out" "tex" "texdoc" "texsource" "tlpkg" ] otherOutputNames;
   };
+
   # list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts`
   # and `grep -IR rungs "$TEXMFDIST"`
   # and ignoring luatex, perl, and shell scripts (those must be patched using postFixup)
   needsGhostscript = lib.any (p: lib.elem p.pname [ "context" "dvipdfmx" "latex-papersize" "lyluatex" ]) pkgList.bin;
 
-  name = "texlive-${extraName}-${bin.texliveYear}${extraVersion}";
+  name = if __combine then "texlive-${__extraName}-${bin.texliveYear}${__extraVersion}" # texlive.combine: old name name
+    else "texlive-${bin.texliveYear}-env";
 
   texmfdist = (buildEnv {
     name = "${name}-texmfdist";
 
     # remove fake derivations (without 'outPath') to avoid undesired build dependencies
-    paths = lib.catAttrs "outPath" pkgList.nonbin;
+    paths = builtins.catAttrs "outPath" pkgList.nonbin;
 
     # mktexlsr
-    nativeBuildInputs = [ (lib.last tl."texlive.infra".pkgs) ];
+    nativeBuildInputs = [ tl."texlive.infra" ];
 
     postBuild = # generate ls-R database
     ''
@@ -61,7 +132,7 @@ let
     name = "${name}-tlpkg";
 
     # remove fake derivations (without 'outPath') to avoid undesired build dependencies
-    paths = lib.catAttrs "outPath" pkgList.tlpkg;
+    paths = builtins.catAttrs "outPath" pkgList.tlpkg;
   }).overrideAttrs (_: { allowSubstitutes = true; });
 
   # the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist
@@ -74,7 +145,7 @@ let
     ln -s "$tlpkg" "$out"/tlpkg
   '';
 
-  # expose info and man pages in usual /share/{info,man} location
+  # texlive.combine: expose info and man pages in usual /share/{info,man} location
   doc = buildEnv {
     name = "${name}-doc";
 
@@ -87,14 +158,62 @@ let
     ];
   };
 
-in (buildEnv {
+  meta = {
+    description = "TeX Live environment"
+      + lib.optionalString withDocs " with documentation"
+      + lib.optionalString (withDocs && withSources) " and"
+      + lib.optionalString withSources " with sources";
+    platforms = lib.platforms.all;
+    longDescription = "Contains the following packages and their transitive dependencies:\n - "
+      + lib.concatMapStringsSep "\n - "
+          (p: p.pname + (lib.optionalString (p.outputSpecified or false) " (${p.tlOutputName or p.outputName})"))
+          (requiredTeXPackages tl);
+  };
+
+  # emulate split output derivation
+  splitOutputs = {
+    out = out // { outputSpecified = true; };
+    texmfdist = texmfdist // { outputSpecified = true; };
+    texmfroot = texmfroot // { outputSpecified = true; };
+  } // (lib.genAttrs pkgList.nonEnvOutputs (outName: (buildEnv {
+    inherit name;
+    paths = builtins.catAttrs "outPath"
+      (pkgList.otherOutputs.${outName} or [ ] ++ pkgList.specifiedOutputs.${outName} or [ ]);
+    # force the output to be ${outName} or nix-env will not work
+    nativeBuildInputs = [ (writeShellScript "force-output.sh" ''
+      export out="''${${outName}-}"
+    '') ];
+    inherit meta passthru;
+  }).overrideAttrs { outputs = [ outName ]; } // { outputSpecified = true; }));
+
+  passthru = lib.optionalAttrs (! __combine) (splitOutputs // {
+    all = builtins.attrValues splitOutputs;
+    outputs = [ "out" ] ++ pkgList.nonEnvOutputs;
+  }) // {
+    # This is set primarily to help find-tarballs.nix to do its job
+    requiredTeXPackages = builtins.filter lib.isDerivation (pkgList.bin ++ pkgList.nonbin
+      ++ lib.optionals (! __fromCombineWrapper)
+        (lib.concatMap (n: (pkgList.otherOutputs.${n} or [ ] ++ pkgList.specifiedOutputs.${n} or [ ]))) pkgList.nonEnvOutputs);
+    # useful for inclusion in the `fonts.packages` nixos option or for use in devshells
+    fonts = "${texmfroot}/texmf-dist/fonts";
+    # support variants attrs, (prev: attrs)
+    __overrideTeXConfig = newArgs:
+      let appliedArgs = if builtins.isFunction newArgs then newArgs args else newArgs; in
+        self (args // { __fromCombineWrapper = false; } // appliedArgs);
+    withPackages = reqs: self (args // { requiredTeXPackages = ps: requiredTeXPackages ps ++ reqs ps; __fromCombineWrapper = false; });
+  };
+
+  out =
+# no indent for git diff purposes
+(buildEnv {
 
   inherit name;
 
   ignoreCollisions = false;
 
   # remove fake derivations (without 'outPath') to avoid undesired build dependencies
-  paths = lib.catAttrs "outPath" pkgList.bin ++ [ doc ];
+  paths = builtins.catAttrs "outPath" pkgList.bin
+    ++ lib.optional __combine doc;
   pathsToLink = [
     "/"
     "/share/texmf-var/scripts"
@@ -107,20 +226,23 @@ in (buildEnv {
   nativeBuildInputs = [
     makeWrapper
     libfaketime
-    (lib.last tl."texlive.infra".pkgs) # mktexlsr
-    (lib.last tl.texlive-scripts.pkgs) # fmtutil, updmap
-    (lib.last tl.texlive-scripts-extra.pkgs) # texlinks
+    tl."texlive.infra" # mktexlsr
+    tl.texlive-scripts # fmtutil, updmap
+    tl.texlive-scripts-extra # texlinks
     perl
   ];
 
-  passthru = {
-    # This is set primarily to help find-tarballs.nix to do its job
-    packages = pkgList.all;
-    # useful for inclusion in the `fonts.packages` nixos option or for use in devshells
-    fonts = "${texmfroot}/texmf-dist/fonts";
-  };
+  inherit meta passthru;
 
   postBuild =
+    # create outputs
+  lib.optionalString (! __combine) ''
+    for otherOutputName in $outputs ; do
+      if [[ "$otherOutputName" == 'out' ]] ; then continue ; fi
+      otherOutput="otherOutput_$otherOutputName"
+      ln -s "''${!otherOutput}" "''${!otherOutputName}"
+    done
+  '' +
     # environment variables (note: only export the ones that are used in the wrappers)
   ''
     TEXMFROOT="${texmfroot}"
@@ -131,7 +253,7 @@ in (buildEnv {
     export TEXMFCNF="$TEXMFSYSVAR/web2c"
   '' +
     # wrap executables with required env vars as early as possible
-    # 1. we want texlive.combine to use the wrapped binaries, to catch bugs
+    # 1. we use the wrapped binaries in the scripts below, to catch bugs
     # 2. we do not want to wrap links generated by texlinks
   ''
     enable -f '${bash}/lib/bash/realpath' realpath
@@ -144,6 +266,9 @@ in (buildEnv {
         target="$(readlink "$link")"
       fi
 
+      # skip non-executable files (such as context.lua)
+      if [[ ! -x "$target" ]] ; then continue ; fi
+
       rm "$link"
       makeWrapper "$target" "$link" \
         --inherit-argv0 \
@@ -195,16 +320,16 @@ in (buildEnv {
   '' +
     # now filter hyphenation patterns and formats
   (let
-    hyphens = lib.filter (p: p.hasHyphens or false && p.tlType == "run") pkgList.splitBin.wrong;
+    hyphens = lib.filter (p: p.hasHyphens or false && p.tlOutputName or p.outputName == "tex") pkgList.nonbin;
     hyphenPNames = map (p: p.pname) hyphens;
-    formats = lib.filter (p: p ? formats && p.tlType == "run") pkgList.splitBin.wrong;
+    formats = lib.filter (p: p ? formats && p.tlOutputName or p.outputName == "tex") pkgList.nonbin;
     formatPNames = map (p: p.pname) formats;
     # sed expression that prints the lines in /start/,/end/ except for /end/
     section = start: end: "/${start}/,/${end}/{ /${start}/p; /${end}/!p; };\n";
     script =
       writeText "hyphens.sed" (
         # document how the file was generated (for language.dat)
-        "1{ s/^(% Generated by .*)$/\\1, modified by texlive.combine/; p; }\n"
+        "1{ s/^(% Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; p; }\n"
         # pick up the header
         + "2,/^% from/{ /^% from/!p; };\n"
         # pick up all sections matching packages that we combine
@@ -214,7 +339,7 @@ in (buildEnv {
       );
     scriptLua =
       writeText "hyphens.lua.sed" (
-        "1{ s/^(-- Generated by .*)$/\\1, modified by texlive.combine/; p; }\n"
+        "1{ s/^(-- Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; p; }\n"
         + "2,/^-- END of language.us.lua/p;\n"
         + lib.concatMapStrings (pname: section "^-- from ${pname}:$" "^}$|^-- from") hyphenPNames
         + "$p;\n"
@@ -225,7 +350,7 @@ in (buildEnv {
     fmtutilSed =
       writeText "fmtutil.sed" (
         # document how file was generated
-        "1{ s/^(# Generated by .*)$/\\1, modified by texlive.combine/; }\n"
+        "1{ s/^(# Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; }\n"
         # disable all formats, even those already disabled
         + "s/^([^#]|#! )/#! \\1/;\n"
         # enable the formats from the packages being installed
@@ -249,7 +374,16 @@ in (buildEnv {
   ''
     texlinks --quiet "$out/bin"
   '' +
+    # temporarily patch mtxrun.lua to generate uuid's deterministically from SOURCE_DATE_EPOCH
+  ''
+    if [[ -e "$out/bin/mtxrun" ]]; then
+      mv "$out"/bin/mtxrun.lua{,.orig}
+      substitute "$TEXMFDIST"/scripts/context/lua/mtxrun.lua "$out"/bin/mtxrun.lua \
+        --replace 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)"
+    fi
+  '' +
   # texlive postactions (see TeXLive::TLUtils::_do_postaction_script)
+  # this step includes generating the ConTeXt file databases since TL 2023
   (lib.concatMapStrings (pkg: ''
     postaction='${pkg.postactionScript}'
     case "$postaction" in
@@ -258,9 +392,16 @@ in (buildEnv {
       *) postInterp= ;;
     esac
     echo "postaction install script for ${pkg.pname}: ''${postInterp:+$postInterp }$postaction install $TEXMFROOT"
-    $postInterp "$TEXMFROOT/$postaction" install "$TEXMFROOT"
+    FORCE_SOURCE_DATE=1 TZ= $postInterp "$TEXMFROOT"/$postaction install "$TEXMFROOT"
   '') (lib.filter (pkg: pkg ? postactionScript) pkgList.tlpkg)) +
+  # restore the original mtxrun.lua
+  ''
+    if [[ -e "$out/bin/mtxrun" ]]; then
+      mv "$out"/bin/mtxrun.lua{.orig,}
+    fi
+  '' +
     # generate formats
+    # TODO generate ConTeXt formats (based on fmtutil.cnf?)
   ''
     # many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1
     # libfaketime fixes non-determinism related to timestamps ignoring FORCE_SOURCE_DATE
@@ -286,21 +427,6 @@ in (buildEnv {
   ''
     rm "$out"/bin/*-sys
   '' +
-  # TODO: a context trigger https://www.preining.info/blog/2015/06/debian-tex-live-2015-the-new-layout/
-    # http://wiki.contextgarden.net/ConTeXt_Standalone#Unix-like_platforms_.28Linux.2FMacOS_X.2FFreeBSD.2FSolaris.29
-
-  # MkIV uses its own lookup mechanism and we need to initialize
-  # caches for it.
-  # We use faketime to fix the embedded timestamps and patch the uuids
-  # with some random but constant values.
-  ''
-    if [[ -e "$out/bin/mtxrun" ]]; then
-      substitute "$TEXMFDIST"/scripts/context/lua/mtxrun.lua mtxrun.lua \
-        --replace 'cache_uuid=osuuid()' 'cache_uuid="e2402e51-133d-4c73-a278-006ea4ed734f"' \
-        --replace 'uuid=osuuid(),' 'uuid="242be807-d17e-4792-8e39-aa93326fc871",'
-      FORCE_SOURCE_DATE=1 TZ= faketime -f '@1980-01-01 00:00:00 x0.001' luatex --luaonly mtxrun.lua --generate
-    fi
-  '' +
   # Get rid of all log files. They are not needed, but take up space
   # and render the build unreproducible by their embedded timestamps
   # and other non-deterministic diagnostics.
@@ -312,4 +438,16 @@ in (buildEnv {
     ln -s "$TEXMFDIST" "$out"/share/texmf
   ''
   ;
-}).overrideAttrs (_: { allowSubstitutes = true; })
+}).overrideAttrs (prev:
+  { allowSubstitutes = true; }
+  # the outputsToInstall must be built by the main derivation for nix-profile-install to work
+  // lib.optionalAttrs (! __combine) ({
+    outputs = pkgList.outputsToInstall;
+    meta = prev.meta // { inherit (pkgList) outputsToInstall; };
+  } // (lib.mapAttrs'
+    (out: drv: { name = "otherOutput_" + out; value = drv; })
+    (lib.getAttrs (builtins.tail pkgList.outputsToInstall) splitOutputs)
+    )
+  )
+);
+in out)
diff --git a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
index c1e98d710b95a..db2d0f016b056 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
@@ -15,17 +15,27 @@
 , texliveBinaries
 }:
 
+/* Convert an attribute set extracted from tlpdb.nix (with the deps attribute
+  already processed) to a fake multi-output derivation with possible outputs
+  [ "tex" "texdoc" "texsource" "tlpkg" "out" "man" "info" ]
+*/
+
+# TODO stabilise a generic interface decoupled from the finer details of the
+# translation from texlive.tlpdb to tlpdb.nix
 { pname
 , revision
 , version ? toString revision
+, extraRevision ? ""
+, extraVersion ? ""
 , sha512
 , mirrors
-, extraVersion ? ""
 , fixedHashes ? { }
 , postUnpack ? ""
+, postFixup ? ""
 , stripPrefix ? 1
 , license ? [ ]
 , hasHyphens ? false
+, hasInfo ? false
 , hasManpages ? false
 , hasRunfiles ? false
 , hasTlpkg ? false
@@ -34,112 +44,160 @@
 }@args:
 
 let
-  meta = { license = map (x: lib.licenses.${x}) license; };
-
-  commonPassthru = {
-    inherit pname revision version;
-  } // lib.optionalAttrs (args ? extraRevision) {
-    inherit (args) extraRevision;
+  # common metadata
+  name = "${pname}-${version}${extraVersion}";
+  meta = {
+    license = map (x: lib.licenses.${x}) license;
+    # TeX Live packages should not be installed directly into the user profile
+    outputsToInstall = [ ];
   };
 
+  hasBinfiles = args ? binfiles && args.binfiles != [ ];
+  hasDocfiles = sha512 ? doc;
+  hasSource = sha512 ? source;
+
+  # emulate drv.all, drv.outputs lists
+  all = lib.optional hasBinfiles bin ++
+    lib.optional hasRunfiles tex ++
+    lib.optional hasDocfiles texdoc ++
+    lib.optional hasSource texsource ++
+    lib.optional hasTlpkg tlpkg ++
+    lib.optional hasManpages man ++
+    lib.optional hasInfo info;
+  outputs = lib.catAttrs "tlOutputName" all;
+
+  mainDrv = if hasBinfiles then bin
+    else if hasRunfiles then tex
+    else if hasTlpkg then tlpkg
+    else if hasDocfiles then texdoc
+    else if hasSource then texsource
+    else tex; # fall back to attrset tex if there is no derivation
+
+  # emulate multi-output derivation plus additional metadata
+  # (out is handled in mkContainer)
+  passthru = {
+    inherit all outputs pname;
+    revision = toString revision + extraRevision;
+    version = version + extraVersion;
+    outputSpecified = true;
+    inherit tex;
+  } // lib.optionalAttrs (args ? deps) { tlDeps = args.deps; }
+  // lib.optionalAttrs (args ? formats) { inherit (args) formats; }
+  // lib.optionalAttrs hasHyphens { inherit hasHyphens; }
+  // lib.optionalAttrs (args ? postactionScript) { inherit (args) postactionScript; }
+  // lib.optionalAttrs hasDocfiles { texdoc = texdoc; }
+  // lib.optionalAttrs hasSource { texsource = texsource; }
+  // lib.optionalAttrs hasTlpkg { tlpkg = tlpkg; }
+  // lib.optionalAttrs hasManpages { man = man; }
+  // lib.optionalAttrs hasInfo { info = info; };
+
   # build run, doc, source, tlpkg containers
-  mkContainer = tlType: passthru: sha512:
+  mkContainer = tlType: tlOutputName: sha512:
     let
-      # NOTE: the fixed naming scheme must match generated-fixed-hashes.nix
+      fixedHash = fixedHashes.${tlType} or null; # be graceful about missing hashes
       # the basename used by upstream (without ".tar.xz" suffix)
+      # tlpkg is not a true container but a subfolder of the run container
       urlName = pname + (lib.optionalString (tlType != "run" && tlType != "tlpkg") ".${tlType}");
-      # name + version for the derivation
-      tlName = urlName + (lib.optionalString (tlType == "tlpkg") ".tlpkg") + "-${version}${extraVersion}";
-      fixedHash = fixedHashes.${tlType} or null; # be graceful about missing hashes
-
-      urls = args.urls or (if args ? url then [ args.url ] else
-      map (up: "${up}/archive/${urlName}.r${toString revision}.tar.xz") mirrors);
+      urls = map (up: "${up}/archive/${urlName}.r${toString revision}.tar.xz") mirrors;
+      container = runCommand "${name}-${tlOutputName}"
+        ({
+          src = fetchurl { inherit urls sha512; };
+          inherit passthru;
+          # save outputName, since fixed output derivations cannot change nor override outputName
+          inherit meta stripPrefix tlOutputName;
+        } // lib.optionalAttrs (fixedHash != null) {
+          outputHash = fixedHash;
+          outputHashAlgo = "sha256";
+          outputHashMode = "recursive";
+        })
+        (''
+          mkdir "$out"
+          if [[ "$tlOutputName"  == "tlpkg" ]]; then
+            tar -xf "$src" \
+              --strip-components=1 \
+              -C "$out" --anchored --exclude=tlpkg/tlpobj --keep-old-files \
+              tlpkg
+          else
+            tar -xf "$src" \
+              --strip-components="$stripPrefix" \
+              -C "$out" --anchored --exclude=tlpkg --keep-old-files
+          fi
+        '' + postUnpack);
     in
-    runCommand "texlive-${tlName}"
-      ({
-        src = fetchurl { inherit urls sha512; };
-        inherit meta passthru stripPrefix tlType;
-      } // lib.optionalAttrs (fixedHash != null) {
-        outputHash = fixedHash;
-        outputHashAlgo = "sha256";
-        outputHashMode = "recursive";
-      })
-      (''
-        mkdir "$out"
-        if [[ "$tlType"  == "tlpkg" ]]; then
-          tar -xf "$src" \
-            --strip-components=1 \
-            -C "$out" --anchored --exclude=tlpkg/tlpobj --keep-old-files \
-            tlpkg
-        else
-          tar -xf "$src" \
-            --strip-components="$stripPrefix" \
-            -C "$out" --anchored --exclude=tlpkg --keep-old-files
-        fi
-      '' + postUnpack);
-
-  tex = [
-    (
-      let passthru = commonPassthru
-        // lib.optionalAttrs (args ? deps) { tlDeps = args.deps; }
-        // lib.optionalAttrs (args ? formats) { inherit (args) formats; }
-        // lib.optionalAttrs hasHyphens { inherit hasHyphens; }; in
-      if hasRunfiles then mkContainer "run" passthru sha512.run
-      else (passthru // { tlType = "run"; })
-    )
-  ];
-
-  doc = let passthru = commonPassthru
-    // lib.optionalAttrs hasManpages { inherit hasManpages; }; in
-    lib.optional (sha512 ? doc) (mkContainer "doc" passthru sha512.doc);
-
-  source = lib.optional (sha512 ? source) (mkContainer "source" commonPassthru sha512.source);
-
-  tlpkg = let passthru = commonPassthru
-    // lib.optionalAttrs (args ? postactionScript) { postactionScript = args.postactionScript; }; in
-    lib.optional hasTlpkg (mkContainer "tlpkg" passthru sha512.run);
-
-  bin = lib.optional (args ? binfiles && args.binfiles != [ ]) (
-    let
-      # find interpreters for the script extensions found in tlpdb
-      extToInput = {
-        jar = jdk;
-        lua = texliveBinaries.luatex;
-        py = python3;
-        rb = ruby;
-        sno = snobol4;
-        tcl = tk;
-        texlua = texliveBinaries.luatex;
-        tlu = texliveBinaries.luatex;
-      };
-      run = lib.head tex;
-    in
-    runCommand "texlive-${pname}.bin-${version}"
-      {
-        passthru = commonPassthru // { tlType = "bin"; };
-        inherit meta;
-        # shebang interpreters and compiled binaries
-        buildInputs = let outName = builtins.replaceStrings [ "-" ] [ "_" ] pname; in
-          [ texliveBinaries.core.${outName} or null
-            texliveBinaries.${pname} or null
-            texliveBinaries.core-big.${outName} or null ]
-          ++ (args.extraBuildInputs or [ ]) ++ [ bash perl ]
-          ++ (lib.attrVals (args.scriptExts or [ ]) extToInput);
-        nativeBuildInputs = extraNativeBuildInputs;
-        # absolute scripts folder
-        scriptsFolder = lib.optionalString (run ? outPath) (run.outPath + "/scripts/" + args.scriptsFolder or pname);
-        # binaries info
-        inherit (args) binfiles;
-        binlinks = builtins.attrNames (args.binlinks or { });
-        bintargets = builtins.attrValues (args.binlinks or { });
-        # build scripts
-        patchScripts = ./patch-scripts.sed;
-        makeBinContainers = ./make-bin-containers.sh;
-      }
-      ''
-        . "$makeBinContainers"
-        ${args.postFixup or ""}
-      ''
-  );
+    # remove the standard drv.out, optionally replace it with the bin container
+    builtins.removeAttrs container [ "out" ] // lib.optionalAttrs hasBinfiles { out = bin; };
+
+  tex =
+    if hasRunfiles then mkContainer "run" "tex" sha512.run
+    else passthru
+      // { inherit meta; tlOutputName = "tex"; }
+      // lib.optionalAttrs hasBinfiles { out = bin; };
+
+  texdoc = mkContainer "doc" "texdoc" sha512.doc;
+
+  texsource = mkContainer "source" "texsource" sha512.source;
+
+  tlpkg = mkContainer "tlpkg" "tlpkg" sha512.run;
+
+  # build bin container
+  extToInput = {
+    # find interpreters for the script extensions found in tlpdb
+    jar = jdk;
+    lua = texliveBinaries.luatex;
+    py = python3;
+    rb = ruby;
+    sno = snobol4;
+    tcl = tk;
+    texlua = texliveBinaries.luatex;
+    tlu = texliveBinaries.luatex;
+  };
+
+  bin = runCommand "${name}"
+    {
+      inherit meta;
+      passthru = passthru // { tlOutputName = "out"; };
+      # shebang interpreters
+      buildInputs =let outName = builtins.replaceStrings [ "-" ] [ "_" ] pname; in
+        [ texliveBinaries.core.${outName} or null
+          texliveBinaries.${pname} or null
+          texliveBinaries.core-big.${outName} or null ]
+        ++ (args.extraBuildInputs or [ ]) ++ [ bash perl ]
+        ++ (lib.attrVals (args.scriptExts or [ ]) extToInput);
+      nativeBuildInputs = extraNativeBuildInputs;
+      # absolute scripts folder
+      scriptsFolder = lib.optionals (tex ? outPath) (builtins.map (f: tex.outPath + "/scripts/" + f) (lib.toList args.scriptsFolder or pname));
+      # binaries info
+      inherit (args) binfiles;
+      binlinks = builtins.attrNames (args.binlinks or { });
+      bintargets = builtins.attrValues (args.binlinks or { });
+      # build scripts
+      patchScripts = ./patch-scripts.sed;
+      makeBinContainers = ./make-bin-containers.sh;
+    }
+    ''
+      . "$makeBinContainers"
+      ${args.postFixup or ""}
+    '';
+
+  # build man, info containers
+  man = builtins.removeAttrs (runCommand "${name}-man"
+    {
+      inherit meta texdoc;
+      passthru = passthru // { tlOutputName = "man"; };
+    }
+    ''
+      mkdir -p "$out"/share
+      ln -s {"$texdoc"/doc,"$out"/share}/man
+    '') [ "out" ] // lib.optionalAttrs hasBinfiles { out = bin; };
+
+  info = builtins.removeAttrs (runCommand "${name}-info"
+    {
+      inherit meta texdoc;
+      passthru = passthru // { tlOutputName = "info"; };
+    }
+    ''
+      mkdir -p "$out"/share
+      ln -s {"$texdoc"/doc,"$out"/share}/info
+    '') [ "out" ] // lib.optionalAttrs hasBinfiles { out = bin; };
 in
-{ pkgs = tex ++ doc ++ source ++ tlpkg ++ bin; }
+builtins.removeAttrs mainDrv [ "outputSpecified" ]
diff --git a/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix b/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix
new file mode 100644
index 0000000000000..165e7a22c6612
--- /dev/null
+++ b/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix
@@ -0,0 +1,42 @@
+# legacy texlive.combine wrapper
+{ lib, toTLPkgList, toTLPkgSets, buildTeXEnv }:
+args@{
+  pkgFilter ? (pkg: pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "core"
+                    || pkg.hasManpages or false)
+, extraName ? "combined"
+, extraVersion ? ""
+, ...
+}:
+let
+  pkgSet = removeAttrs args [ "pkgFilter" "extraName" "extraVersion" ];
+
+  # combine a set of TL packages into a single TL meta-package
+  combinePkgs = pkgList: lib.catAttrs "pkg" (
+    let
+      # a TeX package used to be an attribute set { pkgs = [ ... ]; ... } where pkgs is a list of derivations
+      # the derivations make up the TeX package and optionally (for backward compatibility) its dependencies
+      tlPkgToSets = drv: map ({ tlType, version ? "", outputName ? "", ... }@pkg: {
+          # outputName required to distinguish among bin.core-big outputs
+          key = "${pkg.pname or pkg.name}.${tlType}-${version}-${outputName}";
+          inherit pkg;
+        }) (drv.pkgs or (toTLPkgList drv));
+      pkgListToSets = lib.concatMap tlPkgToSets; in
+    builtins.genericClosure {
+      startSet = pkgListToSets pkgList;
+      operator = { pkg, ... }: pkgListToSets (pkg.tlDeps or []);
+    });
+  combined = combinePkgs (lib.attrValues pkgSet);
+
+  # convert to specified outputs
+  tlTypeToOut = { run = "tex"; doc = "texdoc"; source = "texsource"; bin = "out"; tlpkg = "tlpkg"; };
+  toSpecified = { tlType, ... }@drv: drv // { outputSpecified = true; tlOutputName = tlTypeToOut.${tlType}; };
+  all = lib.filter pkgFilter combined ++ lib.filter (pkg: pkg.tlType == "tlpkg") combined;
+  converted = builtins.map toSpecified all;
+in
+buildTeXEnv {
+  __extraName = extraName;
+  __extraVersion = extraVersion;
+  requiredTeXPackages = _: converted;
+  __combine = true;
+  __fromCombineWrapper = true;
+}
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 60e7043e332d3..5611760ce66c8 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -2,15 +2,19 @@
   - source: ../../../../../doc/languages-frameworks/texlive.xml
   - current html: https://nixos.org/nixpkgs/manual/#sec-language-texlive
 */
-{ stdenv, lib, fetchurl, runCommand, writeText, buildEnv
+{ lib
+#, stdenv
+, gcc12Stdenv
+, fetchurl, runCommand, writeShellScript, writeText, buildEnv
 , callPackage, ghostscript_headless, harfbuzz
 , makeWrapper, installShellFiles
 , python3, ruby, perl, tk, jdk, bash, snobol4
-, coreutils, findutils, gawk, getopt, gnugrep, gnumake, gnupg, gnused, gzip, ncurses, zip
+, coreutils, findutils, gawk, getopt, gnugrep, gnumake, gnupg, gnused, gzip, html-tidy, ncurses, zip
 , libfaketime, asymptote, biber-ms, makeFontsConf
 , useFixedHashes ? true
 , recurseIntoAttrs
 }:
+let stdenv = gcc12Stdenv; in
 let
   # various binaries (compiled)
   bin = callPackage ./bin.nix {
@@ -22,13 +26,6 @@ let
     tlpdb = overriddenTlpdb;
   };
 
-  # function for creating a working environment from a set of TL packages
-  combine = import ./combine.nix {
-    inherit bin buildEnv lib makeWrapper writeText runCommand
-      perl libfaketime makeFontsConf bash tl coreutils gawk gnugrep gnused;
-    ghostscript = ghostscript_headless;
-  };
-
   tlpdb = import ./tlpdb.nix;
 
   tlpdbVersion = tlpdb."00texlive.config";
@@ -40,19 +37,19 @@ let
         stdenv lib bin tlpdb tlpdbxz tl
         installShellFiles
         coreutils findutils gawk getopt ghostscript_headless gnugrep
-        gnumake gnupg gnused gzip ncurses perl python3 ruby zip;
+        gnumake gnupg gnused gzip html-tidy ncurses perl python3 ruby zip;
     };
   in overrides tlpdb;
 
   version = {
     # day of the snapshot being taken
-    year = "2023";
-    month = "03";
-    day = "19";
+    year = "2024";
+    month = "01";
+    day = "14";
     # TeX Live version
-    texliveYear = 2022;
+    texliveYear = 2023;
     # final (historic) release or snapshot
-    final = true;
+    final = false;
   };
 
   # The tarballs on CTAN mirrors for the current release are constantly
@@ -66,16 +63,23 @@ let
     "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${toString texliveYear}/tlnet-final"
     "ftp://tug.org/texlive/historic/${toString texliveYear}/tlnet-final"
   ] ++ [
+    # CTAN mirrors
+    "https://mirror.ctan.org/systems/texlive/tlnet"
     # daily snapshots hosted by one of the texlive release managers;
-    # used for non-final snapshots and as fallback for final snapshots that have not reached yet the historic mirrors
-    # please note that this server is not meant for large scale deployment and should be avoided on release branches
+    # used for packages that in the meanwhile have been updated or removed from CTAN
+    # and for packages that have not reached yet the historic mirrors
+    # please note that this server is not meant for large scale deployment
     # https://tug.org/pipermail/tex-live/2019-November/044456.html
+    # https://texlive.info/ MUST appear last (see tlpdbxz)
     "https://texlive.info/tlnet-archive/${year}/${month}/${day}/tlnet"
   ];
 
   tlpdbxz = fetchurl {
-    urls = map (up: "${up}/tlpkg/texlive.tlpdb.xz") mirrors;
-    hash = "sha256-vm7DmkH/h183pN+qt1p1wZ6peT2TcMk/ae0nCXsCoMw=";
+    urls = map (up: "${up}/tlpkg/texlive.tlpdb.xz")
+      # use last mirror for daily snapshots as texlive.tlpdb.xz changes every day
+      # TODO make this less hacky
+      (if version.final then mirrors else [ (lib.last mirrors) ]);
+    hash = "sha256-eUG0KVfFPkjOczCsu2GAPRQcvcPrEIGqIsJNRc+AHDs=";
   };
 
   tlpdbNix = runCommand "tlpdb.nix" {
@@ -101,12 +105,113 @@ let
       // lib.optionalAttrs (args ? deps) { deps = map (n: tl.${n}) (args.deps or [ ]); })
   ) overriddenTlpdb;
 
+  # function for creating a working environment
+  buildTeXEnv = import ./build-tex-env.nix {
+    inherit bin tl;
+    ghostscript = ghostscript_headless;
+    inherit lib buildEnv libfaketime makeFontsConf makeWrapper runCommand
+      writeShellScript writeText toTLPkgSets bash perl coreutils gawk gnugrep gnused;
+  };
+
+  ### texlive.combine compatibility layer:
+  # convert TeX packages to { pkgs = [ ... ]; } lists
+  # respecting specified outputs
+  toTLPkgList = drv: if drv.outputSpecified or false
+    then let tlType = drv.tlType or tlOutToType.${drv.tlOutputName or drv.outputName} or null; in
+      lib.optional (tlType != null) (drv // { inherit tlType; })
+    else [ (drv.tex // { tlType = "run"; }) ] ++
+      lib.optional (drv ? texdoc) (drv.texdoc // { tlType = "doc"; } // lib.optionalAttrs (drv ? man) { hasManpages = true; }) ++
+      lib.optional (drv ? texsource) (drv.texsource // { tlType = "source"; }) ++
+      lib.optional (drv ? tlpkg) (drv.tlpkg // { tlType = "tlpkg"; }) ++
+      lib.optional (drv ? out) (drv.out // { tlType = "bin"; });
+  tlOutToType = { out = "bin"; tex = "run"; texsource = "source"; texdoc = "doc"; tlpkg = "tlpkg"; };
+
+  # convert { pkgs = [ ... ]; } lists to TeX packages
+  # possibly more than one, if pkgs is also used to specify dependencies
+  tlTypeToOut = { run = "tex"; doc = "texdoc"; source = "texsource"; bin = "out"; tlpkg = "tlpkg"; };
+  toSpecifiedNV = p: rec {
+    name = value.tlOutputName;
+    value = builtins.removeAttrs p [ "pkgs" ]
+      // { outputSpecified = true; tlOutputName = tlTypeToOut.${p.tlType}; };
+  };
+  toTLPkgSet = pname: drvs:
+    let set = lib.listToAttrs (builtins.map toSpecifiedNV drvs);
+        mainDrv = set.out or set.tex or set.tlpkg or set.texdoc or set.texsource; in
+    builtins.removeAttrs mainDrv [ "outputSpecified" ];
+  toTLPkgSets = { pkgs, ... }: lib.mapAttrsToList toTLPkgSet
+    (builtins.groupBy (p: p.pname) pkgs);
+
+  # export TeX packages as { pkgs = [ ... ]; } in the top attribute set
+  allPkgLists = lib.mapAttrs (n: drv: { pkgs = toTLPkgList drv; }) tl;
+
+  # function for creating a working environment from a set of TL packages
+  # now a legacy wrapper around buildTeXEnv
+  combine = import ./combine-wrapper.nix { inherit buildTeXEnv lib toTLPkgList toTLPkgSets; };
+
   assertions = with lib;
     assertMsg (tlpdbVersion.year == version.texliveYear) "TeX Live year in texlive does not match tlpdb.nix, refusing to evaluate" &&
     assertMsg (tlpdbVersion.frozen == version.final) "TeX Live final status in texlive does not match tlpdb.nix, refusing to evaluate";
 
+  # Pre-defined evironment packages for TeX Live schemes,
+  # to make nix-env usage more comfortable and build selected on Hydra.
+
+  # these license lists should be the sorted union of the licenses of the packages the schemes contain.
+  # The correctness of this collation is tested by tests.texlive.licenses
+  licenses = with lib.licenses; {
+    scheme-basic = [ free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
+    scheme-bookpub = [ artistic2 asl20 bsd3 fdl13Only free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain ];
+    scheme-context = [ bsd2 bsd3 cc-by-sa-40 free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21
+      lppl1 lppl13c mit ofl publicDomain x11 ];
+    scheme-full = [ artistic1-cl8 artistic2 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-20 cc-by-30 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30
+      cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit
+      ofl publicDomain x11 ];
+    scheme-gust = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2
+      gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
+    scheme-infraonly = [ gpl2 gpl2Plus lgpl21 ];
+    scheme-medium = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only
+      free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl
+      publicDomain x11 ];
+    scheme-minimal = [ free gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
+    scheme-small = [ asl20 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth
+      lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
+    scheme-tetex = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-30 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only
+      gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
+  };
+
+  meta = {
+    description = "TeX Live environment";
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers;  [ veprbl ];
+    license = licenses.scheme-infraonly;
+  };
+
+  combined = recurseIntoAttrs (
+    lib.genAttrs [ "scheme-basic" "scheme-bookpub" "scheme-context" "scheme-full" "scheme-gust" "scheme-infraonly"
+      "scheme-medium" "scheme-minimal" "scheme-small" "scheme-tetex" ]
+      (pname:
+        (buildTeXEnv {
+          __extraName = "combined" + lib.removePrefix "scheme" pname;
+          __extraVersion = with version; if final then "-final" else ".${year}${month}${day}";
+          requiredTeXPackages = ps: [ ps.${pname} ];
+          # to maintain full backward compatibility, enable texlive.combine behavior
+          __combine = true;
+        }).overrideAttrs {
+          meta = meta // {
+            description = "TeX Live environment for ${pname}";
+            license = licenses.${pname};
+          };
+        }
+      )
+  );
+
+  schemes = lib.listToAttrs (map (s: {
+    name = "texlive" + s;
+    value = lib.addMetaAttrs { license = licenses.${"scheme-" + (lib.toLower s)}; } (buildTeXEnv { requiredTeXPackages = ps: [ ps.${"scheme-" + (lib.toLower s)} ]; });
+  }) [ "Basic" "BookPub" "ConTeXt" "Full" "GUST" "InfraOnly" "Medium" "Minimal" "Small" "TeTeX" ]);
+
 in
-  tl // {
+  allPkgLists // {
+    pkgs = tl;
 
     tlpdb = {
       # nested in an attribute set to prevent them from appearing in search
@@ -116,55 +221,15 @@ in
 
     bin = assert assertions; bin // {
       # for backward compatibility
-      latexindent = lib.findFirst (p: p.tlType == "bin") tl.latexindent.pkgs;
+      latexindent = tl.latexindent;
     };
 
     combine = assert assertions; combine;
 
-    # Pre-defined combined packages for TeX Live schemes,
-    # to make nix-env usage more comfortable and build selected on Hydra.
-    combined = with lib;
-      let
-        # these license lists should be the sorted union of the licenses of the packages the schemes contain.
-        # The correctness of this collation is tested by tests.texlive.licenses
-        licenses = with lib.licenses; {
-          scheme-basic = [ free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
-          scheme-context = [ bsd2 bsd3 cc-by-sa-40 free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21
-            lppl1 lppl13c mit ofl publicDomain x11 ];
-          scheme-full = [ artistic1-cl8 artistic2 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-40 cc-by-sa-10 cc-by-sa-20
-            cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth
-            lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
-          scheme-gust = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2
-            gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
-          scheme-infraonly = [ gpl2 gpl2Plus lgpl21 ];
-          scheme-medium = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only
-            free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl
-            publicDomain x11 ];
-          scheme-minimal = [ free gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
-          scheme-small = [ asl20 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth
-            lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
-          scheme-tetex = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0
-            fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a
-            lppl13c mit ofl publicDomain x11];
-        };
-      in recurseIntoAttrs (
-      mapAttrs
-        (pname: attrs:
-          addMetaAttrs rec {
-            description = "TeX Live environment for ${pname}";
-            platforms = lib.platforms.all;
-            maintainers = with lib.maintainers;  [ veprbl ];
-            license = licenses.${pname};
-          }
-          (combine {
-            ${pname} = attrs;
-            extraName = "combined" + lib.removePrefix "scheme" pname;
-            extraVersion = with version; if final then "-final" else ".${year}${month}${day}";
-          })
-        )
-        { inherit (tl)
-            scheme-basic scheme-context scheme-full scheme-gust scheme-infraonly
-            scheme-medium scheme-minimal scheme-small scheme-tetex;
-        }
-    );
+    combined = assert assertions; combined;
+
+    inherit schemes;
+
+    # convenience alias
+    withPackages = (buildTeXEnv { }).withPackages;
   }
diff --git a/pkgs/tools/typesetting/tex/texlive/fix-implicit-int.patch b/pkgs/tools/typesetting/tex/texlive/fix-implicit-int.patch
deleted file mode 100644
index f74409fe10664..0000000000000
--- a/pkgs/tools/typesetting/tex/texlive/fix-implicit-int.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -ur a/utils/m-tx/mtx-src/prepmx.c b/utils/m-tx/mtx-src/prepmx.c
---- a/utils/m-tx/mtx-src/prepmx.c	2018-04-28 17:56:18.000000000 -0600
-+++ b/utils/m-tx/mtx-src/prepmx.c	2023-07-11 15:21:26.351024424 -0600
-@@ -769,6 +769,7 @@
- }
- 
- 
-+int
- main(int argc, Char *argv[])
- {  /* ---- Main program ------------------------ */
-   PASCAL_MAIN(argc, argv);
-diff -ur a/utils/pmx/pmx-src/libf2c/main.c b/utils/pmx/pmx-src/libf2c/main.c
---- a/utils/pmx/pmx-src/libf2c/main.c	2016-02-09 22:31:26.000000000 -0700
-+++ b/utils/pmx/pmx-src/libf2c/main.c	2023-07-11 15:49:35.043438384 -0600
-@@ -106,6 +106,7 @@
- #ifdef KR_headers
- main(argc, argv) int argc; char **argv;
- #else
-+int
- main(int argc, char **argv)
- #endif
- {
diff --git a/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix b/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
index adb4a6093564e..4e47feed0cd77 100644
--- a/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
+++ b/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
@@ -12,7 +12,7 @@ abbr-15878={run="1irhcs2zkam6sdl92wk07v5ckg56r6n10hgcjn5im2jpsinsad5k";doc="1z45
 abc-41157={run="0fxnxavk76gayahflpa8f61j63x9y6aym7gqnmn6xfgggyab4qmd";doc="0ipxihm9jkb5dvlrk217275p7r6amnkbh352k07s7k7i7rjg9pmd";source="0461ci1zg2wq3f9qypwkxmyi0rciv8p2zk9rcajs0591fwz3drj5";};
 abnt-55471={run="0zw8vdmqcb5qddc0rf8qd67fwprwjagzy8s9ildgisb7arqmbj5w";doc="00m174q9gxsm23j3fla7m7lj5fbr7iqfw02dz9s6481nfsjh1wgy";};
 abntex2-49248={run="1q7r2j7c5p1f0gbrc3sjd5gjq2mhljf1nj5n5760snhwj3qblr66";doc="1id5yj5kh0qgjywbiajaf5hf9ix9jq8178fv2kvp1yslra7r20s2";};
-abntexto-65705={run="0chm63y8i7fawll6c83ydq62mzmnmyzivg8jgns2aph3vsys45xz";doc="0spy4chd8z2qff3sziwwfx745107szzjgp33q43j54yja0hzyaw2";};
+abntexto-68837={run="1yzmq0rkpmg946zpbcmphn70fpjv8a6n29n66q4x164ay3im089w";doc="03n3b9mk9nyxplaj8vhb43i9fnxvcqr4q30jfbgax50qji7lghdy";};
 aboensis-62977={run="171586kjnfg1qb4wi50mrc9jd8h2ybg6r68kwyhgc5y0gyhyg08c";doc="0qc74wvq6ibxgil36wp0b5s66d7m7axbn0y1qpzy9hyrh8v8jpav";};
 abraces-64967={run="0s1aclk85fcda4nf4i8pl3gvr65vghgcmphpwyi8n7im7kia25y2";doc="0h7nyss6gy8r79ny9klpskbh6bf10rp5f67p1x5wklvpmyaz270i";};
 abspos-64465={run="0qzx59dz7x8pn9jr8g15jsmf4hs27v8qc30phi1g5h39i9c6pmg6";doc="1a3li91yvvw2r62dvp87zzzxni3xllrzp38zg6qxfsn6xbwry9zf";source="10dx92msh53z7sn603vsg740wvbhz8hr6bcn1sjs60snl47f4yf5";};
@@ -25,17 +25,18 @@ accessibility-55777={run="0d7xrsdanx7wnnmc983rfy00r4290rigwx5ils6pfm0br2g5kfsr";
 accfonts-18835={run="10z7c7cgwm62dyzxfnj0jiy328zj3wccqjick37lz641vqifrd4v";doc="17mbr2ydbkc4md6zd34km3d4s2vjmqzfwb2l01n4y30vjz2lzsn1";};
 accsupp-53052={run="156yax2q84naj394xzr8m7hfyl1j7pziw8d6rzkrjjgxs9p9az1j";doc="1ak7xv0hhghgbwmcviirhh1x5y9pb4is8h0a32kdd4hdxjdm7c92";source="0spz8640bdzmirlnc3rwynzvgy5fi58vfs802jzbqxb0ypdg14s7";};
 achemso-65103={run="1chl9nny4lm75qjhv9pbjbgzsm54vj7dlpfdm0gc5yansb70ghcv";doc="1fhszmzl99l2nvp3m95hf44mgqkg2mvfp2sw2nk12k8a7b2n33a4";source="1kd9dhmjp0n0y0cv7437194yhjdsd0ac6qbvx060sw72mb2dbj6j";};
-acmart-64967={run="0h5m6wjy31aid2kyqwkx034b7mzzf6pb6g4xqwg1linajq3377kb";doc="0w0f59fr9nlmgy8f46z7z69gfmsdn0wy7x9g1n47hh8zhr4n7z32";source="04g0byyqwdrf5kc8jrfwz9nswliimxsgn065g895nr0wcywac0s6";};
+acmart-69242={run="1qyzb19sj7s9q05zqb295pl2424ip4w8pspy1hl5d0kja6vcp0kp";doc="0rvi2yz91460ja4r25p2ka79rw3gzji2qplyjrww2sl78k5xa6cy";source="1hcmzbfh7app6w9fvmj29v1qwc7x76w3szjhgx94p9lr9gkja8hk";};
 acmconf-15878={run="17l1kcwv6wk5p752lmanlx0bmh2py4hfxranapgbdrhjpis4jm9i";doc="1vyhkwqg0v3pxjnlwzwnmiffh6b3d9nrwnpaqjm24j9d2sc6cxcx";source="1n8cf6n2fdb88xmnj2m5r3cjz3jlp9n7bn1yr717fsp2ks81pr3f";};
 acro-62925={run="1hzavaicandq6sqz3sy8hj5n3kvkbic34p8id2mslizcw3rmlhhz";doc="05iwf21y45l61fsask04pphxzzjn7h1al8n2wv59jkxyh8vy8dbv";};
 acronym-54758={run="1gq7j83gjzlfbnrnz1cl0lihpdalsn6ww6hqxdfxikm28vynk88g";doc="0zscjwg22s81awq27lhqs14davwbhf5y4zsl9dsq2135rppmmyvv";source="16dds23mj3ha1b64fxz2dnxk7wsrcmhpmpz0zgqda46vaab9qiw9";};
 acroterm-61719={run="0snnpamdf0qqqf3nabl2f4pnabpjxjn949s44lb8wb4lifndyj8d";doc="1ybgfy3x0a3dz5p2gac2w4ai2yc84i28vi6x0bq61ff3v74iqdhc";source="1gja9j0a0v22qqdqy5f3ivrwablrz550gp7nf20054cirjzgr6f2";};
 active-conf-15878={run="1chi30gbr7xjcs7y3p2y8vfg6hany4wbacdm4drha9pa9m5sxqgw";doc="1css89hbdg8zgl7zf2x7vfgbl90x7bjvf0c0m0akjk8fzx936g7k";source="0anxqifjlf96z4vvr031v26s73d1a1sgjp8xv9xxv0kia4l7048n";};
-actuarialangle-51376={run="1cb333pky7vq83gfriza8afy17ag9lm81zr2f3nbjz4vrk7sidqd";doc="0bwyj15r2bf3bqc7y0dbz03bwccwlh9ygcv1frnq6bc758rfksb1";source="169m5msyy0braf61jz721isba94fx5wxinzfsr2yz9hs6ic62dg7";};
-actuarialsymbol-54080={run="0g8vm5wynrlj0764w7l9wfx2zw6ir0hik8nv8djlc96qlp8cm80r";doc="1kqfn2c7rws75yk01962nx2ra94vfh2j8rnfqk7qkip45x7ya172";source="02s6fiv0i0a1jzx4jkbv18rbmnld4gzhv2dfa1gijvzwzr1rpvp2";};
+actuarialangle-67201={run="1cb333pky7vq83gfriza8afy17ag9lm81zr2f3nbjz4vrk7sidqd";doc="0bwyj15r2bf3bqc7y0dbz03bwccwlh9ygcv1frnq6bc758rfksb1";source="169m5msyy0braf61jz721isba94fx5wxinzfsr2yz9hs6ic62dg7";};
+actuarialsymbol-67201={run="0g8vm5wynrlj0764w7l9wfx2zw6ir0hik8nv8djlc96qlp8cm80r";doc="1kqfn2c7rws75yk01962nx2ra94vfh2j8rnfqk7qkip45x7ya172";source="02s6fiv0i0a1jzx4jkbv18rbmnld4gzhv2dfa1gijvzwzr1rpvp2";};
 addfont-58559={run="05a413mb0ksviwbl0y1a14j8y3np5ra5sgjcnbrslrvavf4q2spw";doc="069vk1d1ig38r6a5a87fblq4m429crp79xqccrsk48ixswxafj95";};
 addliga-50912={run="1w9wv0wbv8acc7qvcc5pb5kjxmy2nz95cb990mmgc2lxvvsaw2rl";doc="0q41i3cd16ahpklr1ddmzmfs741x5k30vaz7gz7k8jrf0579nv7w";};
 addlines-49326={run="1rkcpk1c8in0g6dgyc1m6pyz01jbx19gv98jmaiybxgvsa3z11jc";doc="1gaf9ljzkdhwjg460hl79hlwdwi0mrvgs51si8k8gvialng8b1fv";source="1m3l2s1l671n9j7jdsxfljjhrsvh81bayw40v81dm0f68g5hslnf";};
+addtoluatexpath-67821={run="1wzryl229yq1irxpj58qn32l5adhp9sc132y6m46ps283qq6wrin";doc="0xw2bvqdcr761b1i3gh5gg8gfj67sx539hv8jpcdf2scln8zx9bl";};
 adfathesis-26048={run="0j60iq9nzk5kbs12dqx5jk84n14kdlx93mcypwi9b2gn7kyqzn5i";doc="0c6k4xsy0jg95qg45bqk9527kb3k3azyxwpl2zrkw0ld6k47sswz";source="17irbcz9wjnc6rj9f736i2hw4qrjwa1gz5z6w7gvq26b68pkxrw4";};
 adforn-54512={run="1cb6w50xb9wkl6x384dhldrhpjbk5l73x5gzpbm8za4gmh1pc94v";doc="0a1f1rrii1zvd58h2slk2zj032vjqpi480d38rgi2k2j9wlbbyyg";};
 adfsymbols-54512={run="19rr3zdgqlmnrvd61g9bjiqiyn2gpn82fhj4219gqb1l06nqa0ka";doc="059fjvdmd1jgr1flv5181ac3wvby93hyykfshcmr1j06zs8j9kyx";};
@@ -43,14 +44,16 @@ adhocfilelist-29349={run="08fnrvnbrp7534b56hn8w0nm8pbgjli62v34mkalp4qkfb559kh7";
 adigraph-49862={run="077iqsmfa1fpgmnppb7bcnskpa9ap4wa53ip67b4d21pa1arzszq";doc="11z48jaj6xcwrzv8y2byjcs88mdvqi2fqk0nqw3cy5pq7b5m7rap";};
 adjmulticol-63320={run="0wjqjg46gbf44f2x0xf58b3f9bxfkrh21m85mh1xsd5pxdy116fl";doc="01r00mf8skd54xgzqjicl4djjzgnf5fdw5hcbf9p5ixx1zw1jq7l";source="1zyq1r0y3amkqch1lif0dygif0sgwhypscqdsqml6ik2ziv2alzi";};
 adjustbox-64967={run="03fqxxhpc41zkj8g7dwd4p3vs9c0qg95c6bdwwgvn3xkaqn6amjm";doc="11mldsmmp1mcd5kya8bh2zmkgl01ysswcia1lips3vjfiqjp8vp8";source="0qzjxslq3bni6iancxix471sl6455syp1pglnn7xa5lxlfl43ccs";};
-adobemapping-66553={run="1yvf74mlmxmnq9m0wvda9xcna8xnn382bbrzizzjm5w7bk8c4g98";};
+adobemapping-66552={run="1yvf74mlmxmnq9m0wvda9xcna8xnn382bbrzizzjm5w7bk8c4g98";};
 adrconv-46817={run="1wx9a00jky9v8xmjhrjlhbl3kcdxh1n9yybpsr74g2vw4bwdyr70";doc="1ny594a3dvx3jba0lf72kjny60ix6hnnw8gj479ccfj3gw2wv0mp";source="1cndbrbw5hss1qi7z9mgymqrcmvlhj8hxw16qjjzch85xw1nrwzg";};
 adtrees-51618={run="1j38apxxk3klabxrm9kpdf6zbmiqb17is5yqgg1a4576n8paqg4y";doc="1851rqb9gs1wf8wl8f7pqbnxgpikzxzw1n5mg5w0kcwd889g17yc";};
 advdate-20538={run="0wgr84y3k10g6622sm11c4m4wxj73vpklf5i5gnp14yamwi19cn8";doc="0hyq7kn10ajqabmz2r363wfpdi71a9zkv6yr30s9lda0vy5vz4k8";};
+advice-69283={run="0p76w2fj14908vfajmsjjv4kh7d77vyd7x24zylgil07p2s1i86d";doc="13hngcgkihzmam4fc4clkb49a4mzy0ip6vxx06b4gykzq8pdvkkh";source="06bfcx1pv400zk5lyz9i8pg4i8kax370jby6s9p10p91wym2p67d";};
 ae-15878={run="1nbhlv1qp7z8j9bhfrljmpjlcrl346z1r7f4hdxijdql0wxs6a8z";doc="1qgq32xw5micjri99zmznmq8gsli6y9fqdi2l7sv530ri9i7kgxk";source="1ljkgb4qj0wa6yxddx4w8w15z0nw5vnyh0cpzc4vwkc0m03xbrm4";};
 aeguill-15878={run="1klri7b3isxwa9lpc2j857y8r9n9x1av865jm93ha6nrwlzqk7a3";doc="09lcp9in9v7vxck9kaql008qmcvba3g8glbm6rr5iag7nn2vbvj6";};
 aesupp-58253={run="10yd16v85zbkzkxb17gr4kf4li28ims33i1zrkpygbdf10nclxcm";doc="1dydcjdz57kn3gwb3pfm4yp6hr69pyqhy5lhm9pnlcrycvqsn8qr";source="1s41gd7ansh80z6mmwwha7pypaxwxxvrz3sdfj24pa5b2agprq68";};
-afm2pl-54074={run="1nbb9lcxqxj2aary7a65fai3hgj4nwzm690iy0xv62v580krdbck";doc="0cp8il19l9sz997v9lcxkl6r94mnlnbj2lzdrffwd1fv63gkxc6x";};
+affilauthor-68996={run="0xrnjg386xpa34l3n26myqkx2cjk06hmj4wnm2yz29kyj4n8fjsh";doc="1d0fss9fniwwn1d8cmvwyjj6fvl5s9jvmgclh6da7pywdw5xgi3q";};
+afm2pl-66186={run="1nbb9lcxqxj2aary7a65fai3hgj4nwzm690iy0xv62v580krdbck";doc="0akl6by43kha3rr9dwnr3hhnnfqg4lqnxv5pqf64cnp17ih47wx0";};
 afparticle-35900={run="0516hjm1v88vk70ggagkj0s00n465y08fr2ys3f2gychrax425a5";doc="1ajpc55z02q8wgriwzzm4f96dmn5bpi9n81zad6kay7c7vwfa9g5";source="03cx2ak956rdwdd5ya49fh81vdwrzq9y813r1h8qcp618sr3h14n";};
 afthesis-15878={run="16jyz1skb9l78dwphggq23jm14zwhycmkx3kn0sm13dcfifrkxpd";doc="091f4flclyahjlxwa640l7vmrfiyb4wqgkh19caq8fld96zkbjir";};
 aguplus-17156={run="0z7mgsm9pa33gykhwzlmpa3shg7ragrz3jdp8qfakp5ck2mbjysh";doc="1105vsng0yramk84pfcg9pvzjbm3cbyp84m6sxr9wadw02z5kj8j";};
@@ -61,26 +64,26 @@ akktex-26055={run="1npcfjjg9nwrb392g8pa4yq6i76aq4ys67zil4qgkf4jyzrixln9";doc="10
 akletter-15878={run="0gigzlxkqmiqz4nwpxj98rcrxmi6yfipf5bifg1mywchnw7a1f2h";doc="0ngj7d4vdnvh99inw2vggqdgx6h2hv5z77glxjcpx8kmxf8h47sv";};
 akshar-56277={run="0g1pbihbpl3b7k7c19qiq7lcgx3zrfn15065dyan85bs8h85c2cw";doc="11a18b7a592sx3wha1lpy659hgh1wnka16zf8m0cbc99f867xfln";source="0g8j0015dm3mhphg06ma9dkgc28ywlihr6pcbi254qaxgk7kdn9g";};
 albatross-65647={run="18bcgycdzzhw47ci9lqyrbrahzax9ajfi5w9vjs35j294b0mk963";doc="1bwg2gq1fdpjlgjflfzfijabx8m6nfraak684ak6qdhvjfzx1aha";source="00w3byrzw0lwzjqsq0r7h81daqs2sg3ywwk3nsdbz0q4j6lkpv82";};
-alchemist-66557={run="14gd0gb86p247bz2x2kcqqj2b0r2lz12gpssfz84kgvrwx5nxkvr";doc="0d8kirmkd1shkbckv32i8yxdrpwzss7qgdn2i06b6mwakisy93v1";};
+alchemist-66924={run="14gd0gb86p247bz2x2kcqqj2b0r2lz12gpssfz84kgvrwx5nxkvr";doc="0d8kirmkd1shkbckv32i8yxdrpwzss7qgdn2i06b6mwakisy93v1";};
 alegreya-64384={run="06hrvi0dssva2r253k9ma1vd6ij3bi2d0wsrk2n6fnxvxbl5xc02";doc="04wx39xdvhq0rfl4mz8k70kfv74w6kpyhja5879g0hp3pjfzxbcl";};
-aleph-62387={doc="11rkr9li88aiqjkfy1lsmn7ay1hy08pkv9rxqifc2mqlr8ck9356";};
+aleph-66203={doc="0b7dihilh2v8qcp4m8fblyc10jc5i4fhpj3pspzinag0pk66b7nb";};
 alertmessage-38055={run="1mj3wiz4fff3ry5q4dk3k0kcx4bcqfwdvgaa9x3vczs746q57dcg";doc="1ga46r20zyb1bq7pvhq4348d2prdshy5m3yx6d00v5zzis1dmx1r";source="0n36cfjgh1byik8zn997lmyz2w4wmz48f5bzqrhcps7bg3kmp4zz";};
 alfaslabone-57452={run="11va28ww6qk97wx8fh0iqbm8b5s14vf923ydpglx4gann4w9bkiz";doc="0wfhd5pi1p5xnkq8lgpp3fhqn8y76h5jp3h5qhlaqygal70fw9kw";};
 alg-15878={run="0lrzrij15s989hy2j9wi1fzkpzvqjfhmgj6ryry0gy7nk3azhhrq";doc="1lgi63jx57arpz688i22razcrzarl96id8xf45vznh8iraba3sja";source="0mjrh4mnx8q9x40vr4csj3h3w7wh3hs8hidbklym29d0scd5rkx6";};
-algobox-52204={run="0xplb7wlbizzy95s4pk1nhl2w1b3g80frkd8p4na2rv7awp0da3d";doc="1bp5b0zr6shhaifkqdliw9qa18ym4s68xfk6k2njjnwdqyrxyd01";source="13cwnl7nxxrs0jsvfrvcy7a5pg8a92qnhxjsbarcx3jmg43d4zp5";};
+algobox-67201={run="0xplb7wlbizzy95s4pk1nhl2w1b3g80frkd8p4na2rv7awp0da3d";doc="1bp5b0zr6shhaifkqdliw9qa18ym4s68xfk6k2njjnwdqyrxyd01";source="13cwnl7nxxrs0jsvfrvcy7a5pg8a92qnhxjsbarcx3jmg43d4zp5";};
 algolrevived-56864={run="0qsxy2az8d0sr07mz7yxca17gl1y3kaqmvlckjdckvwq1idh7h0v";doc="10m3rgczhnkalf2f945jwrpwvv9szxh3v4wggl1rdxj12ng0svlq";};
 algorithm2e-44846={run="1iw3yhdk9nk1y41hw1qcpqiqaxadjc0nf6cgb23kd75ah2cpd53n";doc="19xsi1dgxfi06wxls70pvnys20i2na2y7m2hq8y6v947pc5kbb1b";};
 algorithmicx-15878={run="111iyi2j8qnzha97r1grxpcbnfkpvcwndczx043c4gw5wqmrknbj";doc="1rb46zi4islfbykhr68rnrkj4q966papin0c5m752gh6kzx5r57p";};
 algorithms-42428={run="1va2ic75nf0dfh0dr576lpgqhzqv5203frr37079q648871zqav5";doc="0fqif0nb9ypd4sw2i9qsxl81h3g4h0gm0yqq67d5n9wrpic8dnjg";source="14jgc7vnww5xhnd76cwix5c599sfdjil2i916cfpmsd5yn5qqdx3";};
-algpseudocodex-65860={run="0n55hw5548664zgh2g8p3qw7n8la0vq5i8a6xnnixpif3bpql5z6";doc="1a9bz8hpm67cgpdsdqxq1ad11sywzczd7vqw7lvb3z2jgym9q6pz";};
-algxpar-56006={run="048yw7nk0bnc05swjbmncrrlns3gij9a4851fbj9civlc8silpby";doc="13r04cc5d04ya1c6cm2h9a1f5c62ln5b7zlidiw51zg6200rrl2d";source="0bl51gdyi1i44j2cfz432z5cf63mp4yjr21cc2hwihyfd9vas3z1";};
+algpseudocodex-66924={run="0mpnwm97q1i40phy61wiisf4pn71hn0hwc0x0gscn0jalvfx9g5l";doc="112p7zg5rdf0y7iqs74xwblfwxfflg22nb87bdgkbizmsmy2gg2f";};
+algxpar-67495={run="16pbjpr8nnm4s2fz2sdnrlx7mn3bnzhwrijk721gzx81qbq27cw3";doc="0l69rr17b7njp3ywf5xcrnxvixmkswgaydj2bwrvkrazam1gnkdk";};
 aligned-overset-47290={run="04gjl08y9wbv5qls9z2plxx5n4abi4nzd8qik88via4xghhqiy7i";doc="0il97kycqgqqimqjvjhnhc2mxy2nja20vlspsqrl9zaah71p1b3d";source="0zbaa3m06kfkj7kkv6iy71d20n0kqq1dwy63dwfj4l49wv427z08";};
 alkalami-44497={run="1llldpmc485zxlw1k996g3gfffb0ixx72afz3zkj83i78dpx180j";doc="1315idl4yricb06bh689hhdf9jkc0ckmdygacsx3ywzxj1zcrcch";};
 allrunes-42221={run="0xgh3y7h57lkzxrhddn5wll339b4zih4nb6a36ymx38a6md7b8ph";doc="0dki14g1607a432549kly1wcy1p6j63lrxfd3m5nyz868kg3hjmc";source="1d49w7lybkn7sfig7i27mfwaccr9vjs7ab2ds27jmhp5wjl7w02w";};
 almendra-64539={run="1zij84q0ml0zf0dig3hqlmznwygcp8vbmwl3xc5qii7hs94hnjr5";doc="19j6vi1z04j2zbab39934mflx5qnqdjl4gz9n8hbjwlhiq0wb82y";};
 almfixed-35065={run="0qrai75pdkf4py7nhggvwzaarv4jlh04dqsy1b593jabq7ngaap1";doc="0arhvv7z8yf8kcikzybhbsgsj6m9zy4is5ryr6hcf6a6incnkp1d";};
 alnumsec-15878={run="08i891g4b3k1qqicbsgd3h3sy98cpk6g1cfn17g9ysws8k20a0sy";doc="0fanq66cm0r2dgpdrblrhqkchxpy2dxykq1g8zrk5ddx27v6r9pd";source="1ssw0pi7hn3s7pqcqkm36jjgmd5g2x5rqyf2khhdscfwrsjh07a7";};
-alpha-persian-66119={run="0673i0l6vq1h37g9jqcp7am5kl4dfbcrfqp42c7cr6a10zhvfqyr";doc="0cfl47cqpwxn1k87h19a0ggayf6c52sl60sdrmpa7sfydhg9w4qg";};
+alpha-persian-66115={run="0673i0l6vq1h37g9jqcp7am5kl4dfbcrfqp42c7cr6a10zhvfqyr";doc="0cfl47cqpwxn1k87h19a0ggayf6c52sl60sdrmpa7sfydhg9w4qg";};
 alphalph-53087={run="10gkh6nnhsrlqx8b6k3dylings3q97ky4qsv03nk7hn41zkqsyq0";doc="0v36l765s4lc5r2xfi8a3i7vxf79yxy29xy52cbhx4ps0av4dxpi";source="08yagdxgqvhvq50cc7rvb2629g4n2qjga86dpa43x2vjnmmz08vm";};
 alterqcm-59265={run="1mffpja47m40875i3vk3ha4vdgkxha6zh7q7fic7jfddxcdmlf11";doc="0nh7861513mpdspnkd6k6kaydplmimkzh0a19svbblqwxwga78c9";};
 altfont-15878={run="1nrcjmf59r672gmqks8spqwz3vn4jrwc272zvx7ncylphsjmip70";doc="0c5hz0zjcar69w489zz2a04rbnc3j2lp8yccw9zv41ninzl94ifv";source="144m2ph835fl9x3ypc7wfc444719rv4clfdar3bk73gvf53rmjr6";};
@@ -95,22 +98,23 @@ amsfonts-61937={run="0l3ypclhv5qdpcpy29xwda2m3cjfn5l996agas6yhpdr2m58q211";doc="
 amslatex-primer-28980={doc="1kzayyh1bycmq43s2xn81jf05r18azidbk3gv6igf2vaq37fmxil";};
 amsldoc-it-45662={doc="0d4hwb7hywy56d6934448lcr6fdx7qchkfzs806dr7wfzfy36yix";};
 amsldoc-vn-21855={doc="1iz0zjn1v7izwbsq0zb6cvpnkbvk0nxw1b24j7dzqwk3m9j43i6x";};
-amsmath-63514={run="16sqs6f28zpzdll6hw2cnfcpznc27vy04h78a0jm3r08rymd9wl5";doc="11n91sn0slrbcjkr7xl4dmgpx5vril47xdfz9x7hw04ry6da4jdx";source="0d12gk75ny03fs3g9s9q53awss9bk5qcyccrpyg75q5r8vfqllvr";};
+amsmath-68720={run="1igdsg0i32hi2db8ymdgvyd3fk4iiihspvcc5azw11fak9wvh7mi";doc="1kv670h72jl64cjfidk0h82whf24xhcl8vsrpppw6w5rx252zzfz";source="1k3lwg72h4z0gyj9azr2b7b78x1q5h85675mfam2qdl3iljnaryh";};
 amsmath-it-22930={doc="0xcwsk8q9q3nsz8wbklgpbw0vzjw7iw0chffzcbp2zsk6rypqf7w";};
 amsrefs-61937={run="015spycf9ycxav8r046yn7lrc892nhkkrf1say1yy9karsji6dnw";doc="11fc87kbdm440v4qyhxnv654mh0m6rpz42zji38qspcqj19rck71";source="02q2x8zpwxkyrh9v7xqw35vdjx0b4fzz95xcv6vfjmynm8cpklxf";};
-amstex-63708={run="0l078b9fkaai7kn2szn5hblqp3amlafr7ha0hjcn48657wsjq4jb";doc="025sgjii3sq0qar3g2mhkc9m3ml4swjy5fzxxgrp7wsfsfvpsym7";};
+amstex-67930={run="0l078b9fkaai7kn2szn5hblqp3amlafr7ha0hjcn48657wsjq4jb";doc="0j6gfbkx8vfalsxq3c4fyjs0fj43a2n8biwainfdmxrhixapwc0w";};
 amsthdoc-it-45662={doc="0ic88gs89m3d9ys40c4k7sgx6wy82c8isg2qkmd4snw5yms6fpaz";};
 andika-64540={run="1bbqdw8r2l53q9870mnsyaiq0gfy1ac808qqmyrzqqz4ai41zzgg";doc="0ajjaqdfxlvsmpr9bjmdkzwbdbz6ahxfw1sj1sw26r33npy0c5bs";};
-animate-64401={run="07l7mza1lmpqyjrmp9zf1w2jhy0va7abja8lqdbli2h2lfzvxij1";doc="1frx1x6lqa0jbf4jv69ifcs9266pr11k83hygh8mngkvyj2lvsbj";source="0637688s24ijgvd6f8y7diiv6a6n694r2zqjd76midlkaj4ab1kv";};
+animate-67401={run="19rq0pca3q8kv1f3qf02n75326ngjxjhk4hcllzsl5p1ngh4vw8b";doc="0x991qbaf5n8bv95yc1k67rjas896ci0iki62yl7icfbmcbz5hd2";source="04bblj8wxx9xg8zr6b8jzll5v69vdiz3yzxcdcm93j6zsxvw7bai";};
 annee-scolaire-55988={run="0lwc36v09a4ji5fz3pq9939jm39729k0k7hha4kkk20jc3j4jnds";doc="1f0qc5qvsrnjddp1kyrcigd8is2y9nsxc9x8a215p5xds2z5gc30";source="01mga2nif61mpkf7ifzhsj5pq7wzm2imlljap4c6wcrzb9zlhfx1";};
 annotate-52824={run="12q3xk08ycz57vsrcr2glk7y48w8sbc4n8lrqaicd46cxfd4jdqm";};
-annotate-equations-65851={run="1n1dgjk6y8rki0qkjy8h0xkcl3ricszwagr9ywmlag2al551awnh";doc="0amfh6zay85z604qmvv4vrv9ambmdv76c7vxi6rmrn58j1lslssb";};
+annotate-equations-67044={run="0lqi4b3fkx9bijs2ddq479bkdf147rr7j4zwinygs2k1fh07yjma";doc="10b54pcdjl4ca36wrqc1pcxa7vp02f1v5i05a40iawfc884wpcvq";};
 anonchap-17049={run="0nz53v74sigvlb4dhgk5qcalw7nrc1vafbjx754j3gfyp2ilaf1j";doc="06khbq6p3drxsbjwgkm1sd163f7nl8hc52pjsm55g2vknib5caa9";};
 anonymous-acm-55121={run="0blyv8pj41qa3fvhwsk9kq8qwp8x0b1iz7vyc3lxcpcv626aqr2h";doc="1j0fhwv26ziw6rvg1s2x0ry5yq2sfa8a55xvpyrzl6pjmzrj3czm";};
 anonymouspro-51631={run="1qk10w52722yzlyvk2k733sp1h2vic3rjcswkhx8j21a2g9xgmjh";doc="0ijsn9cbkg1f29x0pj6a4p5d4q14rqrh2mjid57cb9qjhvgvqrm8";source="0fl9sd9adhjx49hja3k4iy9pcx3hal0wjzxg10kjmi4j6qvz829s";};
 answers-35032={run="18s0c7hdk5qnj3svni93m9lpj81dhla9v7nsmcgh0jabhwy8n3v2";doc="02pfg28dz10w21ap4pi2csvy32pcvmp0baiciavp354ky4avjbdd";source="0mcczai8da24jvmakc7glr2c56yhq2jv58y1xqv6ny9hg4ph8v61";};
 antanilipsum-55250={run="0xz42icnw36dvkxlh31g8hvy37mrbafgihm7l3ivh1z4hg6gabrh";doc="1rfx3aqdvl4gvcrpsqzjh9dglk34ll6qc1a889yz0np93psnwmkh";source="02qpjks29b4fmma6qm43p3w1k8h28wv1blpwjnnsfq4ii6xrkn5s";};
 antiqua-24266={run="16pb6v297iqx09lb6w6zfcyzhwidd1cln14rqc3fblbmdaggpays";doc="0pwyp1j02zh51crp46rlhbdnwc2m0blcrg0yk43yfc687q3jx91y";};
+antique-spanish-units-68998={doc="16jk9srxf9ya7h80v77f58xdg7dpxhpcs35lv6hwv4g0yas71ab7";};
 antomega-21933={run="08if5plzpj7g8m1afhq8ci6m4yba4nnsgglngq94ka3ga8czfk6g";doc="1mrr1vqkyic5nyzyxkw7zq67yz4njx9x68cqr3vjd9d77qv85i00";source="0s0dzmb00hqbp71nhl94w0ns1dqj5fmfqw63z789iihqznyxkii0";};
 antt-18651={run="1clzmvpglsirsvm8nsc3m4dkz2va90877gmsrm7jfkhm62xv9mpi";doc="0kpiba7awkrjr2rdgxilni1yi8p4ycmqyy09c1p9j1ld82idsjcm";};
 anufinalexam-26053={doc="1v1k74vxidgxn5zzqz6v9zga468kcf7hwdrnvw44cd318221y396";};
@@ -119,7 +123,7 @@ anysize-15878={run="0kkjzsk03bvnap54gdf0i797zqq6bdz39yh4dn810l5hyfqxbhwc";doc="1
 aobs-tikz-32662={run="0fiq64szq6243gy7vg99gi9zhz5c0svrwjwj92qnv131zj71lcg8";doc="0yy2nlq6d6q5cijdswkn3b1f2a3j5sbl3fdv599vxna5pgywsw6s";source="1dj665gs9cbx3mf3nqr0944kg59gwg43ll1dz9ci3jra0nsr8w5q";};
 aomart-63442={run="1x69rs1k0zxkqwqsyjmzkwrxiy1hdsd32dvx7ha668l9wbq7582q";doc="0nhj05cm7fsi6fpp2wq2p119y0wyk2ag070lnjj3ri1zjahx5yj2";source="1d6mpqd07fayx5g8kz8937jyj6c6rbw1g8w1amq5sb32215c7q2r";};
 apa-54080={run="0g7y5l9908l4aikm0mqgwfcdg19dbllcgdp94cl1aha7h4jq0971";doc="0bzicm0x6sf78jbrqp66mgfjmcd7kw0rgkv0c6ah9945b9lh4ly5";};
-apa6-53406={run="08gk55f1a52az88nckdljp67vqv5i1k3n6wwxhgqb0m66j0aax8a";doc="1lk20c5lr1l3niccfcagn4pbfqgixivnz6sx1kafvljxg5gw2k8g";source="0qbwizqyyjc72c8sd2p7pyhdcqnv4xzsapjyhyryaifpm7x6dck8";};
+apa6-67848={run="1zhm599xqx1j8yqjp20xgafm5xdnsjdh8pz1xndjhlqdxnv60044";doc="01iv078nfv3ilh8yjkf2r9c9kyn7lxxad8vl0lb4gvi706p3npnr";source="1g987ikxqvl0b1zkf5kvwg9dzy7c4k1rv9cl4r8ssdfm9bq7fvwl";};
 apa6e-23350={run="1da46dhvpwmjvm3ma4zbnfgsc2yiqg9d6rdrw3bd5h2ibs3vnlmg";doc="17m97m9v0pcs58i3k7sdj9h1vifv3f0cxxyn4fzi8pxvzljwl5qm";source="1155ic0k6f6gw6zmqq8pv74hcn45skjzyarf9vpkcksj96qr07ba";};
 apa7-63974={run="1y286f7vyvgnyspp0vzagf8xc81b02029zn40ggh5bhhysq06wzf";doc="0z8jfr76r9rvqanljhq0fnx5z2w59lxk2mc9if6z7kkid1m8qx8m";source="0xx3yvjknqsk36mb336hlvvsldhmp21vblgzl2zccp347g5530z1";};
 apacite-54080={run="013769hi9alyizx08a0v1hbl03h5vkwi6a6ar3ghw8m6l445xb8m";doc="0d49bmdiiriklmh99kavvm48zh29bgiw7zr5jbcwk5bw42qarlqa";source="0hsrhw50sb8lphxib4jmjgplfrmy95m56a1phiac4kwxphlj9di2";};
@@ -134,28 +138,30 @@ apprends-latex-19306={doc="1xzy7svb2xz6bdfg0f1r3whwda118pl7qdwygx1l7h4d1vqm2rcq"
 apptools-28400={run="0b6yzpk2d79qg2irgfhns0w05i54z5z22ik5yyx4w6wg45v0j389";doc="1n8ak9cw66780zkk384vpjkxm9j8f9dzlqzshy48q7hhprsg4p9a";source="1ba08rixibjcpi420blw8a0v4c4zi2byll7dqlvwb7azqr6dz720";};
 apxproof-64715={run="1v42g8hr93afz1lr1hbvycgws92vg6pzig1qqjmrpff11irwfa0h";doc="1043sl948r89fzgzxwn6n4sjs1jl7mxr12hq9y4ljgm6264kw0d9";source="0wr9vjn9vmljsx5gyccjzcqwx86hza7idrq84f7b9jl1miwgddbn";};
 arabi-44662={run="0jmx0xsb3hz5i25mmqnxgg3bikyr1w26i3364cqrp50x9sqvkgfm";doc="1yipdaiai9fbmrxkacqwnbibdiaa5vskzj40d1hxv6wnkxvj2qkw";};
-arabi-add-37709={run="1ylvj2w98dly6blpk2aicz206rfg5xzqbcjx00j3jnmw7g847kxh";doc="1d1wngc0179p7ij7ibnyvq3cxb954sqywxyv5k7a3dg5np9zlg7j";};
+arabi-add-67573={run="1ylvj2w98dly6blpk2aicz206rfg5xzqbcjx00j3jnmw7g847kxh";doc="1d1wngc0179p7ij7ibnyvq3cxb954sqywxyv5k7a3dg5np9zlg7j";};
 arabic-book-59594={run="0s7hnmz67hzfmfzc0mniiqfi6i8c8qzslbm92z1wc3a2hr38ihk2";doc="1j5h788vsmrcag9bighp6kz6zx40ppjzwfa070ic140lqzz2b024";};
 arabicfront-51474={run="16426cyvrk461z9jb728w6glfm0ahss82kkq6fqkhajjc0cflhwi";doc="0ck7nl7v6kvibiahh3szf3nbibwajg2pjwrbcz06frpfwhizsnp4";};
-arabluatex-54512={run="1s66v0qns84vhpwvb9if07b9s7957jmxxd643g1mddg36z6pkqfj";doc="1rfwl55la33ag9plqwssjvgq47mab2h7ljrw5w6l96vq965c2csa";source="1g84xxm5fvp6dzdrkyxcjn4wlih0iydrdyxn93dffx1a9n1c3yyg";};
+arabluatex-67201={run="1s66v0qns84vhpwvb9if07b9s7957jmxxd643g1mddg36z6pkqfj";doc="1rfwl55la33ag9plqwssjvgq47mab2h7ljrw5w6l96vq965c2csa";source="1g84xxm5fvp6dzdrkyxcjn4wlih0iydrdyxn93dffx1a9n1c3yyg";};
 arabtex-64260={run="0xd2apd35zn1c4narj2gyla154nzd9ghhgc3fkk6y06d8dzgawv3";doc="1zyyk778384mhma5q7ra75fwykk23i63q4jzamq4zard0y7gp4k0";};
 arabxetex-38299={run="15c8nmmv87x87dbjwm1q0acf7pbbh8w9gpiw77fs2i51gab592xy";doc="1ns1y2lf87gspaablh4lm3kj33ggpfp7hcxbdv4vxf8hhfc4pp7d";source="077r71723zlzfjmc471a8hbxs1v2g6j2xpiim3g2klxsj589bxfn";};
 aramaic-serto-30042={run="0j1i5snrgj579zx3cn7z7dhi9rrq0ssl392r2vxykcxalcc8cmg2";doc="025nkiqh91laaj3yx2qkl5z0jcm2w0qwgqm545dd98i5y1a78lfx";};
-arara-63760={run="0wv9gcps3nyhssysscfwdsvv35q4bp14m0mz2h0gq7zc2dqnmjml";doc="1bi7k8ihgh93fj7id134z6dqy74r05gksfpvk5crp6y922kava0q";source="0ngp7dl15iqp81a1z0an6vf007aznxd7cwcrzywgx7w42cd4a19l";};
-archaeologie-57090={run="1g0r3y1s7759lx75fhmc2v38ks4mgbldpjkkxnk7rq0ljdqy38x9";doc="1hccakjvh7ldyja2nfi68926yn175fhawiwc76qk5fksggj568rg";source="1gv9495g29hqc0g6in438g8sdkaxwwn2vvp8f41mz033dzfln5bs";};
+arara-68431={run="13cvwhaxr6a8xbi5kdm6s310zy6q6fmfynbj4hkjlh97ij42scl5";doc="0mnanld6pmgnimylksz34fx9gjmcbm4qwfajkisx6h5f3qg5419g";source="1k2grs77d2pqybvnnkk3xy7rxzm1vk03rcfgzas92v4h8r6f50dn";};
+archaeologie-68476={run="0r2j9n7vbdj7virnmasqi9md81wbc5b53h0xwf4d6azh0isy0505";doc="1xhlp6x1ixqn5xj0k9xz5149jwf9zgp3nlv0ncyjn5nzqkky0jyr";source="13wmghwrc89g8kmsdsqjfcklbindkrc63by2zlgig29rvidzn4lj";};
 archaic-38005={run="030a281kl48ixl4vh378bf0341lrrpvh73ws5pjxyhvs6cvyxp7i";doc="0m64lsmx3sryzdmbsmz7biwmndpn66x9is8apqn7w64y4b1jjcpk";source="1231mqascj96yi4jj11p4zcxgkpzxi3p0zxnjq8x5fpajz386kq5";};
 archivo-57283={run="19hr6vc7x9csjjd3i6mz9z27cyq4pz1qvhmiwbql2xhvmbcd871q";doc="00cs206zp27vpw06wqg7adwj73124zbp8zwfvgqsh9n544npvfmg";};
 arcs-15878={run="0qahab6a041wn6s6isnjn93yrs6zk82g90x5aqpv742b2y8cj5ix";doc="05wgq5pkzxg3vj9anlzjq1jvwj7b6wvsp7a02syca6n4qvy1v5a7";source="0jnvkhhcqv7qgs4knwx1kz38x305a19kh13wn47zqlqn65991bpp";};
 arev-15878={run="1nx33blp0nfqfmv2akj7w79qg1rhds40k7b58v5yvyrkx0hpn0hm";doc="1vscwahxzdcb6879pbrxdlfpgapc0bia2fl3jwilrm1has0ffjz3";source="1k524nfr5zb0nmhhq8dfaha4kv9f2ika192scllnn1bywhbpn2x5";};
-arimo-64548={run="0idfg33qcggv0cmh1hzpvzz690yikpmi76xpfh19py168my01mnm";doc="1yx6lp3w6s6zz31cd8hvhk4vdg2whzh62cdlhyglnb90a8hjyis4";};
+argumentation-69023={run="0pnr7z8by62zi1d8qbjmmddlykrkhhisqx4n8lhwbvi3qcrj48gi";doc="0mms537p669wa0v301g51sgigzxdg49rj3kg8i3rva22hm3b7fj1";};
+arimo-68950={run="0idfg33qcggv0cmh1hzpvzz690yikpmi76xpfh19py168my01mnm";doc="1yx6lp3w6s6zz31cd8hvhk4vdg2whzh62cdlhyglnb90a8hjyis4";};
 armtex-64182={run="1b347npswdail6q3lryxi1y8ac13dxvajzz6xzfglgpy2a10ykc7";doc="0v4wfw869d143idxnb19avak8gpsg0n3cyf70xa7zq6hljpq49vy";};
 around-the-bend-15878={doc="00nc6kx4ylz9g6vmjlgyjvmy1ls86pjblbcpm5z40wh5xl7l184f";};
 arphic-15878={run="04a15kip51zp4bhrbpiv4m5pm587xbia792ckj17gj281ysd4817";doc="1z1z7nnncp4dpb91bajxf3li47k011jn5jbxzgdaspa5mjvw32k8";};
 arphic-ttf-42675={run="1z8fa90baasp8j8539a4kzilah602lik012az7i3pc0dnm4m2w1h";doc="0nfbjnprd71dwp2dxmkmdggfipa36w4qbps82czn506xpzh07lav";};
-arraycols-61719={run="0i7vm2znai3wgc3h44vhwd3wrrw0az86b3g3ndhy8yyyl17jk3hg";doc="0gq5ss2rq7qgj4zqvf6n9a45j1kqsh0k9myphfjhdrf0s1sq8w9x";source="08vfglpdhjc0b33b5r8x0mqpjamciq4g83m49gxwn1dd71hvwqiz";};
+arraycols-68277={run="1dgqrznjh5irbcic6dscq1xl3gyfvg3dnrps0ki1ypq24cm2cqyx";doc="122iwnlyci7mkvzglzrbl5xycm8rl9zp8yrhb3ky92hqqv1ywi88";source="18kzw3c2gja12808d4k7vr55p39rjs960fv9mmmpld4azw2f7c0q";};
 arrayjobx-18125={run="1ry1gix4nz11kyrfpbhy160c8dir2y68jbmnds64qcdafhfv4b9m";doc="1hqjhkjh5ryhjpi98hyi92raffmish9n9193ry75mgfx1p2b2w0g";};
 arraysort-31576={run="00wbmciwdnafwknxxrnprxj4xvs24xxwdwmn5y5xh1c8c3q8rn09";doc="1yn9kbq8icd5gxix4kzp0qszhg1xy59s4m8p66a88h3cwcs7fjba";source="08gbn5s8c7a8klg605kalr2mdpijy73pxvfsndaw9jdnr9ipc5my";};
 arsclassica-45656={run="13fql9q89zkdhid841hwxyrdbj6bd692lnc52d0yiibrd9gd9f4a";doc="13cqb49296wzph7msrhpzswlyknvhrjaa81509l4j4mx1snxyk4b";};
+arsenal-68191={run="1pc8k3zslxla2ngz29389l4n9ahcbp2m4blydpg2bz0qhs0zqapb";doc="1y86inslxi4y33qc5p7x3gbx3n4d99n3dpzq0ap9ikrdcxgwd0ds";source="07i8ynjbr0w8kp1f3pm65hnx766kxp2bqdps1ln0qyzhk2iidppg";};
 articleingud-38741={run="1ydj9dysf2qgk36ssp8pdr4c6dh5iw27kcw4ykzkx22ih5an0n01";doc="0mkv9fq0hixkjf40la5na4dh0yqi3adgr8fyi1x74sbyi78gmfhn";source="1h1w0fxa1cyw5d943mg8na7hxwyq2ki40gql9y0f7fdx31faiavv";};
 arvo-57213={run="0i9x668hjr2b6brdysl35rxgjji1zdsn6wbf21ql0xmn53frk4ic";doc="0g4lpx8mra2qk9c1qwijilscq48n5n252m6s0hxfraj5rshrhc1j";};
 arydshln-50084={run="1f2y02l7fkhrc005ib1s94z0yxgql2m515zy3mlx6ba4mqadh9c8";doc="0xw13bdw67n2nsahi85bvh5p1xrd8fpb1aj79vss9zgdslzb6j4s";source="1xhnh7jw0sxy6vkw31gcxyxg06dm7bgw0njsfkailbxgndwcp6zs";};
@@ -169,8 +175,8 @@ asciilist-49060={run="0ni7182xwr3ns1dk8i75kf1cw9wpfagrf1y7w20hk8fpfymx2669";doc=
 ascmac-53411={run="18hw5yyqbr8ji39y39293z7a70czipzw00fzfsqcrhgdlid79sc0";doc="0xzwc7kw7hqpcmisw5wm3n508n4zr4s207pizdhfm2q9mjij0jvr";source="1rd5qmy9miximwv1n96h6djjmd3mdgn4b0955marf2k457bb71d2";};
 askinclude-54725={run="0s1938harm9sgna3cggllpa1g85yl9jv2wy4b4c5v6fksiivxzs1";doc="0gkbk6j2wv05kgfbjd4mqx5k7rc22bmqn47vk7pvr5z60dr4nay5";source="067dpl3v0ipspfm5f2fmcmg5cb6lhqg6n8216id9j1blir1ys3mg";};
 askmaps-56730={run="1r6lk9szs7jm57b4hl9w4ngb9dqcsi6pvp37rcnwnznj5m2daj50";doc="1ryw8yy59mfi13rrwgrfg5y5dy3cafz2a3f8zmq5fbl7zhbylq6p";};
-asmeconf-65413={run="01k9yxdgsqvwbv4ydyk0v2dzfafblb98s4jllbvj3xxkjpzavzac";doc="0cyj6an3m1wpqy4kvgppg532fa1hrl3n0g08xi4fj8hzpy46pkh6";};
-asmejour-65405={run="1k2vygq2cnzwyqynvs51wwh1iq18dk56ldjmqd5m1sk5nbp3s9si";doc="0v1dp9h2sp1bb0bkzq6gyy8r41hb54rqdi4pgi2qcdbks1a4j6j7";};
+asmeconf-69228={run="02a0jvq0m73rq2cmmdkcsdbb62ysbx0fjrdrvczh7viml3l0q2z2";doc="0xr99yy8mr4759wfhp4n238v1jx0fggj7y2fsiwmgbqv9s7igi4r";};
+asmejour-68629={run="0svphwvm50pqzr8d4rh3dpsz19y6lmk3dmq4sfyhzm8ph3fh05s6";doc="1qmvcj1m2wv74ywawsz2cs5d4g54zw8caia2675wz4sv6vxc4mjq";};
 aspectratio-25243={run="17y22131b9nzzq1skfdyr7cfcq823nqn3ssqrbc3bglggdfibf2p";doc="0mw7v1m9afyk462rjcimvwwikdpj0f4gjw5pbw2g9c60vbjhz61j";};
 assignment-20431={run="1nxgpadadzf3d30ydc9rndwm4v53s4v10a6sbqf6yfqds7ry13vz";doc="1wyyvay22r68hfspaqv0a43s9icg8a3pj8wii3snn90svbsjfajn";};
 assoccnt-38497={run="0im3x8im6kkjmvibh57hkn8nljcfc4mzp0hpimiqn29ys1yrhj98";doc="11p081b0b6mcigqsmvgf6kc9ik2480c74madjli19rw9i5nzf0vf";};
@@ -178,7 +184,7 @@ association-matrix-64845={run="0pa2js62lrqvh9ghhv5gylaz7jxbh6qwkfymr3z99w1isl2ia
 asternote-63838={run="0a3a5jjhsbvi7kdkp98kwa0q8j9chrq5azfg9vbb4m9kfkbafafh";doc="1xz9p6g5bl3qa957icsyjknni7bvglfhvxfvxg83x8bd7hvh7ylh";};
 astro-15878={run="0cjf53gbin9z10g63x2kingsclgnwr6idc4x0m473hf4fvakk34x";doc="07kad1fzv7p6inh7nkrq6b34c1792h4v49rxaaxqyldmf4pwjr84";};
 asyfig-17512={run="0zy0vxxmzg7nzwzw8z84sym5wdfbs7kyf06r6vnn05ga06wwn603";doc="03nby6d7cjczj3irqql5wpxs4fx9z77bb03lys5j1kg63ccq5msp";source="1rzicq0w7byrxqvv8pympxkwq575zqs01s02z205azaqdgrzdhss";};
-asymptote-66119={run="1gxd6wqcmxwwajc66ga0c4a50dc27q0g7239dxwii2d9acykw6g8";doc="0v3n76arlr6i3xqvgh27mmp6jj7nqpp149y5ivm1v12q0y444zky";};
+asymptote-67300={run="0x9zb9jgxc31xj5a5gb3s2ba7348zni3p1pwwd1lp7ldilq76lca";doc="0hcv17l67pv91fc3nrhx06s7z2g0imrljx0lxi4k6lgnj47dmnhg";};
 asymptote-by-example-zh-cn-15878={doc="0854pbh3rm21rzzbhai7xijzw26qawffj4wd3mrwbva1406106ff";};
 asymptote-faq-zh-cn-15878={doc="0z09f5as68dz66dlj370xfx593bv50ihxx10zxmm9lk27ymr52hb";};
 asymptote-manual-zh-cn-15878={doc="047l3bh8vvk185wkazyfw4dm6893xpa2ksn5vfc57r5rv4x16wmb";};
@@ -200,8 +206,8 @@ authorarchive-65777={run="0f9x0nx0n3k3hj33089np465jpikrxn689zgp0rdq54gh9cr5wvm";
 authordate-52564={run="0caz9s2ra7qqlzdnahhv50z050iyp62ypyrfpbj1p9ih7zmcdg23";doc="14wxjyrighkhg51m9jpdyjdwz2ipz4zr1rfgmdnxbpg31rbg2x7s";};
 authorindex-51757={run="0dhdd84hdf4iz67acyarzf0asb7c8dmp09s286rq0ylgn7lb9xx6";doc="0hhffkmldhhm46xi8d1bvjp5v15cg5kid383g7s1dbjxqyd9vbvd";};
 auto-pst-pdf-56596={run="0f212m856rdfzflq1bw3vfpy38d8qylaa3vqnfs595h3x5r0dsx3";doc="1f7kj4rga7x14w8v3cjn7lh95inliy2ms0q9vnfnv95jvp5a7kh8";source="10l3ld4jvpg1982f2a80ssl4hkdzi9szxv3y8l1i13pdfdhirv91";};
-auto-pst-pdf-lua-54779={run="1vh8q7spf251yfc0maaw9xcm1r7w8qyf3vw7nr6gafmv6si2i4fk";doc="0vmwaflyaj4crqb98gc9smngrpk1hlhpq3acfw6bnpdwsm5862mi";};
-autoaligne-56966={run="1y4xlxgcj82g3cvy23wyacm91kx1fnc8b9y0r8vhf6pwvj4fk6h1";doc="0srhzzycrh9awp39cgfqzc3z12vxj33qgbnpprx06y6bx94956wv";};
+auto-pst-pdf-lua-66637={run="0h17431shl7g0hza9vf20v86vfpy7w9wdyc09ir3s0mi5izhh4hq";doc="07bpl01v2f14csvqqvyvjja79z3x34q6mkb6qck44s66ii5dld0h";};
+autoaligne-66655={run="1y4xlxgcj82g3cvy23wyacm91kx1fnc8b9y0r8vhf6pwvj4fk6h1";doc="0srhzzycrh9awp39cgfqzc3z12vxj33qgbnpprx06y6bx94956wv";};
 autoarea-59552={run="07fi6gdnl9srrhmj5v28kfvjs3skf8g693hbdrfzjkyw76iji46x";doc="1nyrgpvkj2bplf0psd66mcrhz5j4bggvdmr93p77ix4vb2fgh239";};
 autobreak-43337={run="0dzr4wbwy018f97kzmfvza9i7m9mbpn97mjzi336sgq440v01hrd";doc="099vqvdh2djk7fm6y4x5m7cma71b2anpqkc3lfzjazpv15kpnlq6";source="03kqdrwznx3k65nf5z3p2z6d80rki7w4v5lhdfk8rin3112gn68r";};
 autofancyhdr-54049={run="091dwnql2fy1zfkr92ww01hjylx6in8ay56gq7ywjlwb84r6sbm2";doc="04fjrbsa9nqf5rj0gqgm96c8wg3dl8cpfzyilqrfqmim26rviskp";};
@@ -210,6 +216,7 @@ autonum-36084={run="0y1x4j7fyssmhlqf9974yprqxvplxihbs879qiwa13x0zmwhnp55";doc="1
 autopdf-32377={run="0fd1dw6h409ffn2prcsmq4rsgjshhs9if0igsz3ibxb6wkngbphv";doc="1rf0l15pp475f41si7qkx9rw7n6938jj2k1wybx4ck7pf6hs7i9l";source="1vw58d9g41ra5j2av1vdkzqhh7g5nrprr27qgdrn8nlirvwzbx9m";};
 autopuncitems-63045={run="0wqvm6yyja51j7yjyavjn0p9i8y2a8aqrywpvrlaybw2g5s2k3gc";doc="16hk972a108wh8qsk9lg3ai4cimwlfadmxy0xi2aa2wq8darhsqn";};
 autosp-58211={doc="16szmbffp9pwzv7zq3l4yvnsfk4m7w57wib7pqpgv1v5fzhlaahs";};
+autotype-69309={run="1mvy4szbj2bms7wsbxk5abaw41zi97lk21k8j59z1dkrrbzzq69z";doc="1s3c3zpl88rlcxrlmbmpgl4f6dyyryfs7gy9pkm3q2ayva3d4bwr";};
 auxhook-53173={run="0c92za082vzi47m5dlwq8bss4jjgfzmbbaaz5j1yb4ngli9qj08y";doc="0l6xga3hr1lvhgli259ma78rq394jplnkn5j8fgrfapvzrhsh2kp";source="18q0lawz00fbv9mgcbp21zk6fm1hsprmrkvhnl34ac1qj1rx6x3p";};
 avantgar-61983={run="1200x40k7wprm4n7srxvgrax2l52vn6d5ri2x0q7zbzzsfxfzkym";};
 avremu-35373={run="1j7mg5in2jhpb07jpky76qriyb4m0qq0rlkacs6amrhh57299prx";doc="1p7z2vj25fnx23rl6m76h82q8kli8nfl2vail4mpkx0brimn4j7l";source="1zz9b5d08i3sjj74q609k5kyi9nr7yyczk00i3dqfz5x3rlyljsm";};
@@ -217,7 +224,7 @@ awesomebox-57349={run="0bjnvgqj4g1i6djzzzdjdrnlvli3dm1v2w2mi59s5s8pyc5pag60";doc
 axessibility-57105={run="001z3ra1zgsrvhlnvg9lmvc56s72b3kip71c1cnpl6qzqcc2y6s1";doc="0s77mr42dli8vfc9h6gslq5g103rp5vk94hx9cw3w3shxazib73r";source="1bh92wig3grw2bkkdd3fxwlky7rrfabzis1rwwdzgk3bmmrl9554";};
 axodraw2-58155={run="0dcls4qqm7pl0iyg7mkflqa2rd86wsafshx41xlg62din6fmybwa";doc="1l1kwxd8zq5xxhw7zyig0b8nna4fwr6615h4jjwpywcaqsnms6if";source="00nq53ahf63lazavijry572yii3jix1df9c604xnqpga9z22bbq2";};
 b1encoding-21271={run="104n1g3qnx2dj91zylj5byz7yaai6dw6v0pl9240mgk1h8i0xr2p";doc="0sdr25vv9svm3r6yqyalqza4awr8k26g7fmh8078bbxkddycchkm";source="0mbzrasvppl17965dmkp2f9cbi03539p83989d40kl5p11ih6dgy";};
-babel-65823={run="1gcymznzmmv6xxafx2268113b67n1h23r6f52fgvkihkk7qvh6mn";doc="0b1wn28hmdp8h5aqx1pj4wlzvx4pwrfwl3z3b3h3b78b2jzcf572";source="1wyyn4a2s2ymdlfkjbclb2ff5d6rqzy8rbg6wzx32bflrwyywshx";};
+babel-69343={run="1hhidzf5gyjvrb0ws3rfs93gsqjpls9riq6ykxzx4ky984hvpg6f";doc="0wd1c774rirgcs9gn2qm7m2bg3xiiwf7wkvimwh7jlrg19xr5ir7";source="1wfz029f2rwv11rbgc9w64k36q2ifq5hzh9jhlpxz3nn884pvv47";};
 babel-albanian-57005={run="170mxpwnnsc1g9s7qnlhjcryw79cy72d8c4m8bhr36i5c78my0zg";doc="0x5z4gfi6m9h5gml6wxq3531i1k0sfqrd4hxrzbz68ijzyjnzk5j";source="1w8bassqn35bxyhpw6cg65ya64x1dn9h35p4fxclcjjhmv53xgg8";};
 babel-azerbaijani-44197={run="15siklcjg7wmpzgy059d8r6ivg6cib5by9a4l6n31c9pxncj7xka";doc="0dncpgvjqqa41rk80n6wif8nzdqw7vkxp2056l6sblzxgh87fvz0";source="176r483598gd2dfmfc2qhmknj913n3k6rk58mpfq69af72jq5rjw";};
 babel-basque-30256={run="11a26db60bwfhbx6zj42yrzzvf8nn8a96nq5mpw29xhxlpbhrcp0";doc="04jf1brw3ljipdyxv3d001slc0iggjmq6hkr4b5jsa3z8gcivzvw";source="17mz3bqi50ayia4nb2ikf60vgpnwl3i90gfbaq4692y354yvlnfy";};
@@ -234,24 +241,24 @@ babel-english-44495={run="1nb3c0yikcfhlpfsqgx2c6549ra7wcbcjs614d7gvk5fyh0cds8y";
 babel-esperanto-30265={run="0p11qa0d496xb6hpj6qc2lisr3xk3k1rbnj7b88wcivfjwf5ypmp";doc="0ra2iyai9vyjksfsdcv5b9ifvqmhlc4aikyzf3wq073sh9crhxh7";source="0i1hzj701rii0hbp05h25633vs2cbmqgyc113m3g78i24vh2rkbx";};
 babel-estonian-38064={run="0j7z04mcvjk72cad5l3np0x862nvgh7jxha8mll55cf18k9aj64j";doc="1nmjvvms0zijpc15rs0fkzli3pmidc4v4kzfp9sswvh43622p1b1";source="0x2a379m1b1ll16dr62dg5ai353p362dw9js4n0dn3x2wjbndmzg";};
 babel-finnish-57643={run="1z49ix8w96walkq5p915amii7n73ahzhy4ijxa1b2bb0wzz4b1l7";doc="00aij1bdybgcg69995mjrdddzlr3hqbhmg8q9nq86cd29y1gx029";source="1930zxk4l6k5q4wcbvpvijv4s0gxp2mkxvblczn4gcbar10vfd4x";};
-babel-french-66516={run="1ns39xxilb4xkjjdppm5whvhjkps8sr338wvmshjxkjgn8hk2zsa";doc="01fwil67jnjkbrga2xv45cpg28j2p9pxanbmyl048iyam813jaiw";source="1nxr7f6bwmsn4qs564l8clfqla3xqal337yhk418s789ihpzslhi";};
+babel-french-69205={run="17k1cnb37qxsmakb5lfr52arfrs9b4skjq2z3b0j4isvg0gag0pq";doc="1x77mw4wbb6s5y44s8lwmzv83ykjxvayz6gdwvhana6a9na4s4h0";source="0l8lx80qfbdn9q44j39ai0b0m0z4cq1r8npihz009rxvqg9c7xfg";};
 babel-friulan-39861={run="0gfq4gyi720kp45vcbial0yrn9i2jyx1lzh39lci0ga77y01j3mp";doc="0hnj5scfsvisf9k6iwh4awzqccm96apxrbwzlknpxn7x3zv93l0k";source="09bzwmc1jnal4ikxciwas8y342rix0xksd7qcp39nwajyg8njdmc";};
 babel-galician-30270={run="0mk67w9lhp4nfbhrzyb1ngm3rmdknvv8nlqb8601hrglj4hzmrda";doc="0pzpk8d8hhvgsjssy67hpgvjb6sh3lfbn6f5cbpqbhxrgllhpgva";source="1awy39dlr086hc807zc57l7xk6zqbkwrayvzfv8ch1mqnl0d3a6c";};
 babel-georgian-45864={run="1mdsi9mq6ka6ahrgnasik0sxkhq97qa223q5iy4fkfccan30kb07";doc="1iw1hbn5i0c7xhvcmap4hgiaar9rznr76h2mrgya8xj0czppxwv0";};
 babel-german-57978={run="120912c0nk3zdvnrxp7pv78vnywbw68d0xc9iv8x2cwdl2hfwzrj";doc="0nkblrxgckb1kxrxvj02v0mx18f3cmv905xpd56i3lsp7rhi2wjm";source="05nwdy9ly2cdl2aayf573hc8v380avxlw568np9kfvf7nag3p7al";};
-babel-greek-66347={run="1ing4c4s3pidhwrfr6hzvqh578yw7ya7iv5jj04hiksndiy6m1pj";doc="098nv2wv5gw2719q6p24chys1rx4awrzs3a36pdlw1hf3zgzfd9j";source="1fwg66nch2cbh877pdsavf6pc0npj3bdbinr1bln1hps4pfjjnga";};
-babel-hebrew-30273={run="1mzjkrjasm6i7qp8pvl9l0dwd4597hnhsnjljfqn2mf39836i6s6";doc="1w45vylwaiy2bn457fcc8c4fv33lnjbznsk69z3ky8r6sgxra63y";source="0cy281g25mn3pcm5m3d340rp9l82472zyqk09xdi05mxz2hwvnxh";};
+babel-greek-68532={run="1gii2nbgnixdysn2li0xw5acsvimq2r04rpkyhy16hnz50cm4shz";doc="07l23ycdm79ci76zkfijpdz5mlcgd8qcbq5s4rl041c8d4nnfi5n";source="17n58ldkgsqadbd1agsaf0bwv0pg73ybfql5bkw3ky9k9ck9z24c";};
+babel-hebrew-68016={run="112c7lk1xihspknd146hgp9nbc7wfxz36d3b887f6q0mq6hf03qq";doc="0w80r70w90szg4rlzzj2132yfx8wbhxranq8zk49far863sn658i";source="1srid6v4s1r5w02148wgfzhs9jmmwzj23fhx9zn606rxxkgakajf";};
 babel-hungarian-49701={run="18hc7z7gki6jyglywmljlf37aff3cndszywa32kmprbn2qlfc87k";doc="1imn8zlk18fcs2nsy4ml20xzkhpmv5lzzh28i2c2zv6klm1kmfba";};
 babel-icelandic-51551={run="12v78k2l9vmc07mx0wy8g0mjwryp1jf6ij06502h7jr55my6y5s5";doc="1mbgan8gv7hld0jym7qks13yph9lz0clkgpb199x3cdxmbvawpb7";source="09wz6pfk3vb4c0az1lgq35vmzf8v49iz9cd1ys7rhdssbcz6flv3";};
 babel-indonesian-43235={run="1nmz2vl80cs7d58hl22y9m2hlf4xzdw2brl2z9k56w2mk6rg510k";doc="1bd7v0wrp85bchni7sbn4b7manybq1by8sb4bhzcmbw4b9dnc3yz";source="0p89lrfyqfhmnvijf9mdhmjsr8wzb4hxr40rf33wn50ak3m8gm7l";};
 babel-interlingua-30276={run="0zbyfhfs222i1wdsfbik33m1asdaa71rg700s9vfbvfdvjcikciv";doc="1z7j47zmp5y3406da831kwxqq30mgxh2wwxsrkdjycnsswsywgv7";source="1y3xsscz9zxaih3752sk6jhh77ljnllmikiwgqb3xsvzj7b5fs8v";};
 babel-irish-30277={run="0ih96jfa66jn1s8c3dpr0631pa17r9sch1lv1qqwpmsridp8dl8q";doc="19k6gps25d8i28vcpbp59k47mxdzjn9d89amccr5si5hvg1c2qnp";source="043ias6pyv22g8ywv5krlzj5ma98wpi0r44lmi4gfpqllkay5g1a";};
-babel-italian-62890={run="0wjx2fv2a1l6lqd5pjq8bfd1fxjkqxgn94s1rba0md2qcmsyzfb0";doc="0gdm29cjwnbliqxqa2j9i9py9x6hp960rdmax59vlnh8qvzs11vw";source="1kn8wksykynys23clfq87ihw4gw0npcdwngj0lwdn55l7rcqqk12";};
+babel-italian-69298={run="1vwps1b50swsx1ww2znwzjizc6gn26j6mx470dws76w1njjfgp83";doc="0d21yk97jakmq0pan6q0cx53bl6945y5mxckzqch285fy8w3s0ba";source="0b15934yvmk7r94c9cqjhlsdpd8c9jp2gyc51cxksh26sw81w5xf";};
 babel-japanese-57733={run="079bhnmpcgaml555dgrmiigack6qfqx20fy85c75p4fsn2c93bmw";doc="0a479m8rq8l02q1w73d6lpfpi0gs5qdqfbl132483f2wwzznvnrl";source="0kjv78h69422dj1jh7s74pkdr3qrdxxbzk3czzfsc5rax71x9jhm";};
 babel-kurmanji-30279={run="0jp1aivn0pzn8yq1q79gvzwdlcz871apjg6yxx9x4wf8yqr8q1g8";doc="054b2pj4iv2mnaffw1a6zqihp18765rdx6d56k6vj9kxf2gqrz1n";source="0v6nh14816ai72rqc7nxd8k16bi75dvx2kbvnaavknxyr53pjwb3";};
 babel-latin-59800={run="0k092q6cdpd5qp7kl0qcaf4idbsfrbyb12flq61k4xk8yyp6ip1f";doc="1p0xrbmknfffm95zmnldcwrrpc3ngrlvlnfzppjql1va8vk04s3i";source="1sa59mvbjspmdc5sc3cdix59y575nx6pgc878lvlcrfl70a7hvw5";};
 babel-latvian-46681={run="127649mzw9jp35mq1yqpavlvkvcvxvp61sn0yl4nvhn30d0dws68";doc="1dvcwyqvx5xw4fl58accykkmd9ksbg5a3yqalb6x86hdv2fgsnq8";source="1w8w1ayk1ixwsixlsar5nmhv70fqahx06ydraiyz543gm3vrk6br";};
-babel-lithuanian-66516={run="1akp69n8i19kyx0x247i4nw66wmlj3d3lkm0pmqz6c4zv34r9fii";doc="1fr3m5b0dcrnrqdb0sm184czgkya8xbx0zbj9wlsnlh5y2pnvyds";source="1dchvyy3zwa18x2dsz4ww9hjnkhca0cg65q85jw09l5cz5v005jy";};
+babel-lithuanian-66513={run="1akp69n8i19kyx0x247i4nw66wmlj3d3lkm0pmqz6c4zv34r9fii";doc="1fr3m5b0dcrnrqdb0sm184czgkya8xbx0zbj9wlsnlh5y2pnvyds";source="1dchvyy3zwa18x2dsz4ww9hjnkhca0cg65q85jw09l5cz5v005jy";};
 babel-macedonian-39587={run="11wiv5aw0k77rvqwcgh4xdiwcr67q42rwq0mq5vcpfz2hb0v8i6n";doc="0nsvnmjx8397xb02h2l00nd7ynz11f9qiqrpim2f18r55qmr0hb3";source="08z4ca7kja5kb2azf3whgh0w7fabxs3jcijihm0vnzhb1809napi";};
 babel-malay-43234={run="1h4n9m38s560iw86cr88xzflizkd37nhgyl51xvniyvkz6nkhrxr";doc="0c0jriwwkrll6sknd1c90bhipcjr3inc7vdn6cd2szlbx72ir12a";source="0r1gzyi40yx8ikxkrdqa1hg33vciz1qbvibd8dv3qbia7mm11hqv";};
 babel-norsk-65093={run="0n173mskrn15pz6pnxyysavwc93w5cz57wywdnn2xvb574ka8jhf";doc="0a3ka4hfvjv7w2s90y7rk2vb4jsaqz85sfbnlmkfxlhamr937c0d";source="1d5h7zm7d3d58lmkn3qy8aazx4a93fxmziz68cckrxa7izni7s1f";};
@@ -294,7 +301,7 @@ bartel-chess-fonts-20619={run="0xd51ighrn01kwb4n20dsvrjhh7a0y31py2mfl1dq34v8l6yv
 bashful-25597={run="0cp0lvqb88myspsbp7s3xd0rrkr1jlqcqq846mk8p7r6r4apl1ca";doc="19dbyg9njh2lwckmqnmy52gllsdwv2nvcp20marsjv5hps80946r";};
 basicarith-35460={run="10cjfm3v6b7rkzc0wngg635xbyfmrnzs5y6f3sn0akdfxj0d3x28";doc="0qm4qnxp3n42zvkxyzanl4psiph9z9dxz5b2i32fpn7p3jhn2qh4";source="1my6sp0mvbmpn2bakr93qwasqh7rwmzy8lhl608lssnxk33h8x8j";};
 baskervald-19490={run="1wvdsq2qngbrm2nibvmssk62kqvjkk50cxi2d7lx3nb6jgmj33c0";doc="0zj9xj7y1srb58lr9brmi2m7nw63n798m7mmzibjvn50kfw3qc8i";source="185jgbk6rg6vkdwhwb8i0inb32qr3rgsdi3xhgj4vj0iah9mdkbn";};
-baskervaldx-57080={run="0nnqkki5ff5jn9bi8xddqpf5r1cj0r6rjgb83ab8x49di3y5qjsy";doc="1q8yv0725j3sfnqgznnjjbkm57hxq5n9xvga1f7kf5c0jkp52742";};
+baskervaldx-69273={run="1iwqw0d6wx9zl5p9f92gw6zqshflshw4isk35542wncwm1w8fbzx";doc="1xzprri9n8rmnyj5cxbhix05cs3bfgvia34h5qkql8ykfrfxpk1z";};
 baskervillef-55475={run="108yndp9v2awi5vw29zbin82bcvx2fzkkhypg7f4dcl9lziwdbg1";doc="0divl9d4bgpjvc6yy2yawcrigkvv7pwdnxy1gvf8mypwhkp17anc";};
 basque-book-32924={run="03jh24rrjczpgj9d4w5fy9fv8w29wbqylx5s9n14jwdsf6f588ip";doc="0sza7d2qx89saj6rx591ys15b8gvrnalrbrkk2wcjln1x2cb95jn";source="15lgh24zyqlmqkw7wdigwvvkv6qwlpv4zrm2zqwgxj93bffa4fs6";};
 basque-date-26477={run="1hikrfz1z6y294zg00arnnc6any1iyn0gkhmv9j9wsnlvylcbnxk";doc="0gifh2wlhxl5s2p816w06w5h51pg6gn2mdskhpgkq16shaj4xqcq";source="1vjq5pqkan433wisv0d437m6hbmfqyds27dzwkyd233zq73fpjxb";};
@@ -308,9 +315,9 @@ bbold-type1-33143={run="0zvkzp43awkf5vbnrvhibkw185zg7h1rcfqav38z720cls2vgd7w";do
 bboldx-65424={run="0r6ds8wkf1qrv4mank08pzkwz4qk2pfyb6pvqazbf4jn4a46bjcl";doc="1b79xnpss9s1c7lmqlpznk4vvxzgp7dd248ipkq6n4dlpv0s2y4n";};
 bchart-43928={run="0knv4byfxfalyhmsqiq4wjcin0q0hyj9gs7f167cddjyzcg4z23i";doc="0zyiw3f37i3shf8ihhzxagvzwnsdaymbkpcizdm2ryziglahh1jy";};
 bclogo-39364={run="1lnfpy6fvw51cfy7zc1bpqhgca8mcgnhyvh5l1s3712xl91hsvwq";doc="0vf9fvm607fzw3rvc93crxjg9ilm6d7x7q5n1qrfmkzmkm5mjj89";};
-beamer-65975={run="1j8vljwp8cg6w8ly07ql8q5pwklz1xrqw5n0wg405ijxa72zlwk2";doc="1x3y44dz2w2fmrbranjzhq419ahibz20vk3900rgjfs0wkl6xbg1";};
+beamer-69316={run="1igp0jcs2w20k94fr84s1af5q8mw0mrvraslaxsxcnxmh65dk9kz";doc="0y07zc3zvawaph7pwk8z9429463i99y9b6lzv9v8cacnhqk48426";};
 beamer-fuberlin-63161={run="0w4asfzmjrzqqc8dsan461fvmkjn21181lij46rhissz273d9vph";doc="0hw0cp32k2gqv9y1ai733sj8f08hdn3pj60qh2ykmcqg818q4clv";};
-beamer-rl-65725={run="0n3scafwgkwy30scgzkx2b0z11wkf3hwhga8fqinn7ls7igcjvax";doc="0lbgf6w6gq0vjh96a4rm9z9cc0kl1x1pm4pcb6pb4r7q7m8illxr";};
+beamer-rl-69254={run="0dq7p1zpgv3sdbncric180slinfxk1vdskzvfzsivxzhh2z1adkz";doc="0qq209gc6ssz3kz180dnd6kl2zv3qj9iwq5nzcbd50ypmm483dg9";};
 beamer-tut-pt-15878={doc="0ayh3kbh11l4nyyzp2kcwzn0phqhzawppy044iyl1wwwc2v3zx5b";};
 beamer-verona-39180={run="018ckad1q7ffkixvf6q9a5d4fzgpkpf9qv06cfv0rjwp80k7psyg";doc="11vv18n971pcmn8lf2cya7jf55x8zw1d9s4sg2l3q76rdj7l53ra";};
 beamer2thesis-27539={run="1rz02mxmvrq0x06xbrdqvfgs21nhkcislcnpdwx9gvrdmwpcyccq";doc="1ialsnm6qc9bwry5575b8l9ifgymidrsvy2dc786ixndc0fzn84h";};
@@ -322,7 +329,7 @@ beamerdarkthemes-55117={run="07zg346brdpckcfr1vnmvqcahjmp87cb2sizvyx4jvxv19qqwpk
 beamerposter-54512={run="19h0zh583chawpzm59xv7243vzkz597df68yy0zmn3r6ha8k0qz7";doc="0xspyywk813ndrd5xps7fxwggkmdl078fmn1cvxfx3cxpnmdf822";};
 beamersubframe-23510={run="06csqdbh272jbh3zpi0f8zblbmi0sp5iiz1r1qa9qc0lw81mdh7m";doc="1g29xay21yr8aap2fzklkg8q3ybz0xmz22xx5cd9md93c8k9kg7l";source="1zb42dsisab4234s79xvva74rlicd1gg4pbh867rxd15ajgy14k5";};
 beamerswitch-64182={run="0hl3c2ircmxp8bywx871w9b7rdblzn28f0mqfr0pdaz3gijbw7ms";doc="00gxw3mdrpdziixnjam8swq1gm01nw5hg6yzs4ijdpxh5d911c49";source="1pnr2hrvz58c5i0848hcdjw85jybz4q7lpb3xwfkmx84wjx99945";};
-beamertheme-arguelles-66373={run="18196yri83lc99519ygm30ls5174jgn8kw2i1jzyjc1rnimcgbsa";doc="09y9w7cj4lg45ykdg4rgaf1f9p0s9gpn93y1x39kmksxag1d26h2";};
+beamertheme-arguelles-68659={run="1rg7bp3kvghb8qhsqax73mbh6pahlf16dyiybqbn8jwwapgmy9kb";doc="18f5ww68w9hiq0pkpf0lgmksf5lc2hc2kh0067h9ls3zy91md3xz";};
 beamertheme-cuerna-42161={run="1r6c3ar29s06b0yfn85wssxccayxn2706y9jxdx2pxsr85ndc4js";doc="0a8mmg184chg2lljv1k7ffydg4sgcjpjbnfjzqcg43cqd01v5dmx";source="1avywir51zks1hygqypsfi6lkrba9ld6x5mkr8lln7b2s4ijnysw";};
 beamertheme-detlevcm-39048={run="149ya5raar4xfkb910lk85pqpm6mrc5n5ghh6350knbmaa6bdwg3";doc="1wfq3wc7b3516s81sbp6md6mx9szbzq5ycqvsr50y3s2wfvvj2lv";};
 beamertheme-epyt-41404={run="07pjgzgkjmr4hdf16m7kx2cf1448253jwgc522akfvvnmx9fi26p";doc="1a987h1cg48bw05zjh79ga23qb37s82dkqhhgvp7gsnwz10pax2j";};
@@ -332,11 +339,12 @@ beamertheme-metropolis-43031={run="1pmvcyjn04pgcmvanj369hxqjha0s7lh1z4b6fbhaj2aj
 beamertheme-npbt-54512={run="0m1mpavq8p4pswibgfhsbnvg59kn4sxz0m4p2w6zjkmy80s3naq2";doc="15kc24d21d1r34hd07zr65rp1k55fwrxr59h0ayiiwgc9fkjjsd9";};
 beamertheme-phnompenh-39100={run="1smqwy1f7jz012x5hmsknvarykalz58iysnwf3px7kwg83fr8mb3";doc="1pg8242n3z6x1n4kp8my2nfllriijxwmwfn7d9hccfnsvjj25gdl";};
 beamertheme-pure-minimalistic-56934={run="1z283v6ipp7c7h1qhm043g0sdfcq2dwzk9l0lyy5951y1kj965bc";doc="1chzf3lgd4sx26nbmacb7dadpk1m1rm913dj01648vbd2bz9y4zb";};
+beamertheme-rainbow-67542={run="1zv8vrifblbhw6zfbx9mrfk1vklr83rwd6gly42jyg7fh5awag73";doc="0wy5cc1ca6byjw39rhj3xhynifg06ijqab5l1pavpcahyq6abq7w";};
 beamertheme-saintpetersburg-45877={run="1d48158ladllzj6a1np20irl0r0syksb3wnisxbbwv3kwzr7fgj3";doc="1qkzpbc29587lmckjkl3lx08f2j0q3aaidqz22r6bg896j8q8pr4";source="1r4cw99zffqsvppc9l7z9k8l93sfk1nk8pzj50nm2bmkrdbfk32x";};
 beamertheme-simpledarkblue-60061={run="11m8p3n45qf697sjzszjpkdwqfgy92pzxh9k7dx72ikpdah7ba9h";doc="1ifbh5r0sxk8nsf8cd1g0d1w26ypb5hhsylc7pni6wn9n70799jy";};
 beamertheme-simpleplus-64770={run="0ip3imjc2gz4d04k8lx9vpd4an9sqmw3gbb25rmfpyy0qfxbj0ax";doc="00lj81r295zh9lrbffq0ja1skpg8l8l3waj3d34sq6i9sf8rbg40";};
-beamertheme-tcolorbox-64387={run="0xqqd7ak7r0zgy92k1sn32ahv48zjpggsjbnx761wxv563sm0ihy";doc="0nlaqvbmsbr4cqzws6c3bxwlmkwqv3bg6i6rwa5ll4sqgsk6symr";};
-beamertheme-trigon-65974={run="1fdray7kncwsb166awwr4jwnk27jxnp3824yf298pp4ikg7iw6b0";doc="1l8iqyq8ib1v0d4k7bd35hb9lpdmpzplnv0fqb1ngzdn0jfx6c6q";source="1s3da6z3sshhndpaxmi3rh7zphh7g1qn4b3cxbzkifx2xqmz8xvv";};
+beamertheme-tcolorbox-67000={run="06yri18aw8bb6l69njavl3mj38rmiy9aabjyfvy3nam2mc7ivhk0";doc="0v1h8smnlfic4r5j8dlixn03ihxy8ciwgc839zy739908g8wix58";};
+beamertheme-trigon-65985={run="1fdray7kncwsb166awwr4jwnk27jxnp3824yf298pp4ikg7iw6b0";doc="1l8iqyq8ib1v0d4k7bd35hb9lpdmpzplnv0fqb1ngzdn0jfx6c6q";source="1s3da6z3sshhndpaxmi3rh7zphh7g1qn4b3cxbzkifx2xqmz8xvv";};
 beamertheme-upenn-bc-29937={run="09a7da5ghgf5q4qp0djp3pya35zsm45wkiy5srz8p9q8pwg04bdx";doc="1m1bc9mxdwfdm0v2lb0i3pfxgf5as1lpm8a05icrm7bdvii0vsiv";};
 beamerthemeamurmaple-65698={run="1amknxp5vladf2slqjn9a6inkcgicha6fb3c6pc36f92q3n62csk";doc="08y0q7qq78fgghfnbxy2vsbqmqrqdnj5p8y682mc285qpqwncj6f";};
 beamerthemejltree-21977={run="02ccd8qqyjkvqqyxr94p1gc6qjryl83vpa72wcm5ywr8gmxci0pi";};
@@ -344,12 +352,13 @@ beamerthemelalic-58777={run="10wv3820avgviic0mcxn38yycyxqfvmf7qhb5ybz1x84jrw8k9h
 beamerthemenirma-20765={run="0ivhbhybc99hacnrfw1fb9412f6614an1955rglkcbwxwkji6nyn";doc="04155wbw6ix7an8sblw4a8q9hbn7vzwffady4vc23vzccc2i2f4a";};
 beamerthemenord-56180={run="1kb3485dv7kcj04bkgz8cv15kv7jmdjy0jcilvi5zc1vn690cyba";doc="0ls5ivdcgayz9pqm6j1wd5f45s063kfknzxf594rdipz1jnmvj4q";};
 bearwear-54826={run="1xaq0bmv8jv1zss6lwx2ccx8inrmyw1r9bjv3sbqfhp2x4d5xjrl";doc="0vm9lm6389jnmcgzx0ffmay2bw4d0h1wfmsfbj3x1s1vrfl62r8j";source="0dzmlcrc4izb63862dcafshzsaglq5m88z3cxmwivmwpikhh0gb5";};
-beaulivre-65475={run="1xkm64zf69achc31qvnzw3dyxsyjxpm5sbrxkpbq01rl7l0rmgbg";doc="123hijnaj7dxn6yi1csfk60xcwiicjv8l2b78314rvdklaqy69ly";};
-beebe-66287={run="060v67ma1r6n9fmg4v4zl2pgxz6gmd4qrazyss9hwq6z4206pqc0";};
+beaulivre-68376={run="1iph69jij9ryms2njy2mi0vd81cfb3rq3y78was44lbdw3fdxmhz";doc="0ksjl6rn4s6s301bfac22y91q60mljn96vh90bbgbbbjxs50060r";};
+beautybook-68438={run="1s0snxw87d8f1chj6ghbl2x8byq11piw5s95v5pla9k60559qnvh";doc="1ddqd3k2mdj0psqlbgkjpdy0ayjcxh54bqgih71lwsw73hc6gd6i";};
+beebe-69012={run="009g1m0f5d5vpajjvkhfcjqb98srz5jd5m47fa18y10nfbwrbwl5";};
 begingreek-63255={run="0dl4ap6r3xdwi0kypp6mq171jp4hl9hrjlhfrw9i6pd31qh2bp85";doc="1lmrl3iqgspi6hd86mwssr2bjqg59dykgwl4kzjfrbqa1637df9s";source="0nyd2kqsmkz6rvsfcymbbl2kvs220rk2fi2wajv46w0px81bxch7";};
 begriff-15878={run="1hl6jb8gg3acsj6rs1z0w5v0i6ivvas87hij4n64jdwgf1lf02ja";doc="0bd8gwf3ifqkjpr8wnrp0xx78169b8yc1ppdnyg9v6n4l1b0x0s9";};
 beilstein-56193={run="1xh2955zfnss2n9g8rsa0m1kad4b4xpsdrjj891kj97hhgd9hpdf";doc="0k78mwjqqib6hx7c6lcxkzrbg3gfw64a68fj32g0wpvdyj406ssf";source="120gcmpz53l2pzagh40nsji9g86fq4xvahzhwqqw7p01r03wc0cl";};
-belleek-66119={run="16vq207gnh24axsmh2nnh8lgy1lz2dn2kfn1sx51cbl28qv3wy2b";doc="064l5x679az55jb808yq36n28qhf0gv0xm21iz8rnz4qxymwsx0f";source="1w1jbq0l49qd2wwc0xmravrid4rfba52yw29z5ki7p46j51dw7i8";};
+belleek-66115={run="16vq207gnh24axsmh2nnh8lgy1lz2dn2kfn1sx51cbl28qv3wy2b";doc="064l5x679az55jb808yq36n28qhf0gv0xm21iz8rnz4qxymwsx0f";source="1w1jbq0l49qd2wwc0xmravrid4rfba52yw29z5ki7p46j51dw7i8";};
 bengali-55475={run="1rqwjn1vim77r30nmdmw5v50phpsfzdcx8nlxhxlvqsca3yqzsvz";doc="1zxczyil1izzj9pnz9c6my76mggg8maxdign07qn4kzf8c0fq8jp";source="0b4v7jrngga8znbfiafazxq6z333wa98prp7hwzzhpv3nxj6kbl8";};
 bera-20031={run="1i3mahkkb858i6a3wyrilcbswdp8mhclvixdxgc0wpkqvxa6qwya";doc="0llhr464l0akf2dx1avnm3d7adzcz7ml3x95glafpk0nfgb98qgd";};
 berenisadf-32215={run="05ibwmiklbdkffb1d85w9097sv215afgbr63fka2iqzcnm5lzbk4";doc="18awb9xgra9qmrsrm9l090c5lsx14xp7dh034k1fq1g1767w68ms";};
@@ -361,23 +370,23 @@ beuron-46374={run="0zfkx9iiiz7h501ls3z1fxk2ga8kjhi21vpmlng6vvw4v3dd1xhy";doc="0d
 bewerbung-61632={run="1grnipw9vjrqy657wkrg656wmh1553wzd1x84jc6zf9gp3v1440p";doc="0ny8ps46wxkbsd5g5yxyrh2jd74b204r35lggy9r7ckk4jab2wj9";source="0y79pmsbjzpykldic1a41l188wmkmn9izhvg5p77i7phx35s9qjz";};
 bez123-15878={run="13l8qvnhfq575pg1nvcpbrwyv5wvq3bhpkmh2306mds784hvcib2";doc="0qrskibmq7sv07g60gzd5cp34p21ragr6yn9g6384gib8vx60nqf";source="0ab153h8i8nmc6v5g9xwvpymjvpp605mbj9dmxdyl3ic49cpnl08";};
 bezierplot-51398={run="0iz8zsifxrwbv35jlgq3qb4hdf2sqgj7smcc3bfll655zq0hqmab";doc="070nxd9n0i9r7h195lkm45zfpdbaqz4lf0k69qg6qj5adwrdqbvr";};
-bfh-ci-66465={run="0r5sj2vhkpnz66xfxx72sam5y1a3y7vrvqbkh8slsypif5dx0yls";doc="0qvh8h22yx28rb5qs1mkj72qkp7lh04lai5xnl23ig1n5njvgbic";};
+bfh-ci-68828={run="0z8ymg5d5ifmhp28nm9cn9ascfl8m59bdhjgwq4wp3i4a05c8ais";doc="17pr0ydkh13h7wx15wi9xzmqpg3xdi2m34z6cb6ql1g5fi0dbgqs";};
 bgteubner-54080={run="0a8zhnl1nxzg5r525sn8sz44crjdm5fmy09glp8cjj7nic5xj32g";doc="04nh6c3q2w984x7kmgj023dbpjq9mqciyg4xrypgc4zv8wvcgv1w";source="11g65q55cv4s72cpraxw7yj4qskkhqhc0mz0sfy6c8jrq7255ils";};
 bguq-27401={run="1spl6qnixrb6vcdgaaxx0fk740kkxv7y73xamlkprdnrsmqrswwm";doc="10za9hbwigcbxyjwyy5cd760hqabyyj3g74w355akhfpyd20m55v";source="1vaw8sa12c94ia6fknnpbj7xxng3q3lj3h61akm590riffklw2kv";};
 bhcexam-64093={run="13r8z9wj4v07zjfv7fxy4kq26jflywbvj8p61g7r6rgj5v4pqay4";doc="0gvf2hr60iyymwq8alkyyya4vilsczqc5zhg3j7ydsz9hpvbkdp7";};
 bib-fr-15878={run="0csd9a4j3hvgyczgnfnhp8n49j4baym7nw8sck38m86r3kn8n7ar";doc="1inpqvmf6c5zb091q5fxg0r2w87kacvg1yy1lyai7wq3ll0axvp7";};
-bib2gls-65104={run="0rjl5zbp3ai7h0lv30q6qd8lxzzf9flnmbnwwiszixdjzqfjkbb3";doc="1jkii48m6ib9yr6v2hc7yi1czqr9n0i5n7rq4azyz5cbbagka8yy";source="0v22axg88scgk4ixr4falb6b0pq33ddb7l9fbzslrrhbr23kfl7k";};
-bibarts-64579={run="0z4l6nd3hnbgwda2w3si7bqrigp6vdx87v01z4hvf6jk2abykcgy";doc="1gpxi1w1jbzbnmj6rd9r0v3dcywr8b3fpq0haapjh231i3q4h6c7";source="0md7n6zgcqixq1g0csznjsiz60xp6qkk78rxw97dc673q6w1za4z";};
-bibcop-65816={run="06fibqxxaxxm4q0qqxyhci191b097d6aw4kh9s3scpd5gs3akgdb";doc="06zrdp2wwjgdn0mrp9mlpdlj7hisrzs1fzy14rfc7x1ygqcwg4mp";source="09aqfrvhk5fpa4xq39k2gg8s5jqzrmvmpxpqadv5s5mv75gcs9gv";};
-biber-66456={doc="1kwhxk6kzfjg62ygsyvxqj12pgw4bippxq7qdlgi2961n61jaj32";source="1sfi675h4gbk4gyx3gbby2z653vmy5z4wi6ghrhhnrqgivpqi3m6";};
-biber-ms-66479={doc="0h0hxs4a7r8sr5w573d6m002zdpzgs0gghwbasdi9j2hfb2wv6b4";source="1mw39ra48y7gqhh8860544wvzxpciaka5c38873vvnbdnng44mh7";};
+bib2gls-68534={run="0n0wdd4gihv6p004bb4knif4k5mg93hvg2kfhy6326ijdc61nnnh";doc="1abirvm0ifp4f8h28abidbr8wds3mjr8fbml97gaj2qv5qm87nby";source="09f2pfzirhjc5xf0waga3ga9l81cj0nzj45ghi5r68blb3r4d33i";};
+bibarts-67407={run="0yqpdj8fnh5lafc9amvmnam50sgxhwsaw6fr49k2bzxcz5bx1qv6";doc="0di7fqxkaddpq3iqxf9nplz0vy4qzspala5hyh6l8zc9wdcjr0db";source="07664c9cgf85k2c096r2aahkl1ddawhcdqgf7wfrr806qi67mbz1";};
+bibcop-69395={run="1nvmpqv6krjm2g5kfs7fyc7hqywkiwp4l18rw9llyic9kddpvn3y";doc="0hblnmbssn5lz1vsr0ncx6c5i75f7vlsi7wxn7gg7sxfcr0bqbrh";source="1s1zslgccaws2wqlxrr0yd9wijir4a40qx8469lq92349m3rwnzp";};
+biber-68188={doc="1kwhxk6kzfjg62ygsyvxqj12pgw4bippxq7qdlgi2961n61jaj32";source="12jl5fyb802yrfj0fdajksrli1yyi2apf5kckgh6k0cri265bmxa";};
+biber-ms-66478={doc="0h0hxs4a7r8sr5w573d6m002zdpzgs0gghwbasdi9j2hfb2wv6b4";source="1mw39ra48y7gqhh8860544wvzxpciaka5c38873vvnbdnng44mh7";};
 bibexport-50677={run="1zbsilzaz68zvmbf2xw7jqw4l66clcplz3l46ggxw95gns8mgqlg";doc="17a5w095vkpp7j54h8m7f74l7vycsqbv6zzschdb3dd34scq1s5w";source="1pqs7j4xdhx3pqsc8i0wqnz9jkyg891dzl7g3cv19a6wv82k0xjv";};
 bibhtml-31607={run="1sg9x0jrgh2jng9b1pd08i0f8kzhy94sq0mf33as91gr43dzws88";doc="0is3q2m1xg52h5s9n9403c85yfmpjaqqbh8lgyfqfwhl5qqmgrf9";};
-biblatex-66405={run="0zzyi1sclgnrfqvi6bbcymwg8g076br964f40x25l5bvn6r5hx1v";doc="130p4vbg7c86ac7kyb2briwy4v82qbfhpxhplzlxhd4xa2p3j72g";};
+biblatex-66403={run="0zzyi1sclgnrfqvi6bbcymwg8g076br964f40x25l5bvn6r5hx1v";doc="130p4vbg7c86ac7kyb2briwy4v82qbfhpxhplzlxhd4xa2p3j72g";};
 biblatex-abnt-49179={run="1dn2929wlyzwb96iq5lj8x9zr2fi1c4qk1rldc0vrr5s3cxfn3x7";doc="000akwyh992yxzn51jlvnc20g12ypq2zmffvnbwxjy3cyq0aggq8";};
 biblatex-ajc2020unofficial-54401={run="1csx7vad5svflb76ssdkvd8y3r2n9agqqynw88wvzhzj61fkd2cr";doc="03wzlpr5v6y67syy0bx87z123ark524fm6kqjw83v0sa4y4kwq7l";};
 biblatex-anonymous-48548={run="02fssl0l50s94y6x7rv2rm0227ivgr7kfnim435j4k1l0av4gb3n";doc="0dffdxp04shrh7fsl4dilqcsnnxbjpbayy9r87hxmq3yk605lvki";};
-biblatex-apa-63719={run="06dbypx6ggnlv8ck0y5h4b2cdp2k0kslpzmaksd0bybhwhbmw6l4";doc="1ada2q8ch4kkn7i23wggf7akq5nzqj0najdlcx54y6badm35d7al";};
+biblatex-apa-66605={run="1hlh14lg9cay5962z9pwzslqs3mbqfd70i055r3xbgd19a8hw5fb";doc="0mqg66qiiqnffiarwi6fs3cmyyssiifv5kbjg9579lsh3f4dag4m";};
 biblatex-apa6-56209={run="1a1kynyy1gdmsfnwlnxws74hwyqc6sq29wv6ybalpipdzn7dg73i";doc="1qvn9bnzvx88qbmbdgds53q08v7ml42mbqbcn7bzzq6mnz9ra2mx";};
 biblatex-archaeology-53281={run="1kf5aqc8mv28k0aiipwm6yc1vkgzyikp0bsmpmgdhy5acz3whfxc";doc="022l37hplzmvkcpnr06n4fz509w8wm24py0c05qljs6jz7smyhh6";source="0shn0bacflcaayajxpdiv9ik994aizpdmlc010shm3fzjdlay79c";};
 biblatex-arthistory-bonn-46637={run="1j0wy272dkzcb96i74qh54ap2hs5wdhmln8akh749fyydsazr43h";doc="094s5c55lfc7ssmz3mzj61zkxpnn1haj2vh582apzffppgd3fd0m";};
@@ -391,13 +400,13 @@ biblatex-chem-57904={run="0kv44yng5wff1xkgw8nya64jizfcf1ipxrgnf46pd1dak5vlsiq0";
 biblatex-chicago-65037={run="1ik86b38bc59qyj68fajcbskbmlz6vsg6nzwv6pm1fxnmhnnfd0l";doc="19sy3fi70kmvqknbfa0wxvn563l4s3m59f3jx75n29vxrdljscp4";};
 biblatex-claves-43723={run="0saj8s7q9lzjnydjh3x2hcnhj0wfm2p4rvxk5n6hi2ccfw78d3c1";doc="0g4x5jblj664ngppqpbks3d0ahn818ck871q2aqir6jgkrd13cpw";};
 biblatex-cv-59433={run="0k3bbbjvykc52y4557nm7kqna89mjq6g5j5hpblrcdlmvd5anq2l";doc="1xbd71vpm6vfyjaszn7jlxr084mqxw558rqyqr8x848hbyh6f888";};
-biblatex-dw-66534={run="0qxc6ggpvs4bs4k0l16393h573xh25dmwf5yar0hg0cqyr3xhp53";doc="06j4b6kgsngnj23h9njd027pdgynlnx26p3zb1knqgd5kjbmivmq";};
+biblatex-dw-66579={run="1kjvqx9yqqzhwin4zwkp9qcgh6nk7bad5nlhx63mkwp37izwlcrc";doc="0a91cra76s2134anv2jinwcpp0jkd0pn7vybbin3pgyamhr469lk";};
 biblatex-enc-44627={run="0kvya1xzxpcmvwgacb726jqzmgr944y9ljai45f0gdkw855ylmb8";doc="0mmc5sd1jjnj42aa2q1g1zaps1hla6yayl769i4bya6i1w9r99yf";};
-biblatex-ext-63638={run="0nggnk560rs9kn8ggd0na2dvsr5xxda6dd9bryhgvnf2n81zgpqw";doc="1qn7dq0mgckjzcrndfv93pnyx41637fm3lxw2qj5mpf7q2xmalhs";};
+biblatex-ext-66641={run="15fq6q1rxx8ca8p8g84m21v0l5pnibzsvlrw7abl8v3zs9bbncqv";doc="1pl04di1qmkf03i3l7ccszf1xab5bjpg6vjrfxj4n5gaw71k3jmz";};
 biblatex-fiwi-45876={run="16grb6hqmrhvzryijg6p4q4vf47a0lxa8bw59avlib5j7mqpg0wc";doc="10skq20bmpqymbgxs47z8ac0q5nckyph7s4xwqmpfd7pi2sksb4a";};
-biblatex-gb7714-2015-64967={run="1pzzkpyb9ayygvn8gzl6xrh25dk3aflv49gx611zkkbhw0cp9qnn";doc="1p8dlyd5b4ap80vpnp0nbl8pw8218d2hw8ifrcma0g18lyay79ic";};
-biblatex-german-legal-66465={run="05wf0z91b7yhw73xz70nfznic6x4iy0ir5savldd1ai67iv6h569";doc="04xrqwnsai24xh1apw4vl5gqhjd06vri33cxp0z96sp806s6hb4z";};
-biblatex-gost-59135={run="0ar1d77qzhqb2wvxa2rqgfdk006ph5p2h3a4i0ibjbnm61wx2afp";doc="1xqs7h95qc04lz3wiyfi546p6p4l9bzx4g13sbybsyv2b9yv9114";};
+biblatex-gb7714-2015-68240={run="17ri6cmqp478z15bsbnfmmshfbp25ng070irk7i1qwig4fgvmlnc";doc="0k5shfxnw0kdbplw5fsdf3bybd98dgsshmwqrnpllklhnc30zhbf";};
+biblatex-german-legal-66461={run="05wf0z91b7yhw73xz70nfznic6x4iy0ir5savldd1ai67iv6h569";doc="04xrqwnsai24xh1apw4vl5gqhjd06vri33cxp0z96sp806s6hb4z";};
+biblatex-gost-66935={run="0d7fcvjv4100ws9p14qvp4dvv5wzp6xc8qhaqrxnrzkrzd6w7x81";doc="1zzxb2hqi4gc42jcf21pw79h56yxwq0c0wv7z45lq0m6vc45lzic";};
 biblatex-historian-19787={run="14p27qb8rdx479pj7zdvl00ir1zg8f0bzp107zfwv61ypq8zrvbl";doc="0hcghqxbjah4lyjzlrkixs6iqbkjx4d8r3hv16lgnddkndbgq663";};
 biblatex-ieee-61243={run="0iwj8jp5q16g0waci3wqc7hb1qmn35b6gw0x0c2v7444rs2id242";doc="0mnpgdamgf0f3nr0lbzkhl0ncnf5qvd3g3q4qnw45h30y69cpmsq";};
 biblatex-ijsra-41634={run="0gnm3h0918lvbqwnzk9wkdcafpzz5q3cln2z1sjaylr3mgypykdw";doc="0jl8mr3ai1ybc3lmp7x477znv59az94hlbzaqmvix54rxf6k8f4k";};
@@ -405,23 +414,23 @@ biblatex-iso690-62866={run="1nkq6fa443dpxxm1w7fkj04169a50d61zwsvijg2z80ivlfqpn8m
 biblatex-jura2-64762={run="0lq0dllah3drjijlscwy3nvzmimh9zc0in10vld516lmd88i7vdq";doc="14l5sf5xmfi27izkds3cv933397s4fn1ah4k7jgkj7vw424bwh55";};
 biblatex-juradiss-56502={run="0zi9b67y0p9zdz2n4j1lr5qgd54p3l13c132wjz749mlrv6njfx3";doc="0a6d7awx49cy86ndwfkfq280dwh846ssjkkkrgbq4vxlbmbh2zpx";};
 biblatex-license-58437={run="1fg16xc32kbg493y91sjxjnxpi6jb7kki7yvy3d796w7vy86ljfn";doc="0iy8ad7k9j5x5wnnk196dwsyc5hhz8fl88wq56x80cgfdkg20jrh";};
-biblatex-lncs-65280={run="14m44xx5ywv9k3wchy8zh63wkkl4kwns3znj19iybw9jsdz95r9j";doc="1bdyaxj5a85b12jm11g64ic6mmjgxpvacxxg4g3xkslx7afm4cpz";};
-biblatex-lni-61719={run="1dg4xa0xkblf3iy9hipjp4wwk46zwq5yhwfsmiwxa63bkjavpzg6";doc="0d0cx0jvgy2shly976ypmr0k1rrpmiiqc01m2sb9scj558vrf3fn";};
+biblatex-lncs-67053={run="021b8002cdb3h8yvqdfvidmzbdjqpybbgq14vya746hnnnas501a";doc="0fvy4ailfz2pqg09j6cqydsl9s5x36y0cdhhpvvyjfbvzbz2cc19";};
+biblatex-lni-68755={run="1z6zpq15kx0dsq035yqwal9p3q6ph6fvrax9ckjz28c31x668agq";doc="1pkjza70w9lzcn7r3kn8l5pg89dasj66c8wm8ixvahzvwgjfx9ax";};
 biblatex-luh-ipw-32180={run="13hh4x8p8hxnyz6cr22lb3djl5advrl5c9dyx6f491d2mjz7vibs";doc="0xb2wmg5psd0wi21j1vmn1y8sy8gw78350fqbmpgd6l4xw7bb4gn";};
-biblatex-manuscripts-philology-53344={run="0wrhgwkbi468nzh41278mxh1ljsycz0vvch583jaksf26cxi6cpd";doc="1ybl7drbymw9sr019w8jyxir0827kbr8w9swvz64shjzhblkcdzg";};
+biblatex-manuscripts-philology-66977={run="1095qakmlkx81frnzanzdszk7isp92k4cgpqlgvwz9r5gk34mx2d";doc="06vg1il1cp3j525jxisdzbbd4v3504h4yyp733prh9s0q5s39yai";};
 biblatex-mla-62138={run="1fdznq1hvym9wgrxd2gsxdi534n5pbx95i8hzkz95zbxfvjpf4rk";doc="0i4716ascvd17l0nlf1wn4vddkjkzc85545wgb4cdzj847azm1yj";};
 biblatex-morenames-43049={run="1imryzaywyvdr67qcspys9r3mhl5k94vhqjsl16pmz86klq1bs1w";doc="03p7154s44ga7rlf8ya69qvbwkb6gsiwz8j2wycgzljj0z3plnjh";};
-biblatex-ms-66481={run="06adhhqd36ahjax1hn0ahpzmdnj5rxrs3yj6h7iyxc46s6d5cx49";doc="1slizjqc40mqai0686q8jghnsbvdy78kc5kpk5v71pc484dk5hg1";};
+biblatex-ms-66480={run="06adhhqd36ahjax1hn0ahpzmdnj5rxrs3yj6h7iyxc46s6d5cx49";doc="1slizjqc40mqai0686q8jghnsbvdy78kc5kpk5v71pc484dk5hg1";};
 biblatex-multiple-dm-37081={run="11rl82yv0bfy69cmij15np3wc15jss82ghf965r0b1py37vsj0s4";doc="1jypgpaid18g09xxryriaj4n1ql0759jfv4jshjbkbk5fgf4c2yi";};
 biblatex-musuos-24097={run="0zs2dwsid3xhcl01a2hqrr0mdfr1q9j0zga4rjlarfzkgznkqrwc";doc="172kvn0rpmk331yvpf3zbyisv1qlykz8icxgr1xkq5z9bxn9qmkc";};
 biblatex-nature-57262={run="0pfpm5am4dwj04fwdjrw30dx8qrmfx56s7gkl9h9qyj2qadsx533";doc="1mga7yx3radxwqhfmxzh2hmsyvx9qmal394cv31mlb3yd5ww1sv4";};
 biblatex-nejm-49839={run="02v8bfdxslcgilfsnw0g516zl2rfqx0d87hjb0dbm4md5qbry0km";doc="1znfnxizc22dgpp3bkl1iim2ksi3w9klw4jam84103bpbl3vwxgr";source="02q97wss9bm6xj9lvr8vx8jvp8bszkxgk4ayxk5zc4lrnjzw2i51";};
 biblatex-nottsclassic-41596={run="00valazq56srfggfw1mq8h7285lrx8iyk44kb8bhqr1q7nhl6pzi";doc="1c5634p7knwv8zrpqh39zlpglbdbx9a5y5gw54gj37x3r1ij769x";};
 biblatex-opcit-booktitle-48983={run="1xciw0zxkp2034lccvhr6irkr333s0qqqacxqx20v51vjjg8ywkg";doc="1rbswdipirzv68ckh69cc29k908ifpkzp3vxgd2j0bjl3qvbwcyq";};
-biblatex-oxref-65707={run="1dh948jqy360dvinvql8rd40gzcpcpw223lpnfsrk6klmsx0rm92";doc="0v3car4vywy9i717ffh94x49hgfqyrryy7h8w63cc8pa53kwz2gp";source="1vp027l005lzw2nf6k16ysa97cxvkria59wa29hrivb26v5d6wkl";};
+biblatex-oxref-68950={run="0c5ijpv8r0wwk8pnd8q0zg3xmkfdn1dkqncdzqjzqql8vm0hh8x7";doc="054anh0z6z0yvxxqd4gsy2sk8yqwvsxgclazgpmqvfhr7xvjjl1r";source="083wrmqr3j28756z4f235kjyq739hnkg0qnjnxs9vdw3hzwijry1";};
 biblatex-philosophy-64414={run="1fdqbfia3k8zldsyy7bf6rhkscf97v84m5c0xjnk0s0xb134d7hc";doc="11pxds41wzdsfgikcyx84d98pp3sz5625kzim7bxp58vn5rkrd95";source="0fhp5lh4g7m07cfpr03ca0vrn12lks8lsq3w4vbvkhh2in5w7z43";};
 biblatex-phys-55643={run="1vj1rrhzh7ncvi2dap2cjk88vdj0dmlpakjiz953rvb7szx0h40r";doc="0z3y7gmcmp2p5g25jha6kwkd7ma4pzgqybxra4402p6aid823fws";};
-biblatex-publist-66284={run="0r2k8kiqw574gcdh76andr6prhd8z3fnspap8hhqlfn9lw9ly0pi";doc="0mvq00rpihk5mzdg9ivly3wbmpbrsdm1phkrfssnjwm5icbaszw6";};
+biblatex-publist-68476={run="15fwzc0splkfpvhrnpwh2yvfb9yy1zrmf5wvzg7knafqjpw8i05p";doc="0rv17kq27n9npagpv2x2fdww1rzvqvcvxq22yv2yqwcy3np1gmfk";};
 biblatex-readbbl-61549={run="0byz95nahaassfx1gpl80p4vgc2bhs9wfw9w7xxwan6b1kkkz9p2";doc="1cp3r5j8b7zrl0k7zzhyjcrw9nypmr6gd7mn1q5whn7n1dn5js5c";};
 biblatex-realauthor-45865={run="1xv65ic8ywf18fdb246sr8pvq60hv4wmg7ris1glr5104g5yhg7p";doc="06nvybm142cd1shgpcabddbrfyvzcc3yxk9zyq9hr3rfhzcqf05q";};
 biblatex-sbl-63639={run="0947b4lszjbhs0k2p6a31mzc4bci9pvh4awq6k6d4qzvpr51yz9g";doc="06rqhkxpmlql5hvw31yx0mwkdjwnrh9jk4xazqq9bxilgx4y7q85";};
@@ -437,7 +446,7 @@ biblatex-trad-58169={run="1000rdnm9jqk89snffsf4ldl47wry8k5akm75aqhd9r7qbn73car";
 biblatex-true-citepages-omit-44653={run="1lqs1swmdmnhard0589k0r8gz3hp9bd88dz5z0kd0586vl7z2l82";doc="0madnjxwjlz9hs6jzgaady4sv0878v7fyjs3sn1bcnzyw4krfxgx";};
 biblatex-unified-64975={run="06pq753prhncs0sk87dqlapm455jlyfvnx16q2c850cdipi33rdb";doc="1rshsmqfjl3ajaxvcdiqr01hbm4dh5qxpbyp5k0a233s254j4ypa";};
 biblatex-vancouver-55339={run="19ymkk94c4l5sav1lb66f2lxjyfzzi1s78qd2a8drjp9q1c6i0j8";doc="0wn26kl4nli220lfs663rdqmv49xgi76kjgnlwh99yljx7v47n09";};
-biblatex2bibitem-61648={run="1l3j9v225f9g2zmishkfvimd08di89p39g0sqffdwx0psj99dw5k";doc="0bpbsaasi6kq5ggs3cpkmwlakdlymd99rfr028q5xj42ir8cba3h";};
+biblatex2bibitem-67201={run="1l3j9v225f9g2zmishkfvimd08di89p39g0sqffdwx0psj99dw5k";doc="0bpbsaasi6kq5ggs3cpkmwlakdlymd99rfr028q5xj42ir8cba3h";};
 bibleref-55626={run="0ds1a91dm11y93dy46gflzgdx5rgzzm8j50q2aghbhfiqmb4vx83";doc="18zif1ciynp47z8hbhc2p6r8jiqisj46as052scb5q6p49fc1ibb";source="11brqv3pgzzk3j09z6ps6ggwsqm89y82s3cl6xldnyvx2ngc5ym8";};
 bibleref-french-53138={run="1r12767ayfh073559p6pdrfs9fs9g2dxcliyx06j7r8lyfab8d83";doc="0kiijl5jhd024znr80g3xqdhz3jyg4vm4kyf1rcpa7dis4ffazpn";source="17xih976gi8my8mdr8n1nfvq6hacicdk8a01s23a0sarj4qwxz0q";};
 bibleref-german-21923={run="1vki9hg39xhn8xzbd4wq6vn6zk3x9gl9bm9n3wr214c5n5mpxkq2";doc="0q69vfak1yrv564qcw3nrklhq4sf62hi6l7z8w2hcj3c325kii56";};
@@ -446,14 +455,15 @@ bibleref-mouth-25527={run="11x3ldyg77xzpx8yl27sxn6x5gb3jdngd5hgm42p8ac0x57x7ymz"
 bibleref-parse-22054={run="0xa6nkbydiczmhphdi3rpipiva94x2pwmqgqcwmr6a66y1gk0d1x";doc="1mn4hyfyialzmzm0syizq1vps07z4zxd853v3aljn6zwqcwfpkxs";};
 bibletext-45196={run="1p2cz95815vkvvc9fsa1qm3sc5grkxzdsyw30qkilff1nivb3cd9";doc="0czz3l0m314a25i242kixy9f9spcj72h3bibfdib55gg05iw102c";};
 biblist-17116={run="0z69a5x3czy0hb59c93jrkmmg6i66vc7rw6szvchsbsj1c6gwjfb";doc="0wp7x8qj7bh1pgcy01jmq35r2i1f8yvrv6bcr8p68d70sr1jqspn";};
-bibtex-64491={run="1w7vpf0kw6vi3hgmlmk0dpzk82kns7a77appx8yg76xcip2xid51";doc="1w5pmarqzrbvyszsjva3hkiagcwmd7r1xcshdfsncfg0hzxpzc0z";};
-bibtex8-64491={run="1hi24b8mmpnz17cfj0p40ipyvzqhgkkhhgh7qkcgr1bz9k82q7sk";doc="1acay8y0l6gnczznxprl4h3bx7jaxdqrczyvdgin5z8yqhx0q13q";};
-bibtexperllibs-57137={run="0c083hg8hczwc28q0c9gw4z1bwj5w3krhrs5zg15h0s808ji32xq";source="1pb46v09ik8cd5kbhl79qfnj9p2wl19g9vpjkdxqvzsb04i7lf0f";};
-bibtexu-64491={doc="13nj4xwza8a8pymdv7iss5ny7yj51bz71b0g4dy3k2lwzml2ch2p";};
+bibtex-66186={run="1w7vpf0kw6vi3hgmlmk0dpzk82kns7a77appx8yg76xcip2xid51";doc="1zsqknlbs7d1zzp1gld8wd2sh0iccwq9vqb15xka9gs9wh30gc6d";};
+bibtex8-66186={run="1hi24b8mmpnz17cfj0p40ipyvzqhgkkhhgh7qkcgr1bz9k82q7sk";doc="0l50jqs0dljlaspb5q6arvimvraf9iv6sch1hr5w5yw1m22qdqs2";};
+bibtexperllibs-68910={run="0wm7lrg1rdhl0b6i8blfs1vkslvsdjksjdhc9bafqrrz3wx9yx27";doc="1r4bwlsggd4wyadclw06sj2akd04cy1v8j41g8wqp2j0x8j1jq7q";source="1i1cavfmgd8kiz0mr1sh75p7rhnrma0gg0b6xypzkxzkgwp1kb8c";};
+bibtexu-66186={doc="19bp8wn0ssz7gczxp0imbpgi1zwz9x3ya67f072rjzg2zmfpphqg";};
+bibtools-67386={run="0s0mz84w97854gwsz843gvlqlgk4bs5bpd195m8xv8g9qljpwfvc";source="0s69lggqnppqlyfc5r2k9jix7zpjy0nvljjimqhks250rjbgg0hi";};
 bibtopic-15878={run="0rzz1c1c6vgjm2r0gv65rwvbcv0asc5049agv75yyvqihvn51018";doc="0hzy6353n1rzirfdjd8dgjhnp496i14b0z0n2x7gnisf3qksr0wx";source="0abpdz3ir7l9dvc6vy5zi9ay103ga7i92vg3z69agd758xnz0v3y";};
 bibtopicprefix-15878={run="0vy9cah5mmr1vf4sm16212h36wz4623s07cagjqnmyprgm44sz66";doc="070shh1cg3hdk097v9jr37f06q0qaaxji3vjdv8v24a1rg3rrpdr";source="1v35hawmsgm12sv80wq2ld0rzz5l4shvky44l8wkxxh7i7vy43sx";};
 bibunits-15878={run="0znv09kqrwvmsjsw3lx9d3mp6fm8444zbn317q5yn5hzg2dyj61f";doc="1zgj4jpl0fpmsrcp3h4qlkilflmy8zqhjamghidwzkkg1i9jsfz1";source="04lswyalfivh01hp1wj3fq1q8960dmsvnbi8k856v3dhz0pv0whz";};
-bidi-65572={run="1gn7azhapkljkl1dfrb4rdb6r4fc6257gzzzmp6cn6j3h6qgzag4";doc="08lcqksfjy5kc4g7g2a0nj64iw1zh83ng506zdd723szs4nhfy49";source="01c48nhbhn455a50xgb7ccdfwpismlijsnw3qk079f9wcyyhsrd6";};
+bidi-67798={run="0iisr0ac3l2hrfja1vmihrf08fnly01dcfg0665x7yfck54qyjxq";doc="11x4y6rkk5g9ah7gmbwhppwk7i6q3j7wydjvbhfdz27wz4azcv1z";source="0nhkwk2r4fj5x94w9fq5db9nh051hxzb1j88q2bfhlf9zfwgiirj";};
 bidi-atbegshi-62009={run="0wpwp2fr233f0pac6llb5gmhz2ca41yjcmkqdil6qhpxscfpqizg";doc="1nzg4cgdhjjsalwml50xl7ac25w0qfd5q18cs8viicj7bbjp13wr";};
 bidicontour-34631={run="1yj7vl5z4xh8i420y1ycz21rw0yy83z0v9nlvi8k3ph2qis7lp8m";doc="085xfi5w350vbp4vnq8kgbilnz3jxwf4g0incvziy5hxh4isqirz";};
 bidihl-37795={run="09wrzqlldxy3lcxp21rdqi9bnjzza9wvdgssqynynjdmfggahd34";doc="1k67d2zd16ash4krnkwvmwx4wl668r0pdg720vr9xq6q3b139y9d";};
@@ -468,12 +478,12 @@ binarytree-41777={run="04q8h54dl0fmczrv6fqvvisim1mz9lnvkdmij6b3jcn60z722k84";doc
 binomexp-15878={run="1mx2g0s4y5y9abmj2b7smz0xc2nzyvnx4x3f4h5v3w1x1kp5y0hz";doc="1yi68q48p39v20rzny1603j20n8k6ddpjqi773955wmh1p4mqsb7";source="00rmdk466a4kc1492b947q1f97d7cwd2svvc9wr6w1agzz8w890r";};
 biochemistry-colors-54512={run="0d4bbm1p3j6q28ckkl7ilkywrjx6iqvmx0qb27rpldw3jabf1lp4";doc="10pa8jwpxr37hs0wcywzsq14x1jgjx1cqg94lpghi505mlrikcg1";};
 biocon-15878={run="0g6r8rh12pbnbhddcv6sz9h8wnv31q6jqs2xbj5fjj7vcb46z694";doc="15wd9arkdxsh8aral3zgl83627yl4f0wdx2r8b6xb5ivvrbwaslj";};
-biolett-bst-66119={run="1ap5arz0s65bqqfllzwxisp3wa327kgivw1jh1gkc4wljq7v4jq1";doc="03hj647j6b7y43djqvb28rkjixpr0y7i02420piskp3cg90hn5dj";};
+biolett-bst-66115={run="1ap5arz0s65bqqfllzwxisp3wa327kgivw1jh1gkc4wljq7v4jq1";doc="03hj647j6b7y43djqvb28rkjixpr0y7i02420piskp3cg90hn5dj";};
 bitelist-25779={run="1vbz2c27jjc94i23s1dzl9j0zf0n2935sgxgc5hq3bpaz1qxvm7h";doc="19p9f9bzn60nf5163rdlw166zpk7qlfwhnc51bpkppb0w4rni2ai";source="0r3lccpampra8dardrr7sb0swbx72aasaras43q4nx4jv6z2561k";};
-bithesis-66369={run="1q5dp90ggc54m834snv1yq9l2b6zl68yzfflgy2c626nc98n551c";doc="1kgfzpmabri0i0dahgccjxqvwpalhx50s97fz3bbymp07za6xhnq";source="100ms26z98rr5mqcs4n660nl8mw42cfv3avzy9lyyp3jb06b8n36";};
+bithesis-68634={run="1s0hd2af4ab6y8bvkxjhiagj8d52z9knamrj71smfw8b2x3419rb";doc="19zjrhqa8wn6vicaa8yrr4pf4fblacjn69rw4r9ia9r7v7fbvxp3";source="0w74w2g8ccvbsj1apv86aa3fr7ald4vkj9k8gvqdc76yzdfj1vvv";};
 bitpattern-39073={run="1j01vh1jy41714k3hms4nkk8j5c5d4nizgrm5syi20n8pcn3l9pi";doc="0a9120z9rsq8pqi33iv7f4j79gimjgxfqf5jhnrnmz0hgqdpl2mi";source="16bjmxm11kh0ww6ymk82qs947zgavm100nsfnjl60hxwjl3yknzn";};
 bitset-53837={run="0ynyw8fyb5cidlz00f42cf21gakm2ir9ilddaaz12s7qq99lhj65";doc="135dcx0b51br6lf9dxd66jq2xa21bpb1mi4y4kk5z6ngsd1imdag";source="0yds3rhgq52sxvwn5kc32iizapbs5g21cw6avbppiip0s5x0b538";};
-bitter-64541={run="0x3xnz8fvhwhixabr05rmxw8j0l03v2j5ylj7jq4gni519n3g60q";doc="00wakrad6b1r63m7z7css70fnxdz3wbzmi5bkpx59jgs3zk7zq31";};
+bitter-67598={run="0x3xnz8fvhwhixabr05rmxw8j0l03v2j5ylj7jq4gni519n3g60q";doc="1x8zzl2890c44jqk69ncsgj7xhchysbwkf66nnw0dsk2qfahc6xx";};
 bizcard-15878={run="0s6c3s99hid9pkilskd8ssc4hv5d5yg5lvw6kqz9szyii4rb6a18";doc="0ic6c43nng4lxsznkpj7w86ampdzjrqqcsdsm1f758rfds7wbnf3";source="0ywip83r43a721yfzrfnkfms0saly4p2ihagyp6259h2kji3vdjs";};
 bjfuthesis-59809={run="1gmd1fjwl49h98mh1bqhlxw63bcpy3p6ri33642p49aypj9iyk80";doc="056iczn516aqi3n04qn4q86w06q5xb3cz07sdb9lr4yp35gxmfzh";};
 blacklettert1-15878={run="1gvdw5gwjzgxa332ih2rp4whdcx1rdn5mig5q9cyiy28zvm1zrp2";doc="1m6qp3bkwl77khvanw498bfrydmyvf1qx5a9sp66x7l7xgjnndlc";source="1c38hmva1ffzani4mjg7zad0mr6lphncspn57m55n28hwfq7x8i5";};
@@ -482,15 +492,15 @@ blkarray-36406={run="096mlldfyi6hxsnp3flkr1gfqhvhxm2vzk81zw6dl64xihkvl6aa";doc="
 blochsphere-38388={run="0lifkhwl8rigg1w2k915yv1r9xylsj0qnj48cx58likwanvl8s2k";doc="0dbh11c3fjrdypam15gjlqwf3n9wxwhjqdd1h01f2f8yams42xfl";source="17bkqf64qvjhbids04bm3qhghqrrwf4m2bsl3gjxxc4h6sfih259";};
 block-17209={run="146ava8k2z6mlr2aq5vydax1i2sy6spn4avshcblgr5ph49iirp4";doc="1nwb1z6df3y0anzrl6b45fs2k069i42bcmx0i4p9z9fsbgqqfw1j";};
 blockdraw_mp-15878={run="11977c2f4100xfbrs5vcwz3vbijdvybq80zmfansdmxc0w3w6sq6";doc="1qb23f08wxmw3miys4sn89h48imzcqz720xfs3ihnbk2v75q3rd0";};
-blopentype-65441={run="119n3y7zq8fhyxjkigm84h0p4v5b3iy0bifls3vxac2cs8qh9syz";doc="09r91y7pqn1lvhfa7kjh7pgvdk7nv8zz2r53c0imhxffj1jgc7v5";};
+blopentype-69080={run="1c87lxkmscs3v89s2pfy4r0cymgcbrdjg0vyhhcjh2ip29dv4kj3";doc="0v0yijfjyf1l2lxpmkg4w1ij7gj0mdmxd51y33qnwgh02g18yrjm";};
 bloques-22490={run="1gr3521mxmabcwvkqxn7f0wcpcmzy5jdpypyafyklmnhc2ij6zqj";doc="1jmvan6ja2zf01lm0dmh3dg4rf1cagfniqjfrmzpxc062khf97w3";};
-blowup-64466={run="13j0ry1988igkxkzyvqg8cwskqzh7mjw5a4vgfqib2mczs334k5s";doc="0wcv1zlmyzh5yj8gsdm5mi6j5dv1zl0zk0v0v6cvwy3kzi32ki10";source="118i136lm79ivizwyjqikjf5053lic3cpqqpyjsmflyz6bph40aw";};
+blowup-67640={run="0ijgwims5gklp37j8zlc0vdr6y2l0gf3nv2jnjhbbc49yv4n8gim";doc="01an3fbg94bg3wspadjil9npbx108g5x7kg8ga7c1nza0wygsdd9";source="1b53khyhzjy9mww925crpjmfgk9cjsmcz5hxjpl8wghrc4qqahjl";};
 blox-57949={run="0p3ci3xf1vndbdf147r9l1s68x72g7r2np6znizj3qqxd22h3wxx";doc="0hskpi2wnlrrqmv0s8i4g4bh03ka18w3czvnjjvhvmf7im9wq2ha";source="06zimj2liix2y0f6a35kb8q9d9asp48c58mhc3pssa185bcc7bv4";};
-bmstu-65896={run="1x89sc4grkk3b9mhi4y1gkxm9pcbhg54j8v11mq2bx4nyl0bgrll";doc="00950rlqysn7faapvg9z3knb61f8l5hyy9kjxisbs80z99mxh5rn";};
+bmstu-65897={run="1x89sc4grkk3b9mhi4y1gkxm9pcbhg54j8v11mq2bx4nyl0bgrll";doc="00950rlqysn7faapvg9z3knb61f8l5hyy9kjxisbs80z99mxh5rn";};
 bmstu-iu8-61937={run="0xvxli6na2nc03qwn4x68sq4jdr2x830yvfb507j1990pni1y01v";doc="0kimc29vl79ib5xmrlb1ipfslq2y4i3hnabxcaisrb54z0y3rp1p";};
 bnumexpr-59244={run="06achk9z1waxr6ndcfplnvhvd7k4z1l9mw9plh92qpj1dn48ncbj";doc="1abhn0hyps7azg4fipnyxihhzmk5fdnklb4gxxsjvnnr1grka38y";source="0arhv81y8993498qkrnlnsa8fiw88s389q6ybvndrmf85js5nwlb";};
-bodegraph-61719={run="022m4w5rpn7n9fndddjjlyfxrwgirw5x6k7vl40nnyc8swkjwb62";doc="0v79v2ijgx7qs3xbsp6h1nw3rn9rry5j0qkk07bvyz5aqnzx290q";};
-bodeplot-65074={run="0yhhxb044pykrpfni8zabgb78zqcswfv48x781ywg2qryi7m6x71";doc="1xsfv7jm1v5sr9ajy3lkx0ijyf4swm2975srhyn6g6z2961a51zj";source="04p9scxrlk15rfrv0l7v766pzrzm83arsymnpvyj417bn1fm4k2m";};
+bodegraph-68785={run="11y62cwwjkxpr7xnpc20aw37lwcs83177w2gnxz7f3lr8192b28z";doc="1k428jlknm973v64wj1ljw470q3939kxns7xkxcfn5r3hjnqhmry";};
+bodeplot-69397={run="1s7jccfsd86db9zfrbqi7890jfsznsa0fyj2ks0s99d8hbbzp2pz";doc="193cah3bgy8blxgjaa6gvg62yyv4ccf0zwbiway96xk617c4r9cf";source="1bg8svs2ylxxdd4if9z09lvpwypvp3s8mr8568spdq8k2vcg6lag";};
 bohr-62977={run="1fbrgfp1xnxa5cf5yqk9735wp0qwkjkpf8sv8gdjg6a06mpixn6m";doc="1jbmck8ld3rg0nw5rs9lbnr0i34gi2sxncri2fmcdpl8pp3xnw55";};
 boisik-15878={run="0xqr3sgmzklqsvd26f2800ifs674lf0a4kgr44na2l0lf5msww2c";doc="0l0hi4n5cfm1zdkr68c6ks3gxkda5bgwlnf62y7x96q5jkscdyxg";};
 boites-32235={run="1176j9ikh36s0cgvsflayik1xp0zycbp8m9hg0c7jmzkm5haqw41";doc="0visqy0qg18sa4mxszdl601yy0ilfgglv872dhzy8bnqqs8x7zzp";source="1zirqghkw8kk8fa3xahd27dh60phxg3blp98iavh6bdhj0rm7iar";};
@@ -505,7 +515,7 @@ bookest-15878={run="1n6n322vb157fz11djcnfz07ykarin7n8mdr7v04wlsj2gfvv5hi";doc="1
 bookhands-46480={run="08nsfgwhlyv9whaipx74hr4w6dhpdlvwcd6kxzcznxc66mlrnpk5";doc="1z0rir98r4fm8vhx26hw7l22p2z7swj5b2i3jdfy3c6cj0pi4g0g";source="17clfn8g2f48v944jlvwl3jsz9ixkw7x1xjxqkpaqnng0wsm6fyj";};
 booklet-15878={run="093kp4ryfp8q1hg8ddmvaxxsw75wplgz4rrmmwmzcj3hcgyynr1f";doc="0cd1mvkv29r2aqdy4bs02m3ck90rdv0nz01cq2x5xvqk0i8j5dhx";source="1c67lj35yh0w9bfgiba9ank6wk9zqq3l3vvgwn8f3v6kygyqha63";};
 bookman-61719={run="12wkjwpzxn1a1k3bb41gpnky1jjsh7gzj4xahsjd087fpmrsj9p9";};
-bookmark-56885={run="1vari4mh0ijss50sa103ppz9a7mhbn72gl7sfgs6y9fm0rw2b457";doc="1habxdliv4vw5xsm3ki8m43fbqxkvpj4wfm2j7nkg01nsl8q2zm4";source="0ygfyjpz90vpavg4ifalbnw2fl06j6v93906ragk48g711dzhyvp";};
+bookmark-69084={run="0wax84d0wyy1z4a78j62nnmkgn7f9ww6703qmnhyj9x9206dlh31";doc="0adm4hcf92xqxsb4cl01mnf5f6mvpblr3b8phxaz02xwxx3203vk";source="1w48rx66n77l7fpqpqcn8337qylp09v2pnxphhnl36sws5yw6nqq";};
 bookshelf-55475={run="10sjmi94cc4ix3a2c0qpavs1sc0mqfqfbbw4qygf9w1wdivrijfz";doc="0j0lqi7bjlivivvrvswlw89vav6fx8wg95bn18amlwy5l8d7kyiw";source="0jx8dfl4j4k2av1syngad6narkdjksqcr71q92h3090rf58njgj3";};
 booktabs-53402={run="04bfbj0v47hiww6z8xlzphm2yh4vidf9gcp3rvh81j66s7wybffj";doc="1hp3fbvg2v2hk1bns9b28hdjb2bcvn5d83apkr503ahln6rigf8a";source="0p0hym0xn4zcmq8q5v93z1zi8n7hxz9kg58fq53y96hf6isigdb5";};
 booktabs-de-21907={doc="1ld7zdr88xjhnnl2x734rxr7h0fz84awapmv50p1kzn6fczrwyam";};
@@ -521,12 +531,12 @@ bpchem-45120={run="13l29qi6w99d47cv0ky9hsm6356vk7n88xkxjx5v5pb6vrg8zblw";doc="0n
 bpolynomial-15878={run="16rzvfjwc5lrr6fvxjwp383ayi4pwhqk4x6k9blqzn0c0cakqmvc";doc="08d7was7ly4wgy04np72f9pn4kz20hgfsprvzlpyp2rfxvixphfc";};
 br-lex-44939={run="0pdhzadajg5vx5da6ildn9k2nfvf1ks4pxjgm32ajpcpfxbjpwk3";doc="001822zh0f18zvf6b51qdh4ykkv6ywqa5pm8q2vsmjv8rayjralg";};
 bracketkey-17129={run="03mq7rfgkgv06m25hkvlhaw1mqw3xr0ghfjj2jb4nlpkwn6945nq";doc="0kr9il6ac79kvqdds4rn4g98qxy7nvas62364sv75zv0hb6wl0kw";};
-braids-64817={run="10wypiq06z07zdiqrkw2sa87605w794a1zs9fmw00k4r45iqzg81";doc="158wjhqn66nqi33a7zswifbjs1hdnqbhfmr46df9cd269gwpjnw0";source="183zalhp3rch5zd2akvbvx32iyrq0147z3xpryy1sky939p8a8pi";};
+braids-69398={run="0q4zrqx1ynlv8br0my5cm3j61wrizzq4s2wal010yx0lxlzm1gjg";doc="1yzazlfb6f5xr0s21yavcgw48x011rq1783n1cnhqcl9y7c2qirw";source="0f7a18z19z09jkrxcqr30rvnp7179fcsmc5n8fyp77y0j48kf06q";};
 braille-20655={run="0cy4bxpg284blfpmpgh1v9vyh5bczdyz9zdsc1almc51nv6c6zgf";doc="1ygyzvyz4am70n57hs8xhrkdd8hpn2mvg7hg3rdr5b6dvis2ibj7";};
 braket-17127={run="1ml5xz6pyj66kc2jby0bg02m79vfv9z3r91da808n1zb22mmnjkf";doc="09vqvl0v1qkrhv65bh9ym1zm254iigl21d4c98df8ayvffjf6bx8";};
-brandeis-dissertation-61215={run="1bfb1w5c35396axpnxh91h8zk3n4a4618b5knn9h7a9wqvx4rgwc";doc="063bxb714gl0jnzcmidiyq4jb8c09c716rfl8ng9l21n1nx12ms5";source="0zwhl4nh4a37bmxs61i8kkq4127lb20x1500mx4w0ihgby239z3w";};
+brandeis-dissertation-67935={run="0wz3k1yyxi9qdfqkj7h0bag1d1dj2yg63h0p30ydaxid9qbg4viy";doc="1vqzl7fkphkk6rqpg2rjdmd2a88x0dc96ff7hqrmcr085x7vyy7b";source="1rw5qxzc9ksy4v1z8r0xh5sa0s63l1dvr5lh83vjs6qgw7sc2yz4";};
 brandeis-problemset-50991={run="155al8iph3949h9859w32q6v885f0p6wd18m53rkliqvzc6d9f71";doc="168ywrm0cnk1l5fmqzpk9mxf4732mjb488gnqiz128dbsshh37yr";};
-brandeis-thesis-59832={run="0c4hd638rqqhjgnw33l4myxzc02lxd1ki2dfsldfklfhhmk57xx3";doc="0g4b92mmadzqw7kcyf80jl9bashqnx9j2sjq2n19gq7gaksjzc53";source="0k14yxds0jlmkrl3xdw8mc4240rgv605ahg35bqfvaq6nws5q0xr";};
+brandeis-thesis-68092={run="0ng8xi2cn146fzafk4p8n651v4n7pqjhmq1y3dl52xphbh03syrc";doc="19acaxmg5r46kjk54z6gm59rf3pcbc7wlgqr7j5rbbp390c7kchj";source="0j85pasvrblbvsi9npnfmx9mc6gnxj9128d3zc6iym9fx3vfcqra";};
 breakcites-21014={run="0f3zhwrk0wapckz83304anlp2ssii7nvzjdakbxfdj51cd6schpg";doc="1f8x16qy5v27asch2jhbgh080vmv7mza4z5w63h31gdglbkwdp11";};
 breakurl-29901={run="0a3np519c1knm8i60z1d6rmmzdhfl340gkf6c4m1yss68didq0cn";doc="0dk4hgl3411q0k9dz9f9p5f7r5a59rpjcicz9h7ynpc4g3nhn019";source="1hx73iw3n5wgvaz2niqargiw36p068pjl8x65cajn081831syzfc";};
 bredzenie-44371={run="1mcl52mlbbw0yxbs53x9a7kh3xlaka9c7nszfajlhpvj4s3jr1pd";doc="1zgmhhyqf2bwlf0mi509nrnzqqa5g4qxr3zj46rsa8jz0giaig44";};
@@ -534,41 +544,43 @@ breqn-60881={run="0dm9r7zjdwcdv8hq0l08k49lq4pvvf78hrlib16rk9s03rz2v4g6";doc="131
 bropd-35383={run="0l7ifzaqvqhk2dr31757ias4w4vzpdz15kma0bj2fm7k4sjx7d5y";doc="080g65q0v34rbfl67mpvqfcwfvr5znwv0rys8m3fys1s9d4yyryw";source="1kk38an662s7blxrnk4nhfvr49aymanj3qcm288ca6kfabg84w8a";};
 brushscr-28363={run="04vpb4yvbazm9lb7k2rbv4wr372k3l6brx37fx5283fpzj3wvhxv";doc="0dv19f5hfzwnw6fd32glqc71rbjwi1y66p5fl1r17pxsj16nlyc4";};
 bubblesort-56070={run="1qs3y6vs5z5m988cj6dl9n74m0j5d4hsmnrz6xfbpw2cs9g86jj5";doc="0pcbzg1p1wpw00h7h1va4j6iivz1ky31k8aq1jw4z9s5rwz64p9h";source="11g2brc46977w61sk0q9j2wmn5q9x9s3mv6fcgj8ywql3g4r85pv";};
-buctthesis-64004={run="1layhgfbfx50sbmpw9rkszzlqha3bq90d3i2dqc2nyfr9ir77qx5";doc="1ddsvbw0cwqlyl4vv65q7bk5pjg97wm2hksb8yn14mb3wyag0hzr";source="1y828ja9sp7vbfr699xngnrikh4dd9ps16wsfbncsrzrqjn1n859";};
+buctthesis-67818={run="1z7svjpf73ziy7iyd03x4g17k4y8cbqqdzi2ar0rpg48n2sxpmfa";doc="0lqvvf1bma1r5n8pawqqjb78jjgknf19j0810dmxzzzrl7mvxscw";source="1wspjl3bjpv3dgxakrb78w1kmb8i4hivq3wj2mkrwh84ahzj4hby";};
 bullcntr-15878={run="0djfn002j12nb84svd414zng3rnjp79ssrdhfb6j62mx0p9j2hk7";doc="0c88in90fy65pd9shbf09bl5dm6yd3z7g535ni5js251bqa9wijh";source="00pdz4i2pkn1fbihaz16vbhsnwaybpcavvmndg7nj47jlcfplhfq";};
 bundledoc-64620={run="06haydgwqfhzpwir9qbcc72y0x1xl0jhvyfh4gx37cpfvxz514qq";doc="1yqsh1kz5hm6rfh4vrl658y50ncypwb1mdw2p4qfffvp0w5yk2kq";};
 burmese-25185={run="109492p6k58bdgs4y0nb1hfnk63pdpf0x4b7az8frfff4wg2jvb1";doc="1lwgifmixkyxscy6ichwmc8lv26dwmcvy2nm68z2wq0cz7cihjli";source="1iwnsjnacafq1w3n6asj93n7nfxxyslf69jj0rfrl05fai0iq458";};
 businesscard-qrcode-61719={run="0xv56yqqj8y4270955srbiw7qy8bm9r3ih0zazlkrxnrxyh82jlk";doc="0nfvak5730q4ci88dyqln97ljhjbwxn3gk34rq2b5rk5cy2inabi";};
 bussproofs-54080={run="0d783i6srwanhm806hk0y5igbw99rf5x9anl7ib29pijrqvg8kjx";doc="10mn4g6dap1rksl5jnsp8pv3n0hhfrb9imldjyrmiika2d0prfp9";};
 bussproofs-extra-51299={run="0ndqiz033c8dxkdknf7hy1d42y0g2hgdb091wxrvpla7ryawcb8v";doc="1bg3sh0r7kqkb0hljc5m3x9gn3wkfyjr9b0d8myjwwyf4g9hzi0d";source="0p1imkwz82zwzp0p49a2vj7gdywv7mxr3b6nbmvkpz1n2qxs2hsg";};
-bxbase-66119={run="1ijrq63y54ahv7r5f75ssx2xjb2mfbgxk9pq53sfjk8cww1m9k0l";doc="0b6k87rxc8sxdqgbr61qmkrfdrzllc54svbm5qdxvknimgsbaiv7";};
+bxbase-66115={run="1ijrq63y54ahv7r5f75ssx2xjb2mfbgxk9pq53sfjk8cww1m9k0l";doc="0b6k87rxc8sxdqgbr61qmkrfdrzllc54svbm5qdxvknimgsbaiv7";};
 bxcalc-56431={run="1lgk3zfraip1jx7hpkkxwzril5sqc1hn00km3ybicsvi53z1q19f";doc="09x2b2cdxgf7lil1vlw4bmmjn2kl84cgxd75w2js2y1znsfgsivz";};
-bxcjkjatype-54080={run="1b2srzs5pwaind8pjsghkbq6hwf42ipx4bmcim2zbfxmzyb1ga44";doc="163farvip06haph6dhwf123dk12rnls1mgvdsyvvszgyy9m96bgp";};
+bxcjkjatype-67705={run="1awhcn56jiwym35gxlhw4m32y4va9qh1skjjhk455plfmbydk71p";doc="1d9v4al9hyimw0bbndd7d8jjc8pngj5xrds1a8j7mgcjhkyyjin7";};
 bxdpx-beamer-41813={run="05zpcwq6syy612w8jw10fqym4w4b4qxrd2i4n4hqwxv2sqgsw4n2";doc="0g0ld901kdq3558ngzy6mf2f2vgjjcngiig2pbjb8xakcq933jj6";};
 bxdvidriver-43219={run="06rw5wwp5ky30s31f23gl4hpyzakn5b3vvgna8iw2iyy6rw5cl7a";doc="1qwxy88fnfsx9na6c8r56n6zhs13d8apkjq7hhydsfs7qy54q4vn";};
 bxeepic-30559={run="18by54j2rg04n19whsb2zjkksrdh6f6i54fq257i2mvcp0qpxwr5";doc="0117dzkqs1sy8si4dbal9p5p6csskcby2swmf2911c0vbpdl51zm";};
 bxenclose-40213={run="1mii9n7x232y5398zl9xysg81hflamrj3dflrngs94mm4akmcv2d";doc="19nmr2ripjifpjw8xrr5dhll392llqbfqjd2vj2zdgkvqj4bar4j";};
-bxghost-66158={run="1dydfivb39ly87sprrqc42s5rmwgpqx10chmxa7p3x3r25dmrnzf";doc="1gi4jj5xrs4wp194r4w8ycjvk3m18a499lckzpqgmb9r2n5ab8a8";};
+bxghost-66147={run="1dydfivb39ly87sprrqc42s5rmwgpqx10chmxa7p3x3r25dmrnzf";doc="1gi4jj5xrs4wp194r4w8ycjvk3m18a499lckzpqgmb9r2n5ab8a8";};
 bxjaholiday-60636={run="0qxc2s07rqnyi0a8a050h2qri4kaqfcwc26c2dz0x8ypg18s6nhq";doc="09a5q2cra7by0q4zxl9nfa672ryz0cdv3xkw730cq3qyyxgc06ls";};
-bxjalipsum-66033={run="15wzkx4x5xdq8wd24bwp61blrnibhc41n1jm7w4iax8vh8zywspc";doc="04njk5kvn1igjwnm85mc4hxg3004i88wzk91fni3f9pd069pcd5m";};
+bxjalipsum-67620={run="11gg3r67rs7j3f4by1irz3sfnwlz88i8w3kzf0bdxb52sfrh57hr";doc="0wxw7dlm8rwgz321cdfpx14vcx3hf2skg61ngr5bbmcmc389apk3";};
 bxjaprnind-59641={run="16rdpkqlsx301zvrr2nyykpjqf0wj1xhqqk72a5jajyjpcqsvki4";doc="1x3wh73nga2l8f7l24pyabpz0b8g2k6hkszwl5dijrppicl875ym";};
 bxjatoucs-52509={run="19n1wr7i1mfrabmrsgnmvk5wgdqhbc9lfpz3s5qhnsqsz69rzi00";doc="0icd5zj0cabkvwjgncsjmqwx79d2rqsm7ddp54ahczfl6mfg7fwj";};
-bxjscls-63011={run="06nfxdnwbhq8n4axw4srpsj58vxcjpbwszfcb0azp9gkyzxv1kq7";doc="1ziqysp36jlbiz7460qgr2pmgwr4q7agpkzpq894v43bd187xciv";source="16vw71b1qnxza4abcdx7b3xvv9h1gh8gnzmckjmhrvxwx0gbd8d0";};
+bxjscls-67657={run="1gwrylkxz9h0szcy4jvsmyyix6640ncqiflsm9z82nxvm0zglasv";doc="1qy0as1kff7vlwq2vq9zl3sb8wy590ryfh4ax040d52wvz7x3619";source="0gpkk2h4ak6ivdjfjdjq52qj6vn5n49c292i3icx43r0gifhwns0";};
 bxnewfont-44173={run="0mc8akfajlyl6vfh620h8rcyfv02gdg4ycqx18lhb9vfivi3j4py";doc="18na6f8nqlagfszk9miy5bbx2bylgspck3pgglbkqb9cgkdf4qq7";};
 bxorigcapt-64072={run="12bc2pv884wi9z97ih1sm5r8x67vrlqhd19f6m1naz9rs7jcdxxv";doc="13gp6632pn7kvl12rpbz99n5imcsnwf43xx4iq9wq6xj4qnlf7cw";};
 bxpapersize-63174={run="01gv55dv9676m7rkfrmz31aql5xb69drl1wvwh7k1s3xrywik35j";doc="1xsg1nvr7i1smrg94110pz4my0vvi1imqkhksc9daki52iv1jyx2";};
 bxpdfver-63185={run="1hhl848f4m77abkwa3wz7zm3slnp2k9qbmaj2sfdr0hvyx05jwpl";doc="16919nxavpplbzwxl10rsbhhqcx7pdydcmf1v5z7hmkmw29a1d4v";};
 bxtexlogo-63231={run="1g8iy5a2cnfsxggzl49vbjw2fzk16jcy17vx10qp8qdzdzw29gs3";doc="19zq1rssw0sin3gz6a689g2khfc6rxhyckqxg0k0kj3gr32058kd";};
-bxwareki-51286={run="0b0n3yhq6y4dq13nwm40zyw6hn1jz5r3bawsrnaw691amvfb2blh";doc="0ay0rsjnvpi1g7iyn6dvwc4awfswd48n379qqys5xhzd19bncs0j";};
+bxwareki-67594={run="1ax779x1zf3b68a46pa3d65wdna3c3vhbz0r8kj8kavak044p1qv";doc="09q919sqr675q3iklh3yid7z6hn0d6pvk2a2zchi8rd3xdqpv06y";};
 byo-twemojis-58917={run="1c43vgcnkdvag1wdhivl49qm3c9pf29w89xgy0m02jrxryrjy6i5";doc="0bva1q3zxzkkrz2cc2zrin955p4r251hlb0w0gyfm156dss0iqrb";source="1msy8ja579nysqd0rmbw1xsh6hksm44ddi5q3x0i5p68k2pk1i8x";};
 byrne-61943={run="1bzlyhysyiwfxgjzdsz0ax8mkdvf3ln9fnwb33px92p167s1mdx1";doc="1wn4gqvaym5gjdnxa1pjbvnk77xzk6dzvpjil59nagibp0ap48pg";};
-bytefield-60265={run="1cplzskpa51fsd98zcs8wsvxbsmq6nvn9xgnkjwa4zcy363m7ifz";doc="0y2qf6yprzw4xbyxhl7gafxij1kql4nk8hkn67gmx2si8cdjyp8s";source="0p1afxnc8pcfvsp2ajfbnzbdjji0dwvkapwllfbaisabbz5r223x";};
+bytefield-68366={run="0ygrxp4il760rrm6zakij3h6v6a61bgwjjbsy2nd816yv5a325ga";doc="0gdz5scdzh64p4pbw8f2vmwvs7hl012d9m3k492718shcfzs1y79";source="034azk9zmy6zpwi7a5jchwnigg2vzcbh998a1izgb79fdlw5hpyb";};
 c-pascal-18337={run="1gbijcvhkfc9jhdjs07l1mz4p8lchrhnrl1yj2gmzkskp4v2pkbw";doc="17ddnb3k2q279xrrsy3y5n8qyk7r8hlrw8vd446a11qiwypjvxy7";};
 c90-60830={run="0h4y0ydp0vx0hk5s46lj4j0vji6yslc0gn02rmpbpgs6ic34cm50";doc="0bwbqi9kg39rm63vzngrswsg7vnibrfxlz8fhsqb947j20mrj6l5";source="1pif2g8ihgxf3qznhhc52gi9bih5ai8a986c6l1zxlmgrh678wxh";};
-cabin-65358={run="0wbbrp46i4z22ypagn5j5pa9l86ksblsnsq7nd310897xvx8rv64";doc="16r58722s0idkig54nd75cxajx0zzyni6yzl2zgf0r47vxbwbl78";};
+cabin-68373={run="0wlhsfhi6f5wvnvi0k0h9j8xiqy5dp7fxks2ipw2ap9yv3r34pfr";doc="0h57p06mh7drx3klgkgj6w6k7x4kc8h2yi0sya1ygi94kwp5x1lr";};
 cachepic-26313={run="1j93lljbpwca363sjk5qmljrfq4f671kg4qrnfyv9zqcxcpyfmmg";doc="00j7j75zq3wa6z1liy0y6wzxjv96sq5r4dh7kp9f9icmxzs0x8xy";};
+cahierprof-68148={run="15cimc5inid5zyb221k75dc42gdkvzdvxzh2n6wdw0gj12m9y2di";doc="0qd8mlngn6p5pzwkhkfhk8p26d9dgac2mn2har0pwvkrppg7vsj0";};
 caladea-64549={run="1xvpf4ly47vn8askincn7wl8k5skhn5ir2wj1nba6mgf84z106v9";doc="13j961b3q42vpa7xlyzlsrl6f7ndnlw1m1zqi39j5qsb7nhpy7cw";};
 calcage-27725={run="18rp330i29cw8pkfv4gzlr4lz5rlcvc4k0l8mvsvs0xa767fd3h3";doc="01xp6i814bnzgbcghdpyzb9f0zx3fwmqd3p97rk4qlf3g378l8y8";source="05lcg7mix6z6cw85bpzcqgxlgb1vzb3irhljlfcvq08lrdfjy71x";};
+calcfrac-68684={run="1rvsgszxg0dj2j3p58m26rqwl2qfinkvfiw54nq6zzzqxqqi03l0";doc="0r4in3rrzhs001bgck0y0h484ziqs90026fmyxnnfv9dhcxdp11c";};
 calctab-15878={run="0rs028w20fcg5jmmnhwhvasb701j763pk4bwv09lj3g78769k25l";doc="07fxrnpnzn23lb3lrlvil6a8624vcvam1lq6sf8nrgs52fzl2grh";};
 calculation-35973={run="0v7f5qx319zrwhy85lvk354a7x2vcainiq90y1jkm5cscs23xqjx";doc="1bk9yqx607vp65ifdawaldcsxm065hmyrgzwyy90wkn4kmyq1snq";source="1y5a2n2asfhwm8jylfg5zm5dy4v5s8gjl5ndizwk1ywwl0am2dxx";};
 calculator-64424={run="0ha62j2mdg6f0h9rc03xaniq3kgfccihwjh8lbf6r6v609kqncwd";doc="0ilnsnlzxh8zd51h7lj0rr6c4fz9yb8dff87yjnm73ndkvia0ky7";source="1k5vbywm427cx1xvvh2fv2g79nikspwrp7sk9qcvaf69g8acs93h";};
@@ -577,21 +589,21 @@ calligra-type1-24302={run="0liaz2jv1ad3xvmaxdp3vd2b3wvyg0wm1jlrrhxljzazsxzs5d3p"
 callouts-44899={run="19khsdal0siv0vvj56bxgkrj7bk1yyd3lw8iz6zijchp0by6gbbr";doc="18zy2yzjlgn9g2wzlc9i52x8g3dv32hvbybjkm9fmklsgnw8fang";};
 calrsfs-17125={run="12b13dhwdxr5dc37l7imlhn4sparyrnz0d3vagjxlsiinm7hakf9";doc="1295qb7s41y2abs2ip87ipcvq15pzza0bwvj6pwpwxkxq5yrr83q";};
 cals-43003={run="03100nskddcxi7z48iwm7vnwlrdkxj7xh8wgbb8bx3vfcrz731jr";doc="08y10p0i7y0jndknkwrwdws6ja78sz1qf8vxvhhhcpivxc7a5gl5";source="19sh899dbk4z728h9v72xrf54cij8jhnb4k4a035xfb7ijc0jcrq";};
-calxxxx-yyyy-65426={run="143kpv77pwg9pib467zn2716fg0nkpsg0pfd6s30012209pinbrj";doc="1dm56748fx3xff62pj8vv8lk47cqp5hjh2q14x2imypikhvb89rx";};
+calxxxx-yyyy-69266={run="0hv01h4j0jc34z42x0j13bd80vkvaqdyp59jds1jf0yv2mshiwpy";doc="037nh1j9q4gspazcmlagqmxjfi45xbmh0pifbpmv9iflyvnzj6hp";};
 cancel-32508={run="18bkqkdf888nd6j187kd39g0vgfhfh118bky8r5wwzy2aq843061";doc="1x6dhr2xyx66i8qwk98li3vp40rlalfrf5lk8ah4gq03ndhmygfk";};
 canoniclayout-64889={run="0x9r0xjdv3vfbm68w0cydnjgfiaydlyg71cil2l3rf1p4awk1kkp";doc="03vn4k8yp4l195k2716a110b8lad3zympsphp3cp8xx0cbfb86ab";source="134arh3nmd39zr1b0ybmz3y0jfyvwzwcrzd59iik6bzbp601nk8k";};
 cantarell-54512={run="1p5idl8vqp84g7vw3q6ybwnddv8q7a0ijy6vny8jfd6583bjx6pb";doc="1r6mlr4qq61cclliz4h86bc86zkb5kr5r9bixwnj88pbvbalayff";};
 capt-of-29803={run="1b89cznanql6vmcn1jyr1nqkva40i61lsgjswsqjgdqnlbmvsm43";doc="091qchrgwikiissyrbb5i14634130vn08rkj2v7cnqzsb9c44f2k";source="0dlgrkl1vcvf8qck0pn20ic7cmsvxqkmvgp04f9hn3dmk0yrzc3r";};
 captcont-15878={run="00zp59ypp753b17wcn9212gxk0w11g2a7rn9gi2mn4k5c3djc10w";doc="02n200ziiq4lbfa3mc8yk7icayl7l5ci3kpl8mlkdyg9r0a14j1d";source="04wilkx7vd5bn05cww36lywb10xq6b2nbhlxnjq5xbmdrdf9ckyv";};
 captdef-17353={run="0gjbxdn70qskb3xl6gmags3gjq4pks44k8c48lxljx3avpvxnfp5";doc="1wl56hjc0204d6xrpvypgra7md18db4bz7657m49893m2pmc2x7x";};
-caption-62757={run="06gr7sz3gkiji1rfsfxlpg9vbp5x7rnbfhbzfqv48za1lfj057jz";doc="0avy43a2jgs0rqlcb8888mnj1a5vm212zfvzb7n4kgrvkgcjp0qr";source="0sw8n7aachgy9iw6pa8qx3xbvajq8rgx5ywaphpqgsxvj3xlgw34";};
+caption-68425={run="0d7z8vb5d26n6n8yan37820qsq46capr41vasvi4pcb2g2smkzlm";doc="1zkscfajy1biv61vcgh7gka33dm7z6zqf0ypps49kpgx4q01ppwg";source="1k8llr5bm3pi7bd6224a0nzc7d6d63wrwabm8wygdxj2slcixw5p";};
 carbohydrates-39000={run="08fsn3xp2bmkkhhqq0l8808j92vibkc27mi8frhzb7g253fnmbwc";doc="1ygfgsik471prmbnv7cwak72w8daj7zgvdw50hjn4c6mqsi6g3xa";};
 carlisle-59577={run="149m5a5mb0c2r3rk87yvsiw50mp3armc0mw3jfrca8p82cyjwkaj";doc="04l137nyh94qrli4qzsan6i1ag4j5j1s0qp8mb1m8a8aj0bw0i7i";source="1b1ikyj585mpg7wkijlb2ppai4shcz6xad9ks52lnkdjd0h7r9lm";};
 carlito-64624={run="1xcq8y0psxyh2dw9wqybb67q9ihqp2p0klf98rni24x0xn7c2l8q";doc="0sv5kmnkvpj60xnrldkp3gnhhslk9ksf6qpnzj12v00gcyxfs7gi";};
 carolmin-ps-15878={run="1wq22k55696jbawhlcqxj839vx1kla2xsik32pv5i2371dsn7211";doc="1kai31i0pvrvp44y06hl3mj20hwjzj2mav6zs36afz81b491aw79";};
 cartonaugh-59938={run="1s10sc37kg3m9hvjcicgc9i3wkk40wxi4ncswspn9a599kkhf829";doc="1y287gshxvdy4chshpwa328gfh36i3cs1g0giwga12afmkaif63h";source="16clmcddxp9a7ybvgpx7w6mf45lcqq1vzjb4r4ndggbpwawkhvlh";};
 cascade-65757={run="13xf7135hjf363d9n1gx41m7awbr62pp6y1j77qmc7x6xi7vg85g";doc="0d2fkdrrbh5lj6jmvixgj7v4g3adg6s6rrrj8wxilr65vd1d8p6k";source="1vh912sp0ngr4mq391m8cdggxwpjdm42d2qwv5m4mlqhsadald7w";};
-cascadia-code-57478={run="1dld0cvrpdky97ycnci27z4pk2adfflbgp5r43fxkwbh3l45am9n";doc="0i5ancv04gr9ryc6kmrm197n6kkhq7m2gs7bj3kmfza0r8725sd8";};
+cascadia-code-68485={run="1gdy5rx4dk2722xhnl1f8p0y5xhvpscfaycks217g1j7k4yyk41p";doc="0yadwjksqxia4k6f8w0ng7rxzp1lggqxk8q6n1gmnwqqph08y4i7";};
 cascadilla-25144={run="013x6his54n8q3qp2xx12c0s2fbjca1ffmcb1kjy0yr0qy0y698z";doc="1l8xpfmdp2sc54qxx0ywh7im342nd3kbmgkx2pfzwmqz3xhpybfd";};
 cases-54682={run="15f3mngrmvd0h6yy3jiifyzfrgi014g4dsqz9c5g1mw65yyssl8s";doc="1vq4x3lc7zrxsh3b7dy6w53aikx5vfzx26fi288b44g99f3h37jy";};
 casyl-15878={run="1cmz40n2h7nckjw9x8wjrj0kkig4xhjslqjachsdgidd151m65c8";doc="1y1gc2a1fw8fmrs4milnqvn0i099khhjq8pmsycj4bxpbsbpwqva";};
@@ -599,8 +611,8 @@ catchfile-53084={run="0dx2smqpw2jmzbsfl1g1zpa790qaxas4cz1xb5r905pvpca4q9h7";doc=
 catchfilebetweentags-21476={run="0xvk581zl6wk04amq4q6s4mhpb4d3f239ihk16m9fglabhq34xwx";doc="1bd9dgjp2rvsv6mn40m7i2s5s84wj7hbk8rka2a5djb00fv4fgzq";source="0lvxhx6id5ka9r3zp8h0xgrs05jax4r5rcyqcs1f77zfc2s6s8iy";};
 catcodes-38859={run="0sqwy110bqmy1npqqp6m7x4m632zmg4n52snrbzzz87jp59k6kwm";doc="19drsfj7f4lfmjhpmivyyzaps3yhxsy5xppgbm67vk4368sgsmpg";source="1c9269586s85v3swr33s28wb74xxaxy3mzp4153by2y5hpj250xs";};
 catechis-59998={run="0i0bhpal6yjhama3l9q9w8ljviiljqjcxixlcx39h6qq2dh5a4sx";doc="1c11g2nbf5nk7pfmg3dqyidm83xwbcqnshpwhbbnz3vi8lb2ycw1";source="1vq6nbis9cgrsch7w0yfm1s7y8ymydhbhzvllpx2ml6qks6vhy7i";};
-catoptions-35069={run="0739w56yv2rrz9958xhargjjknkf4bs2rgw1d9122ixrp1vw3241";doc="1jfv3946gqfbph8lzpzp8q1n6nhd2dcjprjylzw9kwxj5i42qqcj";};
-causets-66375={run="1m2gjhs1v7kaagqqzppdf9frhlfshy74j39n8r4phhpxjpjflar1";doc="0zw9imm84dph6dnajj8ap50kr5h18j6sd12xfd1d2asb35h5lvac";};
+catoptions-68982={run="1zixqpgln7yqpdg37l4dilbqsf86bbl64z0rqg9mjcs150vp0vcp";doc="04k68w710rvkx7zp10w9a1imwxv0qvanj1x3kjbyk0d7jvh3w20f";};
+causets-66359={run="1m2gjhs1v7kaagqqzppdf9frhlfshy74j39n8r4phhpxjpjflar1";doc="0zw9imm84dph6dnajj8ap50kr5h18j6sd12xfd1d2asb35h5lvac";};
 cbcoptic-16666={run="0y4y76b69ila35ak85wkakk6w1idjy92jhbnj01i82xpjnq9qrss";doc="08c3v6rppp3qfmg4nz0abwn2ka60wc6zrdx6qh1b591xgfwcm4jr";};
 cbfonts-54080={run="06641hiw3yahh28yq3bnz3dc6d25als1d8kbjh1ldab55gb3vz6i";doc="1vlhqfx3y85ym7xaqzr7bxkzm3am8806s6bkp50mv58r914xmlz3";};
 cbfonts-fd-54080={run="0gaw2v82im1k7addx320xhwwq28mcm2xkz4z90pw09r848s9fsyx";doc="1arnjpk1n9mkva1f9gsh5834kjb7m9rd49kgn3jf6acmdac67rv7";source="056b2x1fv2gvy7ldi9v1kgsla7jzhvl3lsd5wl1v0sb2rqr2jngv";};
@@ -615,27 +627,27 @@ cd-cover-17121={run="1x1z64h0473bf4dvyiraym65h15n0jkqbc24kr0xw4i0fk0q4l2i";doc="
 cdcmd-60742={run="1vs7lxaz2pnc93926245p6sylv6z38a10flrsfzp317qpkvvrqyb";doc="17xflbkibs98pdgs79yxwasr2xfwh1i54y5b53314n9nsr0w539d";source="10c1rjy2y5f772qn69lmx9wknzj0mydj80jywklckp4g4xif2hqz";};
 cdpbundl-61719={run="1f3375jl826gm4arxsv0saigl8230d35dmkzvqyg2kldz5ig24s0";doc="1yhc82i1n44fp375vqyzrq47qdzwxc3x3zg10a791s4p25frzcn8";source="14aw67ah211c1simgsz0i3j6jxmnsj4arjfy5g20i05l892sb2xw";};
 cell-42428={run="1y2bxxx73r1h9rhsyar81r4s9nhgqjlvs5rwnkpk148rwwar7l56";doc="1ri21dk1wgfaay1hblmn8akmq8ccxpbp5lrfnprkqqrvkxnmaylg";};
-cellprops-57599={run="05gr1jgr9m7yfrl1d8pgnh0z8xm7rk8522vl5wck2s2slmk8schy";doc="15f1mbagh41qvzkqf1bdzlvchfn4dibsa2qj7zwaqszc6smscl1c";source="0yb9gjglaqfivifxi6n1al6w1nm0ah3r4d9y8bc7xnfxikhx3sym";};
+cellprops-67201={run="05gr1jgr9m7yfrl1d8pgnh0z8xm7rk8522vl5wck2s2slmk8schy";doc="15f1mbagh41qvzkqf1bdzlvchfn4dibsa2qj7zwaqszc6smscl1c";source="0yb9gjglaqfivifxi6n1al6w1nm0ah3r4d9y8bc7xnfxikhx3sym";};
 cellspace-61501={run="0s0f11xrs670zhynqq43sbrx9b290jph8r6fp6s7damrp9wnz9fx";doc="14znyc212pydxgnyzqwxd6vlvd72b64qjllmsjpcsxqi0f7am0ak";};
 celtic-39797={run="1vg75zj6p9bhp9qg4c7nvgncs7iiki5jizx27ld26yni9m2cd0sb";doc="1llinw15fnpjshks9yzlmbi04pkn6s87jfwgpnh5vb9hfws1ira5";source="1w3wm5ci6kzpnvlaxbpqndclhxlbs4xiwq90iig98wf97b85lfi9";};
-censor-63126={run="0pa303s5ib97h1h1zmjgxfiyr4g488a7szq96nnla2bi0zks1js2";doc="000rznj5wb3y9mriqh203aw0nadq8hmxgn9z95l0isdn4ksda58g";};
+censor-67293={run="0nili9g4i8dly7gri3b1k4z1n5gnlrkj1dz4si3gf2b6gpll993i";doc="1kzi4glg1gpwx37ck2gys2dz072n43af5awa8x1a2036hpz6s5az";};
 centeredline-64672={run="1xrh8r00wrr29wiijpal0n6k48zzl5493zbfzfgwq115lxsvhp37";doc="07jvl42qmwlm2qv895f66cin58xzin21czdd0xpa13lgmpsccv2f";};
 centerlastline-56644={run="0wc1pwppiwycm5w3hp5ysnv3wgsw9s8m9p9ra3xbmlkqxd6zjwnz";doc="0f1x3wzxvgjxsgqparyjq4x32zbqjm88v5xdxm5qkiasai68r7q3";source="0ngxhlawj8igq7d2mhijpfcybfr6lv1jl82vs9kk7j8xrdf2nyr2";};
 cesenaexam-44960={run="15n0abwviaz213q00nv6faxc67fyqz44mvp28zcyysrhmrcxw159";doc="0vqxkqgyg79kzfcxh40knxh5a3d2j6q3f778k2npfz70d2kaizj9";source="069n1sk2g5n9cqq9rchk9w5y40igh620a1j5miscgykcczv2y0jw";};
 cfr-initials-61719={run="1wf5lcqh3jysn0fbzpmh429gmicqhh1kvz26jfl37f1z53g07shs";doc="1akblgsix6a59as4z5z6hhsncnsfxqh78s8gw0m3xqv6wrbv417k";};
 cfr-lm-36195={run="1inzb3q94b42n1g3hchqld687qhs33m2zxvxvgyciwqnwfn3h968";doc="1ska7y1xg6qq86kccplwxjd70bdbiw492d9y9n17d7hryg2nxw66";source="10layppddcanvyzjbgn6grgba9ff47kn7fqdxmwfkwnpw0qlw5k4";};
-changebar-63259={run="17vgxgjvlb4fflkvssl7x6h1h54fw1fwjr1al5ibfhxwwh182lmh";doc="05cngjpda673y649yy5skgdp6ghrndj7jl50j60m4s7szhlil4ml";source="05vl3j1ks7n727qiz9wli3x33hgv9sgk1qbqvdqj1fgv3k1ag02x";};
+changebar-69367={run="0q3z0187y2fynbp9zkhvfvcqrxyn8l03xrj4wm6zrzkz70yq0z3h";doc="0yvkcx0gws3m0jq15qnqbxm169f36qfr2wpbl4hp963z1az2dqnq";source="1zdljd9j7xdly3wlaqhic8v1d2j3mr7mz10vp03navlysd6b0ycw";};
 changelayout-16094={run="08bapli8zvv8p15bv3sj7l646fagzbj44dbq81apb8lhqanvlf0i";doc="1s304gpjg30kpygvg4r8r2j4bk9fg8vlb331lypd3dfd6slphm60";};
 changelog-65861={run="0zd7i9kh2rybh0d3zv7pxkjk3iddm03vkizpdxyy3sjblqa2kz3g";doc="1m65zxnlazb9jdqp4y0n4lzj6mcyhv4ng7nfg63zj7zpsx0kcvgv";};
 changepage-15878={run="070rd3drhaaw6z386v9z5rs7dmf15ci05lmlxsaay3s1ry1425bc";doc="1149csn0iphkxj7p1bhkza8v6xj39k49rylp84d1ilckf1q4imng";source="1slacsdfrjyy7hmhj4ssjkh0ln846b2ds11g446hmdvckyvz4363";};
-changes-59950={run="1cqdis0b9k20nvfc912xm99h6l36jzssszqrgcshl6m2kd722if1";doc="1r03j3g11nh23misg9prjrbl3jvf45761jzbxjjn4pajynfdpm63";source="1dzmdnwh8bbg3ysfxqq9x9nw44bz55f4gl79nn2z2c80f99sqvx1";};
+changes-67201={run="1cqdis0b9k20nvfc912xm99h6l36jzssszqrgcshl6m2kd722if1";doc="1r03j3g11nh23misg9prjrbl3jvf45761jzbxjjn4pajynfdpm63";source="1dzmdnwh8bbg3ysfxqq9x9nw44bz55f4gl79nn2z2c80f99sqvx1";};
 chappg-15878={run="1lx2yw7xyvbhvmcaj5qk2bjfmgyr4dn7q0v8q3xfkrnbzbzmcajm";doc="1c9qkc2m4rcixnif8y1zvcc0mzwjhzsbrbmy1cqv598cysc2yaig";source="0fzy53whj61n52k1ashphabpa076244dqjy1v7icrb27gd1y86mg";};
 chapterfolder-15878={run="1lphi7j367ga43j95vlph7ywzj93lppnn4n83xhbvwp56azryqm1";doc="1ns01x1y3dq3r37q783ha7xsnlg50vfw5knh2saw1rv40wf9vf1j";source="0zc9fa6xgs0s6g3rfzq3p32dlr3ay4k6y443z4zslkpmnv0hprjc";};
 charissil-64998={run="05ysp0l1v2azbr1gjjkh8mh1qmd7rq2znns60p2ic7dsfvfr9kpp";doc="14pq31xhrwa9v57dlwayysx16sw1kabwh4m9wjlpq9xdgbq9d38y";};
 charter-15878={run="1z9145ri2g732bs4fb8i74gc0ymak33k7sclahln2bhdpxi286fm";doc="0gm9pwanxvzv0zmxq6pf54ygxaxvg56kh1ym6f5ij9akwvhf6nwb";};
 chbibref-17120={run="01gyfwsfrjy7fs160zxvzhr517wwbsgh381hk626kvf87wssz2nv";doc="0h5vlzfw5lfg7chqfmbisqydmjn513rjrvw8pax4xlm75c0p6drv";};
 cheatsheet-45069={run="1cqv885i4crrramly68wamd9fcx0lj96vzys39aplars3pjv0glz";doc="1ykadvnpwkyj701xwfpnlnqr313d33r0yigmsscshgr1dd52jjf0";source="01hd52i399c9nsk68ymr8hmllxq1vl6v01fvs1gpm90pgvgdc9gy";};
-checkcites-64155={run="137biq2rvvws5k7l5knzzhkgr1bnw562bkkps8xv2d57fnm2m86v";doc="0zi9ffn3f0kzf3iqf2940f9zvmz2s15pgka3wngy9bzw8f0snxbg";};
+checkcites-67201={run="137biq2rvvws5k7l5knzzhkgr1bnw562bkkps8xv2d57fnm2m86v";doc="0zi9ffn3f0kzf3iqf2940f9zvmz2s15pgka3wngy9bzw8f0snxbg";};
 checkend-51475={run="1g4kx83kkpdd4fbd70b29hv82gbf19avd04b3bcxy8d0r7zyyyad";doc="1hzllxf7pnp7kg2623i5yhl2xq6phifc4jc57f2zfgfvvw0hqihy";};
 checklistings-38300={run="0hs740rpar4jckxc2p8wwd8x39v8bghgc2jjrbca9m5zbr0prvpg";doc="1riyj6x57jb28sjswnnfyqf80jnkvyr2cvckav29j9ni8l970qp5";source="1ghb0pv2zmznyg12zqgljwd2pc5lbajgdnzr6zf2rrmvlrsgr38w";};
 chem-journal-15878={run="01s4sbmc4g96cmnbhx9a6bqjskkrr6saq91cly2pfy5gr256vmnq";};
@@ -644,7 +656,7 @@ chembst-15878={run="1dg8dasw0r96rnv4pnmm2k96rxmsdfhvkbxc5m358x3i5i4pcpm0";doc="1
 chemcompounds-15878={run="05rqpsyf12yrhpnzip0ywzflrvsjfdqhpi74iwpwb98d3q82ckai";doc="11264rxfhbf36jfkqdfyl2dyqal86bhjbm1zsy9ps8w4fsgdw94a";source="044gavw3i9xsa073bwpg11xy75dip172ih6h2p1mbpp8i7bzsrg0";};
 chemcono-17119={run="08cch2gr35wclm1l0j05lfbjskqw43jzz3aj4wi1dhpm31b855q4";doc="1kcgfx2clh4x59h4scw5mg035wqr2cp5kidn7f6p2aaf5607xid5";};
 chemexec-21632={run="0yj6sygdzs247fpajjl8gk3c6yhk52npbjahgngchqmblhmhlkc0";doc="0pqksv69yk7vf622x2p2ah735p0a93agfnfyg8hm2jadwjmhzikj";};
-chemfig-65901={run="1hc7yqfrlb145r46j28jwiwdq7dp67i1hqnkpadja7c4fb9w9nqg";doc="11sd8l6k0ba33gjm4sqqcrzr46pnfawc4pzj9yj5l5kmkhm12in0";};
+chemfig-69227={run="06jp9cd9x404pz3fss77vhal0d3rlnwx1q6bnz6l5zcr7dg3n19q";doc="0g85rqfahdvb6xp56qgh8b9la2xjhsi1cv3q85dabxgbsqwq4m0i";};
 chemformula-61719={run="0q0vrz2agxw3g7cy5clya5hfsdv8s8qf18szhway3inzg5mfr895";doc="0h1nbyhj463zxj4d15cx88h9pwb2wxpq3r9dsbzdi63fb1mnr4bz";};
 chemgreek-53437={run="0di3w4yqnjs49im28g2a2qk31d6cqhrbwpq1jcxykk8am7g2sn1c";doc="065mwb7ah9h4qwqp36n0sdlkjv435bwrljz3yzsgym7a4xqvhfwh";};
 chemmacros-62655={run="1phw4kgp7h5mcrr66vb4kazzi3kw6abmxqhybn3amd4ishgbzd8q";doc="1rz1a7nc2c0cf78axch98zsaxah84hzr7h8rpvz3zz1vfa4bmk5s";};
@@ -678,28 +690,31 @@ chletter-20060={run="01gvs00kjr313a09y65hif15vqvxidi6ri11ypsbnsc0man6dhwd";doc="
 chngcntr-47577={run="1a61sdmfbbryqd2gj87bm4qsva0xjmf9mkxhxnjixpqmr4gixq8r";doc="1rrkyvwbgfxxrnsdjybjqxqg15xyzr4s7qydx1ky2k7d2yxhiy41";};
 chordbars-49569={run="0n7ycv6wkkd4nr7d6w55375c0ym1pinqjyxx92dwllkmi5w2wr1w";doc="1hg3kzyyw3ra6qqf9fh2rvv5rn2jaglzjvf10hwkv84a21hlfvq9";};
 chordbox-51000={run="09sghgyq6mv3w0m1vlcf82vjbdkb00gpiqr6iwlimpqjrv09bp3l";doc="1fykwcz8d0ja7f5px60qf7pfzfcw447mrfpbq8awymr1ilwgmz05";};
-chronology-37934={run="0scb55ph1k2hm5bp1kvj203c1f27a6d263x39cmb79n9a6idynrk";doc="1rxwljr8jh5q3id04vg4abl0h19dkbzx8m04iq7500syf2xsgl7a";};
+chronology-67973={run="0jbczd5y58a6bjlk812ncb1ckcsq1d7j8ghmivx4pr5pfcx5lsqk";doc="0g5r3by58srdydm0gps4ybsmihayir3qf2lra569ywgxy06hqpn4";};
 chronosys-26700={run="0ii3r31dii1252bg0xfh4818az1snrzfx7h4ibr6rd5q3a83yisx";doc="1c120hcadb7xpkspmixhfrdlcmhl79jrf1wc0vsjqbq3wxjq1p55";};
 chs-physics-report-54512={run="19ci498mf3yy0xhmq4ghy8yh138dzs8953ki2mqn9hj6jjx71yfm";doc="1nfmbhp3gqmf2pdallpnrx9hqlb8cwkndfri8i0mh411hrh72jp1";};
 chscite-28552={run="0db7nrmm5r4b2cvcyjfra1fmskjaspbgymjsl4vvif9j3kwaa0ba";doc="1q5s4qj508nqy74cdcg8380vjbhs4v70a4jkr9wdirqcxjxs6yfn";source="009a8y3lxpxjhkd05fcf308k3fihl95pcn7r2bgy57jr4nalmixx";};
-churchslavonic-42751={run="0f405qij680p4jjacjryjgqvb6ysra52qmydqk5zgqyljrm9h6hh";doc="1k7imx74l512fwd97bsqy1k8jkbkf2b97lr1iy4pp8jibam534rm";};
+churchslavonic-67474={run="1x3b3l8b0gbariw3c48pfr6ywfxh304vfbsi10f99i3rhl8janac";doc="0pjb7dpxp0nnvh47vrqydd5gs4ld11lgf9m45nrzs1x8qzlx53ah";};
+cidarticle-68976={run="17a2cqb6d3n5g3jhk1l5hybmpjhqpf7w0cr8f0w8kqwm2h7ciknc";doc="01r547l09fjhzrm19gi7xwrvhfglf9a0cl2v1ikncfhciy6dvjcs";source="1v9qsmqhb96b8p27bim3s71ybarygksifanwgl55vha0408s3zd0";};
 cinzel-64550={run="1v29lilvh6l5iynf1810p67qx2znxbm04wavj31w5q7rvnar81xs";doc="1j7i2bdbrfadw25ajkgkygkii3prybhp4qh5k8azbn7zpxl78q5s";};
 circ-62977={run="1m6siikjprch991sqbchbrmhvh2knjh3895w48wjp9par050cbgr";doc="1zmyxc0iz7ljrkklqdmpiax9alk56pf1i4dm6ljpyisd95blcys2";source="1vdj8qzym1ihkhm628zz99w6xwzhav8ci0vlckqpz3y91nkkpxaz";};
-circledsteps-63255={run="19shkimypq7gvl2xq6aniabkz941mkhfz3svjx2g1fngbm9a832l";doc="0fy0fa79jll629v9296pqdmmfg7jag7xj2mx9jc358xiqprjlx1w";};
+circledsteps-67889={run="0ybaz7hl9v8g0kx8v7j8llgxvvhaj40afk5fi9733iv8m0w3mz47";doc="03426fkcxcjszpm852qv1y4kb581gdkk109cyfy7bjyx8ihrxq0g";};
 circledtext-63166={run="0c4gas41ddivlam1hsfzxlyqzicclfd91arpa0s8kinlnz27bnq5";doc="0ia4m8ss2idvzhgp88cbaybrzld0cg5gijl7nzd9fc5xsmybdjsi";};
-circuit-macros-66556={run="07cbpxyawy44ds1vy6kpp9cxgv2mlh78i1wakzw30q0bj4rksw7b";doc="0dc3z8lfjnwxphrq2irpv5476wxpja0cmr77fadx0hvkxqj475sr";};
-circuitikz-65785={run="0yq3wa9x8g8s19wpqb40h3q4zf6idw7r7fakp5a071jx1zaygw9l";doc="0q17cbmayyjbnhwkg4pmhqmlbm1k6hzmlp258q1f7j0mx04fz2q7";};
-citation-style-language-65357={run="1idqlk90vbnrpfvcvz9zf41ksghbz3lvcls69d6qgmirai2psmg3";doc="1b2vqyrj7jf5vx4x3zjw9lw5lxa7qyq90vpmr9gkzmxpj4dnpa7n";};
+circuit-macros-69263={run="07cbpxyawy44ds1vy6kpp9cxgv2mlh78i1wakzw30q0bj4rksw7b";doc="183785rmygpffw0gb7mddjvswy3dbgp5yimd5ckxn193429il7p3";};
+circuitikz-69077={run="0hvm3zv86839bl98zcpakgx86za8ij46iayr7ajlr7dxncfyisk1";doc="1mxgja72j4fc0a6w7g9317asbgfj67l98fxfv1jz3a02cahyw1z8";};
+circularglyphs-68476={run="0d8hr1lns0973y61qmmz1hg9pc99j3w4x3iaqi0f0jlyzxc5j1m8";doc="12s7fkjlbbiica7svrha74zh3va390ay87bajjs0lgx6smqfx85n";};
+citation-style-language-68454={run="0kgq9yrwrzj5kv91wsiq050rx78a8q5879bq8lcskzv1wqkhi18l";doc="0s0c46516ljx0csllvvw84vxipwnhssyvkzyrrkiwzmxka9pw3zf";};
 cite-36428={run="07nw7axvgir19ayi3zy0b2sp8bb9pq1nl36x0wv3nrqjilvgrwr5";doc="0pg5fc41iwqc1y9m9b47nh48fqp5dpnjbx14ny7ch9irxblg5d31";};
 citeall-45975={run="05nb6pywcrhqi1c9xfzkv46j2fq9y1lqmqawi75v3z56h2v6c136";doc="1p54cr0khq72z396r3vl0p9qqn2k82pmx4pjaszlzhni5v54hbdr";};
 citeref-47407={run="05bxlkylmilyzvbl99nsw16saqjsqb4bcaa68qkz8m59wz1ji4rj";doc="064c9zg2rhnym0wy2kxj0617mwb3mxpc1rr13lqpwb1f1qhghm6f";};
-cje-46721={run="1vs4752d8c8jsj2yrrzk5xq43vs5sy4byp4fjgczlxas0vj0v9bb";doc="16vyabyjacg4i2a362nf78dp59r1dgyj3k5rcs13ilq62dy67ia1";};
+cje-68656={run="0v0pya3nyj3phrgy0vrh9psbgawp823li0gvhw84pp9jg0lss6vc";doc="0w5lrlwzff9vcb0l44f5cj5763x8qb17j11kmbxy5p7zxz0j3i9a";};
 cjhebrew-43444={run="0my3jp6pi5lbbhn24jn07gx95laq2p7fqk88pwic7wwyji097vxw";doc="09ldma056ipsamrd558z24k63p187ziw2bh8qgy4na20pp22wj0g";};
 cjk-60865={run="0qdvr0sq8v0vi1vy8aybhrk7fnvlyxz9x9m63npa3nfcffypdv0n";doc="0liy56875383hjdada5bc1ni6w6ikmzkf5k8qg91l0hbkxxnqfiz";source="02bnfl8hydbb8wn2d54nrd6v4p9yrr4f6hkinyil5jnfkq9mryyc";};
 cjk-gs-integrate-59705={run="0w396gn4s8jlaz95cc3dzh9xsjiywsxjf87qwaniyaihssssl4pn";doc="0a4m7r52czkxp7j2zd389f5illw18dngdj3rkd8b9qlp9c4bq907";source="1h788aq405c44alpj85lyhmlnvdslc21n6h89vx5dggdfypbq18r";};
-cjk-ko-63561={run="1fq0f5315863gri3zns7kr6sqscx0pmg4d1944i287qy3p4pfblm";doc="15992k7mr4jln4057mzyipfhm2f2k6fysmx986czwamjjvsjbq1d";};
+cjk-ko-67252={run="0kzah0dkaqrm5l9n4792sgmiwv5l42518q8hsxcq4big90va6j8c";doc="1pgz1x55knbhf5xqajcjqfkj1a0bfl1v4dvvgdlfac7s0z46pxwk";};
 cjkpunct-41119={run="0wvqmf60gjm5m7fcc2qqz14lfzxcrqci3lrla96hxkqnqraiyb84";doc="1ja16xaqfg5158155flfvayr39k7grij13r1r89g59va53mpsgrk";source="1pn85n7n4fp2p5pq3w66kb5zlnjk1bdz7fz4xsa6z31d5216j39b";};
 cjkutils-60833={run="0wl33vh7pcrbyvxy6bfcjfv0xnawp4gb76cmq2304n9mp2w8dg2h";doc="1kkb1lkni0d7mb5hcnwkpwbyz7y9w5iy0z6rgm38lnkkm2wjhf7b";};
+cjs-rcs-article-69006={run="0lg0d2igpd1dbm2cd9irrb5702mvpscqf12bmxn68y778wym6gnr";doc="1vvm9nzrw9gidvzg1ab7riyxs98nxwm50kd0ih2zls8q6xxzy6bf";source="06wqrj29gf376mxpknzb6j7aqnnx9b9gacdq1bgd462spz7p8za0";};
 clara-54512={run="19g2vpxwjjc3y88ghw8yv0abkm69x6lnjj4p1cqbdjiyy4n83677";doc="0dkqqps72wws7dhynan243wf86gxn4chn1v5iiishkar33xvvlzp";};
 classics-53671={run="1l5p09agmrik9dkhwghjg8qh407bjw5q9hviykq7kf3y006dpzky";doc="0xp87xj7328ipwq0l8xgxn2baqm9zmp8dqyhv1iy68k9wgqr2f5w";};
 classicthesis-48041={run="181s8s8yk6y9haxz66ks1v6wwhpff2vs7lxrc8kshg1mn26bya4q";doc="1nxj2qflzs40mwnpd02bnbnh0ndm8rx12mr1vyyy6v3sc6g28yn2";};
@@ -708,17 +723,18 @@ cleanthesis-51472={run="0wsib3c130m19r4z3ghipvgqvmfhi1cx86670ad3ama3rdmc3zpn";do
 clearsans-64400={run="0wd2lhl02svzxl099zfflqk94nhs84qb3b7wzb8adh2b8z9489c3";doc="1nrlrx6chgk1ysxcpvd1hb1qpagl3n7x9h0gzfjf0431bc3fxc83";};
 clefval-55985={run="1wdxl93z0svgg6h7vdhzqp74clcldxqh95yimqb190cbm6v5ll05";doc="1d1pw87hszspsfrl5c14q3c2iy1fkbh77dzldhajx71iqjfza634";source="1x7dvg6q0hy6pg05qpi2qaxw7y7a2dcfa4khddvbfcngp1dirrzi";};
 cleveref-61719={run="1d4qp3jl9mgv4afgdgcns5rr7agn5smiwqkmrasqchj4hqzwxhwd";doc="10wy2zndm51fy3d80cqnwsjxyczqjjffx61ir6ky3nkmiikiyypn";source="1qyyvn226dj4yq25cf5f7yzc3gx9qmxmnlnjijydgmmwam71s3xl";};
+cleveref-usedon-66915={run="0j2i293c13knmpv82g2b85a1y9003dxvizk073617qf312jb8bpa";doc="0kprww9mxfr45y311zky7gfhxvg5lrkxfg0mdkfgway0j2ljyw9x";source="093ydvc1mzkz0dds9fl107bj5mghdfjwb9kcfx8hw9ss9yg6bv9y";};
 clicks-64602={run="15v0yjrsnf4hqvmriffdq7x24cxk9l54a5s967nl4pqn1iavsqd7";doc="1givgqvm29fa1kvj556hfda3z1hhfzba2b7jfj46f8zsifi17s3q";source="18dpkhvhc2i7m2r5q0sp5m0zhzn1706zlknybcv3zxsnpcs1rar9";};
 clipboard-47747={run="1i9facsdigll3rzl8xv1i85cqyvlc54xhia69cv5cv0gly00p1dl";doc="1b6wvadihwglj0653bn8fnnq18whx2hymigvyknw00fyn3xjgvgk";};
 clistmap-61811={run="0xl0310x3wrk9lhwhbqnzi3gsvmbvk5smd4wq50wj691vmag9ivh";doc="116n1w0zfc6ad3nnq2wvjibpl4ywcfbgffax43vml5aixkpdlcq7";source="1cr6hbvln8mvrs6g8831153l62b4h1k5731s2d0xdm46wwmq4m3q";};
 clock-15878={run="0w5z1ffi25nabsaqh91glby7ifn40c9rhzxlz2kbyvbrdg6a3and";doc="1wp9hglx1vw8zfa182m2103xb0rhg9hmp51rc7bzm6fh3iyz52is";};
-clojure-pamphlet-60981={run="15q1hx198bxr5ip9ssfyf9wbccqrgwknijcbnqsm9mp082d0vc1x";doc="1fi2yxxnqlwsq3m66b75a16hpx4vs3imij175dwvjq1nvfg5y8cn";source="096whv58b2g15m6mzg689d0mp6p9yvj8z83w431zbg204h0kx0w5";};
+clojure-pamphlet-67201={run="15q1hx198bxr5ip9ssfyf9wbccqrgwknijcbnqsm9mp082d0vc1x";doc="1fi2yxxnqlwsq3m66b75a16hpx4vs3imij175dwvjq1nvfg5y8cn";source="096whv58b2g15m6mzg689d0mp6p9yvj8z83w431zbg204h0kx0w5";};
 cloze-55763={run="1w0wydk9kimnihll4r8nx1kp6fccgmhybxl3qzrqxk58x4imp3sk";doc="1pprx0mdxfn8gwdsi03ifscinnvj7p3w8nwir20z5q5121clss95";source="1ijnnfq0xrcnysc9sf54nc9a2xg42jqfiqawb8a5jnc62dx9zwyf";};
 clrdblpg-47511={run="0p38c8p426dn4i40wwhi5hisx3yc8bqdi7vwxdbya02smixkpp5f";doc="1l0avfhvabq1mm9yqrpr29ps9iks84j7mbfgrbrd6kfgpdpqqhx1";source="0iphx9hbs4ld49d24f2i8dcyjxaqgvxznq3i34ik2ywampr2a5k1";};
 clrscode-51136={run="0kk8hsrd8rr5vadvh58fdlzpz29cnpr5nhcl5il8fj466dw0igv0";doc="08wps3rkrx4isg7abr6icfj9pcnhpnpylnk3wvwb42pqah8975xd";};
 clrscode3e-51137={run="1f7p04gaccyynqm0wzfz8jinsrrwn6i4amc51s835gxkjv2d8gwv";doc="1kryc0ay3bx1maydfha6wm4qw2l9xprnhs3901qbz904l21yawhg";};
 clrstrip-60363={run="18ln2mlc8bhhf96kqawba5dqi38f5j5s23qmp5dmpgdm7fdanlqn";doc="1mf6bcc17ivcdvy36ash33bmhh9fcry0w30bfi96swjq17740cla";source="1dc29n1m6bq5rbpf66q07nss8iw9mcav8s1gzc56j12ik1r2sa9y";};
-cluttex-60964={run="0w5a3jxy1caaw9nav08w7ws9wnjj6bnjdrzw2y0rz2rj8xrf123s";doc="1a9clxd59gsn62hybpqsff0f9y9iyz4nxczybpk1kpva0m7w63fx";};
+cluttex-68912={run="0kzc9xs7rn8x4zh3z4fh45d370k5526mr81sxb95jabsry82vn7x";doc="1ii7hmn88h4s0va8f4xsndvhkl03csz13nrnn6jlzl8rj02lz45j";};
 cm-57963={run="1i70pxbx7bp7lzpd4skdymv1a7h8njsr42v8l8jvh4bs3gkmlbgi";doc="1s5jagrajx29zmpdbqc6qpbcpwgp7g4c3d59ilg4sgcqgd9n5v1j";};
 cm-lgc-28250={run="126k3nr39xvgbzjws9x9xs01rj738lvgpy9r2wjvalxqvd2sahw5";doc="1xffcgb60kvbg07hsw3dc6kzjqh907fj97qrrj2586b66asna5il";};
 cm-mf-extra-bold-54512={run="1l1cm32z8wcpj0cl7czqkhnwil3ail7a2bbzn70dnswpj0ka8k9n";};
@@ -728,7 +744,7 @@ cmap-57640={run="11ki3gqlk6hjbpffmi2zdlj0rg5z5drcx8zw9nc480mxz931h273";doc="1ykx
 cmarrows-24378={run="19r3r86vdlkjgx98dsf8c3crq14p8ljdfq6cijqqsvj6p4p6nfy6";doc="0svllk1cvjn1mw68yfhbd1na6grp4hlqbybqnmw7igw8ilpshl1b";};
 cmathbb-56414={run="03da7ak8q3qyvwnk52mn2a79q2mfbfk0bfrkvmjpqnlagw35qmbi";doc="1i54xpnvygfmwbvdnj5wwd2fwfl1y4f99afvs283lz1ki2857aj0";};
 cmbright-21107={run="1ypjv6wfj1nm6wj6laniv304zri75q9gaik95sxbz0wh5cxzwgr8";doc="05cwyxmh6mqj0xf4awhif1vvms0j1lmadd1fgil7b14l46mcd99c";source="1y5is2678czhhkw4y5nrg05qqfi3n7fbric9m6pszfkh4iw0ml6c";};
-cmcyr-60630={run="1fdsd6ks48rvbvg44ac01z89rbd4w887lg2f9wqca1byx142jg3h";doc="12bg7k2gf206gwlg89mqwfadsyznpwl2nbzcz2vrnvrh21z81s1c";};
+cmcyr-68681={run="1fdsd6ks48rvbvg44ac01z89rbd4w887lg2f9wqca1byx142jg3h";doc="0f2i6yzqy4lfh42y47mwqb9r4ni67bwgrrb7i7mfajnkcb6mi7rm";};
 cmdstring-15878={run="08wyaqfyjp482gwkwfq2xw3skazfzlv0nn59qri9728rmgykd3wn";doc="0236d4ngq70xrgsaxg0b0yqgcnq55blkq7d4hgw3sx6s6hkxfkn5";};
 cmdtrack-28910={run="0ygl30hj8rczxj8sxis9cfq419rscvndj5fwyrls3c1d2mnscizd";doc="03gp5n28lg10h6amf4vxamvnsr7hvrkhmscfcdf4jyp3kkkvnv4w";source="1m8kfxys9nh3xml6inyn4qyhqmw3h572lvlbh7g4z0zzqgiah3qx";};
 cmexb-54074={run="1hfslkscqr01dkgnckfcr8c04s053s6f8z5xk35lcgbqj1l7ygag";doc="1f6nrlnnq3c8mwsxz58pk05ginjkdjpgpnnw2alky20s78cc5kyq";};
@@ -745,9 +761,10 @@ cnltx-55265={run="09czgnx6jqn856sr0hg5j9azaxc4i22yp1dz95nn4s331khl3z2a";doc="1ly
 cns-45677={run="1b9hs7svh6zm22vw5zv6nqmdnmw453xv15gl5bgm4n3f1pz757wv";doc="0zdjgg2njgcf35jvbhkfgiv3b9cccf7ds8d50ga3v1ia9i4h9xq3";};
 cntformats-34668={run="0mx4rgzk4av74s906andw0h9ga5zl2c3ip0vi4q9349yj643k2q1";doc="0015ynn7mw1y8v14qckbqkvb1fn5xqaz7rcs6gid1n19f1qsbh6f";};
 cntperchap-37572={run="0g7211nljimm9a5fvry89ch4nf49xhad9ka7prdmlpj87h9ygas4";doc="1fmq2r8ssvp99ykil3aak8w301qvh4nldsph389m7qar2pviy1sk";};
-cochineal-62063={run="07gachpd2xz1npifg11mlkhkz5q1q5vmi5v9b35xvpk9a68j4a6i";doc="0qbbgri75qaw0gkzgzwdmvh8in7s74f7fmrs95czhcga0wdcjz52";};
+cochineal-68904={run="1b93yb0p4mzazs1m68bmv89ynlxikji27p91sxaf1d4r732nfrlj";doc="1qzzc9l27ymsyws1im8siada65xw411rbvkqaxps7qr7zwbrxn4k";};
 codeanatomy-65648={run="0pi4w20k4qcm3sbzpd2dsdpq6r0nblgjm2s3m2gclpmsybzmflp2";doc="1z9w6llgjnlmiwkz6ghv1cf2ilrfvj0r1k2c6kilsz4jcc457y3z";source="1vag4qaphfw0xrdl7b082iwj4z89x77sh62y05xs0f2bib9qlcn7";};
 codebox-61771={run="0s0145rdpqbbagc2klx2w5h6mlx4ns0qlllws31qbvy6byh65ngk";doc="1pj5qnzfa7725v6cixkznrs7yybc2v0ik9q2pxa4d25rpfxap524";};
+codedescribe-69343={run="0swllicbxmaswi1v5ks25rd8bv8isibbkkzsi78ibcbc52rg2vqm";doc="0adbg2kfhyd2l19dhbab0fa49spgqk44bga9wgnn8n8g7da6zvmx";};
 codedoc-17630={run="1zz70vp8ssblnacrqdsq9nwvf1lw69mlk9d94cfjc818szcgi9v6";doc="1f3i3vw1cmdvgp05xckr748kzbairhvdpfvr844y7wnmxzr4rfzg";};
 codehigh-65787={run="0nls47d5md0b46xi1nxydzwf79xrqh6ijj06h5n5mb4sw7w5qylp";doc="08d7vyn1s4gqhnbz7f935n96ay9hk7k41w8msg8j9s937qh7fb64";};
 codepage-51502={run="0kxf5zr3mhn5pd8pzmzslgnngk8gms27ax6cqn1z0n35zvh0p17h";doc="1sd01q8lzrzgk9v1dyhf4m7a4fspjll3w8wwkbzp7gc693xg3lm6";source="0b38lcswx2x1jl6ydmvs6yr1y0kiv6gdicnbrx5qs8xhwd93bcag";};
@@ -755,22 +772,24 @@ codesection-34481={run="0qp4k2z442idg0mjnancfskj0j0k75w327fixjgdq1kl9q6jm9p5";do
 codicefiscaleitaliano-29803={run="0im75yz3sw89ky5lcrcjhg6k6j4sgkjfn6v4srmqzcfdmn2qyx7m";doc="068234c0shvblzkcgl67a9s9whcbyjy3mjw60i8ljhs5z5wjrnc2";source="1vsb7dk4mlaacl9ls17lm4xdw27xzdgvng02gkfjvja1ja3cq4zr";};
 coelacanth-64558={run="07y3hgw3apkkncch9qcl71l5xaff8zqpgcwf8is7wz1wx173hafs";doc="0ylnvl6ya87aivb10z8sq2rw02q3kljdiddjfarx70mr1jzr2hma";};
 coffeestains-59703={run="1sfxi8zimkp76nc3fg7r3qyf628sh9p8rh2b8l0wq5aga20951n5";doc="097c2xgrgy95w7v5xb9lkgih65ji5jlxzdm6szdyqnf659bmibm6";};
+collargs-69284={run="1hiqc0gwligaalxacv7si4g7qnn06aq7c4kqf2gma01xw8mi61gk";doc="141glrca5d5dsi6azni6valbgvkdywh6isian3av7gm2wridi3js";source="0qxdlmf1yvjlisizpcpmxclbs1wxap1zqivvsxnycyf4vwf2wxj9";};
 collcell-64967={run="0f0dzdnmmi4cpyg2qfdxkdl83qrcsddpqm7z9g9mxfnx4lf86y3i";doc="0wyvhcw36arrgnwq7zc8vck3m37qrn7my4r6959p4i7zhpvsazzz";source="1k7s9rkbp829wlby7h1hwlv48bzxwwghcsnmlxrs7qnh374dwb02";};
 collectbox-64967={run="17bz2nh141yw4cffv1w6cdnxkgi6ilsr5fkzkp6h5glfibmzhi62";doc="0j9hs1q8bzm4p7rwiikc805khkar23722ylf00yb7mp5mvky8996";source="12llsyfksri5hlncmj3bba779jhwxxdr9zcck02jmrvx61d1znvh";};
 collref-46358={run="0q1g0x0bm0qjh568fp45b1ljy3w3jgy6s09ji1d1m5yrbs4dm7qn";doc="0vcfrdg9mqrfv2jlxh88g0nhpsrfwgdg9wjdn0l9b4c5h8zq030c";source="156gdfrd09kyxjiplcm38s3zj8v6bygwlpr9g952m0r72q7cq54v";};
 colophon-47913={run="0v8q22qxjrbc1mpsmfvdp13iwkjxp11cxs86h2b7b9rjs0cjxy6s";doc="0s2kz7q6nkwc19jyl32rzcbbcm7ykhkglanx010xfz08vgirk1pz";source="1z2dihgwd4vbk87n0hzpipm2359fwl1z13fjs4g9r5ys7iv36wsq";};
 color-edits-56707={run="0p465bc127rlm53xngrynmrxswzmp1xsivkfy3mj22h4ij6db03c";doc="04zfa0jryyw79rz9s1c0yzr1i8zla7ivvfw701f8la1rab7z6q94";source="0279n81xyiz4ipjbr1jdl0wipfy1lkl18jx8mbqcbwczw8k4fbn1";};
 colordoc-18270={run="1hay7bb0xh2n2j9clvbn5ayz3jq0yjaixi35isdsf9ysvj81rx0m";doc="14bw1g3dna2ykyv4fl32gvqjs0n75vlfpc9icdk09l7zhdspsvfn";source="1bssn8rjrp34nm6qhmzcrcn6a0ah9lv5n94d1jxqhhaj4pmimd2j";};
+coloredbelts-68747={run="1y4ds4n6b6avqaqbnj5yh369bnp1f0w4mhnzkjvibhipis7n11sg";doc="0svl3fr6df2mvqpf8gfcb2byj16hbf2szdnbi8scbvrww68jmldr";};
 colorframed-64551={run="1kys1kcq1j3c4d8mv22fgdw5l2c9ar3il8cc65w0lx4avbldw28r";doc="1xg0gbyh0ay38yk00in78q7mysnmlr4maxzv5lw3s88l0adykr8h";};
 colorinfo-15878={run="0ip7py03xrsrn40cgkl4dnj3q9g0f9fbw71c9rsg9j7vl82fdn46";doc="1185m34382n9rk6w81ppb414vl77kikkhwvn78aahlyli4il51l8";};
 coloring-41042={run="1ld6gknb8a59pkz50wlil5p11mnv6ss0zsjbajbw63dg0zlwaglb";doc="18y8apbkh7yqzxrzpraqhd76k93xnvgq5rana8lq4xh5z3f7skjq";};
-colorist-66450={run="12llis83f8lsp0i7gs52pbyjrw1b7pygx4vnw3i4xqmgl0jfgy48";doc="17lv6wkdc5vffdvx05dzbvxfqmkwbcqyizp0ax1s2p3y053gyayr";};
+colorist-68440={run="0wk7gllr4qmvmb3fsf9basi922ss6wvbnx44yxs0wladnzkyfdhg";doc="1kpv619xbwd23lm6i4dy90plnn6yh288alyz771qfzhmj1a7bvy8";};
 colorprofiles-49086={run="05nf7y425f8ric57c3afq7ymc7ndxcdahbx9n32jnaz9j3qq2ypl";doc="152vrbm5km4ymj5h41x8cjyypj06g4xq3vyvmgakai9qz270dvyz";};
 colorsep-13293={run="0nf72pf2bjn8pcps45sn5dcjf1dkrww9wlpp1xbzl1h9i68p3h3h";};
 colorspace-50585={run="17pahq2wh9vqwpkaqkzc3ypcz90i9qpmw7867qz4k8a87sp7wgji";doc="0g766c50w7xpfvqpp6lxjc6lm2cyr8yl28g7n357j1d1lxgnv0x7";};
 colortab-22155={run="0hiq8wgqiwxnw1gsrymshkldspdnizcci56ihn22h0hcwz76hgzv";doc="1cj84k7cl6cww25yy2lynjrbicn0qy4y09rh6dx2zq19972fggi3";};
 colortbl-64015={run="1zcxbq0sjmlixjg5vpp8s21acfnxwmip6xsr127jqdhl27mfn1f6";doc="0myxh9h2riwnbg8n1r5690w7rpvfry5n7brrnarpwrhc42hykcz5";source="1hwks6bpk5x9z4vqj63fwg2lzj7h8mgy3kk6601vynv5ck0af1gn";};
-colorwav-15878={run="18svrj3bfsa8m5q3hl5njc8ac2n1qw5lk01qlc45by8vd0y55s1g";doc="0jprx7kl9vi0497xfnvrswcx5d3ij9474iq2xqvnl5yhw4mz0v49";source="1wls4ixd2q85yawkm0brbwiiipb4avgfjgi2mi8ix1hwawycqacr";};
+colorwav-67012={run="1dlh3ipf98nq5m34rj7naafnw9hhrbljij721mw57rbhbpcyazgr";doc="05f91rmf1kpdkfl0dgjag5cq5xvcflihfi9xj5y49nh65mq01w99";source="0rxiqp1q49l1dlr2npbb45jygp487zhhzjx850f68bw5vq8wz9j9";};
 colorweb-31490={run="1rz9ay86z5bf8m4j5w5prvvk1nmlaakj3g0qfsrl0cdqk7hwsfsf";doc="0vzcwhbq1a6pczvrv21z0q3y1akfwm45fclf0857c8jvpikkzb1m";source="1z0h3l9gdxsg6lbw7j6nqhafxq8b8smcn4nmq7ywdzryp8b6fbw2";};
 colourchange-21741={run="0y8r7789xaj16cdmsz4q0zyq9l09ihgzzgk4alnggsyx1ny45ybv";doc="0zj9b8xcnjlvadams6a2z3pvnzjci5l10kran8mg79ncvzq386cj";};
 combelow-18462={run="0s14rmmv44js6vc2l8h7gb9f8h5w4as71qgxbadaxw641xfs0ys3";doc="0pwrqhd8m7c2444czsllk4sqai3i2scll94y6qy7m51jvjycyf26";};
@@ -785,71 +804,56 @@ commath-15878={run="0k3s00r4l8bypv1166p8jkdj1wrx4ar4w0y1fggmpzivqicc02g3";doc="1
 commedit-50116={run="00anqgix8vydq5ssblg5w5i8pziy8fvlva2kpwy5cjjiqgpprcd3";doc="0vvnkp8r0xbsyvzps4a20fr43cj2559cs6mq7jhja6jzvqqc6mic";source="1kzc8i6nmvw7xwz9fbfanabypissbm7hnmmgp2m8r462ywzpa79c";};
 comment-41927={run="14k4y4abv5mlhn1i8f90bxfymp9vz0aha4p2gql148wj2hh7h96m";doc="1589g0dah13lw4p18cqprhfnh1184m79ddrgvc2l22bq6vb1dsb6";};
 commonunicode-62901={run="0mx8nsyiy7jbdqsjc19sghifigg06is99sys3xg0rr451rxa1kyv";doc="1c3xabrgpmff2b3yfrxj7sbdwn9jq71xi2s0v6329rwjd6vifwd3";};
-commutative-diagrams-55526={run="08jd1dzi1y72dhpwng3p11vw8jl98n9h9npyypgc58n2djla8nb6";doc="1405ya2nynfbzrypjm7i9grp5k53nvrx11wzg3xy82z32cvds0y3";};
+commutative-diagrams-68044={run="0vkcb6gbzfa42kxdz3g77phqi6j614zpdp0aiyxqxvxs2jk7ncpi";doc="0hbb7xcki43274s3ssjqw976cv8lmyn1gd4rlx5gnvc347r2clrv";};
 compactbib-15878={run="077l73vb0rcxy1n51r3wmcb7gma6nn3xrl543a67n96lpp5xvnnk";};
 compare-54265={run="0isr7gmskv55cr4f1fa7s478v6fh65q9ijxkmbpxj0448g9817w4";};
 competences-47573={run="0hijar81j2jpwk5j2hrgaxb1fnbk6qh2qb0qbbmhsqrdrfcl6xdl";doc="0ywq9f2a1fb584kpvzwg8b16qc7bpcn3dzsscs6ndqbgcy0zc2yf";source="01dccp2wqdy52kp79n099v9lh1vfambg0b63amq37ac68pwn3qp9";};
 complexity-45322={run="062xi5wlg3axhrzc9a6nj068z7nskb7qwwk2wr0fzvsflqa9cp0i";doc="0yzdyn9j1jk0nsw0l4r06cr4brhz1f3lfxc918zalx6h9wnkxi2b";};
 components-63184={doc="04yg9hq0wcyi1ag9y9m2fnf5h3n4fdykiwljgpw0kyc73bfyhq1m";};
-comprehensive-59099={doc="1pa76hkxfmms5h6y6zyg4l5wrspprhnycfdigby8302srx676vhi";};
+comprehensive-69282={doc="0f1w8bxqapw3l0nywdd36lj0y10miqvzzwchxs2swgjlyxjzbspj";};
 computational-complexity-44847={run="10as8msnqa06dp3hp945m42rgbaqsja8z4sc79x7n77z6qzmznvl";doc="0dq56zzw1xzzpm1rdjkqwhr6v93xiv00c1g2rmlmfj5dnbzng7wq";source="02mapvsz8j1979gy7pmwkdr6wq55v0al71ffl9bi2bl7f5nsz0vc";};
 concepts-29020={run="18vjncdrbp7m7m08dnfmk6sgv79jx83bc4yvvcqb0j9mn9niy1f0";doc="1bq82dgsl6gqnrs88dzg07dn4rmc4y5by8122zqaqpdrpjxhnvax";};
 concmath-17219={run="0m98kyji3v4gg1a30phmn7fwssnnbdvyjxvfpl36lnljnicpg28l";doc="1392wq35zidk71vxybrwjq79p2gf4spcv0qqb07dsgapbhr2g0aw";source="1zn35da4jlplqg7fb5ibzaah2yh1cwjqvzmx45jxg0hnsc7xmlfd";};
 concmath-fonts-17218={run="061kfzds7clbxyq62ilxwcrdkfghi2lx8afik7vi9gg0hysbki7y";doc="1x6wb92k4da01sv8b35p3bly9hj46hh8k9wr22m7lj3rxnndnpcq";};
-concmath-otf-65683={run="167dw3vywjsi1mqj825vlx7j1qagqkf1dxvrz4nadbx4b78dccdg";doc="1jw4p56ign31ks5cdmay4fd1h5s0p3plm7hi3m5a0033wczx0yqr";};
+concmath-otf-69005={run="1ja0j5i4alkw45z0gyw61vk3hx2lkrhcgfnmy8l2nm4kibif04k8";doc="0ynz1mzciljg3jiz6wpdwda8xrpnimdfpbrf00pm4m786cdz1hnc";};
 concprog-18791={run="08yr8yk9gp35d0nvh54ysgv61s062vj446fyb87n8jipfm49mj2x";doc="197p2bdn1rqmxva56sagvb1z7kc8gwxr9zf612r6g8yb07xg5riq";};
 concrete-57963={run="06m8d6z5z3dpj9i0nvp50g6pn9j0m4n0n1j3w94nml137qghawyg";doc="06z5hh9ksr9jpkfchyh2zp8b827klb4v282ipizrm1dvlv2r1603";};
 conditext-55387={run="0g6clck3v75yvg7gv42w24zv18vi5jcg1q9k663cxldix77lkgbc";doc="1qc7w7xfpxarb82hf66f3i63v7ypdybqwg5g3j8qswj1a39cy1wm";};
 confproc-29349={run="1s4mv0g2x5mfxnkp0i29wa3ncbx9fa05qqf734fjppdzsgic079i";doc="021kbis3c73gnavrjhqa34fsbq5c94lmjym2d4ny2wpk9xagh994";source="0dpghxh9mq2sr7aqgcj15h6b4xh7x5hvdzph6606izpff8ac7h8c";};
 constants-15878={run="11naj0z8ppb6h07r7cff0lcmr8zgc29kp3x7spi60zi6cq2546gk";doc="1wgvq0x1kjgd0bs0024fkh7wis9aw9qryd7y0igrbgdgc722pjnp";source="01skagh044v62vw12kmibgd6y42z5r1glrsvi9y0h76vs52jz7hr";};
 conteq-37868={run="1h7b98qw9hl73gh4zidy59z4rly9afnvmah75jgvh0k1v1hm09df";doc="0kgdggc8gpd1h7kdbh3ala5kz8rs56bgmwgv9wvxsqx4sn19q2fy";source="1y0g7sj696d6qhcw8vrpxr8gwik54slp7lijbxz64ksqbw5xjqv8";};
-context-58167={run="16ba0cbqz8w513yijaf8ka9zinzakgvbkpibhilnvmlcsxzcqsk3";doc="0r15aa12cm049ly148sd48vaigqh1z9mbasjf8xc21ravq08jq16";};
-context-account-47085={run="1j1rvgcznn8c637dayxpdagpwjq6fbn52sjmrb0wn4gd4b4q3nk8";doc="0lfx6aa235jx7sz27qh0328n68ra3z2bw3dsh5p2wzkg1wxbaa6g";};
-context-algorithmic-47085={run="10rj0ac7gqzqmqndvapnhn0jnm2538r5bzmhnfqia259qs2p0qj8";doc="1s84vb55yhxlw6dvzrs4y6bf2cvwp6pp0mhy778k5zyzh2kcfzqy";};
-context-animation-47085={run="1cy0jc6wk9kfxahndf82wwns4dhn1nbrxqx8v5bfb57m23id8vff";doc="03mdp7233r9snsz5g43h3axyhcf4vgpivfhfv4fy3vh1ya5fx8fy";};
-context-annotation-47085={run="1c2jgc8r9b0inqa5cslmxhrqzh23jkdn9s9xq1q3v5qvlh4vcn73";doc="1a9ba8l6jl7hjaiv5mmf5jvsvxxj0y6j2s222qaqa62crcbqc9g1";};
-context-bnf-47085={run="1g8gdrqaq2iyc2aj4a3a6abs3vkcbkh44y6mnbjq55pl45ja8wp8";doc="015wnsmz8fyshyrva3n31iz6hbifszi6cxgixlq17nxkpcnc5899";};
-context-chromato-47085={run="1qf3a4p63zs4sr5acrfnmxdagf3x04l7rfd9d7pfcmq261fqsy3z";doc="1w807zh4s7bbsx16v3h5gqc1wg9v92dkg9anysbsh1m9rc6hnhri";};
-context-cmscbf-47085={run="1l8c4jcrwmsacr712zql2rp1sirjn0dwbn2r0w83v4fhrpyfifl9";doc="0nim43d7b7bv8xmarilzhm4al3lngvlf7cwazhkwpg80zqzavb4c";};
-context-cmttbf-47085={run="1pr47vcz2ix9s3nvmi015bh2w52gayf8962c025vhh9brinxdzsz";doc="0m71dv1rj1dji5skq2pyvlkq0sz3w9lyhn076nnmvjkq8vh9gkpk";};
-context-construction-plan-47085={run="0q97h6lz072gfbnlv99r570kkba82qyx493flln24rrs7js5szmj";doc="0pmvwb3dax78wa6v8amadxr36fs68wf3rq5k54sfczxf6k93sbhw";};
+context-69131={run="1r8gkrrrq1ps1cp058m1jv8922zsx3hw6c5vsmxpbwckrp5sirwh";doc="1nh2yf7vb800cnnmzic5hmy4w5kxd38y1py1xjg7madphb9zdc60";tlpkg="0vcs8ffry2jpxad68sk0mnc8p0mnxifbimsj227lkn3d5cxkrp9j";};
+context-calendar-examples-66947={run="0asc49mn24ql4fk73089viy3s6wff865xk8af7h67ffsb5qjnld8";doc="0wza057wz18yf2zl1j77hddzimwnraw5wg1579ncksywvhnmx3rp";};
+context-collating-marks-68696={run="12vqvbp7ns9r5nc7p7nrlsll3jp3hc4xi9wjyjq8lrmd8ly3v26w";doc="0nawd3x4rl73s4mhpq2wd1sqa8i6k2n0a39sqcaf21zx99mpiqp0";};
 context-cyrillicnumbers-47085={run="1gk4ncbfzilj98s7k7s43k6vb3il511k434aj34fsvqh5x9x4aw2";doc="0f7r9qgfc8h92jprjqa24q4vpz4bqrrns3glhmwh3qmk1f2gyw73";};
-context-degrade-47085={run="0r7bgy2fliqhywgqc1blcabmhjz3g0ys1rfk8mggkh7908lvvlmp";doc="0d0fy68hk20az7vh2z87h76hc8x1hmgfl1r5saxg54l20a31a96j";};
-context-fancybreak-47085={run="00zdyzfb70fvgrdna9z4958pxhmjv85jxl5vhfryprqkrbw05pr4";doc="15igbqj52g2ybpykqzkzm8b9gqayccip5p6srv30458zmxhci9jw";};
 context-filter-62070={run="1vj8kimqsmn9xhkh22pywqbn4sal5gxpxjbcbv8xmxcrby02gsfn";doc="1f6phdqxgvdg9c6f37m654ha6i226d88i81147h9x6sh01i7qd0b";};
-context-french-54215={run="1wdn7ajvmfj413x51v0zcnbibr4378s1sla7f097xllak9iyd9yy";doc="1lyi3hwijhc0jl93ygldpjm44fbiw4c7zky2ydrm4s56l3di2sil";};
-context-fullpage-47085={run="0i7cwd0q9fcdnh58w6hgdbnxxwv8g01nk33j7naqwc0f087az7qn";doc="0pyhpp94adp1rfn7pl7fwa03n119jp455y1brmsww9wfpniz60di";};
-context-gantt-47085={run="1x3glv3nanxic9p0xi2dqz6k5awwbhxzzfnj0d9sqwkcr5gfa8h0";doc="12wbzw4j11fsx412qjjy0g36hq6db7f61937s8k8qrqpgpfjaz4n";};
 context-gnuplot-47085={run="1pahxhbliz6fsj2va5pgwcs55b3rhsmfnjb9qjxkz3gqzrzdkfdp";doc="0l0qp9c0yvdrf8398wyac98ghrdc86lxgzr5l327gmgnk8572gxn";};
-context-handlecsv-51306={run="1xx7jq1lqzgnm4jicc270g884qrnsaxg2cc86r2zh5ar584qv9yd";doc="1frlxxqd93p2dipsvg1gi1g3l4b57wgwz9j5r2f31vn9p6dxh06v";};
-context-inifile-47085={run="0qakf92qk90nnqnvvada10z6r49dsjyq25mcyd1742b3m64blvd7";doc="11ds2hvs2mx7xzanzpj9il4piiqwhqj6gc00r8g618m0s2fvkp5b";};
-context-layout-47085={run="0j7f5krz8n3192z8iysr7cc8hz0v1zw2gidd9ag0l3ifxl570hn8";doc="16ava246cbx60q43brkfgbfw1vbyszqv42x3k027hlzk3hv4vahr";};
+context-handlecsv-69186={run="17sn4nq1fn3868xwnlg71fqx8cjfq92dsiar091635cl72f4fra7";doc="05svrhaz23sb11pp6kk7lchcykx5b9b9399368k7pyq7a1p4w2sk";};
+context-legacy-69173={run="0j18agzfhwwzbdnqavphvrp0lpji2bv21qh28kcvzl269mgjgbc2";doc="17wsgg5zfx0s96wm2l9zca060z6p3mj88hcrw07vy44imxv3gyiy";};
 context-letter-60787={run="0bnd56v120h3c235n9v2h6mzvmd6fy1g837gjim5fkkqd7jyzp2q";doc="0l4vgrpha5kx2990kdk4pdfljznlczlji0fxqsxs292yb3yy5a4m";};
-context-lettrine-47085={run="1ab6hwgnl4s1524li669sgn06gsvgc6vdlxajnbxj7gby4qh9fr2";doc="1x2plp67i8ayw7v3nxf9njlj6fpwy0vvp5cd3k3vp9y0qf6is6cf";};
 context-mathsets-47085={run="11r30c6lpcvkx7awgm70cb5darl90fvpnf37hj2mb7h69d281hv6";doc="16qckniq5v52m36m05bpnqypfz2jn4430n5x5zazx54j8makv827";};
-context-notes-zh-cn-23171={doc="16f2ax1vwz0cihiyl9cg0hsgl1la6mgh6lavw7zx1x0kljz3ajl2";};
-context-rst-47085={run="1lcxad4kjhdgqny5qcvwdd968wkls96qjmi7m8yrla0nmr44y5gp";doc="1k31vj6wk18ccrnrhw46j98i19iprjk6h770a2y9w6710zlw3pdl";};
-context-ruby-47085={run="176si5c7a44r7j23kp5sdg9h7yd5dpf1pp7rzivbhhgiwqinx7r3";doc="1mnzdbcaccdylxc47s88wpq25xj867j2p4rziw5w4pbvk88h8a02";};
-context-simplefonts-47085={run="1kfn5dl43qg64f2nx319xgxyl71wsxq1mvfxr20a9f2w0hvkvwpp";doc="1wy9qncb4swqxhgi263pv1d6f62zsbvfl9lajf0jljvkb1888167";};
-context-simpleslides-63903={run="0jmcyimv4jfq19lisi43r4zxrzdfwn32ivy5akzhhp1amy30927x";doc="08phplrvn6xbfh19s17r58cr2jwx88ism2qc28rkvy3pfym4hh25";};
-context-title-47085={run="1vpr86mkdd8ib5vvdak3kn19fi8vxz1023ld6axhwq4x0cxzb0ll";doc="03higvjmk1b400flddaxdmk5pkfq6vz6445q53qw86px82g17may";};
+context-notes-zh-cn-66725={doc="0pdizaybvxvzh19451x90mj81ql98q91f6cj8mfxwxa0mci1b9p4";};
+context-pocketdiary-66953={run="1pm8zaypfm575ryq0jzpnwf5p9zjg7hzb6lnc636cf16y97a1vkw";doc="1yy38pa4m7bqfb0r1wxj1g3zdmwzgdil35g2lw63ww15y03k7w0j";};
+context-simpleslides-67070={run="0dgmix9w576vxmffbm4digcp00vvdgmdxmxwjzrrkici4rq31w79";doc="17djxi04rhg61fjcmsz4yjp7mnc7g1fbfb9mmkcf7gk8dwzrvigf";};
+context-squares-68545={run="0x0f2f3mwqyxaw49yjkyql8hk2mck2kq2mm842vpl9sgmrgjb8d7";doc="1d8z2l8r29c5yklfjm60bvdm8lchp17w60qr38gjdpx334bshyy7";};
+context-sudoku-67289={run="0fnzvzpn2d24hdi5g18f1mpaqkyrcf8kvkprqdz1jvlkqld82kd7";doc="0dqzxcljl1mn7qs7hk2pahvc5791m4c911j5dv85fwaladhjv9xb";};
+context-texlive-66924={run="1fg95ihx4wbm38j4rm4p6vdaiib6n7lcf43m444r4nb5flbrbv8q";};
 context-transliterator-61127={run="137wjy0whfbwp95h4grypwxld7kxlx9h6l3bkd5bpfnqhg70j05d";doc="1snnrk0h6pwg83qzsv6mk3n5fmirk6rxjih43rcs290amkx8i49z";};
-context-typearea-47085={run="1m33wbnajm4s9x098a72xsg38sil61slpp1kk25f9w29vjrs18aj";doc="1sblwx44pardqrp265xzg5hjpiflgic7k5xfai0q9nga9qi56n0l";};
 context-typescripts-60422={run="1vvhd18qd6vka9rg048arpwn61rqw3za116k2yqfy4lnp2rypk0g";doc="0pll9scpcsxzwgsy77mbpw4s0yv432h5p0av70kr81zzskfxabxd";};
 context-vim-62071={run="1jinagfnv3aghjn8gsack6zl9d3rcycwqmxir5jdjhbw4r66yp0y";doc="0gc1m894ad0y8l1vis5bc9n6avg8npzlqa4xr20z401nxhxmbv6h";};
 context-visualcounter-47085={run="0n20r8315py52ghivwy9kh7g7yj4ixakmkn97phw1fxgz21jk6qg";doc="18ncq5d4chmnmxmhazbjh9ypsm4c3577vgcmnx0y1pmzgb2g8pn9";source="18yyv9974cxzpw45rzw6ia2jamrb07bzw6gqchdprdjs0xmhz308";};
 continue-49449={run="0vwz01gmbid6b2aj32qnz1xrlk9h0nicjv9ix1rvqdad20m1i4wa";doc="1mzsj70v9f6srmc8ja62pph9j67p644hl54fx6nyahvr2h9vdik2";source="1q835904qai3r49yi8hrfxkh4bjf6913qs5fd2dv7myp1w93j5ir";};
 contour-18950={run="0xb8a0y3jazrq5gxfnxjl7qkyaqjnmyhjshgngqcsrw2sq4j4li5";doc="03rxkl9vhhqa7gpigar8w2h78qvx4k68chhf0881ws3bm6lg15sy";source="17sfl4npipzgc7jwqx740nny7fnd8bv8k4vav9ds765ky1xcs521";};
-contracard-50217={run="1qvpz8ybjc7yx8zx4kzcpjchvxrb949rqb3905rhl61shpqv22hm";doc="1jg8kgp9wvxksjz9kxyh3qqxhgjmalkpj8y004qvrxna2r2idj50";source="1v6ffg84czajnl6p6a1j8khnfmzssjkhbndz5ajkww64iiw060i4";};
+contracard-67201={run="1qvpz8ybjc7yx8zx4kzcpjchvxrb949rqb3905rhl61shpqv22hm";doc="1jg8kgp9wvxksjz9kxyh3qqxhgjmalkpj8y004qvrxna2r2idj50";source="1v6ffg84czajnl6p6a1j8khnfmzssjkhbndz5ajkww64iiw060i4";};
 conv-xkv-43558={run="13clac7dhg2p69ccv2yjzdh64yjx02y0fb0imx9lsd0knnb1j3aa";doc="12dln1r2qyadxr4cy3xbwn18s5y8yxgxid22wpb2i42n5qc8j1fy";source="02hz64vbcy7vg363vb86vydaa29g5cgji2mfpn640dgmqq0s91vb";};
 convbkmk-49252={run="1hb4ahbgihnzqmcszxlq67bsiqprrxa9vf25q8yz31j70sg7s18r";doc="1h1iqcc1rjcvwg9p7xg5zq6sj5bi68s2cknsbwr6dbkx25ihwi4i";};
 cooking-15878={run="053wbmf3xrhwjxp77f1myfvz3f474kpk626p8gds939yx50jqzvs";doc="1db5wxixparr81vanwkvg097ll58fqpp3qkh0wz7mbqjkansp6km";source="1gka18njp7ipa0jp1527mhig43hhvz5bcdpvs95c61cvjrmwcdm3";};
 cooking-units-65241={run="1ainyz58nk9zyfg4isfgjk3g8gjw08ri8d1x9kqnymdyplxqankj";doc="1r21szkygn46i5263k6qryb1fhg9va71f3dcqxw1dh3f8f2bpcpw";source="0cvfhbr7zjcc8d5r453wkgmvnqwmx3qj0gl606sgrz87zhzra842";};
 cookingsymbols-35929={run="0kz8aaf7bp0y2ph0iia5lkrxnxch9r63iy7y4zpqcawh1ajl10ji";doc="0dws0sdcg13jpz23zvkw6vfnc34qc1s464nm2nbdybhjwc9gdbdl";source="1l1jkd6mcxdldvjyk9myig4jsi89mg6n4ab6ymq5lqf25d260h0j";};
-cool-15878={run="1lakvsarqhicdcfx306xp94m4hsypdabr0fggakqv7adcwmd734j";doc="00mqaavadqb2m2rf8j00z3dclflk191gd70qb1674pyd0a82z2qv";source="12r4d15nzd3r1dxnwz7vzgmxgpl12gkq88hdzqwnbpan4y90p9zh";};
-coolfn-66234={run="0iwgh259hsxyp6353djl77cv30bxbsy59qaimbi8d6arr86i8lqs";doc="0m2zwx99hfydc9ksbf26nbziv4v5c26yjg7i8xdr5j800b95iw59";};
-coollist-63523={run="1lvlji0qsa1bmr0737ngdkqdbvdxfj3cb7kg4lhy9brgjn229a0m";doc="11p2s7wjrjdpzpgyhn4jnx4d98nbmbccbn6q1b8g3gr8h4mqvdnx";source="026mczfnay1w8m8wspj4013bxd5xqis1ny6g6ifsyl1gb0665gjr";};
-coolstr-15878={run="1ivmy6jmjbbbzfakfz5ib58qg4xd2pyka90zskzcwzf5a87r22ih";doc="0pb30nqgfijdkgsmddb14n6aviz331wab2cd32vpqsb9jnc4rz3d";source="0fakgk7g7c9kkgd0xdm9fpcrnx7jsczddbvypwxkppll2wfsnamn";};
+cool-67013={run="0sz3n82js8fq7fiffyb53ib1y49k0pg6bkbzgnzsk698y5w34v13";doc="1gpa5im88apgfqyv1l9g4mcmw6fmryksbx4nbldwlwxdvkwfwdf5";source="0ds25c0k113w365f0nylliiq1h76i753lfkccbbibs41rp2kg4p7";};
+coolfn-69007={run="0y25dmrbax6wxzlrqmp1j3h6xnvvk0ls4f4rl5a4a3hi167yqrkn";doc="07xjbc9bj6chvjqv03p1c37bbqr1fjpkq468sx6cp0q6p45z17n9";};
+coollist-67048={run="174l3x19lajwfghixzxjizxwqj8z2q9rys9wcly79gs8r3pmbxwv";doc="11p2s7wjrjdpzpgyhn4jnx4d98nbmbccbn6q1b8g3gr8h4mqvdnx";source="08196xxbx6fvhic3a9p8bwrr3ir4v9ikl2vj8z97m9zryrzjv1i3";};
+coolstr-67015={run="1ky8l5g09cj6731i1x7fc8chp7qhpc35xcinjrajjbzfjr637pk3";doc="1aj48ym4rykbz4z5rhfch5cfkyj14x8wngsvwrhzw0m58hpfpn4a";source="0sxdiic0xcr148841ngzdmda4bgk9ningsf91ar517r2hfh1178s";};
 coolthms-29062={run="1z62gl39f9cvmwap70q05jml1657jxg7lvq81rgqh878z63d0rzi";doc="0zqpx1c0lcrkp1zpwl776hd8gln7i5f5m5k5kjhcwxwngd8w8df0";source="1bir9kbsvayk3xkchg7kjbwqkhda81vay9d70hmqxgwpa0l38j6x";};
 cooltooltips-60201={run="1apf2qvfs606nqnnps2rny9ly6y0hs7yv8injrbbk64x3nxk86xr";doc="11qjqqicakybmnqz4vx5jb0cqsj8gw86rywj7ycvg96s93zkh12i";source="1spsydk6mn3qzclav2g2al20sdnaabz9b0f01gq95w2qygl26hy6";};
 coop-writing-61607={run="123rbingcrgjg5dyafciwz8wm2bpl9bz9w54pi2jim87lgibnf92";doc="0jqrf8pnpsq8d432s7b3qva93ydf8gng18fn3drfbzsvb4sqaf97";source="0yhynaxvvhfhnx97p5p12xf66zng989kddlfw9pp6sv5alxfnvaf";};
@@ -860,6 +864,8 @@ copyrightbox-24829={run="0n9z6dngf0z98bnzn6nl8yvy7dh1jmcdbqfxnzxarxzqq16f99ch";d
 cormorantgaramond-64411={run="1jdqzw1jd0r0qc4wnhm85kg0nb92dgvwnjyqlxz67lb9wgwddlk1";doc="0j6gq9xk9p2m8kwqvzjsh0s5z9x4q6v8klxygdahwgahvd0n8dl3";};
 correctmathalign-44131={run="0dvgaqy8pkk3plhqlxgkxkiwyhfzwcyn391grbqv764mvh4iar69";doc="1fd32yzxj3l4sp5cp9rnwv3175jz5m5hxwlfm10x282g44l7mjid";};
 coseoul-23862={run="0wqxvh5mnrl59ry0qahxzlfajgpp0yj27h0falxnr4m5iygv7699";doc="0l3z0fxsdlln0hjwkxf9ka9hw8zmmixml9lfy4kbrn88xq6z62yw";};
+couleurs-fr-67901={run="1479gy549yj0xla35f7ryvh7vkxppisvi4kz7ji9v2219hx4vkg6";doc="09fh8d9bgh0gmabiq0d9l7flkk46w8yzqksnfygmbprib15b65ck";};
+counterz-67335={run="1rad8irarp20xah97ppzipns4i2v3smd44sbfi2jy5dc0qibw0y9";doc="102axl32lgrdlav3fyzsahkcikmapivydbfwm3wkib624i1f1h95";source="0f8gspf0m2b78fr0jq7n4s3y0f80l1pc3qr1rzjfs6xdrg1nv633";};
 countriesofeurope-54512={run="0387czqiyawxcjqh22czyd8f7y55kcrscxmp28rcm8wqqdh2ra0z";doc="0h06f5rpizsdqddqdvvvh5p3nhm4y5aixjnxl8s0b90wpcldwrpg";};
 counttexruns-27576={run="0qmm8902apb9ks1ik1dxmzb3ivkivpj7a8f8mkn5xdyxbnqvm5pq";doc="0kpasflvbal7x4r1ni3jf30fh7w6wi68109m5ajcjqrjzxkpgmdm";source="0840fyw71mw3l5k5g01wd6hn41a079f83wmbyg64f4yhgjdjxjnf";};
 courier-61719={run="08g6lm12b0k6333pxcaqdf67v87fz5mrqp3jgal8qhrls5ym8q6r";};
@@ -868,18 +874,19 @@ courierten-55436={run="1maxj7wsjqh2ni75pjpzsbwh1f9abndka1ilaiwik1c21kgb44g6";doc
 courseoutline-15878={run="0mwv6bslzgm5ys4gl32mxcw42gkpzwkzrvxk6934682v85qi6f4k";doc="1k135zma8aacd0mf6l5v4zac2blqzf6z5xa40094by61455x48ha";};
 coursepaper-15878={run="0n8gikcli14inz5q85n6k63yg6dczlpi837mbxrv5552hqzpivwv";doc="1d8k6yj45x0wx790y46b46nhjb3zvv2ncbkhlzckq71fsi5ayp32";};
 coverpage-63509={run="1739rmdrj07q8s9xpxarwwds13hciyv3q41p18cm7md8qrdd74xk";doc="19hw1mx7ghigybh23b8v65y0zx28p9armynkw9s7mgpbsq0wld32";source="0spllq6j5rxqc6a96x0dx3n7skm4gqpp6fgas9vflywiw6i5vk75";};
-covington-64241={run="0d6v101shdwsawc95mnkm00ldxsnggwial5j7h461hf9fk4308ck";doc="037g5492b8zid3fwdbpn515c1jzl1xlzl6ygwx1r93ascrwhxgam";};
+covington-69091={run="0imdahq466zkhjnxgnygyq8s3g2k8qanm8v9k2z2fcp0hjwz2rkx";doc="1qlxm07hw1fbch6acl9rslqsl1vh1h5sf41qpmnfkwy654h3iqv4";};
 cprotect-21209={run="016z5zz8njkk2cra768jlh2s9l3r4wmn50nk3psmk3v0i0cy0197";doc="1wjyrb0z85yighkw9a1pxxwilp31c5fjra7y07y0v1z20q6g3rlm";source="0lrf75hvlp6jpwfppkj0dwv7a9q51n897bwrf3gzwswb7icvqnf2";};
 cprotectinside-63833={run="021581zdl2c4j6crp9cnrnvxpwdx0jhhx5ab2ax7016hzsxff8la";doc="0m7hhy2wlagymkq0ckr6yhiav02y7b623gd47wkk75f48rm0lbdc";};
 cqubeamer-54512={run="1r63ahd6m6ll0phqaxc02hnbrf3f6xjdghrhn7wdqxnf8n9k34ff";doc="0rgfjw69is9i06blv1dr2ki6d8lgfwg3w57r3620r7yffj7z9hpy";};
 cquthesis-55643={run="143w42d3xw31dy8wdpqx01r8q9vs2an1ixnyil8n0q0af29j49bs";doc="1b7k2s3ils5s5yb3fdd6h0is494pss7s76awfn3dj6yxiaps5zvn";source="05gypg8zsdpfhp11rk7nii2vdw4rand5lw6ijkm23lbq2b5nwvwj";};
 crbox-29803={run="0ni16ldwni2gyzlivd5ii2fdq15h6np4mv73raa5g76i5rw42sbb";doc="1yk96bajna3ihvyhx482jrwiccbmqdr9852w11x00xkcvvc6azfp";};
-create-theorem-64104={run="0jrrf47vp7r5alw9lq1b0hi0zpdkx1hlws8lva2jkhzavyapcmmq";doc="1j4m710kzvawd4zvppq4cr0y3bzmprb7ps0rz37g8spcf78c9x1m";};
-crefthe-64498={run="08x2xqdw5zf7kbsrhjhg42m4dgins138r3fdx9jjm55smlz7c68d";doc="1iax200inrsiq5xpxh3mq6za6gqgz75zbnbqy8iirp568ylb1nxj";};
+create-theorem-67712={run="05daimn1g2v9i0qxp46nq23m7a9hsrpsqfgx6f3z4c6jbcwnmqj7";doc="0bsff7sa7d12a7lbv3aqhkj6mia3gln8zvpc291d9kvb3fnnzy9p";};
+creationboites-68087={run="1mmj4xavpaqrim5w3cqs0nkrfvg23578nas2ndnfvy3zgjywwxxw";doc="0xsr0nvs95awhdjbhfd9baj7cchf3fx83f4cv5r6sb0l4lcwg14p";};
+crefthe-68813={run="044lg08mg5d91l25la181x4l449mgx8cv47k4nww9yivhzqv6nlh";doc="1i891qa4lyhzhpnsfz1hswn3fh7i1045qiysynnkcbfai45f6y1v";};
 crimson-64559={run="1k6ff9fb5isv2mfm7zvnqziw1rlbs8qmqrlbixq33nrab24kb1zi";doc="1fmfghyxbihw6ggf4x2scx2g7464bwqy0yql38m4r0vmmjmzi34s";};
 crimsonpro-64565={run="16jz8i749gk7s87h2b78nz6cclmgvfn35kh3869rsf299y4dbkx2";doc="1y8qngb1v6paqr643kh8sdipnp57lkbqwbk62r8nrxps2cvw06g0";};
 crop-55424={run="1hnf65q6mg5fq75l4g81zvp4qqdb092zb41m6nl3zw2cvp8gal23";doc="1w6ql3bnghj633ar1zwbv580py4f1fmdm4vk7pa3q7vpnrwrgh5n";source="15fxivp8d1xww6j5nbfkmsb0b2c2ldmkdy3ikw3m6jjk269nwy4h";};
-crossrefenum-66032={run="04zx8gwgzc76fsq6kmqy08gak2fqjl5h7d0d80lr5yvmq6aj5a4f";doc="1lsymlry86jnzjifjsnwz0swmksbv9hfdvjhy2i476i2ayvpdv7k";};
+crossrefenum-66014={run="04zx8gwgzc76fsq6kmqy08gak2fqjl5h7d0d80lr5yvmq6aj5a4f";doc="1lsymlry86jnzjifjsnwz0swmksbv9hfdvjhy2i476i2ayvpdv7k";};
 crossreference-15878={run="0xc8d3g8j86dzpfxzfcildiyk8zi2apc9af88v2zg6zjra6vra1x";doc="1iahzjwns9zapa5y7z6yy2wjdcy6qiqrqvp9q9v4ky2zgsf7n5pi";source="0yajk2dxnsfy74r6a50zs4lc064aha0lzfqp26gpgnsx2h0bvpix";};
 crossreftools-55879={run="0pdhi9yij4n6bwcwbk077sdvwi1v8ww51g2r9ssfnmvmxs4zjw27";doc="0q80k648b967q9gcy7c3lb8ywk257zbsw04kc2gazlc61scviy49";};
 crossrefware-64754={run="1zhh89bwj8cc38p08878mmp8kl0pyr4121nhqssva9jixjckbbs7";doc="146zijsczba11hbks8j0dxygv998hhjqmcchq3ckgc08zrwvd9di";};
@@ -891,42 +898,45 @@ cryst-15878={run="1jd8ny0a0mlhjdbigkkkkz1xn51s3l8w3dpcx5kwg10m29b3vwc6";doc="1rd
 cs-41553={run="0nzzcg1yvbslhqm5lsfcpqh6sbzkmnmmgyakg9l8855qpa8g9bf3";};
 csassignments-63992={run="1mwaaf1ap05mp0lalyk89lyhqs26x4w1sx91vfsjxf697lndadda";doc="1w2mhq1yg24xz9a5ar92sky0b9j51nbb8k2k2ql114wafrkzzrnh";source="1k1iynw5nnnffx26ba5ydaay2qcz492yppcl8ws98xwhrqpjhx66";};
 csbulletin-65250={run="1fw2v0z3a9lskwgbh1kcwv9jnmaz6pf3w2hg2b93zd8mz7wifvab";doc="13zdp3fqbmqil5scgdcy0ngd6gxvdxs3k8ngm6xq1bnq7wy1284k";};
-cslatex-62387={run="1qdcnf755fak3kppl02yi2q9ghb17kxr2cyxc2y80idaafqgr9sf";doc="1vk6azykvi14g3d1c6bb0859j7sj9gy59k49wjmgxid15by6mk1a";source="0ig4a8nksmsm7pb1hxfy6gksfv27bgayqx60ygiaphcz0ir73546";};
-csplain-62771={run="14z479gkiwgw17pdghrxh5q0rlxnij7ccj49kgf3macwgmh5lm0r";};
+cslatex-67494={run="1qdcnf755fak3kppl02yi2q9ghb17kxr2cyxc2y80idaafqgr9sf";source="0ig4a8nksmsm7pb1hxfy6gksfv27bgayqx60ygiaphcz0ir73546";};
+csplain-67934={run="14z479gkiwgw17pdghrxh5q0rlxnij7ccj49kgf3macwgmh5lm0r";};
 csquotes-64389={run="1zsh8z36capzkg695h2h7h8359fiyyafqa6p5m916pmz3vv7sfaw";doc="02f0l0w8k33sgqi6ml47vpqxlpssi9md0z2dm25y0q1ghhyyl86p";};
 csquotes-de-23371={doc="087c08c44811vd8p00l1xrkg5w6fsl8as64jq83m6gf1hfan9w4c";};
 css-colors-54512={run="1q3vmcppk86v2y72g47ifp129fj4rgdq3rvzgkzdzwhs1q06ipfr";doc="0rjqim8zdmgrz5dff8bjkz9kk456l699k5nplhc8bxa6dn7yrfdx";};
 cstex-64149={doc="1vsbq9a31ymvrj0bx48n93chyqmma3q7b49k7dmhb0hkic6h73aj";};
 cstypo-41986={run="0lfg2c985h1xlnx1fa3kx1jjrhw7kmgwvalqh5127w20r0lrh8c5";doc="18yx6l49qk1ayaz13qqw72r8l8z348d20yqdm305nalhqyksv1bb";};
 csvmerge-51857={run="0fyrqx85mklws5zny7gmmyscnsivjfvwmgwi52k3jk2c97nvsy8z";doc="18pmc5h44jmlh583cg0hjr24k2pj369l6ya4hqm9kwka0bhg29nm";source="0mggp5xankhif93firc5g01c6b160bkwqwbhc04wcm4ndlamvip1";};
-csvsimple-64450={run="1ki611iasrrrlq4lc6ra2rms0jn1dxsa648i46f0ymqahcq47cca";doc="1hhp89y27yvv6fkzxdxvrf30iayygxicqxj5qm4c07c915cab0ln";};
+csvsimple-68566={run="0sq37wdvwd9m3c53wqai4vx80r6r3qn31s5r51gv1k8d3q67z49h";doc="100lbrliv5jg52xkgn18l53yxv2rcfsjj16qaj1hlc6paxwq5xcr";};
 ctable-38672={run="1xqhq2ww64h8vpqqzg3zbhh0z7xpjbcqcvxxm4a6kyasyhc9iyr2";doc="1nfdrjjb3j1n8w3x4v92v9l1k0smnygwj47ry717qgf2sq7f2b8n";source="0smcvvlq8n9ahx0z1kmf37p8zi5bjsh5q4x5mk7npay96s87z9s8";};
 ctablestack-38514={run="0b739h1ndkisr49d8y4q0vnbl9j3diqwl9r1ah8wk2za1ww2mi54";doc="0qmshnvbyfjhi8bb989hbffwn3447r91jp46z1yhhmcbjpr7clk9";source="0133xxb7470lyfssi1kp81yr1zsz4d8ai3qjy72wki0p7ijkypw9";};
 ctan-o-mat-51578={run="1iya9r04n18i8jdzqkn2i1rxfxxmpzcpga03rp0i6ykjj65v4q4r";doc="1j053gvvcznrk0fhg21ddyx1b1m1xj743b3w8z01lpjihihzq0l8";};
 ctan_chk-36304={doc="09ngqgs08q8bld334jrzhnd558lv7fajfppmfrkp4kv9hc5iyz9a";};
-ctanbib-66069={run="1av72hhh7l1ih82kwp184221asiy2iljzm303h7cjmqqsr6jd2fn";doc="1wsx170vm97d3xwa8ji7ipann59bi22vbdk404mid4637svdm1zx";};
+ctanbib-68650={run="02iany03amlszi53svfv1mj6iwjv5lak7drgxcccai2bdvc8lazg";doc="0p9w2w064i5ykydkayv5wbdxziws998y8algms6gyz38rbmphv2c";};
 ctanify-44129={run="159jchim2b5idpzj5fxxc9hvrbddm6n00rpqsqffzdiijvp9jbif";doc="0wnyp4rl4cg2wgaq83xwm0vzm1b5xlgbrjchg4s3glh2zzl4mpg5";};
 ctanupload-26313={run="1dvqr96ir3gakxrf4fk0dka80inl6aj3kydcf0128vlq168zgvsg";doc="1gzfib72lfbgzcp5r8130k1n2d00v2kds0x8zdkqnikn22fq4jxm";};
-ctex-66119={run="0mk0iix0wygznqhzqd1wzi7hiabr751i0q5xrr3k1nmns68y98vd";doc="19z979xk8mylch56d2gxvln0w7vrwfizcf4apy4kpbm1nhb90gaq";source="09y03idznj0qw2ik0hq3xy1v87sl3xzgqfln1cnvk3c6mmfz9j7v";};
+ctex-66115={run="0mk0iix0wygznqhzqd1wzi7hiabr751i0q5xrr3k1nmns68y98vd";doc="19z979xk8mylch56d2gxvln0w7vrwfizcf4apy4kpbm1nhb90gaq";source="09y03idznj0qw2ik0hq3xy1v87sl3xzgqfln1cnvk3c6mmfz9j7v";};
 ctex-faq-15878={doc="15c0g0x8w7vm3hyn6lk60jf66akyfcq6x8jc2lnbjx8ydwgb26br";};
 ctib-15878={run="0vm3aw2havsabkrr8sx4m6px9hi189vgsmqy0s922dlm479d8bcy";doc="0q7jss1ai1jjr66yk5927psyvvmp1dwbr54llvwyc4z131g7qrnb";source="1im0zhrw1lvzp9j26d9nh4m1mjhs5by6nai0dh2mrmdjw1i2222k";};
-ctie-62387={doc="1wwi8zgb7m8c0wz4k63xm9v20m3rkvhhfv1v3l3f4l94qvw3k08c";};
+ctie-66186={doc="1avhvyv70jds5xzwp7p1km6d8yha84ckqdw1r1vkgfb959wd3yi1";};
 cuisine-34453={run="16kvfkx5sj6xp5dz0gqlbp5079vh6snkpixmphvz2gzyaqnmafi0";doc="1mbsgn7mvy39pwq5gn7l3h6l3lc53vjyqyvc50xj8h9gs1gpdrb3";source="1r14f44bjdry108f6iy7byzms4dybc0wi936dwkg5ahwyq07pmck";};
+culmus-68495={run="0pj51p0pf4lr9997ilrb8hkz4ncdpml0k7zg9lmw4phdy2bh86ns";doc="18a8h3lgdldazj4mslszmqzpglf0vqpa617pfqa1ga1yf7qnh1fh";source="1mzijc30dcymm2lnzzfci1f99rsxwb8a50p6fd2qnynm3ixrvw6s";};
 cuprum-49909={run="0gqrwdh2gpxgc74zq97zm728ykadkrl066v77hjllmw7x6cjxrng";doc="1126yz6ks0rk92jcsbg2m3ibvv64xznrii9kxf6ss36hm1qwkgbi";};
 currency-48990={run="0673ji0kw0j0a764kjvla157mf5lcxa02wd0ypj82gfz617sn0r9";doc="0v8sfvj7g65r7iyjijimbg855rbbg5d1zdkp7vc58q14y8f34a8c";source="00p52nbdv0x1v71fb0ln63wb9mxdhy7zgagbpmcn2ca3xb83m16k";};
 currfile-64673={run="1mh6dcnzhfsd12ail2wjd5gm79rzz8kcr26x8wya4lvjmdzbw2sa";doc="17bfg4h6pvwhr589pq7j21yawxv7c04q06gw1yf1xsi94gg1mwv0";source="14sk7mh2p25zjl6sxinly5zhj882y035h662vf3qxs7garijqsfk";};
+curriculum-vitae-68211={run="0khwnk2mddfrvmn41y2d7p8704iidyaqzk7zri9gxkrhhhpqb4fk";doc="1zdlq51qv0vds2l9011bmwyvcb1a2lxjffai3vsjhrqvxj6aljj8";};
 currvita-15878={run="0xrcc3pash4g8mkmnzqi0llhix63hqk12vlwn98ipww68qnhfbky";doc="16v8r2vhvb9ssmnyj4zzgv2b2m10d3zg7wm2v6cn0p65hn5i76f1";source="0xrsqmaan5h60970d12bwm7k9nlf7h0flzmqhl0j3kbnclm0x8w0";};
 cursolatex-24139={doc="048s5fg8c19s3zbl2dkmh8ffkicb8fd9n46m0iqrc39i0wrh7p12";};
 curve-20745={run="1h1mfx67i3d2jr6l8qlfys9m6bqzn4x1wb74cjbrkdclyqn3lmd7";doc="1jv8f3izp9pvzh5qs3sh33c95v0z3wn88f278qxi0f1bc1k8990m";source="0l9cq8aji7z8qh0p45af8rnz0iw9m1hgc118482x699iqrvg96y2";};
-curve2e-65469={run="1yyvpl3kdrr7xxvv5bn5x46s0qpicnw071nqn9sgfpjgq8i7gsvp";doc="1vgk30xd7lvdflwsrp48zpkqqifg62pymc5bhnxpbq3l6r49zvg8";source="07b9qrs3r3s1x78jpgixibxbhmakzr8kci0rqfk7qgcq26ys42bh";};
+curve2e-67599={run="0cd0w4gkcaqswhwz8w011pn2g0yl96h8wm5m92jp646xsbq4a1r8";doc="18gcvpdckrsx42286xcdjlpmlq9s0541xkc8gx9f7s2gvjia8lr0";source="0wdqd75fsrihrdyg0h8hl99xlxgphwn723zx1rm73vzh4c5mhrqc";};
 curves-45255={run="150iv654y4x5lb3njd7dfjf8i0axlpf7zz6gx4wqgq06kddjr7w7";doc="1ddgy7gzw2871qsh99m0k90lgh8kf5883skcqxww0bl7b335qc8y";source="1r9c0rpi7q6ishzaaw7qnil0lzqgdvc0ybmr3j083af17snkq0v6";};
 custom-bib-24729={run="1m25bdq11g8jin9qfib12h77sg8lb87p5680d5dkqzsf5y3iq7vl";doc="1ydbi1r0jvl936ziypnjqw4fsr7gvc1gksaqr05wj1bchh28cyaj";source="0sjpwz9zhr0kd4qn454nm1s4rw4a6n4qnackkrq4qkriwzv9asha";};
 customdice-64089={run="11c6gzpmwh7q8dy334i2mz4g42ly0iqz6vh3zal4hi005js8n0i8";doc="1pq06p85kcki6rb5pvijly7h135mh0kwaxq8zz23l9c3lssjpj45";source="1ah7iacvkvf9hmkdysyfm83fzypi4j6myg2a215hajda1fxir3np";};
+customenvs-68637={run="0z3rgjsw4qdpr028yv4y0yscci9611c32rl3y7y6v0n0jvv43lvg";doc="1cg551725icls2x4in84g1zr8ydbyz2g5al4w17dk225k2f8vgfc";};
 cutwin-60901={run="0camjay52m2fbg4df7rrswfn30an4s40bvyvssdcmhmqlbvsh46f";doc="16wmnp2p3hnl8aanm29sxflqcz03qc5vlk9ziq38qxsksisxkl5d";source="0lqjiqlfndqmjmhj5p4flhly69cyg175s8wg2gah1fcfv0dayrn9";};
 cv-15878={run="1w9gx9mhg9wp47rhb6kf1w03mypydp01rxmypv6yvcrk551b5jm0";doc="1b16zaypfphbn9x2fwh2v0i212jx3pn84vj513lkxzzfh0if78iz";};
 cv4tw-34577={run="0nli9s73cns9x44vr2npb7zgfinnywgwajlr1k2hf9jldzm09dm0";doc="1b9zd0ky6h8mlcigfwj49c4chsznvbycsphs9lkpdhxv8mx9wgyq";};
 cvss-65169={run="1ja7j01vbzm16ms6hj0013q9f4wymzmn5fwdmly2mipgnfir79dg";doc="0a664wp1c11sdyhjgz5l561ngsnws5bgr78smswf2akj89637lnw";source="0ig8igf03vsi6mqb9a6cikqqipm7ja3ipm30c1gfinqvkmdsz0jh";};
-cweb-65081={run="0wcis76f7md7hv1p2aw15xz02q4kwn81vpv99apqpc3jqy41ciff";doc="0vng59ckdjk907vrbiyvxgi74a150xyy7rf33590by1mlv1g9r3n";};
+cweb-68702={run="14gn6rm4a01y6zl8qq23q46xaj50jj2ybpff14xg8pvir89b7g9r";doc="1bqzd57l1kw91dwl2l85760578jqpynicx2qly92a8xp92w5y9vm";};
 cweb-latex-28878={run="0cd2rgn25s02p2ga3509pnbc70iad936qznr2yl5q6wnlvd78lbr";doc="0vc5f0h9mq7p9040ksql4clcb9y1dxq7s1a4gzgpsjyla05ps3qd";};
 cweb-old-49271={run="0vx235zpflqpnrfa9kqq7wmc1rylg5bw1r26knfzvh3w1swbp4ai";};
 cyber-46776={run="0vlx0r57ay6jpybs6wlc1w1qpbd62cjq3snaqplaj6dkah98kcbq";doc="007g12qa9v04z3b11cdrd9z7pc7iba0aa2g7z460i0hi2fg4gv3l";source="1kivc83wjpm2rf2myk4079f1l8pyw1pm9a2j0iqbwshic2qfm86q";};
@@ -966,7 +976,7 @@ datetime2-estonian-47565={run="0vdnvfswgm92ncrkh11p523s6vczz1vdxyjqjl9cpm1nfj7wp
 datetime2-finnish-47047={run="01hjh5lmd2461n0g2a67z31h80wcfj14b9y9amxkx4k01b1268li";doc="1cihjhhm37f38rknm45ndli3kmgrb1waxfncl1fg9l95hn929cnh";source="0zi9ydsj0zjrg3c7618fxxabas6zhvdimbsd42n8fc5acvddhi36";};
 datetime2-french-56393={run="0iznh6qv41xcaryyh70lk26rmrk2j0j3239hib8g924zqgyi83p7";doc="0f1j72g2xqaq64wi1jkllhkpxbjm1j3d7wraq42x13giv72g95w8";source="018a641mqcpj1maqhpcrp09msf9rbr8a5nd16hk8c375sh2lqpap";};
 datetime2-galician-47631={run="1g5qmiy094yrid6jh3xvy783kq331bzk0lqzci7jsb2izymz0lqm";doc="0im51qyxg5dbc6p1w3k4vs63d7nyyipd2ad7z9czlfid0n4ywksf";source="0j4i3b3mp1bpqir7imsfw2y1098ak0j8zs7gjhm16xdrb4n1xhcl";};
-datetime2-german-53125={run="1n7s5fj27rlz61r63s1mwbkxm62ddb2izz7ip4fb165d0bbba8xr";doc="057p9xgdbxq31ff43qi7lr4wy17nk625dnpczrinfd80xn92dhsd";source="07dv92w3rfg0xi6d8n6ykp0rn4pj6k8knp9sx8an9bhzmwqw2yw1";};
+datetime2-german-67201={run="1n7s5fj27rlz61r63s1mwbkxm62ddb2izz7ip4fb165d0bbba8xr";doc="057p9xgdbxq31ff43qi7lr4wy17nk625dnpczrinfd80xn92dhsd";source="07dv92w3rfg0xi6d8n6ykp0rn4pj6k8knp9sx8an9bhzmwqw2yw1";};
 datetime2-greek-47533={run="13a1lpvg680881xpgphzni3hcdymvph56mhgy0jbsri14fw0mdyi";doc="1kkl386rd0h5psr1z4aw32r7m55in62hql8x9c8njzajm5frhf44";source="0kmwn8mawmxvrgx5d39j92p3r1nlk1z378z1h2lx129yz4qbsv56";};
 datetime2-hebrew-47534={run="1b04g9lm0g5128phix3mnx9yphg07ig7p9d149rw0b1imly7f6mv";doc="1lslls4q5j1l9a5m0gzv351jfc93ii0zzcb62p3icq2qjig3rz37";source="11q13hms2mnqyxg6hc3279a8hs88j2d7v7wl90v5avwgh8923q55";};
 datetime2-icelandic-65213={run="1ws2mn3gf57b8gc1q7fp32li36mvmcxf5i8p3ikap2swvd9y3a39";doc="1dm4vg1jvsq94sn9nxxcasxmrs5i878z9bbrcf88yzfx5bm6wbfs";source="0vss8vq4kzzj243ha6gdvd9g5r85ar09v7y2yff2vj41gwp5zmjb";};
@@ -983,7 +993,7 @@ datetime2-romanian-56394={run="04jypimj3pcvnalkgzwzxvgav8s0g6c7br1w5hk769k7aqjf7
 datetime2-russian-49345={run="0m3cmm2ikili85z44mmsnaxhv3x2s6xyk6kkfr3kaczn3w8srqim";doc="01rfdj3wf69j976mkv2yxw0ns4pzf852miykknni4zw7lbcki00g";source="1x931h6rnzm11ipfa747x306iwn3381ahcf7bfzhg75p8707glgs";};
 datetime2-samin-49346={run="0wqnsvx33d68j18lm0fmvjrdg8g5hv0xwzv6wqnb8wwz1l5zmqvj";doc="1wfij9j00pqs8bapbjpmg8xzah9509vrsb9h8sqc2abdjnqgkmdc";source="037gm3s8rxk4chj2q9yilbkvg46dxnd2jpr886ibydfp1ndnqcp1";};
 datetime2-scottish-52101={run="18c3y6968css1zm1pryn3cfbdqfn9px0n62bq6mapmgbd7fi2plh";doc="04dy9syy4qmn36mfy1agxjzd41prwqzlx5f8vpyq3148w51kpp1j";source="0nhfk8b19dqa08lb10sbfwp3c2f4rn493dgp4sm254bk00nil1gh";};
-datetime2-serbian-52893={run="1akyl3r70rwdyjjqvpsmh5m9g7xsdmdmx7l9qyh54x8c7gir7wd7";doc="1kgkpfgfqj99m0262zcc6b7fnik83vr45973720dbf9f5gvyin95";source="0hn4w3rw6mqzcj14a55m2hch3ra1ax0kb3l254pfgk4x9l3x028v";};
+datetime2-serbian-67201={run="1akyl3r70rwdyjjqvpsmh5m9g7xsdmdmx7l9qyh54x8c7gir7wd7";doc="1kgkpfgfqj99m0262zcc6b7fnik83vr45973720dbf9f5gvyin95";source="0hn4w3rw6mqzcj14a55m2hch3ra1ax0kb3l254pfgk4x9l3x028v";};
 datetime2-slovak-52281={run="004s60h3zi0a947ayc7kk2slxwl6bmpba8lxm8000f6yaf00wyk8";doc="1wblf0fd2lb6b05vvb31a33lz7dxakd5k6y5pcvs6iwjjb755n52";source="17hwr9yzpdkcvqvm1fa4qvacgica9mm29npmcl7xc3c503h4z6wi";};
 datetime2-slovene-52282={run="1lcpx7nz5lqb6pdw2j0dybkilavp535pxijs13nfl043xizh4brq";doc="0i6p83lixs6maiww4fdsm09nql3xx8xvs2qz38r5md4r5zzikyb0";source="0grv3gcm8wjdcx9smsq3dzd916pg8kcvgmh6s47xh83wz00qqi36";};
 datetime2-spanish-45785={run="0ggb24w3sljmmydnjdkbg34n9mszjwrqny8vl70fcin1dj69njcj";doc="1iglnacrcwwmc43shhsaamwajlb3mzj9dgqnd5qg3v7ynlp5zblq";source="0fjkhxqgw1yb1nzfiymwv8bsv6zlnwvdjl7crd78n3yx1fgv9wd8";};
@@ -994,16 +1004,18 @@ datetime2-usorbian-52375={run="1dynq4qqi7mpckzcmwvfc17hvnfjlv3n93dwypp2sxl1596vi
 datetime2-welsh-52553={run="01p4mxn78ynyan6pb9598qmi000alyaiw3bh83w0l5682v2fi7ip";doc="0rkibaqirq4xgy6r7a1aws6awyamllg5z5zixb3imapj3x6c8p1h";source="0d21jimjq8sipg1qh4fxwb9cmq3sga0wjlrcqapjpy559bnfgmrx";};
 dblfloatfix-28983={run="1r8s36il4bmqvvvlrsdbhdp4nanbyd1lh71dac4f774bf5pkhzi3";doc="0znp5j2v20q7bsic5j7cjqxmbi1dannffl0b14g2w0jp3p6hpfxn";};
 dbshow-61634={run="0cfp89n7r5jn6rsg8qrjmwfzi1i9qrvxh4aiz4r33sgi8qy5iljx";doc="00nksa78l2hi8dwp72wcz7b4sx1z5p88c9pyha975xr4l5lbli4q";source="0pgyjb07flhfr0dy1rqk4j237wjskxfsldrl58hzdanipqn0jyyi";};
-dccpaper-61763={run="1q0hdlkr80qsgw17d4qlsm59wl22qz1b6fmr2cawfbcwd7aj6jd2";doc="033dhadkcknyhilqkwsmw4hx5cmkl35maanjvxb5jdp8vayj0d9y";source="193bikyd65k1wd3xykq6innzzhqrgxlcz21fa49cgilwp44l08z9";};
+dccpaper-67890={run="0pihvkqcb9qpkq5c8n1n1wlfip87zql1dzxrai1dlln0rrrxhycp";doc="1762lsfk6jg13rkkiwr1y8kc6xlf5y714jjfiz74zlv9w8ixgxln";source="1pjjhcbbx609rgrbaqdp1xkn7cafwax93jpn8m7wlzy3acl31lng";};
 dcpic-30206={run="0yfjhpn8hr3yk4dyjfzbc8g7cki64039lb96naacyv8mjhqdpgyd";doc="0vxqvnkxm00k0xqpllcnq01si33wyg2mkhpb7l8jxxxizn3wf5vi";};
 ddphonism-52009={run="09s324nj6g8nlib9wilpy01prixrw1ilwlvl638hgv5rxsspza5y";doc="0iirifr55s86nm5512ii0qm8lm4zy3jbrbk333hw27y8m4v9qd4i";};
-de-macro-61719={run="1zlmrrb1x4sm0y6igxxcgh7drf7c6rqfgm8pk1a7bfv5fdmv4fln";doc="02zxl4xpbyjs5vwg5cskgfh3w2ls2bxlyn50smh0kcqas46vn9a4";};
+de-macro-66746={run="0pw8b3v4yy4frxa8q3xbljx7m1vd3952w01ra77g2x8b02msd9xl";doc="02zxl4xpbyjs5vwg5cskgfh3w2ls2bxlyn50smh0kcqas46vn9a4";};
 debate-64846={run="1v3wapccyxk2fnhm93padrmrarzdxljlqznw96h735086pgsni94";doc="1kivk2f6k1ifmh9w8qg698wvsbb21rfwwmr10bbvlsbl8xw22p7f";source="1yia0rhkwq65a9ggn6pkmr20vrvlcjkai30j1hm0jav7rdq9pqbi";};
 decimal-23374={run="00byxbhi2pqccd1vd6hsh4ri0vzvq1mwjnvqmqqlrbr3qfv05zla";doc="15v078s3d3aawihdmd0l1ndqinlsqz11xxbvbw0dyh0arw6d1rc3";source="1k88s0r82livblqfb140npf2p7lvmsqkpasbr93ihwjj9vp54xb5";};
+decimalcomma-69251={run="1gsmjqw7sws2r5vzm1vdp3mbwvxpally5vb7pn64d28bcmkvs28m";doc="197pqxv9sny07vfznzx55skwl3gj36wsqi89j24jvj7gfrm2a0kf";source="0bgiq61d31rzzkcib6z1lszydzcjwh3waxwhhfxf5mbwinlmwwga";};
 decision-table-60673={run="0v1654g69lsvcvky0yh977kz7s1b5bjihh6bfc4lqrzbpg92qijn";doc="1gpz0g8s61aryz5y8f2v35v0p8cbwpvsq1x4f45hrhd3hpk96hbj";source="1d40h7vcyaxdf8yrvbx2lns0hg3d0xy9mv9rmqpy8hkqxavzd389";};
 decorule-55230={run="0r5pxcpx29l8x1bw4hj4xp66zgkjgm0qn2ryvxy1d30dyjgp34zb";doc="0a3qvnknhcx0jx8x9gk7bh4sbnzv1mnqvdr8l03nzjcbmysvc3hy";source="1lj47s4k44pjnr0n06xdcb37625hkjclrsj4ccmkgcr61d85vkwk";};
+defoldfonts-68234={run="00h2hk4vhqn54sczns7nlgsiymccwikdpl702y9m9hvhdw2misak";doc="1xl8nw3p9jhb530m7sxkrsg3qpd497q4678al524b3gz85ps1m0w";source="0ssc58p013kjdh0p56jhw7cx734ngnkm9mvf1cslcar5pyh6s88r";};
 dehyph-48599={run="0fkqlsknrlxk8zazcqy4q3nisxr3a4x21aiwqhz8s237rdf3w39g";};
-dehyph-exptl-66401={run="1lk9jl0h46xi2bg724j8jg6i54jqdch7ncz1a3yk6xwfpjgmj9ig";doc="160z9xiqdi9x3wmmipnlarrhlj8r6885541vl23hlj61xd17y9xz";};
+dehyph-exptl-66390={run="1lk9jl0h46xi2bg724j8jg6i54jqdch7ncz1a3yk6xwfpjgmj9ig";doc="160z9xiqdi9x3wmmipnlarrhlj8r6885541vl23hlj61xd17y9xz";};
 dejavu-31771={run="1pxcrv98xgy9hkqhclyp0q5dgpgc80bvjzs378f0dqzc1037lghn";doc="1f42z94n6dpdq481n5wmsx5hx000klmbklghz77x8pc9shgvlka8";};
 dejavu-otf-45991={run="06cdqjqj0vcxrr2nlqs2qszssiibzr0pbimhvqjpqfdv2hhdxd0d";doc="0x9j42zm6dagn4wv8hz34x7cgybi6bb86whxvmmwx5slsbb6yqfy";};
 delim-23974={run="0k5h5wk4fn4qzhjcgraqjzf6ggq7rvr8d4c1j2vwxi37fa83642b";doc="167hklrsm9dh68nvl6inqck07zfg8w4gr9p5c2n8i6y6v9xlj3q5";source="1xh63b78kxngcc3qgzmcfrf4pw2saipw054pzq47vp2ajppp1sq3";};
@@ -1011,9 +1023,9 @@ delimseasy-39589={run="013r0cgz7ivrjfhmpcf5rdfl2573q35qmw0bhprnamij2jpvggzr";doc
 delimset-49544={run="126ax3z4c36z83479zk56jcvdj5r95y182rv42wkm4lm6sy8v24j";doc="1mb85h29fp7nxrkfylfg59jbvjva7lmr7vvgd8nz7k09w1gf4x0b";source="00hp5f5pfad36n4lkmra8mc2n0ynnq9ynnspqfb9378cx3m81cxq";};
 delimtxt-16549={run="0s2bbxhbfvq0jm4i90sh6krcik8yk2nl0c39lzr1nrakal0k5lkh";doc="1wswrw94n5l1azs2aczv6vf56ksbagniry4rwq9b16bmvdy7slyz";source="0sfwmd0mj359qkchqgm8zc80ayqp0p8ppdgfn3cmayhf2pml6gyj";};
 democodetools-64314={run="0ih11kxlvnskrdbvxrakbljh1n08n1mb6hbmf08475557bp0nchg";doc="0kcn368yzx0jf04srh2lzbxj9n76ph0idfjcqs2am3cjp2mjis17";};
-denisbdoc-63589={run="0sl953nrm7iy4jxadmwhq2x6hglspyzxwzi7wcaqjnb3vqgzb726";doc="0j6b33vq4q2ah1rrvmj0rch6hap1w6gr1x8ip6nxi9xhqpdg6gh3";source="0idsm5fbq3k93jphv569yw7cgpckzn1npk1wczvji0zvd937pih2";};
-derivative-63850={run="066h32py620pvwynlbw2jch67dpx4j4xjzrcs9h7ciqp31izkn4i";doc="0jhb18pd1h3cgh64f5fy0zsla80sv1hficd2ip1s4x611412pg0i";};
-detex-62387={doc="1gmn0ymr3b24va2zgp941z48y4lx32dqlsq05znjr3vj4vnp95p2";};
+denisbdoc-66137={run="0sl953nrm7iy4jxadmwhq2x6hglspyzxwzi7wcaqjnb3vqgzb726";doc="1p5b5xpiqhla4pmx0kw3xl0qwy419qscr8q3z4l1id4sqj7vy6b6";source="0idsm5fbq3k93jphv569yw7cgpckzn1npk1wczvji0zvd937pih2";};
+derivative-68787={run="0qqzrhm1x2n5xv633dmd3pw8p9i5a7fmnqp26wcwhy08dipmq441";doc="1ld2kpn6l7dy73wws4pw0a75cwjkpl402bddxghz1svxmpfnnn4x";};
+detex-66186={doc="08d017wn7a67pmp9b5yhnfg1x2q6f48qaa5ma4bplz9a782icwjy";};
 dhua-24035={run="16gq48zlsfk9llafs8379797v908khv954q8lw2dvzk0v69d0qki";doc="16l76rvba4fz3vfw8mzkmks7b7206h2dva5dgw3m0j30ds8d6vm2";source="06vws91qfar1h87d57c9f9cw04isjk0szhg2aiw7sc8ligs0v907";};
 diabetes-logbook-54810={run="0rmahxnjnjd677z42ra1mcp86na41sz9ir4chkpmaikhdvnbi4qa";doc="0qb2nyjc7fpc7yc632bblbjryxdx39xr64c4kxncdisi34am82z9";};
 diadia-37656={run="0gygfg9vs4gbp3r0h9v6dqc18np331c0hjfmc5rbh29i74jcm8jh";doc="0bm0sb3fjj73mcdmrsvan9pdla2ki7j1wwpjpc4kpfc116a9lzy2";};
@@ -1025,7 +1037,7 @@ dice-28501={run="12j86mgn8zph5w1gd1lmmz0dcka36b187vld6r2srnj9f398h7ac";doc="068p
 dichokey-17192={run="0bvv3893jxpblddqi75hppb9s0rxaiqbq70jns2x7d79afl7xkwj";doc="0m5zc521shp00wld4kyhp9xipsqfq00q1dqd3qp9ki1b2kmr5w7j";};
 dickimaw-32925={doc="1mxjqn4lblnpbmad3jk453lyx1qzcmrddis59j3jsgc5sp929w4k";};
 dictsym-20031={run="1ipmlwgma06nd1rk4y38r40y01csq1myqavmpd1f3c53k1n0v42s";doc="0rljzx70rbvlcirxr2kf0fmrks6g04zc1mz5hzfkjcn6xivpawh3";};
-diffcoeff-65676={run="1fzndpfr5f234f6zdh7m8kx5v8lzl6mmqyi2nbl8rb43x5pq94qi";doc="1fffhqqngnwmanb2lfjniramsrcp4rdninkfnphnr3c8s4q5h7sn";};
+diffcoeff-68838={run="19rrh9zzjxyd7hxfawi65y0cnr1ps5vzypk60jfki8s1bbk8l2jv";doc="1ximrhl7m5in95mxlmk7dpvja39sjvxz4awzr3vwn9w11qkhw0p9";};
 digestif-65223={run="01hym4d6vqja4hwnjyvs0zs0l2fzhdap0pir7cz7wxqnlcip6hl2";doc="0220wkv0w6zp4ggnqkcfcq388f42scywzn2ah0h9yhccgdikd52h";};
 digiconfigs-15878={run="1irv3jc87bpnc289r5zh7pgfdgk4bvfwbyv6666kyq8f8yl7m1kh";doc="0fnibq45xgwrha5vfav8lylnb6p2i0brd2k1yp8jm8id6xdsxmq8";};
 dijkstra-64580={run="134qfpb0sqyazfjyc7mid1rydyszc6gpqms787vq2fd2157zksz9";doc="0qmzrdzh0704s97wqwxj3wyg33rbbpq0mmq7hdqf8fy0vq2v8hh4";};
@@ -1046,11 +1058,11 @@ dnaseq-17194={run="0vsifiirz1mwmjnav8k6m27mm5qsn3iw01a9c056p4g4ji8w2v2y";doc="1n
 dnp-54074={run="0jlvb0nps1ij4sgbg3clgbk34p80la1fhh9zihn9fhl9nrqk637r";};
 doc-pictex-24927={doc="0fdvqhkgi5j33rx0r4fifj69f4smn5w0n99vx90a3fw15qzxsg5y";};
 docbytex-34294={run="19f8kxa8pb7ai7npxxavcw8hbsskmnchi7vynzkbd0imcjvay476";doc="0q3by29jmymrf4pirwmfqxr6bdglh936yb1phficxlpm07ibp8mz";};
-doclicense-63340={run="1lc8f3iap8sbi4scyq5wvq6pfj2bz87vy6g2p51b3jfifz36xgam";doc="1biqazhxd4p2lcgihzx8h21870a8dhc8m9dkd898b0sb0hyr5qlp";source="1gi4qvpkc0v6rf3jq912f1x36wsdhqcpas32468kwm6v99xqvnms";};
+doclicense-68441={run="1qb8r4lwjqzwv46fsqjff8l5zb1scjkq34pwnsxbymz1sl3iw1ls";doc="0isk98wcs93labxiygbf6hg2794l7m2wr8ck71jafd6by8x7l1mb";source="04sq9wrsfgg3s51k853yy7vn5yp292d2ii0ww3msrqnlpknvim7j";};
 docmfp-15878={run="13cxjhbafm0xvnng6gc9g03p4j79sia7jvygxmphgnf7wfndv4sz";doc="1j2b530wcpr8252lcpmy0c5w83kqbi9xzsrfbdngi1jmkfy4nlgv";source="1w8g6m2whza3w62ngsaslv7h2x7asijznwb9glx6g2vjv456sgf8";};
 docmute-25741={run="15ad8274dwgzk7fzs7i5g3ss02ld8in8f86339rb314zmraj5kv3";doc="1mrwispvif8nwjbq12jgzpwjn9xf7mr91pwg5bfdcnpwwy8l1bh3";source="1nfv31h23mp7alrm9saz5abakjsvs7rqva3q9zvxlczix7yn63qw";};
-docshots-65141={run="1rcv5iai99biyi4s7avqmy06kwvh8lbjws2b9dcvrpdf9hshlq4w";doc="10c5j9l364s5vl6nhyfx0gd27l0l03iiy7azl5r6wwxjiarw7iml";source="1llqavvazdjvrsl9jr2hagmivqvc2wzw644ssdcp47yhphfs1pik";};
-docsurvey-61447={doc="0f2kzmmpm7qwci04krmnz5impfwwmy2wwanmgq05878w8xbcqjj6";};
+docshots-69410={run="0c43i1x2va0a4g0a262qsk5dqig6ic4kkmgg18y7s78xi0ymj8m4";doc="0l55vpqsbwr7pln791lql2s325ljphy5gf5glwjjmf90cgx498ir";source="1hr4y4rqwbx3kbdy90myi666b2jb1iy6bw5y219xl3dyq575fj15";};
+docsurvey-69343={doc="1s14cdm4174mf5x77gr0gp59hsklbq2nrh486j3x9vgc6jv00wv7";};
 doctools-34474={run="1rdwmdah8rb2yiicd9mbqz0mmf56rpgnp5vwyjhax7m0zqjgqkgm";doc="02jrr4wbkdx8r44dpfn4g83j03n6yrska79ljnwigs77p5jqlyl8";source="03y13bijva11hqil84l2p4cap7fcm8wk6ds53nx1qizh66h8g9vr";};
 documentation-34521={run="088imchmqchi1ilwfzlhk8d4am2xjjgacnyw5w4mb6sirbckhi3d";doc="103rpywyl1h30c7jamp3cfi1rg89y48krdjbxc0calz8iq5n0460";source="1fzk62clv9ij07cfjcrwn94cqvz2piysij09y2wlkcs06lgk2m69";};
 docutils-56594={run="1pxswkjs901clnd8l3n13ghqypv6l8gxr3pnwn9i0zakvxz6gdh3";doc="11fzx9kyxgxr20hnyqy9nvl5rczdfyb43j1bjwxnim68kmy5bjyz";};
@@ -1078,6 +1090,7 @@ draftfigure-44854={run="0dhjlykc6p6jm6p0s0h0d74097ny29w84ns1pxbb7f8iwr8hhkvf";do
 draftwatermark-57099={run="1xrsh755whbaxizzljcpk5an5k9s09f6hcndp1lhw2z9mfnl2na7";doc="0cnzbj2wg5kifqg08i081d0043462vswbxr68spnnxp2y3b5ysdj";source="1k66347n1cf3ap8406dw2qa21k6mazwhv6brr569i0khsxypfw0a";};
 dramatist-35866={run="0zrkdhvx7f1261r5b2d08bd6a3pzldvpi69iym5k6f79ziz0602q";doc="0vwk6zfvf89773bwcxnpsd8crbkmq4lr6hksp4dn0hn6rf4smyyf";source="1xy8fm9h9qgjna6z5gz28rj0cq65wpxpxcs4vsfr4vr1p3vmig05";};
 dratex-15878={run="02nyg30awmpp2yi4m6r9gbgz04irjzpbjhpp72j0qxzly8c8frqn";doc="1a5knp5hylpb1i7hkd9160bah7pps9b0hm00zgn9fk33g5xrvhbz";};
+drawing-with-metapost-66846={doc="0r1fqikx9iix0xm2w78s80knfwc7w0kf2k7fb3k25l1cj3ym14mq";};
 drawmatrix-44471={run="1806y5cdgnj61fy0lilm424x936dz2q5f2j2s3w71kzl5ivyf569";doc="16pql717cz27sic494xvmsw2mw9jxn71xka0k8fjys8j52pklqnk";source="1x8lc07xccf73vcvywmrqk8ivg5xb1g75gqhff12zgrp2vqzh6g7";};
 drawstack-28582={run="1lirkdnsp35l4dwsir1xyf4a2s608ymfc3r0hmgg9phiy9i1664z";doc="127c98z547disxksvhabrpnddrp5ax5dwbgy7nmyja2dg65yax9i";};
 drm-38157={run="0j0r5b2b6js88gy04d12w8wp14g7z9xcgc43y0ysn2xglcsja3fj";doc="04i8mw2lsirvzf3n8xgddd2jr2s45fbg6m6wiwjdz4d2i1pi98cs";source="0l3j52ypvsc8ma06a2z2dkqsa3vd7afqkmyrd6b3z6w3dgjlnz3v";};
@@ -1085,12 +1098,12 @@ droid-54512={run="1fmm1k3sxdn2h6v56hqdn0l84rz1cgxmj586wd4ff41vfzbdnn5z";doc="14i
 droit-fr-39802={run="1wz883z4a7g4na18z50vd0156gj6zpkkl49h4k0dhxwgqibh13mk";doc="1ss2j5jsr4h96rqcqmm89mprnr6w98zbsxy87jlmqavjjc8k8jq8";};
 drs-19232={run="17jp9fvj86sp4ywgc6j1dp3pnvgllilbq75298qamnnj3f403vlr";doc="158wkgnrgwfg2ikbj98hmcaaymrwpmnmaxillksv1b7gxmdrphk5";};
 drv-29349={run="10dqig3wmp340m9h3n4yl6scg1p2a7ccazsqp7p8a4fkfw0cziiz";doc="04kgfqhilxpcc0h6rhpw55s1j14wsb5v8b6ykq7ajmacrpmyi50h";};
-dsptricks-34724={run="074z88g37hq9xjlvbncmiccq5klr3x8ffprps8xnzvhk7cdwld2f";doc="0jj47j46l587hr11n764wl167rkp7w8q9z16zwnnb63dp0gi18s2";};
+dsptricks-68753={run="13hvyb7qapfby45z2cikqwaj4bcf6lvhaf3b6gq7d9831gxfwjhk";doc="0jjwa6rh39qp2659ijb3fg3cqz0lbpjpwmvj6zpxv0xhnjzrnidm";};
 dsserif-60898={run="0w1kihzrmk48hpl36a20fkz4nwp9z27in9xsi0fc3d6mhgdx35db";doc="0bwnnxypyc97jfcam0vdvpyxphd1zn31mc6lvl661jy10cpqf6b4";source="00hf5icf1n0rwxr2ms34z7r62g98dqkx5v26m3k7w1wd1jfnjzi6";};
-dtk-65315={run="1nwvdw7id285w8anscp7i8ksab3b72gldi4minhbd1k4pvdb4783";doc="10ymqh434a8bjfyi5rj3fj8b62lj79qcyl96ir6visdm6v8fzrmd";};
-dtk-bibliography-65444={run="01a3r2sq5sa01s09kdq35qnhqrmnb2chic0nr632cz72cr9snm8g";doc="1jgrdv91cibm7plk3116xhgqqa2yp3fbqyrsj2r4bvri81bgrig4";};
+dtk-68849={run="1j92bv10qjb1p9ryqg6yc55l4cj52q25133mq021jq3b148j5v70";doc="133y8gcdk0mgp6nrwg2pfslxjm1jl94d8frfyxm7ml0dy18g4adw";};
+dtk-bibliography-69155={run="18i5n2jiy5znaf80rxrr9f376j9f52gr3557g8idkc2g97vxpx8i";doc="152r014y7y20h19hr44c0vifwpc2s1rafilnxknhx01zz7ln2hq0";};
 dtl-62387={doc="0kvnsr8nxrys99rp74wlxnisfripx6jpjjkqy38d3d4gw13cvb5g";};
-dtxdescribe-65445={run="1q8ycxs1dxq4d1j76n3p16z812pm5fs3zw9z2vb2l6s92piaf1ag";doc="074wq1f7cq9lnmpbssyyj02da2wwrnjdci8r591f2fp9cq9lgwms";source="1wx009hi6sicz0xvb6r6jr8rzwbx94p1w7rkgq4zjj25k3a7s717";};
+dtxdescribe-69348={run="0m959fczn0gyc9p96932l1jzfyyf426sva72fjhy23yjgcv333w2";doc="05sa7capgs7lpqw1qdcr28k9f3cdkyps8ia8vz74jm8nm2gigirb";source="0bm90l8zb6vkk05vrvpjm13xpfaymw4g6ycbc57984djpkmk22bv";};
 dtxgallery-49504={doc="07c403zbx7sxkhhrwrfw3np20xlqhdk893b4bd6r8lqb0zipp5b5";};
 dtxgen-51663={run="19c9w97wjyrq6g1j8n8qgaclx141lv2j6z6l5h13gmkmyw08vwhh";doc="04z9dy0aada8zsp8ckz3agqcsm29dnlx770xyl51rsvk2qwsxgka";};
 dtxtut-38375={doc="1szg0xvwm0jbzs8waillijzrff4kv04a73gsqh9c12ap427xfryr";};
@@ -1102,40 +1115,41 @@ duotenzor-18728={run="0p9gq8i6xcfg4pxdnqfswjcnc17x7pzsp4iya9b3fjq4kplqv28s";doc=
 dutchcal-54080={run="0j49mha6lif07hnfn2wdfl949kfal4hbmzg6zal4w5rgw366szrm";doc="110rbvidl53naa31ndgh6nx19i3rkawbipz9rpxyasqk61kvv6mi";};
 dvdcoll-15878={run="1b07xplza4b3ngh50czq8vwmhpr2qvkl5xbgd93a9acvsf5pyg6b";doc="0fhkdwyvlizlb66bd24pfncbg58a31ygnfg0f9dw5z9ccfrf50hd";};
 dvgloss-29103={run="0fgc0i7cn0kd4f682xny0968l220ypam3z33mwac6ifqaaqbiy9d";doc="0l467jcanablvj95l0sbdib6dblc6ns2jcbg41kv0nxpah2i5ms8";source="0b106p2a8xr3c0vxwx3j0qmxh2z842h5x1z22509jabry3sf1y98";};
-dvi2tty-62387={doc="0x1lal1znfb2rfxbpmbzg79yjgv1l7hf0z5dij0yzr9x6xyv0zyc";};
-dviasm-64430={run="0mv27vpq48gd4if9rcigp6hxhv4a1i2dda3rcq8jwssxp383kn8y";doc="0xjna39bqxikrxakprbqjb6rgkhlxl32gz944xw1q11zpz8kicwq";};
-dvicopy-62387={doc="01djjcj354d1pgpmlxv2k9ad4x871h8k8qqblz2shzfqpmizbqvx";};
-dvidvi-52851={doc="1w153rqm7nlmcf6162glxz282nbb6b6hjf5h0p7mbzr0j1357sxj";};
+dvi2tty-66186={doc="108y0qxh13x0iivgsvkk4370f471p03nyl4x9nn7lng1wrsafp6h";};
+dviasm-68043={run="02dxk56b63kqiin2ad80hh4xrvbhbkidyi0pxi8c2n5zqdiq81sd";doc="1hp4vrd6aj2qy9mzb9cr8l641cvxx4aw1ra0v6yr16lkzcls7s4a";};
+dvicopy-66186={doc="010bs4iyaja7mq5wy9mz6fzxlxf9472c2zdm93x9i474dzgnh2vl";};
+dvidvi-65952={doc="1w153rqm7nlmcf6162glxz282nbb6b6hjf5h0p7mbzr0j1357sxj";};
 dviincl-29349={run="1qb2cl5jbgzjfgwqnvnfbbrbzxi4m64lajvz6pyybnrwv4bax0km";doc="046c2cl9azgfg7y2022lj8x7yw8kg2pgjdixxk5989ai850k2j9n";};
 dviinfox-59216={run="0bcq55p894m5hw3zdjz7q7ns21vpzjyihg5x19lkn9k05nxrs2d8";doc="0v2sy294w0m3kniwky24lpi4ic5d8qrm5722gd7vw6ddwkwc1x61";};
-dviljk-52851={doc="15l05cggcnawyqg38a1hpyng88qh9gck4jvl78n1rdk4qdcgp891";};
-dviout-util-52851={doc="0niv5zy6vksm2qqqz3bjd417ylq46bxz6sra3abp9k4c2bpr0pz9";};
-dvipdfmx-61101={run="0i83g2476bp3zfgdvg11kmls969ip36z1d4w592946547ar2akmv";doc="04zmlbpiclcd6bsxzq2xcssrbnla9wxvw4fx4p52lkija91qv848";tlpkg="1b9wcx70n7dip0yhp7sh3j4g0rkwg03w6hr2mav07219kp0bw75k";};
-dvipng-62517={doc="0xqdvciakvfp06rnsd7grnvfwjcal0ahyj90gyp2kc4r3v3lk6pr";};
-dvipos-52851={doc="0izv95mvzky166xpalw897z3lgl3424ixbabz5pikrhn6i2q6zmf";};
-dvips-62387={run="0k89qqz9zx5zh13azpjndfzszgl85hq4513kaayf4k3spy9fn5yw";doc="0cf5rdlg25lvyk7vzhyxnwfbgb5ngm8z4kzvj2y0hhq9jz9szpyj";};
+dviljk-66186={doc="03pi78c8ghy2gghzk1ffrvf5x7h8c1r0pv5pcspwxz365x2rsbjw";};
+dviout-util-66186={doc="098pksgf2iamq96rmzg5fw7i9dlpvdksficsz1bf8k8z4djnbk8n";};
+dvipdfmx-69127={run="0i83g2476bp3zfgdvg11kmls969ip36z1d4w592946547ar2akmv";doc="0wid2ydcjf5jq34k8hsg62ndgishbg6f14p728dnyrbh6k4iqvwv";tlpkg="0mlhxv77q5nanqg2dcbd51wpbcrys9xhr22bvx3hpfzwykb5lh69";};
+dvipng-66203={doc="0r001q4p5569dagayds1c56y10ls6f6v7mmywiw81l995q16apxi";};
+dvipos-66186={doc="0dmaas4m9y4px53vlg0jr73xviki338fm2n176l8ldwqj0vvq1b8";};
+dvips-66203={run="0k89qqz9zx5zh13azpjndfzszgl85hq4513kaayf4k3spy9fn5yw";doc="0acfsqbpnws8m5y66fkgcgxf4sdr9sjha067735scn75wmwi9y01";};
 dvipsconfig-13293={run="02vgk91y80ch4pkj83vbiz1b2ccigf152hm83p607y4n4qn2xzsf";};
-dvisvgm-66534={doc="074z2ik1rvwy4iiks3d4vhz6i5ykkndfsbmvkxfd92pqfgrjj5ga";};
+dvisvgm-68950={doc="1fz3sa7p9wk2g1v0bpy87vz7nxwrh5bsfl4m734n6lhsh1bkj6fb";};
 dynamicnumber-38726={run="0y779azvla68n692x0gybg74cp3dk32219v67qfamfzz389nbs7s";doc="1appm3ddbv9ll0mbnid4xa459w9q89swmdlvdzy1fxdps4y0vpz9";source="0ydmlz697c46fx0xpnvcdcfm9sm0j3jmk47xz8znd2ghzg395fgk";};
 dynblocks-35193={run="1zb7vk34k3z0cvw6kz74s7831fz17mg3j9hw60diabc0q47pwyr0";doc="1m69hys2b7fvwn9h6q3whkpcnvi04hnhx7811s5fqhdfi76v4zk4";};
-dynkin-diagrams-58758={run="02s19zsjsql9qhlhf94z2smlr0j40z4rrx33iiwc54xx3j55asap";doc="1gk31brjcrw88a2fb3y7jq47g9lkpr7dq7b2rmvkbwxd0yyf789i";};
-dyntree-15878={run="13imdfv22qsy9jq5vksi9qsx8spcc6h2v9qlc6an9p93cq84fwka";doc="13wn9lyjqds36ff8lyv125i0qqqqg0az71h7g871zylppfy7iqyc";source="1r7g555bhgkx29hgp78v31nljg9yaz3fjjy9qbk9kvz6wcphim6l";};
+dynkin-diagrams-67267={run="0iprylvg36fs9rk44a4yj6xn2q5vy6jy2104m3j9jkyfafy2qsy4";doc="1f54q909b3qgbgqgbxpi4xr4f06dkq7z0wh49q29b1gh2zvvdxms";};
+dyntree-67016={run="19kzb4j7q7dz993znni7pixv2qljzydag3jywcsgdpqvlnk1aq0y";doc="0fa2imzfskl72fvdm1pbhsr33qpwm41dzsfdipdlgww6116rlwjc";source="0hlx970ym3zxln15pm4c2qxliaj4yhv7cnak03hhbb0dx916k3mw";};
 e-french-52027={run="1pm1k7qb1a3h2b8kay9jwby382jxp3866b9m890rj9gfqdmwbfd2";doc="14719qp1qjcx4wjwcarirj7iz6qmjgwb95b308zqdr197y1cvymc";};
 ean-20851={run="19w54ch23s75mhn94hxf4nphl5dcz2w1jx138kr0phfzpc6fri36";doc="1rylr9m7jrv0qq6pzigpm73z34p9n80fg5rf7andmvv0fcpmggk7";};
 ean13isbn-57514={run="0bzvkzpi10d9sjlsc4df5v3y7qycbz1qkn7ngy97prq58wg047gc";doc="1gf076ybmni0wzhh0fsf5w4sj4pv3c3w7g7m09k9607y4havv20a";};
 easing-59975={run="0zdyvkqydl713p61izpcp2yz6n2rfsf853pblh6xgsjj1vlhrr0b";doc="1f8151jb5nzd8hj3sii4ca274iaxscv5w8fxp758ncshr3bv0avy";source="1hha1qs4wy6s2162w61gpik2hrx73r83gja1llbq80gyvyfgdssj";};
 easy-19440={run="0jrza9lf3yf4d1wm6nzwv5iyfia6625fjvflfmxsscbmwqickjhx";doc="0f72bawmxrxqk60xb61y079bqpxj8kmvn167plbq5whq5b1fsxfl";};
 easy-todo-32677={run="0fkwlzgx20lj44cvwv8hqv79v528k1gghx30lvqhg44wqirkmy86";doc="1yj3c25mhkp16n49riza4qchr2pqycqmb2k80syn5w3dzrj021s2";};
-easybook-64976={run="0974gl5ygpgvlmk3qgf1nzgap52in9x66nkfz17lz3lzx1z11yh7";doc="1b7270i9a3jykw09zyfczqkfvkxh1axyz61gf1myqj4ijn3610w7";source="1hf871brkkg3vaaasia62rmg4fsdiy087d9qpy7l6ix02s3h2c0k";};
+easybook-69411={run="03sd459lv6k8v1kss8j62pq4fnd45rylxa6w229sh54xmzpfpq92";doc="1ac88h085rmcm3r25dq4abdnb46pksr3m9kx8hw62jcf3vvvdc31";source="1a3cxpm0hwcy7bf1mrsgw77rl5sgi9g6ckv6scsmlycr0bw4an98";};
+easydtx-68514={run="0pfd66n156hw6g2s2p8v35gjykacci9kpyx75zcl1sw95ry9407g";doc="01qw09bkafjmkmhg3wqqgw8javrar7zxrf9hr3c8xy14rc36qkyx";};
 easyfig-64967={run="164ncaq1l6hdrjp0zinynf825hwsky1xam2yqxphhk90438n5hzk";doc="0hc63z5456f00a2x70ckvf3r54zld4d3r63a8d4ra7502kk8s9n6";source="18f4bb9yf3f7q96w79rhx8h4svlxnv0xc6xwcawav63zsk40mk7q";};
 easyfloats-57204={run="0vbg5dz6wxzk20rn51xv7v526qg8m0ih3wikabdf1bfb4n093k2k";doc="1ncmmmf2w313cpsc9s4w0c3gzvx09r26gwlxhr9rszksvd4y7fay";source="1ih161wrkxf8sfm0zyl2m9xgmff4qs6qvsz7mzxbjl1j2zxzhhf3";};
 easyformat-44543={run="181x0sycxhwcfna2wblvijjs32zvqs6xl2am4hz8204mk321rjsb";doc="0fg7y02717rk6ikw32qxn6iw7l59h5vc22aif6hs9xjnbm3nhhfr";};
 easylist-32661={run="1ghjps30fa1jvfkxrzaxqvy5ilacdyms6dl8bf2qg6195w2sgm33";doc="13wgq2pz9jw761p2yipf23k6lrx66bp25l50446rp1xz47yk386g";};
 easyreview-38352={run="10wl0aihr4c55b08mxafr0jd1xaz640p2kj7n63w3wqxzxlpq42i";doc="0nnnr4l1b6qhp75n646pd446s7c3pc4fxsxw84gvfqgankfsx3zz";source="0p7xrqivvb685d0xcljyi4whh5vr6yahskdl63ynw836bmin1b3z";};
 ebezier-15878={run="1zmsrs7dpw5gwh6h0707gxcpsnbb8qklsqnyr0q30mziz1wqhdvb";doc="03afnc0nw7yzv03n4gq38js3y6x5v0kaxi5psmnzpf2lj0kfa7l5";source="0492q2l7yrv1h51x4swqzfp74k9kb989m0lxbgvgffh4gl7zhi5w";};
-ebgaramond-64343={run="16k55zck9hczmizx00gksdclfdhk4xgxlsq3hww2634xrky21rik";doc="13mj8wf4i4nxqbs69s9gf4xsq8s01xkw245npmlxxchi6gd1jhfj";};
+ebgaramond-66604={run="067amcvp0bifrxyxsbkwj98g1j4m4mis3dyfm5faa6k53fpwzrgg";doc="1sbi8vm5c1hlf65kh30r21vmy817y8i8i9l3h17ys7dfwi0d4f85";};
 ebgaramond-maths-52168={run="1n8xfa9qmxsrpy78h98x95wks24fck3mykq5n8x0qasi4fabclnx";doc="1x4l9mi2cc1fx3qbis2ibshh5wlfn3sypxcrbcr9cwwhpkg07sqb";};
-ebong-55475={run="1khaz8whw26znba0il6cam65q5sq9fb69clsk0s8qh26hp9xmlnw";doc="0fa0kdipnn5hgfpjh8rz3l9zz97i94v45xmsxjgjn40xqnai3v27";};
+ebong-67933={run="1skwh2sly6bckgc05b44cvl2pvn42y3970rvmnlh9xm2x5ql015g";doc="0fa0kdipnn5hgfpjh8rz3l9zz97i94v45xmsxjgjn40xqnai3v27";};
 ebook-29466={run="1jy79jrf8cd1rljg9f3g0hzkihxkpybvbgjnkzd5y6cfz7zaynp4";doc="13cj8a88qqgi6kl1d7kb0cizl4i2pjm51hqnz9q03249av3z377q";};
 ebproof-57544={run="12dqzyi84jlzm75d77crxbwv2nzyw8raypdj60bjrn6kifav7v0m";doc="1d6g3v3hskgd9wrddkhf7qxg160n6qrfgzxfswajswk0kg2w3675";source="130d3af0n0gjvnm0ad3g6pm8dy1w8zp0q7im3gv1kqbm7k5h0hny";};
 ebsthesis-15878={run="0vg8n4xrlxyjx88yzlsr82drlrigdnb870p0rxd1nv2ik2i1jzri";doc="0gqh1zxb1w050a9dqnc5vhx1jgmk9kqk9k591s05xckidhnpp2v2";source="0rg2bs23051ravdqv14k6yrrc993xpxf61zi8b94f0rjm3mg8f89";};
@@ -1146,7 +1160,7 @@ ecgdraw-41617={run="09affkfqlsrjgn546h6fkbzi4y7dy9zgf4i5a8kw6lbgl631gvid";doc="1
 ecltree-15878={run="170bf0i0g2fnmmv9qh0jrdv7xn2xd5xmsw8dpvw8rbxfmn94l52b";doc="016hlxjhfzn2pgcpxi7hw0wnfd25idp70jvig7p8614pvkv3bsby";};
 eco-29349={run="0vp39dva31kjs4ckqdy49smhicq4599mqly7y9d9xfz6gly6z9zh";doc="1wb866ilp8hmxndqys1lpw6zb3l1nyl583z06vh8nfys1hp0x0m7";source="1j3ik11vjxc1dahd0p7jdcjjqq9i89fnd9514s1lq5499h8jg159";};
 ecobiblatex-39233={run="0mrrb3bm54d6rpwg8i534wmwkh7v6qzysvd020pi5pph967lqp54";doc="0mhwspy6k7ixjjxk5frwklasm0xzwbwk2lx684ikv195nrpb6y8b";};
-econ-bst-61499={run="0wdzjilmh9k73q25wdprppnjc0xkas62g50spkdrnvr4pagvnvch";doc="0y6qp5hn658gfwavkq4s6s8xfxy6lckpfsc1zvpy7jc5vkhhpwa0";};
+econ-bst-68761={run="1jhvw59f913d35dx6zxr42bcms0i0d12kxd832km50kqi08wb50m";doc="1akyhlnd9g3rnw6kqi6cm4h0mrr1f3rbjii36z4qydl4gri4rvp0";};
 econlipsum-58390={run="0xca6dhbz49zxn58g5bc2yis2zci9v5iypfh3h53rxhlkbfbcqln";doc="1pb6z051r40wp8rv5makhaxbf23aq5j5gm6pw1khvhk806rdig4w";source="0j26l888qx5q5j39875iab4106fkn3ign9fmbcmcvf42yzx7mav9";};
 econometrics-39396={run="09zlc6943vf9r2n096x6s0xwbyl4lnpcv8a1hmn81s5czawkrqbs";doc="1bv3m38gp92cdwhvpwrhs4p34hrmr8800js6myif4r52gnd1q4mb";};
 economic-32639={run="0jyw807d23b22md2ib7xkgi2jh4mr50pczjbsylh2gdgsplxgaw9";doc="18jn833w1chbi0qamdxbrrp39945drslxd2jkzi2g8wcca7l5b71";};
@@ -1162,12 +1176,13 @@ eemeir-15878={run="0hxnd2rxrm56vblrkvg01c1pf5gccbmvd9lvrwlch89flxp3fiyd";doc="1s
 eepic-15878={run="07hg546cp5ab7x4zq25m7z184mvg7hyql7dsbwvgpq6hyz5pqzyq";doc="13v8n27iw1b7qvs3baqqyls9cp2mqbycrbax7jnr8mfvp83jmpkz";};
 efbox-33236={run="1jss3bkgyl365rkgzil7xp4pab8k00w57p60s2sh8wrdy10qjsda";doc="051s9yc05ai0yipwm5f5kdqxgiyiyzmzyxf8rbfwl9ir90k84fq8";source="0fcrnrfk6yrdhj25xmchlaimc5qqyhri287b9pwdwsxlr58wgx9c";};
 egameps-15878={run="0y6naagmi9qii1k4qcp4svczxy5vbramd9wg1ixr8xckp806kn58";doc="0i36znlwls01ch6kns5ikw90nbq68pn71gpvfizf0x9ipymqwisl";};
+egpeirce-66924={run="1ld3k182k7m17pixv2acn4dzlcrkj973y2xjbw653xhs2g3mr1va";doc="1mldpazfnldk4q0r0ddd9rdg9ar6fvabqfb3r2g5c0aff5v2p30h";};
 egplot-20617={run="06i2jh1srww8111c2axcwn2lcs7lwdgp7npn2qpi2x7g38i2kkzv";doc="1silqbylbkxfyzacmyvc3kf8g3md8931ax1s877p5x5zi0vpwbz5";source="0qsyqhmx0gcl13hlhbia9rq82kkkhc6mhmzp56g9b62qy2wl1ss8";};
 ehhline-54676={run="11db4dh948g744bynf1ydlg6jk562picrzfbh5pszxvfdag91kar";doc="18jr25hnp8hg3dbjgf16cskdhm6kx9nxliiggqixb7c1ii6mmn2v";};
 eiad-15878={run="15l4wi5hfbx8lp91jddxwg073z0r42qf93kvrqv7bwhqisk36x2g";doc="074iirkf7fzdxik5yq4jjk2p8c5k9jj8a6n178aw767j18h4n2n1";};
 eiad-ltx-15878={run="1ifiigww9nk6hw342qj1rxzl2b94f54cm4vvrpffxy9qggwkd2zx";doc="1h4cm5b0mllqflsgfcjdh97zn3nn3d9gwa55w5kyimmxgz516mng";source="1bpy6f6d81n95x81rgpz2r1vzg9gw04309shnx8a9jsx17fnm4nk";};
 eijkhout-15878={run="00y3y01jpgzww1x6zjh748hpvizlrbgrv04p8aq3cm2pzs0g17qk";};
-einfart-65475={run="0s2ywhhs0349xw120agj8sx7fy2npdh4gk8f8hrrbibn8iz0limv";doc="1b9h43r1qa6fp6qzgm84iwjbvnimyk82dz287j9vrfgyddqi0r3w";};
+einfart-68376={run="1xqwx5b9fj88p10mh8hwjqs7p2j4p62cj5c5lq23l48i53359wcd";doc="1cb85l2pvgw6qf3lln7dw6n5wlvvr4pk9l4yb6ajrdl6lyylzifc";};
 ejpecp-60950={run="111sr2lnp3b8hh0hyvdf3zv6nr3m2ghl8j2zklq0fdimm7ndmqcw";doc="14ww6ilq1l8f8i4fcafl4v0im39gajkr5189180lbrim6wk8gys9";source="14223kfrwhi1hby3lqadp70pn9ykagf1cwgqhapm5856iai4ravi";};
 ekaia-49594={run="009wk5qyv26rdi9gjbaqxcpsyzz6l5w8b0wrg9avspq81hrjkg9h";doc="1rbcnilarzap8kdsvypjwin1d13xskqq33wg6p0p02b8gaxzf3a8";source="15fl2jhhv01vl7ggwmddpldkmwdj6gj99851aczv47lj24w093bc";};
 ekdosis-61113={run="0drs97iqw8018m15hls6kg222r0jiyqg4n9ksrgrl9g2sd25h65d";doc="1x177sag8ki0pqsbvs6vjk07zf45wg8fmq9s50v8y4qc0pn5xa4v";source="1l6d4a4smjmily8mf6rlx4j5354jrpax15iggzqm1ncspygj0mfd";};
@@ -1184,7 +1199,8 @@ elocalloc-42712={run="0jj85nyrq2y7w7pm9pq8qdj3xszg5s3a1j8zx2dvsy6a1s7mzd8i";doc=
 elpres-60209={run="0k8jcp6bgzphlg6kh0krlm95d2rq9z90hscsncq1m236hrzfad3b";doc="0k6ygcd10q78h9f28y091l171bmaw7ibk9npi3kpx33vmass118a";};
 els-cas-templates-62931={run="0lk027m6s6z877lilqv8sq3s5xcmmqqhlhrh8p1kaalw01g53hy2";doc="080sa0kls4w4p8lgvahk5an8p6lmkf5kywbzj1wx4n5mqsj5mpcn";};
 elsarticle-56999={run="1jjayypcaczxw69dk3v69fj31apics2356l934kmag49rwfzxail";doc="0z7iywirs24112fmdl8fm818320s3ilqlgc7xi6nl4idjakhfmi7";source="03pw09cw4hd0ixfa88mj7bijj9r3b6a6kg53q4hzzzl97bf6v5yc";};
-elteikthesis-63186={run="18i8lb98kjgw364cihjrh6xfyc3m25k25afgbwrx2pz30vyx4lpz";doc="1dshlrf2m7rhrl15rfabpx40iwvmm0bw3qx9lw3jrxz66b6649xj";};
+elteiktdk-66821={run="010vxx6ddmbcj004a9f17wq6a9myx7hfvnmas1b6qsch6ln99wdn";doc="0d9fq58svc80kx557kmqa7dfz787zbzhpaifswkh2f0a327f47is";};
+elteikthesis-66820={run="1xrilac7n04s28ww54pdl6zn2dwnwl1lqc7xzhqkrinbfxgchg03";doc="1pkkwbb4ialcmjbcyv82psq6g5qyzxg8hgvgp2n0xybvvxh4z7mn";};
 eltex-15878={run="0k782lxa85dsmqbcw5q8gdny1lygfsv5h2d1d70f6y0df17r57ad";doc="1hshzr96sn318b7ssv6f5md23v997xahm2232c3kns3rzpfssy21";};
 elvish-15878={run="0hz3cfydpm0sq6s2xp8q44k81xxhqm5mmrx5aqn5wzm0kr52pmsy";doc="1zzzqgs30gbhy8ja13zq9b2s6mf1m47ms5rp33jc5xp70w5cjp45";};
 elzcards-51894={run="14vd8vnnss12flbszsg8357831r986pk7hhpcwqln53r6x5kd543";doc="084zcf7dqig379cqc6ahiqkm8f5jwqgiizd6h5ki28pcbshi49rr";source="1ipavy4km50d8larywyb63dldmawawzfw3x6m5nzvi70zkx1f6rw";};
@@ -1194,6 +1210,7 @@ embedfile-65528={run="179a168b71h8zkdcfr7krcm2addbin9chckaczj8a8ayy6xr294l";doc=
 embrac-57814={run="0n2ll7mxgw228qb3j0x111yyiaa4ikq4797g5k8xyakjmv0w3sv0";doc="1lqapcz7iv8z7df7cyddg6ylh2b61ndgbfhnfa8abzgsqz1h8sjy";};
 emf-42023={run="1w7whsff28cf3p0i8hii1lklb8i541di3g4z5iv2rfm4xa5m6i2s";doc="04qq6ljidaqs2i4lxp3m1varm232rhd026qirvr8q10vpkd6grad";};
 emisa-60068={run="120aa7a4m1psqx3wclwzghq0fcyxs8djlf79mp2ds56y0mpsqx5m";doc="132h5m80s24w51px615di388r7wkkqp8ihwapdz770p5pywk3c2r";source="1pspisyb3pxj2nfkpzzxc7pghackbl1p9dwbr5iqzwwv37bxjgli";};
+emo-66944={run="07df21ziq1ajpmff74w5vcsvh0kd2dx7vc7q61syqr2yqvj635cq";doc="130zqvzv94hi0h5m742kn7vc8110cwjd3b59dxdpihm76gqpa9zh";source="0hy6pvyxg0k478lpdfirb92mx28w27dxzms5al3pjq1mhr04bmf7";};
 emoji-59961={run="1pzx221zrczj26pdw6ijai6m73zgbz6z14d5wlhv7albrh4ppxgs";doc="1531y2a3dfmv2y2xa7xi0dpdkh61skk5makiyzs8mz3zl19n8nkg";};
 emojicite-55131={run="08y8qg37m8b3qf2wkbg802kmx359i6ki445ljjnxybs7apvxjpn5";doc="1iwlxc5ygq7l4qag7yxxas0rpcywmjcv5pcayrk5mz34xr06x5f8";};
 emp-23483={run="13iaipg8n1njzbnd8s622irizd4cc1cbkyc735mplvwq10q2jxqq";doc="148l1xq42avnf5gz1sqjcdprnkcbgsii3fm1jiamx18175zygsdc";source="023jc6v2l580x2d480x11z6rlknjjvx8g3qkcrvdi778h5m5bb94";};
@@ -1218,7 +1235,7 @@ enumitem-zref-21472={run="1isvqbp7wvib81r0yn7sngxa2dygkfm4jn4rdvw0kp8rknam91qh";
 envbig-15878={run="1szn3ngy2iwzbc9y5fpchr5vpx5alr908q8bfg94lylmb8lx2kb2";doc="1y778gc6wl11afjjv2szypc8jf1g7gg2s0lvhv2skl1n3wpb3x7a";};
 environ-56615={run="0in2a7ar0c6ji7qhrbgp4bglcr2cmb9imxch8fcrwkims4g3vjp3";doc="1pb6nmprhz3j9dx2h7sw0y66y1qlvhkjl3ip28bxa133fgqab148";source="1jkbi2g2s13rngwqvr435i9n94ycnzp9xa8szik0nnmj482ah2hn";};
 envlab-61937={run="0q84vy7zbjqrrvy0r2j2hpbg9b5vwbwk860q24azms2zxy50a8vd";doc="16fnyfvvixp6lfgvz32w92q35s21c92556qxbgpcd94fd1pw2bki";source="1fygp7wpyzhzh070sa61qk17h05rqr4m1wqp78vpp0awgkmdji56";};
-eolang-66283={run="03zvmjbn60s1cmm5b2saz4vqpyjhkq88p5xb90d73znv87vnh426";doc="03l8mr9z7vfdrpypx68y50dj443kknnv6mh7416p56i486pdvaxp";source="0rm07sra8mg580higk28skqwsl7x9nbsqcsa8xqyfgcpcssbzgvp";};
+eolang-69391={run="0iiaj4hc14b0ln84pb3yb3rk655hxx5w2gjgkpa7mlw4p53lc7dk";doc="0r1vffb9mi9p5zf26jaimd68k9yvlnr00xz2j318hg4chda9v78w";source="15z7pa7992c18r0n7y0rlaqn1id6gyqgxqwgv9g4yaj169crm7p8";};
 epigrafica-17210={run="1kawqgy9kbr535q1v84kk29q2fwhg6yzmgjd5i7dyg06cy0g6rci";doc="06ichmfivx1v2y67f5nxx02v75wzci6m3hhg87kc4qik61yp8lgw";};
 epigram-20513={run="1zps5067mgi7xq3fpjvjln8i0rz53j7qn660khraq8ribv4glnpf";};
 epigraph-54857={run="1lb4wzjcag59dcfvizvng9s47v3x2af6v62hc1x3ck3fqzx9haa4";doc="1h13sgi2bxknx2m5kxxlv9p4fxf1pxh1zdwm98h3kamzb4a4gm81";source="0kqfrmx732m0a6k21iiq1ar47ff50ri3f5wy8ib6ssbbvd9agx4l";};
@@ -1230,9 +1247,9 @@ epsf-21461={run="1i973a2hp5ms1lzgf3g2b73j34xymak9f8wz88fqczcvdfnnag2g";doc="0d6j
 epsf-dvipdfmx-35575={run="1p0syahj7liknn447lb83p2rdv8xazpgabk39rjxga05pfn3csh5";doc="192x6cg0dh0j9dknwb320g73hid9px635p79idr33x2zq3gaaw4r";};
 epsincl-29349={run="0cmjwns5hnlqi1rk6py4s07kbgflm046pycpr1lr5c1dacmiycxj";doc="06cyyhnphdxigpq4bkg28rx8h9kgmb3ywpbdak6v6ivvlksxgnaa";};
 epslatex-fr-19440={doc="1xs9977g9g3i6sipkf7i9jdl8sdm69ci3161a4p7k66qbizi7zvb";};
-epspdf-66119={run="1yjga00imbdfjqdqnfl9k4dhyacqq7c3i814pn5a5fz5bbyv66qm";doc="038fw9ycr0wpaq2z2cwid80lizl6vvj5q0i4bnx4lgxkfa82i92z";};
+epspdf-66115={run="1yjga00imbdfjqdqnfl9k4dhyacqq7c3i814pn5a5fz5bbyv66qm";doc="038fw9ycr0wpaq2z2cwid80lizl6vvj5q0i4bnx4lgxkfa82i92z";};
 epspdfconversion-18703={run="0arf6kmziarh1sgani0bnp2jm8psxj937hrkaslfj8fm2s46gcmz";doc="1xpj5lymdh9w2ary36sx66ib0hwbjfbbhhcipdq4nkikq7a8zmpg";};
-epstopdf-66465={run="1f46zymj0yd74sw5a1yyfnjiqszdccfb7fnx5bwqicml3b1a7zwm";doc="008s96msj0jxhxynsckwxmhqnz24zw5bq88hnfd56wiim4iz6b0c";};
+epstopdf-68301={run="0rqfnd8x45m923lr4fwysxk3icgnpmzrdj2w0gif0dg4m1d8sggs";doc="1kjqzi001nxbrikxvc9l3fpc0pz7zhmknqghwd8423flym610vv9";};
 epstopdf-pkg-53546={run="1bd7bkkk5hbp0bfzrvjpmfrrvil9i2pzmzl7aaa324q7w4f1w67k";doc="1lwv6av0b4v4vzzk3i27diw42hcdqzgvis1fk4fclkyqz7w0ai4d";source="1qmvc299bzgfrf31sa4027rgkq3yjg57318mbx4gl4cwznxr7zh0";};
 eq-pin2corr-59477={run="10wrhqr55r45azk4z840wphwsfcm6mamzafijqgldi2g90cp0hsf";doc="0ii5dnaw1lplccp18gjkixxsygacz44r834r0vaxfkjmcbx858yw";source="0l6p9bwaszyzj794vvyw3xq8nfaypxb04ixf25wniyg3kr54a9nv";};
 eqell-22931={run="0i0n1vb43vq2axghik3sbs2cja2fi78jl0q5xcrkbn5gr6vi49md";doc="044bm3jyll74jrxh8va8g38shjn3b7wzchjq39n4rjp3238wirsm";};
@@ -1245,11 +1262,11 @@ eqnnumwarn-45511={run="1mv50r9g43si8kmdmf3kgcjmw10kzipq67ssd3vllja4pn9yzmz6";doc
 eqparbox-45215={run="1bg49m7nzw20g2g51g07d7sgq0sjiisrbaq4ca31qbybr2rxcp12";doc="0z86nwj06zn55gk32wwlxbqfb12a1fcgqizrpagm7yp0xr99b8wm";source="1ny9mcnb76yds4l7q35wdm0x2vzia80aaqr12idybkzi75a7b2yp";};
 erdc-15878={run="02sf80cadhv7if8arbjcsgqkb0hhdrlpq6izqgcai6vb7xsc6niy";doc="0nv1yqxjmp4mfksmxm373pmy3zzbfcfvi683dalpslzq2qyz20yv";source="1vpghcpm9a2pvi3plh7pjki7sna3hkzvq2xj9gzmhqxcpw3jskwx";};
 erewhon-63312={run="1nw8y88z39wm0f312a8r0hwmdy85nynrpq8k78l1iabq9i03316h";doc="0wp19ficxpgay4bbs1hg3yrxmy2hlslgyawa03naaxpy1jysx8pw";};
-erewhon-math-65684={run="0qsb4fxsv0fxagmia1bxk3m4nl6aprczj175gca6h3x5n95kprwf";doc="0ph9qzmpz21lxfh69r0m4y4qj73ld236qhfx7l0rd54rabj2nvcq";};
+erewhon-math-68990={run="0ianrz91a3wc11s3jixilkzmrhjj6cw4h88ic12v1njg48d7sl3g";doc="15k7gzyrwqn3lr092sbcxfq639cy58vwgm8sqpnqhrbbzzm56304";};
 errata-42428={run="0hp8pls350swslim7m3cpnw23v94vnqj9avfvx9hq0bgl99szc5c";doc="0h30iip57km31074cya5fyhlmyamix8anpk19rqbsfb43h3988g8";source="00bdq20dwwmq0nw3c271ah0bclzkzkwbr5ak4y9asnab1g6fl5yw";};
 erw-l3-61799={run="0klwkq6x58bhqgc849yv68vg7w8ivvzib8rl84ipf3gl1hk42761";doc="0qkg31gi4jhgvc3i42cbj00ccavwrxfmygngn8qxfgmsphx3a41z";source="08lh56xzj3wjh1dp72ky8ckga8k73d3alf0vxjkwb6b6krzz4gm9";};
 es-tex-faq-15878={doc="0wp5jx1qs4yp3y4qpwqhpw7rnilw3vb2z5xb4lzwph6zw27jf6sd";};
-esami-61596={run="1v5fzb9ws2785ylh5swfb0hjp3x8m74mbfzd2c5z9l3wbigy8kpp";doc="1s1x0mld47z50dqfyhglsgwyjqzphky0zqy67jbkrn7mmxzz00y4";};
+esami-67707={run="143pdgx8lscxhpbh87pwg57m01pcmax0h46g6f3cqixcdvfh0qp9";doc="146jgm694cvw7wn15q1p2ghzspb1hlr5hxv1ddb89mgkgviqx3iy";};
 esdiff-21385={run="0p5d89r6pzsf0hzaky89843pa4z2n4dgq3yg8li4gb5m2b4fjfkg";doc="0jw4rhkshni47zdk18b3gd4amyhh6v9a1mgja58wmp2vrwv1nn2f";source="0iwkbkmkl31wmdrd1wapd94p70mwd45lqld3b7pfb0j287nzkzl6";};
 esieecv-59638={run="19vmccxpv3dp1ysicrj5sr6xrsqgaaz9109q3gf79gdvcfp0g7lm";doc="0ji6pf8b2c3ka17n4qgnykfwhy7nh3zp87cg913j3rah0zk6fqzw";source="0r10sipb7hd5dpzsh97qiqb5adx5j6iw2aly49f1w0l8pxi0fyyn";};
 esindex-52342={run="1vxdlbqc3j33gdvy04pifd0cdfvnjwmpqbmz305g79733hvlbw55";doc="059y8wnnzqn1kfy5jhbpk8zi4lgx7r5s6xg6b7x3iih1ccdyhwma";};
@@ -1258,31 +1275,32 @@ esint-type1-15878={run="0nfvka430084h72w0gdlvbxxlay9lp5z76bckmr5vd1vqi4jz8kn";do
 esk-18115={run="007jcqvxp41h0ky25mgn2k3qdvyiyr3vj9mn6ml1zsvy1ymxq4dj";doc="075wb7q7z5idhqh39isvkacpgacfcv966af904yk9ralin5fwbr0";source="022n8rh8rwn9y4yx1rqpdynw2lpm8npwd45y88r2q29qcd9f62qb";};
 eskd-15878={run="0cpaix3x3qw5mgaim5574pc39hypi42kmk7yvnbvf3qj5bv7jkyz";doc="1zwpxmr721b3ij4b4zvkncddy85d9s9ma7llajp36qh4vl0bc0cf";source="1kfyrzs1swin4ph70ifm1mnsm77dprd96rsw228liq1cybn5bgii";};
 eskdx-29235={run="0h11378qh1y4c4ac3vd9pcl93a09kpsh0vyqcg7mfn01dgmqfam1";doc="19bcl4szagigbd2jrlz60vhhphm86667chciwlk05k6hkflg595w";};
-eso-pic-56658={run="01q25ka4aqpz46z84ldhd5rs3xcqjk6rl7j0nhgw4s2lznrvrpry";doc="1fglwrzd52fv11i3bq60d9fzfm4h4zh003nks9wgprdj9cz0s0cf";source="1si3j1cylgck60rqlk5ral8mfdv348xp7ialwakynqzf5yv1ak25";};
+eso-pic-67001={run="1j340mj5ccfb5z28dcgs76jv05yv2vkfqxszzkd2xg4jkzpy0479";doc="11qlj80gnfqw496r5xa6fg34cmp6sf33k1drg4cpq23y9slrwd24";source="1gh64sql402fcg5k6w19pkx4n3g1aviw006yp1zdaa3wqnl1skly";};
 esrelation-37236={run="1gjwrnd63bb66vy7f74alxshcr5pqz8g8q178wkgyrm37xql6kni";doc="1nnwpgjy0mzc2h7sp2igqwain2nz6374qn4mjvj6g8x02lkc1hsa";source="0aqb63mzvx5hl178kmy6aawyv5ri8favficfjjmkpq3d4hgnrwl8";};
 esstix-22426={run="1qqs88wpabdx0y92md1w8klmk7ncbpm2jqmi0j5sj1c2cn82mp1a";doc="1zzbwvv8lbd27cxafj6qc5sml4r44ymrdvaqn2h966alzga9ify2";};
 estcpmm-17335={run="1v027r6j4vxxvdccq83irjdj1gf6kzy5i9jb1bhsv7c2gdf3ihyx";doc="03q3z9if5hswrr086zi907xmjaijh266l5g9a140q0fivjai4hcx";source="1qb1v30ijky1xhh5dahgprp3fhxfm6kvlxgb059429idvm5ap90g";};
 esvect-32098={run="0fgcy91ypllj3i706znwwzri36ja2ca2inx838q08zbs8gqq4zah";doc="00xpfzzhyrh5p563faa7ks0vrrc08ndcpn72a72jmlhk8y8bn7sb";source="1han75c642d3qmr47ppn11f7q1lnz8lcwj3q39nh1f81vi2w6li8";};
 etaremune-15878={run="1l3xz9zh5f3wj3v3mvq9xk4q6vc7k01pq3ivsvm0qlkni4bffyja";doc="16v4vsd7dzihnx72bdz99994kpw6r5im659hm51w5wyh8gf8mp29";source="18rcvjpyks01d6qkq61rmngmwwyxksh4i5dmnvq8ihx4vj3zlgqx";};
-etbb-61872={run="1qpfadd544dzf61q7p6xirkv80bqz9jvvx0jm5rd3jjm12d95rkl";doc="1hiiw6hhks2w4ngk3aw992swmxcfhnkf2b92ryspbmd6mycs70ka";};
+etbb-69098={run="14rrzb8c1i58iypi7f1wsj9xp2x93s37s030zbl7xj8aw9j5w4mf";doc="0vqrl9i8mr02qb12czy09x9vrch6nbng04618h9ampxs1m40sha3";};
 etdipa-36354={doc="1jp35apalaa1lh44dbn1zayavv1n3wkm0v69hgy8vdz73yp5yvhz";};
-etex-56291={run="1zk4dp55r1yjwy1bpigyzbfm9nh3np544hfmzzfhdg4i4yps87k8";doc="1nsh69hzpk33ljng9g6drrrb5c59cm58a058damk3s3gzfy7a8a1";};
+etex-66203={run="1zk4dp55r1yjwy1bpigyzbfm9nh3np544hfmzzfhdg4i4yps87k8";doc="1377j3czf6s21f7dr4qswzqvsh7xzzqcyjw771cswzgg7z8k66nn";};
 etex-pkg-41784={run="01aa6bn8d46ql8aw8kg9k2c3x611jpd5hx3h6g2fqb2lvjqnr1zp";doc="1hcir648vyypvqa8r710mj9qldir9yp2lq7biv3s9w1vl2ssw18d";};
 etexcmds-53171={run="0m0kf57wcmy50qcca2v5jb8z4h7z82pja82igmf6gsm7fksm3wrb";doc="0grl3svqzjh5bdg4jwzmqaxz7chkqka0vn0hnjwpyvm52ngmckyk";source="1s7avnnlr4g8xjdfmkm82aanz0k0cnhv2dyar30439x2indyw68c";};
 etextools-20694={run="04x0a0wy3avac8cgjgq7npiy06b0vrkxa0hizpn4vkzv7xbq79yd";doc="0z04a5f4c1xygqsgkss4bh0s41aqv0i61sh6x9h0isrqlhbvrzs5";source="1f0jr38lbsrdjxhihxks57y6xw37ghgmydcq48ll14nywx07qa2l";};
 ethiop-15878={run="0h1h286nq6f2bplxxkpdg8mr70ip92c7mkj9lakxzcwacsj849xy";doc="1aqgl8hvapg3p0f3knpirlgnifpkpw4jb22zncp1s26jqjc9wdcr";source="1cc66b7ad2kfs4whzbnqdzfswn32y8h19bj3ad20ia24dggir5mv";};
 ethiop-t1-15878={run="1xbkh7xx71d19ghwfq8bhjnf7jmapm13hp2gr6ggzavcmzf12ffz";doc="1lafizx606kv455bhf125hl2xqhndd5mblkd0zyvqgyir9bawcd9";};
 etl-60998={run="0cg7ppbc7nlgmcnri2iz2is8c5kj03jn0crw4m5wmxvqkkcg2217";doc="0jqpybirslqyk7g9g27qbbvz3k02m2k352fxl2w1p0h7hhgk12a2";source="1z244p46j7hkzry4n1xdbzcszjgwrlxd2jmjblbrldj2ba9sq9nd";};
-etoc-66351={run="1i36wkad8kywhnvfang4y4h5zcwxbc5lis73z40czkfkgrdvmk1y";doc="0935nk69sz02xpsrl694zxhzh70yzz1sbpqd80akpbbq6yi6wwn4";source="1i9gq9fcgzpvd3fjpgxggq80jqnrgn26v5nzh15dkdagmnzjx163";};
+etoc-69343={run="1kvwyy0wxwwfkbmsh7v5kdvcb9sx7ywzcv5cx5nmv0sh92ah5dgh";doc="1lh8pfcj2iixm9r31cawfs7vpg8gd4kgjcj9yyqx0i2fksd1gs0g";source="0clv4cllb4nfchvc4zb8k25wzlhl4k5hnijl3071sq8aldiaqj7b";};
 etoolbox-56554={run="1g944zizyl05qz6lq1k13hv9952r97gc1i7is9s5fckz664075jl";doc="05c3kvfwvbg4bxf3wza5rdvh98mnxadf818rsklxa5g2lz44jm76";};
 etoolbox-de-21906={doc="1vchha7ymvj51jfnvl76rxv466lzfpxr6xcvwafxhi78w4bk9yry";};
+etoolbox-generic-68513={run="0w0mmw2f2lry84jfx617saj29nkc620vkrkg1kmnnxvvxqi7jd9a";doc="0l7kbicibm8c6p5yspyr1y8aqh5d3bswa9h58787r4hcj4pr2hc1";};
 etsvthor-48186={run="19iza3bimr7xxbajmq50iqd6cc1h82kz2lixwphn9568d5k5vjm1";doc="13cijd5cx7sks5jdy67hp1a08f4y223l0hxd3w7ljnvd5azzyc1f";};
-euclideangeometry-60697={run="16fvn2wnm8n9d37z6mm7s812qyvzxyyiq0f868gjjdb6a1sp9vdn";doc="00s2f0fdsjah9w5lq0hrszlddyc3d94bkj3zd8aa7rg3sy2grjwl";source="0p3bwql4rzllyiph54z0nwxnrgwlx3lr6x9zi872gfsbq8khgsjn";};
+euclideangeometry-67608={run="1pa69p2p6a4v8wz3m32xd7vy1km9zksszj7zjyqw36gfcpk5sxlb";doc="1d6340xmamzrcsi31i0vifjxhy42ml7v3s6r1r9v6vzimh1iz5bi";source="1l8xc044kcac6344v21dfysc6la90vv822mvik984zcnkbhxy4jc";};
 euenc-19795={run="0lh0k5g6icbbzl1xzzcj4sw7vjhqpn59y9xbc6cn58klpww8ywdh";doc="0likhzn8afsq302aiyjk6adhjimz0naqffjrj2s06c6681z2inh1";source="0bwr4cabh3w4jbx476ygxv6afxj6sblszr47awr2nixx0m018ndj";};
 euflag-55265={run="168c6y6rivahj6cw377l54jsykpxaxvv3nbmr80w19d90h4sqa5l";doc="1a65rasxx88bkz3bg51bmzdbq67yphljaa8mgkp2b69fjsifm229";source="09g2gn9ci11dca9s8bgdrjaprzb66vb47ssfnj6n061glz9a244z";};
 eukdate-15878={run="17r61096angayvbdi9r3d7ljb1a5z9q9r093kpgdsi11ahcgsr26";doc="0071bi5m6v5ak6g5pxjxzq5y5353mpdjx4f2dbznkmfd23wp8j7d";source="1p6vg8nj8qipj59jwvp4izf2dv0l8490773h6j87wlclnnnlh2gq";};
 euler-42428={run="0f63sy9zs0myb76wqgzww48g7clq6ni9kwnrfjkyyc4lacvd36in";doc="1rl4bxzlmw95pgcf7va9gsrgz89602a9pqvhiym15b5hdwc5cb07";source="0fy3dx3bf8idddxsj29yqd7bsv7cyyg8q9njmb3p0mw7laqrkjxl";};
-euler-math-65685={run="0w6z3lafazlch04a33rrannhnph0555wah49ngnmg2hakrn7bxbm";doc="1zk5c32h4aclsk5zvjsqhrdf71szsvdi4x7h78dclqgdr8jl9vyp";};
+euler-math-68991={run="060m4cizj9gh729yxx70vnj7rw660r7ka2gqpsd3r5jmgcpybppn";doc="0bkz8biyz0mzjfai4n4iy0xjslhyvigchnrargz10zxiyb5a7p5z";};
 eulerpx-63967={run="1ls9b076rc73cbc160ms7df3w5m0x840y7s2mg3wk22vgc461ail";doc="0qwhb6wxm8fviqi5kdy1lcplarijhca0ymrqnxfnrz38z3v4xycs";};
 eulervm-15878={run="1x0zgqw15r5z9mf4pcpnf1bdbwbpwbc49ij7gjrhf9jzzlkwraf8";doc="1bbd7f4dz3xp7ylgpi2wh9jf8nz4z6i2cvphfx53xvg555ln5v1m";source="1if22m5h8ma3bvrlp4jzzhjm410r5r7r2ij17prycj3cpj4r2nl7";};
 euro-22191={run="02kkwf4psrmp7n5mqyrc3745kj82p3nxswad9x8rw1hd7a278y3n";doc="1ajqx7axgqpmbq4kl2gmk97ibwbijqsq6z8ln71qla61j0mkgj32";source="1hkzjy4vmvh06pk8bhkpz09ln5jygvyhwzyznqkrzffay3i89cll";};
@@ -1291,37 +1309,39 @@ europasscv-56829={run="06vqrnfzcq04mjk38q75n1k1dw3ap7z5xnzpjmgss8rl6mjn4v3d";doc
 europecv-64037={run="18yrsk65jpgqx1lma8n0r8ya3izhmp2z6z534i46386858hm9x7w";doc="1mc4bch2jp1nkxsqg80g403r84brv81fn807hn5jq27fbi93py6b";};
 eurosym-17265={run="1bf4vwygyakr999k95ki53fykknizakz9npz2i1h3r5ci805l7z4";doc="0vmh23f3ksc3b3hym7iv7m8rsddk8vdbqr5ib49bjqylppvxrsnz";};
 euxm-54074={run="10dqknqlqrga9m2lgd74zx5hk4qcbkfvlzjgr304p94w3k7pclqc";};
-evangelion-jfm-65824={run="1y7pf1mzvwk9nx7xc8qvw0sqd9lcalm9an3ykcyr0bdcx3729aab";doc="0h952mka2a3sqxafsq44y7056gzzwkzkch922w2amgcwxf46wyh2";};
+evangelion-jfm-68059={run="0vrr3md73dj51rch8yz71fpr39q7adq1ds6jmcfly3ccp9n4wcil";doc="1d2lcdjwl3hd4hl1arbf9dc9jgn2b13l4hkmpxc7g6cd2ishbxwd";source="1kvwwhv5a9ai57bw22pvg5q79cyi4kf35yyyz5yzb8f6mwaj29v5";};
 everyhook-35675={run="11r4932kly5zmksmicapqxndqw4cdq1sg2x9hgffms6v8m5cwkfs";doc="1g9p36ki26vqdfiwnr77jxk1bna7733dml5k4s8nxq1drsklwqwn";source="0hv04cn2j7sf6032jxv18py368zbpp4ya15wv18qymbk6yv5najs";};
 everypage-56694={run="1i8fjcbk3flywzd55y0cbsdmzymvkynvgc5cvv6yh5y6nr514rjd";doc="13drphjv7gzgdzzwd6fxlngm2rprhls60gj4lz1v69sqifymnn4h";source="0vdi8yd0r33ajnym0f3j42ajkc2xs8b5yn3kmklmgx19kpc93ln5";};
 everysel-57489={run="090nizak865w2mgrflmz91kc0b2zmc6fq0xxrlpz68xwb214lzwx";doc="0bhqpzw5dpgq3842jbba9y21yj1808nxrg50339lx7b8vc5d2i8y";source="0aibvqmg2n26dici3adi849a5k20ck68v25vx1bz2f15q4gggd6g";};
 everyshi-57001={run="0y738zcqy85ww3mhwgrj1qh0vgpwfh2ib676wlr514xglvmp9l3n";doc="0ynjq4ibx6rr0qh5lajb5n9skqa3j4zyi533mxc10axp5zpxsjkx";source="0iqxf73n3l1jf32x571rw5wqwvz7nj3bvyqzgizvfpbnavqhrxfb";};
-exam-64134={run="1ybbxy46wn1xz4b6vd6g7y01ijl8a5yrgc6v48jilnhwdh25yklg";doc="0n8jxbi774by3mwa06yz7s2s635c2hiizfyhspq7lyg1v7qhid8x";};
+exam-67600={run="027v4pscys8rmrrrz7m2plc9blf0bif3rjykfhw597rmnmgmhxcz";doc="1cwcz5c0lcil552ryqnwsm9p278nd172p7d8s4jwg3xdzbbgmni6";};
 exam-lite-65754={run="092wb5wjk452i252g4chnjzxysmbhy30q4cxir32mx54z41yf0dj";doc="197mlnayyzgr9v4yf3w6m72k8fqavdy4k2q1c0v7slsvqad320f6";};
 exam-n-64674={run="0j4bi7j167fkaz57wfav9ybv5b5f18ql0gscvdxyf9vh1czk83n9";doc="17jj5s75fs0sxpak8ywd6lmss3iq290316mr5gyxm3v7r26ji8ii";source="1lvcxbdwy7xxjwzbxzrykym96j1qa7caqkdqhhx4qxdry9czpl43";};
 exam-randomizechoices-61719={run="13dqgkh1isrg0z97z7bfd2b952sc2xr7w7ykllhvmzicr9gcml1y";doc="078cryxhlnwk0k01pwypmdkkjlna0fn70kj1xia17jq2xvc2fpcd";};
-exam-zh-64434={run="0mia5k0qd2g28xxyw9l44hrl8xnxn1ip7spf58myfkhlp00r7pv0";doc="1qlm41sq1bsj367alp2a42048y6d3v95gny1k0l31xhkpbhlqj1h";};
+exam-zh-67505={run="0k6wfbz76j0lz3abcbj53pc37psnn0wvzq5bzhx24igmwx0wlawh";doc="04q7r7pcjwz3qni7yg18c2jcp1ir8lb35dw6rkf63z2928f6hdnp";};
 examdesign-15878={run="0y9kqiihidv24553zlijr6fspbayvram1mqgy9kmd1wwskvbza3w";doc="0ddgn0f086qdsyssg4gm6ynlcnnsd16qpvn2g3wzija7ai5sqkig";source="0z5539hv1li9vw0d3jx7q9s844f29wi9xr5z30hvzl3721rnkvzg";};
 example-33398={run="06ld0b9gi8s7y6igijylfvj2qvj3d45z2ml9wd1zfzkpf32pghmy";};
 examplep-55265={run="1a3pdaqzc9jx2yf66vmjg9r4w07b8afyqijl21np6sf7rrsn7zg8";doc="06jqa848zzswd5pbfrvr9lh3i4l5h8wf3v9g179g3q2yb4dmvjwv";};
+examz-67303={run="1vhk3kvmlsj2kcz0ccf3g3a9z5h6ds41dpwhjd1k3iyy6mrb69r5";doc="0vqm75k7xqi40gy116h3rjhlyjybzsmrpnlgmsx8qykll04y4vql";source="0lnr2s33z95gzyw4vjz6jgyhqcgbwyq1lz8rz5wzafbf87mdkigx";};
 exceltex-26313={run="1075b0wm708wj537pgki1hvj58l0pfrdiglalbjnk3gmf18rk22d";doc="1s48mcj49j9jm8vs5nhvljb972vhfng09xvd6kiw01a7i4zpw3h1";};
 excludeonly-17262={run="0zfml40br991mijcmplxlff2lzkn8fdgwgxcam7vnr23kag7lzxm";doc="0argzz7nwadm11qp642r454w8p0swyhvscic71fhwi47n69cfbgz";};
 exercise-35417={run="18f7mgc2lmm1lg13dm858nqsqzga52sw0r6zlz7f0pv5hpc0mgak";doc="1y50izz1z2s52knqn9a1jianq36isyafviv0yxqqx6zdfckqca0p";source="0lpslsk9a7dx5xzr5iif1prvrn399j70wfcqhgbypz970zzpril7";};
 exercisebank-50448={run="1algypm3nhkbccd9k1w5qr6y75hqiinw5dj1h4fbmripmhdwircs";doc="0szpxkmx8qi3zpcrjzd1nzn7jcp30wf9nv8rp77x7rd2yd0sw0dy";};
 exercisepoints-49590={run="0vr2yxqx2ng1f9qybapz61146lvsniv6mjwl1yfxk10qyvdw3pnv";doc="17kz9fyd7cc4pa4j6dsm8h5zpwfr68wg3ndbswgh2pgwwvf63777";};
 exercises-55188={run="1yvdj03hr40732swfsg2br9f4wx9855n7a3whlqjdnczp6545lvi";doc="137g1gvwfxm3gid5xvikrqk0iw75csrkqgrwmh0hda28dd4zbdwg";source="1lryxm36phhp7p269zzf9a200k9k0v8zw8qyqvyk784vmvyilv7z";};
-exesheet-65577={run="14baq3lx0yk02bmxjq6dd0b5y55b121m46w2nqg7nws9hf6sh0mf";doc="1hq91m1jawysk3c38xvps2fnfxypxkn6b553hm0j761k2yizavjb";source="1cbi2saxgjcyq8vj0j3wxc6162kvd6ndzscz21vpjxid8amilf7y";};
+exesheet-69252={run="1qrh0a36x68fs7xkp2grhqz94v49180v8aj95v3w08xcmx5jvwjf";doc="17dxhrsknh9fx9g75dkw56c11wpvc4xyzv7rgx2dm29szg7qvrnd";source="1hdkh6zbmsmc1aqzglihjr9xz6dhfxcijmyd1wvhb8cxh8swr4dw";};
 exframe-53911={run="0sc11jk94l0nmjjd69k6nl7j68szdkihim194pdxlyiybwqf9bbh";doc="02s61k5lpjw121cyxkkhlbm5d6wv0gl009abkjbidpgxbnd5yl4z";source="19y20l5g814cvn9z0axpkynxp0vwkay782dmn05g6a6qzjb49i0j";};
 exp-testopt-15878={run="0g7q4ccfamsd7sr7wb0qsw74dnwiyz0rjrniaxm5jvgaadiinc7q";doc="18i2ym0da8vp3xxy5q2gaykvja3dga4l64q9zjxknkm50vj6dj23";source="1xfp15q94icdq773ivdvk4n47i2k3g3y9smdvmxw5m9f35nayypl";};
 expdlist-15878={run="09yhcdbx3n7gj3g2v2yh4navgdf5ik4x281h51kd1lzdzbbnf3aa";doc="1qgwn2ignri6wh67wwjsqpbk28jch01m8fn0nw6lpc6kfa4a9g6v";source="1m8dww4i5w0hivs904v8ls1dhs35vp3qpbb44ihwha0zsbvghabk";};
 expex-44499={run="1vdbsxn85gkg24rx3qhkwcc658zjyhkymfspysxkxmmb8rn42y8n";doc="1mgq1knfx1lf0vr32wa2r6v0sr49m0xjnsdy0y42zngfi1mizp20";};
-expex-acro-63319={run="1npdnqd4m66jjcnrvgan3lrx211lish3kgadv1n8hnlpwn54hc8c";doc="1pgqxf04i0sdcyk89biikzar68lhqr6j13av163iyijp6d0c3dgy";source="11a2q0lhm0y1bcgipbmdi6568qpnxyghh0lqgp33r8rx9g7s4byh";};
+expex-acro-68046={run="0hdbjdkqsi6nw99g3rqvpd242mag8k7ggl6bb0wj99nzfq9f43sl";doc="0ilsi8ddsn7crc19qf22vwff2xc4lhpqhxpk6mb7id5fd7xpp0pm";source="03addcn3axfzl3i502clngi1bc5b4l5ndq335xh6x5h2566kjclc";};
+expex-glossonly-68860={run="1qwcib3flc06b1l4fl9knqb6xjwhq59h9i5gfniq602znndjsc21";doc="0k740yz8fjxkcmjvxd83234arq375xg8gcahyh2iwzqs9k8cvi4c";};
 expkv-bundle-65623={run="1mw1cdl4phkm29yxb747whkkd81g9a3sbbnkhzgskbna2zcjj0l4";doc="0cwydrq8k5z6j62wizgg6n1n8r0h0vi4ijky59vvz8f7b95j2xz0";source="0cv1r3daz5lscdqyjgmy6xj00b4i280bg1c93b2kd9x3svv179mg";};
 export-27206={run="0la9v2m3n15hgds8mmp1c56dz0a7iqygjk2qnd99n5924n187wyd";doc="0ipbs7rdwjp6jrr4drgcs73mc8fy6bav24qfda1an7byglgcf2nm";source="1q3xbj3zicbizadihwb6b75c4d95b6wq0adi45wbqf6hzj05bd5x";};
 expose-expl3-dunkerque-2019-54451={doc="0xij1ycxnc3hfzkl0bfs03s0zzzv6xsj3myvykb6n836j1g66g2y";};
 expressg-29349={run="1hcrzh5xhvzhf7d9gfqfxj7bi89ds5rxa8m6al12mdr5qpffzzkb";doc="0kla1swvhd43xcvns17wlcvq33wvjidhkqnd4i587x9mdn69s8bv";source="07w45g2nbldwnbrbrmdq9pwi3xbi6cl2mqxaiyk78jfgr033rmqf";};
-exsheets-52227={run="1ymcfy9i2ll048sc0gyljcbwa06m9q0g6nxp3csvk4a367wv9cxa";doc="1l3ln3xkniyfgmhrs37rixszacsvalwq78fyh72v8ca61krxd35q";};
-exsol-48977={run="1jlkz4c29bn3wrzlbyxzz9jl7f6iiyvz89r5r2cvnlhfai83lk6c";doc="1z663c69w62v8fcm25ikaw58q3kxrh2mh357zjhgi8ki72wjwja3";source="1ja9w1k43v1yjfa1jhbzghdqha6i19lc6hsgsncr0zjm4ky104w9";};
+exsheets-67300={run="1ymcfy9i2ll048sc0gyljcbwa06m9q0g6nxp3csvk4a367wv9cxa";doc="1l3ln3xkniyfgmhrs37rixszacsvalwq78fyh72v8ca61krxd35q";};
+exsol-69343={run="0w51rxp4lw5v1xmhp26bqalarp05x1ynpskbgb2ci7b3g1xcnm0g";doc="1hjvmd9rjd5vb4d7794iii26yl394plf3ajihp7mpmwbzjz14w6b";source="1837xcdlwxnw8944c787b4yqlb2bi2sijx0nnr3vfvidpwsa7ys4";};
 extarrows-54400={run="151qmfsqqj516ky9j4wbzh1618r769b1bqn4rc5fh51p1s28k8f7";doc="1iw3750iikf6dc6kyid86r7kdzkpi1z4la4zlj63z26fczivif91";};
 exteps-19859={run="1pmipr1444l1yai8d9hhrncvimzb5scn80pqij2g90lz160962r0";doc="0ymkwhbl6r64pxhr95wdw10dvn6q95mkz1pwa1nb42sdcljizrsg";};
 extpfeil-16243={run="0n2j976a2607zsgf2cda5vljl497c1562rn7cih11h6vpx76jx9k";doc="0irjpxz1zk30myk0h1wjhzcxdpyqjfzxj0lx1nz56v4f157myn50";source="1yf2kcx73zp24wrjb59zd1f35809k52cdwym9xlf5fy32rh69y08";};
@@ -1329,8 +1349,9 @@ extract-52117={run="0yfxyzmicqczvn6pc7ykakpm2hjsrsb243n1bs0crjsvacw29hb2";doc="0
 extsizes-17263={run="1249x8lklry9ibil9crfvy2x3hk5afnc3g3khixqf54jcb29zpg8";doc="06a01bmilk7hqr2k9237i6x53f6wz4z4vhr8n0qc0i3j09n5i0ps";};
 facsimile-21328={run="0mfzqrn76b2nhz60rqjdr55s6i9fzw96ya74nncvdjjcvaqpjrjk";doc="1i3vv6a8r1mmkmpjwr66r0isha7s5ksp5cwgx3rj9sl3wfnywsfz";source="0icxnmiwmrjsp1lhhdkcgsjif1s396lkdxp73vz59afzhwdm6l0b";};
 factura-61697={run="18p09q5r4n04r3pr636zxbq2jp027knlzphd4zpns3d2szgw2j05";doc="19d5nsjxzghmk56l1v9ppr237ykdrgk7bql4cdr4d2rdvqbk4r19";source="0l77127yc8r4n0iyv4q3ilcs9hrfjn0y56rc805av4gdrgil9xgq";};
-facture-43865={run="1x0jqxq6jn2y5lzbk2y576g2wgaaqwlb11kpq16avvhxybgiywwg";doc="1kcnzmssdnzfp8szs4c3psnxaih36clifln5kpdkgwd3hnkizl60";source="0h2274fc7h8si7rzrinz94hddzfn073yvkv9hnvd9zlq35cyxif2";};
-facture-belge-simple-sans-tva-49004={run="0n8wwl82w7hn11l3c3fg7nr088v2mv4s2d3ynwahgy18k6953pxm";doc="10yh7528nms60ypc2zh9viamk9cihi0a67jcvwzb2i8f88sx4cfq";};
+facture-67538={run="1vfaj6hsjnd1cmgwrlj08bn9zr52zc1z9h1dpjq742gf8n2f9qfb";doc="1my5nlwdik253073yhcjbvqkgwcw5kvmg2fm2wladlgcq8qav96d";source="11nr4df4dywqaq1bk3vzjc6s9gd5kxdksicij2fmiqx4a5309ijc";};
+facture-belge-simple-sans-tva-67573={run="0n8wwl82w7hn11l3c3fg7nr088v2mv4s2d3ynwahgy18k6953pxm";doc="10yh7528nms60ypc2zh9viamk9cihi0a67jcvwzb2i8f88sx4cfq";};
+fail-fast-67543={run="069rv6yv525b9f0igkaax17kr3qyy1n82v018yidc57ig75h4vlh";doc="15qydfbhbdvkzrys4x3g3k2zpzjzah8yx7q1xxnc9p90rmlj6ch8";source="0ybn1365n7mkaf73sc667pw826n1pndrizn5svnx89ckzhni6s3h";};
 faktor-15878={run="078fxihxiy9bnszy2nj5ca8ys9hhhazkawwi7x2hzwfh3n4dyqz0";doc="1hj13l2g7za8n3bkxmg04npi5fnp4jv8viyym1076wify7hrwc73";source="1r8wksjr0q1nm118fzkn527lak31j3sjrbsahpdmvxfir7936njx";};
 familytree-63739={run="1a6hvncnjzrjb3bpikkjlmamnrsas5221hhxmlvfb8x05qxjxx7x";doc="05m6n4lzz0fc2hm011kyvnxnv93gl39jd1lx404xz0kjs0l94cp8";source="0g6i47agywjpqi2if893jpm045kwda3bhlm2afd6gpjynybpmhmp";};
 fancybox-18304={run="077xd75n1lpy5a4gdgk88p0ai2is5aj4lf2cfxn7nsyhdvc1y6gv";doc="1giimlw8zfksar2hwarpnhy2sd0jsdlxzfw6gz1lmdb8xmwkx2nz";};
@@ -1344,23 +1365,24 @@ fancyqr-64182={run="0r5f2cq5p2x2nrhgamcl4h7jc01z8lr0kpbvkalgnp4bkr2js42a";doc="0
 fancyref-15878={run="1ns9b3viqg45w3pmnh69fdrjc9p39pfnqwwsfl9nnx04pf8b0p8i";doc="07g7ynr4qjv5l8v71ymbhx3vf000g5qq63c4i8q0iq35gird9yac";source="1p5xd5a6lwv71hp1sx490qwqbjn720gc1fpkk2inmmq6h6vwgpdy";};
 fancyslides-36263={run="0hfa5jklvybgx9rji032rdmyh2qr63fkyanvvs0jmg1bkpqw7s03";doc="0nqqvkv9gsl3jp22rjkxrzklpz6dfmm3wy3mc9f15jv9iy2zlrr9";};
 fancytabs-41549={run="0yxr24fnjabfzhyvfj7nhn26cc7hi08byw7zzmky3nnynxnxc2p6";doc="0f9b7rvnz5syq5dghj426k9ypppjg4q9wzs8v3jl8af94xy7zrig";source="10p8hb18qrwp2dxsjybrawnlryl97k854l11c0327r39qiya61ns";};
-fancytooltips-56291={run="18hygq6ks8pihlamr1pyvmsrbsl8wa0kx2qy8san53hd450lqn0y";doc="0q28xlckjlm231r14ysl05ic3kb6aa5qnwv9x0qj3iz3lmyfq9zs";source="0nhmjrivw8a2xhblhxnjbyvmz4hp68sjxnnfzmqyrf1agjgwz8m0";};
-fancyvrb-65585={run="02qs6rkv6avvrv3b023k1rhl11f0900dszs3p30l605nghg6ydxf";doc="0mxwsp5c02faxf4crvm3iibwyv1396lxccn749q9wyf9k5wqlap8";};
+fancytooltips-68931={run="03b31bifjnl75hscp908x58r90zrp9hy8r4kf3lkygqvikh8f5bm";doc="1l6mp725xjmy6azgx2zwcqlp3vfvk7gvyhr0wwrnnklfcscyr1rz";source="0nhmjrivw8a2xhblhxnjbyvmz4hp68sjxnnfzmqyrf1agjgwz8m0";};
+fancyvrb-68772={run="19kr6cgk83fmdhs7360gvi2p1q94jnl5r9vbm54zzhy114wvhiwz";doc="0jr5baqc56iyz0bifhrl6k3ragdaj267yl3hc71symhdi6sld4if";};
 fandol-37889={run="1l6h2brl2d6bnam6p6j0p1d2s13jnva5zkr1xr4sarzzxj6zlz2r";doc="01ax7za7wcr644ncpv3rpfvl2ndqlppqnjzbjp8y2d0hawc3k5m0";};
 fascicules-54080={run="0zlkjn8kg6vb58xp2xh7jwjk6dmk6knzqh8v7lrdbmzhw9j28vwb";doc="1jkhj04gpwcckp9zqanaa9zhplgs2a5xqnn2xf6ir6qifiv3403y";source="0d7crimrdcxlh8hd24qfwqnadxfjsfrfnjr4hx5rrj75mm946zmj";};
 fast-diagram-29264={run="13c2r5prb7dg05j0r4lkdz36v51zj6v5p2c7q22gfkbz1lj1s6s2";doc="1f3ghs0l6mj2q3iw74rjjb12y8151cccvhww13h4kzc30vacr3r2";};
 fbb-55728={run="101yfs3np0mlwgfhiz74jh2jngxnb395wkcm9fvpmrs4rp7wxx4l";doc="0b48vqwyhmygv70gsbiknmmysd8pz8m27pfj52zqzzb0kphibynl";};
 fbithesis-21340={run="0qzf6ch5b25qrhzflh8rwrljhlj87i6xaldnpj8j9iq83y1xh4jr";doc="0wvnm716qi0y54h95zlqr7m1q9dgmjnl9f0ghvjgm886hljq752z";source="02zmk6yx4v47ngd6ba6mjn1rnhm2w6p330rfz6nkq8shcky7sy72";};
-fbox-62126={run="0nwzysjhg4z2h3sym5yw5gccybb9dwb7jb67fz2b3yl4m06nwphl";doc="18f2w2cr07lnj77lwcqqrj6j1sm9gg1sxmax6rdjysl425dn9ybr";};
+fbox-69041={run="1v7ycqbqlk80lbf5wag8vmyhwr1v4jjs8j7bzni4pm8yp4m0yjis";doc="075mws8pivd2nc045przgf5lmf5mpaw8gdyjlj3haqvpq0rf5mk9";};
 fbs-15878={run="18h6n8azrnk2qabv30kpa8gmj2ljkvx0nqs8qb9r8dxxnhng78ch";};
 fc-32796={run="0bw8ifh6sxgii5s3vx9d87m4rdfmifdvw70wmj2kwqzrij1ri568";doc="19p5r28fzw0i7kmvvv93hiw7cm3lkcsn2hdn90k8m7jwy758qrdd";};
 fcavtex-38074={run="1rnfrvbm4baslmmakf3s1n37razfzbc6d11b5yfhhdhskq2aci5c";doc="05ixrg17jwd315q5c52c4b8smcihj4rzrxjparrgfimivd85i3h6";};
 fcltxdoc-24500={run="0bnz5b9ibr3lh5qazdanlvvpp8d1h2apzkw61qxr6kg9ymmk2w68";doc="0dvr57jz38v5wflcjjp19rwjbisbzkdc91fji9s1yrv27drawijp";source="0k54q30f7qp40fh3clxyaa40xhsa28qyavn13km65s1hwvg4hg9g";};
-fcolumn-61855={run="0bids6ifprfwrrifx8dkmf8piz721x3paha7gqlx8419dnvnp384";doc="1vkyagcr5f0bwjix3ih469jxq5hkg6g4q9kvkf7g1mvfapfpszya";source="09y02rbzhzwjghdcxz81lcwxx12421kdf8hb2kjvhbfh0bm36cg9";};
+fcolumn-67729={run="11bqaca189j79cszypwmijw166v3j9pkm60y2c2wyraj4ss4d1k0";doc="034crw2fxf9m7a7zvsi2c7fafkqkhn8vfxc97dc7k74wrd5g3kwl";source="0dqcm83g989lkgjkb5q9s4d4284g5c2y36y75iyq4jhdh2ca972z";};
 fdsymbol-61719={run="19kqkmjsi5kw5s6kkgf4y7nrwjhyd9pgq02y3f43wfdml9jwlvx1";doc="0ddy5d074fjmkvl3pm4akqfq7d3f57y09cfmrs5wfgvvb51gfcvp";source="18hiwralhdsp8sj8yr0c5pj4xmjaiyyha1y36sgca2xlacpw8ah3";};
-fduthesis-66197={run="10bbs4nn7ah9y7972cz3z2b9k7igamx57afplzfwqx8w5zcd6n7q";doc="1vw78r37vl7kn6k7v0w6g4rqlb2yd3n0pa4zvy90yl4igvyszncl";source="1kf5iw50s41wmz8m05xwbn0lgi0rn3alm3cx4vyhxhvs651vyr6y";};
+fduthesis-67231={run="1cysdwj1gl9zpxqqcb563x7ssvc4y6g96cn3afbjk5hhw8381h1x";doc="0w1dyxcyxjpdbmxrv23xlrhg21kq2wf1r85dkdaw3hs76800baqb";source="0spm9cz58xa2fi86zcbs4qp4zxcdvaq1ll41bmp7mkykr369j2k7";};
 featpost-35346={run="1p8xb6kmfhhqvxcmgf4bkw60p1py2s1pyn54700zs8vlkbxlqy6f";doc="1hy7n0jfdidj3an25j0m5bbv2ks40iviwzwijlk6qqdll0k26z33";};
 fei-65352={run="02zypphy3s8z531zmvrdz2df0c6viyfnzfmn5hgc8js557z8iw3f";doc="1nimda4g0gsf7521ibmqmh5a9hfyyhdp28dpiqs0wq50ysl8phc8";source="0k5y72pwziakribc9m9yzm860pg1q222qarvrqxyjqchhlikcrhd";};
+fenetrecas-68779={run="1fx9kfgiiqkkfgj12x3yph2218az86h99r9idg7q5rkx9h04lzg0";doc="1qcg04kcvfmrgsza06fd2aam27ixwydis86f430cfli4x3c4c7ap";};
 fenixpar-24730={run="1l79py58dih05c4kjb8cngzs3bzpbhc72f4hnz2r7nfwmjp86c56";doc="0fbx9wms2n0ff1cdpfavqhjg56przd7hr515vh81g8jgnz68s24l";};
 fetamont-43812={run="08c8xjgam1fx3aa4ikx62jfh3f4bws0ngk428bqzbrd8q445c3jz";doc="1zlhg0wgchgkk6j8v23wd29hklpzb8q4p690pfswg3zakc0dcbgp";source="024bwgb36iz2ylwsfzz4wfgsyr9djdd0p23phadzmc8qzxqsslph";};
 fetchcls-45245={run="1pccfz68chmnbfi9qnrmdnyq5kvkq6ir5dl09jqbjlcw7hw82ka0";doc="0if19dgb2k75qhyka4jiijnl3msk8y8kj0fzhriarsicivwd47ds";source="1qb9ymkvbxmxlpcs3drcyk02bc372s0vhw6wwpig2bchb1hwdl44";};
@@ -1369,9 +1391,9 @@ fewerfloatpages-58058={run="04903zr0lk50i88vywpbzpg908zkmy0w8vcfks55cmbfb2ja37qd
 feyn-63945={run="1pd608v8wl7007rjmsykwabr1h8jjk1s78nbmq4a0541rj06yd0p";doc="1dkfi17i6lz464bwmr5r5295y1avvsn5rpdw4cv80rd20lvhnyyp";source="1vh6kz22gpmch2rdlvhplvqqd03vd0mn5m0a123i3xfbka1myza7";};
 feynmf-17259={run="14bl9c8yz1z596281kysyyjbf727pi6mdnwag6gfqs1nsinq0a2i";doc="1ql099wrlddb4fyfrsirx0vnhcbh0wgwp9yixhvgxfk5pbah8v8n";source="0f9ghmp0hcmzadsfljfq7pinn69251dwhcdk4n62jrd07qdgqsyl";};
 feynmp-auto-30223={run="1yhvcxiq6ajjmlsvnznzvp35sap1qsnj54zv70dwpl29rkrgrmsp";doc="1y1pwlplkz2z7lqz84ay7ch1lw4plh4n69isqzsvhilnr31fkf0a";source="0ja5yqs9szyk4s2mk9cbjf6p98dagwk7pycma84y48kinkl96s0s";};
-ffcode-65170={run="1a2k2n83c5wqymc1wg2pq0wzc0x3fwlm13fmrdg3g366c0x082fq";doc="1pnkk8cjbjzmga5na4g1ip9qcvhfl65i3s95mwp88pfrpfz78a08";source="0z5p9z70f0rigr76hwiwh044spmginax637mjm3nxxy8n0zp8sil";};
+ffcode-69383={run="0lrhl343ffn2pvffkf34kdins8b97vq1shaianzlsbr30slliy77";doc="17jxqsa16xkrmq88kd0ydn4kwfr313m8ppl7g7wabnaldnwxi9ga";source="04vb3sanfnzsyg8zg53r9ksrfj03lh08yq1r0wxpz82gcdbg4zhh";};
 ffslides-38895={run="1mpfpawdhh16rl6pnvxnkj95gf9hjs49gj7cwfyngmqkjc2idi8j";doc="0z5kpim798zxj20p70dpcgmwg4vx9mb0zrmq620sprxxdr2gd059";};
-fge-37628={run="1f6ibw87kbhpf3qxjh17jr1lsh9kk9ynf1rngzyjwbq2rk2id94f";doc="1c8nnpdvkxcm6218mrs18ipjf9mrl1cqyvv3p31x41ii8wxkvjm3";source="119d70668gw3za0mksr93wcq9gpzjn4gyv8vmizlabi0ip1ycgy8";};
+fge-68353={run="1f6ibw87kbhpf3qxjh17jr1lsh9kk9ynf1rngzyjwbq2rk2id94f";doc="1c8nnpdvkxcm6218mrs18ipjf9mrl1cqyvv3p31x41ii8wxkvjm3";source="119d70668gw3za0mksr93wcq9gpzjn4gyv8vmizlabi0ip1ycgy8";};
 fgruler-63721={run="1x0pqrwwbwf7qi64wlcg8d73sf5r59jcqhhm3l30qk1ymfwirzvm";doc="0mva3jv63prks2la2g9sqza2ng59bg9g5xkgg4flamk0409bmd4p";source="1if9sbrln3jsc965xn9njllnn56dl5y4v2krn76hyxsk1vyza45k";};
 fifinddo-info-29349={doc="15zp4xvszy07cy1b5r3k5x256lbalr5acrrdj1gx33llfmvm469a";source="02pmj7a9hx4xnfjbhwg273a3wx4449542rs7rxkii4hk78xs5lwr";};
 fifo-stack-33288={run="14d714q6mzpag5rcn2b2454pad3mpvdz6ii8k7jdvx74ay24zphv";doc="0pgvcyss7h1mynawdhpm8xid0albf5cajhz423ygz3ifi2dfrasx";source="03hkqd4s9dm2h10i8pw3a6qgrjskiyhnkp4wh9r55l60wnqm80bc";};
@@ -1382,7 +1404,7 @@ figchild-62945={run="0k72116mhd9z9psbnrncmn8x4svhyaf8b4738qxb808i81ba97kv";doc="
 figflow-21462={run="1w2wccxfjbas2yyp8sscxfb875kz3mwqjlma46v4328sd9vw4pwc";doc="0nkdz047vypv0b47wbin7nz3cbcriv89w05d6yn26wvq5svlxgw9";};
 figput-63957={run="1hvxp65c2y7852fj2v5b4m3bq4197m564y6gzin2hddbd1w003vf";doc="129jyybg92ddy5i6gg0f28ij0qxx59p8h2l4y9gb154rdmqa2bld";};
 figsize-18784={run="1hb2fck0pz1gz6vm0ffpzn3vcm7lclagsi599bi2f2bc9ly2372p";doc="1zdncnl8nmkazvqjyamzgj1x1f5fm3kyw5m5fi669rk9dqhsiq69";};
-filecontents-52142={run="062jaqszh5fr1pjrl2hms9yngcr9xwhkfn9if53kb3wal1dn4x48";doc="0i3fjb81chwiz6msm1k0frkfaqqcla49xhg1xq0z617y3rb59pgg";source="1zryw6mx9vmikba8za8981h3nnx4gbbb2g3m6lm3cws0ak1h5jwy";};
+filecontents-66740={run="051s23ymbjkv8z2d7sv8jsjljy5w2sh1mgvynlbkib390gpgybh3";doc="13fwkv2fvdfl1jgyfg4pn9il6w6pn3islc9zsaqs3bwzj25y16rs";source="1x5ahz0fsmnjx7bvbr83316r6w80gnp83yznnhxnj0zg42s2gfxa";};
 filecontentsdef-52208={run="0lrdmz5fnmrlzga1w2hr3ksydnz52lmqlnnmix7xrcp81qv9xmx0";doc="1nxb4wm4wd223f9wn7x8j805ybximrk0v6n1l56xysz4k30jxcba";source="0n7zq8plqn1yki6azmncgdlg2lxcprfpdq5dv0qnxvpvw5dawdvp";};
 filedate-29529={run="03fwpi529pp6bqwr37ns8nas236nhh7nm592rpjyrvlyv1w30ifp";doc="1dywknjhl2p9590nvcpg1vi8r0iaj52dv7sn8c2y8337w37c6ny9";source="0fwqs6wqw93ih2icg9b5zxgya1zbaj2sn0jd3dc8b8dm59cwggk1";};
 filehook-64822={run="0h0k0fgdwzm50jz0ibj7zsv1sk355q13x1djc3pk4fg1f3czhfh2";doc="00l8hx1sn4sn1mqpyiz9isl5a25a4a64nifq6q2jlw09df9gmf9m";source="0bd6fhrzy6bh42yb44y4bh01zpx92crca8zia4lyjmc95rlv6gfa";};
@@ -1394,15 +1416,16 @@ fink-24329={run="1pk9qp2cbc1yagrgnjz6rnldn6zgcb6bw3vi452ks4fwic4pgwz8";doc="19fn
 finstrut-21719={run="148pca47nggxv9dyg5n0p40ri1mqz5chj4ir49472w62c8zh83fk";doc="1jrxyksw0bldvf5faykbpcngjfx06y83q81rs3k3m6vldm3rw23d";source="179640qn5swml0wrc1glvbf94ia5y6s1qlyf3hf2vmr3vih7k2mh";};
 fira-64422={run="182wpm6dkhs41y6kr4bjc4rpy0b62d17r0j60a23znfgglpriy3f";doc="07wm5kca97r39shhymnwiarsxn0i5ykycyd28shqyqmmmk6f2j33";};
 firamath-56672={run="1d9l5nsx0qswn1hcalzsrxkvc7mvpdqk3h72bfk50h91lfm2i567";doc="1w6zlskvs54x192nyxa83qnlqhvq98g64k5fv6ch406nkivifmgz";};
-firamath-otf-65561={run="1f2ybcf873ycrlsf59cw25715422n11jhblggjz5hmmv5vrqpvpk";doc="19f2mbak3vzkjlpipfyja5ibdgxvixf698i2wm347lbdd0p5ligg";};
+firamath-otf-68233={run="0680qh4drixmrvhv3klkflz0jml06x8k9inl2c8ym6a8adqx43nj";doc="10ynw2ckqc7vsv5hq9kv78cvn6yd23qfbyv5060sjxl91w6qxs63";};
 first-latex-doc-15878={doc="13ngk5pia5vbrbb4jrrlq1lmyja08m7cy4ydcjasxha8kns001ss";};
-firstaid-64892={run="0fdv1jsr5cs3a9m9c0zxpdcxg69lww4bkwr1piaq7j389z79fnm0";doc="1d3gd6rcrv78y24gphal5367n9wqfqlbw8k8bzcdiaj6aw9frrjr";source="06qn7h2r2m0iay4gc7d853n7xjldygly7v0w7fgvlfgc0zisksgw";};
-fistrum-66263={run="1ypzwh9a7lkb5b6d9796hwzarlsm06nyndl4clk5ss7nh9jdia3f";doc="1zyyrvm4vmd1fy35clf4aizb810mhr2xzsyzwmpcgsbm3nf7i2ng";source="048g8x5q882668lbzz0ji1hndfkd2bd777s2zyyq59bcw0gmavbl";};
+firstaid-68720={run="0jfrn4vx45aqlw8n5ipicl12y5r62vsyr6dl9vzf6yld4dn5zvvr";doc="0ad36d5bjlj6y5x7aixgn5sl5ra31hqif5yz0j7n5v32hxhhjqi0";source="01pf1jpxgq7j9s720xagjalhyzxr49i8kaw9mrab7fvx693cw9dj";};
+fistrum-66461={run="1ypzwh9a7lkb5b6d9796hwzarlsm06nyndl4clk5ss7nh9jdia3f";doc="1zyyrvm4vmd1fy35clf4aizb810mhr2xzsyzwmpcgsbm3nf7i2ng";source="048g8x5q882668lbzz0ji1hndfkd2bd777s2zyyq59bcw0gmavbl";};
 fitbox-50088={run="0jk46rrq01bbqkwfqf1rdrzwv475mdmz4hqvbffkivnbwj1vz18g";doc="0gb5gpdrdagilxsklq1aijr5zfl5n82nwal1h9qls0iqzjvgizka";source="039q5as7939zc5nby6m6piz5h0zphm19hqjkdyrgzw1q4r9ypzc6";};
+fitch-69160={run="1c6myhpv9ix6cr6snn5f9ky2z5caam1sqjgg0bq1bj8df3acdv80";doc="1gdgmviy8pqqwwsvinrb8qsgsd4gw6bx6xci56w4nmfal729r6g4";};
 fithesis-64135={run="06r4qkkgmvak5z624vhk2gl7vnq538ixjq6v2v4h1zz2863kicck";doc="15dnysdjas5a2a53g295f5g4fvi4rii10w72w5z9libxp6h93nmr";source="1a35viafyrxh8aqx9n6gy4j3kk4yjz5cjgwrfyskbpvk014y84n6";};
 fix2col-38770={run="14n020dmfn2s54h5xvc9lrynijcwnj3d2w4kg2w52v0kf037hmln";doc="089pdfpk0bi23yb7grjv4w1agkssfczwvv2vhk3piy43qpk9h09v";source="0wi711gb3bc5pc2kb7q2hz8y09g4phjxggrqjbl6i432z42fc061";};
 fixcmex-51825={run="063a2mwh75mdbh8syvrdldb7cj4iyvqkbkda4jm6cq3nwbq9kly0";doc="1c9q5srhfil0wnk84k072ridssgwbmzpskk6pwpaq8id36dydvlm";source="1h3xrdz9anb2cxr8p175rrcjvaawv80cj3bp9l6bcpli6yb6fdfr";};
-fixdif-66031={run="05hzw1jq98p8wvxxymncx2m2l4ghlp6qy2dmhlf3jsvhld44j4wk";doc="1j4s9fbk1ypn9k8zcvx9myirvqg254ciagbaj4b9djd00wf87lzh";source="126fafi9sz66z4j2yp4jlkmnmiim70353rzzbdffa5qaipsxc37j";};
+fixdif-66606={run="1gxz7bv0h2485pwrs7b0zhjcafkgzd1r0ikpjjw0gh4iqc3bcqd0";doc="06f5mkpp6aar6c569pwd9952xgzjdy3zx8n8y6y9a6wfflyh3cis";source="166zj8nmapwqkd06ksvjbjajq649amjrfji9z9j9mbcg865pgwa2";};
 fixfoot-17131={run="1zszczpwcggczq428ha84g71rvgml2zrx2v74nmk1damcp35pzlv";doc="07zdbq43l9yddc9gi4i2qqpvz0xxmkhxgg3wl329j25p4h58amra";};
 fixjfm-63967={run="1v4gn6bwlb294sxrqgy6j9vx2dp7plbagkvmw7vbvp6wk8dkza72";doc="0wiihlpjzvmh8dynf0nbhmn8raxflqxmzpk97s1qv7kkvpc79sy9";};
 fixlatvian-21631={run="1qm1jj803a7zgqbjn4q4sg4mn3pvd600pfkqabjvp0ck24r1pw1p";doc="160bb2khxfhl4g48a5cbj8xdxslgxvav1c0wiq3w1ajla278qj28";source="1zfdr8kahxgkhxzg925lgls50prcgyp6hz1vhis1241f9rd6r3qs";};
@@ -1418,19 +1441,21 @@ flacards-19440={run="1k1h06a22jc8wdcxf1066rn4sfgy4m3wh479f4by1zrp773gykzl";doc="
 flagderiv-15878={run="1rnnj84vl29061hnbayz5sxp6h1civl9c9w2n3b0s56i9kxv3dd6";doc="0djwrp2rjyyd0wk0sg55w2l75fwj3gabd6bim1smpvjwsps0fcd0";source="1q0g5127vyhkjb1g0v20kd0x3p0b67a9haich1a6yp71iikl1s8p";};
 flashcards-62104={run="1xih8g4znfwgd5cim1z63q4syg9jk8nz99q7fgc9mahzq7xym2mf";doc="17as1mkgllva5q92qddwzffl7dsirx22wlnxn12yvv6a0h8hx57l";source="162r74jij0b8yf22xyvrakbrzfh7vjpfl1800ahljas7n8g3h1wi";};
 flashmovie-25768={run="01rmqf1rg5vbxzs9wap7m8d19fw73mh3k7min4msbipvg1vqhgi5";doc="1lza6mv55da69v8jwjlcd08v5y2gs2s87z5h1hrsp3p3mx3chya1";};
-flexipage-64572={run="0hk5niaa49gngwggy7mgdm6cqln5gw4gffa7lpxk4z2vnan97szy";doc="13dhpfbjmh3f3lqsa1d7km0qx72jlwwzfndmvfy5br5wj63v70fg";source="1x5qvblfs9ldd8qr3x1pyxjci10d6pgqhgxy54raxfmia8s0x6g5";};
+flexipage-66614={run="1296cbg5kszwrq6ixkpzz4w4x0a7k77kf641v292awpf9sd0mzl3";doc="11s6ldawl1w8vpv6cvw05d9krjxv9921ilryh9ffwrrpzf4vgjmv";source="14ajajbl0xhjxl5zggjpip1b4grszdc2g63csgdy79bpiffpkl51";};
 flipbook-25584={run="15b2nzhpgj6018769ggajya6qmhq9rnyzha0sic9fff24jwdq62x";doc="0lf04giwsgjq0fsk6wrms4c3dg53v1lq3n0q1ij5pw4390llsqd3";};
 flippdf-56782={run="114xvv7sv9fhqxgfz5ckydn95mrg4049ml3kg6vjjiwbilmszr2h";doc="1fgk3g74arazrmw6swfyq38s5gdw8knnwwf5ij0dl566cwmcfvmj";source="0hbw3wgdva8vkic4sz0349mdyx8dpz3k5kk0fn80m0yqpldwgkid";};
 float-15878={run="08jb0v6lsyff09hid3whah0i0fk5znsik5rigl4l7vflnvc6km8y";doc="0pqj9qq5yprg0xfxga8ck1s2wyjzz4ymhpqgzhzbxbdslh475vg4";source="0774d7gmb8c7fc3f8yzarlx1m8nld1vg4gpd3dfyw5b39ra4aq4h";};
+floatbytocbasic-67945={run="0vykm4w2a4gjhjhrxr2x3vaan81yhnylpjx3z48cwspxixlnmf67";doc="12yyyc456v4i5dj7g3cnv03zgvwvsv6c24vfz7wn9jk5gv90vrwf";source="1gkq5v8z77cncqqz5cvzi78jf66v1kcni3yphzhykvd2mgpb917v";};
 floatflt-25540={run="15v2m2mchki2gcz0fcp3myyr806fqyy77nv9g6rqm11aqp6212bw";doc="1d7v1m23p47rl9lln02c6bsi5mkqi7c03dhmnjhg8bqp6xfkfmaj";source="1j53lkr1j3fp5wlb41x2vimncv2l1pc8qm7qy74i0r1xf7kfibzz";};
 floatrow-15878={run="177knmgpv583xajihdd5q5spaainn8h35kgydq2sfi6ch6cadirh";doc="0py5a36gdbsd91679k4chfxy6ykj2wkjqlg4zkp5xsww6fxglskx";source="1mpskdqhghmgh7i3425xb985pwrcqcbfw3hlfhbyx3bhwwx5pnqx";};
+floatrowbytocbasic-67946={run="1bxvfl7qk36znp2i8a704r5jsm2kljaiqyff6nsfji6v69wfgwwg";doc="01qaaddanpvl7v41v499r61m7b739qjjkwj5k9d08h28v5lrny0l";source="1jy49cv9kvcmhkyv8pi45fr1991dxfn7jqvq1i06v0adyprvw01m";};
 flowchart-36572={run="1b6gwbnd9xjcvjxgnl6xjq6lja1a0p2xnrdlbrhs6ka6f6pnrbl2";doc="06i32gmsqgvqgy0l0qbdjybnp4rmz2cn1c7zw76w3mhd9z220d77";source="14ikpr9fga193y2vgr5sisvzc5scf04b1xc9hcv6zmkcph8dvnnk";};
 flowfram-35291={run="1ccmry6f8danw6jqdsck7pzwjsrh5vcfy99f8kzyqcbbrzl5rn8h";doc="19rrav68s3wlwgaa4mhgqsdlr1syfpvp4jzc80cygi0fhv2hn7yi";source="1hrs58xhwawxqd96jb5hjywbfra6az2qkap0p5zap9zkck8ixz81";};
 fltpoint-56594={run="13zin0r1hcfihji2h33q039mpcf86lw2q017ss8848xpqs41fb0p";doc="1yr5d1hs3bdd20df25c1jyb0hcizwq7bxjbcn804b97sjk2fk8gp";source="19qy8da4ppsd1agh1c3xs9fxsl6z8c60lcyw4dd88mymk7yk4ysd";};
 fmp-15878={run="07ml6i8lqcz737fm33g95nx1hz1p0z251h7pgxvvvdmn5dml1l94";doc="13i7axi1s8qqgdvdky20dckmsa95q2q54z7cf6zgd0znzjy6d4mp";source="1fd8h6dndrc7hphs87y1lfplmkrwgn1pxgmvf00gfhgkg1zf127b";};
 fmtcount-53912={run="11d9pq2cqd1qv20wr5789bzmk0a82j4rf8y9xh4l6nf2nk9p5c3g";doc="09ikawga4sg27ch8rvdf9ni0k8b3nk3k84mgydlv4lrg5gb2hv12";source="0ijsl21nsx2kkgbcc00bzs637rq3x92ax0xbrdagkfvnrna0bg69";};
 fn2end-15878={run="0cj26s7555q49fi382pbvy65xa0yp0wbihk3y0magblyxjn72wdx";doc="1kafhgr4c9d4pjpydd27ha1pdbxk364qv8dmcr7k3l7xlv31jv4f";};
-fnbreak-25003={run="10fh7d75a3628jrsbl04g2pc4015nsnrw1gda0ndv8bz603qc01k";doc="1vsv8prgd37bj141p0h92wjc7sqxxzw04czbwyk12xzpbg7d7gyp";source="1jf28rb0vv2xvp06awiglg4ggk6mzc6pyr1irfgyyniha54gi0ab";};
+fnbreak-66615={run="143wpqpcqaamjvg466cwpggcayxfqnf2vjvfvy7xwgky9sfql05q";doc="07h1xr1xgih5j8mmqvv6v5kavnb9yzrh94g0m42rjqdzg5c25fb6";source="0rxbjgb758x82gvjrmap30q4jsfq0424r3xszbm1f9b4wb48xqxd";};
 fncychap-20710={run="0x3sjslvz1gsrr8607q9r6k8683p9zcz7p0kxvr92j9ls1prl5c4";doc="0is37brbbdqb1szx3rwgmaqbl8vlqr82sy8svam39yrbnzd9v1k3";};
 fncylab-52090={run="13l9jmcwabifc7m9klgwl2gqypwlizy1mb7glsvp3jslpkhfj267";doc="11w7z5q433lnzfm4c72697f82yb7rljk9zq41dl5bdb7l9wd7325";};
 fnpara-25607={run="0rn4yk1zd4h2r5xhghv7v0ph0raspq4r6mw812hn80bn8rhjjrlq";doc="1w0pkqqgkq379nnqk0wx419z961l3g81ldkh8ivfhn9q5vk04p0s";};
@@ -1453,29 +1478,29 @@ fontinst-62517={run="1jqhfib1ml33wq292x9ff03shyjrn2b3grw44cxzxndg4vq7mn1l";doc="
 fontinstallationguide-59755={doc="1i6im0nckcr9fzs0kc54dvcj3jvjz2j8jd55xgjm0r569qjj1hi5";};
 fontmfizz-43546={run="1ccfywcywrrim1hk7g0kg0bljq034fh27qrr8w8ypcyjdnafkhxg";doc="1fcsrwbn8kiyw4032kkjg2668ax0kfcb6g4kzgp6bjcmqzy6q1zc";};
 fontname-64477={run="0ylpryn5wnjnf6acjl6kp67i0vl1dz59xk2xbxb0fqhx5ib1gdgy";doc="08vfa7n2bzjsay7b7zaigkq7imlfmq92f4firwc3rx9hfm7hjbn6";};
-fontools-65706={run="19dml0h1qgp2y58xsjhyqq56204nnbc8cci626f8zlrjq53b3251";doc="0v5gmccq0a9f184c257ldfr7h3hdkw1090n0zj6qv2pp7mm0kxjd";};
-fonts-churchslavonic-56350={run="1rqsbwbqfkd53yaxnmp17vygxd049livqj71c2cszzzqq8fsxpif";doc="1zjd1v8kq1v1sf4wfqb13x8jz12wpkpydmvldjn8l1i5rn0d7d4k";};
+fontools-69241={run="0smka2cr5al8f00hfcwpbwkddl7g2zcgg2jrak2j8p2ycibvfgaa";doc="1avxm73plf2p0xk0gh11311bfqbwlxdyvgx9hpg623ngyw90wkaq";};
+fonts-churchslavonic-67473={run="1s8y5kri1sjhsbz2mdszwy12vz8k0b5ad0rp383jrgcd710n3949";doc="05kgbvjj4w3sblsjprgq1gg0inrgrx0hpim8pmbgqj6w8xc1n9kq";};
 fonts-tlwg-60817={run="03fs5l62fbkz9rinnraz9zfz1byjd74xwvlfqcv4cvbxg02dpgmm";doc="0l4p30am56bblp120lcs81idahw3wrgmbrvi0jzfnvzsyd7xh068";source="06zw6amxdkmb9cdjvkvwgah5x33ksa9iigb4dcw6b9d3a0q8c8ya";};
-fontsetup-65439={run="1hdfjrav3nscvcjkfwqziaw0gn8wzlqpq4d0zi7vs6hh7m02y1f5";doc="1x8claj166zwzl285v1yvx4kmp0mychzvpnh71hghmqqg6c443kr";};
+fontsetup-69390={run="0cwklm2jzf9rhn717y7s2x3wf4z098djd6zg57rz76xrr48hgzfs";doc="1mil076kr9r2a3wpn9gdkax96dzi9fg36ycqcl9h3an4zn2x0b1m";};
 fontsize-60161={run="0614lcl1cxc7a6irrjinp5x1rx2cbzns0al7d9f3njyyayp13qhq";doc="1c6p4yz000rdcmjkn7pgz3ckw3p42xkz4clk5dz01fnxifmmlf1l";source="0lvywzrc56rfkkwipwhqahkm8a70cnff0r01rpl92d6n6znl278d";};
 fontspec-63386={run="1lskffvb9a3jmzq4m0kgq0v4jhl39aa70zkz8ha1i5zhljwg4r6r";doc="12rxb0f61jgh9xbgzq0479zxzqwahsx57s9nl5ygrwcigwzglk0a";source="1zxfi2adixnk7fcy3j4iixr86clv9gckgwimycrmsf4wvvaf031m";};
 fonttable-44799={run="1vz99pfw4akid9hjf7dcqf1fx5h30sr25i1f9q6a9frk0wpwff72";doc="1inb0ai6q8rjsrcwgv8ns6as60ifdidqzqb8x9ygaw3j5ykzr02q";source="1qjilvy77072jpbdc4p4qfy5d4n2ww2wcm5drwvai6p2aclqf29x";};
-fontware-62387={doc="1b4hs94ahc2sky0j6i1yxp0qh0sgwhz3hrqpx1kh84l5nzgi7xmw";};
+fontware-66186={doc="0ng27m6cz92aa52z99gnw5i8s8fbkxq4354mygwnchchgxndcba0";};
 fontwrap-15878={run="185mzghp8xckdq7z6cdwznrg1pswflvfy61bhsnpaxx8wagny1zk";doc="01knmxqj88g87ljvxmf8rr72i2gh9qdmx7zsbwyjmibiw71l6pcm";};
 footbib-17115={run="1vr72sl8q1ccql2p42v3a9qw01a50v1c1rxpgmz39pp65w4z8s1n";doc="1xyq88jcg6p7lc44n2ky7538r23d4n0nhfkq25q7xg0dh8whbm34";source="0ps56l6ah0i398f38bxy4yg2i1p0ajcwczxq222hl5176g2z28jb";};
-footmisc-62524={run="0qw5sp4pad4asjq0n2hp6p6nzyn6mcc9c1w4l33rjsj8x3a72caa";doc="0jgyya86vfbh78vnb4ypkf9p1qfm26964dxb1g43cblijzxi9d6f";source="1glgl68nfaz867c7paia3c2mgqpy1kslyd4gph2zriq0mbzksp0n";};
+footmisc-67556={run="1xyx6fj56vj49m9848i83jbq7k3hycx9pd5nvc3cd6md99bmx9pn";doc="0ik4rl9nmad0f9zjx600sxvlig6j3v0gw2lhxmkbs37v18p0xqy1";source="193ki23hrlnw0vkh2r54m3y2h54kzh989pk6iwjnfgf91d8nijzf";};
 footmisx-42621={run="0f6csxzkwbf4nlw6z9rfyys1f7fc0vpdi2m36g7y3k9l3j6wb3mq";doc="1962sivh4jipsxd0z0cpzpd0jdw8v4afbpzfinklivnla2c9hp4g";source="09w5bfx94533q36z3k0a1sf9jx6acz85qgqypgn6b0b5mkhjsmar";};
 footnotebackref-27034={run="12vxch1i8x0k8d760vgq61i7j3kkylgbcxj6ggdv8wzd20h4izyc";doc="09dvvnjvika3617zx438ca8z3fmdkqbxx9y73pdhn6gaggfmzr72";};
 footnotehyper-60374={run="088mh736125609bliars0scv7v7bx315ajk801yj28vskg0ki5d0";doc="1dj6kpqar8bh0qk0qma2ckp68cll2ncllqfda4ffmc5ljmjp98m9";source="11dg59x87a8yjq8j413gk4p0bmpq8awwh50c6vs9rrcgv67mbycs";};
-footnoterange-66156={run="0z2v5diab3xpq7x63n0w71r9yalnypyv70syh5n4nr79ahyxcmmx";doc="0gg1sc5dv9kpxavrdkc2865fcwkyc9j24bvk34l06fr7ib43bja2";source="09qa9gp6pv37kcck55c9zv3ky79xdw2ivkwf94nzbw475ryw0zv3";};
+footnoterange-66149={run="0z2v5diab3xpq7x63n0w71r9yalnypyv70syh5n4nr79ahyxcmmx";doc="0gg1sc5dv9kpxavrdkc2865fcwkyc9j24bvk34l06fr7ib43bja2";source="09qa9gp6pv37kcck55c9zv3ky79xdw2ivkwf94nzbw475ryw0zv3";};
 footnpag-15878={run="1qdl7lpfy5nn6qx026b9aqz8nfs958grh443lkqyxnrnws0n2nww";doc="006w2w6aga9zazlk8sv8maqi4s1rdzqyphp0lpa8qv5q23vcdhl6";source="1hh2754as2yrmfz4hiyyl8nlshsfdhpgpg3ifhs6h5s0xz947rw0";};
 forarray-15878={run="0cn062f805lgy5m45q6flxj5w6gjfa4w1ip7zmhxd2z09s962jf8";doc="1d6m425lfg1g8arjyz4j3q9253rdmfaabaasbpd2ynhjr1abfh3c";source="0dpqr0hff33ddfw6vs0pnk8yhaa4gxkxgn43qgx06mx1srv6rz1i";};
 foreign-27819={run="1hqmhy3l2hsjf2hkxhrsdc3z1mn3zx8718w90g8152x9k84bf7jw";doc="1gnaazl1ds76sqdpbj773k80isyf5hmjxh22p3hs9zxcpnvdhng7";source="1ziafjxcncsba0gbn1qjf2w2gn2g9z55bpcff71hr9axhp8xgpgf";};
 forest-57398={run="0q1xd07z1ccqrrfl3x0fg35sdv2kcyl6vgps7f6gpk5yp8j7d392";doc="1s9i1kxd5zhdqv5xx29kh8i5fis642hcw76ya5bh94qffhwwg7j3";source="1i6r6i8zh70zxz6sk0c9b07345vcfr9aapw8q5kzd3k76fzcqfdl";};
 forest-quickstart-55688={doc="1bjy0bfkb90nv2dbdw8hdrm3dvm1v0r0m7a0l44ckw48vnc6amvk";};
-forloop-15878={run="1s89z93fvsj2h4w1g8ak512mnnfmd3pjvwbgwym6y0dc428sp5k6";doc="03s4w726zmx10s1xdwyrag86lw84qf4rc3vcdn4g1mhm1cwqg756";source="07bjxa18cszvffxbvrzg26fpp77a5vvmywrr625qyx8v84khcs4f";};
+forloop-67017={run="0mqlc65g0khj1izxpgm7yya2klazsqggz2xx61ni38z7kqhqs58s";doc="11y7afy69dkp9rabj1186aw1d8vfwk3vp9raj0brknka6wlgcijc";source="0k0skv10m7z44d20v17yfdvg6vpn6m9ajn973d6da9cshxvszyiz";};
 formal-grammar-61955={run="044fz33qawb2s81c8walxiz0qjam7vsvsnsvqchmf4izd0svw998";doc="11rj5pbampim79ffipm7asn8q7nf8yy7l96j0j8xjyfxcqqld6ca";source="0xy21vgswxjr80q1qcx633g09qivgkd3i9gf0fwjmykva23q603z";};
-formation-latex-ul-56714={doc="1g964xll3y7llhcq1xih2zk916ikhx5jkq60il65z89fsb6v5jj9";source="184d2dnzcvx0f9di67433jw6b505mh3iv9g5fh30gq0344lfivx8";};
+formation-latex-ul-68791={doc="1mphwdmz61p473y2skv3xw7r7dkqfqr1qygnbg7ih1ai371f7hdz";source="0c4a6hgyvmfav048pifdczscd4cpd6pv0fbaixsaflkrpfwkn78l";};
 formlett-21480={run="1gjdgl26ma0sh15yrgi8kpy4sq268jkz9jmyw66iy3d4k9ybggsm";doc="1mm2m4qgiz0aplbyf3rwzhpfzhyg3mfmzc00z35kv6s5phcmlnf1";};
 forms16be-51305={run="140xh5578cpjn6mfwnghy38alz4av25gha09gl7c7qxljgpc2a7i";doc="0wa6pyn8l8d14d47kqvwvsnkv2s9mxfhmzan7jgzfrmkb74h7xlx";source="1l3ci86wl6an48a68vfh4ynajq6j3br8wbafm8w8c0x810hb141w";};
 formular-15878={run="16h5hf50ngqarcxk4gjs9x9mcycmj5cqwy5pb6ffpj9xbsxn4r8i";doc="19aq7sbghvrif72x7vzvabrhwj7lgsddsbdqbkv9vhmp82452vyy";source="1s8ngbw6s163dzj9mi629yd4fisxr1gl8w8i618my426szc1vrcx";};
@@ -1489,16 +1514,17 @@ fragmaster-26313={run="1d59sjzlvygwq9b02gbrfra4cnvmygza80b5rkghhhpa0n3xnx9p";doc
 fragments-15878={run="02m23bx1p090m6w1frb2k6m0cv6jk8d9fdbmjscwa7c9c55qh5gd";doc="11kj5gczbhb0imfsf30hc74s50iwq4zfs79j6kv62ib6v3p32mm5";};
 frame-18312={run="17r35x914f3h72drsszy74ir5phcxmkrcvwlrfd11li0lsmiyj62";doc="0888jcccsnlpzkynpg8mvxy2mnb2d3xz41bi341q9fdbbzs5lmnn";};
 framed-26789={run="0fp0zbq3bjfqx87zb01m5ffn8kw8044vkz8b9cfndz1ki64d9x4r";doc="1pjnqy8zl5zkadpkvwa35khwjk1nxg9pq0h1wqwgrdvqk6gj0cbi";};
-francais-bst-38922={run="1jpqkxaplcjrvc8647rj4xh9kyaqrk3yj7r3nrkyf4r7b0vwq2sd";doc="0v2828gxvwhljsf578a06pbk1fr3dfl15s9xchy5gpb3cmv2xg1n";};
+francais-bst-68686={run="0irbq10fv35k09a5jdyxa9c1x56k1adxhs3rmdzs061a3j0pp1g1";doc="0c39ya4kdhl5hialq3fggf6vkphg2nb166avfzs5708hc119ys6k";source="1rlq3j5xwci45gb0mx8p4zqp4fsdyck4qzdmz4j8p25mx7hybcif";};
 frankenstein-15878={run="0zj1gcl4gab78qcs2rv5i9y4q234iz731x2hnab169ygql4d95i8";doc="0x1fp5xc2qlx0pac2vqm8567fdh8i97k25ixr28w7fzwl9xnm91x";source="0ag37z3klcy0jvcvvj7v14clx2dvv6q43lh6gw83rpsx51v9wza4";};
 frcursive-24559={run="063909r7iga0cirxq8qx538407qly4p2a440xq7c603fmgcb8n6k";doc="147sa2wcixanwrhdh3ns8fg447zh5f42z8x0aw41xhk7pxncqrml";};
 frederika2016-42157={run="1pi2bhbxw9xg78w6d6k4l6p1qnm4nh6m8k3bn76kv4ascydc9hfg";doc="1vyy278j376swl2sjwxygqm6mi6s51aa6qypgpw3w2g5kpsqqxqb";};
+freealign-69267={run="0b1b3laxjjjr45cagwakv8c50c3cmw5iycd76k94d9nxhgm346vf";doc="0pz47rbacyyqyh075fz6pfvjpi32fl859mckpi4v0kwr9yk6k5aa";};
 frege-27417={run="1n0qak8xsi8wlg7r2daszdvi3hv9gmp7i04phcnx4hnlr68842d9";doc="0hb7a6c0i0jk8cvv2vfr743ysqn2vh1y6amy7arc4zafi097nwly";};
-frenchmath-66477={run="1jvkcdclgr5f519nafa78srg7f5nw97llj1apqpv5kblnkrrkwxv";doc="1fxcw5w32859ibz2j2cr0bs3lcx65r5jydm4cg32r2h55mhp4rci";source="06ljasc75wgws0ydfbykrqj3b678f751wc8jq7any3zq6g6wf7bm";};
+frenchmath-69211={run="1lf7g6kqv9bv6g21c99mj2i0g2v6x740rspibr6jxic6s5q4n3s9";doc="1znx1d2cwa29nic7jcwx1kacfhpig03xj1gn0ap94nz2q5rr1rhn";source="06a65spj8avshffjfp4p08051mxgagaw38i0i8qlk0jp5x89f8ml";};
 frimurer-56704={run="0d2534172sqpzg4zj2fz0k1qa2m627jzqdnpgcak4fxighvx1733";doc="15g0293xz99w400l3rj99849va3swi2j8hcj522qiyzfcx5j7k74";source="0qxpdybwz0rp748rqfs026jvps026sffq3c7zi7bdy8a34mqmgsb";};
 frletter-15878={run="11gxmdwwzwwdlrmycdxi0y123hfikhp9jv1jjmhgsmsmmxsx13ly";doc="1pzpz0q1hplni18m6wkwrhknw15h555qfdxfnnfrnrmsa7n2q2bl";};
 frontespizio-24054={run="1rdgh6wvxk0rhkadcrb1f3ymgxn81vbx489z16k88wkk1p0r4749";doc="0mwdqry0h2f65vrki3kvqpjnf1nm5n9v3ljmn77nlvkarqp2kb57";source="1p2c8sdrm0ay9nz0dqrcjigzsjki15fry6mmhqcm3gqrcscsk5x2";};
-froufrou-59103={run="0pincrfmb51qwn9bcfyqb6rdc0n08lwxf2gr8l74kfmqh2mg5mxs";doc="1jl6glh4pjm870wlb4in3v5vph55fnvykjziqnq702gx5va52jmh";source="0wng7skd5zyk0s2vgnilndi8p9b3h672pk00mwv97h2qb4lk848i";};
+froufrou-67201={run="0pincrfmb51qwn9bcfyqb6rdc0n08lwxf2gr8l74kfmqh2mg5mxs";doc="1jl6glh4pjm870wlb4in3v5vph55fnvykjziqnq702gx5va52jmh";source="0wng7skd5zyk0s2vgnilndi8p9b3h672pk00mwv97h2qb4lk848i";};
 frpseudocode-56088={run="0ypiw6sfap27hpflbk0drnd412ylv9r307jbkkbhnm5lsmwaax2l";doc="1cf6424l655rykyfvca2yl0lwdifgj5kgvl0fvw9ikayf02wh3qg";};
 ftc-notebook-50043={run="07ng7dgbr1swsx0zwm831wijqjq4x6hnr02354jdy9z59k6d4lyg";doc="0w9jxcfvkpif1fyd4xgwbfba9b2sf77mqr9symwby31lxqwrbys6";};
 ftcap-17275={run="0dbrhynslppw5nrdvikzdkfvilzr909ypc9v8nxpa3yh4zln182d";doc="0iq7lq25gzyc85wpmr93a8ivgc9038rs80mvhm46zdrrixh5ry21";};
@@ -1511,13 +1537,13 @@ functional-65485={run="1nzjb56bngv2h36vlww234fndanfi5dbmbz3y1vjxxwvahhqn0cg";doc
 fundus-calligra-26018={run="1rnrqblg06qkwcy7f460pd1hnh4bwl47zyswa1iv4iknx00rd8a2";doc="0jvbvalqyj0kyf6cwr6zf18ylckh3fwpshwhmnv7ldg5r1ylia9j";source="14a0d7d8mlsw7qwpspqc2rmcdyhnfy6l7f57bk9v9jc8pg9fxb6m";};
 fundus-cyr-26019={run="02zz37h71nqq0f4sf00fiw80pq1q3yadnhqm2j3niz13gms9ydl2";};
 fundus-sueterlin-26030={run="1zpcss3lzhc9zkh8b91138ycwj8pihch318zr9pc6bl3ifq37wq1";doc="1pjka7j1378bqa32h0b2dcinf6ayjmzcbm4c1sdw6dsvrzbnda3f";source="1y4bg8r2hmpa38hdgkrk99v87cphikdb7sq5x9aczbmwwgmgw8fp";};
-fvextra-65158={run="0g0ihksjv42jyqfwy9w4221lw37dzisjrsxgppnzrbvgx0djb065";doc="0idk8rh1crisb6biizbaw1p7mzzrdrjvfqp4bm7bhyxl4r47jsca";source="143vyfadbqhm830zyknim3rjvm9dj1c25l7gqr17sy6cyzi5njwa";};
+fvextra-69001={run="1dxzwabx3zifcidp1hv56h0kd234jixjnblym2r4sqfw7lsdyjv6";doc="1wwpl4y3qcgg1k6ahg0w4rwxzr3qw0nv505dric5qpsvi1944fj5";source="1jh9y4w5c05vsqv1yvrbra9pkcz2j3bxqnqqxlnyv5m825k738bm";};
 fwlw-29803={run="1qwlknaljj8f1cpnln328az913cdwypr7w8m8iqbqiqhsl49siap";doc="1cib3id21xblai43gkn78ypz6n99vwzhzmpdifdm8wv001x7wb82";};
 g-brief-50415={run="0w0i9mqc5wg9za3n99i3fkn4bw78l8kf6glh0k6rvrzss0sg79cj";doc="1ikasv5w1xr5ms6836q1bnk7b87s24m15mnwsbdyf7cnsh267x6k";source="01j6zxs8vpiiimc10hhl93xcixwlzsih5k56n7v9a1a3czgymad6";};
 gaceta-15878={run="1yimj3mxyjj36ib4lfdh65sz5w71rlp41hhnzz84kgb5y103wpaj";doc="0vvadcqjj3hvjll9nqn3mam9ycas0zs810qi2jnq6smpm300c3l9";};
 galois-15878={run="1knks42bg72lj8nqdy2iyaqkq5a76yf4zxql24mwxq5fq5xv1vmx";doc="1nqhf3si1kljbr0s1sb22kq6nfrp9ycvm6smiyxbw5lyl3spqkxv";source="1rlgf9bv4rjkyifz3xvvkv6xnqxl0pl973mq0zqxaiqfkh0i5xwk";};
 gamebook-24714={run="0ccsyi63paf40lxphmb60k5xciw8v7vd1hqllgq84mry7igzb9np";doc="1c2m4009fralq8ahhczwfxhh1cmsdh0c5072yrirda46khd5wy91";source="1dk3fpg5038jv5bs7c2f82vll0bdd7c1jrajwhlfk1v16p2f5i1c";};
-gamebooklib-63424={run="1xjyx2yvdnxh5a02pfv9wfjrwgk3gh154y6bs6vm4q3w5vx0gi32";doc="0sn0k5m2gmzi82r8d0vkf83rf67y2bzsf173pj2w9zdv8h86cnhq";source="0wjfc6hrq89hjx93vygig6zxdqib61ng4k4fg2981jrr7r9589i0";};
+gamebooklib-67772={run="1qk51f0a4z1frby7bv553rxrhg8xgfkxfnr4dbq3dg7mydzrl444";doc="1cix1yzasbqpghvp5smban4l16fc48zc8a8d9jjqgpb10l21a2rl";source="137a2hgcvmkgsd8kyzxlprr3d6v08xvdv3s049cg9lxazizm5g7k";};
 gammas-56403={run="1wcvzihv3xh52s3ydni4gs3lcp9icmxinqj6znwyy680izmw67ba";doc="1al5rvpfavkc1p7ayknxnrs4r7jzx7f7dbm3hayqwg0d7jdanp8r";};
 garamond-libre-64412={run="0cj6sla634vcp3ih7x4fg4iirckiizdggw8y5ddxyhszf1ygkz5q";doc="1q1iy0xifacs7w76x4pgcjx13hvj0wc5l42xzac2srbmx6x2n4sc";};
 garamond-math-61481={run="1bjskvaqq4glba1vmcksfx69p6r025sl8aynlbk46kh7x5fa6vj8";doc="1jb0kcy715fmxhbzg95qwilwnmp45znh37iisiny1dzy8919nlbh";};
@@ -1525,7 +1551,7 @@ garrigues-15878={run="0qr2ak20416p5zlavcbihxkjvifzwj3cf03ipsnxlp4a0r3m0hgy";doc=
 garuda-c90-60832={run="1yz7zpwdvvhzcsfcz4dc40nnaagwrsxvskc5bymmdxv1zf6m3npf";source="0palvrkdf8c8xhx9d2sxvch0lgycvn10bfszzwlbxw6qrbnpspr3";};
 gastex-58505={run="08xba3pqif87wn23vacj7amqi97yk2qgsmmawpm3r3iirir2l1d9";doc="1b5qvkpvdlsq85yllixs638p1bwv9xfqy2mkzyckqcwfcdcv7i21";};
 gates-29803={run="1vxn3j957za9j6ryf3nhy5r744gr63m78xzvlh0z10sr0bpw46v9";doc="0igxfdxyiz280ryivffq6c7y84c16ip1av8wn11j6x62dcsrm58x";};
-gatherenum-52209={run="1b5j4106mjdswm519nb9sswnpnna5v6wcy4p8xbccv01044iqlk1";doc="0afd1c352075ix46y0jrhfwlbsaibchvz3xs916qi3hd8a90hbpx";source="05dri0sgr8h29q3zxcsyhplhrkj1wllfb42d8scy6hp4mkmbsr06";};
+gatherenum-67201={run="1b5j4106mjdswm519nb9sswnpnna5v6wcy4p8xbccv01044iqlk1";doc="0afd1c352075ix46y0jrhfwlbsaibchvz3xs916qi3hd8a90hbpx";source="05dri0sgr8h29q3zxcsyhplhrkj1wllfb42d8scy6hp4mkmbsr06";};
 gauss-32934={run="0jsbvm7sh7bhs5yfl17fj1gbdqgpm7qchf07y3p7k0rxxg0f482z";doc="1f6ycdq3lpylkdwja4f89plz7wpnz73wzgjz74far6r9wr026443";};
 gb4e-19216={run="1mi8nwxa418wqp9w64ya1i0ag0pdm4cx08fkmaa302bkhym92bal";doc="0nzmhjqdhl0x29c70iqb8b96pjnx2vm94nk3xgid942pmx44skxb";};
 gbt7714-64633={run="1i9a732px7rrgq69czdqrvnchwwxzl7cmxm1pdnbkv6s2yaakgdl";doc="1ay59q9s8vq7bqvif314xjr34k9b9g4gk30w3wsy7k44ijs481k2";source="00qbmnsyv87q81m01lgflnypwvff7xbqfkf750pfdyd18g2r0x2d";};
@@ -1533,10 +1559,11 @@ gcard-15878={run="1pcxw9mg6hadr5c6m4z3pdzs0b9jw22injdlk46xxhqy5gsafa7v";doc="036
 gchords-29803={run="130b2svqilpj14jl5slw11b9dqhq1nvdph6y3qcq71pgng5lhjjy";doc="10mbr14bjxcl4p42r0zsqag5sg8yzp1mpi0s7fq7i9197kg8i77b";};
 gcite-15878={run="0dl1plmbn4i5hzmjz48hyfl5wj819pg6k1kjsdycx4wi0d9ff2pr";doc="175151qpcykxsf1a6g9v6mkhr6m9cm5miw3ys6j5csrqm3vsl604";source="08h5kxah5q9105n1awlrmiy0zrl3rafb8v3nwp4qfakr83q3vf3k";};
 gckanbun-61719={run="0bf42j8ismm450431pqvqgwzd04xsr7qlhb9di867qdyiy6hbrpv";doc="1rpgm6jclifxzs4k5ybkn9pxsl60vl167jjhffg6d319g3miy7al";};
+gelasio-66805={run="05rr0vdiw9jd2qzasq22zfpg901l9jvighlhsgcpl2n3cfwa96i9";doc="1n8jyjs056m85h2n602h4gys6556k4h2lwyhck5wp4g7a27ri189";};
 gender-36464={run="0skwbiclrpl1n55dr3lkw86dvqy3f1n0b271ygsz6rr3qa43478r";doc="1gamaakkqqf37cwwzxjbyfhz25gdzayzdkqk60xls9flp7227hbr";source="1l5p8ib5lbvq2b8pizpwpbcv8aslmi8dd554win7ssd6vhgb68j1";};
 gene-logic-15878={run="0fxddiswkvfzbmcckl6mhyipxjlr0yf0579i792c6rvrqs5avyak";doc="1nd4bxrq1g1gxcrs9lvnakaivla37p218pa4ns6jyjmimfl31gxi";};
 genealogy-25112={run="0w15jrd6aycdjh8qznvm549kzwl15v2zvs7awgk96380nzcsmhqf";doc="08fxhib7wydjbd3bf24kw6zbbz2sv6fhgmg4q2c1lgxddmm8mpzy";};
-genealogytree-66516={run="0947fmawi8xzmv9c4k4355fkgjivkkjrjglklk6ar7jky2xsg62b";doc="0wvqkdhk1lmvk79qla34l14hvcjmw318vddz1dhl21g0cri7fl60";};
+genealogytree-66513={run="0947fmawi8xzmv9c4k4355fkgjivkkjrjglklk6ar7jky2xsg62b";doc="0wvqkdhk1lmvk79qla34l14hvcjmw318vddz1dhl21g0cri7fl60";};
 genmpage-15878={run="0fr4m2y3vfymlwk7ik7rymifyam2jhbxn3qr2sj40zbcr9wbah6n";doc="12fxwrz5gpswyf523wm1pg99zilkgrpq8z3ls5gw9j7bdb71nj1l";source="0q7acjs7g1xh5kcmrg20k9jayaf5vxz5p5amjjd4xj4rnb1wdlj1";};
 gensymb-64740={run="0rsck4ysx86d4gfr5a1w9kam98zzclb78v5hgdmhag74a0qs1n0l";doc="0826rq87q35knzmwkhz6ipigx3s3hkzcypy977qa0r3ibcbdr7ap";source="1na3aqqjfp9p9zb7hyzz6wdd0biiigih9fq6bxygcwflbwbhks6z";};
 gentium-tug-63470={run="05m3qcb12n143sxy12zm0bvj9zvkdi4sqsriprfkkfg6xlvk396r";doc="1yw6xs5dpmvk1brwry30ak368xddbmz5z2k79fpnyrx9a9z57j37";source="062g0b8bn41aynm3sk02ciapiiwl55whynvnz3gfzvlja3fn3xxp";};
@@ -1559,7 +1586,7 @@ gfsartemisia-19469={run="0b200snkvdkrywgn3j613zxyx16prqczw106hfh7pzpr7w717lyr";d
 gfsbaskerville-19440={run="0n68mfx7026ymxlyhdyg9ppylh5g4bkwj95c9bfmp5bmym0q6dfi";doc="0v0widjs2w65ppvzm04wzinrcyp8hcicgxp6brydjmx9d32yrzcq";};
 gfsbodoni-28484={run="00r9b46m6h4vac788vfz6jixrd4wbmscblhqi1pxhg76id33xdgd";doc="1s0lq3ac01zcaqyvswn12fxhvqarq2b3lni1xza3yyk2p6y95g1s";};
 gfscomplutum-19469={run="02c0zs2xl2hy5wrrj25w22q1fj6q8w4qjbvlpx05pzzh3y63n3ip";doc="0h9i4v3sag4fmvlnkk0wjxmgsq4kbiikzv0rzfrhzfwaifpznkcf";};
-gfsdidot-54080={run="1ks352cxsapibfm3y4rnw3k7izkjzpdc5fd2faq314qh5cpjhyy5";doc="0nhjndir8y8s9lpnad05h2crc41la5hqg8ml1rm0j5mn6jwgznwl";};
+gfsdidot-69112={run="0m75xf0x7y3mxhhnvs22f1fz4gr8m86g8z9nfqxvwijjzm6xgm1l";doc="1jaxayp4z0ih0cr795as9bmp87h24z41ijhrfwwrbpbmjkkm77qx";};
 gfsdidotclassic-52778={run="03p2w06s9kca35jdby74q4x8if5gs39gb387rjgqbv3vdn7zxi4s";doc="0qnkxqr8r9spg3xl2ifr2sb32hbvmka979c4f8aw4z1i810bs0kx";};
 gfsneohellenic-63944={run="0ycqh6fn1y4czslajdwnj8fga6f2riw0pd4az10qmrxayi5hil23";doc="0zp7rba0mhbhjsnjwm3ldy1frz75grxgnkfl1gvzm4psxm3c9yjy";};
 gfsneohellenicmath-63928={run="1caa8w1jzwk77djhycahr3dd6n8823vc513gl7sgx2jid4gidz6j";doc="1fk5rn7jxqlwhzv7v9fvpadhlr07fr4pfjlqh7zx5wl720xb3yif";};
@@ -1575,6 +1602,7 @@ ginpenc-24980={run="1brakvxxrm1gahl609psp4na8ylkggfs534nysnrijq6vf4r1ryc";doc="0
 git-latexdiff-54732={run="0b7hafll82widr8vibaqqavwwzi7m488ypm5wx14y6jncfl8py9y";doc="1cbny4qkr8dg8vnxjnjawq9cjb0h3816ad66q8b5652rpxn3zqcl";};
 gitfile-info-51928={run="0qk6r9fiv44hamlqvsgpm75nd68sgj81sgy93zsylypp15283z2b";doc="053x23sq6657lddjyk9bzadwydfh4zxl78gxl1payxmbl9pj925i";source="0fnrwcjfji5pbkh4kdsishfy85gqcvcmfqxwr5s1n3bm3prgfc8b";};
 gitinfo-34049={run="1n8mm4g7bmiawd7l7xhx9fcxv7z3l629bj21i6j9s0rfd6c7mzz2";doc="1ip59qxlqzrn8y211691cv4bg8d0yxkyvbpxw8xpzg99fpp3isqx";};
+gitinfo-lua-68808={run="1brd5rqdx2s7s21lddkkl4ymvi7zcq364qffi3wzb55c87q5s4x9";doc="19c8bavrs6jqk0760b7j608xj1mrr2nrabzw3kdvgxy2azww70ld";};
 gitinfo2-38913={run="0k3vw12yh13q1v21bz7i3m32s1w49pk13rg3c0d0l1pcx0wwz20i";doc="0586h9c1kp5cg7gk67xhy5fbshpskrmfb81m4xncaxg6ajaljk7n";};
 gitlog-38932={run="1v0zpfry2rz6xvm92gzhabc9sa157kylvp6jg298kdsbr2limn3k";doc="0pd1f42qmka0wh9b8m15nk69p6isqp74b5qkjg6ymwbabqxbcbl0";};
 gitstatus-64662={run="0kn4q6c6379qs34hmvzixvwkzhwbn3bnrn1pjwsp8lp66fv1wpv2";doc="192g75hfxg3nkaf0x8b142jzgmjzv97mpiravxfwpgfv25fayz0f";source="03kz49szcrpa6ij859a44ham0gbr1w2bd7z7p68vhwg2pcg8gq5r";};
@@ -1583,19 +1611,20 @@ globalvals-49962={run="1kgzrymfd5lzvb9dqlb4cgxfszpzhvad859r7sl0dl282596apgl";doc
 glosmathtools-55920={run="07s9jh24m9d9y01kk6z5lw9acri8g8vjmfw0mgdw3mwpffmba5mx";doc="1ya15q1nb7xzjxq7cgnl9q8pwfr1xbih6shd89krijr2l3rrycws";};
 gloss-15878={run="09d8r16dwl26a76a2gky152bafjip3r3hf41bxxcb60sjvnz2qva";doc="10vgsm0cvcbfxwi7ly38lsvvg139y6abmdsv91qxq3s1pn1qxg6d";};
 gloss-occitan-52593={doc="1q00j5r6d2y3gf8rbh7f7rdfjg3mg1c3rrfqd69rxyam9n92h41r";source="1cb92fpzv7cqqxxa0img0la6hrgxw6azb6j2rslszk9hjghbcjdg";};
-glossaries-64919={run="162ccw02q6vj9vs4j623ai8p0fx4a9mn671v1pxbhbq2w0j60k9m";doc="1fsp8z1iqsw5jg1jsinjd4xwbxr05vwbx4krbw8zq9far39vh6kj";source="0xghvz3lgpq19zf2wawdh3qka0k9x2mk84qqjncnxfh11fbim2dp";};
+glossaries-68437={run="1d85ifx1q3cx9y1mx1qlv434l3858mk8xl6g8azh806258ks2lp5";doc="139jcnfcqqdsq5wvbj83dkrhjgs1fwslbgp16nfnkdnibv6p3rl7";source="1kly0q8gvlgr8fd933dyfkqribrpx51zaf10v0ii1d7s8rp4a07l";};
 glossaries-danish-35665={run="0qdyvkx33a9jgfa7y1pbm1lg5v1ba4xrxxg0hyfqi0pmpkajqb87";doc="0gvpcl8881g9xfcxhpa3h3c5zc3467ak8mhmr4szgjrsi4nsrnv6";source="1823i0b0firwzz9038wag2qg2h39az1xsj8484w36kbij8q7ygld";};
 glossaries-dutch-35685={run="1ipxgp919h2jh5jajq72dwaf6v5qi7xjplcihjy8j88zakd9iacs";doc="10k1xh64rzgcddzaz7qawb2qd353j79xn3754byhn4d1kz6nihxw";source="0g2kfnxmnnqz8y095b125d7ira54s5dpb5shfqld7m52cranscy8";};
 glossaries-english-35665={run="15nm7bz90ijx674p16d596jssi5915iy43wc1qb6gbbk4s8y9h3c";doc="1dckvl8g0visp5j8ip9kvmis7qw1n81xpjw136bnbm28y7a5m4sn";source="0x2iw6g9a6dzw22p05n3v7vbif8svhnw9sjqfmxn020jqnajza0d";};
 glossaries-estonian-49928={run="1p2d21rx6vs8gcsalbf5kjyhmz71gbbn10c4j4lsy7rqcb97zi99";doc="0q8rsf08snd2p4nkfz2ry7rmsbdpixgn14n1mk4wkjclrbnjszgs";source="15xi0xl53jxfqsz7dwbmcrnlshvs2zbdq38v3izlyz47aaf6ajdx";};
-glossaries-extra-64973={run="02hwbyy7vyzifdb8ifxj39bh056hbfnr890qpzq962d94238wwcl";doc="0bmd08m4bxg6qrkpyw59zm8zw9q59kfyfnwfd3ik5nq0snms3380";source="1shb2930wm8f22h0yvwq1ylxia5nl82bqn829b42w567byqyxwz3";};
+glossaries-extra-68409={run="1k23qj3hmimg9yc25chxlg2bkznb730c897ly9hy9bm1cvwgbfwc";doc="0fx3jqn01nxn6slb78ilwkgwn2na2snihynjmirp4r17xx858dqp";source="1gg4341smvw2qd6wglywpaa7kziz92mj2x9vwmz28h6pnsvr0x7f";};
 glossaries-finnish-54080={run="18la9s6gblpqdqa1vcvsddzfxadssnd1mrg6iwl4aarq57605cql";doc="0zjwasnxi1fzc3xq8xjmgyrfcxpf3sbfgh6nzz60zdxd8sz1wvfz";source="0jfvjka4i94vh88jfpyysm6r1q9wwg7q29s5ik8d3da9g3n1bhyj";};
 glossaries-french-42873={run="03i8xx80d740c5yv3i83zbxpm9kckzj2kbdsakxa3sp9b0j0jk0b";doc="1k5gkdj5madigzvs138r360nrg6d3fn145xf8g708bk43r92100r";source="0fhi17x6kk73mismll255b9nsr8hm147zd0n3rcndbih9ray6c6a";};
 glossaries-german-35665={run="0h30icsisgk45ghhmngda0nqsjzsm23hay0sxch00ix5qcd19s27";doc="0jmkcq9h2kfjzfwysfps7nqjl7f0zmh5s60ww9kll8ypdd4a1n0s";source="085xarcnj5cvkljz70m27c7390jpj8kwndpyb762pr26dxvgspqh";};
 glossaries-irish-35665={run="0xyijjl1mffhmwlx7b7rprzl4rvhb2h8jdsx2jq86qg5gxd6c4r6";doc="0kic0jhmwiik3y2gipncii6j4348qkxbvkzs3sp9678xjl6j5zl8";source="12qdj6wfgrw6j4vdlkv0bcknnamb09vsyxdmyd094hwgi4cs7wi1";};
 glossaries-italian-35665={run="1dwvjb91jn93jbvh0idvn3nxm6s7frxyvc5a7yszyisfbaxx917v";doc="0sb6kzw87nh2vznwhky087017c6338jhqahgh4ljmzan9h3imk84";source="0hj3wdzdrjv9aciqgj68ihaalvarimi85vff0hf6isnmja5pwg28";};
 glossaries-magyar-35665={run="0y1540a4f531mc8fqpxv50d25a78waipkhhjvgnilbh7p1l3cf04";doc="1sgndhgxlbhfjg22hpqazyd4zrqmkiahjfwhhwv1nk4dnn1rflcp";source="08m0srsv9nspqfzab0g276rimzw64hg9i6dddi7fy9pc55iikfky";};
-glossaries-nynorsk-55189={run="19di0liyrqgi4vb0aiw3p507klaszwbdmsxjh09snp7jyri2rd43";doc="18l362siz2p65qhb2vfgqdnczqwcgcd33qq8c0c1h3vqmsmcjfvb";source="1diq7h06jw2s26jrbb44amniqyipdndzidf2z122xyc9cgcwzcwm";};
+glossaries-norsk-67141={run="1qa56xzfnhbb9m5aaz2sxqqj21dbsdmm6yhkskdb45j5ac8b0nyc";doc="15z45ib96inz7y68rfghas87zbjw9g2mv9r4a63xkf371d4g6xsy";source="1jgwc8x3xia56g5xqplasjr2c1cll1fdizfhzszrz1fc1jfjvyzw";};
+glossaries-nynorsk-67201={run="19di0liyrqgi4vb0aiw3p507klaszwbdmsxjh09snp7jyri2rd43";doc="18l362siz2p65qhb2vfgqdnczqwcgcd33qq8c0c1h3vqmsmcjfvb";source="1diq7h06jw2s26jrbb44amniqyipdndzidf2z122xyc9cgcwzcwm";};
 glossaries-polish-35665={run="1pm5c1i0zfzj32p75cj014n2kdlfhfp6zlh09y5y8a7cfdsbcjdj";doc="1r0igixgkwcp7h3aslj7kmchxz32qp09vdan6w2garkgj1nspnv8";source="0zg3pfjg03kcrqm4b3s2bb9z3jhlga85hzd1n83pbrvf7fph4ld2";};
 glossaries-portuges-36064={run="1gjadmklh6lsx5drjqgph31z3x0g4xy11g074hm4y2zgziidkbyd";doc="1cbzpx932chvxrf4myhy6bg4jrj05nkr2l2g893k6k7xgm2i1m7y";source="0cz40x5s9whyr7r7w8gmw9gm119xmbb1qkhz19zfijg6nnq2yig2";};
 glossaries-serbian-35665={run="1nbpnq50kki9i2i2dlj2x9ldy6g0in0mz54ii107m8fc66g90vi8";doc="1cx33aqm3qcj94rl6n71wm0sq2kc29r1wny3bwwpqg5mp3bw2g8g";source="1vgihxf778vvf86rka345qmnbv5s2ma1b5h47s2f15x8bjx4xy9r";};
@@ -1609,7 +1638,7 @@ gmp-21691={run="1c98y5fhnq5w9b6kkpnrag364269s90kccgbqwr33bn9ixhsf0dq";doc="0wir2
 gmutils-24287={run="1yf7r1bqv7kid7v65bv56w4an5nx22fhxzh67fh7r9y8msrz86lh";doc="1xplwkdjdcz76rmmmnv8zfp3fj104b1vag6rzrxj7ap9k8zzc40f";};
 gmverb-24288={run="1mqmi97imyr63ff0qyv797sipncqizbx9cvlg49wxnf3bjyk2ki2";doc="0r9sygczigi52piyk4zgw807zjr0jl4babj3qmnnsg0qclhvaqnq";};
 gmverse-29803={run="06v5fxz15byps13vm1afrpx365nfmq57200gspqpdch2sji2n4k2";doc="1f8hccasv9f1wbjn7cjkwa2z9rwn8lwkv657i8n533ccjk6s5xvy";};
-gnu-freefont-29349={run="1gq5dcbc92cxvlqddspc9m8v5biyafgvjc1k7fy8z31vll6wnfzi";doc="0czpqlipbwnqsh5hp6yaq4ypqzipm0xfsvrfc36pri0d2hb77clb";source="1cmd2p7krwhkg1f8xf0y4z2ik9g0pjc0qgi3c5van9zva0bn84k2";};
+gnu-freefont-68624={run="1gq5dcbc92cxvlqddspc9m8v5biyafgvjc1k7fy8z31vll6wnfzi";doc="0czpqlipbwnqsh5hp6yaq4ypqzipm0xfsvrfc36pri0d2hb77clb";source="1cmd2p7krwhkg1f8xf0y4z2ik9g0pjc0qgi3c5van9zva0bn84k2";};
 gnuplottex-54758={run="1ck4r4inr8ac82p0r8062z3hwf9187sv43ym9586sk3ip6kqb3yj";doc="198g23i6k5f353w2aa9f9cw6cj8b4f93nsk7iq2hvhvk6ia876vx";source="0iz43zdvzfs7spc6zvgclyh0vjnzkwcixgk5mg2a3wrig8r4q6fq";};
 go-28628={run="0lqgz9r0vxjbq1nyg77zjfsglwbd44zdpwz56smalb6lp2ra3r5z";doc="1mf49wywa32chr8q4c0s4fdkmzd88a1fj3hxcf3zx7bnsi5r4gl9";source="0vslzmpj94qlh5g2jirwj8b4w93vx33j8xdadyc32s6b9rrdwnyl";};
 gobble-64967={run="0f4dk6xg7b5ij3w2za5mspv96xrlksyi8gy5h2ri29khb58cw5h2";doc="0a2rd4m38mgyfpjaf9na75w5cmn32lxbbqhqyfr145hf2nf08c1x";source="0k42x8ni36gq51aw55ywy36jl89brhsc0177kn56zpvv2zmghqiw";};
@@ -1624,12 +1653,12 @@ grading-scheme-62505={run="1cbprwzwz019nscz0j3j0cdxkrmkqs9r220qvfms1vfmjs1j9dg4"
 gradstudentresume-38832={run="1i3rbv9ixnr60yrjzbj31aaq758638k5xvlarkaqsjvacc3wx88f";doc="0nvih6lkbgc7jkkj303119fyxnajl4iha2baz2yhy62h4mq8lhd0";};
 grafcet-22509={run="0yz1f2p8dn3a1ws5skmznbd4ih9bri6r7vr6rx3zcspmad1fjg4d";doc="0inzw5cw5759c4l3ikzgn0zx47b0l575yjpz2613fh9l5ys800nl";};
 grant-56852={run="1whd5f3fc72balvgifnb37583v0882xq51qa0fbb92b0a0c71nid";doc="0zfz8gj8di6sx9k48zdn5hv5x2fj5rd8dm7x4h2k6xssrj4aw7bx";source="0pmg6kjzy6wahhz3lk742qzx8m5afz8lqsl05zpkcmi7ris9m9ah";};
-graph35-65138={run="1kpcsdyh212brwfvg6m9h5w3dmkzcag9n51h0q519hb7qq0f6k0v";doc="05fx0x4cdsdr78sak1clb17393g5vgjqjigrh2kwkrjdkqv2y8i3";source="01ffp49nvyfhkx2bki8wrnvf3jd9db2w357l1awgbymynpwrx1zr";};
+graph35-66772={run="1bjdw1kvds8iahl1chrzmzaxm5ad7bb5c99yyw3rd390pqbh8y92";doc="02kx45b2c9d3f0f5h8xw2mnqn1mrp7v8975y2gqx1ln2x61xmjpm";source="1lm6531f5s5j1l2fasz0fk0adask83b2w1plkqmk3zxrn4rcchw8";};
 graphbox-46360={run="1hvhadbpd988nvrlcppvv3bnm5lzmlnxgwmfp6r4mgsr1q7xgg6j";doc="1gls7j4753s16q6lgdsaa3yg8fc4vzxh74z7qr2ykz9b8ij0sdr5";source="0nfmfn7y1qqbm4yifqxfpxn9yw2xb9yj4smv9fmxrs57ism8d9dp";};
-graphics-64892={run="0cb099m8387zmn58aws7q6nn2wlxnz3hhghhlfn6aagwp1i064gy";doc="0q1b8gbssjvrga4nbjsxk8mplingbjs7x4385pa4bg2r29r09znl";source="11jmacik80m12vycw3yr8waszi280f6raiqcws4px4w6zan71qhz";};
+graphics-66204={run="0cb099m8387zmn58aws7q6nn2wlxnz3hhghhlfn6aagwp1i064gy";doc="0q1b8gbssjvrga4nbjsxk8mplingbjs7x4385pa4bg2r29r09znl";source="11jmacik80m12vycw3yr8waszi280f6raiqcws4px4w6zan71qhz";};
 graphics-cfg-41448={run="09yifx2ww4jjjhl5k8b5vz78711289755mw0r1rcshk596qvn9r5";doc="0rfjgc83ryg3s5q01xnkk8bzw7rx7m96hfxq85xjjn5qxsgy8yqy";};
 graphics-def-64487={run="1jicdjf7bd30khgfkn6ilm7y7rnkqvms909wqj3ixc3mr3fz8j16";doc="0k6fapbyi9bidgwr67m4l2qfqyg0rjwnyznfi4fy9q9f6w61fmv6";};
-graphics-pln-65187={run="0ig79072lirxb1hdy8ja2vc7p7hif6zcikp2xklg6gvr3q8a4azd";doc="1illsbqal78vbyklk1h40hmsnp992irmn3my0z27qm8qhkb9i32h";};
+graphics-pln-68760={run="1z2vgvlf3xpxidfs0g4hmq990lpxvird2pc6a59l2cm1s9nvsz10";doc="0zjm566qqqk8blsdri7jxbhynlf98fk7w93fdxf5wvq4lzkwks38";};
 graphicscache-65318={run="0gmp7wldnc7l3768fs3wximhnc02ijlsajsfbg1iypihak6m2ym1";doc="006yyxyga6n3hissz8i8nmydwyin4ag00j9b3g7dg4263hl8yakw";source="1nk212cwla2y2dv6cysvk1vzk6kjyfgs03ngh3ry4gyz6ql844qi";};
 graphicx-psmin-56931={run="1sz53s8j6rn37xz1kkw0zr85625qki05zfvj6zpyw1yxay86r89w";doc="1fjg0pwh8qxk79mmrpgnwps50r8hvw6hqsjd2cp021wkqcyk5zb1";source="1rjl35jhy6dwja782xwh0qp3bxyw6ziha6fw5qbaq16jfy8hs95q";};
 graphicxbox-32630={run="1pl1x7n7yv7grkplpx7fflfi4cwzmkmh8nnd77i2n5wdlylyabxd";doc="0f1w22m5r1xz6n70yb1p21qq3fi2rfj9mdcyqq8s40km1i40yxkd";source="163isaz9zh1jr5wbhsw3ppicxsq4v92d6516dqgiwjhf6hdgay94";};
@@ -1637,8 +1666,8 @@ graphicxpsd-57341={run="1fganh87hpkac141i4c8f5bw06sfhy3qs14blx466h1nmc6308az";do
 graphpaper-63116={run="1bba2x75pd679qd6jcm5dd2br5d3gr7s3r8fwwid8mmq30vy72lg";doc="0a8l3wz3xrxnwp5s7gjr8qgmdbkrnwc0gki6i9xymvys385c6q87";source="1343djcm9sh6g5v8yfbrrwzg8x68rjgwpicq79md4f4gnsmz6lvv";};
 graphviz-31517={run="1gpl57lb4wkysxdhvqajzxjb4w0m5nxdxi841dzg0sg2igchfab6";doc="09aa9yl3zmcc5vlvjvgaxfmhj83qk4wgp4fx90bgn28kxnzhicxx";source="1w878b21va1y0mz08wr7mgdxl09hmbmxbzfnpv2mdqyy01lwpzks";};
 grayhints-49052={run="0p65f12y0v9s13gkmd0limdcsz36lnbf0975c4pxcsc42i8smvqk";doc="07qpkj60rrl1pc651qa8kpym3bzcc0qkfwaggcyin9a65a5snnhf";source="1g32xq2f1ncq124j2j8xm3vdkhv4sxynxc3wzx7x6s9i91p5l59y";};
-greek-fontenc-66516={run="0vmmldg31lhdz1c17hd2ldm1l3af58npxhz5lph6wj4hk55kgh00";doc="1pj9w0yfb4f7rm9qay6s89gv32v150s8v897ci37vqzm92cn07r3";};
-greek-inputenc-66309={run="0krfi8rqvbfl4lhidxrls8r0l5fg97w0yrbaw6cr4zb12cwsqpjz";doc="1vqyxwwn43igr523qybgvgqfgl182v8f02n4602ysqpyw66j53s4";};
+greek-fontenc-68877={run="1lsyx2g792b2m7rjlihqj26dkz9kaskbrbwzvkjd0x0rzvf9g3a8";doc="1qrn41ly963nnpwchs1s1l3mfsi49af1x0q9vk4zms4wcd9w34wh";};
+greek-inputenc-66634={run="0bg3frdqlja36j7l4y1m41nslqy7bisbyqyax581arrl9hv9p0yh";doc="02wghx50h2x7p9kl6j7kkg185jra9pijcjrf3bkx6c7d1spvszcv";};
 greekdates-15878={run="0g8cgyrw6lacr9cjig3q1g7rvjdwb0p40b41rsqg6lj6y7m25ya8";doc="1sh4dgxfn55gg9vp163qj9nd6kbp03cb3nkg3hqlf6b1az486nh5";source="0k8vyyxvi1i6kqnanfm1nfhbwllgn22ik57r2p357y69hfj3bs4f";};
 greektex-28327={run="1v39z550xynw4kkqjqcj7izj2cghkk1g2swsy9x9c71sz95r2bw6";doc="0g4m7sb6ppjj0nxgv7pwwvc5p07jdkablcqasdmj8p44ikg9vp59";};
 greektonoi-39419={run="1dhbslqclyk5d8a9v9s4af4gxdy39b35zbbr3k5m53gsd0kcs5w9";doc="0hmxx4pcirm2v5xpl3zyij8r1zm45f373dv18vxj4xr3sn6b7p14";};
@@ -1657,7 +1686,7 @@ grundgesetze-58997={run="06zf794hhf5w79d3i5wh4lw97i0j98kfkrnn8nppy3p4yrij864b";d
 gs1-59620={run="0j8hsdifd75wm4viqwxxk7s654bb7yxs5ccqwl0hxw7kxrxybxmr";doc="03yw4cfa1ixhf34ak42qjwnb1pbw1lzljxg371v1gcwbba9x9svb";source="1my4p6xgpghz0fqq1i5wmqx0nx27xn0vbpl4gbczwi1xnakmvv4v";};
 gsemthesis-56291={run="1y9wj43qpcgp82sfi5s7izyf284hzkn5py0v145jx03l2kxhv90c";doc="0fyadx4x8d64h75fq3xgmfxympcbfjhwwmwg4bpj20d3dbf0rh32";source="1i5w77zwb9c4qc90hxz7sna8g2c11mkf3vnkkm3scm6pkbg9z0av";};
 gsftopk-52851={run="0n6nnfn3fwi5dz9vdqk4mv97hwnyybj3wsv3bipqfsxl31yjp51j";doc="0xdb0h557sgi56gik24izsr5xlbmlfya1w93yih61a5422rv198c";};
-gtl-49527={run="0hj1xzsny4qx2j6j7ac1b39whjcn3z1m97xyavmz9w7ak4pgnh74";doc="1aj1s3d53y0wsivmavam28zm0q1bxgk4hndr6ifv9fy4m52dw89f";source="1qvyhmywdwyaazcz7kvk321pbsqhcj69852a8zq0hkvgcadrb853";};
+gtl-69297={run="07d5wf242l52y43ranq4l147755gl8r83429706yjj01a71mjlh9";doc="16qpbiy2q9bmnj545ni2pv0w63djsqyjba32irmhq61xc04fkym8";source="11nnmbgr3b9nww4w337320rjkyc6l007s97l3kh2m2xaw6danmdk";};
 gtrcrd-32484={run="095v007lhv0yyni3cqvc14iv9jqi0aqfmlr0zgxh45xfpqbsglnv";doc="1ivw62rpgfyxmlrzvjvmhf4hxfrlgskzq3qr0p6g48ilv3is7sb5";};
 gtrlib-largetrees-49062={run="0l0fqpw6sd1gg3da8s7wz324q5bdd9l80zxg835gfw0vvrn912im";doc="1mq4pbmsfvm4y7g4ar3a438469yy6x4ciksrns05dnkk54adyyj8";source="02x48sgx6vfwbdvgj0f5b9sc0kmkwcl6jyqzv0ascc77av9w41na";};
 gu-15878={run="0h37ilpkqlb6z4fdjldnbwpz2j15izz0wb70n4zmmp2162qqbjni";doc="1gx36ngw3mbbw9i2xdi2glx80xfvj6pv5frh6fmsqlnvhgni13nf";};
@@ -1687,8 +1716,8 @@ hanoi-25019={run="09a7cv76naxzdach5507wdqnjp12amvlia7kw0jh224ydmkzfx9x";};
 hanzibox-63062={run="0pww3xzi9r52cr0bggpw7wlddm6gzf5vs5xi7v03ynlpn45wz3x2";doc="0x18yvhnywhdl68jz4v5llkqqpiz1l48nv77g0x2x2svzwrxrw3w";source="0dblzzg2gkg1blx8rh3rs3jb5pq1qjcn9nq0n0rz7a7dph5f10j9";};
 happy4th-25020={doc="1x950scxbvcgwycpakflpklc775pknjab620g099dnsfrpb76f4a";};
 har2nat-54080={run="0zaqsnvg46pdf98gzlxa8l6z8v9l3fd7jmf60nbrfba7jrzpy1bh";doc="00n5qcljlpw2rq8x921vhsk7xvz8z43gxiq41qfzin696ysn7xj5";};
-haranoaji-66119={run="1vfk6bh62pkmf961qlj1f0gv4yggp6sadjr141h8905wf5980m46";doc="1phy7r81z2wykymzsscvgk0211w1lwjjn946mpzdw97vskx1v2f3";tlpkg="0l9jczs7kyml3i79idyzxsmla443zaxl5fm2k7dmg5qpc30kzmaw";};
-haranoaji-extra-66119={run="0j34fizmxvalvw4vssx9fm8ik2lg0nhv1saq9xbrd1pymjkavnv8";doc="0izf929g5fwzgyb9piagjjjn87rq4dj6qy3j873q4cflqd9avdns";};
+haranoaji-68501={run="0lpghfxqr1kh4s6vk5zjqkzm4ryz47qa3dkrxfiyclv4crsqlf16";doc="0v31a7kz4bxp4ay7bh63w5hn53iljq62vkkq0nad7jf0cyhdm5sv";tlpkg="0s4wnm8lh0sbblz47j7q48rlndqxjiyn332061iadd5gh1x9ialh";};
+haranoaji-extra-68500={run="17j0nf9f0l2202d0b6yba9dbkwp7y97kxh4lnv4chvx7f07l5grr";doc="14w5x12q0d4z5h0skp4lvicwrcksl9wfc8lrsv8lc3dmhijv0f48";};
 hardwrap-21396={run="1kwsns5vg5pkplcl5nhmvpm2ccdv0f9431qxjxq1k6zfsknpy60v";doc="0h1n80c9l34isgyzl36hf4nigxcsykfgqv6i9jjdf6dqpp23bpw9";source="0hiqsj0vpfkmi8z048ymlnxrxaam8raq2f48wlyk67x4w2gv72k8";};
 harmony-15878={run="11vh6dy95n049bfr46yyb6a5ziawmh3n8dr8l7cqhj4pqmkpgad8";doc="00kf7kbrfr2cqv7izx1v90mpa81ncsn0r9jkxkhz8df8fsizaigl";};
 harnon-cv-26543={run="125885fg7frl37pmxxj51i7d22xydj5wsva9i27126903y3qdm8m";doc="07i4qv95fcfnlfj18qljwbkv1cm5r00mzmq570ra3bgjc301gk9a";};
@@ -1701,26 +1730,29 @@ hausarbeit-jura-56070={run="09nf6pz7xqhzs0n7nafmmkpsy5ksvqvnwha80yv6rxasnazd940b
 havannah-36348={run="0zdbwl36d8a374yhaqfb4f3561ncch10v0vh7nxj22f267lgl2n3";doc="1pkkslz2f66j606j44rq32dp9qhfqcr959wrp8j9xgkw76i9lprh";source="0gyndaw2g2j2j22njn32839mihqx3pl7sij35vhsyahyamnipk2h";};
 hc-15878={run="04qricj1nmmmhxwsam901cr43h96ymc7qdb1m52byniv51i8g0yn";doc="06q64drrpgm7lzp45hrl33cs2dj4mx1mjpsd3paqgsn2xxqls2yj";source="0knqx9smbx7lyr1r6vn50x3x9zldv14gb3484jqk28jvm92njnij";};
 he-she-41359={run="1rr8pdpizasdcb1sfg74nsqs67xh2lcwd8w2rjaf719bpx9372yb";doc="1lmahrp33iv7bbnkbiwpkagy3rm7j0wric7m1fbzdvkgkzv274na";};
-hecthese-60455={run="17yd5vkgss1g8b1hq34pvawcqlw494yc2dwnidlykm94jgqlzfz5";doc="0wmwc5sipbd82c35qjiqdj45fr71wl719sy0s4zbgw45852180cw";source="1xwbx6sk679m7wb6sna4c0valja9xcqpcwjbcp1sw2yvdx91jn1w";};
+hebrew-fonts-68038={run="0024bhlbj59gq22gafanns4gi8mii8fcd6xkwaa85czgm5yqmazc";doc="1kv46s1x86gs2b7h9934hqlpp4siidnarb1shj427vijfg68asnp";source="1m4kd4r1i3sj4x0liyrpxckdp4v6xvy79xwmkf3glzrmzq79vdz3";};
+hecthese-68584={run="121l6nj57aivlyw2gzmyqyi90ql3bsrdjw0qa6gy7i7ifhw81s8v";doc="10pl8k15r835rac4ihng85ayp2k4w7idlf3ss1ywb3appayf8r9g";source="1cnnif8c2n34hlpm26bpdvbrvzil09rdfbqcyn5nbfxd66k83vah";};
 helmholtz-ellis-ji-notation-55213={run="19szfdy3r6i0ayfr4qjv99dy6h97pqcfr08xhy3v9kzqm4d2b5nb";doc="15d4dil3r44v5xds0n1lnqml7cyncpyr92prb56rfaav669hflbr";source="01zdhy1p6idpksjh1ak1lyw9j536bzr130bjgay471k9d76n38dr";};
 helvetic-61719={run="0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl";};
 hep-15878={run="016jjvmmc679sk23dy0g09a0s0n176a5pyq18snvi9xajh2c4xw5";doc="0czpwbhpgpbij9b97dlb3qq0aa9vyh12p81sdm0hwkj3i16yawav";};
-hep-acronym-64890={run="19sdmvy5sijgaak4sqpsmz5cgdmrqpbwg31m35aafrimdpmbp96g";doc="07im9wwwb3rgqfqghzhblvic0iywcdbnwbj2m2zq0j6dv4x0hrx6";source="1hivca0n6hmy7g07wm7gjbbhaah09isa48aizjszk8yzfnwlnyc4";};
-hep-bibliography-64888={run="1gcyhqj6g5hpxd7db3alqy573qg8halx8kkha52s82adhdbimhd7";doc="00a36vgd3yld8ydql0rnjadfi636xav73cp4r5387d1qvqh6gd3l";source="01wjzgcj7mmjrrvwzmwvriygvlj7ysrx00d2ggnbhid7js6l4fgq";};
-hep-float-64904={run="1jjl09r4mb55k1v21qxlrwha0g4klcj88sv4583kdr09vckc1scr";doc="040d9a8jdivdv3yvc9qnb0lnv90h3xjpkrz1qq0p5g3qpy8wp6k7";source="1b5r7gfr3pg31rbsjilydqp8lalankxqdh95dyq40fmvijmxihfd";};
-hep-font-64900={run="1j4k2lrxlfxznbp3isb6rn7b8y1pnhv4n36lxxi414f95l3cpg7z";doc="1cpjq0ciwb3q44vngc61k4m1rkhvkwa55qvngc7s2ixg98i9xn1b";source="1fq1arnrackndb34771r6ypfzzph6ag5ams42kmrbyvpcd5mwclb";};
-hep-math-64905={run="001j39vri7w6fm35phj6spmi4gcy766msirvfb0006nay0p7lfg4";doc="1f4bp9wadw5pdzgmqjh479wxfy5rvxdiaqrddxb9q55afm3fic4d";source="1yl6qy4m1139fhy5xn5nlpfsc3lvxf5140wc1hmjm7c0ib1hjzq2";};
-hep-math-font-64901={run="08lqhml6qwy5p1yhv5rzzm32lgxnbhb5j695ghz1ixx82lvzbq34";doc="0wb1374xs31rixrqc75jbccnp18xdm24x1kxlx8xk5gfir2la8ph";source="10ciyxpikq531j1xm1900lnm6645p0dzixyflyfxb0id6nzmyygp";};
-hep-paper-64917={run="1bfz5j06jhycv3nsc1fhwq832kp94n9bsx0phpky6f88q4n4c70v";doc="1wcgcaix5qm8p3ikazm26y8x8rzhs0h35a68c8fclvaqa6dy1ji1";source="1xs8bz5k1zznadai7rhpikxfr47bsxc52ysirq3x9130fgifrwh7";};
-hep-reference-64853={run="1bfls4yyyv1niv68xq2hd9c75hzhynn1qrga9ja9wfwrwgxn868l";doc="1l5vg2jn4yf613kgzljzm7l3ycjnkd4ffql10y854n9d65x7adgn";source="0r5n3q0fiv0bqypwcwgzv3w4kx3gnm14769dv2fgjbnwpvka1sm0";};
-hep-text-64906={run="00icpir1j2zzhh994nzm3ag9ac4ld06xcbhm9wg65sgr51c193xx";doc="051qvwskvrj5lrhbyj1fqrmrw2z2ahd11xlks1nvmdgjjcic9x6i";source="1kpzwykcfqi2nzzvj3h6fjj5h9gmxidly1nhwd82frcn4cijdrzk";};
-hep-title-64907={run="1qx6z854wsav49b21hac56d9zkxsqcsxnw63wdgc4ny6rw1a0r44";doc="1xji93q49nh0d5cdp8c2zhq0mb7cf49ppphzaqz4gnfpccjr1a4g";source="05g4kv40m9pm9vy4lbc7n3gihglzqbjw5mrsvsiyz8rqj4hmsqdx";};
+hep-acronym-67632={run="1y2s0fmrm4z5laq55xyhs1h85pjk48y92g0rzl1hmrdhqk6l0ikg";doc="0mbhbyv9bbm0k856nbi6f46fn5a7z2s2ixq435gvka8r713ns5s8";source="1nqv1qvqrxz6fd5lxrfsmxmgkkz005hymxk8s3xdwhla982nx56c";};
+hep-bibliography-67632={run="1qqidgnyi30zgmcfp0jj361l5sga8ds1b9wqhxad3hfzysa8bacx";doc="1x1bgw7sqgnlqzqxx2zbvcxdpl304vbn8wx26rdjf389r0rw3yzy";source="14wng879zmwzmacx2w8m2v1l4ha169xaaalmzmwc0lbj5rxhy44v";};
+hep-float-67632={run="1fv5bga9nf341iij2s8llh6rwvxf85h8hnilhlk0jc5s105whj1i";doc="0y69ymqj9lxwr4v3lxsvz17lms045k2wdvc9dszvlrjg2q3ac81y";source="1xmfqk8q0q0xmwsc4hgmvvajij88vszqimcfw0ddf7bylxchxjjs";};
+hep-font-67632={run="0z92gscinj92pypc6hnvdlyd0n1hdkh1kbnlgliv6cv2swyddmv8";doc="18nn2rxq07xxv14ds95q5rwlqfskd6gl96gya02s4fi2lz6ys55b";source="1fzx346kva3lxk4hx9pkxnj7j7jmx287gylpddb2pdpwkkc8spci";};
+hep-graphic-67641={run="0dwnbl9xm12v3hdpki7nzbq53l29rhy762rxbxvq7hjbjdm5zni0";doc="13f1g76vqqm5c3ivdy41gix2bzmd6z73bqlj9cyij15jzwix9dan";source="0y9d01kwnnlgx0cbr4ifi97la7cz56l30z65spbq2ilm4xlx7yqp";};
+hep-math-67632={run="155by362r43igwgyyq6fqd4j0r3qs12fx3gfrlcdpqlxnjg9j20j";doc="0xhkrd51y4br7qsldynnfhvy38ilngb3l022hpddid9yg5s49k5s";source="1zdrlvia3yyibmbypz519bx764jy62f7sia9qk6pb0wvwxbqmc0c";};
+hep-math-font-67632={run="096y39y8fkqhd7p43kv8fairn6q85bapca1ir8v2mvspr9h2c752";doc="12inm8vwlwnwzr6hngjpixzf6b2ckcy5l4a9dgqgvrh543vwvzjr";source="0p3365139k77y4kmwg09x67n67vyfzzvy43s1jn8yda91xnn02sv";};
+hep-paper-67632={run="1zgyzl3pyb0ygfxgn6pb9wcg75iysxqbpr6awa57aiah0hmynmm9";doc="10fwbgz97cifhx1pr0li91h312ni0g130jg97d2vfpxrn2drq697";source="061dap6lcrbif2rlkk7206aha72h31af4ab6wif5xriz9bj11cjn";};
+hep-reference-67632={run="046vf4p8nn661w3ag3l0z55zv4nw42n2376b1ab2p6sb6sb7l86m";doc="0ahdg40hpb17lask2bswsc0qqh1fdalvjgc64scqb1ppfiq62sif";source="1z80z7sr8ipsc15rns83141m3rw01s0pmc3da8d2vl7ymf4v8wwn";};
+hep-text-67632={run="0kmjlzjq8qwhka31nyyvdgvycyb4nlxrdp1fnwf1kgarr656rpky";doc="1fsjsx0h1wws4z1vbhc4ynaznbf0lwxnw34i98n3cyqx805fg1dg";source="0wa27j0xyi76nagz2yh240yhghd72gq2b4078yvnfs1bkjf00127";};
+hep-title-67632={run="1mihii4ndrrk9wxvwh6kzg1dh55xfgcww26plsnn390yqqfan8fy";doc="0iranpsi295spbqpm8r9zv4gq3gn2231pjksp6qkmkwma9xl4af9";source="0ldf8yjqqxdkpyxxm51q40y5w2zhpwv19s0770nmazzchv7hs23y";};
 hepnames-35722={run="0almnyzzdf0q50r6qi7i6c4pp9aakyzdzj2jxkj1y0h5smi602ii";doc="144wikhsm6mm6f459r4paf0chas0crzvd2rylpynhsmkp9sk3fck";};
 hepparticles-35723={run="076w3wmdywai4pc02k8nk0qyc4vmvn9x6lvidmp4z6as0jir7ydh";doc="027pgn4i7n6b2zk8ikyqj4wlkkw1njq4qcfkmy0bgqz3al08zr0b";};
 hepthesis-46054={run="165n2pwn04vsln5xy6lkg61c1bp65zyqsd37fmmd3xs7yhv7xc2d";doc="1cql3rp42bb5c33sdfip69g9rd06107zg6wmsmzkv8c019xwg4y7";};
 hepunits-54758={run="11szf1jiralk8jdp45bzksgd76bxcf8xgdk707spbyqf6fzafrz9";doc="071xs04zgnw5ir33qzfn0wxxfsk75d9di0ssl394ksmrm14ny3vi";};
 here-16135={run="1l6xh4jl2nipnswdn78378vhr41ikj7qk07j7iaqkyigk5ndl0vx";doc="0i454862gik3jy1g3v21laf8qag2cadvapqz0mn68hl9ymly4b13";};
-hereapplies-65251={run="14mlgpjc7sah73i3wgfkykjn6v6wx4mmg15bdzkbxrx2f1z5lq51";doc="0p9dvzq2jlnwd73bvlwq3y41saxw76l78nwk1mgkpqmawxi44bxd";};
+hereapplies-68638={run="0h43apcwi4mdag2kpv9js9g8a6x83chskli7lxqzr8zqcwj97905";doc="08v044j2h3w5yyzh330q5bfsip55zx9s0ywpn2f0b8x3nd5vgk5w";};
+heria-69058={run="0kqvcx9b3bg661i3mqdjxf8m8wx5cz223ifdniwkclr6h7nwrx9x";doc="0rn3ng7c8jyg438yl8i4l2zl1cwf62izfyis889py9axz4kc4i66";source="0dwcnmnlh5xp6rlhhgc70p8p6saz59chh2k7w0hvnr2p7768hfdq";};
 heros-otf-64695={run="10q1g30vma4fnqyga8279hqy2aq5wq6fv8d8nw22i9mm8ms2wwga";doc="07k4k2rrkj4wx8i018jfccs4gf2pvx8grcmz88lmw52im9ga002q";};
 hershey-mp-64878={run="1mnqsqsc99by1r80b6y4rfb3kzb0r10jsfpfgy7yragr8rr9xzjj";doc="0xh4a41lfds3yrj1am613c4629kvgvd9dfdfzmss9li3j5pa6jwp";};
 heuristica-51362={run="1sxpr7f4s5a1q2r76r7rj43drsmljmd32wxwgwj1x97a5k7x3jxf";doc="1ws9r2hhcqdgcdplhgvwhhl7c834i4rkk0xrsf14c3gwxg0x1ip6";};
@@ -1729,17 +1761,18 @@ hexgame-15878={run="0s68961p0dsaila2a3symqswvgdhh4ah08aphqjfs7licn50yy4d";doc="1
 hf-tikz-34733={run="13232m6hybqv16f6v0bmgiyfqdfj407mn0h4m9wgh9pzwy3g1rmz";doc="070h5rdgfffjs8sb2gaximsqjzby2vcf9ffvpljkd3jzc8rznlbm";source="1df36m347jl9640jig0qrk445s0gxyk6rl74i19xxv567bxh9n69";};
 hfbright-29349={run="0qwwr02q170q29rlq7fw61888k1pm867vgj70ijckivibl0j2snp";doc="19zdznha8bfwqfyrhq18ad7ri8nd240hjs9kslswg70xfrync877";};
 hfoldsty-29349={run="0ar4swzfczqafanfzhwyw7kx765w743r1davbypc7lglcxwjw5y4";doc="0f9gcdi8wqq5g3camccbdzfyjppyqbvvv0z10grazq463lv83jq7";source="1prpbq8833njsmqanxzf25136g46i2yb4bqpvlps52294pjh0l0s";};
-hfutexam-66555={run="1n92sfdkdv5dwp03x4fqrrv2fff98mzcwp5mzd0z93ahjffml52j";doc="1v8qrh4p7ngxr826z69pnayy727qwfc5lqfgvwd4zxl2v1aj72by";};
+hfutexam-68829={run="0v74nqzv0v03rxkfk8iyvj93rnrjj3dmwj6kmbihnvc55qbn20xb";doc="1nq3c4r083hdhgi99n35p691b2djys238dylwva6zw9j80i6vvnz";};
 hfutthesis-64025={run="1wr9qa2zhx1py23q9r7wigiwy2ik4gicaqb30mc6m095flk5ms6i";doc="00fvnydr7bcyf9ij674whpgxizcn2fpwizqdnh0srxm03znw8cfi";};
 hhtensor-54080={run="13mx7mg5jqrlyxnx19n0rs2crpxx2gp6m7l41m6l2ig5vlgc0x1r";doc="0k5fg9ad5avnsg84xwlcbzffrzf6y8l8a2m0dqw3clg7zjmq4prp";source="1pay0c1z6avkb44h0iibfn6xskiglym0fckfqrdv0bablk3cghjn";};
 hideanswer-63852={run="18v4sis4yn8b1zwcvrjadj7qzjya52wljvxhajxsnl4pgslkjcqv";doc="1rr5sy7l21r4ffdcm7bmlcs1al5bn4gsy6p2ig92f921f21gar4y";};
 highlightlatex-58392={run="1pmhvjxp5038nnxd9bnk3s30wgzxvbzq6z8cfmvz0k8h1nzkc1a1";doc="0q4v0dvr50wd0qbk8xvn7bayyq00kj8b8wwyn6axia3mpjmr7a41";};
+highlightx-68756={run="0vrcvnr23qg3ma2wllqyy1xbl3j7ggril4ah27ilwgad1i6nwjci";doc="00a5y0xlcdrw1x2gkrhcr44dyrmc2gnd7gv34r3vig8pfbrgwdwr";};
 hindawi-latex-template-57757={doc="0q35drybrlcfcrhrd5691m66nd17b0m6hkcsqazpb1ck227zih61";};
 hindmadurai-57360={run="1z3590pi02n90hwsjmihxk957hcqgc3kry3cdwpwaci43hxcvp2m";doc="0zws4bzz6fkhxnpsjxj15wwnvbd6rhxqilabzzvm43lv0y21hvlx";};
 histogr-15878={run="11zbm3d05j6nrzwb3hpahli54lf06aly60arh4fi9k52qcbsylv3";doc="046gw7h51w5s8p3rh6kwwi22xxj8bspbh7anf2cdzg4w88dardl4";source="153lhmgh0n224xkg7dmcajj7bydnv21spihh371hj5a461d4h9k7";};
 historische-zeitschrift-42635={run="1zh8jhsmn4klaqn18zxbk3ajxvr99djavz4cww5wjm8lh5sv473g";doc="1gfymz7b2khfnn94qkd3dawb7ppqll9qg7nsx3qac8pqba539pv8";};
 hitec-15878={run="1rzv2baizqa6fj063knxhac39slaaxk5lbgpl6zwk60nbp1lxq3l";doc="1p6vcgy1l1avz05h6r7bqwr7hl3jrnyryl3vn1i0qad25jryf7qn";};
-hitex-65130={run="1xbnl9giab0yf4xgrf3sxidjv5c4d0zqqrcnnnd0r8rw5wr03fd5";doc="1x6vzzl52vf8cdyqxh68qafv60kahnp0fpzak4as5agaln3bymzy";};
+hitex-66924={run="0agmnskf8hjvkjbkj5m05q30v020m5vaj5nqwj8cpnxzjhq1hf7v";doc="1d1mnnq733c8ihhb490inch97r71vwrvsj8n61dqmalj89yn2n84";};
 hithesis-64005={run="0j0fsblj5k3jpxqgjxh7abynjqiz09hgvywrvqi0b4vv2fm8ccpa";doc="0rf5bffmz4158yqa05l4vi08nf1cl115y0ff9rkvdzjn249n3mgv";source="0mix1q6wf5723c54dsc7xx7kcwi0qz1kvmzs9yfx39295cvg9hzh";};
 hitreport-58357={run="01xxw91175ffcix6s7ji2600j966dbm6zl8fbnfwabb1rvn39nq5";doc="1wpscl97hpc3s1s34bskz088ph3x83qq7m6qgjj0xa2hbm2g77ci";source="1hxcw8n5aa4jfpd8r8f3442diww9zhnywd6kbbqjs7928bb51vk4";};
 hitszbeamer-54381={run="0nw7ch41rjp0wz0k508x2kkg4yqfpy6yfcl7n3rb88ps8fiqd786";doc="15kkzvgn1n09i7nnfd9mll1l6xqwrbpc252k54gi791nc30acaip";source="1ysr0z079l5k61v5r77hy2r150did3a1a29k1xppxrjr5ry3f4nk";};
@@ -1747,44 +1780,46 @@ hitszthesis-61073={run="0dr4ifga9v5w7kdx2iban28ajvw24b9ayzs9rqa3hkkir460hhhf";do
 hletter-30002={run="02v906vgbidc2s1mgz1k3666riwb27vsl7dp24rd8q2m167xjd29";doc="1x8q4jkrbw6ddkqqlaz6mxj4q105vjs8k8ifphvkvhawl9iikki3";};
 hlist-44983={run="0ac4n38nnimrs14k1s2yizbqvqky905qcv0kgs0aq043kkmpi0v4";doc="1fnqm6kxr79y6bpymafr2s3m8sx5mviys06hcs8sfn2gzagg88bl";};
 hmtrump-54512={run="13pq5h9pwnp8hynsc35ib8wzblh3y4gx2lmrrvd0big80wwsdhsm";doc="1bzgqgrjlpskqydqdj26lsn55pkznmbbiq0w4ybr9r0djdmqbn1a";};
-hobby-44474={run="02p8xxqxkq486dxz2fy3vghm9qnc13pznz84w3grn1b1cys1sbmv";doc="08q2nn1av4wcqnlacjjh6bgbx57qrc9vigb695x5zrrydcqdac0g";source="1pbzsba0z0i3zf9np60fjx0wvpvimslal8xq15pf5p9lrjq946r5";};
+hobby-68137={run="0ndhwgldn1na83jzdk1ab03asbbp090a2czyxipm5s82zmfa7bm7";doc="1yz23fn3zdixc5xxprl0jrly8pqm1n0dzrv4032802l4bysxj7sy";source="1nmgzxkxsq78q35zf2xpzwp3lw7s3i2gya18y4xkdq78673s11pg";};
 hobete-27036={run="0825ng1xcpdmjihiffzjrvcvx2fqdz9mryq2bwffas22kf0zlx46";doc="0il6kl26r8wmm6jzii7gmr61af84bl9dn4szlnw34dgsdg0an5hh";};
 hobsub-52810={run="11j0fxsxmyd93px9j5fdarz1231nczdkfpf1qf33kcdpyb44jrs3";doc="0hdidvz42acsgy021c1dzlvshcmw6fz3pkqrwpk66qk2nnh30dal";};
 hologo-61719={run="1jhzw2bxl0nvspr0blkglm6zbmrab13fs601h54gnrhcw10mxqwi";doc="1af7406hbdvb2fb735i6y7wi4bhnq7x7sijf63zl0klpf9pii8l3";source="04d83z1pw6scg4cd1616ix291zi9dz5nnvw9xc8hd4lfxf15nx1c";};
+homework-68773={run="0h590xk9dd1vc8a5bffwy10lfidz1gb20zrrahqv4c3w3fy6qp79";doc="0q218128c6f9fnbrjinxcxql0gvlgycnr687k0nfrid96mwqm9f6";};
 hook-pre-commit-pkg-41378={doc="0mikg4p9wxb28vgwh1acgdhwa2fqnc8rw3jg355d6s137m40awc6";};
 hopatch-65491={run="0r294p098z0qykrh9r4yxmc0w72mz1nmxqbv418pmbn15wgj031v";doc="0qxa6maigbzx7hc3nss3wmvcpyc9wvhq0pbzni7j0hqyzzsz3vv9";source="1kbk80432fpq30zgix8waxq87kjd2bpcv72idaly8yjbj4pa1l1x";};
 horoscop-56021={run="02kazmk5sa40x0a4zb30gk9lkky0ak825gczbr5z8wchwpy4i1ac";doc="0w9sgk2j1fzkcfzn76zpygrlyi9fnimp92mygsq2z6rpblzd1qyv";source="0c6zkcb2057y9x7mz4q3nwin8h8ax71yaam21m91gk6ad9k8l4ij";};
 hpsdiss-15878={run="1l7mbnhds4c6y1w5vylsx8j7b4syl2j785l3xzvk89nc5g6ck2qh";doc="1cxdd1340b1gkn915id7xcdac2zp79r1yi5g3wjwmj4kbn7z6sbp";source="1dar4y0ajqz93znww0fkf36li50b82hbxixi30hi8fm8y2hc3j2j";};
-href-ul-64880={run="1x39y3x1x12w4c1ikq7cy4d7m1gbkbswrn42wpqjv3ylvn1vg8a1";doc="1xc476rl7ym0j6xxfmdm10jw09i7c5zcq8gqcfrvp58sgi3sy62y";source="1mj85ci63gb0mzy9a58j0320nja6ikvkz3jzwilfzxaszz4h1kq0";};
-hrefhide-66196={run="1lbfx61xyvnm1r24h6vrp3pnmci4j5abxlaanhni19j8gvqkri3c";doc="1sf697hjryz1l82ag8h2kpxgmwa4fzmwb6ki1wsnl0y1qkl9m1k0";source="0p4vqr3cjnbdsrkv049jdd6yr54xz40lvgdyx6z2wf79k5fj4z1q";};
+href-ul-69359={run="1gf2kcqh60ilzkd2i1fc782db4nxqgrizz6h2p0i2lvc4qplj95i";doc="092gjbvcda2xacj0a3b8y6zlizkkyzqcbr6qfhdsqyds1sdrzpjj";source="06paqsz9is5ksj8lnny4d4g7z3wkfgv8lnyl3nzckj8ap0f80g34";};
+hrefhide-66189={run="1lbfx61xyvnm1r24h6vrp3pnmci4j5abxlaanhni19j8gvqkri3c";doc="1sf697hjryz1l82ag8h2kpxgmwa4fzmwb6ki1wsnl0y1qkl9m1k0";source="0p4vqr3cjnbdsrkv049jdd6yr54xz40lvgdyx6z2wf79k5fj4z1q";};
 hrlatex-18020={run="0klc0pb2b2dcixaqhgxinhy18rp0lwck7129zi5qnpygzfslpdws";doc="1dlxj4rv9gaxd6i4ns4zmhykhxwsacw6m3m2jmk2lkc3sw68hsyh";source="14cw35brx8mqv05zbgrvfmmjhxyryx7dmj8dk0fkimqbyvhvv9sj";};
-hu-berlin-bundle-57580={run="0fyzil2b9qsi0qrahdias38w2k7flai2p1r8afqimsg16vix5ndj";doc="0j6icx6ffy5lxy11myb1addsd0yz8y1n6fxzgyynqd6zd86w5pc9";source="17x425hywz0gkzpg04v3cghq47ps89ckg4ywim98z4hy3pqvlacx";};
-huawei-65264={run="1zw5z5nwc071cv9s419hw9fwiy0f9j7g3x6f4jrkya0dc1qwrz7q";doc="1mzkdgj8js508b713j1lr3i8m5lclwha5h6al106abin7j45470q";source="1py9k0pa2987xm7bk4i0slkycn51v35xw63w7vvlff6h50ljy0d5";};
+hu-berlin-bundle-67128={run="109hjfg6p3g54pz7n6i64ggqjmvjqzmjp6ipddji0mnhkhjfww6b";doc="1j2vjhk6rnsj86a59cd081vfcqnb93lz6szis05cs53k8pa7yh52";source="05x8cwvh5xkjjw069lpw7pbsnb5swvf9k2c6l2s1v0w1wrpwg7b9";};
+huawei-68336={run="1byjwc6yjfv8ynmbdjbljgm4592aaz0dscb4plwy5qaxiiffsjxl";doc="03hicqi8j2mzc6x1ay0blwjl1aj7n5j590nf0qc900zad7r8jlm9";source="1sfm0vbsrm7a8xa4jn3ncnmyn6wipc4pr34gk9x71hxyj0hq3qm8";};
 huaz-64723={run="1vjfx3c2hdv2jzqz09v3ki59dlmgnw0ff6m394nq6gx0qqk7xl6m";doc="05xsh7jvy9y5v9vl25br8ixxbyfd754p0hihflrymkv97f1b0nlf";};
+huffman-67071={run="17pgzpbhah5m0gljhkqymv5lxpl5bxxgif9m7rnad20x4nmyzz68";doc="1r6a1i3j8s4843gdvii740dl5rbilgahcrs2xw1zcqpq8z4xbfnp";};
 hulipsum-56848={run="1wfcsaff7rja3n0151ddzbfl9b3gkfkwq0vp35zcrd80xsqlw935";doc="0994kin6fvbk4j9rp53vjp6ci050zxsf6z3qi7zdfxifd269fhx5";source="1a5mkkl36dk60baffj3an2sa382p39j2sdrgadczj5r9pm9q0am2";};
 hustthesis-42547={run="0c5akc97v3fh3skxpgmffywca8kyswmaypkyxdzwrqb1k2z4xknp";doc="1llsyhbgdz9k6swry84q539yjsvcxj6hgirqcw4vbvsdxxxsbyn1";source="0nqs1ifkhhzspdwg5nbqgpd2309aw9r65cav51vxpn2abss1q6a1";};
 hvarabic-59423={run="1cagm9zxkhrck5svckh7i0c3zx48vy0h6f2nhishm40g9q9r5qay";doc="06g6wmxqgfj9zz2ph7gwgndgkm2kzpd4ci7pkwl5qm41ik96l7a3";};
-hvextern-65670={run="0s3lg0vy2d7jwikhzqd5va1b0jy9xpiyxnrvsgyqgnl8ji14bx4q";doc="18vnzswi04c41pxrp6zz5qs7qz7i00pcyx33ka1dqy011v78fa5j";};
-hvfloat-65671={run="05sgac27qnrp9g22xnmcn9j8d50f515b887ym1kv59syyd8hrwmi";doc="0dpjydbissndmh93lk956irjlyygmbw0lv4db12bydgi0njq9dzm";};
+hvextern-69064={run="0f7c63yr0fn1zf5a5kidxz07gyd1nphms1cdsmxkf490f7xh6xxd";doc="1ynd6m5zw9fgh4r3f49p2cp0d5409qmavyd5c9ykzagzbc39f0r2";};
+hvfloat-68586={run="16h12i3s0n4cjlh9pcfy1s4q03ln010dyma8myqpjqwaqb6wlcmk";doc="0cmlhq6pab92qg2bslk4q4hkb1sczyqxknplm687zp527fzklasj";};
 hvindex-46051={run="1wk4q29iyqrk83kafwhah5gvvj2ywpnqzvnza6cwrkb85fd1q2i8";doc="0vcdmn3xc4cm3rkdkzi0qvqakgkc3hrgy8nycr5c8vcb6xaiw0gr";};
-hvlogos-63261={run="07c3ia9z2xbgaks5czp7bha3v3614y5dvncv74m013vbgzi5sl4m";doc="0wpl5y84rwjclj889kcl4hk063sisyc0qzn9v45mvf99pnhwqsk9";};
+hvlogos-68568={run="1skfin78zfp4wlggm0b1bn1vjmf94nia0spg5kg4y781b85lyjw6";doc="02lwid7nznnll5mfpykxi2w6gwn5rmsg2ycm88p2hrbjihz34fbz";};
 hvpygmentex-62405={run="1rnra0v65wmz8yqwfa6zqqswx0m7j54z6wpzvbrp2d5gx8azsdv8";doc="16r1sqsaw8ij5jxf0ygm2kgdhxpzsq5g61jhj9rq0zhpjma7fhdx";};
-hvqrurl-59256={run="11qriiimmh8wmcjdjh98bi1sghpavl3lnbq13m4d6rgc46q0n3k4";doc="0zamvdxp0i25165k0i4v6172plfhzs4a5ydgcbz3662qliggsn51";};
+hvqrurl-68693={run="1lxpmj84cmfrxw456cm9dfcw1zxb5p915h3jp1x3h7w3a2dnnyfm";doc="0gfsjs5q90cip5z0dz4qz0lb2d3kvm5jja6drknh3lddslak1lqm";};
 hwemoji-65001={run="1vkflwxx8c0ckx7kz9mkh2qkpyxjjx9zmp940p9w93x4c09bs6l2";doc="0i18fcfbvyv4k578bn00w7ngk5lxp29n1j1i52vjwc4cp25lfgys";};
 hycolor-53584={run="1dfd149g2k8cq3lw95z6r4knyq1mgirdqnk9c4lmd7ip4rcs0vi5";doc="1pc12vbn1yak6l6c1fgpnj0s88fg94nagj4b95mvclad6b546g71";source="1f5jv91vsib5vk4byr0481a8j5pvbwmhfqz2qd14ck2vw8laz4ap";};
 hypdestopt-56253={run="1753c7vjx3smnhl1iylg4x0sdcqfg6gb0wdbwqmlass4qdn494w1";doc="07a2dpvvyj2r2691v8izjnqjksna1nm00za4sva1npcrhkc2qq1q";};
-hypdoc-65678={run="1cdvlsv1acnjsr6kwqg58r13nynx7bpa00m3dhv521k10cms4ph5";doc="1h0j48i7mfdb4cb5cd667h2v0xnf85vhk0pmrrj1xxflv4qlycs3";source="0ilkc5bhvai33f0n4yhbzg48n0l7f3x9icnw798lyqba4xlvy523";};
+hypdoc-68661={run="0xbsmzlj9hf5y349r4mvvnzc4k183fzr8lp1f07r1dc0nbff1qvq";doc="03bcsfydm4yzm1g9ijz1r2r0f5llc0i3pf318aa5rfy6j896nvvw";source="10yvzay1g3nk2kpv2l41vd2dqxqh5x03dd23xcpd4lk09rbddcpx";};
 hypdvips-53197={run="0ax6n7ki47jyzp5g8781c7rv54hwrl0fg7d1bwzbj9bmqi39df4v";doc="15vnypyl6g50d4mycz3s41h8ccpmknr0vh9bwacr6nxbzlyyykrk";};
 hyper-17357={run="12737gd2nmnalkgl4d2sh45r4d621zl6g2zcih98m7dw8qr38w2v";doc="0hzl3fzgmn6kyl6p4d98l9ycisfhb9v50a1m6n8q1k6jpvr10z9f";source="09m0kdcs4kqksqwxf29yq4l52kb2mj5pxkry010ibwqw64cs5p74";};
 hyperbar-48147={run="1bj0v54k85isn3p48vmiygcvd3n06r4mqcp75hf96mmp0wvmczg5";doc="0fmrz4hlzd8clxx150fk4zbkdgbnhg3b7ck10225b0n1lqgnlh0h";source="19x81f6bki5mnx1nblrl0ji663q0pzkacy5lbjsqyr7krdc33fyh";};
 hypernat-17358={run="09lnsw7ycwkk71fyjk8zwgzdjv8ff3k028q7hr27dqsiyg4hjg7a";doc="150ayv12ym9h68a09h1xakdfzccpix1pff9blkzjq6iz5imzzpr1";};
-hyperref-65758={run="0n80yzmhap07qjf1rva9jl1fr2qfx7qjkdn92l502nd9xw3yxf2b";doc="0w368frafzhbkq7w3vv448qqjyy8487vi5gi79dbsc744czjn0rm";source="0igpr3ipkvws7nyw88wga30rjvix4462fzqakhqbj91hz1ml0gb1";};
-hyperxmp-65979={run="1c8y6ngajicjiymlxal675dmq6sp650cz33kk18yvnmc5yl48b0m";doc="1if1jjbkyk8dq6y8ssq9pa2ccxm055bd3b6hbnbcigbzlx9x1zgh";source="09wyhpqrx95dabgadr9hk1j41w0a4nmqr07a7nxkjzkq35yk9fzx";};
+hyperref-68972={run="0jmgr56a42db36625s7yxv9n46qjmrhcs3s9p91l86xm6g32nzlq";doc="1s6ykvsm30z8nds9w3vnj7k7h2gb4fajkchkigaliyv5p0bx5q58";source="0gfdzfyclccssg4yc2mj1brwk7lm70jcsklcxzmxyarchsnrx7jl";};
+hyperxmp-68251={run="1bgizrwr5wpr8qprjwyf9z3f8jw0m1sq8qzw886j6lwxlfg6fp9k";doc="0srwvld1grn4smw2pnr0fp2082vvz3x2bj4lycvx036991mmnr6h";source="10ll53lhsqz20cp80mvwy1z9qna1sswappy2ifz71m6v304a1q9v";};
 hyph-utf8-61719={run="14jj24fr6v74vj8wi2a9k9zk9vnrvmy1ni4zn24dl5fdfw75n5ik";doc="11n1blnx9i7q2dlhyhf1dxs2vnldc9r8f3k6diix0i1np8hpz05q";source="1cff5ijmpxc752n6cmpfzn1a10ihrkz7n9l55gz2k2q0a00m2ssh";};
 hyphen-afrikaans-58609={run="1kn57mzrbk0qhz69b1ysdqjv8xirsb40yz61jx146kqc4p1y96lf";};
 hyphen-ancientgreek-58652={run="0lhy1zrg27748mrx8yz5qxpxl3nl460l5l6impiz3lbrgnld487n";};
 hyphen-armenian-58652={run="02x9p12zc78w1x7k2kz019as42d5kn6gxfl4s72rd6dyrqii7bc1";source="0z666y580w1kpxssdanz67ykq257lf11a1mnp1jrn08zijvfrw9c";};
-hyphen-base-66418={run="0d8kj53h1vhvv4pxks1n214m4l3z09qsqxa0929c766s2wldx64x";};
+hyphen-base-68321={run="1xganah7l607qg0hyridxx08sfjc8qakykbc0c97pad677mr4zw5";};
 hyphen-basque-58652={run="1dy9fgbh4i3d9ar8wazwjvhhwzyhbys68icz3zjvk7gk9nvbm9aj";source="1yhsbzf1g9dm70jfixsz51hsfvn26cwfkfxvhg7xv2piynr4v51l";};
 hyphen-belarusian-58652={run="1n5md9kf7iiwqm236bkdsl4fb4vd6a03b6q1arvfa4l4yh8jvr13";};
 hyphen-bulgarian-58685={run="19h61n6ip8ja8kn8p1fb79lfv15pfzdhhzih0hg15cp1891nzlql";};
@@ -1843,11 +1878,11 @@ hyphen-welsh-58652={run="1klj6ir4b918cx96jd772ps9fl2fljh8kwkakdwaqqi8szzr65d5";}
 hyphenat-15878={run="0ckfvjxdv4rb8156x2vmwl15mk9057i2lyg9xhqkmvqh1ani4lc4";doc="1lzpdz05dw5m8ljxf5f846m1x4nv5yrqbg3sixf7dgyhsmpfxnls";source="1ddwv26nfl4jwz8vxs4fwc9qw8gds1sg275g2bg9ci8dfflk16k7";};
 hyphenex-57387={run="08f915yqpx6qhc2dzbicbv9cijzpgcl4jpifydqcc0x68y51qrzi";source="0lqn354bskaa6g0bn9g1r3lbb1hj9si5n1ki38awayzp1yj8a3q0";};
 hyplain-15878={run="1kpaxdya6m7x4dmrxqzrs6k6agxsg8lcg5yqqdlips887lf609cl";doc="1q5dh42gpv4n9ps0yqyhcscjn47qz4zf35jlg56xgq2w5229k742";};
-ibarra-64567={run="1lfvjzknglqwapzvc15kgrjqszjm22f4nh7gssr7pj3p39j8ag0h";doc="1xy94i61xghgyjxgj0hm4flwifgfyrywbclf2rmcydh09a0ih7i9";};
-ibrackets-65383={run="18c4zyygzs0ghfhk41cw2bdd46ykhqrpf5wjp8lykyhccvg07gjp";doc="0dcsgc7y4zbp19qbivjjv6il8wfzg7cq23gl4wi0xffk7a46dwvm";source="1insjy2s7dzz95jcvfs6hj6hhqwkgxqby2p8npym810cr9d2y8gw";};
+ibarra-66892={run="1ichmsdkjs71f5yx5cphh08dk07gmr7mg7n0v2p4sg4fh3dbxjv9";doc="168k2sx4shkx8h4l5jp3i940sp2bd9f4if2pjk6ilmc832dbh25v";};
+ibrackets-67736={run="1cd32hk5wl2xzahk9xsrnmv8l5r05hqi9gz64d6k0lzard4p494c";doc="06ifqb5k7z08mzd8kkrkj3r37yfwgy5fw4zygd0an5470pk13zam";source="1axxyjfhkany1k2c6rzsyqilrq15809fd73r9hv0qmpbgca7m3m3";};
 ibycus-babel-15878={run="0az75laq5fxnvn12348c3985148isz4n7nv6hd0d8amanm80h779";doc="1256n1qa6zpq509rk02llcixw3qh3sgi9f649pv1hjk6xdy7nxfl";source="08x3knpkwifgi2zxv78bnfn10ix7l6rf5nhfqi6w5xck09l7fiaj";};
 ibygrk-15878={run="0krpzjn96r70z8rwsq52j0v1x7ppd766ngvf6xhny2kd7mshl9ka";doc="0prn5b6cjc9ljxdnd1ckfgzqwlc5vv4w435zvyz75r3f1dvbhh9m";};
-icite-54512={run="1aszs6kbmwx7k322a2yzk4l8d2gdb84aq7f9sk4bpiljgi9gpclr";doc="0bc1r733c6g8y8r2kam7in3p3cb9y8frph85s26kcgdxqw7j069i";source="0l3gx6sm1inyzyb6z2rb1zrhrnyg0i3xim0dn80360fkxxsz7739";};
+icite-67201={run="1aszs6kbmwx7k322a2yzk4l8d2gdb84aq7f9sk4bpiljgi9gpclr";doc="0bc1r733c6g8y8r2kam7in3p3cb9y8frph85s26kcgdxqw7j069i";source="0l3gx6sm1inyzyb6z2rb1zrhrnyg0i3xim0dn80360fkxxsz7739";};
 icsv-15878={run="0gv7wrghqivfm8yb3nkm6r8jnvx7klbhr1nbp27cjaliz70aapa4";doc="0dlsqkdmx4nhgs15hhn0nw6vk6h3q3hhhwdymy8nnxraph2mvyl4";source="1fh1znhlacpci7v23aj9zdczhc87sg3l0s1gsvrbgznpadgbzbim";};
 identkey-61719={run="1vs6sr25ybmrfkg5v3m021hlhw9x3gpynh89q12a5pl2ka094hn1";doc="0r33gzfwrj4j8a2i8kdddbhgljf3hz1b7cjfxgmv5gdqmmjywnx2";};
 idxcmds-54554={run="179mvb95a1cxkn7ncgs7xwhh04d36s9nb5jjxvaszcfkp9rnlkcg";doc="1ym6yi4cpw9flz4si6blg5bfj85sf0p3y6nipc886ixkwiyvsgm7";};
@@ -1857,7 +1892,7 @@ ieeepes-17359={run="0nipchw9hdlc7am3n052bszilwj192pfcnc9p5alqnffrd8c4rdj";doc="0
 ieeetran-59672={run="09j24j6kpgjx58yghh902bdpkns025v9av6ym2xwslmv1ya31pka";doc="0y3bw20f1sa7dacqwrwc43masap5sz23vna8bbkf4p74rdgl3bkn";};
 ieejtran-65641={run="07y254kl5wanv7d2jyzhwlf5z6n542217f5n7gdyrm4jryzhb0ly";doc="1l5cyqlsamkn3yjdia1zbv7lianq8jcjl83pkywimxnybw0kvdbl";};
 ietfbibs-41332={doc="18ypa96z1gclq4amka28sv26pm7lycak68zf4b3sf1bx4ldnzmxq";};
-iexec-64908={run="017rhxcbxfvflwnagz3hgbi8h4agzib8czc6w6j3333fn0sd4i7r";doc="0v74w4j2h64aaph7wl92bp377y2y6krliidjaibk3agfm2vz90yf";source="0nkacrias248yf1xy7nlnqzr80n250rhg5kzjc0w5gwii25dn8mh";};
+iexec-69230={run="0fy58y8g2l6p1xziajsf5g1pvs8nplj5ml5jwakl7czjvmxylsaa";doc="07r3jc1wsfkbl0himc4ihzshj3n3hlmyb3js1885n279n6hn63vq";source="1afja904bpr4a753khpd4vhafw5gyspmzl9rj79q31pnqjhnacqg";};
 ifallfalse-60027={run="0pn37mzlkpswyykciwgfkw981098gccqmp7wllffr39qxhcj6gdl";doc="1583p9f3lv7kkjygqv368ag70jq2b184j47v32aqpgnwlmyn55jr";source="11636chvmy2icfq6f7mvdq0fpcn36yl15g9ffpp0flqdq7c8nd14";};
 iffont-38823={run="1a4zx0mysk6i7awvcjv2y1yid1k160icrkqkvw34qsgs35qnqbbq";doc="1iqchl5nra5ldmv5ddpwjcm84whpsxym34vphj2zxvzl0hqwrc2n";source="1x187pafzgg7h2vvy5dfc44y37q45lkzqfkxh8b52pysxxl23014";};
 ifmslide-20727={run="1n4dmmslpsx9fv9wqiipcg04lasym2fbgsqkvvffqmx5rszgdpha";doc="0n7hsymjs1zfjc5gbn26z2wdl5qicc7pd251s0h4qnfigq3nhr08";};
@@ -1865,7 +1900,7 @@ ifmtarg-47544={run="0wxhdmd2h7rs3fck9yq1g48kyd33m7xzz3g7ixg046azai8f90m0";doc="0
 ifnextok-23379={run="0sf9dmz303pbxfi24z6fb1wxia89qaf4svgp4sbpi1yl3gkxwrmj";doc="11r5zrs467h3rv5j8c7b5iav19v9hbcxbspgfdbd061g871xxd5y";source="047pc422qhh9d80rjgmjgmn5xsapf9azvqrl0cjn28qw4m5ccs12";};
 ifoddpage-64967={run="14gi24l4m9zmyhckjq3j1svr9858rm2idr1wwjwmp561wp7vr6yz";doc="0gv1j0swzc4imahk9s96nga1l42qzc0xkznas0jzkbi27s2lik4x";source="0wz7iaxf26qz1v8sc0kbrz1wy0kzd4zbd0qiscdhmhmw2xr077zf";};
 ifplatform-45533={run="0abhpfw3w1mvpg52xaw3cngl55sszk5ji9a38yab8vhknh3d3jby";doc="1b41nzn666askfc1kkm1lwf05ggf2ml8gz3rrki4yw6ch52sl2sc";source="0g0qvbvv4j87rxps9yypair00z6il5hfjczkrmf4fkycw714sdqa";};
-ifptex-62982={run="09bkq9az6axiykrwqrdwq1w6rymdxfh01zizfmj0mw3rbn05lyi3";doc="1sls7c94p579r2y7v4ap2165f1fypyh2kf1rh2qlqz9hb0d9l2hv";};
+ifptex-66803={run="0yw0dphc2pdx2jrm5khzrnp6rg3fbcfc8z6ppwmyid8iqxszpdg3";doc="1mbdhxl2fgbwjbsk8jqk3709bv8k3whqagls1vqm5386lbcycvkv";};
 ifsym-24868={run="1bs3974l1jdv0b2wwa94861hnb05kb69bsyhvsgh6k9xgmgwfrla";doc="11k9jfqrfmshwpmni6bm0324zj7c939k6shvi2l69k4w0kx6phlb";};
 iftex-61910={run="0dzpfyc2ld4kbdwj457fzmf733792gz1z7n7hpbn6z7npnkg6i8s";doc="07wvwfxwv641lmk0p1gplv7rsvab87v9fgzamizqvihf2ys506q2";};
 ifthenx-25819={run="0bp087nfq5hb3a60ayprbz621nmk0acisizkw5i25n4kryi6vc63";doc="1hzz8s2xlz2pij81cfgjad8yaamv8l4iaripj7bbifkq7gy38afj";};
@@ -1888,8 +1923,9 @@ imtekda-17667={run="1hhxwaykslzmf70lvmrmpnn2kq3xa114lyvazgfg9sccc990gnlf";doc="0
 incgraph-60810={run="04kzj381v6lj9a2hjgkrsjvs4h5hw6mn80cfmcp6y8d753ibaail";doc="0vi27zvbw8pwh9krr8zwh90m1fsx6wqsqkch8c9ggjy03518b5zs";};
 includernw-47557={run="1w51v1v8x7wzibcy40ss7ldra83wbil8w1p978yvs5kzbky3vw2f";doc="1zl5fsgzb7nm1wi6ddc3cngqj3apmjwn1wkmsz785nss56vk9f7w";};
 inconsolata-54512={run="1mbf4m3ll3r4nhxnmd3ridq7kdqlcjcm3g2q2s6qxgn4b6j9ikvn";doc="1rh7kisvs33v91r19lnqgma705dc3gari0g153ws8bd1px3ivsdm";};
+inconsolata-nerd-font-69061={run="1778fg0vpaf7ccqs38x9k8d4fsnawqvqpchcjb5bqjzg8mk0mvs0";doc="0ydzsljbbajpi08dy4lyqld82sqpyv17vh1pp1nwp6hrn6cml3q7";source="1jndmhsr8y15b630wi7qshn1kjq9q2nfkvrn9gk0awqzjwl56m6d";};
 index-24099={run="0lx5jl7nckbn0brsijlq78mm0gjshf8m1dqjhgl0l59qi56x5f4x";doc="117h2g30zbw5g6x3xlmpgq0k4fqixh0l8ah7350q1sxvddxfcc24";source="06acw1yb5z4f887p44l9afk78kpnjv9djmbwj55bac23ml2k3ddr";};
-indextools-38931={run="155l4azvgwbk4h70x6bkbddq8k4jxhh485xa7jajz9vq11lkvhs0";doc="11n3knyzdamz9nz00i2rck6gffqrzwcycah0ds2a2wmcm7wl6yvk";source="08qifym1c39rk935hdsm7kqxdy3gaphq34bm3w6klr92cz6w0n1p";};
+indextools-68555={run="1f1r8k0psa7g9pk6kkgvyi9dnywsc4n34svfq2pj8b1gmp9918kr";doc="1xrlfkg43x4g66ip24spnq7vr915z0q7zdkqmi8g5zls8y81jg1c";source="056vrs54jnjnn3c2kvxfhhxf5ms8cpb004bhd8f9whb6c1hdjqpy";};
 infwarerr-53023={run="19nlrbfmqbkjrrx9x75s9nd6crg1lzimb2fr3hfblaivj6lx8p4r";doc="0p1s0v6p7ygkvz5f3vgarcrl85clfrj3ivzrka62djqyzn4bb3yb";source="1x2mkqyx7gz0bz31na6mcdyrlj11mxpjlzc6gb9pk51sdqjj0bbv";};
 initials-54080={run="13d5pvc2q6xc0i8nbjpifn5xyn7wzln7gng98nnpjxhk5y67bcz9";doc="0676gq5dx4pqs6c0z7i48gi53mlapplmms8s66qwpdq1aksswdcq";};
 inkpaper-54080={run="10989ja1vy9ca451gc0v0mrkqi25dwv4fdvw9y4k6z26g7902hap";doc="1dmvkq44kyxd5y4l2kc9wvgrhgk4kkfw0qfqzi2faf9xd6jssrhk";};
@@ -1897,16 +1933,16 @@ inline-images-61719={run="1nq64ymrmfiw19bcbb25gmll36xbv58ynzvv140089pw7xn5x7bm";
 inlinebib-22018={run="0v37ifnjpvsrcbrjd57yk3qqq195jqvr1cgvfz2fsrjrd2ima822";doc="0w4j64dxh11fysqpkldksv2qg816shz0dj16jqgbksxkjsig1i16";};
 inlinedef-15878={run="0k6190v8lv2l96qpmh3pkblhwn6camcq83w75rz09517bnysm4yz";doc="0gz9m7fwcdxs6q5a33v7n32x5jr4hbxsy4j2shwv39j1j2amr1vl";source="007648wrb4ar04g0851yw663cvlmdyifidp854y87yzh536hfwi1";};
 inlinelabel-63853={run="05qv0j8gvdqsdc0bg51n7mskbx88gv2yny1zffr409x8pvccnhlj";doc="09jnbnyc5sy1grvyjxnlrr3pg91ispqd18mfdk9zj8m6lwy4gh1l";};
-innerscript-57672={run="0ig7y528vl2r4dc4xqx16qbl28hy1vfhyk1b0f0ifnrg41hqs61v";doc="01y491bx14p1b4pylx4v6ilszj3v88j404fxg3wh2pfi1m5cn6sd";source="1wsj16c896rba9xjm9f0kfbj6hafkb8l0p41412vdzbhqv6zby6y";};
+innerscript-68776={run="074xa8nfa50sdz3hqvvlrmambjnfg9yai73xx9bmzc7mrxsdkxc3";doc="11nli4g0q319k4whryc4g9mzqjsqz43ryx796kvhb3kw8v7z0rcc";source="1zam1pw4jjx2kcps4rdvi0rdrwz37xb29wjcbm5ir4z0lx4qq4fa";};
 inputenx-52986={run="0jjf29lj8ha99r2x0vz85swkr2aq6v2jwis27irsi79syfq8bpbc";doc="1kkblvi4dhfxsij5lmbdvmnapskvd5yahha5im2nlllh8crypwv5";source="1681djxj8c43i93ip864bi1p1fpn2dngkvh18zs0234ls0gkwiy1";};
 inputnormalization-59850={run="017dxyy2lykvcsigpq5vfklb2gqg1aprk0xk21sxa8bdsn3hd2gg";doc="13yvyh5g4a1k6bcqwgmgspp8gkgzvgcx5f0wy5ajp577cxsk5ir5";source="0wz9hw5qs3i3iah63fqhkdcijhv30k828a2a19268am4803m1pxh";};
 inputtrc-28019={run="1qy90zwai5ciajsiph6sgmzmfi16qgvx389hvxsfi28wccpm5bh3";doc="0fcxac4jsvhnc85p9nwpp44ij0yq4q1lxlw42dzhg88fdkl57srg";source="0b6kl9a6ilv0i5xnlcfjgia40ynl28dbz1rvcvak3637fva07ghk";};
 inriafonts-54512={run="0kbf9rvrml10qk5pckz21ag217wimqhdxjfk35ll0a17hc9yzj68";doc="1hbhfhmnjya1cmj1wzhvbny7maw9m2dr7sv74g2ka6gnl1n4rx1x";};
 insbox-34299={run="0ylnp3l21zx4y1bwrr33v8d79vlgz5frna9dkg62gz1bhjbw7f7i";doc="07iw7py0p0jfq5np89dx9fdvia3yk5mi0py77xrgb8v4gx7k5g3k";};
-install-latex-guide-zh-cn-65434={doc="1mb6d92c7llz5cpkir4d1wf0l2yvmskl0kxgch9r5zjmb67qflin";};
+install-latex-guide-zh-cn-69264={doc="0hs9pqhbf5pkdk3a29xnicj7i8zxgf3vazf2mmm4z6fc4b0kfpjk";};
 installfont-31205={run="0lszqj128c3f4wbcrvzzlvj25jl5rm0n5qfj8rsn65ycxvymbf91";doc="15x8jzcd7bwvbjid0hr56h7dw39n2rg6wbfz4b02y7shp1pn7hgp";};
 intcalc-53168={run="0llrnayqwdqxi91yh7panbbiljina3bynv2hxhi6sssaw3pyd92l";doc="1vav25plm639410p59bi7bsihsyys9yaddz0bcawxn72zi9b96r4";source="059pqs3f821javya7brxvl9v2mifdyw1vg18hr1zgzhj7bmlxh14";};
-inter-58892={run="0f7i2c9hrlynmdmk5acaiyzqxhsf477124k92nlikpibpcssxy49";doc="1i5bxinfvjcgj2ggkg9him5dqsdn9c28f6cynp4g9fsgp5fdw600";};
+inter-68966={run="0f7s4mfj1phliv0dddkhsf4gpzi6xmyxhwv26bsvgvs8saf7qsha";doc="1i12ppl2fmjv4nxvslqqrn4ygrvmf9aa1lf5wlsrwn238343nkps";};
 interactiveworkbook-15878={run="0dibc16gdam4yxil37y2zsz4cnfiq2grm6qqj512nng4zqnwcdj0";doc="0nh4zm37xipvmv5h6yxy1ir2gkjy23h22j8dnz7m04w021sgx7i2";};
 interchar-36312={run="040zhi6rq7l8s04zcq2vfxricbvakkxnx0bzihbj1ss21pmyrv82";doc="18lpyq26zc9b2ypcb98k578wyg2fp1fllsfyrp67b4v9lnz1m7q6";};
 interfaces-21474={run="1d2sg377lxrwv0w0zdhxdjsnb8sbkzadpp29h4jcm7v6qpirs1wj";doc="00dmb0jq7vvf7xfppwmw1pps6453rv438qkpv5qhlamqlvx2b28h";source="0s5gfwv1izv3y3z3lmfbxdw06830lzy85f7vza4i8zcdwf775pl3";};
@@ -1917,12 +1953,14 @@ intro-scientific-15878={doc="0bzgi3zg0lm6zwjnac90ihaqwcvhindfdphjijv7mh11ii0qxlm
 inversepath-15878={run="08xivnvbyhaihb24w14b908927fr73kbk66x82nv9j332lpmfgmd";doc="097fyhn6dj9d8hq26xads2s7vz7hvixwl27psqrqqvhdlq3bvj7n";source="09d3dzckxrg9vdxh84nx3xzwj3rfarvf0bpda4qib179bgnqrf7d";};
 invoice-48359={run="0z2ixjxicphaya7244mi0gdnxnv3qawyxpa1kwv6s0r8li4604k0";doc="0ki54z1rlb9xwvsgd2bxv2sb135cc6zh44kpww0mx76vcky4az1r";};
 invoice-class-49749={run="05vbh1iclf9gj6nzradfvnqa7yp7r5c3ccahg3j7qrdkkb0xj8ig";doc="0myl8pvvfzd5jrlva1cxkps9g6jr0lpfw79wr3ghv2idz8ba85x0";};
-invoice2-46364={run="0646sb8da53x6aybbfijk35cibay4pnryq1xq2nzikdsf8i5x0x1";doc="057a73iw33rpsgpxcg13jlpcfmcmsq68jdz0fa3dhz964nf2xkpz";source="1z4lilb3h8gp64lgw7xbcnqfjf0lmzv760ggdjhmh5ibdc4ic58l";};
+invoice2-67327={run="0646sb8da53x6aybbfijk35cibay4pnryq1xq2nzikdsf8i5x0x1";doc="057a73iw33rpsgpxcg13jlpcfmcmsq68jdz0fa3dhz964nf2xkpz";source="1z4lilb3h8gp64lgw7xbcnqfjf0lmzv760ggdjhmh5ibdc4ic58l";};
 iodhbwm-57773={run="1d18fjqgingshxvsawkz9idybfz5fdzcd41qxk5hpqms7zcjymi1";doc="0iqw7insxma8pmj5v12zjgs72j60z99g7w5kfkb1h6biwlx33s5c";};
 ionumbers-33457={run="0pfs5064cya5i6h3bcypsm8fy1bas542kpy742gmbd4rdw8cbxgr";doc="1sks9qdrl5kivcgn9mgrv3f2gfifmp3icc4wjha4n1va1fqcqcma";source="1nimrr8b242h11nfxi9si1pg0wc6c0aaa0dl23hjjci89n8y89aq";};
 iopart-num-15878={run="1fx5sw6xzsamlrnm7nl965xrgmgffq85kkxr7ayka1w578p6f8jz";doc="06hrw0c3arhssabm3l6fhb1kh8bg4vp5hpafqlbyz064a60m1p9y";};
 ipaex-61719={run="12rd8b6kbnn2hvsimmfirfq3nj436h2ckg5129qxnfnqfqr9pkl6";doc="1g2z2ichh3wdjmn9jjd48jic1b2xw5sb8sksqv0hm043hk5makaw";};
 ipaex-type1-47700={run="094z08ygcklbk7nzklfmdz3lfmicrr40i0wzxmia93v1vpsjb4gh";doc="0946rj1bh2hi0779ss6d003wi4xcb79i9p432jkry07xkr3fpy7d";};
+ipsum-68861={run="02df1xdzvxv5g83bw493kh01vqbq1nf2ls5f1z6j53f116k8k154";doc="0dsq0h7hgm90lf5a2mmqgf9m002vng1cgfz6y21c85ld70ds0vpk";};
+iran-bibtex-69347={run="0b6janv0n9shyg7plykvb1dncxkfynrq6hzn6bgai2n1565c10dv";doc="0pwf352y5yz01y21w2vgz2z3j1k9jkssmk88gf4mcji8hkj8xrkn";};
 is-bst-52623={run="1acvwcg568iv9lskld9hjnyvqvlsmgnbg2akrd59kmh8mmbkydk9";doc="1hlprbjkamq1w3f1n2dzayy9v14kxj8f1nr6d3z99c7v7kg19m75";};
 iscram-45801={run="0h6pciksfrabg7wgxsgzciw22cp6gmz9cb3ifdsqb4n4qk9fga6m";doc="1p0p4w7pkyc9xp5af1afmsibbbrylcfrdcbn16adscw8y6wmds05";};
 iso-15878={run="04ifwh4vn074cnibyafzq59zjlnlmdfyq03mqwk44r1mgmizizdi";doc="1bnh34708psjpbhcddv87axjhxiyfjic0mamlpn3z58qcm0jb2pz";source="0gaxih730r70xgy84vbqz1fqbdr1w9fg9d1hszp0kqvqaypfmcyg";};
@@ -1933,45 +1971,50 @@ isomath-27654={run="1bzw4l364z6avihhihiprbaslnn49v1rrllf5cj0cg35r3jppz3c";doc="1
 isonums-17362={run="0nqzapahfvqg59zxrgjiyywkh8zb8mz9gdc2733r78rxnz81m1ba";doc="1axq0acxk6qhq42ayr0zjs3356ww3ryidvj2wii2c00isw0qip1w";};
 isopt-45509={run="03skmw4hmib197p3cfbhf3mbhq5hrjavwinwc22drqmca370v305";doc="0jxwzfysw4qsfd1694grnzs2jfqcbhm40w1xlgcsrq2ylgcjhr8q";};
 isorot-15878={run="19x89d5fvjpn66y8ma1h24dwapw2x6a4nxbw4ixp7xqkycyhy0wg";doc="0jrglpxxks1fbwgvmx0w3fjcnsfbf805jv95kawvgz1ix3mm71v3";source="0rfc2jdd4f5yds516lr9m28izg3lbf6wwvpsh9hrl466dakgdayz";};
+isosafety-68801={run="01csapgs6danbh1lr2k1pbz2sbmnj5fwllvb17jnddsjnv6xs4nw";doc="0li7197m1pqgv309fv6nii6sl4ppkcnxqnzgghrv1vkvb5ps4n41";source="05sc88xg477z50rcvg4pjh2p4jnfi4zkjkyv1w6phk7jjqh0hvpx";};
 isotope-23711={run="066b5jw98ynyc15jigxc1idp79i89hwrq19rdizzx90s6xfnxlgn";doc="00w5bxh4dkph9d4z0x8h6akcv1i2a3b5vfr4xbvq1n8k4i8ss7jb";source="0x8vrmprpgpgbxp3n886yajdd9mv27r9shkyz9mp1bd4zakdgc8f";};
+isphysicalmath-69343={run="0550hx1ybxh8196q51zc1966jpdbrb0zprrzg4ss8x9yxkan13j9";doc="039miqrgiymmsc561mnycda229l8r3g4cz629xkndv0rxz3civb5";source="00l19fbwvpv0xrzjh0chqp73k6cvgj2bidalr3c1n1g21zai6c22";};
 issuulinks-25742={run="07rpm9kcfj3dxsax8kp5r5mvrgg1c5yrpbiirsk44ybjjkhhjscy";doc="0qlz8y0sszp1jsnbbgaj9h2zcz1yqk827pwzccfi4wdj4rcpvvam";source="051b05k40zs5amjxnqav6ibdvj64wfhcf16a2hlkaf5kpmpkmh54";};
 istgame-62946={run="0ym2l6nf8prgwg6sqfjlr6mmhv53q3aksfznvgy7ypiggg18rq5m";doc="0ggkbzc4xnmx5h18af4h7zhzp1kcgfiqdl28qhrhhcm1d6vc1x2z";};
 itnumpar-15878={run="09cv6x74vs8m10fhk5ka6i1c6gzbs5qaqbk7i7mf2zsdg5w447r4";doc="14273y8zl42gkqm915271n15pc6srsjvfbnc3jhp5xcjcqnq3yfk";source="1wg714a0ipv9g81wgmjdrm4l4yar0z2nqxr5khiwihk9nrg26yc2";};
-iwhdp-37552={run="1snry29lnq4cm6ybwqi29lhyvn8g3zmqbsig0kwnywa92dl3mnl0";doc="110x1wm1ii7b5r23zng2dx4ly8vqqwr137gfl15a6v6hcr4zxvqg";};
 iwona-19611={run="1gf8kmpmp2cjz5sg0lx8j0kr67a5xshjkghpiy70jnaz7k8fbrgb";doc="1skk4p2pblh8h37rz2pjx18h8pgbagvr9w8h9d83299byvjggpi3";};
+iwonamath-68144={run="10nr9phqmjvbg9hg7fz11dap8ncnxx0pbpbz56pna5kj37znmh7a";doc="0550vjbv8b0z4v0zwgkiw68fg02aj8nznfsf0qpf3isqyl9d94cy";source="11f6m9969lcvp3cw2gbdv4gg4ggisb3c9p090v7nzzyadx4i2kcy";};
 jablantile-16364={run="07f298cfha42q2d12xihaqkga2iv1id2wa5ph8a61z6ckhchzz69";doc="1lp90rbrji8nld0wzry2nn0m2zb2nrqnqyy85p9sh9rmrplhj8f5";};
 jacow-63060={run="1gqjsdzfspnpps2p5qmxbgrkc8bxihmag0w2xrvm26afmh376djf";doc="0p6xpz5n961hyfzjf7crgciig5rl95wkylikmr6gb95bskdcybkg";};
-jadetex-63654={run="0gsmhql8p421dyyv1b021sv0hsnl2y4m8wj3vkcabhpiql76yfyf";doc="18ljn0p607hm9655v6z6xs2apkai20l2mlxwyb2asqa72s6x79yb";source="0vrqpjn64qlyszf7d2vwkbd1y2lj5lld6w9zz1jqz1f0arhq33lj";};
+jadetex-67493={run="0gsmhql8p421dyyv1b021sv0hsnl2y4m8wj3vkcabhpiql76yfyf";doc="18ljn0p607hm9655v6z6xs2apkai20l2mlxwyb2asqa72s6x79yb";source="0vrqpjn64qlyszf7d2vwkbd1y2lj5lld6w9zz1jqz1f0arhq33lj";};
 jamtimes-20408={run="1sn588j6v6gxfgk31r861s7cpfk2ir7ip75hm31rxi8s8hv8s7s7";doc="1n91f0b0bjwbkm1rq5w2vwy6wlaizlp7qb8pxm2wn08b5a825hvs";};
 japanese-mathformulas-64678={run="0x9k23g95j4wqf02ibj4zpfgxa3vlhgckax80lwm5flvr34bbgdv";doc="1iy8q3906bl7j2ciw8l3162pjw067qkbkdadj9v727x3lg29aay2";};
-japanese-otf-66102={run="19iyp9r0d7mm3j198h8znd0pq41vwxk2jk3lkw05j99hbbbkghw5";doc="0mmcg2i2wzzapw122drvfxi85irl2gb1j5g1p6ak7xavhxv6qb8d";source="15w89vxnkh0xl0jb9nzkcc020jfr5yvhl36830ipl11npc30j6p0";};
+japanese-otf-68492={run="1zwjissgwzkjrmh82xixax57wf1ycz239yl9wmcsnn3wcz04jg89";doc="1xzwpyzw3f13ij6xnhdhmxxafiwqmbjbyvv6c6cfbzdw5cpkvayy";source="1cs0daf9dyx5z397lak5qmanwvkbh49nflfaq6ikiqhm22hg3w1r";};
 jbact-52717={run="0z0x6jrxaayp3w441r1zwlqirvv23g0b8h9xgy6r3ppi71glzqvp";};
-jeuxcartes-66195={run="0c2abzl6fjm0nln9qvnms19a30s25lsksxif8yk2l59y0w062kzq";doc="05cxbmcfi9q1j00h290fl2x4f5rd9qh0vxv0xrq9avxh96a8m83c";};
+jeuxcartes-68266={run="1d7izhik03gs35xl4vran8adv5xr4vasc7nh55h9ya559v59xm2v";doc="02jvs63xi0qhcdnrm1m93cjj29i0cp07hw52m3143iadvargpmv6";};
 jfmutil-60987={run="0ygrcnm9d0dkrcz5cx86j80rdqwi1j9zs28b1bjnfb4vkd5r0fs0";doc="1vz9wav5ggsz9gkkyflywsnzjsw0p5paiw9wfx7x3ha2lgwv7agk";};
 jieeetran-65642={run="07b126wich0dkvc7f581566rpn17qbnzx02hfgbw1rjkqnq3svsd";doc="0r8fsqx2nqi1jw9r30h6w3dqafl8mwhih9vxpibgfnp2lfy01a5m";};
-jigsaw-66036={run="0h5g4vrbwpbxbw9dwscw2bqg7sanh0a30bbhw48ff9ic94bs2407";doc="0a36l6s7wp30h5xy64sj3gj716dc43mlbyy3px5wv7n973f5km51";};
+jigsaw-66009={run="0h5g4vrbwpbxbw9dwscw2bqg7sanh0a30bbhw48ff9ic94bs2407";doc="0a36l6s7wp30h5xy64sj3gj716dc43mlbyy3px5wv7n973f5km51";};
 jkmath-47109={run="00nh8cf002lysvn6qiyy5mcs2n2z5ppr0x5vp1akbz0wwhkhw9h8";doc="07n2xxfwk0krbiaphfkkfnc8mgc8iqmmmdiz0cj6s7688rlwij0h";};
 jknapltx-19440={run="1jw24izfsw3l8bn27qci3mblmhpkal9wcldhjll7h84fgjb9q396";doc="0m3blfj4ninra6zn501x17q6b2qzckzcavgihgqmk9q51yibd5aw";};
 jlabels-24858={run="03fpym9q84g1b0pns6sdsb4jx78aq7sclr5fkm05ckvkk4v3wmsj";doc="09qa8y6axg9pvma507b9w63dwd2jrxnmd64f5rfd7wpznamhbc0w";};
-jlreq-66374={run="12qfaxrbid3dbv1l1q74h9h8wv7hiimrxhyrn55h4c5kcvvfsyy6";doc="1d7s8crbrv3aw8rv06v1zrz4shcjm2hhrb2c34ax11ww9s56kclg";source="16mjb1rnr4vnc14na947aivcap1wr33bhb3w82y5nj5x4vfpycrg";};
-jlreq-deluxe-66119={run="1gmbc65qilf6im9xl26440kmvyn56ywc9r5sjbpfd4aknfpwsx55";doc="1nka16c0wyh7zqvqdn836ygxg642vzhsb3kpzwr2j3xkg4kmklsv";};
+jlreq-67400={run="0sjgbc6x16psaa50bfzwq1fr6vlmgjwai5qzmf8jcyask21j9jxs";doc="1y5yajzvsy9lvy79q0ma9j48qbmif0nx9wpmi2p2nysfzafrlsy8";source="16mjb1rnr4vnc14na947aivcap1wr33bhb3w82y5nj5x4vfpycrg";};
+jlreq-deluxe-66115={run="1gmbc65qilf6im9xl26440kmvyn56ywc9r5sjbpfd4aknfpwsx55";doc="1nka16c0wyh7zqvqdn836ygxg642vzhsb3kpzwr2j3xkg4kmklsv";};
 jmb-52718={run="1a5nz825jppq3pl1263w2sbm0a48kmmndppfpp7vi69n5j2248dy";};
 jmlr-61957={run="1vliagbbyy5nzfs8pkl71gy0zvjzgqibrh7c480aampwf5qi1gq8";doc="0mv7yxa1rn0qaz3qkzxh705ia27gqrjzpcqi5gpp340hvi8hm09g";source="15p4dsbn25gpsm7avswx8vw3ljfvwmwbp91qlzm4cabsb54kbnhs";};
 jmn-45751={run="0iq5ky3llx50smw80lpylv11jmqc51m5yrhlslz3sakmgdqgg1yi";};
 jmsdelim-62630={run="1087jag55rnf02r9s5v7brfqhqncibq1xr0xjq680lvb62f65ln1";doc="12k6m7i81d6sblgqijpizssnpkghq5snf6bq44lkxv1l39flzjrr";source="06kp4zsdzi2m26h9m99x6kqc0lfic96cidzb63mvmdfqcf2plba9";};
 jneurosci-17346={run="0ywl1nlysc5fk7v5cdmy5g5hylz4ll20nnqxsvymsxnayjm4civ7";doc="0a8almw0x4b7v3dsdi9cjv8vzg518fl90zyyxn24p614w3zr01sj";};
-jnuexam-56867={run="0550skzwdanpzxa22rv8mx6c1ihr930rfaq51yp82dijgd211sql";doc="0ghypsr9h50cxafhca7h8pdvzh8jn02gh889zw6avk5wx5vixav5";};
+jnuexam-69161={run="0w1jrrfbaa7wiffic6r2s6kr79zva1l9lkl5dyq9lmwsrkh1mn8j";doc="0x33wpwxriiirmsqk0a6jd8lm73vybcz1wn3lg29bywpa5h7hgl2";};
 jobname-suffix-64797={run="095881x3s3hyj6kzhymnzp8xcw89c94qrz5654kzs9mqc2iy28ss";doc="0ng9dzmx53p525c0kppl33i13xwdsamv0d6k1j8plfvjy86z3ay3";};
+joinbox-68003={run="0xbbbpw0yvm0hrll0yxcg46bd8gl77nb63lljk1pfak64b055clw";doc="1mr5h8ydiv0rh3a9s61ksmbvq9kd3wjaa4zx2hbg501dwmyx42li";};
 josefin-64569={run="1f93l4f6gvsnnzr0f3gpvl9y9i034rhxcdz8c282bn5jdzg93j7r";doc="04sva62hzfphzcmk4jhmp4yiahg7kzjcskviq31lhy83d3600aa2";};
 jourcl-65290={run="0skrm2rsr2y7q3mgzy8wcia8n0r2ixhdd222i0vc2figi9ynbd99";doc="0x6jxx8ckf9rmg6qidypqjy7kpi0l30npb96py62imyx4cfypr8x";};
+jourrr-68556={run="1gbbnv6x903hibi2gw17armhvdg9kg884wip6a64nbvsr6g4rgn4";doc="0385yzr1rrq5rv0rm6wz4ik7f9s8zkkfdhxq8yibnkil5k1psrfr";};
 jpneduenumerate-63893={run="0an70r9y0vklglyms7n2n40qz8jd2ig9m5i48xa81z615403bf90";doc="1kb6g5hbsdi4qxcqd7ginmkg4q1flqjbi1v2d8ss6vjsamd360q4";};
 jpnedumathsymbols-63864={run="1x9jdzl2hljcm8ia7w6b2rb8zbb41y7vyi88rvlvy3y6i5v3wkcr";doc="1i9f6llx61c9lcy1lidgmidn7k870pbl2m27yvdi40kcqs39zkbd";};
-jpsj-66119={run="0yv7lkv7sr7qhqv0rmyislf0a5rcd125kqwbnfj3696cwhm5aqf4";doc="1bmms10hgyl4gs91i2kpds2mn9x41ks8fjrislj2zl8y3vqdkc81";};
+jpsj-66115={run="0yv7lkv7sr7qhqv0rmyislf0a5rcd125kqwbnfj3696cwhm5aqf4";doc="1bmms10hgyl4gs91i2kpds2mn9x41ks8fjrislj2zl8y3vqdkc81";};
 js-misc-16211={run="1b26v330702mbd9bviq6sr7pg0338hddzc84z55fsqjd85fp7zcz";doc="0bs30a1m8cbv2824xhj6k3jiv6dmdp6jjzsinhfdwiizc2kzriwv";};
-jsclasses-66100={run="0g59rxplv04jkjzy4x62lldf62glsr9dwgr550cpw91ws2izcx16";doc="0r3a8z11g2ngk97bd79610l6wnjy4rdgqv2prn3xcmqhrzg3xf00";source="0x8laaf3rw2z1587qx6ghvcmga3gykvahrjma7x9m8mg6ljh3jpj";};
+jsclasses-66093={run="0g59rxplv04jkjzy4x62lldf62glsr9dwgr550cpw91ws2izcx16";doc="0r3a8z11g2ngk97bd79610l6wnjy4rdgqv2prn3xcmqhrzg3xf00";source="0x8laaf3rw2z1587qx6ghvcmga3gykvahrjma7x9m8mg6ljh3jpj";};
 jslectureplanner-57095={run="1kciz53cg9p1f710j5rw8pilfmbiz755a24dqxckam98jy5g4b8s";doc="0lcq9dygfjrs63yjwdkjkssxyfx6phmbydh6c8lcfpkg984pfg5c";};
 jumplines-37553={run="1d5w5nh0pkmhjjjq9x2n4r72ygjh2mrbdr23vsrh8cyvj3xym4w1";doc="1q0mzjyfj8vfp42f8m11g6fyx60mb33g5n4i7pw9r0dfx8y4jvpd";};
-junicode-61719={run="05prh0zpnp9llpd1hgpisdad2na8q4qpvsbxg3lcldvs3s61ndnr";doc="17z7wdsyrc3pxjqpl361ijfp9zj50g3j66q4sjddg21p1dmcqmi4";};
+junicode-69355={run="1vxnwzvcikwrvx9wpvrvwn4k7jh3ndamri0y5a4wjc8m74l30f7h";doc="14w0dcn43s9mdgpcz0vhwh2w56n90saljnvkg4wad7aq7pxvnbln";};
+junicodevf-69374={run="0cch871h5l90pfjfqw6x27dslwh60yg95y2g1hyi9q8y36cjrs73";doc="14xl1837jbawj2lj16ym7yi4z8mp8zvzdz6rbkcyd1rbsfkbvfm3";};
 jupynotex-56715={run="0dir4hbh5sviw5spsh80cms12rppv3wfqp8cyg5fxkj65mr3akni";doc="0xar0qf1czdpzbjn13x2hwrby18qh6s1909nv2q24rl3nrrpzpcc";};
 jura-15878={run="1mmdx5zjrsrvh90kkdgigddvb4ih3cflygv70al0jy0mpm6iwha5";doc="0zy4rafc7lhdb4gig1y53fsmk6faa2zh3s7b1la7z7qdw7s2gyai";source="036ac5chvg67hdj8g82nra7p5jickwq041jixbprf080i0mywvdp";};
 juraabbrev-15878={run="1rla1p46nb04flc2grrh1j0wvwk84cd2h1v767xzg2rdsinaxw68";doc="1708lfrryhlj2d3in4gvhfl8c6yvhhgi0lb3yz63h0n7flsb4a6m";source="0i5xhmx4j6ry4plcgdn8sc9vvbai9vzk9jr0mc54dhqaby2slyxa";};
@@ -1979,16 +2022,16 @@ jurabib-15878={run="18s5jsi5wp0cac968ysqajwrway4sv1scf6m1g2l86jkp8gl6jm8";doc="0
 juramisc-15878={run="00dkagnyz7xrkn1kdzb7612qsdc00h2mkkhfv2xnw1fhrcsy11gf";doc="02prrfg5vvy5d9y45hjx877438r8syymjj9q8465c3y3jn4ka9fc";};
 jurarsp-15878={run="0ylww99b12splqpkci2hps4zzi4myfy0agxzz4m3s8q74h4bqj32";doc="08bvr93ax4p00lmjkhy09bfm403lmzhq729gjjw6skla4wbvkmci";source="0fdxnj42qk4cywsxj8x40bfrkp0yqm7qh54jp3qf79gkj4hj6yp7";};
 jvlisting-24638={run="0ry7gnzgl2d6id7xgpbdhg8pj920105fd9qyx1a0riagp0pgyryb";doc="16z6amx6czmipal3sbqmdsc1v5x1p4nyy5wxalicy1dki1f4zpyn";source="13al33s01bw43sa2ffz5zlxgaqvhj8lrcz8y7x9xx43wvvxjmdz9";};
-jwjournal-65480={run="198vv0bm78aqzy2h0zw3zqbgwi33a1lsd8d7r36a7mnpwwwm684n";doc="04d97vjv5l7garhm04smwb7459mn61dr4ynspd2j9k5jdm3ml32d";};
+jwjournal-69162={run="12lsm5r6a7gqpi48ddf5p3ifisq38j5xb6jsbfpj1zbwhx7820y1";doc="0v9x97k1cw3xca3na737nbf6g37diqs10p084013ab5j83n8wgsg";};
 kalendarium-48744={run="11f8zkjfxbk5w4y49vy712ivfqx66m86jdddygfjskp47gxcxby2";doc="0rbac32h90cnp318a0chj1wfzfrvz2y140siqv5slld90f7d5546";source="0virfajl7xr8yiksxzmr68dm11m4240drg7xn72gxbs7jfh48wqy";};
 kanaparser-48052={run="1cwik91vx5bzq5jn8xjgr4ffz7n9d2qpx9v9xr298afmadg65h0x";doc="0y7j8qp9j33hw80dypc10nr28x2zn174sq1rbbbr8gc7vsvz5pyw";};
 kanbun-62026={run="046zvhsmw56a30s01pr50bv1m3s4q1fnv8hbays3v56xbj8rk7ka";doc="1qsz9krhmgav37k0386il90h91c0sxk1q2zvma272fnpbw5rbq75";};
-kantlipsum-51727={run="1k4ilpfxa6a5prm0rgbrjw5jsr55wyadj8aq1r4hl3q953n64mqz";doc="0pwwrjffc2525krx7p2d2y0zx3zp2yj4x0010ah8k88ix78h47xf";source="01p1gccy0a7nsyph5l1g370bsk2d9pxc45c87j88g8zjizllfkja";};
+kantlipsum-68983={run="0aa0nz2a357fggcd44wkh1fkc6cwx6kqhm7aj4jhb8p4j2ch5mhx";doc="04nlyjfmqrvm0q64hdrrx81jc0f17p3l25v22q6kgsm29nlgxi22";source="0akpmgj54cipxl3yg4afq0bdws3m3100i1hm9nc4xrzipw8cdvx5";};
 karnaugh-21338={run="0a8bbdd8khib2bfk4n6527d5ggx31gva1fkqbfw2jwc5194rk360";doc="0n9jqsfn3v78flgqc6ir3w0lymh1j2kl2pcjxq4wnhzgjy8blbq7";};
 karnaugh-map-61614={run="1q4xrsxjmzvfhivg2xycfpfsbcb51nq1cq255slpc06q4ycyxbnm";doc="1mnwkmkf4lx3cd11rzgqq2rlfc42728zi6xj67x38wqqpi9ak15x";source="0vphzrj1y5r6zmlqg4wxykqqww0ihgh6rw3z59c23f1v3j83jj4r";};
 karnaughmap-36989={run="01b0ndcd6vcg4y6v4zbi6cymfprv0s4vhh20hwlghh3wy5aknwvl";doc="1xk80qqqpxagvwp1vfh9vgrqihakp7bkd89alb3j9bqaikgdiqdf";source="11b5bjdccy4p3w65268c8im3c6bam9ql60mik8pifwfbn36bhpqd";};
 kastrup-15878={run="139ynj6jr5iniwg4ry57b61bpalchwmk2lvxpzi6rzhp42ifv1j1";doc="1bzjky4plcl24fg5rwbjizixwfn7nkbzb6wwydxd7s2053zba07a";source="1c4ijjifc4lwimzrhp7ym5804fz5afmccn4bnfayypmjqpc8x6jw";};
-kaytannollista-latexia-65461={doc="12ysr2501m77zjljpi30cxw45drn2hw552yk9asksvrbvavjphm0";};
+kaytannollista-latexia-69265={doc="0rhjjazj6rgm1paxv2qvspcab49s4swq6gg1gkx0vd0105r7mi3p";};
 kblocks-57617={run="001mn33pf532iwp3d8likhbc5a4nsgq72dirbilbdgaxqxndmx12";doc="14qyg0sqrr5b04j2ramw9zcfhbgmc9qfyy5im9la4id4b4zxrk25";};
 kdgdocs-24498={run="1p1rcb0lzcsmgyqz5750pl2r73fd18k76gry45zfsr7750kwx7x9";doc="0b2j3mw8z0f3d4pffqw2r9zxpmyvykd36sskkhfg7wa4q521nf3d";source="0sipsvbi9254zpg0bmcfin60szx9q0vnx07a9bdm9ma11qb1djpb";};
 kdpcover-65150={run="1a4w58r6krjg4aqpkg9r0pk7553nd6fqx22jqk37vd08scgh72ls";doc="0lvzbr63skkx12d6nwci537zvqcpp563qlf29id2mki80gqsx29w";source="0crbr3xrv0yfd64qjx72yz55py9h7by4rkl09l06sfwpn5ysdzgk";};
@@ -1996,7 +2039,7 @@ kerkis-56271={run="0hcaw35viqpsbpy82knib5lbf3ngvmmkga96d48v5s1zd6m7fwdk";doc="07
 kerntest-15878={run="15695a4q6ikdy6f9149rblfc4fx25hmpyczgr1z1q8x4s5ar7dr4";doc="1fmpngs3q7pwf4z284gg9b4cfw55afdsnzg6qpanlryk6czbch16";source="0gwz65xgxii7vriw5sf1zi4r97prf2c3dwawr3ghhgchmblimf8l";};
 ketcindy-58661={run="0v3sz01qwd2pnnqbf4v8g0xwhs3zqxc9qihfa13df43rw644m65v";doc="0ch1zjmg04pdz96dhyl2iy380hyjqcscxn0kafj94aldin20256w";};
 keycommand-18042={run="062i4fr9h2sc1zy3ybyqrq5hw4g3g54gx708rrznkl4zmpf93ppr";doc="0ls9fbm0815aar19hg40p91n1iyyfhn68ndhvapmwfsxhi6f2d9j";source="11blfbqdn1a00bfdv3nwd7501pd5qrkk7pqn2ffir1461xivz26f";};
-keyfloat-65446={run="0dz1bkp266zx3s7gwh0k80irkvh47d86i1cprg9v30b79hjq2xvb";doc="194wv0fpzc4yq69x60wsg19sj183v2wm010lhsql5n2s4239w554";source="0djqv41i0cjzgzb0vxlg3jx6scmfrx54g3hwanpik242p2nhfian";};
+keyfloat-69399={run="0qwdi5gvv3fmhp2j9mwgbfrbr8awf6bj3fpajhrznfk8fy5zflnp";doc="02cv38dpq0jh1iyp67ybd8kxq0aiy6sxkz2jg9jy7vs1ksjkx74q";source="1dq8w5vsnl7kcv6q62ik2d0vy5bkbxaqn679ifbffgxiqihbpb3g";};
 keyindex-50828={run="0fsszjcw1r3kws565pgc5j7chifbkf3dh1hnlclwwsjpxbji4n6c";doc="02n7lxz8pd49q9nf6pavhs01410zj9pbszqqbmk5c1ld077276x7";source="0k3img6kb6v853wzmhsrrhx7lrh275ssx57b83vk3yx9m831qwmb";};
 keyparse-60277={run="1jfxrymww3qh4bwgc74dn6v5xwsqc29y835k4rpwglkb14ncibxd";doc="1i1sklid586igkcbhx1mjljxpq2yl7sd8rqagygqgqsxjzg91jm7";source="180fkwkm01cspp48a8msmws9bq1pif3i80yzjxs7md9k01hqzniv";};
 keyreader-28195={run="17cfxcn374q0pgf7bbqwc0yrk6r15d79h39hzbvf7yrgj4r3880y";doc="0fp2hv3azi287gz129gqlsirw4dr1d5lqhzxliyzfy8dd9b2cqb7";};
@@ -2004,6 +2047,7 @@ keystroke-17992={run="0h0ci8pslybspsnpmv73qml22592vp5lr50qqppyhw8qkng22gsg";doc=
 keyval2e-23698={run="05ssgrl08d55in1wkam99bfdfkjhjrda6j96b6nmj61sp97yg3ig";doc="02ajr27zgfjk5hwmqm05gdapkg3d3rk1k9k3nqm4nbvwhx5sahg5";};
 keyvaltable-65416={run="0r8y69sbis65hdalck66n5hxww7nk5z2psb5qzx13dx6qhnqknz8";doc="1lhk840aj1sxj6pwybrpg9gd3lm9gs06q1dhz399my6cds1b9bk9";source="1k749a0smf6wdcsb6cswm0adq98ylg7cq9yir410wkxyxdfwj413";};
 kfupm-math-exam-63977={run="0r5zqf6qxzbgyhg13xrr8qwqb5cjrik670fclh089qsz2kihqb6n";doc="1lxab23k08wrnpgjc68lcn1r41c793cncxfd8mnqxml4lyylfcwc";source="0c4fpj08y2ixf9c8kqzyl0j4hrjg9mrim4fg6y4s7mb4kcw0138a";};
+khatalmaqala-68280={run="10hkgjbi16d8y7wz3l4z0xzi112f124vzwq1g4kri7xlarcha0d4";doc="1jfqkbmj6lvfg0a3dnznlldb9aslmj1g2cc2yni0ramz4kpf0jf0";};
 kinematikz-61392={run="12h8j42d7m2z1sms9gl3jj0qclvqnximmbj9fnmr270lk59xlc8y";doc="13qa25hh33jqaxscc464j1xd778x36f4d2wvb6b318iq21s2qhh9";};
 kix-21606={run="0w5qaq50wki5b3s3j7p11akx7mb8z1khchhy6093pzzrny0hd5c0";doc="1jblprmz9vfriqdmi9ihh3ihi7pc9wf9cp8qfli89iir2xy7lv3d";};
 kixfont-18488={run="02zwdm6zja38n41pvzay09f38cam28rr9ag6yy1m5kmw8421xp11";doc="1dvv4hdgkzmdn7waq4djsgdd8p1cwq3j0bddgxq2y94pq64maq0q";};
@@ -2012,23 +2056,24 @@ knitting-50782={run="10x5yxlrnj67gzd5kz7fvnz0nykvvi26sdm7i3n3d0si1vjzvczs";doc="
 knittingpattern-17205={run="1ydq16bmviqkbf9zkrlxsh33bfn8nmyzbbi1xwfd7nsg1bhdf6d1";doc="1x1bswn2sd1w19g1szc573zayk43zi3718a9yqfzqnxa0qxvxsqd";};
 knowledge-61991={run="0459xp20v02awl3h9ada0j9p0nasaz4fwv4whc6p4hwzzw86052j";doc="190gy5kj2fypvqa7b2s3p0j25drx6rd665yqq9s2gjsqzar18ql3";source="16xspjjic7vydd310ldxjjipzwl53dw726693q7kckbfv0vmpd7m";};
 knuth-errata-58682={doc="0rcyw7dqcwlnf9q421k017hrx5c0d9rra6rcr3n6wqmhxmdy5mn9";};
-knuth-hint-62971={doc="13ka3b636vwgwz29bl9mh40incldq6mk6cr6q3by01xj12za41kw";};
+knuth-hint-67373={doc="1fl3nyzsf9jifccw75grhdgyh5qhj4akkkyaa7mp6kpfznipqbmc";};
 knuth-lib-57963={run="0dl8z340n6m6xn7wari4hir0syxqi0kl2fhnf0bvnmkqhqwyzpca";};
 knuth-local-57963={run="02cf32f57fr6bngiv9xiw8bh4sq53p9br034ap74s80h3bgcmn1f";};
-knuth-pdf-62969={doc="14by59b7d1fi4jh5d0xvzb56g9pgd5zi1sdvfgi50vrpn28gfqfw";};
+knuth-pdf-67332={doc="0ig3ml88gqks5j9ly73qsx0kdii5m2i46f9d9bnh7nr9bjbpmd38";};
 koma-moderncvclassic-25025={run="0kgsbg4is158j1ssjwabicw38mh2cd4n1ggxinflb8i18xsmlgh0";doc="0f070dxww75g36il70gmrx9bn0f0d3mmh26fmzqb5zmf93hyhcsf";};
-koma-script-64685={run="00j2qba4i31dly9xk5z06a6hkps74saqr0cc09l66cq6n2n2jyhv";};
+koma-script-67573={run="1r2li64g7fk7qg4gb215z2q86by2f2ah9hjlqf0wcv8985qshnif";};
 koma-script-examples-63833={doc="1s95a3vgjxrn34cpcinkyr1yw2rj8s2973np71yxrwzi9dqdjpn1";};
 koma-script-sfs-26137={run="14qhq2h6pfjy878nkglbif7yjc12g6q32kl4xfc7kk3kf9syp0kf";doc="1cjraqcc13bcq451a36i5x2sbwj97zy4srrpaxybmlisvnza7vz9";};
 komacv-57721={run="06df0hx1rm87vgsb1g8b00ak77n6zs34c7mb76k22fis41qmm3a2";doc="07sxwgrrik3vadlp9a4lk3jmcqnvfzz5ir8l33zi7sjrapr7mxxa";source="0vd6ha60dz9ddmf3rkbbw5h602fkch3zifcjip9nyfs7wgnkg3r2";};
 komacv-rg-49064={run="0hcf3aw9r3hr01f9109rid9c1c36gmg9z0258zlqgq9l8qs0bryz";doc="1g985pnkhlhyf1285w9g1zx86vldyg45r4dyp1dq02pka5nf33fs";source="15v5y47jj0393vkikpv5mqdrrygs66b20gsmp03j6v6iih52w7fk";};
-kotex-oblivoir-66516={run="1np1zib9alvhsz8q3pk1zg8dfd7n8gvcjk55c2vb3lp9bi8581x6";doc="1pmilc2sav4ncddm4zq279708f72wjf55z51g6slqc9mmykmb4f1";};
+korigamik-68204={run="0napq587a4j4z0fw0ddhal0h02aymjj92cbxmqrrw19j8k8g0b2f";doc="1lxkyaqcan6jxbvi1zavbavlycp8amz6qmah258y87yl08m8c475";};
+kotex-oblivoir-66513={run="1np1zib9alvhsz8q3pk1zg8dfd7n8gvcjk55c2vb3lp9bi8581x6";doc="1pmilc2sav4ncddm4zq279708f72wjf55z51g6slqc9mmykmb4f1";};
 kotex-plain-63689={run="0nri3fagwj6mgkcx97750khsyqf94dx5kxkf5ny0jiswnv192v0j";doc="16376wpncchxpsl57g7rgzl96w9hl3qyn3i4qw901y00smr450hk";};
 kotex-utf-63690={run="0gpdg9c7dqcg0jfq05i5gkvycskipzyk4cmfrncd8mm7axv9qd23";doc="0x0y67bn28fy32awnjyq2zy4gqnafyvbjkhs7hipghxf87p6snrz";};
 kotex-utils-38727={run="021hgi7iw47b3c637mk0g4v52h5ygx5w1060bpcknjlbg0qb09aw";doc="0l7dby446xxjwk7vl1h3w4xsid4dqd8zdspj1f457jy4qwjaqf88";};
-kpathsea-65309={run="16i10vqfbn3l3nqlin8p4sdp4drd8116cdl7mj103nj8y2wj02n4";doc="0b24p36ls01b0jwnxm2g1l7al1451hac38qfh9zqxxvmvy6idasp";};
+kpathsea-69121={run="15dldviayvv84gmc25nwnpc99d7z28yarzzwcbrqm9w9w7v68v24";doc="0gfnyniykcdvyn20fbwfvkx7i7lwf7kdn6117rkcjsw9qrspfc3q";};
 kpfonts-65583={run="0i8c7agc9zs1vzjq8w0ghkwk81hrc2qghzn7hs1wq3vdbc3wk4r5";doc="1q8h8208z0k19nw7idq45hmzhvsrnf7g3708ch3kjwaj7r9y5lij";};
-kpfonts-otf-65560={run="0mcc1sbhxw2cvbcqd80acbrpgm30wfsmw4hdxllbqpdbhzajd5rp";doc="0js4hagh8pawg1dfc68q4hvd0bwjwh5n80cxyh3zmaj9mhan22bn";};
+kpfonts-otf-68970={run="1sq0p6d6q189liyf5kxmq4fgmwazj05mncsjkb1gz135c9acrq70";doc="1m9iz3llhzwaqfjp101ghpzy7yca497wnxjmf17n28rd6sy8kblp";};
 ksfh_nat-24825={run="1qzn0n19lslf2qg8fvm844xx5k7s8a275a77z2ynbb0vs1w4prpw";};
 ksp-thesis-39080={run="0hcsni8p92pm3l7mi56jj7mlcv5rvdpzwbv1jv5f1hb6xyx2pn4i";doc="01pbmmwwjzd5cq4xxmx3fknk8d4q3fda3680g344g5s6ra5i45nj";};
 ktv-texdata-27369={run="1md2iv0csmr5f2mcdlb3lacccwifd6iv7yp6123gra5xcp06k4y0";doc="14sk7x2va8ja65a65fpksj2nd16v6rc1f0828gmm8j81d13cci6y";source="1ws256l59plnhmw1rycfznwpndni5i47liqhazddwbg2hragfahh";};
@@ -2036,7 +2081,7 @@ ku-template-45935={run="1f45rknbzb3d3h72vznfzspg7vx9im59w5s5lwv4z0b4sk7n1d18";do
 kurdishlipsum-47518={run="0b5x438l4m396pmd427zcnl7jyy5ag5c004gyn0n1zzwbz5lcnfk";doc="0kw9664fm4gzv7cspj2psczyn7m09qz95agn4j953q39l0qyz6ls";};
 kurier-19612={run="0x9270xgsk28i5dxp29r0awf72l5p0786mbx7gb5d4vppkf0v9gx";doc="1d3lfxixhcrkk94m7ljfcb90yvdwjbp2axjnpr2bbh32xv9zzsnk";};
 kvdefinekeys-53193={run="12nn74skhwiszbdhawqds31caz6d59a5pjmwar0r8lmk4f1jr3xh";doc="0x3h28xqgsmngs51m666mvxb8jg9vwk0wyhijcw84v1szyd0m7d6";source="13cb0xvqhz5w1hv6hamr7rh1q1cp6abqfsdqzd0xw0my9mxvwk97";};
-kvmap-56361={run="0ph45hs3x468lhrhsdwikqrw681y9zd3q0b5r088lrb8wsc5pd40";doc="0n0ls3c5w662f95yam6q6rh9gv0vdyzf7rmnkd6dgz5gl1z99q1a";source="0y6mcxixqyqmkk1iq0ys2i174ki4ygss62fx435lwm56xff7mvp3";};
+kvmap-67201={run="0ph45hs3x468lhrhsdwikqrw681y9zd3q0b5r088lrb8wsc5pd40";doc="0n0ls3c5w662f95yam6q6rh9gv0vdyzf7rmnkd6dgz5gl1z99q1a";source="0y6mcxixqyqmkk1iq0ys2i174ki4ygss62fx435lwm56xff7mvp3";};
 kvoptions-63622={run="19sj7pds5km2y284vhsvdddvchr2zcnzkki0h48ymd258afcvswk";doc="0yym68kqbmhkw15rvmz6bc96h17yiabx3lip4lq2qjq254j7ql0w";source="0ngbpkryyjf8l2gq0p750z96id32hl8gir9cxz7hybzk2vnpyxln";};
 kvsetkeys-64632={run="1gnc2b1fiapk6fjmgh1rfrwd04k6s30qgdfn2ppyf6fw440sx4b8";doc="0qhncqjx310clasz23bx9mq8p3kdmpz5cicx84a3afh008qylgsj";source="0l0g3v7n7sqfhpbf3289k9nh98cfz4w5xn0hbkr4i056yqj8dcmw";};
 l2picfaq-19601={doc="0mk8d082gcqlxw2x7d2w85sm6i51928pijybzbsh9fy2rfcv99xz";};
@@ -2045,61 +2090,63 @@ l2tabu-english-15878={doc="0dqmdr3lffhiaq7pg5pn6ia46miwq4nh5vimhd0qbf936amiv1mm"
 l2tabu-french-31315={doc="0c6fbmgwv2adlxbhl1shvpa1w6xd36gmrwvkjgdp9xc3q999l4dj";};
 l2tabu-italian-25218={doc="0bgfmn5v80rdhs9wmjj6mki29p28ip1d29rmgbw4jh4z6gd4sf22";};
 l2tabu-spanish-15878={doc="1p83xflgv8x7nq9mylh468zn3hz5pv3zxprc63q51fwx0ylxfdbk";};
-l3backend-65573={run="1hn5hqs610qb4gh4rwkz6fzh6726xbcnqck4lcvgpv2pwk08263i";doc="0ay0mzhlj28iyakmha87cc0vavkhahp3a2iyj27jqnjxbyk5hrkq";source="1ljf7a9jwvga3r8cijv60lyfwcvvqh2f3d441q360c989rh6yad9";};
-l3build-66476={run="025shd20j7qkh53gfq9l45pxd6s8c6zrp1aqnm1h0fx2d7xxkkdx";doc="0072imbggffnbmfmms9kdygdkwa15krkl6s1pbli7zbn3h7b0vkg";source="1fvjhg5qwabn7iv6416f3lcrlv9z1mfng7vksaiskw3yfihr13qn";};
-l3experimental-65621={run="1fza6d4k54dp0y71avcx3m1gvhprxxljckibamis4ma9pqrahylx";doc="11lrxpghqf4776s2274zbrwp84pdyscxqvg01bmm7rch39afw9p2";source="1xbi11fs5kr1k0zci1pb66dbzlpr4zlrz48zry3qsrg7yzsvlyd6";};
-l3kernel-66099={run="0jrd1wllbvlmphk4sjwjva6z1vw3yri1y0kdbssg50gvlfb0r3bf";doc="1jzm26rm0lfy6vkm7hm802asf2q1wq0078c64a9659snxbjhspxm";source="0aamj860lcdf8kgb1swl74dh7dpdqcz704imp2ps8sba9gjigm87";};
-l3packages-65722={run="1prlmijxz75r8fzgw0ngdrrnaahl7w1hrwdra49x7rga3wj1yp0s";doc="1pwsi2zpfcbpcpdcqqbb7kd5w4pra9klnhzk2nbd7p37ibcijp5a";source="0i7z2vjggzvfkrzi542q2ilj2zlm9m4s346nbwqy1rdbhw0x1ji0";};
+l3backend-69310={run="1cwjy3r6dq601z20kd7fdsyig980v50z857hdq46b2znh0x7fqra";doc="13rszdyiffb0jy3j38c14xijpssv0pp2xd5il1g2nm92rcihfyx7";source="0wix411kis8z2lybbr7kwr8i8azxiaik78850vvsiwljy3512inw";};
+l3build-69360={run="1s3p19ncp5m7yrn5f2qalb36bqpapdc3fyajgs8185z26j5dip7v";doc="05m9182znq4dymj10qpxfncf095vsdmfcqkym17i0dgan8dakmqx";source="1x9227kx0b9x7i7rymxwlccwip7hy8rhwy1xjvn9wqad7sy08n5v";};
+l3experimental-69310={run="0fy07favznm88ww65mjswrlvbcqw594kf31lki1wbvjw7n8pp0wc";doc="1yw6l043j6xjki5wfqjls0400ybjdjxhkq3bzvgvy3x1rpysl5qh";source="0ng9df42sf2zjiy11b25mzm7ww3sw7vllr7rx385y452lb80cz1i";};
+l3kernel-69310={run="1d3wnk8zlhpkqkcgrfx0wqcq8nwa8cibpwm9i1fchmmn6ap8i2rs";doc="0d07aknkq2pxvgqpf4lbfa8qrc2mdsf5jdsq792j4mjl2gc1dbis";source="0vv8sjg15ykcjc70mcrqnz7mmnbj5lskssvh1f5if0j9xdc5b1ka";};
+l3packages-68507={run="0x158f74pmqp8dj8z68pl6sr55caijig35sqgi98s25p4v8npka7";doc="0ylfm3s3b1zqpv933n05rc9pp2zs4ra19xwashrqr31h9sc7655r";source="1cdzi56yp7fr6hdp4v4nwlbgxk1q5kafb0wxans7m8ihsv6g9v2r";};
 labbook-15878={run="1qh16jjmpyqdfndfs91nmbfhwxif5ygk35zlsailngpgnp1r2x7s";doc="0za4mp2zq9s1z90sgqcvf6zac7w0wqbf8y5w1qrwmlv6r6kg3s1s";source="0w7nff8c2ffrn2ywz1dahd8n4cb959b6zf3ka0s913nv04ifdkgi";};
 labels-15878={run="1d1lxzif4f3qxkall0qzsn4lh55ljr45zba0xwzyvfbwighp1vvm";doc="0fl3as2lwdga814fdlg2pwyw600cvrii9hd0f4vscfzq7lmw01k9";source="0y6mkg18jqsbqj14h52317d1vvzvn3mv89q2gl4i3i89ka3dfajh";};
 labels4easylist-51124={run="10pfzxw0d856ki2krsdpidnfsk27mg4k0vj3jx7pry5cfirx6m0m";doc="145n7vy3d0vk3cq3qd44l3a6hjmazipm7wmr4aa2knxvs4nyvw2l";};
-labelschanged-46040={run="1z8gjaqqydwf0mkbnlbzd7q49fdj8c83pmcwfhi27w5lnyb897a6";doc="1rv3vx641hzfkckkjkf31xdb8zx3sarcdpnsjzhnafzy0y1vg8c0";source="0n0fdxj14kb1bk8zj3mnhnj6q5nf6h4swb7lwgn8jv0l5z5qmp25";};
+labelschanged-69400={run="1fhmxc85w0jgcvbf3kbn6hpkyfl70q6kx7d06laxzafizga069pr";doc="1fbkiz4rqch0sa7xpw0i3x9dwm7vpvfyax9jvp520xh66sn46wh5";source="0ppwzy9p9zh0hyzh9kgvjav9h7pk3c7dp44aqj87vaq33bwkss38";};
 labyrinth-33454={run="1r5za0nrvcpmx7bbnvvxf4l78pv4ciq83ck9k9qh32pawv5jn8sp";doc="14405x5dcm2k4m74jjhwd3f1836d79qz3w9m1zfj3gnvzx2kij9w";};
-lacheck-54070={doc="16xahphvhdl2xmvicr73lcswm5rdmxqaf5xj4gsdv2wjfqjrp4fk";};
+lacheck-66186={doc="1hhx65yd800bl3y2sq20lix60wd2b2j3k7n9s788mlsn8b0p7yq3";};
 ladder-44394={run="0a2sxy3rvc4w4a625wa000g4mjm00d8fpjff49v08kw1ddadv6fh";doc="16dg0nz4k3491mj7ccvw32r71vyjz2hdgdh4xgs7p3n9jg4jdp95";};
 lambda-45756={run="1ajx5g5cd5s9jqr4b196689k7zmlxmhhksly88qps31s7lzaprvn";};
 lambda-lists-31402={run="17srvv0v10mczvvmxr6sfhlr8zks589c86v472g4rnmf4bl4my88";doc="1yq4kn0nfcgy0qh33qakv7c12lcdzbj4x9xj357yn8c0ijqkx789";};
 lambdax-60278={run="0sr5im1ag7lzz0rkvnj0biik9z5ww6yr03ykn2w64dg1nf42chf4";doc="07fgh2x639fj8wb21rygj7yc0c7bcq4sm1bhdrsxzgrwjxn9rbw0";source="0sarj3dsqm18zx176p6hq3xv717fzdpvipvdlv8l5y5pcvasz73x";};
 langcode-27764={run="1hj7zyjxh64fax5rv32558sp2ss986fxx0fqd5xb9c07s189cs3d";doc="06bygnvh4sdv7mp17c94wx9v1lj4zgih1db6mknc3wiifi5jcx8m";source="1bi25gqx2yi8f6g8hpnqp9f52qnfpyafi0r16scap8w0sbnwrib1";};
-langnames-65502={run="0w28i9l571485kgjwlshbj2bz7jysfwj0xbz86i0z6rwbsz0nzaa";doc="133klc1j8jj9ljz8bmnqs3amh711lq8r2v1agyb6dxi4rgfz939r";source="1zpmpnxiawc381z2aql1ffshgascvcnh5s8ldn982lvdv9vaxacc";};
+langnames-69101={run="1rg0hn4addzi72qgrx303skf35c03lslrlf8ry790kwr27i7lna4";doc="0ix2gk1gzvsk1w0r1whr2imdml3a6f9avw6yfkf54n5hnaxm7i6n";source="002rmwkvm5b4ay1cbxc51ibcb27sg571l2r5czfilbavh0000piz";};
 langsci-65793={run="1hf6q716lasc30d72z60ry74xz0gwabp34vm9vk33kaf705b3hxh";doc="15cp4ab6rr0zxggrdray06yj8szpdjr6fc613j27wpbjmqjzbb67";};
-langsci-avm-66030={run="0xnprm5fcy8knxhldl54c5vhir4klgsmmy8l9306hmlykmphwifx";doc="1s5bjwhdz1fwnkvnrx7f4789cy0f2l0qkixdd6va6zjvylihzl4l";source="0ifsjndp9lf06anqcl79kp7rhx9gc56yw5xsr4lb4fshzzg6jwnr";};
+langsci-avm-66016={run="0xnprm5fcy8knxhldl54c5vhir4klgsmmy8l9306hmlykmphwifx";doc="1s5bjwhdz1fwnkvnrx7f4789cy0f2l0qkixdd6va6zjvylihzl4l";source="0ifsjndp9lf06anqcl79kp7rhx9gc56yw5xsr4lb4fshzzg6jwnr";};
 lapdf-23806={run="1lfmn6axzbfk03j6f12yqa0vy3gzvw1ylpq7k2ki4prb3zwhx9sx";doc="0h9wy3amir9wdqv0b8678mfmcd172zll9p5v7sf1l0w3zlbw5msy";};
 lastpackage-34481={run="0wjpjd3b48fj4mqqdx38sqalbaa9ab3c6rywyjqhvrd1pxfap2g0";doc="1123lz0ki4kww93952wqrhrw9l2cnk4wrrwyi0dxc5w1yfn2gg87";source="176fk84mbb6w5ql94381kz05lh8q8im7ri6rfjff7f4ymfjnh2jk";};
-lastpage-66465={run="1jd0cwj1f26sc0va0n1r3ggwanlq0iqsf6ydhkjmyr38q393sdcc";doc="0myhgq7si08p8fwnaz50frl9g54q4px7j2zwvhiknmnh7hnq7gc7";source="0rgdnf2avbfjznvsm1mqfpk3h8f60ls3pyg0c8gmyzi1lpsgismh";};
-latex-65161={run="18p2ghafh61nsy9ps8yjw2p0n3lcngh8s2v3m6bazk7j2rpw8pq7";doc="0zflygc37pf4mf52ad4f277jjhf1s2g74dg2ap657f7xl73mws2g";source="0hakzbki0jjn1ny7mzi9ihv6qxk5r7a522wlcj4rhf9fa8ggmx6k";};
-latex-amsmath-dev-64899={run="18qf4bafw2s8ms50b3lmi1n0hfjrjgx4gbdf38prxa3f9qmpy4bf";doc="0n9m0aqnmg1wmgfzfhx47rkhyc074cvdc8zfq6ir0s0ndqg777c1";source="1dsszhq75jhf8d4n1mrnba9ij7mbn288ckvspjrz5k1k8wr4nvcq";};
-latex-base-dev-66516={run="1690apj3v12m5sl1djsipkjqdp05746mql8hkvq9mr0rps31xnfn";doc="0l9z59drjxd5gvwgzdhdvj83sh6j6cjascwr3gf5706likhir8xm";source="06i9yam9axg8h6wfp4zfpihi8kg4wxb9fnlmh9ih77h01mawwvbz";};
-latex-bin-62387={doc="1qd8yxckyr1p1ivx0yyv95m0l3f9s5bnsy4rrnhlk6z8dk7gaqpa";};
-latex-bin-dev-62387={doc="0mszvc9n25686rc0chirqmyi1mcfrv6il70an8w3ld8sb7bx229h";};
+lastpage-68557={run="0xds81j9i3dqbsfw9084f0cqmscyapcndd6ssk0njgj2isjxb43s";doc="1agaxsy82b8nq5kn6kpjc4g59xzvalxpim6rqzl8j13ywvxv6vhr";source="17zk90069n9nc2j4jhqwzkm9kfhvp7wlq7akvwsny9fk9vrgp62v";};
+latex-68720={run="0jx9qmvwjy0i4p5a6lnyzfcj43x79ba5gj67qz83fmxyp5x8lbi5";doc="1p86iz7wcncsibsr5dyaa7lqh173r1891pj9ygs7p0d403spd24n";source="17w073p61jl2i4w02gvs3pyvi7dcmzzng8gwc1d5kaqcnf7y7gi5";};
+latex-amsmath-dev-68730={run="173gm8vkn4dgwys9h7yq3zv0pcazxvgrj40ax8msmmffq2r8cgzc";doc="1ch147w7ak3al37ivkq46capg7zpc5c10inwkcmqxhk1bqa0cgis";source="1ffzh866cdx9r8b5z8vyiccxvramahskv7an1jpi6flg0b9vv4i9";};
+latex-base-dev-68730={run="19jfbx01c8wq15anrdcyz4d6bvbl0cchimjy7lirvqmj78wvkqc6";doc="0ddyhlspmiz039f8cn1qf35yi36dg6g55rbf7r6czkppykf3hhia";source="1wk7fk4ip97qnn88l34w1xwrqc4y4lahf0v1w0qxlskgmjmsjlv0";};
+latex-bin-66186={doc="1mhdc8a37b9j64kc8c8171s8p7ixklbf1ijr4vfh7af2k416qf8d";};
+latex-bin-dev-66186={doc="0dwjlwaf8pxfjgby6dwr8ijnhm85rvprapm8m85avq7mnfmrp4kr";};
 latex-brochure-40612={doc="0xba20sy8q10ac9hxwnz9axh853hrj06vp7mfn12ajax31miznmy";};
-latex-course-25505={doc="0z6q95l2vvxrspc04ki9wnrzhz76nynb5ai6969pgw6ihl68384f";};
+latex-context-ppchtex-66687={run="0ai8w4r3lagkgval65hxnb8fqg8lq0j5kailyb4dzv2fjs9x0sl1";doc="1wbgxydjicb10mnzjixnz1hhqy4xzxv6k92wf7fb2w486mh89k5s";};
+latex-course-68681={doc="00s521wrc5gqqs5jvd1ljl04nighy8q79r0ama783ic27a3k0qhi";};
 latex-doc-ptr-57311={doc="0mamlfnxzi4lwh5cpss8zcfr64jdnf6vnj9fp48accrqdj2rpfs2";};
-latex-firstaid-dev-65181={run="1h0p6icrg68q0mnb9p1v8bxiazwn9rjq5bc8hqq6az6asxiybxkg";doc="0ym2s5f05di8ryvndkwx6qz6blbg5jsjxvmjjxi18dz9hv5991c8";source="1gf6a08ikv7m4w2m2kb370y9pzwd4b9xf26mwn01zczpx7497f00";};
+latex-firstaid-dev-68730={run="04rcdqd7461r54qhn3v13517clirbim4lnghli6yn31zzyf83zif";doc="0m4jx0qiscxszpk3c6i4r7pcr9x8xdq30q1ixj4b3l2jn88mvhlx";source="0m7xdjy67arisi0l2wgjvc9i89g2xdp5gk5cjqshb8hwxjw21mg0";};
 latex-fonts-28888={run="0dh4kgy4mfarlsrgqw4dm5zgfhcfg9qzh8s2wjk6w2g0jfc8rf3v";doc="0243qbrs2w7qh17nh8m4ivj35gfgxsnqxza281cvhh7g2fv47f5l";};
 latex-for-undergraduates-64647={doc="0krj27gmra2mpriircasv32snk80z9ap85h76n0bgy4wjqyblyp0";};
 latex-git-log-54010={run="015f1jrfnwr7i7jn6g0cfl3zs73xw30h14fr2pyjhn9pr8kd3mgi";doc="0pj2834ax404f0nnlfbg75f2h80wvnz23s8nr9vxr24vr745xpf6";};
 latex-graphics-companion-29235={doc="01zs32gck1sl9zlbhghyjmjwxyvw0jha5vl2hd10knyrb3z4dhxc";};
-latex-graphics-dev-64899={run="1jnrdrc8ppy39n6nhyxfavb1zxqcwpyhm6gsypzbj51w6p0ya04m";doc="16j3b7s501gx18fz0b3s49vrmgfwyxdp9k50h95ssw15fw82ybwh";source="1zr8b5y0ff313nlk7z7yimxpxckg9x2i1kik08y3l9mig2w8vcx2";};
-latex-lab-64892={run="0qys47v2d72f226mwav8y6shss7lgyqwbv465hh2jr9ljginqlhl";doc="05dc25hs03048z5zvykrznvfipwzp0vs54z7gb1k9d3k4psjf5qi";source="07aya8zkkfgasqgg6jbid66bjpq79px5nlayn50r3an6jw1bkzsn";};
-latex-lab-dev-66516={run="1hh3hap84g3b2air1xqk2ijsr5mzqdxqwfgz16didc2b2h8xfkfz";doc="1jcq35wy8i9jy8lgasxkdlq13mg9lqd0gn843lvxa3wv4m6mzhs1";source="1an3nk6kj610gwx80y88mvwwlx547xj0xa5r84cac7cp3w013m8a";};
+latex-graphics-dev-68730={run="0gh26h6lpv14ywhpcbw9zkzn00jqrxbfwsq61cpvb6in1f7q95bh";doc="1cyx9l48nc60qdaqny9mi076cch9cc4f3qpnp9hxr1rm7x712vp2";source="0ng5gd50c7rg7pv09ry62j8plpn4vigc0rjy0xg4bzfyqhpax86d";};
+latex-lab-68720={run="0hdzvh1affhjy4r80x53gbhi1pqsjikvyxrr985pl1slzfrlhjbg";doc="1aqwxllsrwijw6rc98cplkxw46s61dj8gz2q07djjmx137irvkcm";source="0zj723bpg0ik95sjm97kmvjp3ygsf29lshpzgljyqnzz6z8ppb0l";};
+latex-lab-dev-68730={run="1maxr2mi0j3ccq4gc2zhpp5acjnv90pa1srxd8yyann1q02cqng6";doc="1k0vld6c5zb8llriv57aj29w4vzzflk86hd6547ybjcnyz77i53x";source="0bdpdjrzghj1mx78jna3p1f4b9rzb7j6cxy0gpx1a4pslxzihshq";};
 latex-make-60874={run="1dgw31znxh3ch6xyg7y0ngnkjmpny7fbq9nhapd3am4l6qb0598j";doc="0jmms953klgv8z4k5d8rj2l5barwxx02pmzk6ihpp1wdggfjxrfy";source="0a5jqry52x11iga5ky89b57l1ww0hbl8z0mkkv6nvvc7bg5gg6w4";};
 latex-mr-55475={doc="1zd948d9y63js7980g2bvxpf67hshh2xa3n2ihbzwhpw6l9cbh1w";};
 latex-notes-zh-cn-15878={doc="0w9rmd7b5fnfvix653n9vbnn1k8yxlaaak79ipvm8p53dx75xfxd";};
 latex-papersize-53131={run="0axx2lkwi1xq3qdaazhb6i7dssx8q2k0nm5vf4b9p5ldl1ky0dzl";doc="1dkra9b0wv8s4f7xn36j1x1p849ziwlm4chf5mrayp0wmx8qshc0";};
 latex-refsheet-45076={doc="169h1syday30qiw032k14fhxikdwszggvqz8b9ga4i9wwxf1vh4m";};
-latex-tools-dev-64899={run="1kn5kzvqfbv3r7b7w77vyx9j02ks697hngbwj60rzkv6glvg2qv1";doc="0qd2jnxw7a193qqryzwycwcywr7h7l9fwklqbbs3sngkw82nr1xv";source="13imfahxw2i6si0xhbdrghyic3gydxiqjr0r0k32q29fixw5nmgv";};
+latex-tools-dev-68730={run="0zhy09mxg97693fk4d3mbghy2w82gdnmvpavkajdyzzmlxlmxcna";doc="0gz1vizf2xax6pmgxk4bpxqg4p7xlpnyhxv0a57l6mjcn606d2f6";source="042f25jnpms3crn2q5fd7l0gay48yc5hy71frvgqkdfr25wdd2pw";};
 latex-uni8-49729={run="1sv4n2v0m3lck7x320cwbay23k7r9fh4wm1vxg9m4grphc72n2b0";doc="1y3p08mni1ng6dyp0g98in7hh3mbzqq42249idy90vjhc177rjc1";};
 latex-veryshortguide-55228={doc="17i8zmr7mjfrx911psdy9cbn05c5inn4ixqmnjkpr9sbgsninyc4";};
-latex-via-exemplos-63374={doc="1w0rqhgdkflxypfmxyz61aknmjil9yikc641v2dmc5l55gl2r3nw";};
+latex-via-exemplos-68627={doc="11nhv72ixwr0g19nr7dir5awgdapxq0l295hm1pcggr62wqh67l1";};
 latex-web-companion-29349={doc="0v018lwf88z3qmzyqpyvfql7dbwk5a9r0wj3jfjc9cp2ksl8zf8f";};
 latex2e-help-texinfo-65552={doc="0rk69n89hl67qfbi5mmb4msaibychsk9a83dx593170ayiir6s6g";};
 latex2e-help-texinfo-fr-64228={doc="13s0zjwk3m95kbx4qrz2xwp8kifzc2zmasp1ks9l2acf1nqfac9p";};
 latex2e-help-texinfo-spanish-65614={doc="1v3wa99phdmsiajbq0ad4h939cpwjwzpq88h6s0796h5fr34hrvq";};
 latex2man-64477={run="04m5ccx6z8nvp6z8dm7dqhqyf8h9snmaz4cvd8i8fcwfba9znf9c";doc="11nl9ldkw3f90iz8r23jbgxaa6yq5p61f1db344nfhy0wimx15si";};
 latex2nemeth-65269={run="16fd74x6bz4zfj2zlvbfw160684ff1fn1rkpx4y34avkp0ivs9bq";doc="0f50qxbwcas2gpazlq0ja4m6lcbwkkwlp19qb2v1lflfgian39c6";};
+latex2pydata-68919={run="1zn2qmivr0daldqnrrkh8jcb0gncg3cnikkrrn609jp5sb1xd1hp";doc="04rp8hycz6r4gl1llvxq5z4ks9iy4j47wxg6lkx39hdphh2q561v";source="19nsm6sn099cm2g8bvks0d14fdqfvs43cmphgl48rhzgaxb6l408";};
 latex4musicians-49759={doc="1zvy2pa93kyn056d5n0irzdq5xmzki6d35zxacxfy19r0g9rwq6f";};
-latex4wp-35999={doc="0xyk6w8jmmcsccbd9q4ikblfq6nacjjyrmf58ddjxkb6v0lzndph";};
+latex4wp-68096={doc="1a569y6vss3glz1il4hg2f6718mj24spp4ahdj6v7k6y7ppa1zii";};
 latex4wp-it-36000={doc="14r86fwhb9zafmyv05pqfi9962dpxj7wq94acm43gv8m2rsjp52k";};
 latexbangla-55475={run="0jh2x97r6j8lrl5kq5m4bvk139229fwf7r8g8xq7n0qywnfdr9zh";doc="0hgcqd8vqq67zzdn7mq4bps3q56ad3nmaq71mkcyricgrkn5xxmb";};
 latexbug-63596={run="1rv43swr1nqnf50y7rxbqw2w6402rlksddk5prcl7618vs4yiag0";doc="1sdmjzl81f0hkmj9k0m57fiw7529ym3430k5sd1q6sbz096wwdph";source="0a9012p4c07g15ysgf2hfqzcll6h5riajylxga326p65k2zv062m";};
@@ -2108,17 +2155,17 @@ latexcheat-de-35702={doc="1cpqcvqkkyb2bf87yjvc2migxawnacx5mva8dapma7hmwx0z7rhm";
 latexcheat-esmx-36866={doc="1d6nk9p9adlhgr28mnnizrxzzqlk20zw2clcddqlaa8pn73dqhcm";};
 latexcheat-ptbr-15878={doc="0m636j9gdfpm4j1b679z5qw5ygbm6jp8xl9dzy6v5zzy695fcgaf";};
 latexcolors-49888={run="1wpa7vw8vphdghdv1ap5ilcgzj5n6vyvn4a6lfvswg2d47s5y1a9";doc="10bbk7bs1km97hpzqzzfasxzp0w202y8w7pwyd465ygr4y19wj6l";source="1j7vfvyj2k4q9drmkmh3mfk1g3vs7czn1x16fx9jyinbdxnwblnh";};
-latexconfig-53525={run="10ynmd8b9b9l1wl1mva23yz4zir53p6r5z31s39wmxz19pj12qvx";};
+latexconfig-68923={run="1lq89ycfsv3bl6kb1lq4s4808pvld02qmjmyz3npaqkwjrxhyy3g";};
 latexcourse-rug-39026={doc="027siznmshk60flxgra7dgzvwbmgwvckwb6r257b91x3rm77anv5";};
-latexdemo-55265={run="1dw7p679126br9gl9pmjcc0f596314h67dzbbq0ypsd2yb0y7x1a";doc="0bnh076zi1mqmvf2x24wp45zndyak6y04z3x56ah0p6z96bg29lr";source="0ddchhzfg9s15i9qvxban35ncavcn8bj0dyhkvr3m8g9farv5mh6";};
+latexdemo-67201={run="1w95ji58dylfa3j2crcxswx058brjx31x6n76wlj9hjv5dkarqj8";doc="1jsszarq2lydblwkwgachhhr2fqmabw870w3msgrllyardp7ycrw";source="0vi6b642k5qjnwa3igll67w0h4r3p7bxxjlajfiqwp06pxzjl7in";};
 latexdiff-64980={run="1z0x59j9g2cmbfwfmc87fpbjy4hp827ic7y9z8q3j7kfh2s3j8dp";doc="1r461j9m6rs38kim7isvi66z176fv1nnd1q8p1zza9b1j1qhfr97";};
 latexfileinfo-pkgs-26760={run="0lf6pkxjqdilg10i3fwmlb1nvvag6c5bm6pbcd50jjbd1q39iih0";doc="0qh84r86pszscg96gri652y6p5xx245lfzvx50qvzw77xn4iv6ra";source="1x1sj91sd5bb0jihvp0qg52q8ybak4flvijj5hdq84jf0bw3gryi";};
 latexfileversion-29349={run="1yy159skv29hp0qxpghmq5zmay9yi0ndkgz7lbllj1ymkgxs5138";doc="0k20c2kw0xarjlkdhjyx9h9kvjm2f3rd98lz097xj8xvk0fs0zp6";};
 latexgit-54811={run="1kg9cbz6h70496snqqa2h9xfknm70qf96xyvnc829k5v34jskmi1";doc="09rlc9nprx6590snfg7gakycsam37wmmscybvm48vdn271vvla9l";source="1pn4gv4prwsnnr377xg2x3kf3kmi8pxgczbi9knzavkd53653akx";};
-latexindent-65940={run="11i9xdar1xwm6fp2bf1c1b6yw3r0vj4x83pa5sjhrgmrgbz4f2wp";doc="0i2i8pm5pr4h2qvm73yh58wqm73qkj346fs87zcjmg47phq8ca93";};
-latexmk-65485={run="08ar9mndvhgwp2b868a3wc534zwk5jc68gjyznzhww2c46mmwvp9";doc="1f60wcxfz5bnhg9700kmbrziyvw5zfwl6nw4jqfxzcvsghxh228h";};
+latexindent-69269={run="07qrhrcq570907kcafq3v7xbif0c3gfrnybg2ibi9rsic4bmf5qh";doc="0psnkncasbascn0jr5p7li8nbwd3sv6a3pp7dmh99092h66wa9pw";};
+latexmk-69373={run="1pdm5p4vvchn535cckwa1kk739ihpllmg1a30b5f74zf6np1nwp7";doc="0wl7d19zsf465d7pb0i88hx71jh9ln1bk6y90z4p0d7y744jlfpn";};
 latexmp-55643={run="03rgabck8mcxnbg1avl638nhxdk6smvyd21v2ns61hx3jn09cpv5";doc="1ad9axqv8h2s2xckrdxcnl8kazpgijrgpxmbwsb3h0hqb3liznsg";};
-latexpand-66229={run="1ky0z3k9lwd2815kn3hxpdhcc92spp4wadc5s4hhjdjah50b6zpk";doc="1za2s4qvkfpqg2s86z33y85lw4vbi5ll52if58dndbg47mf26939";};
+latexpand-66226={run="1ky0z3k9lwd2815kn3hxpdhcc92spp4wadc5s4hhjdjah50b6zpk";doc="1za2s4qvkfpqg2s86z33y85lw4vbi5ll52if58dndbg47mf26939";};
 latino-sine-flexione-53485={run="1k8inj0rl7mhsjyzc39w789jlafqshh9sgy99szxqbs0jilgfb78";doc="1wccb0ksrrysqjp68l3wnf6l4n3s64ny3cvxiqgalrf0mlfipxmi";};
 lato-54512={run="1w70dgmvcwm9jff2ap7s78qgqs9ip4a6dx5wz8iyd7hn2mwf1v80";doc="1fj4n1y16x7hxyd63myk902iwm6lr074rkdybv03qwxl12p9ykxs";};
 layaureo-19087={run="0ggab1drpspvqwkijlj2d7k1iwacd8bihgrj9qvrmsvdlswdjsd1";doc="0vxa87pk0fq67zlnbzbpnig221isp1fy6qp30fphk7igvnjw8v70";source="0mdibdz7hawfmc6bzvk3qfhs22pnmsnvkvvag31p3b4n25zshmry";};
@@ -2132,7 +2179,7 @@ lcyw-15878={run="1c0js52z8mgfbr3lgbvnhc646ggvsvgr7w1mq83lyx0pvnlqm3aq";doc="02h2
 leading-15878={run="1ky6c51dcx0gsj8f6zrwb242d940cjml0gb258ags5xi5iaq40yk";doc="1l31zpglr1bz0gif3w7kqzhd37zpcgjig2ly84fcyk805sf7nncd";source="0f4ayaz2m0y87ifddl4622rpf858zmh13xafp53nh96b8pyvcip0";};
 leadsheets-61504={run="07w8h1wv322dy0b69d13b9k59m6iid53rlpn20ps5ss2j20b62z3";doc="17xbqxhmxc39gxd5ckvzsmhiabsi2afh2r2jv91im8inqfqi8j1l";};
 leaflet-56878={run="04fvi31wwpsnkpsni3r6f9m3vr8b6h71f2znb79aban9g1qvnyh6";doc="0f82hm37i7w547jpmxkl8a2k4f92bw29vdzq4ywwllk2hdcq3sv6";source="0igkl1rjl14raf3xv631c7sn0mc1smyc44mldwgzgnzxxkv5kzzf";};
-lebhart-65475={run="0pxv47x55z5f7xwjxf1vgch6f9ffj9h23diqwrxj70i86ma39b8y";doc="15w1pka1a4njw4n4wq7j8mssgs2rg6h6virgkycgbnwh44f9hzd2";};
+lebhart-68376={run="1234ihmzv9fmhrb5s0c1ria1pzd2qz5vi96v2p4faabksxp2qi2n";doc="066d7m6w4i6gmqmgxdhsvq779mabqai0ix83c97gc32jlhhv1lsh";};
 lecturer-23916={run="0alcmds4ds3m0rpq6r46ff56x78kv0nbdnfn80s9q638pf1vvnvb";doc="0ksqm6ibcakjf2dir19hr066gg2dxa5blfiikr1j8x966lfdjb09";};
 lectures-53642={run="0qdhkf7z1rnxm2ql0ywfk11y3aqp8yr1p9202d4ha6729n5pyima";doc="1xakcm4mmhl4ahnvcpn7k748v4j2m8p6d4p455claqhf7xg4jz15";};
 lectureslides-62292={run="1x61bpgp5ddgld0v05qb5sg2lwb7lzqn6r65imshvcjz1xbwpvdb";doc="1awy6zgj393q0lm195hh8ky51fczm5s19d46fc7mivxyh03w3wk6";};
@@ -2141,12 +2188,12 @@ leftidx-15878={run="05fi4rp3s0s9ank7pphdwxnlnanc2r88dxhyxbz64fb26sja25gy";doc="0
 leftindex-56182={run="16p8n98cw5kxah37wv263mq0jg4jq9f2dfzjyy06sadjwsbf4psp";doc="1g5ykrfix8d6k2cg3nsh6fp5ibpgfajxgf9qgff4s99ir2fgyhrw";};
 leipzig-52450={run="0wml5k749fgx3vq10v4vc970h6nqm6qflg2z4jajph1h38kj2ryf";doc="0znm18pkrf592jfgshmr0d7vk4d4yq4wvj9hqsfg9nrjd4l6a66x";source="1sxqsgahdr0srk52iqdacsqn7sc73iv0n70nsnpvgfsczmxa2djj";};
 lengthconvert-55064={run="0zjyynjlq48sywr5gyi6nhryrp8hcl41q1djjp73ingi2h2svz47";doc="1id32l1ipcilhkk4w9w2q8rfjlk99f5jphvq1hjvqdnhz4q1rk69";source="1zy9bnibswz834k24fk5srl0ahx4i4hlrqv6vnvwb3h8z71izc3b";};
-letgut-65548={run="07m3vhmfyq3y9gfmcwhyz03lg5jdmfpaf4z07ixiq5cq37vmxza9";doc="0fhz5qnnqmqrl2v8ljhw0dh2fkzmmiajkxn6d6x3v1hh0m757vl5";source="0pqijgd8pi04ggkabbi2zhd0qdnr6q33d7ywp020irbwvq78jqcl";};
+letgut-67192={run="0b1vjlh97ra46c906kxxh4a9z9ff17s5kii5488ppmk3fmjnvfwp";doc="1q8hcsqj92w808hbmqk006zd106rvhl48jc8qknk51qixz74yvsb";source="1w4ini5k56qik0yx0b0f0g7n6558w3yqidjsysiap4mn07mcpic2";};
 letltxmacro-53022={run="0p16zmxngzzp9hbg7bxrh087gxj7hg4avf4a9akjkg56834hna5h";doc="1gxldiflxvhy6ca87f8z3a3zzisrwz6f9vrx2r9gsfw72jyfa99y";source="00ykjx412119jxwf1zaz5bismfr0i52psf5fagdiybbshs5ac88x";};
 letterspacing-54266={run="0ry7rri76dgbrkzr6na2kkh7bn0jpwkhh9b5qw0cl5xwyp81rddg";};
 letterswitharrows-59993={run="1b7d512g9gma07n7np7f92qqxijxs2df4h0izq5xffd5jf438m56";doc="04hrchgbm25b8g8d6ywchyijngk42lh7z5gq2g2hnddl7wp79kv3";source="1jabbydsy0xn79p2c9dg605kfrc6g3c25jz72hnq1ilpny9zbihv";};
 lettre-54722={run="13h1jsgjp5k82cq4rpx8gd114l49m1pzplksrwjylx0bzimlzgwn";doc="1w82fhhcdgsxwsnprx2p61ygsyh525im8j1zalcw0bji3i6pm06i";};
-lettrine-64511={run="0n73x5f5b4l66dxcwy1l9k792w8k7fvck708xwmrhqxzz3xqhjx6";doc="069mrypms7krgaydsj1jgi8vb1rvxjd8h49n189xzx3llx5mgqw4";source="0xp2235yv7fdyq5v3f83qp34bwkvsqgz2yqv9mqhmjq51l6swhv5";};
+lettrine-67923={run="1w18c4z4a6scy1d3sap8hwfdivi3lidndg5szjjlc0xxnkrc3iis";doc="0afwbjyqj173n78bjpzn3pb05vbx9ggrafgnv5djvm4f37i6iy4a";source="0ky4fljrf95wlj2yzqnfg34k5cwydvl558f5axwrlb0id8v29jf9";};
 levy-21750={run="184jkjwm17ms75j86njpkr17ipcamca3r5l1fcg8vfv00ffj9fp0";doc="1wbxdyfxm80w3h8bq8z5yavdwdbgccvhf4hm697ss5yshp7l8gfs";};
 lewis-15878={run="0ws9vk38j3m0sprl9lak2sjlq13nalcysk95gv68h90x04jj5zdl";doc="043kmzddal693kl6fds0xl2wwmyzvd9cqs8dmy1jzp0mdi6qw6vn";};
 lexend-57564={run="1lqqn007dpp24jcgpn9fdf7ysb99lgrz9zxjw27qm2439wrzhc1w";doc="1h7s17x7grhdb1hxxg6wql3pwy1w08iywpynymrqn8748s93yy4m";};
@@ -2158,13 +2205,13 @@ lgrmath-65038={run="0i1mag3077fs18xyznbgh3mc87sz35ihz4n5yp243h3c2qg9kyax";doc="1
 lh-15878={run="1k2nn4zpxdgj3b10xdqzldcdbw56ws9735wp0yajkhxl72ms0705";doc="0zvcl1zfbn7qv9069hff2a2r2d33xmqr31l4di24y4p33y3ylprf";source="040n2hbkaypam4fhyb82ncy1sfyvg7fdhykw9fnvy42mlzxv1p3y";};
 lhcyr-31795={run="0civwbn156gky4k51189s9lpqcs06wjr32pviwb1gzsfr6rc7vws";source="1pwlcsilza9f2f73qsvbr2xxxbs2dcms08jxjlnpk8fxcpiy8j6z";};
 lhelp-23638={run="0j55ilp7wn1w8vs60k6iangc9h637f2jrnpshh9glryxj9jjgxqn";doc="1is5s8iqyb41fr2hr1kxf68xrlb8hqw3v1fifl8645dcgp8lac33";source="0iyp664cy3n04nn4499ryzx00sr1iip1qmdlpvjx010r7hq4dyb7";};
-libertine-64359={run="0g80iv04a9zawchks64ny4x7d8rfkjyhbd8gkqfqg6vkkx1nbb43";doc="0qyx1kl3mmzra1hffrvpd4kpqjmhfx94waqkl6ix2i41kzh86laa";};
+libertine-68981={run="19f8pki8i0g10z2sbwahyixcmwixcri3i5wrq3bx1zwbc28fwih6";doc="1mz4lgajz9ij54sgn0x9w2y1ng49hdc9v967ybgjivdidjsfqkhh";};
 libertinegc-44616={run="14fdpxgsmq9dhgl2065rdsp0fnh9h0xcr0jzg4k5gka9irazxrzx";doc="0isvl0ghjji427p1fd1w0yy04c6zjmp058k5gkpsa3xkhq3ijvv0";};
 libertinus-61719={run="00f4wjqqz4hqh2ic8g162mnn95s0p2v1qshbm0zrnzjy2gr51hi6";doc="0zkv3fgkirq6jcz7ywb1sjnnw8vfwfgd3y41lm4ds547ra8zp2q6";};
 libertinus-fonts-57948={run="0izp1qihx1arqkgbdp18ks0xz7jlyd5cc4r3d5nhdnpph1nry9r7";doc="1zn6nlpr95syxmijr7w0cljq21qfv09b2rp8j6n0rvyzm50gc4fg";};
-libertinus-otf-60023={run="05pvwhvn8x72hivbkinn0nkjscvs9vc6m5d55jkbws2abgh18g6j";doc="1i7bypqfgwq9dl05vwk7r1cvsis2h8n6r8bs6dvhysxf6w1mw7x2";};
-libertinus-type1-64958={run="0mlr412iaqnw74c0k51faanypf3syqc9iyz0a8xfw7z9ibg513zr";doc="12gqkljgl6nxplzk2xb5nfgh7fhfdipyvs7pc5rmbk4hvdp2yfw4";};
-libertinust1math-61751={run="05wjf6gqc6c3m599wlxshimzdz8g4wbpix0c1a82rpqqys364lrk";doc="1miwg4m8f0fpxksdc5c2pwy2pkll79mhirj5v0ppc1g0yzxis31y";};
+libertinus-otf-68333={run="1gxgz9lgiyw9n00ss64bb5zghzb5hzli6s8znkaq6fcgnvaf5ra5";doc="08xig7pz9322x5kz8l4dgqc74hsdzrhnxp8kz577gbkg8mi5rsf9";};
+libertinus-type1-67450={run="1brcmv3j109909q5975zaaf7slnzqcflfqzfmxvbaxychwm56nds";doc="0v352ny2961inklzfc2jn797f443dmp7hk0wn7s9dzqnim8rsr60";};
+libertinust1math-69062={run="19yyzlslc3qqk80fdk42ibyb6q07w3qp6ax0pn7gqmw44zlr95pi";doc="0nmg81gcll8z7mr5ryxp93gvja60ayynb1s135l7l0h73s461lxs";};
 libgreek-65004={run="1wazhir2i0bwh8744867akraid5cz629yjj6aiipxm6gjj913gy3";doc="19wbh1vjycvplflzkb79dr3ha2115jc8lf0vjrxx7qvnjprygs8q";source="0d8x32jq6fcni0g5qa0hcd3vyxj5fcqa9yg3m2bfb049p5ms7s40";};
 librarian-19880={run="1rri0fb9ssj413w1g8c7p79hn72gqzncihhhg3ws3ldl9s3nm54d";doc="1i4m0gp38f64y59zcsyg2j7bb6zycyf9z5yr5wf86l6kh40cc2fq";};
 librebaskerville-64421={run="1d98h5gyymci1vny8877pdq7nr0vvv8878kcbahvkijyn5gwwdx3";doc="08rds9g231kqmka2dzv03sj9dwnrh89rhsbfqffpzrwsfc4fqld8";};
@@ -2174,15 +2221,15 @@ librefranklin-64441={run="0g6vlivwlwb56mm9a509xfssp11ir60cvrd9cp2hv9ym93yqkcgs";
 libris-19409={run="0nprmwx67zbq7xhjbb4xiw5da3i0k958zvb3z32s71jdd6psnphr";doc="1vg5jgllfxh3rdqjvgmzn6ak887ar7a4kc1k5cwwwgmgdsfam1zl";source="1dfm4q73p8q8bgn33z025sgna1jq428d5dvmfagjjwc7sjd93ncb";};
 lie-hasse-61719={run="1bqc4gpk1f5b7afsqii6ny1xyh4zpc5347v0xv618svjh7dpyzpx";doc="1jfrig40w3ac4j6y8aiwjyvsv9q8lvgvn1977f2yg12lsjdzcpyg";};
 liftarm-62981={run="1g1v61iahjd67fjdgr6d6lag9yjqvix0b7m2aw1gc9bjzlcvpd8d";doc="1pxhbcg880vnnmaz53ifpiv17jsr66i81nzhnb80d4cn5jlxklwn";};
-light-latex-make-66474={run="1rjnvx04hcmiwzqg9gh1l2w0vnj0qfm22snjzm9hi7i3sj1kx2ja";doc="1k9c1vpfv08zwgl9bq3wd3lxd5rddfb7pllnzcclx7002pdl81vm";};
-ligtype-63577={run="0iqwvjvg4vl801pbv31vijcq4yn5dxkbrhcjy6pqd6ix93grw8fi";doc="17wk5ryjcnsmljfkndy3s884yh73fpv6dwfzq0a3f9hhpxak4pf1";};
+light-latex-make-66473={run="1rjnvx04hcmiwzqg9gh1l2w0vnj0qfm22snjzm9hi7i3sj1kx2ja";doc="1mjmsg5mgz3fyn6v65iy75jz9jvdv4bxy8lqsgiifv1c5660lgzb";};
+ligtype-67601={run="1xsdzgcbmn1djpvsjak0bav7vvaa94rc5byhvhajfb5npqrz2rn2";doc="1yjsbj3m44cj1lzzgxkzl1wsapqfcjh6dfyaqi971k79zh9420vk";};
 lilyglyphs-56473={run="11mb49rcsi051k7yd7s02k9ca5g4mmifdjx1nqkvs6rl922wcyki";doc="1wl5ppgazb27s3wxgmz1xw8cwwmnnn0s582k5swx8qy91qdl08r0";source="0657barhxkzh3jj3b8rk5rl9i47k2h0p1wa2vxj00fdfqfdjn161";};
 limap-44863={run="1hdv2rlvxbqm2wnn3x2xrmwxpwbs03qnlfj7k1s8mfpp5smmhd2i";doc="1qj9ddllgvm9zqjvfdgg2sfdyfzpp8raf8n1l0zrg9vpiy2imdn3";source="0l41pd8xl969ax257lrcnkxs0pzb3q1fmiy8ijz9jfrval3rqqbw";};
 limecv-61199={run="1j1j3n86gvvv8jc8wycmjmnx9ci9w41w38fkxjsmx2mvc8frsi2z";doc="0d9gg2gf16pynh395sfqyr1bzj664snv54x9bb5a3zck3b9kbga1";source="0m0li0wa9pk2p5m3gqzr7n78qglz68akw7f5nq69iddqwh5r827b";};
 lineara-63169={run="05g4pmwnwmlh9zlcn3g2v5cpxr0pa07xr5kqnx0gb3ij32348kz7";doc="10bl6r0sa41hnyf8c6hgwgji33jvj9zy1k39lk168xv2wzkarml8";source="1fgdbxkgph3x16axccx29llckvankl51izxk825jswbgsxgj52j4";};
-linebreaker-66465={run="1xmwcx267xfkz4car7rdda4fh7xj2m7kg4iadxrr2hdp53l8lpjy";doc="0rk3hkbnfvqprd91mkakap6fslcrrs9x0yr4bmh06ql5w0axbfwh";};
+linebreaker-66639={run="1v23krvl4nf8pz1p2hl7d9pj23c6c8zw7hgcacyjvzd8sc22jsi4";doc="0prq9r6acl95w8cjrmzxlg3hxiq1qmivl0sgdcva6992smmls68p";};
 linegoal-21523={run="1arnfkijq4324jzyq2sn681rk9ncbgv6zqfrvlbs3vic8wxj5c20";doc="0mjpbkf6vw0n4ddd9abrah7rxf51gmgayspy6jpnai1wrzv0aby5";source="18v5r4hj2jpqay98njcyijwvrbc067c49jrhja6i52ddj6h9q4wz";};
-lineno-65586={run="1mffkb1ji1dgj7li9fgvvdy4i3kr4sh1gvyanmkqk2rd0lcjy2yk";doc="1nkcqz4i4bcx1id0545rpyiqnhx4dzm6vx1qnwjzxslwcv8fa1ay";};
+lineno-67171={run="0qgm0wlsq04w8cq435px8fxp6p9k064i7j42dgi9xx40fzar0k7c";doc="0clfrg91m97ija67d7ykd3yp8r2zng0rl8hrhdi5hay3b0wfcs4z";};
 ling-macros-42268={run="1qr7bpa2wcp1hqx3ckid8h41lp8idhqqnnbdv42j2nhcy6f409wf";doc="0lk4whkamzsf9mriiz06ynpp962w5473ppf4n36q3bb13amyp5vk";};
 linguex-30815={run="16rqzqipzng4xd7yz3i6416231cfphqbwq8n6pfal83awzd660jk";doc="1l0m6k9adq0zr88zbqrj4jl286mwarr6fiy4181bwxm9w9kkxs04";};
 linguisticspro-64858={run="1aq5sz202hipjbimm2n8krb78q54ybjyxbymmv1nxdpjxk0hixz7";doc="08pbwqz6rqqmw814c54g124h6ni6bpb39gpd2ibp5gxn21agqa2y";};
@@ -2192,22 +2239,24 @@ lipsum-60561={run="1rfz9f6gaha6ccx1s5kij2zkwdkm6i2laxv5r9jyjvsawqwr0lam";doc="07
 lisp-on-tex-38722={run="0g33w5hwgpw7hd62lij0h5n89n9r9ynlxswb34j0aqf3x7nsdh8m";doc="0rgjcldb2rg330cp8m5vxbi380xla73jb36nn94b2awl4g34bpvd";};
 listbib-29349={run="09rs3zkymlnn9fgsclnfpn1mrmxnqy8kd5pmdiphlga1iwfj5z11";doc="1nz6p8z4yvh91hvk02y184xl6fd8pyjlpjmlv5zpmcjillv176yj";source="14jrkykx2myp5fghh9qj66i5g291azm6cihi12c53bv1ijcyl1ik";};
 listing-17373={run="0kpf5svycd71r8p61y83wx1k99fwxm95qz5fbnqkfrq3c0113h3p";doc="1zd0mxh0gxlvqrwxvycqr5yzs5fns0hrkn6g6b4m1v6njv2f9lna";};
-listings-66233={run="123agzj0xmm4gprrdyj5223129qd360z5vw57s93d187hp29byrh";doc="1r3yl3z8hpdqsin2xld6xs6ywdk0k7ykc62l68bbdasc1bw22ccm";source="1wffwc76c8xvc95yg72j7z1iqzij8jzq2yz5mqc70mivl0amqcip";};
+listings-68476={run="123agzj0xmm4gprrdyj5223129qd360z5vw57s93d187hp29byrh";doc="1r3yl3z8hpdqsin2xld6xs6ywdk0k7ykc62l68bbdasc1bw22ccm";source="1wffwc76c8xvc95yg72j7z1iqzij8jzq2yz5mqc70mivl0amqcip";};
 listings-ext-29349={run="1r5nq62k8rwllcpxwpkh2z0gcb1rlydp9nry8wx7r0h93hbmm2z7";doc="0jyk8z0nsdx2yljly8nd4g8wnw7ggi6mdjw0wb7y0mb5wq47sbpp";source="0hd117168f5s1cb2iim6y198lnh05ph4ib7p666yxvv48wr0mfpc";};
 listingsutf8-53097={run="0scs9dnkl2hj95zgjiggn2ikq2nf62q97nnml3hbvmwdargassmh";doc="1s7k2gr69xlxln2yi5wyvd69l2qa8v33d92b6ahgxxpid3437prz";source="1bq197100f74sal26w0r4iv6ys2qa1ylbwbyw3hm9dlpb6kmdmgq";};
-listlbls-34893={run="19v8vx2ffza3icqlj0y710zc17lls87l3k2mkj6lc28qvz0kfp3f";doc="0pd3812k1rqnq5hmsrcj32x9fk72jw1j3brcm8ajiczgv5f3gciy";source="0vic2ffczicfdifdhd34ysdzcxprnafs4k9dpjlnfgfchh9jjwqd";};
+listlbls-67215={run="0r5ns594dxmq7r9pkk2hk482caapfdar1gwbdi6fw396pcnpw8p7";doc="0gnc00jv99rvf892q0sncr7l5pxpndrmw6qsxfbnyb38yr675fk7";source="0s77rh3480i9w06a0nnc7l8gm3w1s6bik4nl15idb27h5a5fq302";};
 listliketab-15878={run="088f2lm5lfbns7hd1m06f3zn1cjcbaw427z7zl5n47ahrvcz9p94";doc="1llrdgxp9mghs51sz4jjhbdllzlr1xgnfskask532zwn1cm6f4vd";source="04xfgaqpcskx5m8byysvd2rji31km9c6cbkfzf3ybj4a5bmbnq58";};
-listofitems-51923={run="19qh891v470h4617fj9ajddpf119qh087ng7ay9q73qhk90fhs62";doc="1s7gl5ai3xdpj05lxhj80hc1i48x2lhcanwh4v3w10yyzf13axyc";};
+listofitems-66655={run="19qh891v470h4617fj9ajddpf119qh087ng7ay9q73qhk90fhs62";doc="1s7gl5ai3xdpj05lxhj80hc1i48x2lhcanwh4v3w10yyzf13axyc";};
 listofsymbols-16134={run="1qp5y4rbnlpaa3nghlxjn5yzhskvan9rg0g45wqmg6yk9sdll5b2";doc="15sr2n0bsvwz6jqgyspj6kxg511jy3fr18705pyp815hg4maxizp";source="1sjg64imcxxqq8bsqm98954g47nfambr6vsyizkz8zqzmnr5vd80";};
-lithuanian-66465={run="1jjbj39d4idfsx86lmpj0w1k6gr6mwr7sxvcm8wag47rgd05czcf";doc="01r1wraa7jgvblc3wrdvkhccp4ba8ps112ip1v31vn4wbnlvdyax";};
+litesolution-69115={run="0wl8z1zzxakbr6ackc2izfzwkqacfznvm5n96gk56fnqjlz3d378";doc="1d9ciidasiqw45m9iha7j0vnr4wmi7gq7mdm2g6lj17q5dick3i6";};
+litetable-68782={run="1bil3n27ajahpd8zmwjz6xab1ibc28slg5bicb6x5yzs5jppqi4m";doc="1qv6b6qjrxvv7sbsggky3mylnnp1fzjvbbk32vvmnk4gi1cnm264";};
+lithuanian-66461={run="1jjbj39d4idfsx86lmpj0w1k6gr6mwr7sxvcm8wag47rgd05czcf";doc="01r1wraa7jgvblc3wrdvkhccp4ba8ps112ip1v31vn4wbnlvdyax";};
 liturg-15878={run="11l8ccpq2mcnpsfxry6zzjihj3s7s76p9plh7afprd7j2nnq1a79";doc="0rhyz3162nzh43nrxwkynr45i4w5pqb5ip53x5j2k2a4cb4k1z86";source="1hn89rf3xi66bfc3kzwbvllfzrxr62gx60ywbh8gkrw813n18lll";};
 lkproof-20021={run="12bj60lfqlqvyk020lv1l6iinvqx4cvd6lfz4vhblfx3gs3xmcqf";doc="05sppy6q0c2iangbzmxv5qxla8slc2k0fx62f6n2fg1ncgvfl7qh";};
-llncs-64299={run="1yb62rx42ap1xkkf05p4y3lc7j3ci4czwv94baznpirfjvhai3xn";doc="0is3g7p7xk1z8hvaxffhpi5w98385n7kzr13cl4klfmk2y96pqz4";};
+llncs-68731={run="0mnfvhnq8wwsaz9yzw3a9mkc4xnmq8ihkzhp1md0v2pwlzsvdzlr";doc="0bpbvp85v3qqmpakyp7yvm1vbibj9bbca72v98jr9f544kd97qzx";};
 llncsconf-63136={run="17x1sjs86vl03dxcz3qbwm7r21hmzvsvsr9qa0xii8fvp1yb5pxz";doc="1dq0v5wczbhk1ir8fl97c53sinpqnvv9v1hff1hzc3rhbwh5smh2";};
-lm-61719={run="1b4lc6ipij5iws4rgpv3sjjwrdbaxnwiqdbyyj62jzc3yk999m4y";doc="053xga559cmqggdifabingd1f7q1lfad1pkk9nmkximclq5igg2d";};
-lm-math-36915={run="0vsmzr71d5iqhr9bwjnp7khzlg939mvfnbg846854cxk8wfm9hzn";doc="1j6jcki1hxdr17njy8sfpb82mxh6bpllccf3hnjvylvpjf45nxm3";};
+lm-67718={run="1b4lc6ipij5iws4rgpv3sjjwrdbaxnwiqdbyyj62jzc3yk999m4y";doc="0wdnpnsbg4gvahqq8lv8ny36xwxgph04sjn64pl34srn2pk1jsxd";};
+lm-math-67718={run="0vsmzr71d5iqhr9bwjnp7khzlg939mvfnbg846854cxk8wfm9hzn";doc="1j6jcki1hxdr17njy8sfpb82mxh6bpllccf3hnjvylvpjf45nxm3";};
 lmake-25552={run="1fk98049965cqqyzdl3yl9iblk87gwwrfccr5jqpdm5v6m8mcwrj";doc="19yqngjn320sng4pg835rffk6d2g3c5wyma46x1jr0bccv8s1990";source="1p002ywz3pxip5v4cd346nmpg0gi7wamlcl7bc6f4zvzqp0cg41g";};
-lni-58061={run="1y1g323qij5xdjw1c4n31lkzldj5bkfg5k1vs0snnqppmznp4afg";doc="11q1sfq1ks61fjik6wq99yqpc2z5crxdw87pbv3khb3i0m3hfkqg";source="0l1khvrpzwsg26ldxfx97qv8q03g100iq27lp0wr2qqqyrwy7sb6";};
+lni-69361={run="1slm6l0jjv9ps8qzs5ld774iibsqm4bi916pyypi668vpf03dp1m";doc="15125l53k3v5g8gg4x8i7izx2y060r2mpqs9k60jxn4ljlmh0cpd";source="1wlvrxfj254ap9vh0wnzana3i1wryqiqxwff2gh8lrh4nh3yiq01";};
 lobster2-64442={run="11kx0xhhklgrj3rhc5q3c5hi61444vr4936fpq1nma1yxn7mbyfz";doc="0l51mwqiq34v22pa4rjj4c6q7w2x9acdfy02hb8gmn80i91fijpw";};
 locality-20422={run="1b6xi8zzc9x8bc54bs2s6ryn7g2zfpy1zsdddlx3j8kvmbmgv6j9";doc="0z0vrx1dy5qqgb2kx08qc2r06ljqnfsgiz58hpy6ylnlyay39ipl";source="16xp8pc62jzgcmdhqpmfi54y5aaf7mx6bqgwslpwixgwym0i69qy";};
 localloc-56496={run="0ynzcib8hsflpjhykfl348pmc508g4i3ig38wjsb3gfm97mlhq24";doc="08aiqc04rwinqr510r1wkzz43qq4nks1varmxyjbnw9acndn94ak";source="1wcl06i82xkp6m5m311pn1ax42avlp6n54ad1j450apgygdszmik";};
@@ -2216,10 +2265,11 @@ logical-markup-utils-15878={run="0nc8kgyplffng9429h0g4hynlwwxpcvnirxg7rj62zcjcg5
 logicproof-33254={run="10b55lwrrq1aqmp9njiabqg59xdrd5g8skbcrlhs621s1999dq2g";doc="119zgxwx0q6c4ghpb30mvpdwrpr0xvk54hmj6qfpih0kxj0zp1az";source="19j00a28pz5dp29sx61dnrpqyl24sx9apf2ck334ap5sw7awnc70";};
 logicpuzzle-34491={run="0zsg11lw5x28sik6ifj2v1zjvm3pcv4vf7w2pfxcr395vmw33qm9";doc="08vgi2s2cy09dhqdmvmq1ijlw83dgjd7xjfdhj28vm9ny16zmydz";};
 logix-63688={run="0syvhp2zn6rpmg1v92k9df0q4kv79flvj93m7761675fb8jcki0h";doc="1l7kyw1pjr4bpj33sy2dvkb1fvl39pb1mbvwz29w6k4038hg50hx";};
+logoetalab-68916={run="1qmw240mqsh2s7l2r8nvw9xh3zwa99g01szjaxn94d92hnqmb4r0";doc="0rkj5gcp01xcw6d3vascvp3nw2ng5gxi9znj81yasgw09w2qyb43";};
 logpap-15878={run="0xrv4x46m54b4gfa805naab6fgpd72fwqnyjjxw0idy9kb3s3x5v";doc="1zb6qyxrqy07m65i18dcli30gb42y6c3ffr22cpxa7r8xmaprcg4";source="07cm2gcnv6d7pzc9d2v3bdvsmykqf00bbw177mqyjaq1chc0xpna";};
 logreq-53003={run="1zj1vn0yfklngvfvcr0p8hchar220lwfrznsq73jbw9zzjx47v4f";doc="143b5bb1jkc9j1gd46c28q4zq8jlh9wrngjw8q4prw5dkfnf1s8m";};
-lollipop-45678={run="170q59wqy0x5zhziaycmfglv1wnc5kf252ni1r4vgrrs3rlwiirr";doc="1wj858kqp27amx3jpndsqma152r40agfymh9ah8s42pn6kfl4dkq";};
-longdivision-59979={run="1hb76ag0yp3gy7jyyjn8gdmgfln6s4w2l9gji509swbiwpf2ab4g";doc="07krj49i9bbajradx0x2h08ca85kwkqxcx8wn05nirfqwdmm7acf";};
+lollipop-67930={run="170q59wqy0x5zhziaycmfglv1wnc5kf252ni1r4vgrrs3rlwiirr";doc="1wj858kqp27amx3jpndsqma152r40agfymh9ah8s42pn6kfl4dkq";};
+longdivision-68609={run="1rnbw3y9vzs0nqyjw1qdj7mbiy1mk9l3ccygnn65495smgg7h7b2";doc="091b1v1hwbifv426w1gglg273c9ck0n3bzj3xl9hhl27x1qzxjcy";};
 longfbox-39028={run="1cm2zp8sina312n72bd1xza75yi38n1s2ach2f9sjxdx0m5c3ywx";doc="1wd6hdarh4nm6x4qn789flnq69gq5p2r2pgybsynbna7ywar0l5x";};
 longfigure-34302={run="09pnqp0jfhsg7i8z241ggnx04j452zsg1zqmwy0i40fp2s36a61c";doc="08y2a2922zk61iirlw24kdsf473sx0b44pjzxihmpcrf19vg2c12";source="1p10y4nwz9wj321mf36avl3w6zwvspnb9cc92h9jf4iawnqyp8p8";};
 longnamefilelist-27889={run="1nz5n1g65fs7xxd4l0c9xdr2z46mxhb0fkmf5id4hrifrbl3jxbw";doc="1v8i6ax2qwz7d7mi0bnpyllbqyksdd749s8pr95jfw1fhi07i5fj";source="1615gzf3rjfr1nlmpgcrvmlzhif13g3kn210xq8p0vsv20irnqa3";};
@@ -2232,7 +2282,7 @@ lps-21322={run="146a42clkjyrg046bz43b2rpvz3i2dvhcsd132bzc76d3x0sqps6";doc="1nwn4
 lroundrect-39804={run="0s44pbvm6iwl2jyffnxriqlmpp6zs1y70z4aix8wwfasx86gq131";doc="01ncbhr1x995763d1dnarhy56d7mq3r8k1b56whqs6kq55115w2w";source="1sh8ypnfq4pwaqd934vdh77svs9d3a4114vghg6m4sz5fxh11i39";};
 lsc-15878={run="129vlr2gnirf47vs1drcsml3w4jcwg78hmya4r3nspaqm00b17gd";doc="09faqnv9k96nwjcvgmml9f02vdj5hadbmb1lp59xk6jikvybv436";};
 lshort-bulgarian-15878={doc="0qg23asq2i5mqhp9xblv5hm3qxmd5886d5x0gq1fkdbyy9gsawi3";};
-lshort-chinese-61100={doc="0455mdpcv3yg4m5vrbdp47j7mcwi43mvsy2p9clp7794agaf2ir6";};
+lshort-chinese-67025={doc="05b9fq4jhh9xifn2lj58fs17fc0prx915gwfz47s92spvv9fwbi6";};
 lshort-czech-55643={doc="0ar9qa0cg0mjv6ydgx1phaa1qpiy25s3jciznbylgi5xprvnnfa9";};
 lshort-dutch-15878={doc="160r060gmw6f6lgbnyvfxafjpqvyr4jwd56ddkjfm3ir2bfl973d";};
 lshort-english-58309={doc="0pzqdbzynlwvpamd69cmfpa8jdcvq96qjr9k1fy3dxpzi2mapvhd";};
@@ -2249,7 +2299,7 @@ lshort-polish-63289={doc="121y638k4f4pbjpa4q0n9qj2w57624q2d1v4jz09qh399fl5yk81";
 lshort-portuguese-55643={doc="0wg51rjcayiizkz0vvjkirrx19q8fbnfrwilgh13prlbpams1hsh";};
 lshort-russian-55643={doc="02abh69xl43p56fcciyan4j0z4mqq2j7ynwazq1nywhz37d6zn7y";};
 lshort-slovak-15878={doc="0b5gn95i32dyn8r7v2cdcz759fllp3b0zwx17adjs282n06vfymq";};
-lshort-slovenian-55643={doc="0cwjg0z5vr4x93bz1khwl27rk8k7kpjm978iyzn6w7gx3wi87zr0";};
+lshort-slovenian-68204={doc="0cwjg0z5vr4x93bz1khwl27rk8k7kpjm978iyzn6w7gx3wi87zr0";};
 lshort-spanish-35050={doc="0ls50syrg3dl5dl5a3fi33cr9j990l2xr6pribn1vqglsqrh191l";};
 lshort-thai-55643={doc="16r9gx902a342q2mj570y269yw97yaj6hrbqrk4h49ihm695z30i";};
 lshort-turkish-15878={doc="00r6pv4z4933jw072djdasd2wp5j05wghln62ga4g6y6jblf6zks";};
@@ -2260,11 +2310,11 @@ lstbayes-48160={run="1kpkr8xd1k1iinrp1ljj1wjphn0c58l8f6hci0axvxdklr02s3h3";doc="
 lstfiracode-49503={run="07fdzwb4k0dv2mf6yl31h58i61hmw0gfpgrjdnz3v2rnw1ip8kgq";doc="17a8sg0srw7096r3h7qa23msi6pq0dagap3a0rcpclp73z3gh3wh";};
 lt3graph-45913={run="1w5n9y7pqy5zmn6w9bx58nnawvhp5467d150qxnj3c92gh0qbj5i";doc="157y7a7gpgm6dc7hawdhxr0v3ns5kibykhkg3wfb5r5fay47jj4n";};
 lt3luabridge-64801={run="12j7x3r286rsj54h6l0nz3ilnf5fnnpw51dbis20bsgnabpia55m";doc="04k331s04qgh5hg007fs5rhvg9cq0bm7l9dcmkg1yj60h4rpcnim";source="0hyv4jk59l7b1lrxcvkxjqbp1sjpkdig5926lj3nlx0ih39zbwpa";};
-lt3rawobjects-65230={run="03af8ax5c1qpq6s7yb7kq29q08cgn7pi1pxx8fylqsc54arcdpls";doc="1fsplmg16vsjjwc33rw4pvg09l8fiv7vjam4gvan4rsb4wgidic1";source="0dhd0xrzfci419f65xy0awvxld8wv0iyhnzw5i47syciyffd2xhg";};
+lt3rawobjects-66619={run="1k65hvwwqqw26mqm248fd23xk4bgm864bqnyc759faya84ib8n0q";doc="00l496344la7q8jz0nr895cxir6zn5pcjsn16mc3cd7lpiclxs69";source="005iwxrraxmirspq3881mc2pb8iikc71p4g0dwxbqp38c8v8djb0";};
 ltablex-34923={run="11gazci0c064iav6124v4szdbj38anqwnfgh8pfpdq9zff0h9g5n";doc="0jjd5f3r67lrbl4vyxjakm8l8pdrw9vm1dzhl5305ga8vvwb7gn2";};
 ltabptch-17533={run="06ww90fh24s6lmzyvmqjh5gcr7vp3lq6cg9q6k6194g4kay6yx5i";doc="0yb41cgqpgcxk27259gfz14v9bpndjg51i9nmwr1qwyvaqd6jvjw";};
 ltb2bib-43746={run="0glj7g6zyvm08paszjk45kp65aac6i3f8spf6zn12idf1h0b76j2";doc="0j1p6bcwwgz00n3wyv3vm02z295sj9xf93v946k1xrv5jc6pg6lf";source="0g05r6b662jx2s2kal26b3lv0dd6r54fb8m09yv5d021y1fm2nqg";};
-ltxcmds-56421={run="1lr77yai2qivlx26s5094czpfxmg96bhxps5wbm8xn7cpsw0zbd9";doc="1hxclaafsgj1wiw1hrqzn6p227x22wp679z5sm8507wlys53v49h";source="1k1kwmyn2k11bn5dp3cx8wjdiqrnb0f84rbv8xbsba199k51ws86";};
+ltxcmds-69032={run="05wvxr5bsrfgyy5aa0mrxqw0vi8m1ks5ma6fzlf8ngnbpihr2ggh";doc="0jnqvpc40mazy5ka1451w5rdcsl5q6rza3dqkhqpf79lgiswxgc5";source="1p7gzrhyiaiid1mpqfqlm6jfamdd8bvxx149lsnvhnxh3mbxlydm";};
 ltxdockit-21869={run="1krcr5qlz0648ibj5c1jd0y4rf6rg33r0clyvdjm70kq26y1lqww";doc="19jc49p978z0hrx7p19h33nc65a7vjhlrfszwvr6mln01la3ivmq";};
 ltxfileinfo-38663={run="0f11qjq1a3s5nxd7z9k19yhbl5219nn4fr1vfcqq1zs8pwnsgqzx";doc="1qjs959a28cqjigdml0jgyhllyxd5kj276akz93hdbcd6gzs9ss5";};
 ltxguidex-50992={run="0qv1p01y18ia4w53dvlfhdrgy1xsicaigcas33xs6yqipr8cwgkp";doc="0j4h20bblkwgdjvr2ihfy32mzyb9parbjgiijqf9sfg2k2p7xpib";};
@@ -2276,7 +2326,9 @@ ltxtools-24897={run="0ldvvkvyw1khfvg80ana7wj20917sjzf0lsp4699hf4jvw71w6x9";doc="
 lua-alt-getopt-56414={run="17czrz46xlbj3xkh4jwdq269mqaq7165kpkhhqa498hrkcgdgaak";doc="1zfwvs979c7s16vpv2k9l81mcmm9y4qdjk46l8ik3123dalchv6f";};
 lua-check-hyphen-47527={run="01q4j9bb19lf838pd7l26rkz1xr7mxcx4fsgf5xd4sdif18h56qk";doc="0iaihbrppn1ap7bqvn37rk8b6m4lwdi8w4zkshiqya1mphhsfjg2";};
 lua-physical-59138={run="1rkf3cgzw6lyld82p8crv8h3swk4acq7b0i9c20q5dksrxcr7vmh";doc="10kzyj9k5fqi0jjkah3xx2cgn1ssvc3byihvs66qpavd2gz25vg3";};
-lua-typo-66516={run="1nv8pm3mixk8msapvzp39rv7rshx16c83d1d9lfb0mfz00kkdkq3";doc="1rhxqjhvfgi9psjhqmc3lrvp71ppmrfw0fcqq65cxnz2a3490smh";source="0205hkpa8j4s1jbg134v2p38rly54an45gz580z5df8d607hisil";};
+lua-placeholders-69404={run="135njnv5czy2fqyjchkibxnfav5m0lbg35z3k9f0ag39qf7z1ci0";doc="0m9rivk3gcbf84z8jp5pj58r88nmjmcm1w122z18q92m7kmb55f0";};
+lua-tinyyaml-66776={run="0wm23v7rm1mr2l10cariiyzv8f64aq0ms154md2ww9ad4qmsf3km";doc="16990nj13x5452c5mb8ha4hy6n1iyv2xsjqgipv27dhz2g176qy6";};
+lua-typo-69403={run="11g42k7431rh9ih81sl6q331k09l8cy1qw2w5n687736hvv65wak";doc="14rs9ds0mw796rawi4vwq73apyswvy6zlml36866pzy2w8mdcfv5";source="0kcjlddqjvfpjqrj690dwkzjf6b2qqjc7ccix96hzhb37sxmm2qf";};
 lua-uca-61023={run="1klxyb2iw6mccm2dlnpk947kim6ysvkykz69z7crf6lyzcy6lmvb";doc="1605lw450b64xx1a6lxjh9w4jda0n3d0b3sfvxl4wngd5y2jckzg";source="0z7fgyp7dh4zkz48mkh49pngaiyd58ckm0ipd3z626alz4k2jspq";};
 lua-ul-63469={run="1yj9044y9xk5kswl7vb1h5fl55pfmjrq2qnb2caym405pw0pn8pq";doc="0757s68bdvbaqjs0a9wds4x1sxrdabgi7s6jx1ibljb2wndxvw60";source="12x006v3z95ygpldh5x394h2igfn0d67bgmqqh40b5zall17achy";};
 lua-uni-algos-62204={run="0msiywf33b5jpdzc66wyvnklvmvs4cpfq3f6bsplgi22x8nvdrvp";doc="1sfswdkhbjrjd4cjj95lbc1sq30j9y5xi35lg3mjfpdinq43wfr9";};
@@ -2284,57 +2336,58 @@ lua-visual-debug-65464={run="1yby9rmhq63md8cb58qvi4dzlvw7hnfqicmkrap0c4qamva1aal
 lua-widow-control-65084={run="022g3aff6xj47wk9kgmc7l07n66milxyxdjpxhp0a5s1wcppf3y9";doc="1az40nki14y88hxk44lfl7czvfhz9lkr3lfikyf2bnjwl2pdmc13";source="1cdpa5h4qd6dc03pjyisib6hndgbr6rxy2ngicfaqwkk25ybrf1r";};
 luaaddplot-62842={run="024k6k9iyqiw29l614n0rj0k32y50fgisd2g1abfis7lihc1nlv0";doc="044yp2522hns6hshlph91c990lh43bwvf40cgkfid47mi4zr79l8";source="0x09ac3qlz7p27nm478lcawdrj98622527ba4rz7004b5p2d8w8v";};
 luabibentry-55777={run="19rvhs12gw5vdq2vvcdzbz4qd3y87qjvl9x4bcqbncqcvwg82cyk";doc="1raq564ad633c0xbwx6r9hhwmx1r7vis283rfh67lixq3prl0nfl";source="0gqbmg1c4wm57ga8gx9g00dfbczfvhqsyl13q0ba451d3kmh6klg";};
-luabidi-54512={run="0flk2g56wfdsc8330grmpgxxmik0sgq9vbw2r51mlzj00dl4wz7a";doc="0qdbn058p7xlr7s7ivaz4pf0rw4w2lywfxh4nkrr8lxjlszbqsmz";};
-luacas-65042={run="16ig5cwgj6vfclslhx2jbdm7a688577najfwph2csckrksblgl14";doc="0dqgn8g3gllrh6zlrcq47h9fgj2mvmaapinfcwl1gs4kcq8n7bg9";};
+luabidi-68432={run="1kfyazn8v1ks5yvac4x5cvd42i8li0sgv00plj92c2m31hfxw2gl";doc="02387g70qsxs7km8dlgibyx080jwwjg668j0w12v3hz67jvg5ymk";};
+luacas-67247={run="04507iwzcyc2xgy6sfawzj6l4zrjq4iaqnb4946hdfc4nbx177mn";doc="16h9v145l1kv00ipghfdjdqyh8giq7y418664806h6gv812af7yy";};
 luacensor-62167={run="1n1dgnamm5l3hqpbrm4dwgsayqmr99m41iy4038s7mfzz6dkf0g7";doc="038838s5p5ynvxycdhassvkq1vhpv823bfr5ppir00zd7mv8c7b5";};
 luacode-25193={run="0qk8vadwymhcm7yw3sffdh9i171hl8vg07j1b5gbsl1sa70cpam1";doc="11d6ak1dvdx64k0i12k4c5kh24f5vqy0ihvj9a5lxa9gqypflrga";source="1fafh2nq66cz01jsbkb0mk907sppahlswsbb35pa3q5j7iqjzyav";};
-luacolor-57829={run="170b7537yv0c8g2raar6yf5npnbf21blp16vc75v1x1196mblz18";doc="0vcjrmxqc67j9kkgm3yqs78qndzskqnbjlwgrshdmdms6lij47qj";source="0m4hzd0rhp9vychlixr46kx7rahqvrrfi2cx5jl53gr0w9gp1l7i";};
-luacomplex-65833={run="1vcygnx4x95g1zcv3p6lj69p3r33qpr734rp59bzy4ll3gziarw4";doc="0nwlz1587z0cmnkdf00gmbmy0wrzf7cfhrcj6xqs64fy6hisj3yf";};
-luafindfont-64936={run="1yc07jvagnxjbm9ph6bgrwj2d5il8vl42na0bm4mb4k2zz4yq9fr";doc="1pjapd9k28nfiqgpryq2dj6grv3nxibfazrf5b2s4idmmrk1qb55";};
-luagcd-65396={run="1amdvgfh1s2sz9v6kg8h53jv1pzc012yl27jy30ybjwx7g49i3jk";doc="119c49xkynwxznynn3vyx2v1vicb0ilk6vgsm7jkc1qx8lfr84xw";};
-luahbtex-62387={doc="0bcc5wk361qva3nrgzgl849fbxj4lzmff2r5vabz68fisysbyx5k";};
+luacolor-67987={run="1mbiwswai0sq8wi4vmyrracygdd3a1g45m3qanpams683ik1syal";doc="0aqwjckc7cq8z80bjyl6fz2gqzrwwdvrlilpcf710wlrqc5c023r";source="07dwvksaxidr4b7z7fx68q2kcclhmpilvy1xk1xjjp07s5vgqkkh";};
+luacomplex-68883={run="0hd7g5fg9dbacbkk94zpjk7yjwx3jp70l2ia6wnzx8zqajs4hc7v";doc="1hsr4308z3b2g3g94hcn2cwin3awhhxb1hzy2c0nx77d0byx5kkc";};
+luafindfont-67468={run="0aajmgjbh77mj4qv6d1765bn66qjfk3m1b0bg286lp77c0vsjrpy";doc="0bhr19q4j9fqy7y8mjiz49vjd13s1wpdg91bqfdyx674l5sp72zw";};
+luagcd-68893={run="17nh27fkwjrfpvf0fpfbqcqi00bgchw0zf3iznp3iqmjyvrdwn8j";doc="0lihscgrlrjrc3djqr3v0zwdzwhmlk7r33rg0agasdhcndw5hb3q";};
+luahbtex-66186={doc="1hfawh7vig7jsmd1y0qlbn80x6770q56sqd9rx638js4p5a4di3l";};
+luahttp-67348={run="0nrk066mdzlw8z55qy8w3clpfdiy411mqni3kmn17adp5iswc9sn";doc="1xinhsfcl4xz3xziv0ch0rhgrqqzmrr3hs5h23hdyadayxk4wxhl";};
 luahyphenrules-56200={run="0msfn7s35xhpacx745w0zbr6g5pbhhm4pccd5cmqdhq6dh0fjw2w";doc="0y2rxs5mqyw6cyrmgsqqibsw45qjlzsrcwpd74m9l9d4731nyn37";};
 luaimageembed-50788={run="14xmb1cjqvpqwl33qx7376ndsbkql48v6094r66ksr7vlyap5hgp";doc="0r0w2lzxf4avfsv5s6fx64bw300vnmympfdfzz1k05c5c2kjy9x9";};
 luaindex-25882={run="08kckg0129ksr8pdm0a2yawwb3fa5js3mkp6jd8f90y0w7acrvis";doc="02w8s71qdkxznkmqv7c62dhar2x6ia9zsiwd29qxjf51dpwj3mg2";source="1v09zszin9f4k3gczrfs86zv019l42d6khacjdb3qjp2gg8w9qn6";};
 luainputenc-20491={run="1wsz8aw4dyhiw5p7gyf26lcixk1a8czr06akd1h6dwj6s5vq4vka";doc="0h6wjb0kjdqfrmzikvbddq4w31d55mxlcl5n3phr56fa9i49qmgm";source="1yps04v6fvqspq3rip0c6pw5a5y3annwfaij7w27i53419h83lbd";};
-luaintro-35490={doc="0xab7yymknvhsh4c30xnhrlvk798mbnl9fbf7njqx8mbmnv869bi";};
-luajittex-62774={doc="0585w33mwy9gw01gjnkh9wyxcw8a4vwhaz9a3dx53njgb2s6a4b0";};
+luajittex-66186={doc="1qfbg0r6gsncgymh00yc83kcayd4m7bvryap8f63sm9s9bzfl6yv";};
 luakeys-65533={run="1p4hysck00vgpdnba5jnhaslcbq5cpyw89f1mdn2201dr0nj46sc";doc="1s46w0knvc5k7d5nqvycqschsf60p0qdgswwf3bs987m5vi7jmzi";};
-lualatex-doc-30473={doc="12kg6l5lrq791qnh9gzmfbqn693fpnbp1nn8fddd5ybw6gr61qr5";source="0q34k7x3lwhx2m7n0xl3c0jqv3hzz9zpx6hi5dy06k305qjr2lv8";};
 lualatex-doc-de-30474={doc="0vnmgs475bzbqi14m9sm45cwjfsbvbk45wkb8m73j1bnk7wg7hh4";};
 lualatex-math-61464={run="18m4jab4yy3fvwkn6fyb1qajsq4nl45v06l1kdjimcws5vj0wbv4";doc="0di41c5rk5raf88hpz59syhg330can3gb5s25n2y5c47qj0aph1w";source="0v470ky6shgcfy44b6a1b987cylqiz6rk0dk9qfhiqd6b93p3axd";};
-lualatex-truncate-48469={run="02plqfp0xi406wya3c6cdgj0777m11fzkbk9nbharima6zhsc1nb";doc="0gkgbliv8bzpdk27mkff02v1d03vggyq4nk50yawrimz0k7q64bn";source="159wcqiyb5rs9a7wfm5mj5vcqh4kr9gv4pv6w0d7vfylkrlh76nf";};
-lualibs-64615={run="1f6ws3pfy04flzghcf5hizdpvbj04h4lswmlsj7pdy0cawiyrhzj";doc="09009liv37ynzc42n21h1frp2yy47c06hjclb2ahpqiv3vz9y2vb";source="0m8awp11fzch72bf1nj9llmdx0yznxilibb0z7l7vyf9qza8k19n";};
-lualinalg-65834={run="09jv395dszfya5pzz7ng470yc9q8ncvanazlgwzjynma0hc8jdjr";doc="1kr6c0b86plylk1xj6bvpm4dql1kfgwxq7w7bmf3dq8y8j1hsz64";};
+lualatex-truncate-67201={run="02plqfp0xi406wya3c6cdgj0777m11fzkbk9nbharima6zhsc1nb";doc="0gkgbliv8bzpdk27mkff02v1d03vggyq4nk50yawrimz0k7q64bn";source="159wcqiyb5rs9a7wfm5mj5vcqh4kr9gv4pv6w0d7vfylkrlh76nf";};
+lualibs-67994={run="0h9v05ax34iir2i1qjzqi27qqnw4szch42mfa8mfxvxcmgcjyqpf";doc="1wn6j8fhprq0i1k301p5k1rw5dyavwn1lwvrydf461nwfvahavfl";source="0rchl8c2dn0f5bq94h56ncy4rp2iisr3j9wmp78c1bm22k9xa1f0";};
+lualinalg-68918={run="0ma2na0ms6k07aavahnpfz1wddrjw2zqq0znxfmib50m3nqh3r5y";doc="05lpj7b9bg6w6d3hc20cnqd50m4g0lfbgj65lywnk52klkggiyd8";};
 luamathalign-63226={run="00j2vngg8sqbagyhmjv8lr8kzfsllllmm2gijhxbm8xgf8r7f01y";doc="0b2zkyzy0rq2cfbk205nixvflqcxgc1sfxiqbiqhz2yhai5y87i7";source="1svawaz0lj4zilykjg46av8sky18pwzqfnyli8qldpby4zmnqgvi";};
-luamaths-65400={run="1b1v70z8vz7z0ic74badjywm4a87r7izxryi8dsdr71apv2wv2id";doc="1ba0icnj7hpb4m240ncy6xypr88ijpz1l471b7mv4lsij7p8b53n";};
+luamaths-68883={run="0gcri65p0y9rmq19rgf79jw98i855cl30al9cpq3znp3jjyikfrr";doc="1sv4ygd6ypf0hhcbhydcr1ap7ig26z476i8z0gs5mzfs08rdq5mm";};
 luamesh-63875={run="09ldwjfa0dfhgqv2clyqzd8nzq596h9fz72b1jh7vqjwkn5774y7";doc="0xnk2mcw24v6002v523m7amj6qc4w3h655l1ss4rpwvv6virp3kj";};
-luamodulartables-65485={run="02wc9233vrfzy0v8km0mfv2lalw5gqwcvglc3km02cw880wpqwaa";doc="0v9lghv7ajnaw7sfm2j8bi58aw1qrznp7carmc68avlq0x9d5k1s";};
-luamplib-61587={run="0x6r6jiv2i8mapsxaymz3l2avjm0c3swhfzvwl0z0pqgh2m4wlfi";doc="1dq5bdfxp7iv403dvc6ggw96v4ky033qgw002x4nr18snswax06w";source="140ghg5l9vndgx62zfhs7cx93ibph6hjghy4267f6h4d45bizk2n";};
+luamodulartables-68893={run="1f250s8836j4kgdzii56c0248j5sp64f5wbqkpd6p69wjz7pbrmx";doc="0pdk7x09gmdv0lnwkvdv3scmbgfgpyv069fa4s5hbyvwskbj7fmy";};
+luamplib-69069={run="055wa9l7bh6313x5dgr2x5idgd3dva994fq9ip9bxg9iv1bnxw1k";doc="15bwxh64cxqz1g6hpn8vphdd1z0f35ldiraadqqw1pf9gnf1fgxm";source="1w83x0yis4rddiqm9qdiqjm2ifg2d1ah7f4f14im9h4r5z37bck2";};
+luanumint-68918={run="14z8vvxxivi2i61r1ydq1csbxlm3621y4j9hx3p0m9s1ngcy4ryv";doc="1iss948y9rhg7j6am6vyc5y0s1cmn43k1g8vgcjlzbp8x88mwlwx";};
 luaoptions-64870={run="1lkx7ynl6xci7klgi2h7qbyxny65nca74xz2bhnhch6zm38rgsa5";doc="02w3623ix7g67bz21262i95gn1m4gzvlvn08f7v0x0q5lm7x1f3x";};
-luaotfload-64616={run="1wn9clphiq5j4j28azi0y90037q9iy79gsm063qsjggnfi687zb2";doc="13ba0aqh1nwa43h9zg6iydrky81c45fkwszr0si8dqrmnw3jl4hh";source="1jmvglj1mv766cxzj6bnagrlby2z7w3gkpqls19ic2g9a154i62c";};
+luaotfload-68143={run="0qxjljd7b0r1h6qxmcl9k7rkpkfmcmppg3yy60ids37cf8sgvjpn";doc="0zw66fxxd02h39dhadp1i53nyp50kgcclkp3fgz5pi0njdm02azc";source="1jmvglj1mv766cxzj6bnagrlby2z7w3gkpqls19ic2g9a154i62c";};
 luapackageloader-54779={run="1ynqy88drl04ld2lycrpvjj3cxddmbycznfamhl1bmn01c1q9784";doc="1fn9kqab5hyvscjqmd34vxjkdcr7bapgw7w3ckwvlsslxrv22rfs";};
+luaplot-68918={run="1lsc02qnqw6p2qamx2754ywk95yilq8jvn3vzra425iy675gl7kg";doc="11xl1j11p52zxncgcmg1b8x7isixz4vissfxzppc6ndv5dvqk3aa";};
 luaprogtable-56113={run="16jmy3cvn7rmzf5i03x51yp5l90kmrdy0iqg8ji4z3xwrf0iq79x";doc="1d0k83dyiml9abnfc3b9l4n6w18lgm37bijr8xj3chyv04v85392";};
-luapstricks-65900={run="1qbdm79in0jlifww94kfl8f50bbj1qfvxwnaxkaja0z69sljkmrl";doc="0qixjp0a272h1sa7661skfqx9kazshwsdyq4v38gr4inr4cyc9ij";};
+luapstricks-67207={run="1pzhv15ins6km9kmlmfn6qwypncjdsnvrv0qfqnp4zkbdy0hjxmy";doc="0kpnnpq7njva8lrk9wdj0l27iwkq4vhg2w3crxvnfymnq094gklz";};
 luaquotes-65652={run="0cjikz6739jiqadp28zll72i58s20dm1i0q9kbd3q2y69l3l727r";doc="19597kvgz6ggjfzbdkg9f5rg9qag9mrq83v0xk2w6f2k0n179d5f";};
-luarandom-49419={run="08pmalwh5w1gih9f29crnwqx40x6npizpr8vnjmjfw3iy442gbhx";doc="0kgwqk2mh8c2hkv2x1gzl3a04q7azi0aqcv6ab3nf60ipmq81n1s";};
-luaset-65376={run="145lprp7lf46izmnmhnxja1qpr29imzx90fkl20bc4rbs6fkvsgr";doc="152k6zdgafvyis3zw413hrnpmq0xw5hks5irmiai2d35j34nqr80";};
+luarandom-68847={run="1qg41y50fmqq623wdc7rj17az8k2x0fwgjynq0f6213swx3nz3hd";doc="0lzrcg3vywprj6jksnwr2abd9qj1vcqqqk0fz9nrsrg3hphn6v0x";};
+luaset-68883={run="1cnc3pdysh2xa8jrjn6kx7lx1avpr6x11kcgyhbbzizraara656z";doc="0ynaizxiqh3lj1nnp8wcvd88z5jwpym2zcfvcp28nzwzhvvagccf";};
 luasseq-65511={run="1cxp3x3d346k7j6kh1bch4d83xb5ihb6h9jv8l98jcg0fp6zvy74";doc="1pxx09mvdn6pymsv7959bs5xm4568nzx78g8ikyj6hm00zqphaph";source="0h5zqaz5cvqgy5nghvazncwdxg6cmbv6sjlvp6f6mkgy2plpvbxg";};
-luatex-65866={run="0f93pzv8nvy3xpzkajrrp25gq9mi9mz8bmfpczl9z11ryrpnc246";doc="19ipndmd43zpc2bxnc3wsb8vqw068hiraijzlwvav7b662rbvrdv";};
+luatex-69182={run="0z08r0hjkcp51qzffqgf80df9445xiagi08cs3lyjfjn578z813b";doc="0cgml9jqd905jnwml4bwaqawplqp9ga0qnc4swkcvjmq3fkij8nf";};
 luatex85-41456={run="0ss7c5x0x7sx6lsn1iq6lyyp6w0xb1iy01s1f7zf7mlb9n1yzffi";doc="126y3priwz6anp8sj0296bnxd53lz20nchpxw74zphfpwrv4hzih";source="15bc8g0pgrkqpb8q2dhb6zml2d4jwrripih9898mmalsjixy62x7";};
 luatexbase-52663={run="1zrwz661gilr4iizcfsxwmfr9dgx7v28lypaslmvp3zaf52zl2q1";doc="118azb2x20gyaj42r5w0749dx8rzhhri1nz3szy9vv64h0fig603";source="0vsg8q5k8l66sy3d0bskr6cv1f95lnhap3b9yl754x7ynv272xcd";};
-luatexja-65790={run="0kahg0j2v8nqqlg789kdac1jd99lacr9gb5ilmyiwzhklhywxy8x";doc="1zag28s4drpkmb0zq6lg8hbmlbz54470k421r27lnsinbxvwa4h4";source="0y7vqwj3rpbhrr9z3if1p81k789sjgm5df973jsnbwd7mz4n53s9";};
-luatexko-64893={run="1q6i5mhyf4rl6idh7x3pk3yzr8367nw33vsyc2j69iki8nyp2syv";doc="1zqsn867rwxhd96jgq19vpncbkpc7716xid3hpwjwydbhc64760l";};
+luatexja-69245={run="04vjkw2pbm31zanh19lp54pjq6a12advq8mnpimlimy292kqvfqy";doc="0vwy9fr0qzk8zwl603mv3lfv2md22syk10mv3fp3axyjpchvba1h";source="0y7vqwj3rpbhrr9z3if1p81k789sjgm5df973jsnbwd7mz4n53s9";};
+luatexko-68243={run="0kr9i78a3dw18rfws0xxc7kjd4n61xgzjkdlzb83yls4fyxncz1h";doc="0k69i41pjfqifqjcjw4962yvvgwb07a46igvwb70xsrm8cxgkm20";};
 luatextra-20747={run="1dx2hc1md8csvb37lckxj4987zaldfd73c86y0ni8fzd4zg55s7z";doc="02dl0skcr30hh9wgm7bkdv5zvx3czcdkxv3zdqnasdk0b7r7mqh7";source="1yq5i4v2dxayhfzn1yw987i3zjm6gy4fqckx5kybzh8f6jr9167b";};
 luatodonotes-53825={run="15syf4k00shgi159j6ja182k24xhfw71zk167wwmy57y7kwm5cam";doc="1jcybpcd500lzkwa33zdmsq3svb9hrh8f56j4qgwm9cq4wb721f3";source="01km6y8ajgaaab9j1bdp4s8gj3iw5b7cfdl1yngp41ph22888aw2";};
-luatruthtable-64508={run="1wcj90gpgm5q6mg4brvgq5nmjs3wi61z9hvc5x23b1kickxd9lyq";doc="0qk093wa47z8mldhaq2rkhpkhx3f73p2i89ns66rvaidp0fpifs2";};
-luavlna-64142={run="08fzf9s8bpbc5030z88lj89s84d5ryciqk143afa0z8aa8r1wd0w";doc="1q9gkn7z48jd6h6mh6k4d0qwyq9b2ksyihraflkr9akmy88x9qbv";};
+luatruthtable-68893={run="0pkw1q5jw8id57mcz2sr1mb1lwafara5kzvq3yrkmqp8s9ml5ns4";doc="1i6nplzr640dik1rg668pai86vip0qgsfgizgbd7v4v7sjs24s76";};
+luavlna-67442={run="1hwbf0l2ydi2a5x05gcffw3p9yw8gvk4srihz7rsp6g7yf6qhzds";doc="0wirwf96b50m5wnhfiami8xiw9rr12mx20kp4wqc1bnihxg8l2si";};
 luaxml-60709={run="0w4c8sy0bjacrkfh3qb9rnv9ls5izzkma3fr6yd4zmwjzn09hh6j";doc="1giy76w9p3ribicsbwghh4ckrdijcfxnpyflv59ry0c9008xdrr8";};
-lutabulartools-65153={run="0faf62krjf2lwjizgnc6zrpkvi510pgbdg0wyl2v16qgb0gnrgl1";doc="124ys42c8l4ibs2drn8y4pps94n2010dqvyg8yjrqh8x08ga6h9l";};
-lwarp-66260={run="02aw4d9l0xq5ybx3iwwvb7iq3n2n754n09wjvnqj8flq1mw4wiwn";doc="1m49iccc1ma0rllw11vxak9x3kn8s76vp158ai280pmfspbqh6mc";source="046sd3l1kma119ams6ry4p95r7z556v8yyqjvacvc7z688jsj30a";};
+lutabulartools-67714={run="1vly69bgzq9pxapl7w1f7cppkx5yr5yyi1gxv0488m2z75522i8k";doc="0iyg0vqm675ak5j1ax46zwq9gcl58vr2r861085zzxicw4a1fh5i";};
+lwarp-69384={run="09zvwh3lk9lx3ah5ihv7n90898ahj054id6hyixj0ymcxmjibc14";doc="0dcqrgcyffj1rjf81fj4dc39syzr51ihkwlw41328i22rbaavkql";source="1605c281d4ap8wiyafvsi717yifksrbi9d3jcwrg75cvs9f9ayqa";};
 lxfonts-32354={run="1hl703cxwldq4ams7044m02bmnvm8vkym7xyz9cb8xkaqfyqp8cp";doc="1lfrcfpn9a260bx47nw6msvksjzqjqms5d31nprc800wk2vb8sf6";source="17j1kys5hrvkymba91kp8f1kq5vshc8blv5pm0m6yk6p4kdnfkyh";};
 ly1-63565={run="04g9labqzn9c10asy6nn5s6clqq2cnbhps9jf683qx5di1pabgp1";doc="0l2dqyxd005y9k8xpca04vyzbjxx6vzr7by1yz4qm1dkccnjprh1";};
-lyluatex-66280={run="0y1n2xjgyvima3f882axqgsxyf289vk8r2254svq4fjbjp11y3x1";doc="05k4i190gi43s54mrzcbcdwr4a4kiazckxqwa486kz98w3h45ccf";};
+lyluatex-66880={run="0zj0n5bgawhkw0c04crlkb2m8yabb0r49bysphgzabyl3rvd3i2s";doc="01x3xkqv2f8gvrsl0qj3d2y6bkzmzbphzxcqy6s0f4rp5yj3dw35";};
 m-tx-64182={run="1znv3xc5462jmm3ydrcnfj1nj7dld9f617xw3fl2gdwn083ivawh";doc="0svgf4a6rgisj614py6l9hm4ij7b4x75jn84s2ydbxzyv61bmmrd";};
 macrolist-60139={run="0yrgy9q7bjclww9crxzh3zhnbsmkjwncvvdm9nld2qfmg4spsis8";doc="1161aanidazgapb9vl3mm9j0j0jfiny9fx6il3gbyprw6j7k61ad";source="0b3hc75lwzk9l5nq804qbpmaxd9zlrybqdfyg9cavsvyjrjh87i8";};
 macros2e-64967={run="186qfgd6p825fjnwivvzvvpx1ydiiw4k4lkvs9gqvm5gmas7kcv1";doc="0faj1gxhrc1fsqniy56c35jjzmxbpgyc27ai6xipbdp8sjdqm6pa";};
@@ -2347,7 +2400,7 @@ magra-57373={run="02zwkxc94lzi5wf29wws8ia863ljq9bq9swkh8k8318v5z4dv5ig";doc="0q6
 mahjong-58896={run="02dkqs06dgp74963awkyj7w3in66h91hx5rycix61d0qz4qwrvqw";doc="0cxzzcngiz7796xzf0k1njchhw2p2m47kpw2fhrf1cqijwhw3jxb";source="0ygvmg8c6yp2mwlffr52jf5shl0qh26p0xlfkj39zzabd8jv2ay3";};
 mailing-15878={run="0x2mgcmfmppzqlwkg5jd1zfyvfdjnrvnk8glby93s5nvp6i6g8c1";doc="1aif16654381jcczmfn44k8v8x60clq94z4hcwjsqhai6s441hbr";source="1cx0pq1qmkn6k09x1r8mx7dmpwvdvprmvwj45p1k7mmfcvq2834d";};
 mailmerge-15878={run="06z9cb353sl9q6a7jbvwwdd0zk3kw5xmww0r3sjiqampxib19i9j";doc="1dk2a71x04nbc0rcmd3axhz8yikzlw9ab1nd5k1ki7pmclwkscdr";source="1qkmlfc2dvjhrh2xcypnp9wansxrb9wzvniwfb7sll2bxjcfbs8c";};
-make4ht-66131={run="0jk9xamxgyvwy77jv9iyg0z8bj1cy4cmswf6a8ydhcbpc2yyhcsn";doc="1vhcrpxdf1pc7qn5y3jirq01qni2i1jb9cmvghyy92kzfj88c93m";};
+make4ht-66130={run="0jk9xamxgyvwy77jv9iyg0z8bj1cy4cmswf6a8ydhcbpc2yyhcsn";doc="1vhcrpxdf1pc7qn5y3jirq01qni2i1jb9cmvghyy92kzfj88c93m";};
 makebarcode-15878={run="1ixhl4k89mng2dqfc0wa0fq52xpafp15gghnyx28d9j1163wxr7d";doc="088wkffs4b8y0clgcx1impzbxck8klm32dbf6p1jyc2vpi848irk";};
 makebase-41012={run="1nmlgv76zy1ajfzbdv7hizby3hhciw41s10hbnlbrfdl27w14dpp";doc="1vxwgjk3dj853qbvy2fyqzni2qkkjhslf17xvxskq97w8fcqr13j";source="1f8aliax01b9ir5wzk0bjhqzicl26xa63khx84s9haplh183qk2m";};
 makebox-15878={run="1v2xpiabjcgyi1d0ifpvzcll8y01lzs48bs19nalv37jw7hkrr4m";doc="078bz2pism9harcyb9lq8kkrkq984zx2ya47yhpqxnrd85kgcxfb";source="11gjpqmc6dzccv3yc539ki64hzpn8ns0zzjvanw7afbn5bkyrs91";};
@@ -2363,7 +2416,7 @@ makeplot-15878={run="0qp0qgcli40hd2dxgbd8fv9s03r81dlhh48pb8la9sh28qrb9i51";doc="
 maker-44823={run="1fymg22y0w2kghmqh5pgxkrncdcbbmhhxappc72g5q337hcky0xa";doc="1yz72c1ghqjs06nagngpp2q62gh67c3klwm73bcbc090vdfkw7mf";};
 makerobust-52811={run="0nm751w11p7cqg8ihckn338i6908kcn513644c6a1qc9rg847hlp";doc="0bidk4f0q6486vgwqvifzchkn0xi1l9j65yqwgcdnl3yg6vamqzw";};
 makeshape-28973={run="1fy1ccz3707f8wxilh95k8sc3a93gl93qcpvpxl833mbkamkx3kj";doc="17dnkldg0v2qp3hdy4bw1k48p8xx3v566pm088g8qb0df6kx4217";source="1yd3ssh3cpy54gm0nkp2ah0nqarbnk9hqw2kkwdf96dj8vjlsgwd";};
-mandi-61764={run="03xi7a33b2gmbgqikr40ncvnamacs3f72i55kfznfgxnk1v77ljc";doc="0k66660qc7ig2a8cicgcvvrjyiybw1idfb456i6jrsxs4c5vijfp";source="1a559lvi5lyss1vj2zcq2ajjhc1m3i1x867klzr7xgmcyq6iifky";};
+mandi-68950={run="0rmrsk3i2zrf48zv76jbfv7a71z5688lnq0gdla1x0ka51zfp11m";doc="1rfhbg00vbd5dbz6fi9zj0m2cfxwwycdc78qamrpxb51y3bb9giw";source="0vlw1wm8kmqx3zg4hyqcyvfvrch3pv0abvp06y48dxw2zkhbdmf9";};
 manfnt-54684={run="1fzfcvifh013xs6dm6xq2gpvmf3v0qn8scrbjj3yak2ba98bcy18";doc="15rs74sfnyq2k27bs3dvjiachwamima3q4vp0dp0ic95as2n61gp";source="1v3j47xa7k66dadz8dyy9gm3k4s6465zgqpzb320isjpb77p7r48";};
 manfnt-font-45777={run="1cdd2a3xj00bwsby9z5iz5f2iy2iwsjl35gcack9q83hacbf3ssb";};
 manuscript-36110={run="12r1b0hqs1kqdxvyg8lv8yrsdycfxs03j0lwfmlhbg6lmgz32pss";doc="10dczs60ncdk5z76w5jxgis9m9qilxp8xi53gixki4i82yd4l9va";source="08fpv1i9vz6fbf9vy48k6y45xz67kbqb5f30c8pxbvyzlicixdjk";};
@@ -2373,18 +2426,18 @@ marcellus-64451={run="13blr2k1vk0kwac3chplddaplsjacablkky68yq0wccdrxhbxvdr";doc=
 margbib-15878={run="114ifix2wa74ix9zz1ml9bpyd0pqzj2983h29n3h425yq98aiqs8";doc="01zam8vg63igvhdzf3gwgm3gjrnd23i8ra2cwdj4w44lcvapdlss";source="0qjpbhs7g4qdhna3kmlv4pg5fk0b3xwpwagyvnl91gn3q4aml4s6";};
 marginfit-48281={run="0x8ias8bv1zaavin929782cjvp7aw94r18lqvv10v3vgq20n7kjw";doc="1cj1fidjvvhhzn9fxbvyh75dfb78wxi83bdxnwbpc6rf3ax5bl03";source="0rrn2lrqg3a1yz6l88qkh8sljr18p1wx1vxyrzg04pzj21lw8kkh";};
 marginfix-55064={run="0arldbc20d1sncwanx3szam53yv1d5wxgihj8lm4jmda1858bmgy";doc="0kk9cghi0y1zfk6ya3pfs08npdy7v95i4db5a89v2177cd6z7a78";source="1k1384nxhiywlvyndnvhj6a35q433ddc019ckf8al2b1ngg13y0w";};
-marginnote-48383={run="1vyv2n265y8j8r9ch7h9qjhwlmlzmqx62gc4zzm4zxrk0mvigpa4";doc="1cl1xrb8d7dpr4mwa56664wdkabzx8zr8cn6kxcn9bgl543ka3bc";source="152bwxhnssj40rr72r6cfirvqbnc0h7xnagfrbz58v2xck53qhg1";};
-markdown-66261={run="0zbpykyk4ymrd293k8qr5hw4kl437y7ypbgh80ginl5z3is94fwd";doc="1dlhsa0sprxc8fkdkgc7rsx6icjd5wsa84bkif22biw47r7ywznk";source="0r9f21sc4hvr7gvv5d5i1g127yxzmkh0l0pgx86pqbac21b6yvhb";};
+marginnote-68204={run="1jg3f25jhdywqaxy4qimxr7x0kxjs279m7a3kf9lvyj6igcijml3";doc="1n1kswzhxdx7b47l4gf4cbihvzy54z24gg0sz4syvpy6nq23fs0b";source="15cl27n5q30i70ad91ajflrrcqb5wya1cb400jh82b9k7a6y8ych";};
+markdown-66954={run="1y6gqhcbp9z6wc39704x6mi69wlq3b9zkpbjf898545qi6l08s3a";doc="1y8l6y1wp72kjq4cymckyfywz8nz44rbyrw2bj81rp07i1vl3r3x";source="18s9206jpgwsg9b0k5gfnr9ighm882qcyc67ymardgb2v5hzpszz";};
 marvosym-29349={run="14i2alqxpz0imgdlx03gyg2nn56wrhlc0rziyx93h4ya9nz6xzbl";doc="0qyfyz8qfcchnf78r71fp5p16hmsrq6xf54g5mnwjb4p5ipbd9np";source="0vbiq807pazw2c1ck799w8sy3q8wcpb6smmq5qqw4nqcxzwsxk78";};
 matapli-62632={run="0r6xibqz726d68cli8izl20r4x2ncvrmlrjb711jz82qxbgs9kvg";doc="1cmyrnrijghjm15lhi2isza0dishbll3k4hpzq84jjjbcbs4gvyp";};
 matc3-29845={run="1mp6k50lm020xqrq2vwl9xyzr5jwp9p85c6ng3k22g4rqsxhrb3c";doc="17xh063gahp5m83vj6x8waqwvf4hrvg3wi80z70r94bag0nqqf2v";source="0pq4l1ays56ry5v3ig76h49kn7hdk1gi0wqx9b29vkdvzmzrmq02";};
 matc3mem-35773={run="1asybbjj93wpbcn577cqkbfi2bkiq2hzv5b2lqs31igawaa0vdhg";doc="1fgngv22falzvrsynzzj51jaf4gfcw88jwbljywixqb9xcg9igcm";source="03x6cm78yhgfljhcfrvn49favgf6h11w96s9agr96xmngzh4z40m";};
-match_parens-36270={run="0b0vq9lgr9xxwvzvlhlky7fg66r2y1qhikiywddkd06rmw71yvi1";doc="0i8dnjn5kfqhp51i255s3q2cd6jwzqy4rfdrhaxl15dhj4il9k7h";};
+match_parens-66681={run="1cp1qidfxnrhq5hia9z3nm4ij2g0v1rxs4g5fb8srmjpik10ss16";doc="0c5lcbkp4f7c8dx2nan6bv6cwicgk1520grbxs5k3r21sa2m9p8i";};
 math-into-latex-4-44131={doc="0k11j92h9hpxnyciczknhl83b05avc0rqdnwn82ssqi1k3qixibd";};
 mathabx-15878={run="0x0amwdxr6mh6j1m1q6wawljzjf1683xp1fxfqyxmsk0spx032mn";doc="107fimmxvfmdjdi1rlk0h0m88q1dbc9q1qwqhx1fwfjwdn62kvsi";};
 mathabx-type1-21129={run="026pnrn2y7zrl8qfhjv504bjk114z6kd6ich2ic97l5f3lhl9nj2";doc="172dhvsqql6fk2hfqcw19bxsqwqjfd7376a5wwzcvdgvx44s294v";};
 mathalpha-61089={run="12fsn6wsgixbpnay1szkmv16a2wfsl60nkcbyjksy1j06gr0yf5p";doc="0ryvikvngpgnqbcf5mp4g99cg0r72x53p7q6h333vd3s2qjah7x2";};
-mathastext-64930={run="0lwjqqbkjzgf8lwmzv41pygi81jr6a3v5lbw2ymkjlhm8lcjy0ip";doc="03spq8i9sq6lmnldrxkc785w5g0dnmfhww2ngpvz0l994j75q784";source="0m7sfb43lb7msfdf018pl5kmdv3fld57bs5g6fahsnq357jk5w79";};
+mathastext-69237={run="02zjad6562mfi1lvdv6ha0var1p4shgfq325c8x7dsrnl12v788m";doc="0r7f9m237crb9lw5yg5gq1d20113fq8zpcf0lpr9s4dix84lyvf4";source="1ghh502n227kwap1ij89xj0i6jc518dvdg2cbsi5zmqwz7m1snxk";};
 mathcommand-59512={run="1mp9g6q271ymx59rq9lkdaadi7dwz3p1d0qi1495rrn5d9fpccgy";doc="1bjky5x3bgrfmfripn3dmabg0bg02h6xpl3s6qncqgxs0bnfz2vs";source="08l3gbrxw3aa028820iv2l1r5alnvzd2wjx5fylxs9lhrwhbmq2b";};
 mathcomp-15878={run="0ciipbbi89n9aakg86czfmasfnx0k6rq7f8v0wkxk3zk2m441cb9";doc="16q0b81y748qnyc2gycrb3jhw1i5yphmf6rpivwikzpk2nrg3ndv";source="0xdivrbkhn1fh75ws54i2vxgx3xqaqkpfjir5q84vwxgmxfv4cja";};
 mathdesign-31639={run="0jd7xfwavfn4dsss35splcxrqj6qwk18jw7qgkwshpifp7m79l2v";doc="02fsi2hinjfcf4pb0r1d0r82s50734srpkk0i9c566zx3m52v2vf";};
@@ -2392,7 +2445,7 @@ mathdots-34301={run="1wbxvraw5lp77chgzslrrz022zgqn2fhmzk85cn7ggafip1hr9s1";doc="
 mathexam-15878={run="11rn665k5vg9w9rfgcp602v6cg659d4c22gikkgjpslc7bzrlrkh";doc="1lv8zdp1fajq1nms16v3nk7f0bc8az525nnjjjzags4rpl8wkzh8";source="1p0lalc0ny1zb8gc4bbg7z9pm6airbg63l1k0qqmwg10wvxpsjn9";};
 mathfam256-53519={run="0s97k46ysqvgs6a8aq5q8iwab390s90drd3g0ixd8zmv9a4hy1z2";doc="1zk42fsknkbzyx4m7xn3yjw9lrdvf6m7crnqsp1q7qb2nv3hn1br";};
 mathfixs-49547={run="1vvyka8kilv92hfsx8ahb200cl50kp1r4qdiaqgzkjag5kfxy1ka";doc="0gbh6yicv1mf0llfipqymy930zpq9jqc2ix2gfbjdh909l1y34rw";source="1k49pdi4kivk707i7fb2banj0qaqc5qx8zl2l8b41i6q2ir90a4i";};
-mathfont-65205={run="12qgmpv5mb0w138cqq522bxxiipxl57374dmj7hkxwffc309kvyi";doc="04nkvswa0xllh14h1iffdqbisvlmzbg9l10p0wc3bh115kcy89fx";source="00wm7bjn8ric0jccm08piz5z0azi2gyv7cqcwsxw3lcrmd8rb0ld";};
+mathfont-68241={run="1yh9rlhg8lk4a4haaxlyaa76ij0i6rb4zbk6kryp71ks6hyq7vny";doc="0wsmsimscrkxbyx1mkjlhkiv3xj66q8r2fiwk8bspx6zbdr7fwyq";source="1z7k0x9gcyls65mfgn30dhipqwfhn78hwx51gxvrn7z45w4h52di";};
 mathlig-54244={run="0pyaqwr2h9knxf1axi55vm6wr9xj15d5j5pagb2011k3b830f91b";};
 mathpartir-39864={run="1a934cglbiahnmqxjg2695rmp8fxlg3m19zka8ayc743ckv92prd";doc="1aw9sbhgca7hnshkd2vyzf5lrq2xql25mwp9qyishkzq9ayv7p13";source="0bn3zragwja3hh32fbrsdsswlf07a8i6qrpnv2c1c47m86xk3764";};
 mathpazo-52663={run="05j5qgq8fralghp5wkx6bha1cm59vha29ppq96nllq2k2nqhpi3d";doc="1z76cb473nb6r0vjjxjwiymnk9wsf7pnycc3ad3ba4vd3yl1827g";source="0lmyc1q7jswlhlzz4fd6ia407jj4pzi7wvmrcgfyw20j2nghfcgp";};
@@ -2410,7 +2463,7 @@ maze-65508={run="139hjw2asv21p0m7qrpi5liikgf68kmk9v214njh107gi3cjl59w";doc="0h1l
 mcaption-15878={run="0bfcl1swwgz83y4f80a1kydmxhdyqxld0d5cjfgxfhnn9dxp3wc9";doc="1afldwg6dghvkwd8gik8dmag4g2pb6ag3aks26qi0ygph05j9cwz";source="0i6sd9vm1pn9h570am4lkr2br81bhmqqwwvymb8r37xpmmp9yvsk";};
 mceinleger-15878={run="1a16g83g9wd5vdx70bq8zbr4hwm8fk46dpsna97r9fgh44n85pv9";doc="09z7srskh57mz055ywyxwg4zcx07vq36jdy8z9w6w74af4icpll9";};
 mcexam-60481={run="0ixgrxw0fzaqbkif05lvd3z6zlwhdlyhfb372b98ypyfp7f7v1mf";doc="0wi7zjiw93hv74scwz4w4prmy00x6n3ncwfrxjyxn2p7i2hkws6x";};
-mcf2graph-65666={doc="1pji3d2mllfi74kalvs11h7yy3hkm5g5nlmcpq2vn7cxjbaqk9sq";};
+mcf2graph-69281={doc="0v5pw5px77gnzfx5cbb818ql1gi2l48f62j0fk61iqav02svr4nn";};
 mcite-18173={run="18did9achsp32k7wq4q75a9q43jxdm8k40q41j242gndnkn8axw1";doc="1gdsa91a4snk3f22mh06mr811b1kb0vpi30ss84d3mrnsvd1p0ha";source="0q1bv5nx9xf6r1fvgnxb1x720dm0xqrqg3kya0504q8qb0kgxqfj";};
 mciteplus-31648={run="0xbk5zrd9mbk4xid03j7a0c96s311rb1vjawhvk5waqw9y6dn476";doc="15aldir7viryb2f8vi0a83vgbdwbp5gcdg0slhp6j6ka6xv7ayhs";};
 mcmthesis-57333={run="1pjllpvmqva7yk4zi4gl91blwbciw4f0fhq7rjc214iglyghl9fr";doc="0np4zsrlb5xxlwc37dldrcawd9ldmjqgq1qhbpdz639n3j4gmnq4";source="0acxvqka48id5fhr9p07qh01h44vhq3kapczr0i49pyn2ihibnyk";};
@@ -2426,8 +2479,9 @@ meetingmins-31878={run="0za2aqj7gbmxxdm3hqkq2sqkhl3c1q8a3s778hw164dfpi8jx85r";do
 membranecomputing-64627={run="0k8kgr6rlrgpmmylf3vjjjiyis49lm1r1hnvb2m2k3481gfj7zfz";doc="14hk6rw8fj040vwpqhqajlbzlp7g3c7szprssxx148j816fgi95c";};
 memdesign-48664={doc="0aij1b7l1kb2x44qn33m39k0kbhdrclmr25nmvzfn6yw42lh9fz7";};
 memexsupp-15878={run="0h3n1bnvyxr0ylg05fm819lzhzd7kbip5p5mr9kc5af8pd6yci9k";doc="04zwmw6varldbg5cxzk4bv8mbh80i9gdysfxpn1i4xb1la38b0bf";};
-memoir-65040={run="18870fzwf0klw8b4qxsixa5rh8hh13c02n04z39pcsm7s6dz7x74";doc="1rlmvfvngvp4vg5jz1x5pdgm4qi8djkml4p7mzgxygv28lh1r92r";source="06l2xi652c2k57qb6cidf8jddil1s8r5adkbr8sqq3nms097izrx";};
+memoir-68004={run="175f2przjgmmqz7c08f5v7rrz4w54q594blddj4n1372dxgg9fhm";doc="092mqw22np2ynr7g20192c4k8pcsg8qg9g3qx3k8kgds640afzxn";source="0xvs80sm4i9nnjll2i62g8gn4lkkbvpbhwzw40cpsg6n08hkihdc";};
 memoirchapterstyles-59766={doc="0jxd7sbh5vc3j5d5jd3zmyg58kwhy550l5z8q14b4msm00fp6z0a";};
+memoize-69285={run="0q797wprlvapf4a4wiwbkivh4hb80iyy6mj7q5hlwqqvpw1gw3lj";doc="0g4fyf723zv3rbwkxddvsxh22pqljra0g6r1lf7iz645501y7q94";source="1vmhr1skp49yb13pi7lgqn89wlp8xv7w3cj9zcfbw27xvn3x6235";};
 memory-30452={run="1zgfjz995jbji8hycizbp614dn0g13rimh9csgrga86f1ivgcpmx";doc="164nnsi25jk25p3kh54w2l8zk0rri50p0s9g4r5f50c3wzxi1g4h";source="0mhxxhiqq5miqskb6c4hmjdjki280yyin2dh0md59ai1aprgd4p7";};
 memorygraphs-49631={run="1ph43wp3h3pz5hh6dp3n6dzmmbn0fw11w3v2fjf6d07a73jqh97j";doc="1k8gppgv5kkx7i799mwc9iclp2rv9hgdk2bwnqcyc3j3rmnpyiwa";};
 mendex-doc-62914={run="0ab3hrln124gwvgsszd4l4jjrc705x3wbnmrrf27rx8p6fcwwrmw";doc="00m35j5wkcsyrgp0h8mf6cx30bjlhv23szmclpls70af2shcmzba";source="0sqp5s98lzdjnvpvw3hkvclrz98xzx6v7zrlag9m1im7k2ljlcvy";};
@@ -2438,16 +2492,16 @@ menucard-55643={run="13dirr45ysvi196wgsrdrcxspynzvrk88rdacrfq84l4imbsh683";doc="
 menukeys-64314={run="0039xx0qilmji8ch0i488hx5rnhf1brk6n5k0c7vg7jjs4xylq7v";doc="0a6fnclh6gd1n0f11dg23gykhsr399qmplq3a43wqqgichsn2k2l";source="1na3y08blykp1bs4bqrjx1lmmbiykfly00n5in8x6h0282q031i6";};
 mercatormap-56060={run="1gw28rgsdllh8h9cg70nayj12aqw356svv34lhvfj5b52y7ykabs";doc="0v9v54qz9m9hnfid2k9xl7fwgwhjxnk0g7wndxypd73b63mvfhpi";};
 merriweather-64452={run="00sy3iyqigbmjz7v6lf47f88mpjwgkbhrnp59x9xpaqwming9fp7";doc="0z3k1w905vlawv5lrmc55q637bfz17cjndlk4gh868gqv5j288v5";};
-messagepassing-63116={run="0kl0q70004m64ykpbh1ravkw4ywajkfaxq7gicb4y6kz7navzbzw";doc="1dll59aw1c88cfqp45hrqq0kfn1i4kj7252sns38wmblh54r6g0v";source="02dfkdjkjhw7pplc1n109rwxng2k2i2dfqw1v894r4x5whfjj76q";};
-metafont-62387={run="1kw37drhnk7qajmivvjwdrh5awns571wclv8b354zk71axf6cr35";doc="0nmmkwgbx32cpiq6bzr1namghqm7yyc2a7ghgsq90fii92vlq824";};
+messagepassing-69123={run="0r8qfwyip83mbvmfgvwrlypms90g4da0qf2ka26pki9r3cn9syvj";doc="0vicxdrd51gmk8627k7a1n83ldj0kgrzaxmwmg5y99n619pagxr3";source="1im9h7n2dpqdc8hlwf65m4ss8y9k28iaw29nf0pnlh6qabzqgl7x";};
+metafont-66186={run="1kw37drhnk7qajmivvjwdrh5awns571wclv8b354zk71axf6cr35";doc="14fwpwp4kf7x7amhxwjng2b5qgqarhrg1dhd7zds2xxmbipcnxga";};
 metafont-beginners-29803={doc="12hhvlnvh8dj1396242m6yi0341cina7sxrv7pwzqxzzahwdvmgm";};
 metago-15878={run="0km18bf69rf3rs42b0azc7i8bypy14201vk13yf5ahsypcjcgqns";doc="1bx240q75pq9v23gz82i26vrp7z4cb00f9nb3cvvknbndk8y7hy2";};
 metalogo-18611={run="03crm3sswv7mz5akghqvkq1zpiy9jdpy32ivwwmf14sfrrri2cz7";doc="08vgbmjhynb4ramaj68i27hpgijg51j80lm0qf1jrfpapz7lrzij";source="1ak8qbcbqgirljfwhq7ylxk1w2frxfkjvadjq00cclj007idr3x8";};
-metalogox-65448={run="00511x2mp991i2saykw9lai57dkkhq7rsz04691lragcqwpixkji";doc="13jixny6b529c1hvjav033wclz1z34mwgaay7rvnglgq9jv7m1qf";source="13nmr1swjpqzzdzb53v28h7na53fhlalp925vdd752lcq17idc5v";};
+metalogox-69401={run="01bz9kp73cyf89fjqq8dcyr4fi3n4h7m1gkwkhm78grxd2wghar3";doc="18vmy8xkxjm02jqnsza88z01n9qz28scm3mm4c00bd2y9a6ablzi";source="12cxqikvlk5vg7mgiisi97i4b4nwb49ymvrja43in89glh50ily7";};
 metanorma-55010={run="17vg55m4yj3xcfgvmm2kw8a81fblwykgnbcn65drll10b89wx6xp";doc="0z3mr4aw6gqdj4621dlghb4bsc5i44mlg81w81by98783fn4xdyl";};
 metaobj-15878={run="07p2r8975ps1ricqralyw2qz1zq5lmaaf50xqd68qwxmgrs3541z";doc="17kqa3h13p9vba6sa5s29v29gkm0zbm5wngb0zx1lxwkpkgqaqv5";};
 metaplot-15878={run="01blkf01b89a2f1c7fw6dbp49iw9qw94krv1hiqg7ckkj8j06sp8";doc="1fm27sy0zz3ppzz95bngipkq4m498g409igx4xcbkmqaghci1pin";};
-metapost-62387={run="1sk771ll9kv7sdrgg1xp8bmr1c0yd8g2g796pzyksfrjzbvs6fdn";doc="0sf5gwamaki67dblpnlld1jd3zy8kxcy48qfmmn003cs1zli5n6v";};
+metapost-66815={run="03ryd794cm4srjmq6x0vly4jav0w0j5p4yhvlqvsnkk1qil74nrv";doc="1ihf0m9p73k247mj90hns4afdqxz25yvfbmpxrbzi4w08q5rdxxk";};
 metapost-colorbrewer-48753={run="154yj9pmwlmdq91kw5xllqah7pkccayv8r1zgvlqgk472x66zrzf";doc="1y0ml5ldridhcg8k811dqq2dh4xsx48cwfkliygq0q1kkl34vdag";};
 metapost-examples-15878={doc="1rslyjnw27b5br17cbf6mjjkcgyr49yav4kw12spm3vdwyzb7gxr";};
 metastr-56246={run="0ci2qs1iyyn55zl6n12yn20xsff42dim744sjkxml7xad38vpnkz";doc="1jhvf4xngi5mjycbrbijn72p8anx15r1n6vh5hrjai95xp9jn88a";source="12rv9fayml2kjy7rmdh6d7g4xr2yg3r5ngky467y663p893nxk0w";};
@@ -2457,6 +2511,7 @@ metauml-49923={run="064cyc53izb7fqc6xfk7pygr2k7wqivx29rkxzrb7sakafwmnkq4";doc="1
 method-17485={run="1aafzyca2l34p8jxgdhwm54yw16znd1085lx58wrm2fjw727946k";doc="18sjh2kvy1f3c72w6k2m60jf60zbz7bz91xgq20wjigfagdmsqkd";source="0ckvvf1h80mlzyqbd12yagfl8hph9l7k35mghr1ri4k317sm3ls1";};
 metre-18489={run="0vfb01vwb6x5wf4sq5j1rrl3jpzw0mwfqy1jkkirxkhbim5gln25";doc="0zkr3wymlzxnk2n9h6nz65a1gsg0k4pfabdrkc15wfdn0yczicj1";source="15cvprv3zg5nfsd5l5sj2s2hgx5gljn1jqzgcr4lpadpans14pkx";};
 metrix-52323={run="11hcw66f3r4rvxy8h0znwgrdvlfvibc6j73pcdb3bvyywb3774gz";doc="0hx74wi8vf57ly8yrzdq6x5qm8l5gi9km4v0ma66i5v40i9jwgcf";source="0i0xzmhqbs91qpznbanlhrnqvgxc45llk0wwb4mfcvmj622d47bp";};
+metsymb-68175={run="0b306z77z64wzk5smm506xsv6jbr3y6ajwia12i06fdynx4jajp9";doc="01x1qms8mh1523vpc8ky87x2zc05m0gr31qwni60k3byx9zi9blw";source="1g4kviik4qg9scjp7mxaf3n6kzdm7z666iqpbyz6dmkgsrsph99n";};
 mex-58661={run="1azsp6n01qhph2my75r05sby7r3lsafydsxv8f5532dkb9r86p5a";doc="1nkr92d761c7yfb9aysni3ihidzw334w4180d6r15k1iwinrn2al";source="1nd7p7ssh79rrpv5i0z4246cv4wmjgy3by66bbrv7w2xhmh5819k";};
 mf2pt1-61217={run="17kjgjbjvwnh3cn4cky3qj4kaskiis4h2zxd0mmq5h87qs24zj9y";doc="0iwnr02wbh36q9nfj8jxc5d5kfc1wzap5gspix8n5rl3yzi9xgk4";};
 mfirstuc-64743={run="0bxy961jghqcyf4pkd3pvgri2dq56s0nnk42ar3vyha4lj0pp5cl";doc="03nfbjsk5yvjzn5p58rq2s8bn4a982vq7riqdj9glr480cmzbkq4";source="0i8wfvdjw1vmvngfj7mqpahx1c8gjigr4y51yhz2xsrxhlpih5jh";};
@@ -2467,45 +2522,47 @@ mfnfss-46036={run="1m0yza8nw5r3ph8k5nihgf93vf54cb0cnw4c5gkqy0rsd23hk4dd";doc="1p
 mfpic-28444={run="1r8xq6npgnlvcyimi0xlqmqa140p94m5x832x0nfm9d550l1zrgi";doc="07h8j6afl5sd7hz4gw0rkix1c39vdkg8376jgi7ypwvk1xr0wgp0";source="0ynnc1p2xihrwzfyg46dljbc2f28l152la8f2z2y5zfvd08ir49k";};
 mfpic4ode-17745={run="0jdqbdi2gqb1v4cqahwss1rj44iw0753cq262j8zmaarski351a0";doc="0sbsb9lysz6hysrpf9dfgm2zn5qcsv7aaf5llmy9kan0m4h84afm";source="0iya4y3msmyq468zj2msq93xpa01044kmnv4dspz1fmh0324iklm";};
 mftinc-15878={run="0yhw7zpmbc3780qm46p5sc2qq71s2vhmfmi3kqscck876h4935fy";doc="0yxpbp501d6vwsxpm83zjhypvz3xz51f91q414zxjvsy1cvvprr1";source="1zamx3658d8vaik5w30hvia5y0hp119vhvqhj4h5kkwnwmz8hs45";};
-mfware-62387={run="0kcz1gy17819w77sf0l9m5f6rw8dcapkdbvwaknnrmy50v0jfs1n";doc="1vwp99yl33agqrrnz555kd20wmsjpx7cs0cbdwp6dk5iqgw8v6yl";};
+mfware-66186={run="0kcz1gy17819w77sf0l9m5f6rw8dcapkdbvwaknnrmy50v0jfs1n";doc="0z3djvzs8l0w1j7h22hc19r2i49panw7m2lpp22lshxybsibr47y";};
 mgltex-63255={run="11xl6nw76hana2mdcq7m4h6kx6zx91apxcqkgjczcw9f7ip6m3cl";doc="1939pnggbc2vcvavilcssf6i9j36ysv8k93f0bz1rgn2krja2d22";source="1pdlxf2qfyzm3pjjpl0wir4sr255lqnspbsvxfy7wz78aii2ik5y";};
 mhchem-61456={run="07dnb38z8p5a46fp8rx3nqhqni0lwg48wzi2bc2nxb4yb0wlcfai";doc="13b1yc9zi2kblrmmlrg43arxg45g7y2l8kd2sq64jys2nw7sq17n";};
 mhequ-64978={run="0zyp8x8qxjq3z6b8dm3pgls4z9cr03qiqxlf6d55ylnqmdd68w68";doc="081mavy3495k4ciqvxd3hzkb2bs7m0s5jm8lx01z85p568bw5268";};
 mi-solns-49651={run="1bv7gr2wa11cbsznz414x35n5yy5jw7q9kngnb2h5y73v8bnzvc6";doc="1byfb723572whq315zwybwm1bcvcn49km80gn5bi081gy81r75hw";source="12xrddxlrngjnk0yk35spk886yd9p3nnz6jrp51dfzw1xz6pkivr";};
 miama-54512={run="0138r1yrv1880nmcpgcgb80nzd29xchm09s8wxb53j71q0vvdswh";doc="0dd32q8clxgkd7cdk0699fzplnib4waydx9y9i33lxxwjkfnfsbl";source="14d7ryxz6q17jn94wlj5vf2hzif6i08yjbxh5z7pdcgrnl035gxj";};
-microtype-66590={run="0hwwx5qzp55pvnb1c2h0ia8wp7gm4pniagb2wvg6dz5l4hja3fj5";doc="1bqr4ggi96wbmrd75mfnymkplnbwscizmf7kkfhd29jz5hl5x2x8";source="17gdym7f8851w06y0h4hdz7s9967i6x9awhqgw0i4fi0fafmyiz0";};
+microtype-66587={run="0hwwx5qzp55pvnb1c2h0ia8wp7gm4pniagb2wvg6dz5l4hja3fj5";doc="1bqr4ggi96wbmrd75mfnymkplnbwscizmf7kkfhd29jz5hl5x2x8";source="17gdym7f8851w06y0h4hdz7s9967i6x9awhqgw0i4fi0fafmyiz0";};
 microtype-de-54080={doc="069d2f0jcg9m4fv8dli2dr9ags9gz6mkwy6fzz37ns4jzrqfsvwi";};
 midnight-15878={run="05hzxlzr19snz16sddzpyh5f7vvs6jcdsqyqvqga17rr8y04sdwz";doc="1ky8k2ys88n6hn2q9v9gr71g772gm5zvxlbzmibvajq0hhqm41l8";};
 midpage-17484={run="0hh4r2sgdgzm0nryzqymd66a7hr74rvcsn58y7dc7di6mhikrysn";doc="0jfw5wd6qbxhf90mpi8fmv0nbazkbg9h65z91613j1ynqqf0087y";};
 miller-18789={run="1nk31l9g231c3dk70fqph444z9x5rdjy6g7wazy4ygl3q4gfh6fj";doc="1vvxnbbjn325y9s5h7qp6v2z1xy6wwppwqv6iwdak7mf47gww2gf";source="0jpyvjpaqz1x5avqy1dzf22qwss7ksbp917ncmgjdxhj82jhy2d7";};
 milog-41610={run="0v5rxsa182n28dzd3l3y4qdsz6rinv3r6p94iy73r26j7jgsqd5d";doc="04z8ya5gba7f5q86ch57zqbiz81s62hpdbn7b8jmkyy953g5l8vb";};
-milsymb-54361={run="04r9xbgsc8w783zf8nn5d6c5fiwmzhlqdw5a36wk7l9ll2rvbvgd";doc="14wj7l4bykfy8nsayl105g61xc8zvnrvd13mbcd1qv9x5j8vvp4d";};
+milsymb-66697={run="0m2rgn3am1idrpmjply52v2s8frxgbdr80gxiy69fdk2psqh6lcf";doc="0cvy530713p15r8kd8rb34rvmryk5mkz7f519b9jzgl2i5kcsadx";};
 mindflow-65236={run="1i5a3jnyi07sp6zz3cyyyyp8gbimy7ypvxsg9220cyws2z65d7zm";doc="13qpcy8bwywvn0yv8qsi1wmwzlhw3yawg5dnb97mkj607cj7bzhz";source="02amv0fn4jk7k4x7ammi1n5y8c7b18hjs93mm6zs1pxsvxzc0j6f";};
 minibox-30914={run="0r94l5sy4n97p895xk33ir3dli1ngy3p67w2d3i7f6hi6czvykm2";doc="0bzd55wkdxw8spw4706nj0sk478zbnvq9cnkpid638cwb6csb21c";source="1dm8p6rjivm0xxa7px5dvsnrqs48zwn2kiq3vr6gdqmiy0ld1v93";};
 minidocument-43752={run="1mrzcxa59kpmrkhnnv08z7h48bj74gk2b0q3bvhmvddd6047yxwy";doc="0dl4l8skhz7fm23mpmgmy593f34w78mm5qwab5bc41sg0xc0lyy3";source="1n0qf2r1mjp8vx3s750fw5h2q51pp3qxf90gds8bzq2cv6mi61sv";};
 minifp-32559={run="1vpq8mh443hhmnf5cgj37jm362m90zdhm55jzqh1x84dadqpmivf";doc="08f3hp3knyc37a2fy87i11q62dlb35ri197gxm3ghl5h28zvzpfb";source="1l837v8c70s8x1xn4xhag6nkfpayamgzk95fb23qw23xpf6zp2wv";};
-minim-66396={run="16nv9vgr49ixq01ai74wv744x3pzpr3b3wv7qcdcw4pwq8hp97s4";doc="082zlxjrvxrpgxpih8127iygm44wrmhlpl2hxm2ayvq5wckizyva";};
+minim-69352={run="0ny85fr9921mdx8kprbq9q2w431g33yyi2zadbw1p19xsng4xy0v";doc="0lv17nf3lvll2bb777xkd5d0mpkrd2ixhqn32448ilczxqp71qcb";};
 minim-hatching-62395={run="0raih3zsaxpas4myf4m0bmdxqm1av62cldjs4z768nndkv6xl1iw";doc="0bngn9d24w77dxi1s7ad87gi27m48d4jr2j51cpmmagfdvlqnfsi";};
-minim-math-66396={run="07hfmdq9gqk7nynic8yn9yp67g09h8pj24l9iabqxihvzhcqj2v8";doc="0xabrj2xc7vd3ic379pmbnc3rfs4c4j2fq87r8ynx1zbd30xpiif";};
-minim-mp-66396={run="1i6g9ll873gipb70jgbxr4gsi3fg1jvams8iknjsgx048algk08r";doc="0m8gvdnf0bpih2f8vmp2ixpxmmsngd3zj6zyqvk5823dax64148w";};
-minim-pdf-66396={run="0cb6yv165zvg665hh09sc87v4v45zc8jgqf8waiik08x8a1p71mr";doc="09nm0qs5a27jcx6g27112vvw6bwwir87xpygc6s111vij3vk0x0z";};
-minim-xmp-66396={run="104w7599qfvynh0l0hvm88nh0mq2zr4hzgjmnmf9f4as3ab28z25";doc="15z2r82mabdahgv6wbrap2pyqa9clhnq4al3qbyg1ks77pj00izp";};
-minimalist-66447={run="1gbv41z0kzfg43qvll1mq6ri92fjz2al52sxffmn963vwkl5awzd";doc="15x329zawlajh05lxx2gk7nngk7g4mas80qvigawkc6psixqi01r";};
+minim-math-69352={run="1fa8a3jq51wm23ivmb5n6hrcbyxcmhb95x08n4lmhw6x6qsr0hj7";doc="1dpilbyr9hdik1lp5lm860hjk7ni9adwn3dw82pasiipqvy8qzcf";};
+minim-mp-69352={run="16cb8sqfw625nx2zw0qclskw30zp13c5hcgza80ghvvmmd4ixpvr";doc="0nmg25mmk30q15vpzzpmiwc0lwkk7qnx5dx57bp7wfq5w08jc8df";};
+minim-pdf-69352={run="03b8awx6kg2j49485arlzaz73kx1bp73iq9mp5fh0jj45hxvls5a";doc="0qjwpff43h3a02v4qsk4p2v995kqp049n4qg0nd0g4hx6y5gi2l5";};
+minim-xmp-69352={run="1pyf6qisnkh1600ha6605if690715qprhwrakygq71gl0ak9xl00";doc="0vyhvy71ajr2d4dii4kp2inyihra85xvmqjs1fzz1am5hbqqmc7l";};
+minimalist-68552={run="17fpzv3x25gkr9z62mycd1pnv7fqp5hj22ax1qy236ckc02abc5y";doc="11656mg8gcbj480sy5z4avrw95f2ihm4b5n1a1s9qdaq2i6y97rz";};
 minipage-marginpar-15878={run="1qpymibkrwdbyf2rlvfjj0g8agxisd2ym3xi7lzx3g953g5whg5r";doc="06rivjd4x8mdpzv9h1yzkjbs317jvxa78zbv1kzyia7fps74wi1b";source="13k27b7avz3v2jadjh84w74rsyh4gz2x22b8j5lv6yvrjnwv09f6";};
 miniplot-17483={run="1hl5nd6p9c1xhm1kpw9sh1s81ymdy8lxfn7wh1sdvildcvclvd4q";doc="068s76gnva6rsnd7gfwswxfam56dbiw9s9ymqr2hcqx7i4dl87x4";};
 minitoc-61719={run="0v80ga66rg4cgifmyfa5vq52v5wz48lj4js0ym9197x2w98ra6ry";doc="07dah8lz54ccvrgigrvgcmbj76ppxaismbllfwyxcgkrkvqzxqkj";};
 minorrevision-32165={run="1mcgql832xmgpcwha6l0d282mhyva6xmyf75gbb6inwbgg6qkv9m";doc="0x9lw8xzmnn015n9hyzajnl9gicafj06gr2msk6vxwk136ayqfiy";};
-minted-65252={run="0mfammsz8hfcli0c5z99jsf4jsl7kxv2ykppm88x12g79rf164l8";doc="0pdc0gnidqc9f8cz8q8gfiv4y9r398n19f82agmdw1q19zibcfg0";source="10fqhx36xwgy62nvb4yc62andzxw667scsyff1kl1kqxrp6jc14l";};
+minted-69163={run="0ksd9lcaqvpncs236vczpsxq1ymx7xxhwpqix4n7yidzyypxnbix";doc="03305wk872gh9c3pish93spfxnvpawcbfjb1gbpbrnjvnkcq92jq";source="177whv7b60pmz0a2r178dw76s4bqixn0zpmr8g3c91gd3q07amdc";};
 mintspirit-64461={run="19jvqcydiwwq3kv5bq6524wsynj52b8mqm3j3wn108z7rhnampg5";doc="0mwrnf6q3h82qnxk9gy9ns12k9lr61z92vmlyx2x745i8ra7b551";};
 minutes-42186={run="0yc7dkvbn0g7gm07h9r62ma3aagbgparrlamh462a9ckdc7jzivp";doc="1m8blswmxhcm2ya966ajknx9arz3yh1sn62wnyxls220af3401ss";source="12qvfyiscs3y1wk3r2mdq7vgkmz1ldsbg3wz4agib97lc30qqmif";};
-mismath-66400={run="1hzw4v0my4ajg4v4l4mfk5gbg1w1c9amml2a43syasirrbdnkird";doc="07qsn69rzvnhwck1cmznpdz52nwh7025m6yhw3iz70ibw9pcbdzn";source="1f16dsz5qvqjypidwifq0hilhkzjni128is5s34hh9vim9jidxnn";};
+mismath-69169={run="0ryb4s3gz7c7q6ya8k6jj3pcvj8x8nvvwzlqydf2lr3c7aj6k8ij";doc="12v70qldkhfachvs05mygq6hzpxyvkshwrncnd7s88r8hizbjlpk";source="1s1l6zr9n9c3g8a0icwd8rha5rpqrhqakmqfwj89z29drjiliwhh";};
 missaali-61719={run="13y2dm6phd9c77j3rajvz4qma2h2k4nwhb520j3mm98bgmbkphf7";doc="16487s0ijkk6va22rhhyhxdqik863n1i25p0f67gcb8xp1s5l1wk";};
+mitthesis-68732={run="15z072l5qzmnn09awr9gazikc60h9f3z061qh0fy3j15gr3sw81d";doc="02b0bi0kycfm5x7z2xnbphamzm0xrlfvqsk0c01ni0gjf65j9f9m";};
 mkgrkindex-26313={run="01db35xmg9583hkr9bpflr6rj8bmvidaqahpvkr38bks21466sxz";doc="04p2xaycwszq5dp8s2h6gdm36l800ipvigblkm8m58bgycm553fw";};
 mkjobtexmf-29725={run="19nxq3k9jf4bypk2al38n6igpca369lxqcn3da8cm8c3m511nsmm";doc="042a29h6sq9mpy6chfkl6893zcpb3gd3gsl60xfwglivib706qwz";source="0q2i2xgpnjcx8qdkk47q7v0lmjdv88jjvl7zcybnhcaa9km8f9na";};
 mkpattern-15878={run="061y05sa0a12x23f68g7rinllkggjfghgmrq2qnan34f1ind1g36";doc="0b3ahrhxmm6lwijc7kgvn0k17fm9rkp7i754zrhfj7w4xgq6i50f";};
 mkpic-33700={run="0sib2pckayb4i7lxga35rkxvy05ix6idifcqrlcbmddfix3djrzp";doc="11pj8q1zvblsc2dyd68a0nri9zpqzrp9a6lha5dk91a2aygzaf87";};
 mla-paper-54080={run="0yzfqb3x58qzw5lcyw3f6c3xyd98zx7zmz9j2rmv42r5wj1g668p";doc="0kzi1gnla04shaiysrgyz4ak3l96h11shkrxcj0hbav43ndj2xhl";};
-mlacls-60508={run="1i6zkzy0xp0zpi6drq512pil4gxyw96sgsfx9vz45rzc7jvpbbh6";doc="1wsysqqv00fdcd7v26i5840g1hlrxdnnzznh1yz7yj3pwz40b0f8";source="03m5mqpn7bq0dzynwdmhxs207617aplvbc5ra1da7wifnaradlsa";};
+mlacls-67201={run="1i6zkzy0xp0zpi6drq512pil4gxyw96sgsfx9vz45rzc7jvpbbh6";doc="1wsysqqv00fdcd7v26i5840g1hlrxdnnzznh1yz7yj3pwz40b0f8";source="03m5mqpn7bq0dzynwdmhxs207617aplvbc5ra1da7wifnaradlsa";};
+mlawriter-67558={run="188kwakrn0ca1njpkgyq6z1x97ky8imxqgpyy9axcsm2wmzhmf4v";doc="0h1302wyl24ilvba68f8pjwhndmqn9n0h3nxr5ifhk01m8359nr1";};
 mleftright-53021={run="14lvlhhjj50v31lgf7ywk5dx7d5gbnivssl15qzpa6s619q2h6l7";doc="13vvfx4wxvf5liv641lwdm3hdba31rfrwsmirl36qwbrqsrl8xic";source="004ficd5chakwcklbdx83qp3985s1imlz5knc7f3m51zxgr4lmw5";};
 mlist-15878={run="044pjvbyabzqashbzag37ymqa9mr0c1qg3p7rb1j91r0y5s8ra8d";doc="1vlxzzg6f3jmcmp8fjn58gciywc2qgw9v1kxpm7qr3vlv40pdb13";source="0jim2g5qc9cdks4r3yi67hhszx3kkh26hhc0zgm2kx9syhdjv057";};
 mlmodern-57458={run="16f5cpczawzx4p44svpzy205l9m9g06w8r0554cgdpqdbwr139fx";doc="1rqb0g16wj7jg65xm0rk68cfz9r00zwy4r73wbkn0fqrchg08yn8";};
@@ -2513,13 +2570,13 @@ mltex-62145={run="0j5282big4df396xvk2xaasl7cwnjn2sa14xj22xgzvrz3hr4dvj";doc="13c
 mluexercise-56927={run="1yhgp5cidpkh4ihz20d1p445q370bh25jwc8ikqdq6g1qnf8sdv8";doc="0xcifm779nln96bmx0kvkmnzc9yk2314yc6nn98wm7gqdw2bf21s";source="0mq8fa0vd762q2h981mj6is4d5vry2qgggbbmffvmfb4h76z5gh2";};
 mmap-15878={run="19hnkczxhxcr7pa7880mfgjfhjwiyl2yxhfz67dsrljqsfpi19nl";doc="1f861w6clfn3k8gc6piil6bq6admbyr4kxqnkw8hh29s63rdn76j";};
 mnotes-63406={run="1jmkh3bpgqc1lw4q7s57n9p10wjhflck0lqrjxjni4qaqxhg02d0";doc="05kgkxjhizwpnz60r9kjlwqzv66lxc4fj1wh0199fkn1pyyjdrcg";source="1xpdyv0l87mb3af5iw06823iajk2dgv2dg0298nvzm8jj3ip6851";};
-mnras-55729={run="18pjsph7xpdvmnpq098vv4gl69k27ad7yxxsb60945zhgw9yjrk0";doc="1ml220k5md4hpj6lcmx297pbmdbyp1dj1j9vb55dcl5ypc6jr3sy";};
+mnras-68878={run="003pbz6wg81ymv082vxd7dzf37c08ym2s63c91yxvldn93p795n6";doc="19mgjg8yisia0jdgvwq0jdg0hj8qpzl393x0w0vkls8s82j2jc7y";};
 mnsymbol-18651={run="08b0ypa29zkbch5isk39bbakg76yp5g7w4caahphdljkqy4k27zd";doc="0pv7717qcjd5ps6vnlmxk1bqvkhi9lx6j92i6ggnak8i1izd75fw";source="15ksx2lxxyklg4dcckm82hysin9r2v7pa3v8gjns4wabj4hx7v4m";};
-modeles-factures-belges-assocs-50010={run="06n2871v6jx29r8qjgcpg4h3qbnc6kw24kfk2f08wbc2rg2xdkxn";doc="1509xrny3xvy7nii0v1rga8ip18g8bv3d6vf8a3qn0cayfa9p248";};
+modeles-factures-belges-assocs-67840={run="06n2871v6jx29r8qjgcpg4h3qbnc6kw24kfk2f08wbc2rg2xdkxn";doc="1509xrny3xvy7nii0v1rga8ip18g8bv3d6vf8a3qn0cayfa9p248";};
 moderncv-62128={run="1icns5fym56yp1wymsf50cl1wh1vc9vdix7lxapp18prx3y3kf0s";doc="1sj75g51dx8yd13ywyyhs8r135pgg5jv1h0zshxsdpj7b7hbdxf1";};
 modernposter-47269={run="1qc422hbqiyy6b539r7kyrshcja58mifdvs3bva1ikdxanxhnaq1";doc="1z9b3fanm97c3ik1q6v06qfwrgqcqwyi79h5dlhcnpwsm5dxqj0s";};
 moderntimeline-55518={run="10alhs944akmqfslqzi09436mmnjz8nm85r8jpjwpfcx28vfdwnh";doc="1bnz01q5rib9gr724gq6saxvzpg3lfmimh14rw5fn0fcn9bxlwsl";source="0y2kfxcpacslpn1ly6anv0hlil2x6wlsi37w9b8hj7xfx95qh51r";};
-modes-61719={run="0xg6jpyxni3r3fl6r7iq1vz97pp1w3gh8ccp7w5k51igs3dpvcvv";doc="1lgmgg6hhq5h3zgpc9vrbb6j0pif03cjs6gwj20df8md69hzr184";};
+modes-69113={run="05xf7g14jgs8whl3jirb2aww93mq7l64vddx68kl8wqc43j87v89";doc="0xpl3y1na7ldb3yjp808nywpg7fqf0v2mwc8rlv3jzpq6lnqyjb6";};
 modiagram-56886={run="1d3sz2yxc1n3xk6haja2yz14jgcl15pp21y985h7dflk2yjflabx";doc="1a42ylnkigyvvkk0yrxcpypz1qlki9r4jzpy6lpky0fa6bfbl4yc";};
 modref-15878={run="0pd0qd9yjhvdl3icrgl40lgyjsgahjw1jgc2ah75bfcwj02qm4v1";doc="0caqpnyg5gbv3b6336w59nn0w9ic4p12f5ig2n7r6kg8ydhp53d8";source="0n28d6x8w9rh3hah7p1imairyyywssajg7zwssp03dla0xlgxrql";};
 modroman-29803={run="17ijrx7f87pbkwbyjwigz3jr85fwzq6rr0pz1591fk9i36jhjaal";doc="044v0nkz0h1c7xsb66kmpqvr5gg4lg1qkx1x2qm9ijdpsbc4zsng";source="15xy8jpp2ac07qq0nl3nskpv62c59xb8qkl51irvpb0m01d97y39";};
@@ -2535,29 +2592,31 @@ morefloats-37927={run="0zdlkd53zl0y69d3manicnd8ch8qls6jxgr4mncqg5r57lqp10kd";doc
 morehype-38815={run="1yssb0c3l0sqyv775mjnbba3wv1h6497x125li68q8iwjc529wdr";doc="14s0bvxj2fjrkcrdp576c0ka1appg9g4ri4mc2isfb73yc6bmgh0";source="1sljhzy05akipng9lfajapvdm8jf2jf50v1awl38ld0wfkdqvcdq";};
 moresize-17513={run="07vq0wf250ixhrg70vdvaz7zh33zaq5sm32ka8qh1ab590c8w7h8";doc="1qa9y7q1wi7f9klziwgj6dw9c7bh453srljsx9m106nbyd1cvnpr";source="1gzj5bh16afgl8dg5z44h7d4m79i5naj4wl09m17x6snvfz7ifah";};
 moreverb-22126={run="14srw73gbfr0c3miizzs1rml2ms504hkv970p4dhp1wpk8ywc5f3";doc="0bp2lmzbd3zxqhijfqc7im10476xc50yc8amh0vf017ll7prcmjh";source="1snpyn7bc4qbmamxybv1j1h407fp597m26v2jq6yzijszfanh3rq";};
-morewrites-49531={run="1b6pfqhqn3hadnkb28kcl9k5hc7mynbk1ik7njicrbxwlx3qqm5y";doc="1iqmxgzvrhmfmf6jmc5dckziwzvk1ygyzbr94sp0209x11sw9fb2";source="03dd4cv0x0lw4xbzqpv26nm5q2bn50wbjjgiqnif2wg2smfap9sw";};
+morewrites-69306={run="0ia2cklwyp7avg1sncr7qj60qmlhc4zvmmlp8xjb8xp5vgn6jgy0";doc="0xnbybiycp23g754ys39nmak8hfi30q10ga0liaghhykyap2nisy";source="0cx05ra3n66jgx21dkq3ixwf3vmyfb6kswvgg9m1rn6c2vi8902f";};
 morisawa-46946={run="19b8nzkwdnqk61p1fc7yygjlrdimawmbam18akphcm70qx2h01dj";doc="1y218bablhn06njs5zqmsl6jvvsgyihm4il1x9722pqvvyxxf9q0";source="1flrf2c2jxpq33g26i0m2h63yd5jfy9bdh80idpx1m6bi6hhq7ac";};
+movement-arrows-67270={run="01kbaxy2wyzxla01gbxlwj5i28ahak3xgm7f8myv5d6p0s6by0cz";doc="00v14fnh2crcmnnkdj7dxjidlxl16iq3nfygx8igas1nbyni7xfj";};
 movie15-26473={run="1x48h56mw1pzllzz5b8fx5ikhp08gx9jybdn7qk3jvfy13a4r5yr";doc="0bhyfgsjwmvvl7lnam0k254w2rzn01wf5gzn38ymmlcbw4ajkkxl";};
 mp3d-29349={run="18wgwwvh2vj1adbvbl1q6lh0wy0cynfvrx6cgq0m5nqps7b3idra";doc="032ywwjrv21ypnlidvn95dcnq179pdiail86s4nxxllkjrryc2db";};
 mparhack-59066={run="068wp9vk6ablq8mhj165k2r6lg1llk1i8gyj71ha2kcsq62v4a0x";doc="1cs2ypwz4wkb3rs71wichmd8zc89vj4r58srqzmriwkjplhaw3p3";source="17c1pq9mqn0gaffawg66wwd2n9cd31gghlvmrpn9m9z6xcdm0ipa";};
 mparrows-39729={run="1hmbpfw1wn13zp8dksnlc86vb19zs0dbwx9hy0sbiyfmb7hidznc";doc="0ly0sw1c6i3k5nh26a260qw27x6rmv5p2zs11yh5076ziwdxnnlj";};
 mpattern-15878={run="045sji1qqwalvmiinqkfm3x4rk2jc7m9nya48brcc0rc5icq7xqn";doc="05b9pr86yy3hl14jymk4g4mf6f5v85b4nv2bc68m02dflvm4wnsj";};
+mpchess-67704={run="16wykynx5m3xdjnr9mfdqhq4yn4rw8cf7314cd05hf87i4r5vzwh";doc="08c4kwznib00895wwsv8npfjxvwhxv7hk58vh189b49jjbcddds6";};
 mpcolornames-23252={run="0bg59x762rfsl3whzqdpajakjnnx5jbh55m73dw23id1g7cs5rsx";doc="1n78abrsj5xj1gd2psgph7x4dm8nscvwmlp6ijz5p6xgphgqs5bf";source="0q74zsx3ni8bzl0k1iwrr19k7f9vkwqfm0bp24m91wlzvh4vlk7r";};
 mpfonts-54512={run="1z5ws1kr5s07xwcs39w049yvhfwadybjxb32kf9qd8818pgd4zkc";doc="1hjy2jqm8mlrwiipl4f1rp10nya3zcy2vsyibhs7f280h4zhdwxz";};
 mpgraphics-29776={run="0ymwcn16n44y47ngdsyb0vvfp9vjnwixhxk67z6ni5d19f23jqli";doc="0q04yj9j9f9j9rndqn9k95jwjm41g1rf5raqlrr1cn14bax0lr4p";source="1hacfhb2dbflvmg0c1lif1hmhxkj3g6j1mdlb3wm43zczgaavnmm";};
 mpman-ru-15878={doc="1x3drpi21zcmkhkscvl4l7805wskqa4zskydb33i0asss5p62396";};
 mpostinl-49559={run="01p16dzg5izjgd64l4qgrhx0dm99hp5lrn9v2rlghs8m249fwmv8";doc="1a1rhz5q1i69bi1blvwzz404h7mgjkjcp9c07dd8w6xri304gi1s";source="18rfna80lz3zrf7wynr8zdbiv36k2n6a8wd430r81ybr9233dhxp";};
-mptopdf-65471={run="1r7m71i3cnyf3q5nlg6c3ialw6vmch48sgf0flmd63y6n21zjsi9";doc="1ydpkqn183z751n5dbp8p3bn44kpdnigf87i521s9d3j46x0ac1y";};
-mptrees-60929={run="1dg0q6icha1yrlih9r1wzz6p8bqjw31bpfs6rnivkhb95nykl7rp";doc="1f0f1j99aj46f9sd8kjs0kkpcrqib19gh4k7v114vvkgbjlvykjm";};
+mptopdf-69363={run="1l2182idlbzci9kjpii0zg3c7fpmzf02dz5kg2zcv529mjwwv91f";doc="0q9jlvall8mf9j2zky41bhpz09yi061rfpkpd0arj346ah5w9nni";};
+mptrees-66952={run="0smqvznscn6a220syvg0cj4dbf65r2gy6fz0f4wmfh88l83fy0lv";doc="0sv029k1wi76hw4h3169m9mq1vd6wrjfvk0y9k7xb1zw5da1d83c";};
 ms-57473={run="0km07va23z5vzx87ndrv9mj0fq4yw0kv7qygd59smhm4q71yspkl";doc="122xwapvjzv9qyh3p1884bzdpalvqzzkmzd18gqr3q3r4cmk2q20";source="1myxaybppzkdl14h4g12xcp57zqjzkzijryv9nd6hy6ggl9y8i99";};
-msc-63291={run="08rw5drivv1frf7c3r0pfy3slp1sz3hzw4gl55vcjyh2b58v9qz1";doc="1qwrg7gwmigwpf9mhmrv25r3785z3nf7i5fh2q4y2pyn2x8l3bp5";};
+msc-67718={run="08rw5drivv1frf7c3r0pfy3slp1sz3hzw4gl55vcjyh2b58v9qz1";doc="1qwrg7gwmigwpf9mhmrv25r3785z3nf7i5fh2q4y2pyn2x8l3bp5";};
 msg-49578={run="1g418z3slb3cjf0wzgwgv0zkq0jnj647zqh6iqvlv42r7bil9001";doc="0miycfpf7s74jz831kqbh6qlkkzq31l1x0fkf9d04b8zp26mzilp";source="18djwd3g50ys4ckgzc3dp0y344qy86ni327jmyz3lpnqai8w1c8w";};
 mslapa-54080={run="0ayfh1yv1a8wsq9qldgcmvq9d12sxwaa7df5p3bhsp0klbqf7pzz";doc="1hiag2x2br0c0qpmm347cyxmi58mwg2x0lyqfakm87f68lbbxdq5";};
-msu-thesis-65462={run="016f7cwkpz1d5hayifp9zfsvlbjc6ans4npxgjwm9gjllblqc1kw";doc="1fifb54bm3mb8rw48fq88di0pqmswpm83ws9j1fjawp71izhfzfz";};
+msu-thesis-68480={run="1g6xxc39rvqbypd1njgcx0zxzrncsvrfnk3jqlbcaqxkym9qdvhi";doc="0b2dbp162hg610jcag8cg88ykckl4xj9gsmpzsrxxh8hmqv36g7p";};
 mtgreek-17967={run="17k0lvghiw4milj4cnf6wjhsj7c1banw550dvlw9spv60lccvqqz";doc="1qkl09lkdl9z6lm5hkn5c2xry7xd0f0ijx6xnyq3l6q99cnbafzq";source="13h8knsfbl91g20gxjw3c0m6j33wh4zkmm32ybfvzlm8q7nf2lhh";};
 mucproc-43445={run="06x3hqdp6d6nm3n296wnj4j4w93cwgjpz0nlw5qj0z44zlghs483";doc="0y33jak5lzhjp4v5d4pzfj7jlrr87dl6wdnkqcc0p9fr4fd2h1z1";source="0xzv1m01rj74gg188snznshir510lj5myckfjx7am6sxwlfni63i";};
 mugsthesis-64259={run="19bsplm3qclalplvsybvrgyk9wikr06cgr9zv1av6dp8djmz60mg";doc="0md9p75r8m677pgfiqm30y7nkixa77a244l58fcmj87i3j8jhx3r";source="0zx4npm8qzw4vxxi2fr7ylazga1mmsaq5r0kj9v614iybjg31733";};
-muling-61719={run="1y69g2f37fppvgasy06w40v8yg6aqgacfjynz0azfw409xm3b7av";doc="09i58z3268k20ifc4rp9lf9mcpaqvd0gza19l3m1vg8r4x049fw2";source="1awvkpd1flh3l938dclwfv819f8iqnqhkfwrqmkq0nbq8n9l929q";};
+muling-66741={run="05bhyl75w3qmji5s8n6mv85yjhq5nrgncnqshdv9fbzbgcnk7a97";doc="1fpsblzyxy0kf5vs4lnxdq11nkj7d9vw6a3vzyas6dqrlb370vzx";source="1m1yawp0wm3zafjwlpv6m010ih0gb24q8v2h94d5l2w2ymkyx2sb";};
 multenum-21775={run="1jn6xqrc31zzaj9yk244g3sbi8fj2klswbg24fkclgj0cjr1xi5j";doc="1pnjjbfwgy6ksdl76n9iiqla2wl0qa4370n49h4xy3rmrnbjmdqs";};
 multiaudience-60688={run="1pc03jhvlq35zzjsx6sq6bgzsp2mh861wqbazrgp7ilni1bqhqsx";doc="1ja9zphh154n7wwhqgl4xj4as17ag8mnr65k0wf2npjrir7rfqgf";source="04hpd3zsf24vwas726jq231p462dlb9fq01gx4z8wg3zcczn0agd";};
 multibbl-15878={run="1aj6j8rp94mh210pdwd9d4a5s5z9v5f36wpylwjv4v2ghmyrgyap";doc="0r4hnp4sgpx9x0hmrl3qlw55xlchav3r8sym2vnv4sqjnx4dc740";source="1c7cvjabssssy8wq6x6lr909zq4f0bkhdzx1x37n3rxm2ngdqpbs";};
@@ -2576,10 +2635,10 @@ multiple-choice-63722={run="17w8sc4gki7zlwkg1vqrmqrd9id6hdjf3kcvyavbmnrisri95hl5
 multirow-58396={run="0bsn4xzliq9gllmac4wqqsnws9slywc0d94abh81awpzv6vy8jwj";doc="070q5s39pfdq5wiq7crhdqhcyjalpd8kydig4djgji975b0xn0bk";source="08q074bixnkvn7hsi1n8vx0r6pqwwkdjsjnxz0n3lam30x4j1jib";};
 munich-15878={run="1dns8n2xybkf1m3j82adid2nr8ngvg5nnlxr5ky8ha706bmz1lra";doc="0dzwmrv636nca34b39mpxyhh99sr3s5k2rkj7jwms2knlfn81djm";};
 musical-54758={run="0rn4b1m1c58phyj9zzvyxdxbilma1bnncscwmxc8sdgb9iiwmlzm";doc="022s1z7d5ins4gpklg9hadlp1gqxpr6862i1g4wp036db0457l78";};
-musicography-66119={run="00kc6wq05k3vz07dn2hchq1fgnvmkj4as52v19jjqzakp3a7j8fk";doc="0b43y731m3h29j9b9mjijrjs3hf430cc9big7b4jqcvm0kaxsq6z";};
+musicography-68220={run="04vwhhd6mlk79bk5nblrdb6vlv2n2r1s9dfx752p3vj584w2mdmr";doc="1144kbjzybzfcxqbwlcfnk4wvqm7kw01slf9pzpb5jqagwrq12sv";};
 musikui-47472={run="0z2ya761bf0n7l45dqkc626s9d66qwr810fnwf34lr1876y3sfyi";doc="09sdb98m3j5wkl4p7hdpdrnrr0l25ni46nlhkhg1g54hdggcpjb9";};
 musixguit-21649={run="02cz225x5s3spj0wf9c51ka0i1ysmcrvlpa2b8vxd59f4pwz36am";doc="1g8hay5rdkpa4pjj0lj5gfs7xmqwzmzxnc8k023ahlz38gdczgnz";};
-musixtex-65519={run="00lbc9vzbd423f56ig6m5n6npprnz5zbmrnjxq58msfbra272199";doc="1hrwqiyglrryzdn54in9yz31c6wj4kdncsgz57w2p1x4rg8wmfw3";source="0ari7nwxlyj0lnqhzcpq4vh9xn0kdzqn9c1a5ih5hp1q2zwx2m7l";};
+musixtex-68484={run="06anc6izks564xxia4l67qazr25whyxq897762f7hk0a1pvfw9ha";doc="1xmnf612wfgxbf7rgm020jcvavqpnahad1sx4bnjcm1kapbxh19r";source="0ari7nwxlyj0lnqhzcpq4vh9xn0kdzqn9c1a5ih5hp1q2zwx2m7l";};
 musixtex-fonts-65517={run="1bq3nw6zig0grmmgnz7n84cvxasq61h2mmvm1j6mnyv69yhssm2s";doc="1pqr7h0r7cr2clzn5x74r2z78rlbczxmdwc7bkpb5a0k002cc9ga";};
 musixtnt-40307={run="0g2y52s0151br5vr7hjv5dfcyr96cjxp4n9ya3s1jj81q6q01jjq";doc="1y933975hv5vzwrgjizq315bkgnhlky21blv9kbnzf6kadic8ys7";};
 musuos-24857={run="0hfrgx3lk7mf9kzf6n8hswzh116pmllx0k3djbfinvvvhnqy972s";doc="0zxdnzd8x42z5fpvkarhsvdw3x4bz6qppn0iyjff1fjzwl8q8dzh";source="0igksc3i5ydqps0g172i2hkb854bnkf7xh4jqvwlimrlnhs7nnkk";};
@@ -2596,7 +2655,7 @@ mynsfc-60280={run="1zc7lgr1i0g5rszh9gzcv7fs98mk06ms5flb3iv2zww0w9r7iy0i";doc="01
 na-box-45130={run="08xixk2hl5w876x6hmp6h044spi0qw1qbgrqklwrmkxkgpa27i3s";doc="0i1p5f2nchl9hyrkc6s3hsqcvmyxsi4dbwyr0mph8slhw2rzl711";};
 na-position-55559={run="1amvifgadhq73avh1dq9mj2v4s5r3hlr6a3z4wcbhw32jd31ncbx";doc="0pcn0r0p0z7lxyfsvcnl9skm5aa5xi6362vydpx9kv8m11gl7pjb";};
 nag-24741={run="1l31y7mr00s6md7a68cz51yv0qfd26xaj04ax1ph6dqc97r3fv1w";doc="0gc56zgva7kziny3ridswnp8rscqi1mg51d8x580pidb11mp7dw2";source="1fh9nfjbkvw907ra1crqfhm7hl4k703g80w3c8qvd18r86wmn2i4";};
-naive-ebnf-66029={run="14vm282d65pahq1j2g98fvfnp293kdqxc5yfdhipdviv4kfmgvga";doc="12yhz1rhis11kmnqjag9z46qg35chaszqpah2fvzc3ssbjaxmbmk";source="0vvgc2ymhsv4j7ppnkd32mb8p6lqnpy7qyvkiqqwn1s6x3v9cndv";};
+naive-ebnf-67892={run="0hw3ra8cmmr79ii1l57z68kqxqjfwq1szl4fg1wykrh9cnca1bn3";doc="1i3h4328sczm3hv5claypc0qfymdmbygr4w6zankb3x0nzrgk9sm";source="0z2df8frslvvaqjsl6js5pwwnhjqkj52dnrvgbygvdhnkpkp5yix";};
 nameauth-65738={run="1zahfi4vsv4s43p1bvrbcd330i4z6x4pf3yy7vwbjdfgzmq39nx8";doc="0map4kf3r0pydsllp1fggcj9z9rir3ipnx7dz2g5asw99dj4dlz0";source="1w3qladdlwhxx7yzsjl17p0ykswg4phri0wadni4s953s04l1i3j";};
 namedef-55881={run="06nr8bwymbc3ps7whpxnsnbnl1fayz36hlgcy5isg0gcx8bdspfh";doc="080m0d24cish4an6p4q7rcrqpr2r1yvwvzk431nszhm39h7d8z80";source="03kg4zv07ch01n0nc7qwk99n32ifwf89z2976wg5k12yq51prplh";};
 namedtensor-65346={run="0jvcqdqnvnjm9z1jcdsa86cvv4f4hq94yi6r688j2sny2700q7a4";doc="0cjbz9g2b8cg2wm97vdgwpqby0jbc5l2d7j2cwx0j571hchlijim";};
@@ -2623,17 +2682,17 @@ neuralnetwork-31500={run="0rhvhk46z3wgz5w7xrbmlmgk2px8mvajbrrj4ygpqa58g37wl0v7";
 nevelok-39029={run="0c4zij8ihx3mz615jr4z150d61mj4ln88zrdbsjx9hlnandqkij1";doc="1x7jwmp32f1wph9k03q6ly9nbmdpsrkhyvn5j83n1fj6nj6hmzqf";source="15di74y4h7qgjh7gmmaingbg71jrlaiz1qxf960589k2xshslbi4";};
 newcastle-bst-62856={run="1qzr66mjmdkvrgy5lcv0yv82vx4vygxwa7m8lj6crsffwyaxaxkw";doc="0crwyc9r5zqz412j45c7qh43wkdj2z7rfrmmc510746b9nm31l13";};
 newcommand-18704={doc="1vlxm26393psl4kjfh533q03sb4klnfq84nld9ggs8l5x08dks58";};
-newcomputermodern-66338={run="0wwm937vg3shmy1dky3ax3xil0n1g0zbr64w7j0kxx7d73bik3w6";doc="1pidd7l6yr5g6nkjwzpwdchbz2pqw5hbvq66i0n9v8hd993rnm15";};
+newcomputermodern-69379={run="1p35sffk1hnffhqfpb13n0qam0f002yp2g987vqm9p4970fzgs0y";doc="1n2hamvbjgjnqw03vrml6k5rw2njf31fz219h20j82k29k42mmsb";};
 newenviron-29331={run="0vij59qibxvl81r367yxfl4mgp8fjzd99x3aq008hwh3g1d8ciaq";doc="1nvra7lh4zvxy70hf4ndj4nl3ij3ar8g2fxrc0951qvixz9jx7mm";};
 newfile-15878={run="0gah9qbkpib651rjfrakzldi4wd7gv74y8j455n1yi6wnr0yq570";doc="0vqlij71kfjzbl08sh38rzs9k714xigjc1cdvvpj2m6bhimazp76";source="0sw9cqids994lscbjif8h7npp4cmzrhrcvccspag2aa78gsvz04i";};
-newfloat-52906={run="01l6gl8hjml0q2kf3wzdnypr96ib3dryspgqd6hhfg33h26dji5d";doc="0lagdv0hd7kjxf221a2vzpgskvfr2h2wcdps0l90ycr48g9s1j68";source="151qai42ssn1ngn4fqi7098hmfb9v858bkbxh0qrszawhrz4w5q4";};
+newfloat-68434={run="1jhaccf7ppi5m5jycz77s5nldbmscydzbd2db8bmb0qx3z858m48";doc="11712zqy292xs7i4xvrrv948i6l1bwjxsgax7hph9hjfqs086rmq";source="018msda5vgamyn1lmq63rwv58h9z49q4rd09l7slij14djxwgdb6";};
 newlfm-15878={run="12mryj5w7dpn0mdv91grkrd24n2pn68p54bl70bg3pddvz5ab6gy";doc="0afpxw78vijnhx2rwv94ar6x4ivcrgz7873vdc5n4dafgg18z78s";source="0z081mn0zf92ana2v99sdyyqjz4lqnm2ymndp76xwih9p1z8233s";};
-newpax-64415={run="0l7pfbh0cm3giafn2wljwqjlp1nk7xncmmcvzs7jxzcsnkrzhnda";doc="12jmi9a9xndwcvniwnsf1gpa9aadx4k5z98qgm9l75fbrl7wwbf9";source="0mxc91hfljjzmby0r13d5isjk3i36rfgkfjmf6nfmwylcgjzh8zd";};
-newpx-61806={run="030mw0wr5gs2kvamyjm4w3chnd9f0yf9979byrg5qhmr31f72n5c";doc="1bcdwr79kaiib555mzmgglcdxgv28nk7hvnnrzcawkkqmkqh57v2";};
+newpax-68762={run="0dn36fqqwwa6jzcpznrjd7fk2mkzd37mpvyicif0dc7g125whndc";doc="0jcx3lvc1ay9b2dmj9f1kd7kxmyql95dn4xw4syp45ivqsag3p0a";source="0i7ilsx73lcifvzcffjp3n1swwv1af6l3qwn46mykxyv8c1ygjsr";};
+newpx-69380={run="0rcggz9vf7w0vvkba2d5dg2zmyq5px0wb5xzc0scvdn4bgn1cjnk";doc="04hsww1gwp04nwjq7ns08bi73yyy35l2k3dx4akr8kvr16inn6sr";source="0larcp5lk303p8bryaihfdvzacbkzmx4kldira7k42sg31p5hlbj";};
 newsletr-15878={run="0hl73l6cv94g9k4qnldxad6nl56n9c1r9rkwh2c38sr31d6fn8z5";doc="15bd97zlny5p212naaig42li7ki3f9bfr9b5pqk0vhbf17pik9za";};
 newspaper-15878={run="1afj267dlvgcw8028b4c0v9rdj77w47zjgpk0grbapy7wjgpyjb2";doc="12hlji06sd7bvw7r664cg8ijxabc2q1rb7z516ph18ayjl5vca82";source="1h8abnmiai3c66cjndm6xawz00z1pfmgwlp6w43amjrk1rm4r5vm";};
-newtx-62369={run="0ah3pmxi99z8b7sv8xhjlnwj9l5pqh2p8m6vbbscgacpv9a3w9w9";doc="004rgsavjy3n5221az47wj2h1v1y76pjsxp0kv6n6wgv6j42zk9i";};
-newtxsf-59227={run="1gb2q7pdgdggdxmi0v3878fmnyf8cd0q8vhk12nzga4dkpjxahmq";doc="1yx8np1xcq2h9ddpg9j47gjx9zz9i16d607lr710z3alb8ddarij";};
+newtx-69381={run="1cwaaax209k8196h90q0n0blkb638047hqzprv5lrzjx5sa8xafy";doc="0zzqswva33n8d306g5znq4zyhppqqygc04krc4wzn2wm2jjh9sxp";};
+newtxsf-67051={run="1si13s0wcgb8smy9lb277y11iy8pwcngvlqann31f8znkp8rk1dh";doc="0f76vjwqa1c1bn7yzfcy47k1f8kp5y878mm9ry3m2glsscixr9bi";};
 newtxtt-54512={run="1rydma1iqcb7k8ihyhpgdbrq4vpsy2dwyij2pr5p3bbmsc60kc42";doc="12mvwqmpb1hyn3l98z74qhyqzkinzw4q4f4q0mx1z586238q4klj";};
 newunicodechar-47382={run="1zr5w047xqg9bi6drl2rw414m9bzpa5r7n5270zr8k8jj74xcv7x";doc="11vk77c83xy40i9vclw4v1h5wnr03mb77fa8s2lhi0p4sq0c3vgr";source="060kbd07al8cwns5877ap7irpf3r3bkw0w62cwvl67y03gcmgr70";};
 newvbtm-23996={run="0d9q6mvczacdxykp381181mnra49qa0y0mngr0dnqp24hfw9j9l6";doc="0k6j4xpvjwwvz8cipgrqvrs2dj66n7yzlr9mcfsgd5w6rm1p1h4i";source="1p3g9qyq4x0ffv68501zlpf1w0ffm816pa0wqjpqf8pz2jmgcg5y";};
@@ -2642,8 +2701,8 @@ nextpage-15878={run="1p9dvw7fqspkg6hk6rdmsb5k5m9mkj0kz5a47wg5dgfqgrqpixf8";};
 nfssext-cfr-43640={run="1qp85vnmzsn967iqvzsf7yzsq1a4zxvyim7r0xb8pncak805fs61";doc="1jac2k7nldxq11rcf53glb5y3haqdsxzzxmgmvyzhbrzmnx0bsms";};
 nicefilelist-65842={run="1pjpffkhwfrayh6a5l57j0szaz63cn83mw53v17ibxk8dj4ls0d4";doc="0dqpx0kkgj4vcfvlyl96mllpn3kqz8qh2476kpfw0imrp8klsq7b";source="0q740bd8igcdy11nmpn61sb1yy1kfypvif2s62ym80p89qf8v74c";};
 niceframe-36086={run="047y9dh0p51lyrrq5fkvp4dpiszvf2nmx53hccl8hzgr2bs3kbwi";doc="14fapa38pffkj1hs58b7r1zkjn3dql9d98jzh13cybyfynd5crjp";source="095frb90nryk4m2iia4sq3kfrcfg2k3nq079770xlp720zqy07rc";};
-niceframe-type1-44671={run="0lcah795iqxkmdkr46gk76fypawz1mwiw3nxvgvbx9wrsdfccxy0";doc="0prjzgj1fg71kf38asq8622l6yjvn1pn6am1nxkwrpfmn3bmn76n";};
-nicematrix-66465={run="1fiz0knbw33adjh9i2wh7bk9kynz156xfjy48j2pr2nrzaclkwyi";doc="0gpa7lwrn1f94z8g1lh3mxwprq9wp005ahlqaj9ssxmfvlz9rdsp";source="18irk6n5y7kvzczlbnfgqsdw27b8jp0bn4k6s8vhrv2cghi4yniz";};
+niceframe-type1-68091={run="0p219ccyqcpf51q71185manybxsxc89d1crxxwqs96n9ppn7xb0z";doc="0a3xh5akhxcrk440wa6zwm7cf4yd1smis4pf4gd3cjv3rlkli79s";};
+nicematrix-69275={run="0n3zif8inxfxvzm7g751439afyjcxqzca4p4gffxj5apw5ccjdf3";doc="1xrvwf25qffjjc8xkkqgrfzq1fl0hchqy9db28kps6l0xj1bdn23";source="1v5x3ry9n6954p8nmjnnmqsqipyrf17fmkd7yn7kahppwc431zr4";};
 nicetext-38914={run="0aqfg8phvhlgvyy71flqsaqwmmc6lsl9vsxpxd61v69hp2qhvggh";doc="0c078pfiw1nz11krcgwbdlp2brdy2xmq6rda9yahfjjg54xgdbg5";source="112ji0zwy54nqswil8lvvcrq0ai7jsmdagvf2786zg9n14h5kr75";};
 nidanfloat-48295={run="15l4rdj7bk1279xjjkgh9a7scfmm6w88civ48shh7gwx8gsvcscb";doc="06ccf5yhrqvshj3d8ic3pbnvmdpjxq54i57y3141wgqcj5h062dp";source="04q480lddynb2gqz8azmyik8170vl056fhfjsnq8ydqj0rchnnqi";};
 nih-15878={run="1rlhnhdz58qqjv563wjpp11ppyqa5smjpzjdzfcra0wd6cxv9384";doc="16klyjxzxj4mipql71admicnzlnasnv9hb5pl52wyk4ic8ggdgwh";};
@@ -2653,27 +2712,29 @@ nimsticks-64118={run="0h87j3i80slsi5nc5299jvslhr1m3hb8hvs9mwz400b76k4x3ig0";doc=
 ninecolors-62006={run="0qvjykxzl9154wbiybwpv4j9da5vyvw2r14hkg9cvyqqd0fn7g3p";doc="14dmp0cm8hbjrd14szkcvkrff3l7shk4k9zlzx6hzkpmjc9qkl0w";};
 njurepo-50492={run="070jmqsm9caidgc0n1cmcj2v0x8dlxxwv54hcqkrisaf4nlkyyk1";doc="04hg7gxg0nplqpmmagqynnddxv12qadamjy3rj1sxhwxgjma9c5f";source="08fan5igmdc43s82s1adq7ymxpvahnp08f90p3p4qlqanj41yh65";};
 njustthesis-62451={run="1ar359ssgan8pk72bbvd4lp2yg63ww6g2ymbjlxbv63qh6czvqrr";doc="0s7dwmmhpb4qr2nnzr7jjh1zfk5fcvk51nxrf7i7ikq8jss0ic7s";source="12lq39rhj0z6msdpshagqylknn31dd2pl6ymk1lfagm2bq8mvx30";};
-njuthesis-65546={run="1psizvdympcv2xl8s8f8ld3hb2n8x26c10nq38x4ghnpqjvpbbal";doc="1v2by2by6vrjqrajqaxm0aba77vv84w98jxr06ils44rhygxxrls";source="0bzddlr990s6qs7xgwnsm4b5gybbffr0xpdz7fii651kq2cq8wha";};
+njuthesis-69051={run="07lvgl75ynq4fljq8h1pkd3jq4v6zaigqga3mwrhnd880igzk961";doc="02npr4q5ywrvzp8a20mvligfpd0w5wb5w24lx64i9qviid1vrdi3";source="10ggn8dvk6ldsbjqvvixslrzlhg95hfmqjd9ybb890xq3zmc7zca";};
 njuvisual-65261={run="0qgifkahh13dkc07dx32i3hn03rd14pkajg0yw7wx8l0la6nxsy1";doc="15nyzfqsrsvmqg39vidycw3agdy9yhgj7wlfjw649lykbwbqqlif";source="03ywgbapxldv05azn0s5xh9c7a7imq9qwxg90969as3fy5cjbl98";};
 nkarta-16437={run="0mhi640hsr7dy7jbvkqq2yl224i9ialf01jkcma0cq527nvrnm3f";doc="0bqix170zf7lgiv11v4mqyq3iva707zv91z154bi71cvnlknbkns";source="0f6m2wz1cd99s4nxppzdq9jm1hg02xzswgm85dmi18jffgrd2chp";};
 nl-interval-58328={run="1lrj178yhmd4ajwvpdlbsr97sg39k39b8n30wib0ww2lagyw6rgq";doc="0b439r5r8zzhgd5k0n1bzag3naxs2bjd6hlm3sw60viq8fs5wgy0";};
-nlctdoc-64708={run="0s64ifakmmx3szc80sb8pw2gvzspmgkzxwlq3z0p6w6v33fi9v67";doc="0xkdhpnk7b11nx01hkywcvds7w2z5hpj0zaszl55nhyqckw3b36m";};
+nlctdoc-68448={run="0rqlbsfwhan0hnxvadw5m77ny65fn0i12mrhwmvr83fm9ybp9q7p";doc="1yh4il6lq6hawxy00v3bfz6piryawsf7aia101knls0nb1ifrjan";};
 nmbib-37984={run="0kmrgd4w63x0f5j5l624j53mhivc7wllzi346c3ny7by6h7mh8in";doc="0fzg9jm7hd3zx5naf487xxfyg2yg0w9wmc60265av5v97qkghirx";source="1m3pnml7wdk0p6vqiyxssqi7rz0vkcvbd2z63wqy28r78w9js34x";};
 nndraw-59674={run="0gffz4kfyz81yg1cv7sgs5zr5a5kaay1pmac5q6v7v89w0bf8089";doc="12yj7gym7kzacwxjx5df3ssf97wrrnsm75z2c1j20srr30sz1cwg";source="1y29n03z9gxwy0gjzm6b5da0cqwg0bzm26cxlrz9551qk8nis9sb";};
 nnext-56575={run="0vf53wnrjday1q3hrplqklfp5kg57ibyjiijqw0jc074gzhyw0z7";doc="1rxxrnm8vb274c9l6lki1bxd6pij92klryigd40wwwwxzh8fc10r";source="1w3p9ig1jivwyy9rlbzfgcy82h3wlj2ig3rdlaq9k9fx8vd6znah";};
 noconflict-30140={run="1flkwyz36xycq4aidj9v6ga29ghbww8ss5dkz4lzsr96nv38q78r";doc="1v3q7xbss5ra1dizg2mz66zq97cfsv5lgnd136xqbbmn5vphl0dj";};
-nodetree-65298={run="01jx5g0kzlxidji4sihj81rb38sbhpiyg4ydi6n6daym4l727ywj";doc="015mlqj96gylzml2kjvwx03bis28b4f3igf9170yxv1v9qn3iyrf";source="149ga4ih26c4zhdw51s557kxc21ssm74vinwm3iar9zdj66g486q";};
+nodetree-68244={run="1d02cgh8vy6nq90ndx6yy907x8kispwxjcxy1smdjd35308hhxjw";doc="173jz2ihpnwp7bdhq2j6nxkmsabrg9mib185pyz5v55cyh45whlw";source="150iq6m7yvb94qzgj9c290s5wkc0sp06zbmc8kn42wdqz2b5wqh8";};
 noindentafter-59195={run="1gp4zyqwq07f85qp703iwsa0351yp49zyjrzrhfidw456whhl3a7";doc="0is88wpryqdd179fvhjkvq6qy4inz0sp8a7j1i90iziadkf4rchx";source="145bfg8qz8m64x6p2kzkz6skzkdi9jc82q77zr50xms9565bhf4l";};
 noitcrul-15878={run="1whs120vlg4cdjmb1x363g92ira9nc8j2h65qnvwv8qrmh2hrwnp";doc="0y3j12rb8ks8sjs1ikw3sccq7p7zmixc10nhdy9yg9rzwcgmicva";source="1dsjxs73xf79sjq9xynnv78jws1j39l240lvcvpir1k8vnzwfa13";};
 nolbreaks-26786={run="15qa4nf5c9gl3ha4prajqxl2p1ks6fpql03d52prm9vqkwphzgyy";doc="1h9n7ki3iznbzq519cliw03fcn2k40f2rldjkhnp5vlzma81inh3";};
 nomencl-61029={run="14225s3b27dmdgkjqyh4fqcwyyaahva0sk3k6nvffl6jjqdwsgkp";doc="0vqxxjlvgaa31mjfl6jv0azfh7qv0g341i27s6k9zz35a7dwqaq3";source="0fxfan0s0y1i30rg2mwxl21ymfknh4cnw8za13mx34wvaxmc4l9l";};
 nomentbl-16549={run="08jvfyn4vd8qwlnbsqhlxnwnl4qv5b8r32slcbfwshc4kyi2hn9a";doc="0g48qyrrj6npsjcnnzn3mgsmd5fq4v5vzzsgxvvx9x15446987cm";source="10b41ax3ynpdbn9bawkp43whqjkygh8f2p6qdjiwa47w1acca8zh";};
+non-decimal-units-68504={run="14ry0yyvs4d77vp3ghvfaw1vwc8j0jacn3p3vbb65pjzmgjxabdf";doc="1hkpmg9vg8gr6chb8qri06vfdnyw22abp11d1lap8l8xv40c3las";};
 nonfloat-17598={run="1ay9s9xrf27sgan2gan86g68i91rwa8spmmj2l13pb3zl5qikw66";doc="0jjil5rbxzcpkyid8y5dahab2ca9r77sw2scgrc4mf2h4nhrjfyz";source="0vyvpxyrqjqmlw2fj4b9avy7sn79m4q8gcbgzdkzzp8d0rng5i8s";};
 nonumonpart-22114={run="0dyf0nl16j7vp955g64rbvvjyqq31x5iv7dbkh8cikwvgn9g85s5";doc="06j6sc8q18mnnnpbj57ykays69n78z0iz1r3vink7qaw4a8fbyba";source="0p3gicf0fzmk0f7lblydf31pi9x0f6x0k5rvdd2ia8hrjdaqv1dz";};
 nopageno-18128={run="098q0visa9g5lh3vp6bp484fglrq8g21v4cb71cnc30f7avkg1v7";doc="0n7p2f039vmd060ncc81yi2hnn7qyk6b7z2hpxh9pp78dwklgx98";};
 norasi-c90-60831={run="1bsx31al77ci58p1zavp5q9dl8msdjqilb19fglnkhgg8bjbqh7d";source="1bsivm5im913x336v6qrv31b926lfr8821pzqshq600k4fgk3rj3";};
 normalcolor-40125={run="1yvbqc6px76phjgy9cwpqwy035nb61nvcxy32v9xa9wfcp36nw7g";doc="0919aan1qxp5lfqm902ijn6sflkzv1dgxi12hjfixd8d1d7rlfgs";source="13lqp3zjnhm1wmf5id1bbr86l5qi13xgij455l38l55is468sv8j";};
-nostarch-15878={run="181a6pjdr7ffsngv7j84ddps84csv7ir3wr49qjax3lr5fhiw7qi";doc="1sjd4yz3j70pncr47ryis4w4459lbs4jpbb75wdzvgygv9qxz3w2";source="0f6qrlydiajnla9n4mqnv8f1iyl0f8ip98hbx6dzmmjz0k5i9bhj";};
+nostarch-67683={run="10gkz055a6j0hnpya1a49ysqqsnf9f85fdnxm1aacjnng5wpshzv";doc="0s06svy9gjvvpjqni59qfzzlwplx12dbgcvpkdi4zj7r9wyh4v3v";source="1vd8r7viglzi00vfxq4wnjdciamhl9yprham3mg0mmrvmp30l52f";};
+notebeamer-68871={run="1glrwrk760xh657ipslz8vp41qwp1qhmb7cwq2p3kgzczprkj8zk";doc="1yb2ml5mc1mr19di0zc168v63n0vl7hb6vq3fggiw9ppl0rzsasz";};
 notes-42428={run="058316ialcra7m56ww7imzqqhk318abwscw5g60hr73x3x7d9dgq";doc="1zq11rygqkbx85cf79ixwcv1w971w4hx8zfsv7z16am4mlxcdz5j";source="1ycxa3m2l13z6a3a4a88wpznvwdb78qyxkh879cvg85apb11rffq";};
 notes2bib-52231={run="02iwnpiq918izkssa8j7fiz2jbfjn87xdjh9spwys98q2cvvxd53";doc="1md7zvcnlb2sf8zw0vlnsnia1l22gr69jgksy5yg30jis3zm2gjp";source="1fb70w9y6gj1a0y4w3zd7yfmk5gygx10y8xjmdj06ky7k0r87qlx";};
 notespages-41906={run="1zn3ygkiyqax88azc7vcrkfw5hfzbbq3jkacnv50c8z5xllk2nwz";doc="0556azchy0yc8757wcy687vn82q0jmyf7n38vyx3admpawyk1pxk";source="052p17fbdpbdpzaai5xn8r0v6lamv7ps78svd27216p71djsfr66";};
@@ -2682,11 +2743,10 @@ notex-bst-42361={run="14r3q4z35k5n0rl2igjs4lj5ic4yd14xksg1qam5klb6raaf1jkh";};
 noto-64351={run="1bq1ysvd9bxcbfql6lwcbx2878n3bjwb3akawm7z025igi7hnml8";doc="1pz1flyv3js1wfw9p57cz9qb10dd64i978z76ngmfg5k1hp0w7l2";};
 noto-emoji-62950={run="1d1mxl32brfyn3a8jpkby0kwv69gimj9wcl8y61jd2qdlfd0mx9z";doc="05rch3ybas6gds53g35gda10gia61v49kgxi3gzcxvn92595zv9a";};
 notoccite-18129={run="0cbvwvgh3rkms6akamnrmzwm6796ly5fa93qsb30bqafgmx56il9";doc="1h14fkdn5kvxagkjx8h6f6a06v7y9z48s87x52cblwykgfm70qxz";};
-notomath-58726={run="1ky2wk10mpbhjpqcsagm6sydkb5n8czpryfs32xf6w64nzy5hivh";doc="1wjnrksgn1qmalqq1c11wdlpwq34hw8zx07cyi2jw26qvyh9fpdf";};
-novel-65848={run="1c8l8x00awbvkrn2g9mxq3wkgvblcshfbywg867915fsva5hvcsf";doc="1fiwj3gjvjhybplbsml8pg1gfaklwpc7pp6q9hm5ji9c2d2hd4vq";};
+notomath-68014={run="04ik99znmf5a97q474p8fj4rhmggzggn9kbdyxhpwxcd1s15w629";doc="0bwcf8s46i3gb79yns1y7crfhjsv32np496rhqq197cjd1c4lml9";};
+novel-68807={run="1k9kkgxsxp1b9fd5d82swypacp2icpp81dy5xnbc1y43wvg2z8r8";doc="08ayhlq5wx9hxn86imy893mamsskl7hk8ya409c6rpkn0y356g5n";};
 nowidow-24066={run="1w18i36ynsyldb9gs0yhv6plyrjs4762y7bglncv7bhqjmyy7y3g";doc="1l2zq2ain8nhkaa8aagpm22nvg8p1vk2cdgs6pmrydk0hhmjh01h";source="01qjfpps7ahmrwvg142mspj8gsyx21l3nr75g0v7qsqxbfjjy6gk";};
 nox-30991={run="06036p9059x0lzliq9b2pqahnbp8jlkd1gnq300rq0syj37mjk5f";doc="1qfjlzczcnmf3pgqf4qr5v9c6ws6qba9hm28h3xwf2s3099drxjd";};
-npp-for-context-51389={doc="11bzcxi27yia87ia7ych62gi2y59jx379fz63avc4qyq4m9686ag";};
 nrc-29027={run="01pczvyzfc2vnrfsab180fg0nz13cmry0dvdxmq3lxzp75ji5aqj";doc="0l6lpvddg25k8dynqr26gj7fnaq7k6zbzp5p62684sz9351pvz6c";source="0lzfw45m3mw7yd9sx6lya6cvan696p74wrxgvmqa73prc2lhmbv8";};
 ntgclass-65522={run="0dlm313f7m0cj0fsqv884xi16kq9imrkkiaxg8lszy8idp9vvmhf";doc="1c8kc3q9xqxl28xdyzlnlzwdfixbfra6vi32p6iy353mdhvhx2r5";source="0fhs6v9zkfxfxp2g17h4cxa4k9dm4dfgk2dl76w61ad41wd629d8";};
 nth-54252={run="0716sd99xjdkplm7jdmg4lx8lpfnnx6mxjp1l1sp2bfqcg73p4hm";};
@@ -2696,18 +2756,18 @@ nuc-22256={run="1918fk7bh6pz1grm1655fag16i0ir67ywcx28jsggsly6641nkm9";doc="0r434
 nucleardata-47307={run="0rrxpz66rf6g9cp6ix4rrbjqj9s357qsbv87dhri62iy3alw5bv9";doc="0kfi9c6isdlf188zsk2yx38z43zjzxf8fhvl3hm2y87di2kihdax";source="1lai682rycff3hm954x482hzn1mq1lrik3g1fwkbm73s99nljyj1";};
 numberedblock-33109={run="11v5n8s9glczglmqm4bfykg5v0qdqr2wfnymb15aichqqvbfcgsd";doc="0rh954i5167pmwmisn3v26zqqgdrk5bcn2pc16m3wyrdgvq02kzw";};
 numberpt-51640={run="1f4hmqlkfzqm8c4q9cbcqsh9pkchnylfv6gfzafgn9v3rdksg2dj";doc="04hdl6zrzw4zm8cihvfidlnjirfj7zlmh9mb7nzzq68cyxn30256";source="0ha3v5lgn8sycfxs6hlbdf7n0b8mcl2mny2kx37s1bib0h8i0bxg";};
-numerica-61283={run="1jnpxj4z8ln5isv9sk8qis446zlwnmj971j0b15zk95d7ddkbl8k";doc="0l2czqs4cqfwqsk7arqc6rg9zj4ayy46i892908pgdlvdksa1kh9";};
-numerica-plus-61289={run="0qr246dk83vkzxz18pn2fzn0n7bg19m785dkgwsmqyzdal684ajl";doc="1lpv72f54a2ny9ilhqrmb0dxqyx6m6wsnl32j79n42k1cahhyh37";};
-numerica-tables-61288={run="0dw5zdivhhnh2vbp83wnv0cijd0sqd9ddqx4fsbc3z06a2r1pcs0";doc="1x60sr6l0p7d599dslpxxlnch9fnzpd97h2p82r7awyz52q2jjm0";};
+numerica-68021={run="0x4nx06ppb1blp4012pb6l3fkp3ikw94xy9g3653cam3p6pwlviv";doc="0dhsfbysxrm91hxhgs842yv6cxx0agsj486sibzwsxajbmwxc36g";};
+numerica-plus-68019={run="1x4dmzxb4m11kdscmp8n7jd1ihd21h0nh6dx3gx8nmxghzq20160";doc="0h3y8nxw4zdbxzwkfkffkc8p0pjmxd0lh8zcn5cisdjzk2dsjjyq";};
+numerica-tables-68193={run="16zsxbdydwzh460qc69zs54w666qmim5rn0lgf5b9kx2l0x8mvbm";doc="0b1v2a44lzys1qq2c98c22v0i920j07k2ayi8l4kb0z95gzq4y29";};
 numericplots-31729={run="1c127aalh7jcx9rxhsyhi2k1qdz6fg8d6qj0kvf564s9c0npgar6";doc="045z6l4dmn3bzfsn7gi6bdhwvp3cbf9nj8fcs6q07vi4by71bk98";};
 numname-18130={run="0sj8plvx36i2azwnk9zhxd16x7dxk2419rdzc93pl3f68kxdmy5y";doc="18iarxgxxi5dj0cj1bf0il74ndn5lng3axf7zz0jwqpl5d84pz6b";};
 numnameru-44895={run="151c13r8arj094jw3zaymz6i7invgpyqr95p0qnwhj22z418pj1m";doc="1rrargznsmgq1h6a2ixxr9bg57zcrs9zwhxgz0ssbscdyvjqik8n";};
 numprint-27498={run="0wkijyxl1zzay8vqvsyhk6kf5247qr8k55rz91dn1ph7b597d952";doc="1jra448iyyvc8qgc9z49brb6j9c89fzf5zhgz48k9959bv8izs8r";source="1svwh456nbswkrmj98s91vr2x05fvs58chkr5d5slq14wg1cpa0q";};
 numspell-61132={run="10rqraqmnd3pybpih3fhk0068g448252hwcckxzd9vd33n7gfw1a";doc="1hlfb7b3hq9ps7l6z0qzymc8mg67kdipcshb1bpkindasx6dnkl3";};
 nunito-57429={run="08hnxivx7ixmvp7l6kxfr0vxy7c78i9jqkam0xxg5mkxs9ip481k";doc="0xhv3rws4kp5s4q4c10ykkf3yyl9i9ndxjavjx9xxxwm1iap9m3f";};
-nwafuthesis-63438={run="0clw1020mi52gjd2cl6ij71jx94niyl79p3n54hccammsdwzq1ga";doc="1pmf4gb0v5y505b5lw3wsfy91nmas88l98g0ncwnmvx3zbm1yf0s";source="1icvfs9l8qh93wgjs4zawzfwipmml19bs1b2ix01dhavai85pl2a";};
+nwafuthesis-66895={run="0vicfc3gnxf7cvj7lqa8sd5maxlkfqazc3wi8il553fw88dxvkcq";doc="10sln765phsv6rpxjhn6z431nwwkch3qbq0s3wjk0mc34302qykx";source="1xk78d8zaqbn82lsw0fi428ac9ybs0xnnva2lkb9k8zyijz5w04r";};
 nwejm-64462={run="0c3m871h5s86n61yappdbw42yws7nwk3z6fa7nwqx55nd145yhab";doc="041ksqcn7dz37rj6f3bb02mjai9xl58wbzkzpac4i2fnz3i7hclk";source="1y7a4yn0vkxg1r5fjbpdm3b9y2sn6bsg0f92qcv706siyyynkbmp";};
-oberdiek-65521={run="0hqbq0i6miyi068xsq44zkpsv8crnp9c1w5sscflj7b3zzrd6wjb";doc="053gd080j36f6zyij2d9ngwihcpwmvj2rz1lshhrlvbavh5mawv3";source="0k5jwnv9c02lckfl80ybjbdc10h4ipiviljdzz768qgmxx5bpdvr";};
+oberdiek-69038={run="1gp308z3xisg8qmg6bggddmmjdpcg074vv15jwhb6z8xfwyj3jvp";doc="1cxl8d26mclv7054s92c11s301gk9kv11zicx8ikv7mpa605ylrf";source="0xcdyy5v1a28zqyip8n8j8szj0bdircciww0a98w5wfxgl1d0dym";};
 objectz-61719={run="0s93jjwcmyjd126wmf2rw3776jgq0ldk40f269cp29968q00sfn3";doc="1qxqphnsgh412lizx6jij6qhnlx1d558bzd3klqf950bp2hy3cm6";source="1l8afdawrrcnbpqdhjls28ncksg8lzs7g59viqygwixwplha0fb9";};
 obnov-33355={run="14cz2rqp4sf4f880d49yhvqjkzm5aw91cdijmqwf283cqgzhdmlf";doc="0k20zh42vcm449dh662frdmspmycx0mi81ml8qkvnncy8h40jxr8";};
 ocg-p-28803={run="1cfg5253i7rb0ng65fwm6v0yhs2l91gv0a3d8bra1bkwz2f1mfmj";doc="185fgw41dbw1hsbv5lr84spv1qcfglm0xhrgwk92g0dgh20d0kfd";};
@@ -2717,46 +2777,48 @@ ocherokee-25689={run="1xhb9y2m6sahkqlng98f9rqi94hrj66594zqdd2sv82902vfgl9p";doc=
 ocr-b-20852={run="0y62xmxbw7573fwvfr69r7bhfcywvhcb4mg7am5c3j96ipq5vqzh";doc="13r2chskacbnfawlc9xwskrl8lqj3dx8gzzpyjjk09rx1g5q9gc1";};
 ocr-b-outline-20969={run="11lv3dba2g8mrnfh1y6agg8ipivhnppd3s7gqljlpdbdbk40zbyn";doc="0017l87j9g42cjy1ki2xksh6xq0hl3rsxcrdyrddvvxp520p02x4";source="0yn2mcwj73mazk503f13qmfy2bqkq0gz264ckr33bc88f1i1518b";};
 ocr-latex-15878={run="1l5s8wlqk4fc9i3fizhbm3c7nafq36w39693xm1x07giqqw8q8cl";doc="0ai4kr65ls66ywxncb63jr6gy6lcw6zjvlgsbp4wd6kfjxs27bh7";};
-octave-66119={run="0sw5r5gqvpmrn96rfz8y8hdbrwasv751p7ga5dary1v1kp4brcr0";doc="1r9wywnqhgrg2jjlzyafhdnyxd3fa17zjbbw1bj2a3r2jzd201h5";};
+octave-66115={run="0sw5r5gqvpmrn96rfz8y8hdbrwasv751p7ga5dary1v1kp4brcr0";doc="1r9wywnqhgrg2jjlzyafhdnyxd3fa17zjbbw1bj2a3r2jzd201h5";};
 octavo-15878={run="16pwz513a39630p51n84761asli9kba5z3pmbgfkcz7yfk9iiq22";doc="0rdb58jnyyp12i7ndd6qibs2jc1f0zcw42jh9j48aid6nwslvrbr";source="1f13rhvd2l3v7fdivk1ybw0gnacv9y2pzwnbw8ykmaq3x7m3x2j6";};
-odsfile-65268={run="1zszlwr8aklijlwpqm91wmmf2fv1frmq1mf0vw4c754s21d61a6r";doc="1vk6q98xbq4zinkpjklq4pgw9ib4bnz346pbza8fi3v9q2szzz35";};
+odsfile-68204={run="1k1rhixcwaqyzawpajbi3ljnmawc5l582vb0vzsnmq5dkry7ccsd";doc="1jrq1mp70vj3cncv1l4f8km7yrn2lbhjlcrk0qa716r5isqhawfq";};
 ofs-16991={run="0g2rxji8g1nafyg1nzpy18vzk20p4p6r754m89naygs1qn5n4h01";doc="1v1z08m2ha071kb8zia1wlgkflkzj4hjws8rqnq7asvhi1s2p1rj";};
 ogham-24876={run="0hl3xjmd2bagcn2wnmr2rs1hzmgvm421rkdaimplzdnwj0r64j49";doc="0phm6xdxl1a6nh6g17nyz6p7f2ymll39k42588dzw45z7zwan40i";};
 oinuit-28668={run="1wr3r06hbxrc0v9cwyp7ad6jimw05x3yn6vqpnzchk5l0ixnlkaf";doc="1919kmp5sxd9q49m6dd8zrnjx0cqgav1i87gag1rffd5hz9w4fys";source="1mymvxv4721nhmfdlbl9bgc76dainzykggf93jx6xfwlld0krgis";};
 old-arrows-42872={run="1immbai327l7vkq67nz6mcnyqmx3ajg3blrhbmffkbl92482bv4d";doc="01kdfgiqp5n74lipiviv2alzallba37gyzfp1sqrvwwvrp3a3z63";};
 oldlatin-17932={run="0cxpm5qvbn0a643x2h4dc0pf00kqqk1z540j6dp7mbiwv48qqzdb";doc="1my5h8wq241dm3d6czb1spznrxmrclwgn8i391pwmc11z2ijqgjk";};
-oldstandard-64464={run="1b6vdk3gnqnha3yjcbszxk1lxr8ish2gw74rv63gp11cqbp1bcj6";doc="039pwj7myd53jljp8ihhd99ggl8zq4744s5i91sn1b3c44ipsgy3";};
+oldstandard-69185={run="01cfmbwlm3x7i331wkwgjq9l71wa2l490lqmjnr0n7dg5nk9kfk2";doc="0kbqi8vyz9rbb08yhy22ll65fq5i7xbxa9pwgfx6sxz6gsbdfin5";};
 oldstyle-15878={run="14lm3ghfgfqafqivam1dqf3gqgkchnbnc84z5i0whg2p18x9zns5";doc="1qj8nbcx1krpha49k4yzyix13vs9s41g96r7kpdmv52vlpfgs4lx";source="13c4dxvikdxx7qv7y9rfpgj4fgzp21q71xpmq1jzx7phwrsn6wcw";};
 olsak-misc-65631={run="1gm01jvlj8vcl9a3v53bcmg604dzf4immd39dj6n6c692r38hhzr";doc="1afxiazmp8pvgfym1i2bj8k5slfqi81d915d7lax59ib0p05w4mi";};
 omega-33046={run="047w29bij6g9k9fl7ymap4arhdmm9kvjfsikvjkf9nd7shd6k4kl";doc="0r686ck7z6vxcajrjihp4a4mh3z23xr8ic34dv9yp039dh0kbm71";};
-omegaware-62517={doc="08vsd2sdbv5qjdbc2yfn2civa9d5zqazd2fl8x4liq7wb426p7h0";};
-onedown-59010={run="19n9kl4l7z6h3vfkbv6m48vwds152cj8f764jz4n6vcwxvp10943";doc="0ca0j01gyv086x4zjy4arwgwk6vlapsr7fmqxiihkhngj60fr1sd";source="1ha3n8v7nkqkxvk2jc05y2i0665xnxa1n53pqhabh98b5qmck5bz";};
+omegaware-66186={doc="06kzz0342h6vvc32ydrzgpqsdqv5l0jbd5finr43fmzqi5jnswil";};
+onedown-69067={run="1hzj2cyyp3zqa2wnw576cjqg6nqziahdn3vijg9y7jr0gc3372ch";doc="0a4hvgsy9i6a26k6n51dv1pdx92d4vk6p3vdrbx8mqwigwa3rijq";source="0kbilw165090a925g1p6z6ayfynv0z7zjzw2c8sca3v0ncyy3cdj";};
 onlyamsmath-42927={run="158p92zgnmicfwibiyr5qbkwwkxhvfpvngkbpbw6grbdhlwsn63g";doc="1d2znlhbz509rqzlwqnbz9b64mpbhckh8pv23fqr8058xlbazkh6";source="08znvq2bzapn0dfa7f4sd08gm5k7m3sh6hkwy17zwkc0987wx487";};
 onrannual-17474={run="0bj29lk2nlsmky82ablxl0r6k6wl627zrsv9g97hydgdmi5nxasz";doc="08c3xmyiz91623lnps3iahi5ga9941nc6bvxmdihadxhm2lk769z";};
+opbible-68465={run="0njr5kkp6a0xfd010w3n8g65bv88zx26yd4nslajsip2nzad14n9";doc="0lyghd30v6wx5cmv7sidyy39qjkng3xlazgg50s6iaydld8hk608";};
 opcit-15878={run="1g54f5sv05rg1xxpydsakjrlckmh1wq0p15w4q0935iw0aq7rn8g";doc="1rx3ap93f4570d006qci6j6qi88zwxc8504gg554aak1lffazw5m";source="0242ajp415h3y20dyvi2lrp38saq10dgb6hpnmadzs7wrwxhma55";};
-opencolor-66372={run="18a6vha0n4mwgx9lnm3d4j4rkf72qx88fbzgs164arzpx4gp0ypy";doc="0n7myxbkijvqgxsvf9c2llkwhqj06i80sv81vgkxvx16974z0mg3";};
+opencolor-66363={run="18a6vha0n4mwgx9lnm3d4j4rkf72qx88fbzgs164arzpx4gp0ypy";doc="0n7myxbkijvqgxsvf9c2llkwhqj06i80sv81vgkxvx16974z0mg3";};
 opensans-54512={run="0xj7v9lv1ni7mq175l29a039a2ifmdsy1wnv1h0gfni5c34knm1w";doc="178pa2kjvp15la857iblh9qc195z3byd1wxxyn7c5bzmndvypgxn";};
 oplotsymbl-44951={run="1x5wqngjdmc4751ci5qaivzgqynmmg00kg2clngxjqf48n4fakdd";doc="0bj6w6h4g991rfddmrxgc02090vay2h2qjx36cb0hfx55gwkmh3b";};
 opteng-27331={run="07a6dja6s7c1759i9afgacx4v0fli98s6mcq5zig689hpkw841fg";doc="1125aj55p7n6b03mn6p6845yvx2jbjkwwldgwiixypklndqsf6cm";};
-optex-66516={run="09wprhbdr2m7p1hp46mbkwi6cc8w9d892z1qazhc80cgwy0ysfxj";doc="18ni5w0rr3as0cpb065myzvf4rqm2vx3wz1zblv11xchvi10sxnh";};
+optex-68873={run="0bkp2k9yflmndvzxf071wr0i5rhx4r3rjwf1jz5mv24291k617qk";doc="0pnn7vsfa4yncak7885lc4lcg9viwcl7q80f4g8axil1ash1f0mi";};
 optexcount-59817={run="15i48ly8mbhhk0mq4gxwpwbvhpgvk1pb8bfbmfk83sp1liq7xijc";doc="1cvhzkl2lbz939y417ipi22n9alh9j7f06d2r1s0h294692m7bpv";source="0s51426ib070x23d92rgpj247qni42hzaw569z64i7zr3nyx16dh";};
 optidef-50941={run="1jvalzi2gid20wn253swvhil05m273x6685n0b5wbrz5kbvzk212";doc="0sdd6rsdfx1fcw1493b12ww5llww6mv0rij3f1ik290c6qbmyr3w";};
 optional-18131={run="1mv65cqcrjhykpl565z96s57z05635q513qr440crbh61rp93chs";doc="1ks001q2b1yw87q0frhqq6yv77mskng6v1sm6kd8r22cv5g49xbx";};
 options-39030={run="1v2j59zcv5cplh3czd6r7cs4n79yvw3448492bxk446j4lx2mfcx";doc="1za038prpjb3s74ryr25q7hmz881gr8abmf68h7xdjq6bdk73da5";};
-orcidlink-59560={run="1ji42jszdnkalqq65ka45brdvsl4x7cpxdk6rvfsiacrcpbr6j36";doc="0np3dvf7l95h0gxg91qcd8f9sl0xv3gpqd6krw3bsjqa36ir7vcd";source="16ls5hwlb5yjls6fwcafsfsz1wgdp7lci7jgdzsc9fqkz0ml2yyf";};
+orcidlink-69253={run="0gjgjwgc05iavwwx6s3zrmb3ac4nv5y533bgap14wwx6x50i2hf6";doc="1ajspvsx9ginyh1j0k1q88081dh0jxrsyr0c249wlnkbdkpcf6gx";source="0nlhscyjkg5lgi0y7sddwkdr5v5wcs4ilxxcpap75a9hdk4ckiph";};
 ordinalpt-15878={run="0nia32ms50727kn080xm2v0kjzws5sj6jdy7kglp8wkipvc6nw82";doc="1nwfz0q6csg7rg3hqgddjbiz8f1nfcgghiqvj2wxqf0cfjh8zb95";source="0rzlbngvszl1sjrigpn55i7a8rwnj9sy76c7gwb43d4im1ybd14d";};
 orientation-57390={run="0qcqyr76wiks50i1zr3skp7bsnjzi6snsyvsm2za3l08kbdi3ixx";doc="02cmfz42sdd1gr4yaha603rppdh4c4wjj0jbcrmwlfgl9a47rj11";};
 orkhun-15878={run="0x78b5d70cxy7binl5iq2jwgsjh9rzs87wc8ib18jxscqick5jgk";doc="0q9hwwf80hq6wffyvd26kq2053vs5czly9zlsclh93hsmzg3vj9g";};
 oscola-54328={run="06jgk12q9hmbqcmwb837n8l96f3bafc7mgnv4v9amnh4ajlg6i5x";doc="0qzn7d70vl0lxyql152pzzhi72ivdslmxvfwr70186lh6fjxr4nb";};
+oststud-67217={run="1yzsibisphck9a6dlbvcs84qz3lhnj6amj6vfzh8rgy40s7vvz3x";doc="1sj2lk6fhx9bdgpxnmw6m25yrjmka6m2ygiapj42jp81n51pvyzn";source="0phykgmzds9bvsblfazg82arwdhzssjc6b9faazi5h57jcmvbss8";};
 oswald-60784={run="1dkv4javwj8zfk987grjx00p0p3hnzajm4mgddm1g4z1zfjfdd4n";doc="16pgbws7vf93dwaw8cm4laz09hywp1xigrbdbaq9ngg9g97sn0l0";};
-ot-tableau-59318={run="0c3nlrm4h0fs3ddm54jpv9w2qpyql7ys1j4cf3y7svas59px4b8v";doc="0sj78f1vgr4zy0pyjqf82jf0xyrmrj29xn9a0zgzhn15rgh8wdyj";};
+ot-tableau-67813={run="0wrxkvi28a19kdgsms38wgxgygib0iypz0y830gizq339vj72v2l";doc="143rx32hnxnbw61n8w6skcqs8ix411dwcwgn43xzw238almmhidx";};
 othello-15878={run="17y68qzxifgnh8k1q6qfn97ka7703ac8nqk62ridn1wbxc6fb80r";doc="022pv02lvlphl8168rrcdzk6w7d9wd52riybfvvy537ifwp7kqr9";};
 othelloboard-23714={run="00cybd6dg10bwl2k87i2lj9jq1nmq4jc9v4qhjwqij5zv0l5yz4v";doc="0g5k2q33r726xyj1mp08qmyb4xdihiyzsm52mgbdn95iz08b2989";};
 otibet-45777={run="0fg3gc7614r1b304g78ipq6d84bml2q4mvl2yc49jjnz13nr05js";doc="07l6475b8z98pkmn5labv4i4q6g92lh5bdsdqcwd28v5y1jizhmy";source="0lfwadx3a1ni2k91dpzsdh297j3viq5dazaz78acb879lgz61ik5";};
 oubraces-21833={run="1rhavggv1c50krafvh7lwnvarh7lh59x7lwkipw24qakq7l2a6mg";doc="1bw3b54cn5dk0j4diq8qxfba0w3p0f78h4kycb2bqd2gq7258vyq";};
 oup-authoring-template-64491={run="0cqhrwpylpj0z5gcgx9lyhsh85vam3nfbzzsz9x9laf2rdi0v1qa";doc="118916mwp8zbjdqdwmxzwaf09a16rc2zrll9qmig33q48xszdf1r";};
 outerhbox-54254={run="1867xhxlbskiysifmwlr10lay8khragzi36fm552cwc4vjz2ybcz";};
-outilsgeomtikz-66465={run="18w3mzhrl4xwy6ni5546arjcgdpjgqw9vqvpsmbixszzz85pvnag";doc="1wjlgldyjkgaixdi4nv06dbldj6v4nd23fh2sj1cf93y1lpy9zdz";};
+outilsgeomtikz-69124={run="0a0g6fnvxzh942n5lg71y2ry39ra9b01y8ngjb05sdvka9a9vwmv";doc="12msajfyvrqawq4j9d9pcqfsirsyiw57pna9zadkj8mizikfdv75";};
 outline-18360={run="1q5dr9xlsn3fz7bcv08biv5cv71qf8brzgg4468mksh8lc8r2kli";doc="103sijg9ib5qfwaxkdgf11zsdg2c46dv00hn08sspl56a08j54sl";};
 outliner-21095={run="03j0mshhrchrgpa2z7j7q6n783va5v0w16gp401rzbvvdn0l2qni";doc="0vi80qhq10yy051sfzh6pmn34laghhvx6plnggrwvcmpp4fcw14h";};
 outlines-25192={run="0wzrf2fkf9kh0d3jjbc3kxvsmkynwzg622ghwcabaps097r9z45i";doc="1avkpx77sis4hrrs9dqizq2sz4vjzvn19ks8q7l32qyz6lnxwk2b";};
@@ -2764,14 +2826,14 @@ outlining-45601={run="0kc3x4zq24f2dzwzypdi4ysgsfi40l54zxpaxdfgd662wxangrsp";doc=
 overarrows-65853={run="176w37bvjjc8hi2a48138gj77sj1ibfnc71355lpk3vh2whhrx4y";doc="06v0v79kcqakhkyjnp6c9rvqryiy8rrim82p0d9m98dib48h7h3h";source="0nmh0rrsbbcl842lc1zl2dhj5r403phamfbfxmn0qs0f1kqd2awn";};
 overlays-57866={run="1xfbb4953ab25dbccfsp9ban67vrq79j443mlglnzqmg1njrckk9";doc="1nm0d47vclan46q0zvigxri5zqmfpv0qkk0arsg836vnv7l53q0g";};
 overlock-64495={run="01h1fcgplfbfbkb1wp0gnf6xrqn8l8y1hxrd8gxpjqbg53wr278p";doc="0gl3n6h41fbzi4lcsdra5z3vafh7drm6g04ilmbb5cbkpnsyl3nz";};
-overpic-53889={run="1szm75fc37634pky5sm2l8b30zqw38n1h0y01w7c5is5s0a9zmgk";doc="1lixa20fskjpbc6clgr4sm74d76bqyyxc6y1drzhm9xnkggd29x1";source="0q48v02rvx1w95c077r7mdxzmvg7za151fxym24qsbdbqd3gr9ja";};
+overpic-69343={run="17bbk29v6pkrk9igzx4by586jfc997mj07srhgy401mnmxls2jyk";doc="067rq6plcan44h87adj9jlhnnlkk2f4slsid4v6x80423q4gfqll";source="1wi69kgglry5r8wg944x87scqsqx49ynj372y0qfa7n4dajxgzwz";};
 pacioli-24947={run="1fc15ygzkdbv5mykgrmzb6filkl3aipk7i9k1syh2ssr37ldxcjz";doc="0pknnd02q244pxyc2vapdx04adz7gwf41swda2xi3039x82pm8fd";source="0zl6l5yc7v5w1xjd83prvfmy8jf3jyblallphyglgb4vkqq6mxxr";};
 padauk-42617={run="1yjqxzqsvk2mdsk837bgwqf3nfm9gh873bnir19wj5kj622zfh4d";doc="0331w1z1b5x15yb3xyxv008l95idv5yq9xb87da5r9p5fzfh1z0y";};
 padcount-47621={run="15p8g5hjwlm80xnm9py3ss6afl6c8rdq8f92z7518hp0yp7d3zfw";doc="1crpv27a9rfmh4dcliqvi7aa4h4lvkv48k5zk0kx6ahhxa2zkzaa";source="0vkk0c7gvzihlmw3f8ni4awj9r6xrysj9rrsbqk6dkngrg02x4xz";};
-pagecolor-65843={run="0kgw5jr8l77cxb7xq53pvkyfs15lq4wxyv50pbd849fjm1rjlii1";doc="07vjcfihij3w2258id0zgrgzf8znzmasiwyinah3h6snpfg83kg9";source="11iyizwd6gyzaz0gzi4n401wqabkv7dfrsfrbz2vpx73fwnnf72a";};
+pagecolor-66885={run="0ycmswy7jghmnpkdv6b519yx7ga56aw7yxq6671nlg1iq1k045kx";doc="18xnh0588b95h7fmqwqzb0p2n9fclqy0hxv3a1cci8anpcr6xz0q";source="0qc662yig96f53wdbawgvsg4wx0dikcnf85b2cffwlkr8qzrwlsg";};
 pagecont-15878={run="1fh6bplg468dandbyvmwf13sh27r6x4dmrwslldlc9580h8jv02k";doc="1vrcr5l1facyyf9p8977q0i5m7cn7y40dbmiv99314iyawa3rr1g";source="1qc105f5v0jiahk8gpgr77lqfaladba4hmqnfizbblzbjhhgg05p";};
 pagegrid-64470={run="054yaxr2q8x82dii8bpy3y1nhc1drvwm98cd3asaddh4lzrpl9vl";doc="10rsrkdl9bp04kxxl2g3rfscf0hcw122py25x2jbq6lgz76780jm";source="0fbzd20z106cgzknj98ryzmwiixmbpvnx5p8v3ns6yjrwrcng3lj";};
-pagelayout-66399={run="1izl4zm4jpcq7qmia75apiz368dxq1zahqxn4cbhg932f4f6lv1h";doc="0cfy6lc1lgsqwfy1cyi66cfg3jhjprh1259iq666kv0ljyk06fdf";};
+pagelayout-69188={run="04492pp3xcgg9hbz2vygqsfriljhjqg7nxivjhg5m7v9c4vvzj47";doc="1rw33vvag98q7mjdhvk954c1ady62xv20s8qd94b09caclkpdgzv";};
 pagella-otf-64705={run="1vrzz63la6i270bjqb1nd4rsqqgl13nrqrbmr0l58bmjj7qh95d1";doc="1dffy7z3cfyq2kzyvbarlqivfv4rs70qa7drii2arv2m1609ylz4";};
 pagenote-63708={run="0jd80dz0jl2gmfr74lw6jy1x2hj6zlji9az956gkj8bxxc6zir54";doc="1s7imj4fi08487xmcsicsa4cknpsgd10dbcyn6vkggm95qn6119w";source="07ngnfinv2mki203in54l4gx7r4qx9rm8k4x7856gr7jy1wkw16f";};
 pagerange-16915={run="1nixc1dn9cbdi3pa5yxajii6c9ljgc2jrnknsa7wb66kj5j1lqch";doc="1vy3c498j95miksm254a1sh7d8bp3g5p7lvncc1xad4g388q6hak";};
@@ -2779,44 +2841,49 @@ pagesel-56105={run="1j6rg25mhaiamlff4j4lw8pbp6x3mcg00biqz2apsbi6kmbiljw8";doc="0
 pageslts-39164={run="1lm8707bl8a9kxrbbr6sap3p66zwjklqv13invm4gcsg92yf7yhi";doc="163h2h9n4cvap2c369f2yxv3idij6wzjqwf0wd7w5024h1vvj683";source="01nwizj0vlnwzbqyl5dn02vg5xl2aw60wyvp4plm0agg8kxmsi3a";};
 palatino-61719={run="12jc0av7v99857jigmva47qaxyllhpzsnqis10n0qya2kz44xf22";};
 palette-60119={run="0wabk4pw6gr9y309dsh11w6gygayzglh0jabqi0zsvy0ikr7wri0";doc="1dp867fydnxdw82z4gxp1sbz5w5q9jfnls6r9izylrzy242rd52l";source="0iic125v6j1ljgnm7d0qicckxwmgdg7cz568556257js942ldyxx";};
-pangram-66305={run="1x8jdn8j3dgzkm7zv23529gr1jdmh15wkwkljzsc1dnviz0ppacg";doc="1y7lakwbh58y7mvwfqp6m4r9ad0kblsls53n7ciq994hfa6gx07z";source="0xq10764gznwqf7nfaqjjqd6s73a9h13970bcrds7jiyq1s8l382";};
+pangram-66300={run="1x8jdn8j3dgzkm7zv23529gr1jdmh15wkwkljzsc1dnviz0ppacg";doc="1y7lakwbh58y7mvwfqp6m4r9ad0kblsls53n7ciq994hfa6gx07z";source="0xq10764gznwqf7nfaqjjqd6s73a9h13970bcrds7jiyq1s8l382";};
+panneauxroute-67951={run="015w3jivsfxcb0gjrlpz796p50wchmb34w3ad0dk73qhn2jrx6p2";doc="17c6bnyxs6szybqb1ihv0q8pn3wb950s64z639vhdwhaqvppd2f4";};
 paper-34521={run="1d8w8aicx5drrgqdcrsb7vdy39xh6xmnnpympy1db5i2mc2nkjca";doc="1r03wy4harxplfhqp0dsqfpp0s4j5gn6k2p43fpw7wndna8lnhyc";source="0c1iv6aynpfi37bg30q235zdpbyhj83rkir4kdg4vl8q27c8gpwg";};
 papercdcase-15878={run="0gfkn87avjnfjx2k6hz5k2s9iy2lxwx9x4r0cp1lcwjgjsavf2y3";doc="1hm0i4vvxhxn0wvsrbxd2lkqspqkq7ik3sxxm1nd575p5l3zgl69";source="0mkadgjk395z280220zndpbbks331d5hcsxqnarpjmh00mkhdj7f";};
-papermas-23667={run="0x4h95w4znr0qkbmh18ws13c49fq9wmx1g0rhkwbkg5yxibyhbk1";doc="0vv07vzfsgmpm748si100rbsfp0ipvnnnqidg6c5b4fgydz2dcdk";source="1z2wvpy8r0qq0zjf48i2z93iyz6vjnzc0vm8g5pd5zrq961hfj4r";};
+papermas-66835={run="19i4m31q8jji3chanrbqqxni9x2c4mk0qp1scf0brjaznrcv4dvv";doc="1an36yvg7z1yhb6gn9ppxp24qgdjmpndwy8nwn87cyr4fqmrmgr7";source="1r3cw66snl1dspbr9i6pz8v83x15ylhm2k5nbksrf7f24jrvvxn9";};
 papertex-19230={run="144zirbvdpq1q8an6i5rngycmlrgicf9skh6mnwyz45n4zyyzyg1";doc="1aip8lhazpmmvdib6yqivbgjagyyhmava29q9hrlx833385vvnhj";source="0bfkh8vwqh6jx34fmqfqf2qz5wjpmq9bpzbppf0cphs5frbwg10b";};
+papiergurvan-68239={run="1gyf1liq3lv8dbfdpv2ilbwks4k88m2ywnv3qxpbrg3v2l010c75";doc="1mw0sc6svi8rci96wl2273bgn2f3w44gdczaldfflxc7az4mhmvb";};
 paracol-49560={run="0lbdk9wbs6c6kq0iyf6amc72m1njdf3h8yvcnka9dkhjp228ldf0";doc="0fnby29nnrasv32p9xwwwax57ijzscpnsv43rwajlqwcdhi3s2nj";source="0q9izjw8lrwcbx0cpq66pr33cn02wl4daxsjvlkrjzw8zzrijl64";};
 parades-40042={run="1vmjda4cvajsqai47wvl0byi552gdcy0j4m36p58gjn3d9bc8818";doc="1lz9dsy94x5cvv55nk975fw7dlg4bm6d8ls0p6gy5b58sjd6vcp8";};
 paralist-43021={run="19m0ddw80vjzm8p0z5rrd3jf9kqzq653h3jdqlnjw4g81r0z730p";doc="03kv1n9m1b6r0r5drp81hv2i8dgnlcsz81rhi4h6a3xyxnyhw6bj";source="069mn3mk34rxxhl1c1878zs61pk7asa21iwwk6r2v88yziczkhlm";};
 parallel-15878={run="0hja3k53n8v8qzj1vym1j2b4pj7hqszda82s83kw1v5av6kcy4da";doc="1i0ls71ib0l3igd52cgn5z0cjz0j17hsj0qc5y4sqg2nvivvw7gy";source="1slmdxldvxrvf61aa1b7m09cxpv6jsaw5lvbgqsby6jvgfp4r4g8";};
-paratype-32859={run="1cwcw13xdarisjslsp8aayb984fk4qhx1ihg887fzli0wn7kpvvr";doc="0kz4nzz3v6a4qk2svgqyx02j0pni92qpm5agb6k0vwylmvx6yyzi";};
+paratype-68624={run="1cwcw13xdarisjslsp8aayb984fk4qhx1ihg887fzli0wn7kpvvr";doc="0kz4nzz3v6a4qk2svgqyx02j0pni92qpm5agb6k0vwylmvx6yyzi";};
 paresse-59228={run="0mbxnc8c7iiwcmh17n4yhl1imvsq2q7wng98k6h9r15nqf5ivk1x";doc="1qmqki6fm316bixxjispq92dc1b3zhrnh4ad64wdlsr3fpja6g1q";source="0dc0hblq764q23xnz7yj1nawdr5m55526l0dw7b49p5rdb0zhcg3";};
 parnotes-51720={run="0d8600ssj90rwl9rxd27i23f58lmxyf5r1sn8yrl8fjnq42q447b";doc="089i9fwzjcv98pnqmhca26wpvn71zcgb79y3jg5w8szagli38839";};
 parrun-15878={run="08cbzlfy5cfkxpgr4igv3282k1dx9bsvsjfdi8b5dhl2gacg4i7a";doc="0wvbmjzi8jwx5gdg8zgb4p3gz8v8rfp2hw67q0rm5f9rkza1a3ds";source="0d79vvc4j1sysbpy1qdqwd27fai14820z0hqkkd6hrxzq39x6xza";};
 parsa-54840={run="1n2yh9v3d8s32ylicq5vn76m91s6648zgvys6vg8m63pafzl8rlm";doc="0i3d87kajjcw9mallswncp113jz9jn35jkj2y10dmx6z5sv3x3qx";};
 parselines-21475={run="0ymcapxlfyb6xi4k0z1y42cyzan67yg5v4nnc2f1ac35yw4z57pz";doc="0396j4dscv2pqk9vxmz0p4xm4l3v9ln98cwv32r615l1k68vafsg";source="0cg77iddyvl6p818j74ci2zg4zdddp82wddhxqh57qg8vcvi9g5c";};
+parsimatn-69090={run="0dd3jhkv5vqijlkzwf4fd6sb1b8shjzkfydxx6ddbx6a0digxrpn";doc="00aa6asx9banp3v7mjp1axicfnfs1g3l6pf3ifq3n0vwjaxrpaw5";};
+parsinevis-68395={run="0g9ypx3ai49sfcr09q2q231p77z0glwwd0zwwfzxlhkyx4vp6vsp";doc="1mqhdyz9jlipjl74k5blpdizk79f5m876mgn6z39n1p0b4pc8724";};
 parskip-58358={run="037404fa7flsznyidn6vpp5r5rw6wpzrg6sc8zppj9hqciqlbd52";doc="1pw9mgg04lxmrin7vplqyfhxa2bb73yf7qj8l3bwc9yiw78v5h4m";source="1ysz2jfdi49qjyrfkx5k1vjcykk4774i581d7kynw7q9r25lyq9g";};
 pas-cours-55859={run="0gyw81drxs56dwqh6v1gqgs4xcwq78v9isgg38djxq17km075y3g";doc="1zn71815y5pkp24l0cd4283zb3i85mqqzbxmhxj19v5s4jx3ywsn";};
 pas-crosswords-32313={run="0nq8wqxrsgpdnmi2yqcs45mb93gp2lad6p0b6ifqr744hycq4njm";doc="154ifvbrx2z4ig8k00agjsgpsplrjlf8glcxipbgai9wqf82i2k5";};
 pas-cv-32263={run="01aqcqyw0h459xq18gc0y00z2j13zwdn72qpfmajps7ppadlcbxw";doc="0mwgvj4hbq9b6ih6l6hg6gl5qrxyyf0mimwv50vpy1z7bhdq2l6a";};
-pas-tableur-39542={run="0w4760s1z3nqnyf449vmd7x7inhsp08n9i794177rx7kc2yj2l7j";doc="0fish3403ixq2mp3l69qij4c74s999mimh7majfcw58b0y6nizpw";};
+pas-tableur-66860={run="0i91nszaymzzwijjlw0f865qx6j7x7rzrxbrc51i02qlfgpaq9zm";doc="0199rpla518gv3rdbchfinfan826z5qs8zxfkgh7rgd7i0cid29s";};
 pascaltriangle-61774={run="06gbr5jgfbms6p7ghdkq2cs9d6p8yr3mvhb0h811y5rphrfzh36g";doc="0fch8y78vd7ykwn9qdgl6m787m89ff3h1fpj0vvzj5vbxmvw6cli";};
 passivetex-15878={run="1h49v6sqbm27isfwwcql9dzxn4vmcn2algkqh7f1pzj860xw3ygn";};
 patch-42428={source="02xfy1fs30nha0l03lqwl8xrpd81855kb5nb660ks83aj187dghy";};
 patchcmd-41379={run="0v0033zpp4w75lbxk8w2byhgy3s6qvm9281xc2c75bryp0ar5pfq";doc="0vw698r5q5ai4lx4vrb24x8j9dc7iwaml8scsh9c22cpqn2sn26s";source="1cb90y0i5k9s4jj3f9vnj6rhxphjc14p5nm6hllibww3h1khnrxr";};
-patgen-62387={doc="169wlh4w5kjm5cxbw03mkw4qp31z1ih7zqx9sdkllnh0y6ssrisw";};
+patgen-66186={doc="03y05mv0n04hyj0lcq54grx7w5wv95h61j6xlx2jc9v0ib9akq4y";};
 patgen2-tutorial-58841={doc="016bx1rp8kpvlywg0yafhbbhlzw4zxdcbdrd5525vffn6fyp9fi3";};
 path-22045={run="14k9dqvcc2nazjysff0s1jrass14d2r9i9cgfx46ss09cw53h71s";doc="0kacibdjhmz39klvxr244n42c5vlaz1z71a8vnssmwmdzzwfzs5x";};
 pauldoc-16005={run="14p0lnn5hvn6szhgr0ngdc31dbjrfk7r8m8n2jn5n8nirsrdzjxf";doc="16ls36m6c8v4x46bz26ysl0ndi9jmby2gl8b9wglw9ba2gf97xjw";source="17440237dyqhxpszm6rcpdhb8dib6l9qfqj5ls2m0bk3vqm7xv8q";};
 pawpict-21629={run="0sx3lwgm3d3cm4s5408x5dhf45kngls8izzkqjrqjy074736968d";doc="17zf7acasv8h9crzg6jw3d2grmhi689476z9x6872h7kzkn3whj1";source="1vxmq9s2q6sq6qza6lhkd6lmj6pg4bw8qvcpqr8zr12nqcfy4z3g";};
 pax-63509={run="07mgly5jbvxav3k5z6li0z7vwq7fqrj6cq0ky41v7alddjpa4bg7";doc="0pii0k53c0np8d4yc61axasnr8aknknfm36px3xh9sl1a475bwmn";source="07jzn5k45pxslamrak05iykqng5rg1b4kh8p6zbadgxb8gxrqx3m";};
 pb-diagram-15878={run="07l8172hqnv9dq6qg1ipbjjbmkpv7s589gci6q82zb8a0y6kyqvy";doc="05h5i0b1y03j5y0nf8iv8hb5qnq1lh5a55nn8xggx2rknnq0d1b9";};
-pbalance-64002={run="1lknxyk8fprbrbvc38kyxwnl4q2pvfvlpyznbp50qil5v78qld7c";doc="1s7rz3zf51vlb7v98ah4ylcr2s17gmmwayv0jpv03yz65iwkjmcv";source="1v2ljik0rsn5zjmxygrzjinrnyx5b14l4qkl1xa7vlb4gxb8ld9f";};
-pbibtex-base-61914={run="0h5yi27rmh7ajih3ww4wn3z746mkdwrvz1pn44kklrz9nqryqwhl";doc="0j6dij9yx7cj4j0l3sbszskqdq9mr5svzjz21andfdhlp3pxdaa5";};
-pbibtex-manual-62913={doc="0kz91zpamg75f7jrnijqnj7zgbds4yiqh8iag3x5wbxy7xkm00ig";};
+pbalance-67201={run="1lknxyk8fprbrbvc38kyxwnl4q2pvfvlpyznbp50qil5v78qld7c";doc="1s7rz3zf51vlb7v98ah4ylcr2s17gmmwayv0jpv03yz65iwkjmcv";source="1v2ljik0rsn5zjmxygrzjinrnyx5b14l4qkl1xa7vlb4gxb8ld9f";};
+pbibtex-base-66085={run="046k2l3v0vzxa73n15999lamllkz18is3di7gh8k4jd7y61gv51d";doc="099z6wqv969yw705dwyykfshx025vdbb2azzmdwp7vdsrfjhzir2";};
+pbibtex-manual-66181={doc="030rhhb4xcijvjc0x1ylyk6xz5mn90wrlp5ss4yr6qlpzmq21b50";};
 pbox-24807={run="1b6xli52wbqlhxf2sk4ryighd6jaj6znvpfv6n9s1iq40ag943dc";doc="1qa0h3ahh8q990wbwyrp4glwhdhbcgzz9yp436083w8c9ang0lg4";source="15gqbvrsigqqyzcf8rda0z0kcw5h6cnk1l9pxjh7apz7i3k00i5c";};
 pbsheet-24830={run="04z9iszj9hx7la9zqqqxrsfq3b6asld4zxvrszyjqw7z3fj7pyz3";doc="02an134idar5ndk2kk2d446bxawv0xkrwg8xvgxgpp8s1pqdzai5";source="0ad7zs28d47p3swvl6kz2v1p2nskrcf8fjwy0igwy8d8qalk0dix";};
 pdf-trans-32809={run="0dr8d6szds3hlrnrw0rb7il23rxw5haz37dg3iacgcdkffnglkis";doc="1dcmcd57zv90jafx3whd0nn9hm5x7aynb5npassjqbglb9lfml87";};
 pdf14-17583={run="0gpbf1jxfjl56pn3sj50b6x0z3fqhb7d1dl8dhf31vgcj8sn9n08";doc="15rgv0fw23c4zbwlx149hhbq711hq39v1nka52mjpl7lgvvzny98";source="1wm9nlqws9g02zkk3rgrpaic293vfskfrxsn3s2jb3iz0f12bp2w";};
+pdfannotations-68958={run="1j63vhy9iwbcfd00i6gsgvrn0q2r25az38221m4758a5x0mggf9m";doc="1l8ddc4vwqnr65b81z8yr0al50p1pjdk3zq4yacqi6qf6kmwibf7";};
 pdfarticle-51127={run="123b9f0nl8wyyxfnbs5krr5ayrgl02hg9z8w87lj6g0lxch7dfhf";doc="1pg4iix7i0m3smy27xk5p03x8m6rq737kyhpf5qzckm276n88fzf";};
 pdfbook2-53521={run="027mgmbd3gnnc6gqk8vjnz8j52cvx71z5y6flrc4zd7g0syivdad";doc="0al7sc4rxwd7g1cmyh8v4qhmlngz19f0f08x8n3wbfnvk2f8n33x";};
 pdfcol-64469={run="1b5rzfx5lf0v3k1kb75j364jfdv4wg910qhv0218dp4mxwn985z3";doc="1qrd28c9z0x2jcvcp5041s6qbkcvham8m06xmjsd31kwnpr4f4df";source="1bgpg70150ifvrviwwbhzr1fa03fhnfa4agnhyfyp6y393i6dcc6";};
@@ -2824,64 +2891,66 @@ pdfcolfoot-65512={run="0i99z6niw3ryb7akzxxwhh0nkrajlfig6a2ixwsr8k5l4ga037cs";doc
 pdfcolmk-52912={run="09rqw5csr4c63w5z5c019rm8h4plqzwy0icxbzgap048a7x02kqh";doc="1nslm2frwxqcrm3spr601p2r6ga2b91d7v1v0rbi7h06h14mvxa6";};
 pdfcomment-49047={run="13cknk58kksg605m2jjkvmkfm47sdk56irj8xa3p0alx8c4cn67m";doc="011l19b3lhc8zn3dn071gnlg2300174xaqkdn83r631zz45yriv7";};
 pdfcprot-18735={run="0m4lf1rb2j81ry7v2g9lfqs42rizifd64q7xw9dzhnixp900ldfk";doc="0b9ac68snrs7fs8g8nqrs62h8jjfyjsa07psk8qc20nvpya3hjq9";source="00nmdx6l66w895fjir6r2pwrnh0vpn706i9wi5qxx143h75rgifl";};
-pdfcrop-55435={run="1pmh9zjxn4xplnwzl5rcb6g7lkqm19kzd1dfm08992c719clx38q";doc="0qayjkyn9sb9r5cvznpml0gd7vwpip0kf1b9r4jrd4vyfqkk6qqn";};
+pdfcrop-66862={run="099j54qmjd40q9mws11sadhzdmi70y27mjy8rpkw2ijhqgfhbiml";doc="1wnx4ci4p77cz7l6yihdbx62w65zd18smqqkb3vniqwr11232nqx";};
 pdfescape-53082={run="1vbdjmm9bi9ngzz2z1b8jnf6nzf9xsaj5pvyswg13y4dr00mnz6n";doc="1v81nw121acyv6mvpykgrcdvsgqmby8acpby5lj75ih4zya9gs4d";source="0jk7rnf3z1hlrqlrcx0bzic46v57d8vpm4w5fn4c37q1f4v5zmpi";};
 pdfextra-65184={run="11r5ifc28fhngzj6ygzfjk4j03xwri683498gf6zhwq0j3km70jf";doc="1cam2f5byw6l7rk8hb1zsw2l7qk52sv83wkx6qzgkhmzqbsh6wck";};
-pdfjam-56991={run="09h4s1kz13migq0slimh805pvnbfaazv9y6w1q5bcplyw0vibn1p";doc="0zpj2wzkx4mzrsmr7j0qx3zmq04ayxmdgj05a57pyc7gj7kwmb4q";};
+pdfjam-68597={run="1bjq9nax4i940y43b2iw2i7xjzd1q87h58sp4y1dh1x1n5a7fw8k";doc="1kh8xlzcbhnkrwz3yryg8ai7m315yw52k1ydapy218zbvjzrai5r";};
 pdflatexpicscale-46617={run="1z19y34c0x05yp49jqn0z8i3ghv0sz8zm0arb576rz7mskpivjqz";doc="0d1zzym0mgsbicp92qf60fq8l2sdbdx47517k9pj3v8g91svxlpw";};
 pdflscape-64851={run="07bmajz9ggwkq7pz49qipy3nmaqd6ypwhpxilsj9qw4bk5asxclw";doc="0s7bv2v7hcs90fvgk12ff3q89nhxp0v8zjv38wc5inhvhk77jvbd";source="1cx870l68mch1hg0va4g3vdjw4d508bw1kw9f3x9b4wfi7dqfwrh";};
-pdfmanagement-testphase-66534={run="18sk3gpxxl7kcn3vxfw8qmbm12ayqpr76iyhz370clhg2pm04day";doc="0nxag3hcjvdhmdc7vzqpgng71yk4kwjqgm643gr2j9bsx3zdysxl";source="0zg5hcnpy62spz27di14iv8gc97q0p1vkf6b1zrwb45na949nwz4";};
+pdfmanagement-testphase-69078={run="01ih6xxsmzp73h6v0wy9g10rwrmplyr8lpdaz99b5l0pyidh4p13";doc="1ghmz136p9pdg7yfv3g5zrlpwiv81l8p0syl43whdbkkmwky7y86";source="15rr5pli0zp8ziplpkyxzid1i0jjnwcl496pd2q460y07rdxhgbh";};
 pdfmarginpar-23492={run="0mhf21dcz4ndhbh1g0h3kcqza4ni6iigrkif0iryyzg1zcx60d19";doc="0arfch7gb07grg0n8ij0wfzbfzc8bv5izvhp3vjz8hl8ha3wyzgd";};
-pdfmsym-65324={run="0i776lqpwjavhvdw9ahzmjyaihcx072vhixnk70d7d32ph7vyqfl";doc="0v8qbi89cjcmlgbshny2p3g7c9imlaj3jwvrcqm3ykxxfycchfvc";};
+pdfmsym-66618={run="056w6dq5ymm0x71bcya5nq4iiflcmgw4fh6zv3yb8ihpjj3h00y5";doc="1vrgfpg21bzg8xcw6cf43bjc3gh0m3r0s0y8lqh2nmdl00pmybad";};
 pdfoverlay-64210={run="03cc0088b0iwjmx5wkcs48nnmygsg7w1xlvbi0pawgmhfvfivis9";doc="0702k1ckh9akj21xvbvn5s18x8s4nwk0m7jybkcl8f481qyhhv26";source="1z8n2a0kwp13iyja45l014jyl8aaw1hhnxgxfib6q8i0qd97xw73";};
 pdfpagediff-37946={run="1a4qmaypz1indb2pw4vz0hv8ihanhf9z0azs3zkv2ya6qkc0kphp";doc="12di5a3976bkilcyfg0imx3w8771ky0acgrag7xp9rpcggbi3r08";};
 pdfpages-65319={run="1ymrq5yhhjp5fg4sbbksyc44lqaz3jwx7lj0360xk14s6h53slyy";doc="1fn5sc8k4pfzsarq7j51iamyl3da7r1qv8jmr8mjafvrvzk6xbp0";source="10gilsm5b0qmfmacm2plhm1ivrvdnw0ikgmxapwdqi03qvizgyd2";};
-pdfpc-63866={run="0ap5mygl0vz0awqlmdw6j64k45cxi7aflvfk4dld2a7chr9dvfvs";doc="0w7bmhdgsgs9h9axvgz7mkmzlibp5bvhrd9crl31q3qdrh7x7wd6";};
-pdfpc-movie-48245={run="07d7d7h8zfap39dd3nks1bnpnfpgs8nrzzdsmchy6isqfmfrypgn";doc="1la9fvzrlik4ar3fdaxla5gbwpa2v49xrrwc4wy60i7h80vqv80d";source="07lw20wp5cqr0pvjsw3ds75n3hggxgcp9rbvw026lj5k54wik1bv";};
+pdfpc-68610={run="00zab5xlcqqvvwfxf1py7m6gslgv4drx8d419wl3zjmc6ww8156a";doc="1fm43d3q5gl8fg9p9n3z1nvcp6cykm271waphnjdkj29nbg7n9wv";};
+pdfpc-movie-67201={run="07d7d7h8zfap39dd3nks1bnpnfpgs8nrzzdsmchy6isqfmfrypgn";doc="1la9fvzrlik4ar3fdaxla5gbwpa2v49xrrwc4wy60i7h80vqv80d";source="07lw20wp5cqr0pvjsw3ds75n3hggxgcp9rbvw026lj5k54wik1bv";};
 pdfprivacy-45985={run="1l1nqf4ihwfycnb1x44l1dl2h9f3iy1ppvr0l4zb8qcjqhl4j63y";doc="15w8jwhksfiv0h2iixk07xvvmk1g2j322xqid753bcyks48xffjz";source="1nqjj51h0pcrjnybj3cqb8zwi0r1ipzzw8ic2clnf3in88pjzjhs";};
+pdfrender-69058={run="02zipdaymsrrryfn1cqmj5hmcg9r62mzrjil6fm8d4jgk8ihykm6";doc="0m1cdx7gh5w5a5g9n27a2amlkmy0ixi06w2a4b145sxy41acai50";source="11y3vy8709m5cz5r6zh3lnw451mn6l0674p63fcgqlircs0j7vr6";};
 pdfreview-50100={run="0saxaxhma5gdn150l934y0q8x0nigbcn9r7ixr8rwz4d85g05m9a";doc="1kdyc7h2dpr4gjzf9g0rx66gsxaiwran9k7vj8942pr3x2d2jbaa";};
 pdfscreen-42428={run="0kkdnwgwc9z1rqsz8cjsmfjdi3ycwi7n7pl2929yvvwixp10rr6f";doc="1zhg4vqfjjmg4z4blrr2zl6jp7m2c24m5diifgn5j3m8nwxp6m2j";};
 pdfslide-15878={run="1za0jp9dbrv0c875zddgcvddlk7gm47crmn97k4zx2s7glx24wj7";doc="1rv7wbzrlgj55n7r6i9bm1vxjvjr38v67lizmbdcxz1lfqbv0rw1";};
 pdfsync-20373={run="1wwndjn0058hflw73y8xfsmnspvaz61r55k96fmsdfb7xfncv1vn";doc="1dz826gclpf2knrgks0lhvm6rs1xjxqpzgbz4nkv1f8li7379y2q";};
-pdftex-65808={run="048dw9m8gk1rmx5v5ylymfcssbchpj9s5csjpip7dz0wa23yc19g";doc="1nrnv0rl9n0p6s35bdi4067kdb06v7wc0ax8pqp45x9gm95zxczg";};
+pdftex-66243={run="048dw9m8gk1rmx5v5ylymfcssbchpj9s5csjpip7dz0wa23yc19g";doc="0mszix35nlx7ba9plfdb26wclh33qzv11qd3b243ys0rkv9lbklf";};
 pdftex-quiet-49169={run="00df842vapzylgavkk2c0j8yg562n2jawwznvyf3qq6dznwf1chn";doc="0sa2gs440h3jd5i51hhbfvpqjpfwvzz5m32x3ld5q9k6zi88b395";};
 pdftexcmds-55777={run="1fpijk36lx5czl6bpbawlm8f34zp264l1fli095wha41fil25hks";doc="00xzyvl66fds400dm5zryrv3m5s42mv6658zx7fnx2wbd0jxs738";source="11516wkglckyrz41pz9cqj0xa2bd6v2l234k28ynnmfjsg56vph9";};
-pdftosrc-62387={doc="168wh53dnayihxnjxw1swjhgzmxv7qrs3h9q58dsdp3zddr6f076";};
+pdftosrc-66186={doc="0mnz5id6fywhlay6r38nvii0a2ks5gdb15i7s7wkq1ay9k5k6fq3";};
 pdftricks-15878={run="0vji4gmlg9b67yj8gb3aj2291ll1xg9p5vq2kvclj3xpy1vnna8k";doc="1hzd05l4yyz5giw9kqxaw410na7k85wj0cyw0bbwzxynpzxqllfa";};
 pdftricks2-31016={run="1dlzm7ivhxvz404nm61kxjn5arqgfw5z184qaxwn28yk6ri07s8a";doc="0k0zr8mv3xq6ibc7s016qnk78b1d22jgyq35jwimj3rm2aykdmww";};
-pdfwin-54074={run="1mxfvchz2h9wrybvb0ri4iygwn1ljs2jzsr9hi7j7ych0sjq1c3j";doc="1wn4fj00lpfw6jvfr3144gjvghdjvqxc13ji6kcf8q18vcdjfcbd";};
+pdfwin-68667={run="1mxfvchz2h9wrybvb0ri4iygwn1ljs2jzsr9hi7j7ych0sjq1c3j";doc="14i9y2p683d9rgw599yjllgyy5gdb5z560pbb4l5hlfj0mxzj2ja";};
 pdfx-50338={run="1pim1kiilydijs57zcsd1cnhzvcq5y621fb15hwg9y69s624wjwk";doc="1rb38sw6lyvy24hkdyw7xrbm99bplvcp4cfcdr80pdwf51g10faq";source="1y55s7h2cc39vp36ickpkc8dl42rmq77l1d47h1dxximyihl96x9";};
 pdfxup-59001={run="1vvddbdg2l1s2m47w9whvjd1pfp28l6mnyk1m52wnspm3mi476fx";doc="0mbqq0rx1k1hrwbazfkxf72n1wrkngp45gssgb9z2pfw6k3sv3vm";};
 pecha-15878={run="1ia3q7gygbg4scgja2qf5p7wbgd429cj78b8ffjcz68vgdg86jjy";doc="07b7kmf1if59nrqnsws5hklv0idjjxwp37a16dbjpcfdirb4s2m0";};
 pedigree-perl-64227={run="0a99nbm95pagcnww7wyxqwdycl1ags7arjnd9spahj1zn7xg1413";doc="0d13qx3al4qa7v9i4frii3vv3n52bln12d2dhp7wyjla3jz6673a";source="1xb778agh5vqbm6r14aff42wvipykjsw9yk3i0hj7ibz4ipcslr2";};
-penlight-64811={run="1k0ddyslhg68jav973s2wh5p4mgmy636iwf5m02sv4p1n616j61x";doc="0mn8q9fwwxsgjjzbb6gqq1m122y4sw0zjq307fybi8pg7q4nzz3y";};
-penrose-57508={run="0swjzbd10xvab086m7zjbxgq0jjzrxds534rsv6nkmsm3zr9qdfg";doc="1xmylw0prazylvqmqklhpfxhwy6wvbz9jln1cyd23m66297f8q66";source="1l9x5l78zcgrqf9xi1w518j6l24zbb6mh51fv3g7xcymr6miljvk";};
+penlight-67716={run="10lzsbz2ia477khfm43sx2qli46isf2z8pvsz23yvip32lmqznrb";doc="1hxj4i1zfbwbyl633wn9m4xvbagv7ljjjgil3cjfmdapxgr06n1m";};
+penlightplus-69070={run="0cbj9pg01nq7jz8qr5d3l0mh4rpad3jxjcd7j5rq3aqh8z5s9q7n";doc="13j9gb6h8mawihvg4gxlzwjfkwprsa9s5fv0bdlr5z33n8fknhxf";};
 perception-48861={run="1dqr68wkf70aj11g4ywr56si8g82bxi2xc9zdnw0nm0wbimy5zv3";doc="00g96wswsnpd0smv1s23hqiq4lg407m80nybmig4ibcrafjkrqrf";};
-perfectcut-54080={run="1hjppa3dv8a5740nr5jya445y5nb0nb2z1jlkqh386bnvgby8393";doc="1ly3zrrrfb3jihf02p2j5ym3m2gnr18pf2v5qg8rsj2l258xlark";};
+perfectcut-67201={run="1hjppa3dv8a5740nr5jya445y5nb0nb2z1jlkqh386bnvgby8393";doc="1ly3zrrrfb3jihf02p2j5ym3m2gnr18pf2v5qg8rsj2l258xlark";};
 perltex-52162={run="09vc7pbfjl0zjmbra41p5lmr6l6r4gh2x5h9h5hg1i76n4mfkd8d";doc="0sndaglhb92b4jvp0jzpvdiwzc49ijh309aysahrw0pwkdl2lv5d";source="14rv37h9qwgba7dqq8zzvm0dc9y4hmyr6yvvkfbh2il5zs7m8nrn";};
 permute-15878={run="17ky79fz5pb9xr4gwrfpnpxj16mzj6f3wnh9dfhddzlmbllw1djs";doc="0m83nafyxbixsyg37ia535h3axvf2vp6ky0yg1xcv8ppsl72fd8m";source="0k1h40himliydiqssvmzl18g28w0hfsxc6kv7wn1q41sm54knhay";};
 persian-bib-37297={run="1yzbap8fwmlz46ngqcy6hwjw98z1cxlprpzk6vg2qw7wvs57b143";doc="1rn6p3zbfx6vxdjzxavvbf9405cxk1kv56971n6i2bysb5h22w0y";};
 petiteannonce-25915={run="0xvpw8lh1zlkc89chbyjsfszr7ix06afh1fajp5iiqiyxb021v7y";doc="0nnf9bw4jdm3w28957bdfsl9z94a3dxz5kvmjrg0jkrp3r3cyrgv";};
 petri-nets-39165={run="1hi46pzd5cjvpakya2bl52w7m84xm8h03m01jfrry3vnp9hqbc11";doc="0ixpads25k51rlb2kapxgv75w5igbnv5isn61c29qpm51dpaq012";};
-pfarrei-31934={run="1b3jbb5ahwr0sgbgckmrfwbk3ir1g41n6j4mybc78iisxnqrx0br";doc="1jrg8k3n0mfc157nmv2n1d4b8aijvgr4av90ds0g2m7px65yd92z";source="1jgrhv8xgai1y81ddnqcrifk8wz47asvr3mh615wgsis38y6k2ny";};
+pfarrei-68950={run="0zp4msdpi4w1fhmp7n2s6cdzxss5a87k0dw7z9iw6csnnwaa40z9";doc="0v54c02fmsxzwc8i3050mlll9z1qgmk6vvkdgjmph735q2bmlfsj";source="0inlfabzb1q94bq2zw2416vaxbgwr4nw2yfax491dg5hqpglyl6x";};
 pfdicons-60089={run="1pxw1mhm2lmggs67ql176f6csajabhylmlxaxp47irk6mlihiavk";doc="1czd4z8rfnfp241lq3v6ri4hnij4b8pg2h9lcs3qa31r7zmx4hkk";};
 pgf-65553={run="1xai2x91jf241w03lndpa478dijfm52kyin1ci4s3pwvvqvwvcib";doc="059fvzbpq3nggjc3yddzgj1ci4xs5qrwkqvqshcnk0agn80zpcx2";};
 pgf-blur-54512={run="1w9p9l2nw9bf0rhn70y70h6lqqqx3qravgarmmz1z86ara26k49w";doc="0fq1w85wqqrml9jzi7s2n888165pg4ds8ysvgh56kbkd2zzahnw3";source="1pc8x23l6qcq356s843si16yc6yfrvdxg7v821271dndkg7d2vvh";};
 pgf-interference-61562={run="1l3gryb96av9zwxn4naxz5vy0y2245fv5zlm1dg31p88lflh2s5d";doc="09vvbnmcv8d6y75hxdln9gqspm35fada4g66w6z4kv1bg7z3vrlj";};
-pgf-periodictable-66035={run="1vshq0b212s9syd6z0d4w1q2y05142h4c002d7cdrzkcqqjp3zsb";doc="07wi1hbwky985rki58wzkqp0h6acimg3x30ls4vcpcscm1xggvbi";};
+pgf-periodictable-67250={run="0q5407piln8alj39g108sbkiir35f9zki3fhfmq7dfkd8910mbjv";doc="0mk48dzb8n4fisrifmwm3gbhrk4hmsma38nl5rpiwm7yy447ch5g";};
 pgf-pie-63603={run="0wr3r2997p8as08d172sr2hxspmi5bgsgvgwvkm27hg6kpi74zsi";doc="13xvia0zbgsrsy50rp3fr07hb1zfj7jfs95ai6cvy9522cw1zb0a";};
 pgf-soroban-32269={run="1y1c70a9v9zy8i58j19g5c8nc7f00zcdrdjmdcbm19r8vi2r09fr";doc="1r1rgd313fijmjqy468j25d55p76vxmcrgkp968riknych16y1pl";};
-pgf-spectra-66034={run="03s9i804yn01m7xqql4flps0h3xy1dhar5a7p7l822j1n5kdn0qp";doc="0dh2lmq2zwb58dwmrnshkh1amnk6l6n8ggjkgmliv4lvs09j7ri3";};
+pgf-spectra-66961={run="1zl4cmkd153yk99sm6cki1a0g5z1pfv5c1d8jskcxzrfxzzrd75b";doc="1iyny475v6h54crlfjm32lq37f2dg8mirgghs57cqrrcl2nv4qdg";};
 pgf-umlcd-63386={run="1qsnmhb0jdn5qnq81zx7gr1a1l93a3f2z12lfz9i2c0cqbjnpxl5";doc="1v2p1xq7y5a0mpd067ragvnw21hsvl9irwaszc6sdb9sqgqf2qh6";};
 pgf-umlsd-55342={run="0rs0iskzhmlgydk4i9idql66sk9dyiqrglp429b2sjaw0mbjyxvz";doc="0vl7wjrgnfz0y0pfp4izqi1528i81fssak85w1sl2n97lhyq8mkk";};
 pgfgantt-52662={run="18snhw1hvff64xq6jaq6wjdxcrkjwjv39hif31zj2r0ghsajqaqs";doc="1xhls9kyhf314rrmd8r3065qaffbm48mc746lwhsrh6vmq548baq";source="0hgjiy1gs8nx0211ar38qr3ql5yx32mcdvms0yibpglr2ncv4x39";};
+pgfkeysearch-69385={run="1map2bxnwlj2v6w4h36jfszz858a1zgdlamdjj0jc21xjsfsjvbk";doc="0h5zhzh4k0hbz9gnh6ygzsr8jm5lrhdx0qsm5z55xm18q7gp2ri7";};
 pgfkeyx-26093={run="0gh229dsrbxw6brfz5m2zz6x3zfsa03iqps5bgcr4bz0qfjl0a2s";doc="1cbldr5x9n649sk9dfcp143jrzxh6l4ibzndx4yr8f7id5nx3nag";};
 pgfmath-xfp-59268={run="1lfnqkws7gjjbzh0p5i0l94p1fjjsybwf7mzl5d7xzcap9db4x71";doc="07d6kybw6q6igfpn1cgjxdi3n5zz6ic2gazy71gb2mjqbzmhzp88";source="0jvy1qy47r0p3fx5329wqg4fnqlwlqsqs49j58qvz6k7l0n6i82g";};
 pgfmolbio-35152={run="1arhxgwpsw9ifj3yy36mv52r8843bm3v1lrda17r44zjf4fhimfk";doc="0kxp1gqd09q5h4ixjlfmda9jm25wd3s7dsxcqc32sw3qay4d84cp";source="0lxbszlky3q27cyzfnnvglmzim4lfjh14p62j43sj5w2arv9w3v7";};
 pgfmorepages-54770={run="0xarflkdk2xvfmmsafv1hhpdrfyddjxlqjjwps9yzzcwblpjnali";doc="1wsa6iqyrcjq7zyanjgaq6a1i5d7lm1bk9y07mz0bjwc2yv359zi";};
 pgfopts-56615={run="0g7a22d0ppdzcazrif8yjic19lvz143p6vwflz16p6zh88yhcdm7";doc="17q1mlaql7f510pz86n64sm4m97nii72jghf75qs5yr9h9lqrq6v";source="1mz5nzbhmbgzjkpkglz2w3s9s8kzrigg3wrd91dmdhjsm4d4kczi";};
 pgfornament-55326={run="0hvr6cbp4mzajmqz6fyd3x7qr9b2vlwdhkpc62axgm2sww8igp70";doc="0i1fncv9saflkvib43jp02mh94cv0nnq6k8psrf4l1yx95sdxnky";};
-pgfornament-han-54191={run="097i0gyxxvnajwfbblr52s8qw2y5ld52i4rybg4lk130qggx2v5g";doc="12vayalf8hjaapdfdnhr6jnc2x14l0kxak3qwi7xsn3cafrsfm1i";};
+pgfornament-han-68704={run="17ldl3a7gp2pi010hp1fh15haddjgni6f7bkgqyl1xk4yx0gjcck";doc="0v37qkx8j0ijgr22bya5m6ka0mvnymkyqsdg3q4bzhcfydspsvwy";};
 pgfplots-61719={run="1g3q8yr4i5h5jqj8w5yh1jix2ia37la59y0dcmrj5bnsr8zbmbx5";doc="0fd0azswmcghgpajgvxh82752j4mp5avslaicp2x7hjddh54j357";source="1h9js7l4vygn230svbmby09k966gkbgjxykk5vig45qdr7mqg3fr";};
 phaistos-18651={run="064gh7pwrsp37dxvjfiar9bl1i30a1kngirgywndss8xmrvqin9m";doc="01wd0636h2xs465rypc5q7saxhind14krmk9dp9rqc9129k7rc0q";source="0l6nmd3v9x3j8if5aryak2kh42zza0g73plwv6im6hpxkhhb21jf";};
 phfcc-60731={run="1w2la7mmj0a3sbd3k938bnq8fbl6sdy1w6bxmdfgiywj6wiib6ca";doc="1y4y0gx858gida7hnfngar6damk1gfvpzx70zbjsl2v7x6qkvkm1";source="0n7l6q9f2i4n6lc05ky9vgm0ms2hdwxwynfcqz216pshd1k0b2m5";};
@@ -2900,10 +2969,10 @@ phonenumbers-63774={run="11f7cnv7kh2pry242nxgq72kcjcaxg45714i5rg5w7q5nri4fkf6";d
 phonetic-56468={run="1cd8x4qajx3896a1bzyhnrhkg8j73lffri0fzks5h8s27jlnl6al";doc="01hnb97dwbd7g4lflb9kz3w0vhnk5nzni31sfiqbg35lypa0pbwl";};
 phonrule-43963={run="0xv49vfvlfjad65gngbk5022vcdi0w86mzqk60nbz3i8npvncplf";doc="15bgpzfxjm22f4vqq9nbjhldvxzflrpayv51g383nr41j3k4m3xx";};
 photo-18739={run="0d9mkavi2x4wha1c9zi2fswv7vsi4hr0588gj82vwmwlrb6v8gsa";doc="0xnxkv1rkz4c7wh7dm8rna2g2zf9i97aaajlfqsr6ls1d9by4zn2";source="0vxja102ajrygarqfg0y7bmmhx2my66dlnfp7rsc4kldi1g2fs3j";};
-photobook-66554={run="0h1y1nk3bn4ch1jx5k4y3bwyaag737svkw5bamc25f95i3nknfzd";doc="1jacbv16ijyh3csjfg9r8v4kvfg60cclxk0jpapdqz7fyv93y003";};
+photobook-68313={run="19538cm7z4sw742y03ih5avr6bhxwnpymmppp8w8ah2p4ixrwqsx";doc="0bwb0mw20iz32cw6rcagpdc247n00pnql4nby8vrkjhbyj8l3hp2";};
 physconst-58727={run="0078ggfyyr2vh5ni05la8jaxnyxaz2jn0rlahwkw05ng1h5nwl0s";doc="0d10kzi278b6yf7dvm3j2nsks43jm6jfjql5jyv51l8bq5grkmr8";source="1qvhif2amxfqvwj6vd82f9mjgrk79crnz4sw5v19v02xzxv66fsj";};
 physics-28590={run="06nwz84201w9vky4s877fsiw4pk1kf6iq9yp1jcap7j57nb4l23j";doc="09zmpxkrrv9j2ip034vqwblazl4kyprvp24k0f2k0xgc4fja2pqn";};
-physics2-66119={run="1scbrq7jzmzlxg92skb02ag7350y4jj1gf075czy8d8y2lp3qii0";doc="0hbrrr9ci2c5gmpjgdqarjyx2mnmqaq1rd2qj1g3v58d0lf1izxh";};
+physics2-69369={run="17br2lisl7qyqvjsgyaa7c2fx3hvblj9cx27zfax7v32aly423af";doc="0lwn61jdpzljwlgy1yzllflziwqchq3fwanj6c2yy02rfyi0lxp9";source="1g1psidas3yjknj8nlhrvgjiy6b1b6z42d8260szq8wmmmybi13c";};
 physunits-58728={run="0fzx8c7sgd6incgwdbzyd3pb9dmdajb3qdfd3mj8sascilr0c2h4";doc="0ha1zp0lzx2q10m0wp492sf45pw5cfd98s9pnzn2wxx3k970agf8";source="00p7p4hh49i9xwnfd8y7nsgxajjcpdlxw1asyxb8q20x1w1wy2cs";};
 piano-21574={run="10gfxklfwf60p54wcbs4l1jpwasxvvbnkjhjpiygnk6mvzjx7dyl";doc="0czqrjlfx1i6k02aa1r1crvkw7k2fl17vzqzrkc97msprrymxwgk";};
 picinpar-65097={run="162119bh7hx30742k0f6ygaa0w9hssl2nmp63rmvdnpjlazfiizp";doc="11v1aynkvc6m7484h2pmcm24405v5pdgkvmjg4jabgfkz5q71g7h";};
@@ -2918,10 +2987,10 @@ pigpen-15878={run="0zd90dp5bx1l5d5ka8lzx83yprl1anh7r4qc0laa455dix3swfq7";doc="0z
 pinlabel-24769={run="0dlg15b6cjykp481xn03kg3p1zqwccwnm2la710xdwf87p1k4bp6";doc="0jw94fl3awpyla0flmw9f72j3ssrqh1scfrbx34mxlbmnl4z3pfc";};
 pinoutikz-55966={run="1kj24i32ql4jfhzfxyrcj0nmyyhf4ipic7zdzcz71za6njqv3gql";doc="15farzmd27gp8ms5vck6xcjs0cx7rp47nww0shs6r0b0l99946m1";};
 pitex-24731={run="1g91l1z71481hlwz8vmdac0g4vm5d6940gy1ly44qny626k9j079";doc="070qn9b6bq4szqa9wqfmb3qbfxcgif79dzbb3qqhvs7fh9bivqdv";};
-piton-65835={run="0bqi54s1vw4hkvjv8zr1x58mfg58sh0fi429s6ryqlb8cgv9y277";doc="0b0py0g5gdqaav2qdmy0nx1l8cqprzgnlhw9vfhrmy5s6sa9m28g";source="09cvyin8bvqxrwlq3fvf1vpz9fb9p1074n7x6chkvnf85lvc18xf";};
+piton-69320={run="0r88g4c5rc2zg2vw49a7cswrnmqcynkhhck5w4f6rqm2iggbvwgl";doc="07d13hn6h1wszszzfrj8zib5vvm3kv3z0543c404587qm1s3b94p";source="1j0j70ap527g1czw9ca6gml6blfa0djmjvhvkqlvyv024msm32l6";};
 pittetd-15878={run="1s8865g4fv04ha7vls9frkkmx8dyn0l7z1rqvh3dkyy7fdgq4vff";doc="1jkdny3kqljfjnf9ywpz7xqvfka8kwi33jy3z2yiq1fvp8k60ar5";source="07k0ilmwkg3wvgfpqyqc60hn5mlsj8z5lsx8mq8h3igwm4j8krzi";};
-pixelart-66119={run="04dj9zj2g4jhbsv7aknzvmvb1601da29m2v3h1h5qrywvk7qldqq";doc="1gw05nrh65w3dq6yr68wrhgwxc2qkwwimjihds9chij0h593hjxv";};
-pixelarttikz-65649={run="1v46ll55jbngcvj4z9h8yc70ib2b0gy60m0civzzacf4mscbwkxw";doc="1mmv87csgzf8sfws795992pvqj8k94f56akiivylip2bllz3z15s";};
+pixelart-66012={run="0d41qzn2gsqbgvgaxk9a7cj5r285ayn8amplzv57j5c5azyi6qlz";doc="05mcmy25mdl42wfdd3l64bkkxrvmcj6lw9zb9jypaf2rrdfnpq6l";};
+pixelarttikz-68520={run="1zn0cpmmdfvydizw1q9lhxdj185gyq2hpzl6rpjfxvx5wsm9piag";doc="1p5aa3mjv4g5qa3vi988v583d8h6237lq9bncnjaa5c1sd1l727l";};
 pkfix-26032={run="1sgss755cf1zrpv3x74x5qnqc6w81cvr1x0w7875ijh4c1xxkn9v";doc="0bxijxbbj9v4c5p1rg4gkqnm75rq516vxln6s6174ph7abqrhvys";};
 pkfix-helper-56061={run="0hf9hnjw7ws0mx9w5s6ik17zlq27fyc3p9bgya1wxbh8lcvrygn2";doc="0fh59nzzl58fgpkkfzvi603sfsfnqrj8s39k4nn97567gpv4a22a";};
 pkgloader-47486={run="1vmpxv6x2dq9b4ddj3xxqzkxz213bvz7qn24jlx04svdrq0cnpjn";doc="064qsri65nyy25sz8y9avpxyg3rzcspjr1cfc5jp0vfd07905zix";};
@@ -2935,17 +3004,18 @@ plain-doc-28424={doc="062d6hg4npy57307avvyd2sdxnmyrh5ia2rdb17p6cx555k8zxwq";};
 plainpkg-27765={run="0dq20a8nyyyy1342s8sc1z1i1gdfz49dmv2w9fl5dbnligzxgdfl";doc="145249b9w3jpf9swgc4293r05p7r5ylmxvx1a5qlv3fgni945vms";source="040m08y54xr4966f8b6z38spdhjh197l56am3wpza5qff4nbcj6a";};
 plainyr-52783={run="09py8psdqqnxmq2nkczxz092668zscvf9hbr6fcvrnj0blvz3wxy";};
 plantslabels-29803={run="16hzr9zavc26mqddsq4yzb2y60r2lh1yjlna1qyaxqrq7fr76g1z";doc="0pvy9gaarrwr4f0bzdhj3xgisfmpd73rfcv9mlw87k3l9y2vly0f";};
-plantuml-55214={run="0pr3i90wdf440x5pdxn695xjz4cpc17y12mkvnyd1rxpw09003jr";doc="1z0pgf56601gyhmqqq2mcil4rp1n6r6nsrvxpw0kra6lnvkppisr";};
+plantuml-67097={run="00n393r717v82g1g70qs1b5isw4x5bwvlmajy1ahqrapwxrh7jfx";doc="00gihdh9lvs2y95imsmsjx4qqmqr9maavbvv974s2k82bg24bkkl";};
 plari-15878={run="0jybi5dvl6ksjpgfqfrdnx5q25gl5xgqhwax4dk1shf6rbafkgyg";doc="1js29imppwx2jny1hcvjbkz7cc9qrafgniy9qd11bvjyp3n1vly8";source="0br0vm2ncrdyqgazdr2p1kvgl6lq124b8h82245jc8yz7mnrz2nw";};
 plates-15878={run="1238w5267spw6liidzxd550hjdjxsg3d1231l9vf5fmcifllsnmg";doc="0w1jn22gd938zqifhbiikgggbly2fjhiwjdh2jq66yax7p76pjc3";};
-platex-66199={run="1qddfffw7w3l0zgf1dq4376fx5m76jys8c95wwibxdh20vydf0bk";doc="0h4vzrdvb28rr7snwlcbgsa1wnb2zw6ddj53frqcznm83l799m9a";source="1pa7yg6369fh72y1wxj635kv63ba3c0bdhlg3ws202r6zl7ffmab";};
-platex-tools-66200={run="1yrgp92fk1ci0skh2lqw2pcbnrmsys7gai0my1ijp65zahdscx0p";doc="0v34yg2wv8jy7dj6vszx8p4rqpg0mnb574axqmp2irl2givf6wsj";};
+platex-67315={run="1qddfffw7w3l0zgf1dq4376fx5m76jys8c95wwibxdh20vydf0bk";doc="055pc891zbkjxdzl1wbkxrxs3flw79zms9ghnqjz2jhw6axh2khn";source="1pa7yg6369fh72y1wxj635kv63ba3c0bdhlg3ws202r6zl7ffmab";};
+platex-tools-66185={run="1yrgp92fk1ci0skh2lqw2pcbnrmsys7gai0my1ijp65zahdscx0p";doc="0v34yg2wv8jy7dj6vszx8p4rqpg0mnb574axqmp2irl2givf6wsj";};
 platexcheat-49557={doc="04hvm19x4z7vq2md3p3r2wwa7iqkgkxnvvj1xx3s9145m6fjib5a";};
 plautopatch-64072={run="16m2dsqws4z0i04wfman4m7d5p9y5dij8rl6bs0vphq4n0hcqhh1";doc="04npb7xbhibvjjxh32m1g2c0r3q5j5jhjgc7hn1nyzj2hzz415sr";};
 play-15878={run="0gs6iibb9jkmynhvwldwrh8rvalayv8vk8ziyx9qyqsdsgh53bz1";doc="1dvi29x0fdnb83bkqfsv6l2jp9rvvnqpf1paznx9pli8gvgwa1rz";source="0nlyi6ra8v3pgk5lhhvar848mcd5zqbnc6mbqnbxsj409jczd0rw";};
+playcards-67342={run="1bqk76g9mg86rkhjl12g41dph95zrdby9pddp7lac6bjwvyjg6rg";doc="0m9yvn6bxz3w6l0vfn9ycllj50az3631v5xabk3cjrnlhdq97qcz";};
 playfair-64857={run="1yy8c8aks9c37a18ynilrag254ffcx8fj1xydsi1a58gnifmhi0f";doc="18axmajlbgll8cdjw7v13n0rq9dsbpnm4sa13mf46dq4fhy1i8s0";};
-plex-64496={run="0lic5dqd5xrj0skr400cx8hyj0s2w4qyam70fdwgj1lwzv16l868";doc="05335pp0ghp096x9fv208qc7yxxld8nc3sq1y7gjf90n5h866502";};
-plex-otf-47562={run="1xlckvvrv9j03gzg7b4jw2ff8zpp8qi1996xlm6ixxj6kiipk9c9";doc="16yr6amxalcsjnkphfwyn140k7q1lgbnch6w5iv1b106q2wqxx69";};
+plex-69154={run="0q8x2358prmrlh3zyqymiyq7i2rpzdhv2gw7zvnzjzx7s3kwdjq5";doc="1bpj5qh46d4n6ymfx500p44vj0qn5bqkz8379x3pn5dcy7ia8kja";};
+plex-otf-68238={run="1vzscj27j18km0cjjbfjnls4ylr1b067cynxi71f7wv99s29fw0b";doc="1nyhqvwax36xkcvwd68yb7y5mlainwdw0czyyvl2yd0f0r7m15g0";};
 plimsoll-56605={run="0x39p7fhfyxnz95g44ci8xdiwiq0w2n7z3vq2vm26l9ia9q9m6d6";doc="0rjjk5l0zvqmj32m1xcyrawzzllbs11bzb4i4cvzmnakzlwkwcrr";source="1b703r0ssg8q021z9dc8n7p1w7hk5b548icc269gjrpad622acmk";};
 plipsum-30353={run="1byjqmx68gb2xcb4nw429z7wnagv5l0pi3v13dlwp57sgfkxrz0j";doc="0gmq7rc2r3r50b7w5kqglaqmrqnxv6wav8gz09a2skkir6v1mpgl";};
 plnfss-15878={run="0l4kjidsxzp14ii850m23q3yz1z8my9svqrpd5hi6v7qnv73vdnw";doc="0iw938rnvcfly3z5v5gikd3svx4mxwfhw0gsyv26m37l5slqvf1w";};
@@ -2953,19 +3023,21 @@ plstmary-31088={run="0cda8irxd0gxa18x47v6d1wiwwwh6w30fl9ipxdz112h67l342k0";doc="
 plweb-15878={run="0yimmz965gsb0ddvq3ck28x73p9fn08c42f4331088130l43dkx5";doc="0ad3z41r1a3wkwr7lr9hf7n4bcas10fdjky7f9ykam0244r5q4pw";source="1zpnyzxf125qqz6j3m2182yn71nkrlaan1qfwl98v020iia6vyv1";};
 pm-isomath-60368={run="0kl56njrcs2qklkr49bnkx17qd8csa5bcanc4ypxxv883895qg66";doc="0glkk1l2gkqzkjg4vwi9qd3yfv3xsm4ssi03jizy9dxrxbgl60z7";source="1ly3bh0b1xl5wf3gxvzrwwg2kglvqmaj3mb7alq5x8q2wn1sxyrz";};
 pmboxdraw-53046={run="0a1mp38f2562yq3nzv39ffwhnzwpamy74pvqnigg7hv2v7blkijh";doc="07f1n2wpfqrd62agh0ddw67fnl5qczw16640h3v5x7yw31dx4n29";source="0mqg8xkhqy18m2sbp2i2sv58n2hxf05qr215kbmh0b53lbp16pzc";};
+pmdraw-69366={run="0mxjnrrbmwy6bs8jnm6zk568kx07shz4m3zccp7ppxcrr4b0y3fy";doc="01cxqlfnbqzn6cd3jcm01bxnmas86lpipcihaxk13w0zwaqvyxzw";};
 pmgraph-15878={run="0mrvf2r4bv4qa9pzv90ardy5ncq2kgy3y89pgr1acsm5cspgryr5";doc="1pizlqyb0n20apwb6rvh6yfncyxnh6vfhnvc10il9j4894rii6mw";};
-pmhanguljamo-66376={run="0jhibwvph19i7hmd81b8c83g8n2dd45hj0q1l2y59lx5a21zisrf";doc="0bk405rl1vs6dv1dwn5aibld2rpa5cwd06p9s3pa6n7s8aj8frvz";};
-pmx-66119={run="1dwg3v91z6q6hcbv8imrddncxcf9kmyfsra589drnjldcxcl5629";doc="0z28521xwbibzg83frxy1c5jzgb5w5h9aysfj2hiiyjispxx128m";};
+pmhanguljamo-66361={run="0jhibwvph19i7hmd81b8c83g8n2dd45hj0q1l2y59lx5a21zisrf";doc="0bk405rl1vs6dv1dwn5aibld2rpa5cwd06p9s3pa6n7s8aj8frvz";};
+pmx-65926={run="0brg4xinn6sg8c9jvh3cvznqhlg0l8hfqv5whsh3yaajc5pn40rc";doc="0pd78a36zwhbn7054fgknpa56jli5hqssbhz0qh8fmqxn6kvs8r7";};
 pmxchords-39249={run="0yv1c0s3zjy5w65cpv9gmdr13wkfg04jc0g7b1f0mh8ychhdab1a";doc="0n6g5f4szxsr6zqqp2czi29m1dncfgib1pd90mbrjprvwh0filf2";};
 pnas2009-16287={run="0yl475rlfhlnd9d0pyzm1gj2gixrdzyn6858j1ndvkhr8vc055ns";};
 poemscol-56082={run="1k1vq2hki8jq70d0lmw9sbzwhp7mi5sx735wkrz9046xd0qmhq7w";doc="1cdbv1ls20p764vkllgw710fm4v8nbkw8ryw2546lqa21v9ki4sx";source="1l6zsi6x6akb4z37iyllg99schd90bny8r3pz8vddqjyacnf1j7q";};
 poetry-53129={run="1z36zzm75zidsb8zixmsdgngvg1gyasxdz4lcw4ikdwvjmswqzqr";doc="03cal4780m1r6i1g86d2gil5h6n0h8dkiv8phfjcp890y9vdw2y3";source="0y93c9fvjhfs70qvnk9ff7hwq7zyq8hw8h65bwgr3f26b6skfxyj";};
-poetrytex-39921={run="06h9aqwryssmzkagr5af598ic2rr5j0m5h5mwaw3ssrxwry86mxz";doc="07jkb5z8sdc8gp3j2fls8hcqrh5g67wimb0nfmmz5287why1br3w";source="02x9gadfnianaq3hjrhllrql20p1aa81jv8lc033qj47wml9fajd";};
+poetrytex-68353={run="06h9aqwryssmzkagr5af598ic2rr5j0m5h5mwaw3ssrxwry86mxz";doc="07jkb5z8sdc8gp3j2fls8hcqrh5g67wimb0nfmmz5287why1br3w";source="02x9gadfnianaq3hjrhllrql20p1aa81jv8lc033qj47wml9fajd";};
 poiretone-64856={run="0dc8ll3xk7yrf3irrgl5bh4dwvi6mvgp3iqvzfi26jv12m3fwr8f";doc="0l1ndiwxpva5r7zdgcmn4hghi31w2v6vd0bvmvmywhx82ra8spsx";};
 polexpr-63337={run="1dml5b7zb2w4cawqgvqld63wlny45vnz7p8y2pc7b5h86p51a0cr";doc="198dhv2wlclrs5sqdiqk26llyhjk4l4zr0hlcr1cw56dnhdh2j75";};
 polski-60322={run="0y66zqxb87i8wymryd19hjws7y9snks73030r287lbifb77kyx4c";doc="169z3y419d3afhmhk22d0h045pysdrkhyvsgrs951ah3vgf8n5cv";source="1m8pysaiynxb64n81b8zj3cly6g81w2fa1nrknqnxm27bjzn2jrf";};
-poltawski-20075={run="018iqwz4apkj8pwc3ws7k00zldnz4k02h1hv0ry9d83z34xswfsn";doc="1kx83mgwkxd0sv2xjzvn6wdsbdng6skw71z2xc3xk16lk356q8hc";};
-polyglossia-65792={run="11spw6qjic3wv6zycxjmrdpz23xj365kw26r2gmr3vxj50sq88id";doc="1fg0fv6fi5iivyrcmxw9b3xlw9v4ph5bffl264vm3zs1387iqb62";source="0jhvg7qp1sv7lqbmz2l2wiia3aar1srw2bammb7zl6s3sv6g0vpn";};
+poltawski-67718={run="018iqwz4apkj8pwc3ws7k00zldnz4k02h1hv0ry9d83z34xswfsn";doc="1kx83mgwkxd0sv2xjzvn6wdsbdng6skw71z2xc3xk16lk356q8hc";};
+polyglossia-69093={run="04mn94vq8fkg3a06ivgfvpwgdykac5di2ibi316brz9ypsglvfjs";doc="05b84cypv1ifzip7dvzjbq4xx3hn23qy2430faw527nv8zsz30a4";source="1cjbwqk3r91l1pl68jnyk1gl192gfadfqy3jg9a7cmrnpkyihsnv";};
+polyhedra-68770={run="034zv3j4ga0xqkqn504fdwrcbzjh63v8zzfchjwcsbb2qn1x2rix";doc="1a01r85nliax7zll3qz212pkz2yix2xzh15hlbpqgqslh564fkxr";};
 polynom-44832={run="0vn9k3vci15lq0f6r2354ag4bs55jcq6571wvz3k4daym5ka57s1";doc="1cxsw0b5vxy191xy5clf15hb2cpyyqj5ipvgcw9n0hm8ka3g9l1i";source="0qh4w6q9qch3r41ps38yzlv850wcqvf6b0b6vqirk9lq978k387i";};
 polynomial-15878={run="10w1vq7101hnp2ifaa0j9mfccg9y4s3cyms4m63sx54lbpj6rc1r";doc="1vn0i77hzr72xkj6ka4r8n0g0nbz382z729v269x6p5j9qqmiz21";source="0hsb8yyk6ssih7fpc6qiwaf40cwn8xx4jgwqgpmfgkc0x1qkpri2";};
 polytable-55837={run="02gsan2wakxsw1niq6l82ag2rkkasi1nclf5yad2kl6c5654gp47";doc="03k3qz08bfqjyw4ymmibabbaciqz3srd2hll9np7xdphjhf4d2i2";source="1sh5wsb5i1f60sqdych0b3zjcli2h4g46znb0q6n68r4ma7xqixm";};
@@ -2973,12 +3045,13 @@ poormanlog-63400={run="134qh7xsn7yxa9zx98gpd2hqx3lkd6sqc4rzcandvzi6prsjkip8";doc
 postage-55920={run="10s3lcypskq2qmlyqcgldkg4i4a4qbbqn27v6cr6h3j4z93zir3x";doc="1zy7hrrwmdlr3vib8i8vliznri4p8dhfgkz0fx5qgc3ji15ks095";source="0h89r91diqwc1z9wzvbsynazv5k9spg2rfvg39kzb83lipxiqwjf";};
 postcards-21641={run="1glfwj94drccwmmsx6icc9vyzq7w8kvq6flkkbg1bp0rrkjf448j";doc="0cvhgz34mplpjzzdpy2bxblmz6qxxlshadj8in810g3y22v39khl";};
 poster-mac-18305={run="1b1zq9ay8fxqn9593f8n10zlkirw2b0piic71b9fx6s9a7x82w7a";doc="0wc0194ixbrl722a0djm704fmbf49p7vxk5fyv6d3gyznja54fxz";};
-postnotes-66027={run="14ww41vw8ralwq2ajcb3fg7l46nrl1kjjpipd36hn83a5a5949nz";doc="1qmch1b2wcs2rgna1dcpaa5hib2fsb4bgcyk9d7y9fc69klrrr6r";source="0swky5d52qdxgbhrsp0ryvamk6z2b9n8nb8jankayx5b27p9zk5m";};
+postit-67344={run="032zhdciqwyfng7ll8bpnyl0wndwpm3q4alh7qmsgj978ga97q4s";doc="13j5ygc86v2nkcv5g18j4nacpckciyr641qknpb9mw3i4k39rly4";};
+postnotes-69102={run="0m9izldvlngj81c6nx9ig5civvvxkf9mh3cjj8xh0r70pf3i35yq";doc="1qs6z2rj9k9dmz14r0g1n2iz7hfssr5ysvk7k33y35c6pwc3vvx0";source="137f66097fqzqbzwfwzyqgmdax8z2a835y8ixrna1490zvakbriv";};
 powerdot-59272={run="18ii2qxz7c0wal5xqddyzd2j933lg4z7xglxsxn3vgp8ffq5kr3n";doc="0zpwjmvlckp46ycdldf049s7qvgbpx8cx5zlvzh81qhgdlgximhl";source="1v7pxr134kndndk542f7bs34c5kj85xy0cwvwlhnav89ff2mh5hg";};
 powerdot-fuberlin-52922={run="1gx04y9ysvwzghy38k6izhs9gm1hzssnb5zh8qjjh8v99mk6cqwa";doc="03ci0lcgw777kfmnzas13q75n03z8v2im1wzrd8hpbcwq18mmn2v";};
 powerdot-tuliplab-47963={run="08f25qa5fdacsd8i0bs8y0p3k0zjgja0qp4ak0x3bixz7yivg5nx";doc="04b546i32k1cs6armmnvr8aqbfvs0ysarlsjmsci9xdrz3clm5w5";};
 ppr-prv-15878={run="05xs41xfm5hjpx9dzrngaj824rr8cpwcpvzxsyp1xpzlsv3gk1m4";doc="0rfrxzfm34kn4sgj1dzvdyjx7s7nkyjc785j7pgb609svld6jvyk";source="0miijdgcsn709kpp0zjyqxyxfgk0f798v748brmqshb6mfxbryzn";};
-ppt-slides-65194={run="1n7x9fqd9faciqzwh82b8f8ay2j7wcm1bbr2gr87b3j00bw6b5r2";doc="1kbhdlcg0zmfyq5zcwqkzn6d99zjihx9yb26smrgaqzxdnpwvsxf";source="14a1r34crjn63i39ykz1cmjzf3h31a6w4bmlmhw2cfxv94khyy02";};
+ppt-slides-68764={run="15x2rzkbc43mh39wrmf8fi2vdn4jxq2cmysl39slq2wj7blblhwa";doc="1lkkvn5giyp6l0mz7q0va9p1rvwikr6b1kw4ry1qlq2jpa4zjhfd";source="1jzvqvy0838h3md6i9j4pk43r7z2h2ignbcap9lg6cmwwkril6bd";};
 pracjourn-61719={run="1idcncspb2dcmrfsr8bf1ar413mc51lliq9xgpv0ybsiv91yd4lj";doc="1hks8p9vksn88daqyn7rnsaza4i05dgfb3ngd5yrvvw0v40s3acj";source="1jbicfqvvyi4nnmpqafzlzlx459v5cyv62wmq67c2692am8a04v8";};
 practicalreports-52312={run="0rv5rsba1xdwcv89fl640yyqqk8c8vf2w647yqz8xawm358la42n";doc="1a7p22pkmb365haizgg3ainxlr2626mg6p9962cy0933hb59llcv";};
 precattl-63967={run="1lq5f5fx93a79q144980balnmnkvcn92gi85df14iyj96c1zpiij";doc="12gmnd4fafkgrffh9smd8grv2bsq1dajajh3s6rqnf2l8xr1wqkx";};
@@ -2988,26 +3061,28 @@ prerex-54512={run="0nri97arzym6z3pjzidlr6svyk1dpr4yrlgqzh2jcsrqhwliifwl";doc="1w
 present-50048={run="0irxkzfg19h5pn0drgl5dlpz34j1p5jpyii05b2xjz4810gnl79h";doc="0c7pmcjhc3p4ilx3fr6pxc4708kl7iw1lds5ngh8mlrwz0hhsd96";};
 pressrelease-35147={run="0hrx80i1nfwyhhda415v67qxkgj6fqbg4bicirdn749bwc0anhar";doc="05spvrh6dfq16z9jlswzqrwnscnywp482cv3bhak4vavbxs8bf35";source="1c7nhvaxs4xlycsx2n6bkyy6rhnzc9ddcnw6cccpgilds546ns4v";};
 prettyref-15878={run="0akbp6wsxn4swk0kwxw27x3lpf5anwk49bb8pvssaj4xy68hyq1h";doc="1wmvvsz7y0idwfki553qkfhg8j7k5h79nlhmaz6ln448x8gym8y8";source="1w9qckaw403a8nyqyx8qyqdn3zfkxzgfzj1hdw5vwi2805bbfy1f";};
-prettytok-63842={run="017svxnhqj6d8dpfdppzpnn6gjim78w95wlsqkd5vlsvrsis0x2x";doc="1h551p5ncmjckxhry43gqrphfigzciy93cl8lkk2avpiyj57xvpk";};
-preview-62130={run="02397l99gs9mmx8arh12xyvzr6zlj0bfz8hp5g45ki47a4xqi329";doc="0isix7b9qn6lhashmzr4dns0iyv0nq8x20y6y0hgz6zzdqg4a72l";source="012ihy1wbcl6pbw6la13qbiz9kaqhw124cz7c2glxyvy37jmhn8a";};
+prettytok-66884={run="09lrfza86v4haac2h4pg68vqjdx60h79f3p7my59mwdk67sgbxwj";doc="0n6w3d8fbm7pidh7iga8vmlvx8qvql90k14hahy4q0i2b8dpg2bv";};
+preview-66924={run="021bb1l1k1qpwj35v81s26cw599nk9vmv6q9wk03x9b46ir0mzxc";doc="0rdk8vjlps3q1b91xk2lrfy14wcnfkbdr7zng88wjw6iacp0rgfn";source="0k7nla9s1dd0afmash82izyb4va1wfh3ip4wry2zmgbqjkpjg0bp";};
 prftree-54080={run="1sdb56cvlfrys3f884hg6qpv1nwd6ywfyiq8168bs78g4q2ah4by";doc="137f5nbcm6p428an3v20j5cx5djvdri12ph07czj13877pjy9ccf";};
-principia-58927={run="19xxp7m5vwlsa45a4yc42g0h0l988ml60c6qvs5m3cmz0aaxxl28";doc="1li30zpf3k1izhcmf4f3dpjbpnn01zk0bzpcpxdsxrmh90fjpjgv";};
+principia-66625={run="17vkriwbkwjb2ksxbv9glz11i3dczj8hh4a4mfb3signj2dwyaf8";doc="1d7fbkmjbi6ym7kik631219fa4c1cs80k7f3kzzzsrwkmnhrq6qv";};
 printlen-19847={run="1h6q95dvpldmrfbpdv9v19p34iwq3jzz7vs0z7b6fnijyybjxnpm";doc="08p9zwkgjpkh7ip3i54qjdazgnwq79v15hvz4j4y2dvh294nmrgn";};
 proba-15878={run="15d8n2ik6m5sc4vlp3k2w3h5h8h5s4agijgcnlkmklw3qv172vii";doc="1m2mbbn1fa616dfxkb7x8azqsvczyifygjmbblsyfkd5kl6f8dwp";source="0wbnfa1i6vbpbq2a4yhsvpyifiw1pirz72qasxm1nwmgfg5dndx7";};
 probsoln-44783={run="15zsh16v5rs0baqvy9jwn59d95qj6glvc5h054ldb8sy5nwkl3sk";doc="1l5mq047bpdg21mjdjwfs6ghdh1cb19bf9y5939nlw1wyy1flcfk";source="1lzai2ynjnfinf38jdqb0bdccrh58jbhnwnpm9ikskxpzy7v262d";};
 prociagssymp-63242={run="1vs5xs701gkm4zl6x1qkzbqssffdhg4i3cabqx3s8hp07nw8h7fb";doc="009kqv5n4m5ci39bck5s3h5kwcim5dfjpa6y0xad46syj9mgjgvq";};
 prodint-21893={run="06s9qbfy0rkfby9ff3dylykl81yb3fxpwxrwa8hn1aa2gd9bj2n9";doc="0z8ibz668zjjjypcn0kiy488wzgwzxqackz5z996r3sq5x5zzgh5";};
 productbox-20886={run="1idarj7sxqkqzlnwaqv9f192r228fclilz01fjy444ly765k0cbk";doc="1pzba2ymna70gflrnw6hs35dgkv17qfjs8gh4g6van44wjykhfvg";source="1fnqp2sx0wmyd9130j5zbqw2dk1nkajp4qs46qm47b90wga8pkkj";};
-profcollege-66371={run="154rrjb2sjkpgw98v8kq6hxkjcpgb2zkpgy3mvx45197hgg6grrr";doc="10bz8spmr07l7vs4mfgc390nfc0gx5p6ihsj3wf8fj3bk2f2kna3";};
+profcollege-69343={run="0f88f1q817s8r3skm097hp5k5qbjfnfh2lp26c2vc66bpmpkjzi7";doc="0qp55z9d1x30gs8h51rfyzci1hia8jah9mk6s7z1xlxmy9yvawrr";};
 proflabo-63147={run="0rj7x6s9afn5yid3pqd2vz9qn21z6n6m5cahq92ygn1ix5xbw3dg";doc="0z56g41bw3lwi32z0imja6a4nls406ck3ic4pibyi5ajcb8317w4";};
-proflycee-65977={run="1j8smibbr4an6x3lsva8i3wgb3m0y0zl61f7r92jqqhk4rdnx8zh";doc="1zj7g68cwg70gahsb59zzf2zc66li2clw9lj9nvb3lwnq03r0m4y";};
+proflycee-69386={run="0apwy75hr9b4kirl2f94wz9fxlm6pvndn8ppi88mdplfwhykhvs2";doc="1qwpl2vgi6sxd4p9bqyqag342zzacfvq59nwbd28hcnnyqrr9az1";};
+profmaquette-69287={run="1q10iqq390lkb10xz5x8fjcxic9x15d70k472s9z8nwqw2sdg540";doc="1xhajdlhh24fzdnhq9qqi3r01s5icdii3vgxy6wb0dx2ndkw8k5b";};
+profsio-69125={run="1gj53aqxmmy2h2xxg2hr53baxckwgm5r116iiz7mhlfpd413s77f";doc="1pk0ihk58s346xqfmi7xygismr07pzb4rsx4z2dbras2cwq8r0z5";};
 program-44214={run="0ay2z8ga10zr5p453ss0w5qqqyknsgqd2hifa7lq0gih4rml14pa";doc="102c9fir3hn0m7y3lkj9j0vwf0srbv6inq87lcxwfkvc7yw0rr2m";};
 progress-19519={run="0wgkyvyf24666kg79h7wq1piq6yq2nkw6k5g0ydk3y4gwzzkfhlz";doc="0r303dr6yf1r5kk38c1njjra7vgvp9qrblxj7zd8fw1vlq2sc7fg";};
 progressbar-33822={run="1d0d6dy9ssiij19s259d2ns2k5v2ccc45anhz1qm7iqli12ij0m3";doc="0bxsgvql8hqv4qw1pv18vdxcshphdpbb29mqp3pbbsd4crp4qb5z";};
-projlib-65475={run="14gqy0f4ky37p4bn60mvqm69qz24iyankz09bwfja71zacn6wzza";doc="1x8zlqf8pvvlp7wib0yqrhp0xnm84i91zk9njrxj7f1020bq6kda";source="1zrb67lr1bdw6nzqqybwdkhzr4v6xgskkf16vxq5f08wihw64k5f";};
+projlib-68784={run="1hp39wzk117dc0f9xjbm4hhirn9myi81pzzrppc30vzjsy6c899y";doc="1ics502bv7k4yp1is445gid0av88n0y2d9rqi5sw4plp23hxa4k0";source="16zz56y218gan7x8gmrhd5bfcn44zlxaajyvxx2w7id0ii3kxb6w";};
 proof-at-the-end-64188={run="1bl6s055slsn8y7cvg7jagbaycfm79rfic1pl25v93bpxhrx45gi";doc="0bqjhqcvrhmh0ay7f59shnyvn815pqjzkph067yay9l5jr1s9xcg";source="0x04lrwhhbnm511rbbccmf3p0wzp7h1rxd1kcf8xb03pdhvq1adz";};
 proofread-61719={run="0gnn7zkzrszglcqcwz8c4i13apildg7s93rkp1z3h5m2gr9w9v42";doc="05g3k77vczdqk19gigs9b6w8rccvcr0d382ysqn0yg6cgd70bi43";source="1mggrm4cfji364ylra3ffdhwbx6phcxwfzw2mwls00msk7jdzpsg";};
-prooftrees-52221={run="08ijsd4gfkgczfgz3wmlyk6pb61cqdc7f36v5131xv12x6s2kd4l";doc="0ldhmf22q3m3nhxw2m1z9f19xzw753qrm0nw8hch6wzk419p29k9";};
+prooftrees-67399={run="0sk49q7vavqlcn6rgpzzjjwldss4rlqkvds78jyfm79ky9vdgiz0";doc="0jajcbq3mv8lmixygc7i4nhwiywq5qp9w8hbiqxi16kpqql37n52";};
 properties-15878={run="1pxl101mc318ivzszyycwb79rqghx4x8xr9fvq216ambs7gq4sji";doc="1arkdafwmhg0hm11as4mb75pjz2mnah1l5msy5xnlk4asbwfc4sb";};
 proposal-40538={run="1y5i7xl1z706fcv82s5dyx1ksfvp9dq2m0shwy3an2r94qszcwmg";doc="1haa55hhz11j9m3lxp84yzlpyalrc3hlb7wxvmngqhn2j2mi0b3c";source="1n3z0rvhnc76grih3jy5h5ax7rffxjwmafd92fnp10jinr9riapx";};
 prosper-33033={run="1vsjb2r4xnlwwdjbnkpvl42c86rkzs2imsq762n2w6x41i591ics";doc="1f5w1vb4d7z990mz6iicjakqhszcwirphwv966c66j2jc3yvalfn";};
@@ -3016,21 +3091,21 @@ protocol-25562={run="0kv4ndgdfmwah88sspp4maca6z1l39fg41bf803kapp34nfxqggr";doc="
 prtec-51919={run="09izjx2g6gyckmgzrvg9bzlwz1yvwr0nc40s6wsbb898wa6cswxx";doc="1cv2knhl8xrsyzcywypr6dqgdxqss0r9mxl6wv4clpzpsyvmfzbg";};
 przechlewski-book-23552={run="0qn5agid0s57a8bdlha8y9m99xpcvlqknq473r6995qkdsrrdxl6";doc="1bp9yqs9y28nbzwb183yf8h5862pm3iw1jsi8c6qzhsrcwr2b2jn";};
 ps2eps-62856={run="08zr0qc8p22wr40vgwd9idp75x6cwbb3acnqcqafh73a66vdvbzn";doc="1jmygd0cbja55sdfynfqr73f54lg3vkmc9hylyw0zj1sdw20wmz5";};
-ps2pk-52851={doc="11jchhii2z34ikw0jaddg6kni13linnar4bwdrp6k9kl8zm0h2hq";};
+ps2pk-66186={doc="14xq9x5rf15ibzr41cm5rm4v3rpmj50rfsqp4zzvyhmpmyw4dsx3";};
 psbao-55013={run="0il4qhmc00ny1syfhid0mvmcz42sqp58zi8gf5hm6p3dsf5jy0z9";doc="0zrmprbhrbj3m0q0swlnk581ka3mws13dsha60izi7bfqxc6crqc";};
-pseudo-65690={run="0by3a3xxcx6rw6bh8ias41r0xrmkn6hg4jwpj98afzvlkmwh17m5";doc="0gxlnbp7za981syaz7k64i81gza7jm2611kjwpkii2saa0qmhp66";};
+pseudo-66638={run="0h59v2akfr00vax3hr90ph8p7znbi0n0lnzl99f65pg3k46xpgg6";doc="165i1gg6pfg1bcwxqlg2nx2crn8vblnqm0zxb9kl6jd820wjd9ix";};
 pseudocode-54080={run="0x2p2bq7cqajrn8s03dgikxg2nb94hk7mzmi7l911xdgdprlg6qb";doc="1qzvdp0qmmlljahg6hqn7c67sszvjvp3v8zvg7nwam58by39l3k1";};
 psfrag-15878={run="0m5dlnjf7gmikg4nyxzzfz999gphkg41qm2sksq9ly2rspbdcs8s";doc="135c7sr4i8617vwr4nnz8vcy5qv8icr0r0cmqsj6r1hpkm67zqhk";source="0d68rzpxax5n0da8sg1nh50li7rc0m7syz0kvpsgzqbdp1clbcjn";};
 psfrag-italian-15878={doc="0ssx8rw7fwln02zzscywivnhizgrb6w05awscvv9gf9n1qj6avsf";};
 psfragx-26243={run="1kb769ai57d7zg3bp0r0mspz0a2l87qiyg04a87iqk7vxrwv0bd7";doc="110n7a7jgfmzps5ng4gibxigmm3dpkqlz6jpbnphrw1pnlskwjsv";source="180yrq0rnsb9cd8j70jym06k543q211fzzswzg0dq8fzn3hk2wwh";};
 psgo-15878={run="18h614dasdg19jnwwl5swih2dxp4wis66fkscq8jjmpvjnckpck2";doc="0naza2kxcgm9wdcyibs36qnwwgwpsbj2m9qkk3l9d54kml3wiznp";};
 psizzl-15878={run="0pzbip08246id09mm0chi0gjjgdc7yzj0bd7q8qh5yfdbhjn8yc8";doc="03slfkyrb0pil00n55n6yp5vxxxl8adjbxxmg1c2zl261lci107v";source="1h2hrjxc3ck75cigh82rmi3558dmpliwxzzsaabb178bh76m2n3a";};
-pslatex-57434={run="1wfk27qb4x8aafph0lgnkq3bkz5fy4cmaiivd924mk92l1wfg6dp";source="0qg1055zpy3pi3hljrrhzixhzi19rca2jchg0q04xi0vq3vslpcz";};
+pslatex-67469={run="1wfk27qb4x8aafph0lgnkq3bkz5fy4cmaiivd924mk92l1wfg6dp";source="11gykawqw4fi453s1bp2r0pfm0az2k8gr3rcrygzfqqzgrhxvi8f";};
 psnfss-54694={run="0ng5pkk6m2l8yqd58wggbakbs4hp4400r4ihyi9akf8j4kmq2s5y";doc="0vfv9x1qsivwi6c6hi23vw0jcjz9dclx0vxnifslyzlrh7592dzc";source="0cqpzra8jwdn9d6w4mhmfrfw2zia2nbpyxjfrcz8m1disd10lhsf";};
 pspicture-15878={run="0i41lg0nw9xya0gfiwjd3xgbk0w723g90gnsvnfg764s2dl371b8";doc="1p27zx0svlcm4p12xjq35g2lgj1j485c3x363gciqb4aswmlsl65";source="1f8lhyhfcywn5y78354r37bgalyq57bm1fill5vzny3l7cyqxxn4";};
 pst-2dplot-15878={run="00y967mflrd0y38mqyv8r7h489jrl38rgaiq871wf9k3cbmf0f1g";doc="0j1c2kxc63nf33gi1f146pa6hw7fm5x9h4yc30dqg8hsd2v0bni6";};
 pst-3d-17257={run="0mh6xbrvwxx7nxp4yqm71hhpqjb41g4kinxkj2vmspw9wrwclbj4";doc="1dp9l6vwhb306j998hydb07c6ig10ibn7h0wwiaisgabn0s69xqh";source="0m9lvgmjzzc2lmp63vnly30j9886qabgbhqwpbbyl035cy6k684n";};
-pst-3dplot-61615={run="1km0iilm9rqf422sn8mkiiw6b3xlmhrr9nz4w85dv4af70hwvx4x";doc="05vsiaglfgqzfwlzs2qmrchrfgzycszac4mjyvgynqzvfpy6djcp";};
+pst-3dplot-68727={run="0pdzz4gqvq0h0d13f6464ldz78x4gzn24bxb76lcjj73xpjsxir4";doc="0agrpqkm3zs497b4rrday4cbxy0l1l3rqpiindx7v57fzqh0i34w";};
 pst-abspos-15878={run="0pjh72cjpim4v0ri92b7nbjdmilpfa7d49vsvhfqddq68k02m0yc";doc="1nwjynxlpxgqld6slhhrzlsalp9296nbnj2kzr6a9c9b4sjxxbp1";source="1p9i5bg4jx8s6bb6ilbaa702l2mn911g09pjdmk6mnb405d908fy";};
 pst-am-19591={run="1vk1dpvm5bcnxc6k7kpqq5xb6a227bwhlrwd6mdbdapk58jh876f";doc="10acmb6wm7z9bpgh76hlsjks9v2rzp0qqbcklrjx3iw0jqdk53vf";source="06xvv8fh818ldzqccf911hw4wr6nyzxdmghynlsg4hjn54ff3x0l";};
 pst-antiprism-46643={run="1b8yxfyc4cac5992a3cc4xkj0ip35z63rqxdw2jx748qs7c3gyxf";doc="0d4v65fsk28hyiljr6fpk6yw7sac7n9jmx4bmdfgpkagspb7ygpf";};
@@ -3053,7 +3128,7 @@ pst-dbicons-17556={run="1mq523ngyxlds1jaq1cnwkp6hynlz72imc1sh1f2fch0v91a3kc1";do
 pst-diffraction-62977={run="0ccy05jagh7kpra07bai1j8drwn2701qdfgki925mcifsa74r3y4";doc="12xx19vaygrby5475la4nzygcbf6cf1mq3g14sxyhg997x9q4ha9";source="0wf4kpdn7vyaf9cy7dq6qf3lq37fgkcg91njfbqy9n9v8k87fv1x";};
 pst-electricfield-29803={run="0kk0jjlcfyvz5dws08wnm3qlhvgifrby88idssjhgvqgg8zpz3yq";doc="0zx7x15p6vxj1f9v8id7ba49878xjmbqzh762v1sy1bxygj9yb21";source="0n1rxq6jx331b0qlnpjy7mh84m9vdlrs8ckr2b3slwcwp63cs0sz";};
 pst-eps-15878={run="14grlhaxxhwmpw3xi3xv7n3bq3zx3qwd9rh707wfgz87iaj7jzvw";doc="0dz6543q5g4wsqcwcwablr7w7w5l6dk19m9qpgrhb1w8sg7hgc31";source="1cn9yl1prwzjvxwgyzs5jdywyirg9hy8g76cnl62gkk9ndmcpryq";};
-pst-eucl-56474={run="0h23rkrdnpybpqjksy411c028g54a5i8l3wjr85p1jlv4fph3kn9";doc="1rspj40d3rx0xwv0sjy2rbgkkhccrayaj38pbr4l001dbpxk3h7z";};
+pst-eucl-66924={run="0fr742cx9fcllwzmh4w9690h2yq2ch6zkf8m39iksdsfx82x6sah";doc="0jxn56qsma852nvb3m9qipxyhl39r3wslwwbiggax0jwqzrnbbia";};
 pst-eucl-translation-bg-19296={doc="06c9ajnfl01sl81z5r8a5lzmaygq9rdmgym2v40y7xp7z033gwwv";};
 pst-exa-45289={run="1s94fbqpgv58zks5jfq3dbzhpw4p3gchhm32498m6bsp52kzzl7w";doc="1m7gwxbhnii3s7aqi8v09sq49010yasx6k4p7bx43rhir08v1zjv";};
 pst-feyn-48781={run="0qi5zll29rfc7jkmz4hs0y22if5qjn13whaf7a62rdfvbdp1l87x";doc="184d371rhqn549a9vgvdh92ikzphmdsbskny0dnh0pcgxzwdabzz";};
@@ -3063,34 +3138,34 @@ pst-flags-65501={run="0p89whiwccbsx15jv7krji6fz8br7d4k3ag788dv2cyjids8v25g";doc=
 pst-fr3d-15878={run="1m0zz9bqdqw1hzwp06s4hma68wwm5mmswrp9jj3xc9r5xjyq7fk8";doc="1gpijw1iv0pg30kws1vclsy5yjd7rk0j3qspcjlmkj1bhq3fjrgh";source="1zvssd11fg4hf53rz4c6imsgi77kfcc7l9hh0ni8jnznlgmdjkf9";};
 pst-fractal-64714={run="142i9wf39v31wzvalh41v5bjf1l91x6kib1rpk6fqyhfxx44ibn0";doc="0hkvmraf88w54kgqax7q6lg9zmcliqczyrw4prlivgjkmshy64nx";};
 pst-fun-17909={run="1r1zvnyg5m16fifi5xbzn5iypr4n4d9vbnqi42h6a4m4y1wb3qdh";doc="1gb9rz3kz13xzflr7r00dalqri10lbn830v3xcpmb4n29a2bf0qv";source="07kpm9irvp7dn0hd1wh08p7lfbgn78jj63yqzzxn1jb4wrb4qkx3";};
-pst-func-60933={run="0mzgrvjisq6llgrnk2wiw8bczx964pp6p81a1brlbbwl8zk157mi";doc="0pa54qkihcvikd66qv9yfx9kdy49byx4wwc8gjgjhdfplg11y5is";};
+pst-func-66845={run="05c7166sms46md8nzkm9gzp5s373vqgpkr7c146ywxanix66b0cb";doc="0wlikp18sc8lq2jn7zxh619r2d54p425a5k0cgm669apz7c0vws2";};
 pst-gantt-35832={run="1hkrmdwg7kc4xiif4fvhjwbj2ryxlrbyqb7h2n3rk2jmmky4hv7p";doc="1fqkwzsliv1mg3lyidgcsy652l5d2qy7x1rjix9swvk4vblx4fjs";};
 pst-geo-60387={run="09br33z2vdr2dlsfyqf8rya3qj7bila8r2xwqbc6g96yhn1c3r19";doc="1xxyazg51s4nj8hz8adzv3lvpr2dc1ji0sfm46xr763srwxpjjd8";};
 pst-geometrictools-61430={run="0i80r2n3vsnf4sczqkh9ri4dfb7dfxg9jcyhrrx2az552q1mr33h";doc="1ff7302f5ik2a367c81hgk3d88kkapm1jp5nd2mlybywa2nj5s0f";};
 pst-gr3d-15878={run="10jn2wdc908z2imnpcv03ffm83228fam0cqgmgmcss1774r2nc18";doc="0985ydi7jfsvlynjs5ddjhyhbh11nficfphy6qnvbv0jj367rabq";source="1z981d54aclpbq9ggy28qgnsspgwkavalm0j68pj69jxbcfxrpby";};
 pst-grad-15878={run="0bzq77vj333dsgilfw9k7lslhpmk67id6p1z14aw7nfrhyc80082";doc="03v585i28dc65xrydsp5jj9nd6kfpmhrjkwm3w89dv0p32xyzh11";};
 pst-graphicx-21717={run="1d7zvrnhch7vj1l9xscg4ynj5alml7pb38zwqns403wvcdnmb1an";doc="1mly0nr5yc5rdghy04sarhrwlxiwnndk644s4czf862n92ammh5d";};
-pst-hsb-61322={run="06x08vl255na1xv68v5yxdnarf9grm2mq7m40729dqh5rvip88bl";doc="1ibs0s2fgn6w1mjiassmg0jyb34qjwkarkm3p5zmrdm5d4s1k4hf";};
+pst-hsb-66739={run="0x0yzrsp6pwr5yk4s9rjkdgmxs5g93gmli5k50g8lwfgcz1kyfky";doc="13z67asnaj83yzn6qa9c6q4313klc1aln84hwsb8qjf3qg6w2556";};
 pst-infixplot-15878={run="133806cabfd6c44b0sdhchcmqjqswy2q2j2ry5kr78dzdna40y23";doc="1cd3i5ishy7pawv3ah6486kb63351p1g2d7iwx9zh5vwywi1ymqm";};
 pst-intersect-33210={run="1wbipiav79g5cal64bny5ba872rr4848i32w64bhrl7awsddyq0f";doc="1y45r9pdddh4pbb3bfp6mzss7whapf4bv7zbkrx7wmyjaal73s5y";source="09pbicmzmx0nraf5s8b19grra8p2vvdl903kc582dwn7xvqrk3rn";};
 pst-jtree-20946={run="0082prldszninnbksndf6y5mklvp4zgdyk31v78axp5fl3mq437n";doc="1hgy8iavrhzw6w8r0avf3h9x52fdl3lqshf6mxqpffaq1b0s6xqc";};
 pst-knot-16033={run="1m1bzq66jan3miyp6r9j1pkk7mim9xjn28ldd1nni06v65hdcz48";doc="0gfxyryyf75p89y2l1ar5yfy5c6qawbz503bnpnw7n575rhsz36d";};
-pst-labo-39077={run="1wman8073p41gxn5aa0jilpz8jl7zpk69vwid6f0981m3vc1jdk0";doc="1zdyp20x78zxqp07dcf6hiynlsq04s5fd2jjgjcs3mbjfz96yi6p";};
+pst-labo-67147={run="0wyvxb8xs4qvibgz2nz9fayp9fv6r2jlqxrr7svr43gnzjdsq28m";doc="1ayqgrs4y8cpws9bla26s7b82xg04p4f1y86p1gcl5f6816whq4g";};
 pst-layout-29803={run="0199jrw7b58x6qby4k48n8sd2rffxlkhrp334q2dmalqsi701l89";doc="1346ww24d9c64h03zgz7m7xdsnvkjy27cq4nbjn56bqcrl88982d";};
 pst-lens-15878={run="0220idbrzzslcmlyxxzj52mj9iai0p2ya10ykgkssyd8nfbl2jin";doc="02hbbhdnaz6cc5zkp2zmm92kbk0ppzwljivr1grx4g0jqqw8c2h4";source="1pwn8wx5w65xdz46qf5mzjkg74q296bkmzwsxw2aml406iksy890";};
 pst-light3d-15878={run="0glqibq1h8ynfkgn9r2p0yvgplydsigg5chj5gl2vq2hsb38sqg3";doc="1njiml3v4vb7jxpnai69b08pdikasjk30g3xp31vixqrzr56i4am";source="0rrgfxsbvfbyc1g1xsakmiiy7f8skmv2bkgq6vbji9y1f5s3b4zl";};
 pst-lsystem-49556={run="02m2g6kjs8fxifsdxld6ivjxch7vj137828xpax8s7abr9f4dyiq";doc="1apcp1ms40xhypxr4fq6xrh91ff15gplzllh3zs5b1w153xq3w8l";};
 pst-magneticfield-63821={run="01as8f6dm5yy7bqfm1yw0dm1w0jx74vhpbh4kp55br6f48fs480q";doc="1mc60dryqsmz2i4jspixg7m6rf97ai2zr4f59wf59140wlca7c2k";};
 pst-marble-50925={run="0d7xlygws5f1hipyc2ba7spr2y8h3rprigbrryny3mw2ycdh1yqv";doc="18jzc9fpjcrhya1knqsxxmaix8sglfbcsiszxc949pf4zdpm50ym";};
-pst-math-64732={run="0prlm00k316f4h4i614ly6576gw0aawbbzv5ggaarya4565r4hrs";doc="1k5gvvx3pcf8mhw19p2zz23bzzafcdw887402xsjvs3vlnw3cily";};
+pst-math-67535={run="070vvvcynfaa7mmfmqkkn7va3jvpmwxphm2w8j4k74indii282ry";doc="1w5rhcaggrjn9hmkx4h2h31470fpj8d3v3gk4w8ph35zhds5vl9c";};
 pst-mirror-60506={run="06qvndipn0i69b5jk8fxhp465sqjz79vlwr0j01ria3m91vygyqc";doc="0bfzs55sj49y3lznll477bag80yf06pcv0hh0xfg3zzvhmpcpiky";};
 pst-moire-60411={run="16zhb6gqrpdn56cggm80q67yp175dkbvyj5iy6zr5bxwj6qj8px3";doc="05g9hsxfcm5yl6afrlpba7hc7hd1kr0k00m9zj0jcqp1ggsqnb6a";};
 pst-node-61838={run="0a8bijpghvf5zx9zsd5m4bcwzl526f4r9vqa4dbqdxww0zxwk6gr";doc="0w0wr8xc237qjsz14yf4aq56d6jm8a4gmzp790rsphqaavab677a";};
 pst-ob3d-54514={run="0pglxl2prdi347qqrjpyk6hr3arhfc4rrcz1mnyz7q5jyamlskp5";doc="0s0jyb1s21pkmdnz4wdz793lbvidl9qdfh9cfqa0bwx9mmjvhpnb";source="0v9kih4gxk7aqwynihipm1595iswwkv5y6qj262aikhr6bz8v0sa";};
-pst-ode-65096={run="0mlrbcz6q99g6sc6if21pv6ivz3if8z0g0v40qqiw5z08hwk237b";doc="0cwcq2h2p9x019fjw82vzw72mry12k85g1qh80di2kz555kxrci7";};
+pst-ode-69296={run="1ga14sfia3w8pr8shxwf5231l0s2wd91yzn8lqvb6k9i5g5qcc5r";doc="15pyk4ahpccaxkwrg2kygnlsxryw7x9y74d0hgq234618jdc9fib";};
 pst-optexp-62977={run="194g5i604i33bvnprfyjab50smag094lv4gx2skd2h16zfzmg9lg";doc="1dgcb3fax1n15hz15fr0pzihyn3yyzvidw6nacysc4qxq2l6b56d";source="1cw69vk791rr15dc3z6ivv5lbcziab0bwiar8cr767fpm0w4rrfb";};
-pst-optic-62977={run="1591vaw8y2k99vr0g8dy11grrp98hvgqw5rl9zp501dh3hnf181d";doc="0q76b92w32x744y6ri1nf2dnzv00kyw32xyv3l5snvs728qdvayd";};
-pst-osci-15878={run="0gz1ac21gwhv2xqf5ny0zzgi83yg84qlxgx8mdj9xpnnpv6mccig";doc="1gdx6a07wg5bmfpx9myf7wxa309j64q5y2q1ikzfgf5czy0mxpa3";};
+pst-optic-67052={run="0f3ml0lw1yl9c9hvvx648m0psq9xd912z325mj2a5vqih5vxssyz";doc="1wznc3x2cmysbj67dc6pd8rxjp9hdh7gpkjxmq1vdc2n85vgznv9";};
+pst-osci-68781={run="1frp9pmwngklkwyicr04aph29ljjpgcgagnk5r6dxb0c8bp3209k";doc="1669300lfawksl65nx7x7g3kzzhf8qpj08isxcba40ac6lwkfkp8";};
 pst-ovl-54963={run="0p4yyrvagfjamwd1f81qyfhz6wwjpqi6nfazyl8ml1fd7qjv1g18";doc="0pqh9sz0l0j0bzvsva6kba6gm7cssy36i17px2zrr3lc9k6yajf4";};
 pst-pad-15878={run="09z2dkb2h8hmf46b0h1b235d1yjv42dgx55pj5s4dbpxzgam7ljz";doc="1c597riwdggb0fli4w4ay2iwkqhaiwxy3mcl9diz8lijy0h4fpk8";source="0b2w0pgp8njbndx6x3hq0rwxsr1gwf848l6gk3vrkksq419j2506";};
 pst-pdf-56622={run="1klgwqpc3m5k5ciiqb070h48r9mp4hmssp4s82k79n6kq45ar33m";doc="06b1kpazsfn7gv2npfrnrmxlky5mhw6dfyzip2lwd243m08jdagq";source="04b0kpxmzi42116pxmkdjl87bm6j22wr62w7bka9qww2ifj18na8";};
@@ -3108,10 +3183,10 @@ pst-shell-56070={run="1j97kcw8w52q1ispkpbwblxza7q8v25288pzxkyc4yf7802a3zj1";doc=
 pst-sigsys-21667={run="1v3yz2vhazp04xjd0bp4pyyiz0v4yq7hbr9mq0m2s8pg3hisfbwr";doc="08m72w1jxrafcbr19fp0yvii9aama1rfl9czys6gr3sii9ks6qxa";};
 pst-slpe-24391={run="18f99ravk128r2cg84yxv3cjx2df8fgzq1f054z5g5ig1s5ginws";doc="0g8dhw27n2vf73289y8rah5xakb60cy23993vl3ygz1cgrn356i5";source="1mxninpgycpbakvmc9qc6032mncz890k5ggsfm507jzyfxrdp5lg";};
 pst-solarsystem-45097={run="0n6w3fyggf7favnr90239b6dp2j7q31qi5yjilxdw35s001m1ghj";doc="1bm77lqaqbjnhwv6fra0g05ij4l9vj9hh7gs3sljgdmwy4syqq24";};
-pst-solides3d-61719={run="1sayghfxhng2kh2yn2j095c7bymcfzwa0w6wd31llvp0pqzym1rk";doc="1kz4855a4b9pjf35wvdb3b5vi3c7zwv8pf3d38n613yg3gmpmr9h";};
+pst-solides3d-68786={run="0miw5r3sp58x5q9rdcaa2qp7kvsv6f8pnkjklljm8gy171ddvvav";doc="09ymz8vb5hinmcnnc8x92qkaq6zjhy3gyj0m5rgljrs15ks38vx4";};
 pst-soroban-15878={run="0fygllzq9gp37nkffgk3am2vygl5d5dwyr4avf1gvh0s698jj8by";doc="16a1w9ci7ivqf30hvr23fv6j6clqjb4y7nmjgcbfz20xzxk3aa1c";source="1h6srvvl3s1prswlj608y7pj5l4zzn13yqrhdv41956ikd1wbb14";};
 pst-spectra-15878={run="0nd87bnxf8giakadg457p10idbnn0m982l0pgyx23495qfxywax5";doc="1y40d08nwnpkmrm0jdj69drpip1gwkd8n9hqmairl1wccs6r6dhk";};
-pst-spinner-66119={run="1nkmvjy19cpxqs3ii3djmrr6yj8naf54a97jbprs37afml3zql2d";doc="1sff7bhnxjj7cmixl9qbfvglya79187gx28swxr7mby9ybf941j0";};
+pst-spinner-66115={run="1nkmvjy19cpxqs3ii3djmrr6yj8naf54a97jbprs37afml3zql2d";doc="1sff7bhnxjj7cmixl9qbfvglya79187gx28swxr7mby9ybf941j0";};
 pst-stru-38613={run="16i39r6vivs0z1l5l48c3vky9bac22n5k7gddfj7vlllfg6llgzs";doc="1cl5sq39pfvwhww488kq0cgnlihf63jkhqdd4rciaa8vf55mc6wm";};
 pst-support-15878={doc="1470n03zanpw35dnfzyjqm7d5lgddrimypz28x0zsk9nqpamnqnv";};
 pst-text-49542={run="1s0dqi2mpzlk8069piv4z7jg370navi4r5z8aysy9vx8n0vm27zf";doc="0ia6h49lfi9394sfr29wmafbhvgdm5zj7q13zll4d1agakn48j27";};
@@ -3127,18 +3202,19 @@ pst-venn-49316={run="1i9frqc6b4wg3pb0ks4v0xxsfzs348ddhncr31mhfs39nbj6029d";doc="
 pst-vowel-25228={run="1p1adlrg62jsqzkjkl8avb79w26kkd5jdssmkcsd65dg5qfa9x50";doc="0wyl0mvx2d0zd8q0sdmyrqgr72i2igv0669ajv0gz8miv04vr41k";};
 pst2pdf-56172={run="1rm0frzi52i3irfy5703kw38d3f1grby27nryjpb4ziiw6n5yizb";doc="1sll10kps82b47npv2g2r1l3kkm5y75mp2p2pzqsnxxivgl5kp2l";};
 pstool-46393={run="1g8pmd13f73v8bsrcpf4a6hh00pww6isz00gj8cxnj0xnd4p9xwf";doc="0vwxrcm29w8fiw4mmr5jcxrlc122k4s1wg1sqvmzqypwpvyls59c";};
-pstricks-65346={run="1fdfkf1rjb8akdq1ypy9qlid7a1n6cshfqxn0x0mjhvj76m884la";doc="03mblqwxfkf16xd94rz8w38fk6lnciscvnh09b4nks5l20w6l9kf";};
-pstricks-add-65067={run="0zyly09hggfvshfjhcm45ggg1fyms4q12jjxqjgfz39sm4j6g71l";doc="031gslgjg1a6sd72n2rqmzwxlpljdqn6za9f4p3l20zn8iqbps1v";};
+pstricks-68767={run="07gapdjvqfqj9ca54kqy3wla8pnmnrys4l04bjawg60574qslq5l";doc="04732mndj1lhkpb4k17i8h3mjc8iphv2dayzqrb9ykw54gsb51p4";};
+pstricks-add-66887={run="1h1y2r0y3vypygcczkqi8xpxc0mdcgqm1xfscspqw9ifndx0rwrm";doc="0bd3rwcdmxnazq86c6wwbjkajzd75knja1fc7s3svhn0hxy4jcza";};
 pstricks_calcnotes-34363={doc="00vgcdf73p4143dfjcvs4b5v4phvisv76ink3iiijl6s6f9zbmy3";};
 pstring-42857={run="1f7a26xxxzwfgprhzxq4ay597sln18hjk8cmlzjy342jy45g6dpj";doc="0ngxd95s8lzpsgirgrq4dg0p1dwh4l0gs99nhich12v6l19jd29b";};
 psutils-61719={run="04xwjilc64d5zpbngcsr6c6gvm3857wf2hsyag32v8bk1pjag97f";doc="0hb0bjnk53i2q5wkkcn4rkjbpvyv90d41ynxbgsk8hp2gli8b0zj";};
-ptex-62464={doc="1z5wmihblxhrx2rhsdccs6d8mimlj42kjzjvvj1vifr4c13hbgbq";};
+ptex-66186={doc="1dk8rvadr1q00bjizj567lzjp5l47pr7miyk0ghkajbiiwbqi0kn";};
 ptex-base-64072={run="1h14n8hj9xh97y2g8fnz7q3vrzmm7nkk1yj9194v0y6kjggf732h";doc="12nxgvrinkd95hiwczd8nykiyldjyvh8sk49m2j8hl9g4g6slkg6";};
-ptex-fontmaps-59711={run="0f6cijbr26jjnba7g5ffyh8pb0aihdfv094yyxhrp2wlf93ca4jg";doc="00lx6cv5sb039k3wzjsq92q9x6a2q6l96khmj6rc0l06xva4j6am";source="046jbs402n7g7dyd1akqwx382rkn9m7cs6qr6nz1cpd7c56kfb9n";tlpkg="0znid3c8bpw7acfi4hj14gabs44ywfmcz88x8vya1vzs9mzsiqbj";};
+ptex-fontmaps-65953={run="0f6cijbr26jjnba7g5ffyh8pb0aihdfv094yyxhrp2wlf93ca4jg";doc="00lx6cv5sb039k3wzjsq92q9x6a2q6l96khmj6rc0l06xva4j6am";source="046jbs402n7g7dyd1akqwx382rkn9m7cs6qr6nz1cpd7c56kfb9n";tlpkg="02z3c5jkwmrr61b6ivw0dx45jjgg7larkrhjzg4mr2dha2667hmg";};
 ptex-fonts-64330={run="1qp1linlsyyx2v4v5l2vjvynw9gpvd4c1klszamp2fcy1wpkgw49";doc="0iqy6k6x96qqg2c8p9cn58jpkqq8hhnb20852a39whgvcnk8awhp";};
-ptex-manual-62915={doc="0zwmig2h7ma853lqnl845mxw6512x663y16q9vdd93ci5k94dlf1";};
-ptex2pdf-64072={run="0s4b60gc0wg4wgxczzr2h1xlic0rk23a9wvfy76vysqzlsfmh0xl";doc="0ky2zh6a5d6w2aq8k9wg7p3cvp8l4wihfjlz3sir3ggj1rx2x6j4";tlpkg="0413ifnbmmp6awmpbfa6vm31lfqzxhli49dfd5gnw8r8ny5k1jhy";};
+ptex-manual-68147={doc="0kvq5wx7rz6lz9a5f2fjk1y3l8sbqm10jc80s9irbkhv8rhkg8ar";};
+ptex2pdf-65953={run="0s4b60gc0wg4wgxczzr2h1xlic0rk23a9wvfy76vysqzlsfmh0xl";doc="0ky2zh6a5d6w2aq8k9wg7p3cvp8l4wihfjlz3sir3ggj1rx2x6j4";tlpkg="1rikx19qn1av7hrihjviqi1jgla1ncw3fyv7mjav490813nk92ah";};
 ptext-30171={run="137amhihk598rhaf0qmbahd9spqivzqrmi53y6q3mlzhlrxg0p1r";doc="12crg85znvmpr5yhvr4yr6riw037zwcpwpavp1vb1nnd9zy99ya5";};
+ptlatexcommands-67125={run="0srsgh0a8hzy23xd4a3fa168qx81fixakjpryd3db55ygrvqlvcs";doc="02k3c7nzrsgb86zkhc8mxl06wdalw9cdrp5grm0kaw0q5yzifp9f";source="1wd4k71xrlgdxbix3m2dr5isj0am8skdr1di00bji1vj8fvmdczp";};
 ptolemaicastronomy-50810={run="13zs1n17jsiaavw98g2ggfrmb4pbd48qscqb918shai2ffkpx8lw";doc="1r0c5rixwam85wchqhf405h7mwim88616ycy1i4zv03hby18156a";source="1aacl5pvqww0j2kvk7k5ikn43qhj2pqsxh47kid443g56hclkzwf";};
 ptptex-19440={run="1p3bahmdkxbdgczvx52qhyn2w0wmdzr8061idf0kpbwvl0nkw75p";doc="1ldg6ljwf0iivd0cxb22sld2q2afwfb83ac5r6jxjcfr5ac7dv0q";};
 punk-27388={run="0jywh76pckajz8m9c9li6vvybjwljyzhk7hsn437mswbfdd5f2yz";doc="0lbly72hl8a5996dkjr5ssnzklbshbypxymp4zgdvb0i033pd0r0";};
@@ -3146,52 +3222,58 @@ punk-latex-27389={run="1wfs3li3h0fv6dmpvfjvf0bhq72iy82gpjbxhp3ssm7sj41y07cf";doc
 punknova-24649={run="19qc4ypax7jlr0hw7aim6p0afy9a2qz1ifasx9dh5rnqhjf0q5hl";doc="1x432js1hj43nrxg2bvp4wrrmgpi6p44ckrfic1gk7ki8wzcx4s4";};
 purifyeps-29725={run="125dn66xsrnv4acvk2mbwfl26sy42jw7fngm3p8qmzya93sp0vwl";doc="0lzw7ajxkx78v5dhlsddb0ahq6a9975f4mzmsgp23qczmz28878w";};
 puyotikz-57254={run="04s6878wblhz3m7xc7zgqv0ziwx76r22c4sa974ismfqjbdh6xdc";doc="0wikdmv19kj62vc5bd0n2dl91cqg44lwlfs41nw808hnk96a02q3";};
-pwebmac-63731={run="09abnfapfb7978q7qc91a3yn0yvj5gyynvny7001vnanw5w9wd83";doc="1l0sgg6gl2zs5sdhkfl9qpqk9877d59l7g12nlccvg1ccaxac2hs";};
-pxbase-66198={run="0nlnlzpbd2dd397lxxg97pgaagfyb00ygrd6dz0v3gkmpwllnkvf";doc="1kjkqsbrsiwzz6szjm2irz6ijy9q5xnjimdhhv52xk0j46hyiphf";};
-pxchfon-66073={run="1g1xxx5imyhpblbvwpb86fw3as6mfcxq7ay2vjjn8ydixmx30pnz";doc="02j3ay4qv0kkglzrwk3av5c8xamq098kbdcdkik8fa655lzvca7v";};
+pwebmac-69027={run="1162s28w7mlmp724a72blvphq21vrzydh5fv5hr38a7dgfi9ydyf";doc="1sbri1kw2hgdgw59ahadbysv481zz79lh67z3mvq6frx566vcb2m";};
+pxbase-66187={run="0nlnlzpbd2dd397lxxg97pgaagfyb00ygrd6dz0v3gkmpwllnkvf";doc="1kjkqsbrsiwzz6szjm2irz6ijy9q5xnjimdhhv52xk0j46hyiphf";};
+pxchfon-68103={run="1n78m5685q0w9k2v0iyxra2cj57gh11wnsifkvb04z956r1xvxik";doc="1jm9f934a360jw3v1yr9ca9a4qyrifqa05x5m1a19klf53rn3ghx";};
 pxcjkcat-63967={run="0pg6rh8yf6mnd047br0rwiyjyzb7g8qknwzx7v9r77rxgpvy4baq";doc="0jfm9ln4k0iwvk1ddxma3yjvfrzkhxv63nn76d6xi8gqj1vm1kl8";};
 pxfonts-15878={run="0vkhx82ywv17rflmq119jxs3ib08rfw6lkjgr3mp9vf6vplgqzki";doc="1afcy7c1n63zi5czbpnajrrgwfp9xdymkgwf5h9865adjbb3lm82";};
 pxgreeks-21838={run="1j93gwgk66k3fwkhraapis7ddj8a4bliqh783psdv1054j5fspqi";doc="1md7q2q0b2lhffjm39cxzxf86rw8759zxwj5sbgavzdhyc70ssli";source="04vdi4wf7lw15v05jqycm66j1iiy6g13qrc1ynrnq0df8b0zfs1g";};
-pxjahyper-66285={run="1hcnwp8m1rjpc987bg7nwam6lbc0wyv7anrw7avf8dfljklvnxbp";doc="05jv160jmxhqwl9rl40yj0y2853r04pxnbhd40zn54jdnqz10aw6";};
+pxjahyper-66272={run="1hcnwp8m1rjpc987bg7nwam6lbc0wyv7anrw7avf8dfljklvnxbp";doc="05jv160jmxhqwl9rl40yj0y2853r04pxnbhd40zn54jdnqz10aw6";};
 pxjodel-64072={run="0gywpypmv9c6bqyygyz336v7dn6bnx5ibz2p6f38paamk6bqbyf4";doc="16nf7za81mq77irbdqkxw2iwxgi3jpy5vh1fijp67bq3lx0az7is";};
 pxpgfmark-30212={run="0mkcc99fwi8n63fghw3mz2alhgpakc3hqyd40s2fpwisvh15rbbr";doc="16sapygswd6mr0pr04c86jzngw6gdf62bgv2xlrfzfpq7cnjafxb";};
-pxpic-65803={run="022gnd0qd2qh24j7hsznfknjffbqds6j0n4gymzdkzaal6f8arly";doc="1v0cwa8dnh32mzdgrhdbd7fj9a6jk4qgdp96p5m0zkzga640169p";source="0xqziqgyaqc4vfp3idikr6lri31ihljd775rbx5f3vysa8zxldps";};
-pxrubrica-66307={run="1w74syyn707qwyckizmyh78ycs6ic0mmhliz2wbamz35s1z9l2sd";doc="0cbx00q2bwnrhjwfgwdj4q09ix208037774az77cg6i2qz9xmagb";source="0x592j0vbp8pw0r1wd2mmplksyyl6wnwns8smf0b8s4y3k96n71l";};
+pxpic-67955={run="0zy1f7584bmmn00nwzl8w17hwrc4c5i798763p81sl784hm2vpw4";doc="0yw22zb82scd1c4n0niyc69n7xhjgadabxgbh7jjkxrjbzp6j18y";source="053yqnrc5xfj2gifnn94lxhawbnlfw3dhlzz3jnn4pvry7vnqhvc";};
+pxrubrica-66298={run="1w74syyn707qwyckizmyh78ycs6ic0mmhliz2wbamz35s1z9l2sd";doc="0cbx00q2bwnrhjwfgwdj4q09ix208037774az77cg6i2qz9xmagb";source="0x592j0vbp8pw0r1wd2mmplksyyl6wnwns8smf0b8s4y3k96n71l";};
 pxtatescale-63967={run="15swkjxfxznb101hvlqcxpplxngfaf0nbpkw7j2fgccyqjs5fhfn";doc="1j6yrpyfhn75qkv03bnwj9i3s4lmsh47sw696y13cflvdmsgs8n6";};
 pxtxalfa-60847={run="0fanfh1gb1fmp7binmhks4l90s6925pki6gwyzlaa7vy7za1l3ck";doc="0jc51zsbqbjnp7zqbbl1cpqjf7rwvsxvfzfzm9wsbkfzd16c9817";};
-pxufont-64072={run="19d5bm980iqx0m54fdybllq1f842hmp7976zc6v5w7dbfhndybgj";doc="0vnvdvpdwkwjqds23bif51h9myq4bzgj2k9xmzqzvan8xj446jxf";};
+pxufont-67573={run="0vvnhghcdlyqhl8244c76wd411cd9cjmjsrhic47rjs9sis1ilci";doc="088a02dfk2n6lgyfri74p2lnbp7mp4vn96qqkby0qjfnj6956hb7";};
 pygmentex-64131={run="1kd9jqmbxhkd7gijghd8wi0q5sxqf5dpf22z96wwr29kvv7jxm64";doc="1ppayblsdpmrd9sxfpf0kqhbsxfd1fgq69g48zj9jzbhncwx0lhp";};
-pyluatex-65855={run="0sqd70f5x9c5aa7r55xr1pg5wz5ipw9fv45ry93929imxjvb8i1f";doc="120pdw5kblk6p292vwswigwqy61dmf728d0gjx1661yzyskd42a9";};
+pyluatex-69372={run="171ahvh5ii2gimcx0a2g0dn7s87a58yff7g2dwbw5hi8vyqksfi5";doc="14sxmfsk3lrzcv0k8rkrq7d5dirxmy58i3km6bkahigk5iryq38p";};
 python-60162={run="0brs0hydf9vqwlvxipfrfxqjblazgb8ziy4brp2bi16bnsz59ykm";doc="0x1nfbv7fmyhzhgy6xsndhd9nja8xbip436kg7ygscjxml6gibgh";};
 pythonhighlight-43191={run="1bf3jf05zyggcbz5c6hr06wd8dhf0q5m1i4i7p026s1b7dxxq1qk";doc="0qw1rnyg5pawmp7hd3b0dyjzmbrlxa0hzg7bxnmvrz1akn1cas3q";};
-pythonimmediate-66465={run="02p0gnlbkfb2x0d502d2bmi5c4hz3ibmimns7r2bdzqfvx7ynkhn";doc="1v2h95ixg3fdpql2c5sk71g76j8v9244gcjfzsilwl77fxd125xg";};
+pythonimmediate-66461={run="02p0gnlbkfb2x0d502d2bmi5c4hz3ibmimns7r2bdzqfvx7ynkhn";doc="1v2h95ixg3fdpql2c5sk71g76j8v9244gcjfzsilwl77fxd125xg";};
 pythontex-59514={run="0hgbhdrzxvkc8szvkq2vi8v4xxn9k05zpa95vrmdlgw76ms33wvi";doc="0pxafbrr7mclvn2zdwirqbfa0b03cm4l4wbcgh1ag75skghmh745";source="03a3qj72hzczf4dz282vqq6w263zk1zhgm69h1rk5ibdyasmv8xh";};
+q-and-a-69164={run="15gmr65sq78id1l8nljgppbv85q3pjswwfgylc2msa7pk7vyiwzp";doc="0c8wbw0ia433sg8j9py7ivd1libjx43ys2fqi14m0m766sfrdigp";};
 qcircuit-48400={run="0vxsppwbmhh03mq9k3zb2hgl3628q4i51dz98j2s73z19693266a";doc="0571vlvpvmpjhjbbrd1ybzckhfy7ymralr017d09kf9p5gk0y677";};
 qcm-63833={run="17pryjm0r6w559lgkf03aws720zsap95azfbixm7p8lr1gy5nwlq";doc="0wx14xsj4sy6xpcs87bji6xfarfhlzqdzgyyx2p8439m6ay3cpx1";source="1gsfa9bby33a5qgi4p2awr91gn8p4d2qylz32xmzhp0x6fpqhig3";};
 qobitree-15878={run="0irdc2w96ad7mkgm6jqwia7lk1x4557fm60l98mc6kpd3a9djzgc";doc="001w9a4kxbrx11298gnvjamx8c6plag1gp5b7x9vq35s25kdy0i8";};
 qpxqtx-45797={run="123dfaqzpl8h5ia08swjmj4h05ncz3ishsh6rbcm5px35ccrgjld";doc="0ng1h0yhclki35v1w08r2di3dvf9rp78r43dfa752zr8agrfd713";};
-qrbill-66304={run="02z1ij2jjbd7gls7igr8xk42kd2pvncprqx8j2wqjkydasq0bgjd";doc="0chbcmfhs9ngjfcap5mknays321lwnk7vkairrfir33yrx8zwy3d";source="0hvgl5ygrmnvcv2506jzi01vbvkp8g15lqvrl5ws705iivij125b";};
+qrbill-67724={run="19wl8p36crfgyzad9v20n3j8ad33r7yww9gn3z3yvvggdqpsda0k";doc="14hfgxl7rl026cmbh2cxnj51fslm1zzfnc5pv33gqzd3nzmbs1mr";source="0g3aii3fdjp3ps788b108jj7ggks4ndzhg071jqca0q5xhydnvph";};
 qrcode-36065={run="0vs5sg5hch0c2rxy27yiy1c543l2fnqinr8nvsyr288fja0pfrig";doc="1rmwz89yxlgrypmki8xanqc3xxm10m9zc2shh5r0fzwmsfssri9r";source="115wlgvpxx0vkb9d4gfwbqamk7sfmcfd11hxbfr8khd5hv8asvpi";};
 qsharp-49722={run="1lrnzvlalznyxmkwrn9nh3x2zz74bakiq09dg374js5yni36igf5";doc="091kiiicfinn5cxpfhhb66j3hkmv80gsqd1b66xcz4ghxan43ywk";source="13923qlhbx52x7h3v0iv6y8q0dz8g2ikvfz9m0lh9zwjcwv4mpxy";};
 qstest-15878={run="1xk4vqqics2iwzxck416za70cksx836qrsm4v8idyg9kscvjr1jp";doc="19ddnrz4wjd51h8g0z40db53wh0zlr6m1nfczghc5b26vvcj14y0";source="198xvadvk9fb36kxzv1wpis5qb38dqaxsqva6l7l23kz3sb6k849";};
 qsymbols-15878={run="11jlwr2pwrxck0xcw2szql0rdynjr2pk4jgzlqkpcardibfr385x";doc="078qxbmv1zgg73a923sbfqnwmdwg1qkfxra5r8dzi8wlq1cv29ii";source="01lmlclv9rlkga19mw4ikngdpkxhmhq77kylln8kjhcpa1cylk5c";};
 qtree-15878={run="10a9v90yspc1pq3ja9bzixdq6wxl6q4jxz5na7x9yw9g44z3xaf3";doc="0ja3xpng871h96q220nrlq2iypk2spjs4qr5vpmri89b5nvngf6m";};
 qualitype-54512={run="1r59cbk6rmdy0zhljcfqxksf101rkzib8ll20ak0sshc3f1jj64y";doc="1jxcqd48v11b74drv0lh2gv65aqsjv5zziph2s9g5ldd1733fgl5";};
-quantikz-54911={run="12g2vq2sckjidabs2ivi1r87mzj2rvqk89632szgr8vccjjk7yqb";doc="0ckdbfx2fz0kjja2sanhmmrr61ald26gw4v5d4fw4bqrph8mpbq9";};
+quantikz-67206={run="0g7zjkgfw814wn1ddsw2yxvcv5y8ca66cz13hmfa61p4kd8y0x2q";doc="1rla8zwpmvf5wwd6bp74dimm49aa6m8xw6ix0ahcnvx03vs1yibi";};
 quantumarticle-65242={run="01w948cabqlnwyv0n1wzs97hhfknspx2596w79ipjy1aka4w6304";doc="1k2xwacvm6sks0qj1psskcfm002haa734fqysr4cggckwhf6n7wk";};
 quattrocento-64372={run="1jn29sl616p97vf81krg8g94zqsgvw40p1mh664i3sfkglxlag2v";doc="1v63bbn4yd799cy55w7j6isl53ngzngq9jlzi63nd5bmk4lqcq3m";};
+quickreaction-66867={run="1jcqsgvsa886hw3ldf2xx915jll8glfdd7vmc04plgvvvfavghjj";doc="1xgwv5d2wpp5jan4c347kxmjqfa9qk9396vpz1djsa27h0naj4f9";};
 quicktype-42183={run="16qy6rxxkdkkli1knibhbm28jg80l0qjsn9lsb36b7z5xwxj9f21";doc="0ic0lkhj3rdpwfsrysm5qidw0gby11kmfnzbh5k2fpkfarwfhxxb";};
+quiver-67779={run="1nakig6vyj6fmzpxr7xv79wx75f2dq42k5q80fg90krxm65bmbn0";doc="1jbxdisyxla5s8qkn19ayj0iyqdym7n6xlspr0vjmbz0nmh0nxd7";};
 quiz2socrative-52276={run="1s6g0svlkg503r5mqn3iw90qyw5lwpv7dj92yck7ymziv9p59qkz";doc="0v9x0jxrgiscblh8w9wip07di78glgzd0rn2fp1hpzabi8x94dvc";};
+quizztex-68823={run="1yrari2lhzd6rmkqzhng49vmcbglnb8zn1mw5f4a0np4mw5dhmdw";doc="1qii1rajgh8fba2ck8l1p5dzviiji2i4nppivmgllrvs78cnfk60";};
 quotchap-56926={run="1284ldj6pfqq6mz2a62pi81k1jca8xkc6wa1wbrv3kqwfdcc8cwa";doc="1bnhvp91adi4bhzwddzl16qw6d74in94jq2h16lk06aakcwr72hd";source="1g2cfb5j1qjqads2m9ad9a8n0j7ihrvd55q9b56jd141a23layb6";};
 quoting-32818={run="1sghajwgfdc1p0gifii8wz1rvzsiy38f4jpfmh5pys9w6nr9a8bj";doc="0aknicilv5rn3claf77l5br5mr21yg1dhdc1j1yxigz9k8pljzm6";source="1h01p11ahr4ykqnhgl0kwc5i68mw9wznswrxy9ab5rpma1agjkzp";};
 quotmark-15878={run="1v48482b57w6f1cx0b5av9cq26zhgcqkwi8yllnl9p8pnrjngc9x";doc="1jmdv5i67hsbmybjr8j2sv7f7z8bm3a30yy0ycyp6b5c3ycqx04n";source="02bg50nj945gycxf8kb7s9c87xwszprq3zynrxxpzixrxqd06pf3";};
-quran-57601={run="1cgig3cq5057q0mrs0h5mz8l9zpp5xjjzw42kv1v88556wxc564c";doc="1n20l8366iisgnn9zdzfcwhqrlg5zz84w30ddm1zjhwnjsycin17";};
-quran-bn-57602={run="0dlwf4jnm9jmxa0q3fpcnq496zqn2z66jrmsch520xyxf3bsgk49";doc="00466c408q27rz6yw4wkiqarbf0z5rk2cxs2ahhnhxzgw6pi7va6";};
+quran-67791={run="0gp028w9q30wx5vfjvj53b6brrac6wdkybai4fij2kk2vz0ck9lh";doc="12wphp5nz23svjj06s8xdrfghfqqx85hmyqd4rg7kxyky009i6kk";};
+quran-bn-68345={run="0rfg0vi7297gdilra0lg6z40hxp22y3rk3fxw82j0hh5dj0f5gl7";doc="0lk1xjf1n42v5mkg2sr3mykvgrhi9m53gxndifc7pmm8anivfklh";};
 quran-de-54191={run="1a9dqgrdh6vw6zpygslfq9d9z8qws9n614b5adr7pkjcdwm8zsaf";doc="0fq3yd3grj31wyjvac4qkvs38hjjnlsygiihrxw22ddhsa4cl2jv";};
-quran-ur-57597={run="02r06www7n8mb8z7cx0wgvhawnskchnq28mdqmnyk4a7f59gl1yp";doc="1d86p5dkj9l2g8y1lq48bs92by5925w3zgh94mcl59i156jywlcz";};
+quran-en-68790={run="193b22vcvbrhy12rjzxzgjhlfiyzp0fq97g2sbna45s7358r4n2b";doc="0jgqpcl84dgf0bc5zlzsbif5nqw5kyhi4ngdd4kcj6z5lpafj6k0";};
+quran-id-68747={run="1pc6hnvi1xdfislik6rq2f121q9r8mjy48prmfj51zv061f367bs";doc="1zsf40xn4xfy8wiyqznsa2y7b2rzffak995yrkllkbcny5q20ilw";};
+quran-ur-68314={run="1l2hsql1q8yhicqxdz3jnhhc9cjlwq4951xsyfz5ayzrcckw83n1";doc="05xcidnphnidr1pa4rhiimqlqnfjqkwx4hsl6ppmpiywws904g3j";};
 qyxf-book-56319={run="08v4n8lc3qcxjzfvwqypnky9zhia7ylwq5f31arxgdf0wq4gyhia";doc="0i6g7v0xdy26rdy1kap0b4pnsz8xjm1h90dwby8y0bqlxjhd509w";};
 r_und_s-15878={run="04icw2n2vz98bk48kbqybb6x3wgzz8fr045133vinybx49nk8xxa";doc="16ksw9wid0sr9gjhjkxk3696fcy19gky3cp9ia6rsfh20f9f2yw2";};
-ragged2e-66153={run="113lp0rnx5kh32yd4i19zpbb21ngi5fvbhgy5mkpgpk2n4mjszbn";doc="0nrfzfv3fd9m6alhhvqs2lwryah65pj8h1cvh674yhqlqf896pbw";source="0ikha3pdilvijjnamk91dwqxvh4fy6l31iq7i0gkccmzm908jl56";};
+ragged2e-67441={run="0wvvlhbmj1j4gp66l9p1hq526r3izywyf8ddggj316q2pg4db53d";doc="048f04kd8rzi3cnqwa8gw4cvx2q5k5qpnph2idvkvjy3lw3jr9nj";source="0zj8nphii46xwc4gp6h6l65zz9lx3s0741x9gkz9ghq2x8m7qphz";};
 raleway-42629={run="1d8zv0x1j2c996ql8g7zc38s7fpc61ibk5zdixhj7kbfrz5cbc1b";doc="1i8hja5817kzy894j25hy5cjnw31y4kcahcymx5hrbi0aplhizx0";};
 ran_toks-59515={run="1k31qcvbdfx5xknykv9zlsijgzxcw53amb03avwbqm3kly5d30r4";doc="1jri3cb862m8984awdshlqc9wwcq0hbjw6cf2yqgb9wn186gjfyd";source="04ix834glql0yprygm5s2354q62cwsz39lfk871n8s9mxjd2f1c2";};
 randbild-15878={run="07ix44c2zm185byn868bmm6fcbwq9q37h31brfa4839hpklg41pp";doc="1cpyzrmswxawxk6x2vfjy7y8qj3mjrxgmr9lgjvz11f5fvvdb0i0";source="0yzz5awhhw52zg877nl76410a4q6gy7mrri0hccicj529kk0d1x5";};
@@ -3199,23 +3281,23 @@ random-54723={run="1y4dn1i3kmd99b5br7a2j6ppf0ikzp744si5p6m5rmvg4vh1jh69";doc="1g
 randomlist-45281={run="1kwbg73d8hk4wh69fajl1zqyvkfyfxzyv5xykknpa5s67pxkh9c5";doc="0r8i0ywq21c1h317b3yx5ixr4b1fllgwams4yy5z13alda4wxqdx";source="1s86m5hcncfqkwlr8mwdyh3fsnyzisiw5dlg52r499wr77r5z56j";};
 randomwalk-49513={run="10ivivbyrxm50svqdhv9lm623pvmnifpwpnbhpmx2nvf4crxxbcm";doc="1lvff00h8c2fxyf7if1d2xqkk87lb6396w6mb4yfxwsk0j8j2jhf";source="169x0wy0k91kmfbisqh4ciz8n4knhkxmz2d227gzwbf80sr2a80y";};
 randtext-15878={run="11a4j40zaixjklf4rkzb17cxnfmm6lp9kph3kkp2kalz41qamc0k";doc="1g8nwiz06w4a1sdvdfch5yavar11mj5xpk631n5ym2d5g7hp0dm9";};
-rank-2-roots-61719={run="1fy1zv4yf2gqz4im40r19m1mmgagkvmfhxpzj44csasdcd2w1415";doc="0mrj96c11vrp0b6df17fkiwnbnxpis3rwk5ji8wwa1klg5han5kf";};
+rank-2-roots-68161={run="132sfajpxnl82pz9g76h4xv7fpirqgxrivz2g3mccgvb5ykiv0cd";doc="0y1rva3xz08xkw8s46xxhn6kl58dh1v9i190ffqjd1g2xxix10f2";};
 rbt-mathnotes-61193={run="0mrk5p7h2y1kaaj45fcr56smzi7ny6808k53s5442gf538id9jmb";doc="1ysaqvli3gy777a5g1d7q5brc245qqfr1fhzj0a4dwrj1gcnw4x1";};
 rccol-15878={run="04nw4h7z4k4rnvqh5s602l8h05n85iri3p3cpic4ss71ccn8c2dw";doc="0q3qb0sbhnbqwgc0i9bw27s317rbz05k6pmvhad3m8mvlsbgh285";source="0ss2436k5fbd25cynhw13lq4ns4payl8fi8lc96vi0kvn6jmkwrq";};
 rcs-15878={run="1kri1q5b36d00k1pmpkpa0dmbv7qqprycxzmlmqvp7fx82s5awwk";doc="1x6m7v28p3lslral4wk595clg3kjf2nwk2mi1sva2fl56mny7mzx";source="176fvqs3r8wysrqlqwjdnm0xqgqdyjq7wfwnfb2iv3c3rmpr7ab0";};
 rcs-multi-64967={run="1n60pzx6qrbabksj2aqqf1j4i1b298ldsyjg8z6pmhladq2r3ia2";doc="06lqyy8igbiyl86b8fsl968sv94xcnl1amppyf8hmr52dhdqcysc";source="1pdds0kh3p3rkdn2nrpyfrw224q3rfnahypif8n0aijkcxdlw3w0";};
 rcsinfo-15878={run="04j1sq20960w5yyf37pnzvwaknl8f18mx6rmj2s2vch8bcncdzjh";doc="02zyrgcd0m77xp5p95v63b58mv0h0miqlziagwv1rz3ywvmgwhk7";source="1fgmppgp0n4arrilxmrjn7h7pf5jq7gm6drdz6njq8w1l1qxlxg7";};
-readablecv-61719={run="1za8mnyi0vvwfn1i4wcrmba904jxi805f0v3507nfav55h1x343x";doc="1ixyxxiv5pcyhqx1ddwankc8ymfm83123v8d5i4lpwdr9g9h4jc7";};
+readablecv-67986={run="0z8shn1l3hghkxrmaiyxsv25n9ar59j0nscj1331yf9dwh9cd31d";doc="02zjf16y49lyi9wy3w7k2q1sl3j37k3575nm1hi77bmj4i57rp4z";};
 readarray-60540={run="1hx39j04h7y14qrp75q9f5x3nnii62pvi43ww48nk02glxs9y5kq";doc="1v0f93nhylqs5rz2bxrkfpzlvwajsz6znlyvdnc0gxcbwg330j1q";};
 realboxes-64967={run="0xyp6w8kbycaqmrkkrl8701c7shvd9i16vvgs28cvr61nkv3mv4s";doc="0xd95j7wgv3yzrzq9lvdxpzvvvki2an8kg0zm29yz01m397vmys1";source="0r0phiq8v15ra9a429j63kyjv3w2p96myr8czijfcb9g4920jvmm";};
-realhats-63595={run="19xhg696qbyzjr8dnzg9bh63wys70f4mb0c7wbcc41ia1wymvskf";doc="1p2w8rhg5kjwq7x8ccwd7i5yczk5i55lb6pnl5h73h8n2jpzi8bs";source="10p2cp9lhgbiixs89f1il91ghsl3akcxsz7ay4xni41fas3kmil6";};
+realhats-66924={run="0v8pc4b8ls0xyfbji9m7dw728dni8bsggq2pjf9bi2vzmq8825m6";doc="085nfwsfvmbwv7zlfg849ywyqswi011278gmws01sv3q5y6ypfxq";source="0rp15pryn8zyq668pxapwg0imbn76m9fclwh6qd2jj48bqrlsq06";};
 realscripts-56594={run="0ph678nf5k03xl63z66gkmg5f8agxy201y6bvabhdnb1zhvfrfmm";doc="1kmlaym3vxb9mx0jp7wvmsk13i30wyyazhny5zzk14bwx8rk3kf4";source="1qzqr2q2bkq4pchin1xivg8gwx5qkgip4kq74rswfz5a5iimyh0n";};
 realtranspose-56623={run="1m3gmj9bay3a1b7fidjs6rs2077m7csaszz11g6y5i2sjpjyx2aa";doc="08w4ad33pycaaiwhrnmx3sfx2c6kv417ijhqgxdsja1mrhcp0nxw";source="0s4lbg2jg5fa4x8f9cnp5zcb4yi92g4981dwdksqsilcd0in4ksh";};
 rec-thy-63982={run="0pr0k26k66dqaq4rppgqx27f6km6a7r4zk6cj4yjl5l2ac19vvim";doc="0rljkcq2vgppc1lhc8mms0qxbqiq7yxhp19xbshscga86hxd0l5q";};
 recipe-54080={run="1pnyia45nx32r1ng711k2l3g2h4r6n67nfxvg193z4mz1i20hq85";doc="0hhm5l89naj8vzjnvf2ambpawq7scp9bgpfjzszgb6069c486bvp";};
 recipebook-37026={run="0ianmda3ji60acckagmlsmrsvi4sxp3prznvzqkkkvv88w1xbm8n";doc="0fmc59fddgfs4v6lsba04g334xlkhsl1liph7v3yx4qj6l9dxlkp";};
 recipecard-15878={run="195lg2kvww7amwls014s21l2pnyp24c8cfyb3glrxphcvcdhhr6q";doc="1h13vn2zw880gvzi1pc8j41wa21ygja43hrjmyav4zxziiisrnwq";source="0fkwvjxjhaywk61j750a05x0s5fgb96q5n3afcq056yf01jbvsxi";};
-recorder-fingering-66026={run="0ppzaj6zsh14gvjxy4gk3hz4qfdxka3akh6nrddx1w9ryq6sk40z";doc="0qxw8bbd37yy4vib56j22fxpbwymq6pdb4s4m5dvq55z2ja05qsg";};
+recorder-fingering-68595={run="02wxkvcwh8j3iv6dm9ms3nn09kb8lz97xx0jq7p0w2i95is472bc";doc="0nh52w97xi8p2wgqrpz4svipi8fcam815a340zlsphxsx31c8lg5";};
 rectopma-19980={run="1ivjyfhl4g3j1j0xnq31rcnl66z3xwaixyzs8wwmbf1y18lgzyb9";doc="0gfvsjszqrn2r1cm7blk0xnrnv94l1a7ialwhvf733vm1m699lja";};
 recycle-15878={run="0pj6xvdd30b4y1fa01vmhczinw48d6psfd8iy0rpzpaq89rbjrvq";doc="0sylgv7viy4qgl0krhsf8q1gkxiz91wpn0l5jyq5y1zg92x8jk1b";};
 refcheck-29128={run="0v82jjddvis01n2ngw7yngv4kh2impw77s1yq360sxqjym2m34ng";doc="0ckmd4wnjl0zbyqr5q18whb927sjbz1xgdg1hg5w4ih0g36sra63";};
@@ -3227,36 +3309,39 @@ refstyle-20318={run="0nx762gng6bmlrala884r4mjh2vjh4r20yy00bpjzq0il98hs2lh";doc="
 regcount-19979={run="19n0gwvh87pb2fanw52rc5j540v9yw10h2r8svczim9sdginy56r";doc="0qnxcyh2vhkylaav056lc2vg24y5h11svzy6hrk6rr3sza9k6z2k";source="1xfk7qs4x302lfi93a1n8nzpsmzmypyb34d8hd7h8y6nm7q2g4y3";};
 regexpatch-58668={run="0i8dfsr32f4w3lfh88z45sdhvwzqgh52xqfqgj53fvynblpz9msw";doc="0qh2g9sdj971a75dv3jfxi3ga3mf6fmb4azphkdgxmm690dblx35";source="1iq45q093v1n421r37w42815yxjb7iby426a48mvgzyc1c82rd37";};
 register-54485={run="0i084dij80m292c9f57hb0y3gs870520l8awl3wb21ss76vs5501";doc="0zi950xii9qbscbv5030aw02arc77c8inwxmzkslcmapdqxq5wr4";source="1jz02c2c5xpinxninb1a2bkgan21gijs48rks4xv17y7k6z9h00v";};
-regstats-25050={run="0rxapv9sd1i5wvb7ybaq84bjjcy5widjrgsfbkgg2w3zcanb6k61";doc="08iqkmpa3pg17ik8x49v5xwg8a08806xvp9d2xyamf8ndrcljnh4";source="00k0b24g1c1kpzpvqka53h6c19pxw5cf4sw0ymgllr21agri6mni";};
-reledmac-63105={run="1dhzi396g471ygr8697c998wpz1gn8c89877f9c35yq7jkgwxjvz";doc="0s0gr9vlwcw6ac4xj0ck6yym4l5sz2wyh5rvswv5fdb6wx65zag1";source="1niai1b8dlgpqkpwmm32gr0fvabxirm18xx745da90xvrs6ynsbk";};
+regstats-66795={run="022l63bc3g31479byh1350fl4wpfw9pq9jbqy3xzhrrl35psvqpm";doc="1l54lb8g97gib5al38k98gnahrpl4sc0kr6wrabagq70cbbpnc50";source="1px681bkciakl41cyblk72v5kh83hyqf7bn3s0hjax9alszk29pa";};
+reledmac-68411={run="0kchw0r9irziabbpjbf405f8rp2n7xvijipbyx7isnzadhrkyp04";doc="0gbx77a5k22393yw7c8s8w6pakal4q3sfq8021mhcl2qcmpvc574";source="1vxxgm7wy47gwhg9wax31fm02klrviwadvik5863hikrinfl3im7";};
 relenc-22050={run="13ym795q37rmxhmr0d8834y272si11f0qh7lmhffrpsf4d3bhf74";doc="1hb2sdm9lgzfkj2kkbrlb3alnfjq4rw3islgdzkqbcgqp9s06f67";source="1gk7nbczw9b897idmsgqx6i8xdmi7wizhb3dyc0hir7qmivaqv6s";};
 relsize-30707={run="06sy6v0jscrj2qs7axm770xv8fkiivvj5lwb8mkf58gd5jwc5bgb";doc="1sgv3x3dky3i7xivh6pzqh3lrqjhb62g0ji0hdgmy9blfrdf3api";};
 reotex-34924={run="113nfw6md0v4522n54q63smd2g2iwm89qsqld237f32r3rdkbcl0";doc="0lapzgfp019a7qihfhf1cp2szwq98j8kmcy80c3gf1fa1x0c3x1q";};
 repeatindex-24305={run="1z4z6bpfjmgn8mkpcl1rsd9m1jxdx6lx2kz83r43d1ks5zjc6wn7";doc="1vcq9vbfw4dwif9q5ki0bq378yd4sg5g2yxr24bjav97shd9iaxk";};
-repere-65769={run="13p5xqv306jhxg1kcfjhrih4vl8blpjism830ih38cq9454yqmmv";doc="1vx1ja9c629iivm1cz1h0dhn0bk5691fsndxf43mxpz81kcsi9hh";};
+repere-66998={run="0kjpf1ywcphgmkxsr70mzqlx3mid4af7699hz3fqgs307iswj0di";doc="1fhx74lsy7wsh84p2g9chdqy94vh6sq4wi1rny9pr9cmnfxb09m8";};
 repltext-56433={run="19h9qfzz9idywv1bi4qpl8yqv73lwj6s6aqxqhb8jlh3b2scp4y7";doc="0nhr1lpbb5nvi7mfzrjxfq7ii2kib8klzcsqg99b4pj3hcwhv93v";source="1phbwgyvdm6a616wzvlc24jm40k4hbyjsnim5g5jr15phlsa6r2f";};
 rerunfilecheck-63869={run="0i06ypv9hgdgmsv2idx8bfpi9xfrl1m17ly6cg8a1x0v6ns50fwr";doc="16ryk4k490pxdli58j36bgrbmfi4gfc5jm8y0pnv9fcj07da7wpy";source="17m0dig8vddgga28j5raavq8aysy3kdgzapyrciajj0j90q14sss";};
 rescansync-63856={run="1qdcw7zi965khz3n3xrwg9x84hi58iv8sg9b3dwn36cjdrxvvx83";doc="0szxkc0bpj0in2mlms1m381hhrajvwhp4yk17daihnyyxx6m78i9";};
 resmes-65375={run="1g0gqmx21s3y5h8ll5ymgd2k78mdhw3nrzc3xnpihdvh4gjqg9zv";doc="1qpmlhw6rxc8jmp44349x428f7mrs6dr07l5q20v2qj3xnnicjzx";source="0s5w0cf3a3106v029yndv5hmx5nrdk27dwbw18wb5q8m49gn6pz2";};
-resolsysteme-66193={run="179casx77warx76rzmfa8h2rvb8z77g7dp3scs6kbyc3s8j9x7gj";doc="0q4adkm495rn91aq96baxf365ygaq286cds25wr6hjfg9yj5bhgb";};
+resolsysteme-66192={run="179casx77warx76rzmfa8h2rvb8z77g7dp3scs6kbyc3s8j9x7gj";doc="0q4adkm495rn91aq96baxf365ygaq286cds25wr6hjfg9yj5bhgb";};
 resphilosophica-50935={run="00qqwp5n5a8hpz4zpcmh3avbm0wh2csdwdf450hmqnhpv2hn2z18";doc="1s5r4s8ja16vsz3ssqk0klfm1vfxrxbcj45mlszq5r3k5gsa1y5b";source="0nkxh1yc6nnjlh5bmf9w5k6hzg62f4i7x7nbf2019vlwvqn7r4yp";};
+responsive-69147={run="1ymdbw5gq79i5gd75dcnc484cjgrp7ckh8163a9n8rlghpn0pqqq";doc="1kzw8r28invf2p4xcqfws50w5i38rr7wwzf7jx2x147n8b91zr7v";};
 rest-api-57068={run="04y8xai39hlhj6y78cxq2fqy7fis7mbpwzyk4jmgqd3365738615";doc="1w33inmwr66p81g66zxqiqccks965060034sx8rmjnjfgwqqgcgn";source="06c06pbqa8m58r0lcr2xc6zahf6gjdc1r2zfgs3q1b6czy6rns34";};
 resumecls-54815={run="19cw19c4a3zn5gvsngcxj6xvh2qq5n5am0sdmg9zajy9lqqp5nnf";doc="17z14r8yj33mjjkydzaad1bm5nhvrv5154n5n6snjszd13vgdyh5";source="1mm53893g9nqp3wdks6qa22k4pk71v09rg98nm1i1bz5ppn6kj18";};
 resumemac-15878={run="0nixlk46dpyay8zsxrfkcng23rdyx48mnq8s84xs5whlrg369s3d";doc="1yln2mz6awzafpmrlzi3s12zj9m7qfj4laqgjpy4783rxdxy8w57";};
 returntogrid-48485={run="0cfik8imjgrhgilc7005cgy31h1azjk15jrcvd4vpf3g5ml1hpsg";doc="1plnz793nhiq9y89x7i51bgp9d18kbi0bpwslg982hf65yklmiwr";};
 reverxii-63753={run="140f6n41kdkbg6fivz7rjlc86fvcxv2nizzfb511s21waj3lljdd";doc="0n67pqjal4nv02viyshdznqwd5xzc3s8v3w1zxykrphccic73nlh";source="1asb5s8xvns7l54cdp6gshcirdj0wcwhkl791jxb4c93qmb3pyx1";};
 revquantum-43505={run="00mcqs4zd33larynscqza6p18a8payrgarwbgdsnnvaqf3c2rjnf";doc="1nbs15bl80yl7hrav0awm43q4brdfqm83bpyf2zg00yz5pjm1497";source="0dqxvcd5yinnsal4wydb5ybsldsax18zp016p2yzk212rk61rikd";};
-revtex-56591={run="1kph9xdp7ax4pv24ixxrsivhk9xqd5ln23c96cnn4qwvs65jygj1";doc="1s7i1lr8ra692jwjx2bf61h1jfndqwpqfqjr91v28vh3w7cg0m7a";source="0vishjx0cymhnb4lsnx05zdghfs9h2bhbz2jwsbdma81p66lx4jx";};
+revtex-67271={run="1l5kvnpz3ravhdlzshhgjw19mwm6jggpsplgmdwzbn6pmwnk0wzw";doc="03pyr8hd55dl40wf50f7vaxkwbqcsmajl9hqaxwq878pgbxb1zmr";source="19ij6z0zal8321q616pk62mcyj12cwb12lw6cgpbqf70g61jgfwl";};
 revtex4-56589={run="1v1km5grdg72mqf7sha1laprwhhwplrklax9mabhg13q4c9k8dlk";doc="1709bsjlka0d8x405fyac8vpmklf92qhw0qgmzvbhynhq4sc85b7";source="031vqkbg38iwi92yhvd5xdmmkbjhrr9lm7ncmlwgizf1y0ib7wpa";};
 revtex4-1-56590={run="13azycwjj9ihirfkcgmjrpvjha4wngmgkm6irh3388zwjs2sh7sj";doc="057yf32dsx1j3b89wl9jqrafvib8p0x6l3w3zk1c98p9vp8c0lm8";source="03dy16s50bkgj2l2zkm3z6mzf9qwhrax7cxll2p0rxxwfgvpgh8a";};
 rgltxdoc-53858={run="10wpra4vdjvjsq8n6iz33mnl69b13jbslp6ccf5b61va4v66z78l";doc="0xsz70p88ij6djhlf7n1718fxqcngfxnyl60h3ia0xi1gjzrbk1c";source="1vzldzdqyiqfaims3a8w378k4bfwxyznmw6028xvwrk7abq1nr4f";};
 ribbonproofs-31137={run="1f7j2v5233fvjzlrlfliy18gy890mlr2n2fbqfhh88f2w3z4nw2b";doc="0gqbakw5jdamy0q4rx8y19xkdnb7v5arpkjmmsxhvv12pk2kb3d3";};
+rit-fonts-67659={run="0gsghvmn1va4idw2p62r0a4vr5pdy67kk75f73xpkhsg4i716w49";doc="047lhzb7h0sq1bwrh0a04ank09apii7rh9cdrx77ngrnrk2fz1a6";};
 rjlparshap-15878={run="1af2a5fmzx1mmk0vprx8w18rqgab0dcm1c7sfvnh7v59lgvkh6rv";doc="1is0ny6a5ndhgl441vrv7ik4i0br90nlcddiabgmshwyn87kiciz";source="19kvfg03r3nr99a9ylk3yr6nnq8r7cvfp3rsi2vi10m19jz60ssl";};
 rlepsf-19082={run="0ycf0md4d2bz8003s0q4xi6qdjspi8z1dp5040cm3qm25p7jsrf4";doc="1asi443gvl34m648ap9j5an6fx5x94s3v4dp8bqvygn615jhd0na";};
 rmathbr-57173={run="1jlafpdjryj0sic2zpn5f90754ydnfbb74x8b3q19klm3n20bsr2";doc="1nfcd9ypyscqv3ghlaljrnj4rm2md5h5k6yl173n15zrr56sxkfd";source="08mzgxkwk6frzgd2hq8fz30dliwrkrk23xmqy9p0qjmq9vi7vbf9";};
 rmpage-54080={run="0y292gcfkj0nk8090iqnlrx9mhvh545im2xms080kz0l1847frpc";doc="0rq7xjizq8nwg9zk60gjd9vcjvxyc0xaldc4304nyihfjxfyd00b";};
 robotarm-63116={run="10xlswn7bkad45fyv9j70pd77319mynldwk530y23lc2874s3yn2";doc="00qwsv5vxidjzkm31v21sbzd6rp1pvz2vrs66gmlm1xbfsv4kd0p";source="18zffnyyhc3mp8xpw7bc52q29z3skqfxg6h6x4b18mi9jpyd2x6q";};
 roboto-64350={run="05ynyzlrnhn7q95ld1midxdccc7kv209p4x53bi2n8rsjmp9sp39";doc="13aqrvxs9vhy8bpm42fx1i47m0q80pc4zm5gh2bllrpgpqn9hbry";};
+robust-externalize-68842={run="04m5bnzwfpfqafcqavcwdmqzk1yi22hpq3wrh1kiy858dlcxwnmi";doc="1wq6m2z9q58340sgkf1gvns6n5wxb11a79kpmkwmh3zzz0mjkp9m";};
 robustcommand-15878={run="1vxsxdg6122psbplm22l7f193fv7rd3dadcg6ys4ngzy957acvig";doc="13d5rsj95yx81bfbansh964dig4hjp5raxagzws58f24l8imvfzn";source="1zgnyglhz8i6hgzxlj19kdw31z9kx44zj2vziwkhcpr9clxl8as8";};
 robustindex-49877={run="1fl9vr5mynjg8w74sk2jh8vgj5yjpmyhyr107iblmcicgwv1sd9y";doc="0xf592xvmh6xmw08zwwcsn9xyadd9637vicnz95fbfpp03p9qjnq";};
 roex-45818={run="06mry55hqrakkc7yb7b174cx45n0frk3isxw96p4v77n9pyvlffk";source="0fwcb1fgz4kxbgcqm34s5glswj43wzg5j56ak5an39lsw0wirs94";};
@@ -3266,9 +3351,11 @@ romanbarpagenumber-36236={run="0m2772qfl5862l6m81rrx4xcbj1s7vhk9x0ywsqnr8qxl1kmv
 romande-19537={run="1bmqvxmlv2065ifn6bdy8i3mj1g6pkg44dhjrfr4sj5g8dihhqq0";doc="0fgbq36nzkvfw56rvqajvz8krfd84msx8iykkjizn1m5zkqb4iv5";source="1v8360kqvxidzkq8sgcg8k2cqhl59q7bmrk3gvf9vg0shrbvdr39";};
 romanneg-20087={run="0y9nlxbjyiwivw9jkc0vz0lj3b0nvj9dcd4sj0gxgxa1dg853rlp";doc="0bi3b9991x1pvh8s8yrw5031jkvvwkrwah78qfd5rlywh2ylnrr4";};
 romannum-15878={run="15zjf8wbjif83vnib3y6vqxc138aplb93nfkh95wl2rmahaigmw5";doc="0a8zsbh28jl761ir6is1l05n9jyvzr31y86qwaa714yxwpzak0s4";source="1gnvnj1l88l66mrhvd50cx44wws4a45708jmrncb5mnf0i6v7ci5";};
+rorlink-67461={run="16w0lixzj403qgj8yjwn7v5dg8114h91kbyad27y26z7c6q31dq0";doc="13z72aidbrlgyplr8zhjwhsyk4q1hja60jcw8d2l6275j03ykls6";source="18r6gjh78qfjqp1bczcrsdpzddhyfyj152z2r2i5pjcmdjp1806r";};
 rosario-51688={run="1jqgz4cxiq3md1dldlil6pslxxrp7brr9hl28qcf6akymnfxx37f";doc="050yna9vb9cz026cyi44f1qc596svxvf6fgyxlby2isl1jqy89zx";source="1bzcpxygwsmcg91nxx8lxc9skm5cr8hbz47qmydwznkkzldkdbh6";};
 rotfloat-18292={run="01ycgag2ip0kxdsaymfcndmbhfcc95ppkmwhm3imryibm9112bv3";doc="17x7jdnrnm333cq706cdkgzcyscq1k162l0rg3qgvknig6991v64";source="0ymb6xbsqqj91b9vkfzdab1ip0xqqj72zm1kd812gjgkpgxc3jfv";};
 rotpages-18740={run="1pqfkyqs8ymfqsvq35cpv438g8a3az6sajh2bszxncl7m3rqa10d";doc="069jlj27xa7vnl83bx5m4k79lky0ayvcl13gqxlk8an5kdwmdr3j";};
+rouequestions-67670={run="15265sdg56vrc9i7jl55rqwmhjzg27x46qinmzr51jws1wls9l5v";doc="0gj9w2yv7nvjjr50jwaagp6ccqr537h268sakms9fvd3hx8awmd2";};
 roundbox-29675={run="0607rknc69dnzwajmgaq1n8ixv884bqp5n9m1g6n2d9frmmh057i";doc="1vyna8wndg79vman54sv24hbdlv2jnrdkiwyxgzcwc2zv29asxs9";};
 roundrect-39796={run="1xjfigxkgcszkcja58jd2w1rhhnccsl665p0k20lssb97wmdzjxg";doc="0sg1ck97k8pbg2fjf99mhpvd251plphr5pk1dywmjniy9vmhv1ih";source="02kk3h77drvkqanc04bjlfzg0scprcs78z3m2zf8gs6q8w95k7pv";};
 rrgtrees-27322={run="0jihs23929pzbgpgnb2v9i16fcil9kxkggdv1dvg6xq9f2fh21md";doc="1skw79hvvh0xkjff4bfl0nqdd8znwhhwpdx33v8ns43xxamzmnwy";source="1q7y5mbvnrykrp87kljcxw7zdglh08cqz92iahdsaac4xffnz6bc";};
@@ -3283,7 +3370,8 @@ ruhyphen-21081={run="0pizl8szphgyq12sbpgsw25x88svj6vmf8j7ry23hvc9bvjibck7";sourc
 ruler-54251={run="1ikap9dkdw9lzpda0f2krizqbfkyjxvyddils7clim9nhg77aq71";};
 rulerbox-50984={run="0srxrij0sxvm04n6zk4vq4qqmxbjz3v425nx191z96fpjcssx2cn";doc="030wrw1ry800yixlgb11xbm5834njv3ad9gl4jv08x1pxkj29vcp";};
 rulercompass-32392={run="0ky611n65rvaii9b5ic498p7divfm71h843bv9h70v363mki9a0q";doc="0wqgnb9czbmymzmv7j48lgdv8s280id5sh8mwv6p0jqn69zcpdd8";source="19943zfp2rm3gdm6w5db01w6r1nl0kn4zkrnnxg4ic4n3gvv76px";};
-runcode-65588={run="1vanvfl5v80zrddm9757khwidrmxyfl2w9357nrham7mlv9p3p2z";doc="0gqsxq7v23pc9iphxd2b9d75bsq4w4z3277byra0df26r525jd66";};
+runcode-68223={run="1487x7a2b6wbsxmngln9yzyyd5a38ps069rmk95nxam936ijknjq";doc="0blns23ww5i2435sd6pd02dapqjbxq5vqn6dfwhy3bqnl199dl0r";};
+runtexshebang-68882={run="0c4rsadkk9vxcax1r0c0mz30krw387da9ildvjnh88ll7zgxv7xx";doc="1j72plplkdlazbqhpnykwl5fbszr3lil3zg9a91aih9nzr662vrk";};
 russ-25209={run="0jr0x81xc1zi9vhgvqy0hcga48nhkj9z2n4rd5303b8h68n92yfd";doc="02dl5mh45z9n2b59clcqnaj9fsv79jw46ph3303mlx7plyvdqj8z";};
 rutitlepage-62143={run="0gslb7lkinbhlqdgp8pb60h9x6ajypb5991z17p4d0jwifz063jk";doc="11h7ppnimbf6znqla0r1vq8six0ri5ihzd82dj66hhh6ic5pq9bx";source="10k8l66sjzdfrg6cbslx19a8nrvw7w5xaicn78rkkf095pyh1qpy";};
 rviewport-23739={run="06nc81iapfymbp0kxfk0srpxilfhk94xwhslv6az8n5a3bvp2mq5";doc="1m4xvkafdf2skhclg60fjgvyd6vd5y9jrn3186q0hdi66pa7dl66";source="1hijca49b0cvh3w8dqwng6wdssmg2fjjj7ga9ifmziznb2k4qng6";};
@@ -3293,13 +3381,13 @@ ryethesis-33945={run="18d9lw5inr4fxxk4x4xjxnnvbp2agz25c9h328gi1c3afsmi4lsr";doc=
 sa-tikz-32815={run="1hmxifd6zkq4scfwybz0j4za911r76v56pczgym1shx8lqadsjcx";doc="16yjn7zpfwsnwg0mpqzwqrlz6v2bf1gf7qd9hhj28kzp0qgdnka6";};
 sacsymb-65768={run="0s1w8975ihjffw4mi44x91m8z5cmv7vpwvbai0n5sm9f21mwgvmq";doc="14mnvqqpac30qwjld1vsa6ky1qni968a9kxlvi8nqhn2n12ng3bf";};
 sageep-15878={run="0yavixnkhy1y69l38xj6pbihzm83ncvnsl6pyr3l310hif6r0wcg";doc="0z2n1511lr2m39vn4bdamw8xbxlw92p5hrsxzrnjlrg39ysymsyd";source="19547avrh6yv2v86w8f7b0pbvh8xvwa5z8q69bxcvhwj0jqjicps";};
-sanitize-umlaut-63770={run="003cav6j6sqrcy40xx8djg959mmz8jc7hr5vvkwnk7y4vnljay0v";doc="0il1v8p8wk6asgadqqhb2x7irr997r581c96g9fkc7kzzrs4kv8g";};
+sanitize-umlaut-67126={run="1hif269aigbfg3j1f579c6ipvlqqgs0swlzamxdmplbdxc55i9b9";doc="0nh23n1yhjyf21l9sr8y6yw7v1mil403idqa08prvrmnqhp1d215";};
 sankey-61874={run="0njrbv0wghzsyhhxlahy6gc4jbgyz4q43qzqc3jb8lln6s6yn6bj";doc="0v7pfxj823fxl8w8v8khgnd64g0wr7198071ai7s6bpd9byq3pkj";source="1qr7nfgh8zigjj2hhwsvhnd3dl6933dfaqjidbraid3l93af8ynz";};
 sanskrit-64502={run="1w2qni1pgzj2mafglzyvwfk11csfwz83gbcq1ihqabxsy3wqvpqw";doc="1ss9shgz8q2mdhs2q5128pjgcl9ldw0bz97xwf74346625n4wgxf";source="1sg4dzb24q477cp83wn3wb0w5srj373llhx3fnqc9cmxfb0rs7ag";};
 sanskrit-t1-55475={run="17mqm0iapkf04z5wlj3qpk9qlz8nnq50bfbibikacdanv3852m8i";doc="14g53969gw2azpn7z81kdwc1m1hz8mafrz15kzrfiw9w6hh7s6jk";};
 sansmath-17997={run="09zi9xps6pv6pjwp8pjiz6w4zqa9d3rwqn38167k2dlwnc3ij6g8";doc="103h78a075lh094slfwlh2yk4dbl0wryzmsksvbp80gbv8w7llpv";};
 sansmathaccent-53628={run="0653qd7c2lb63lbgjrbac7kwl2lzygz694li1clwxlkrf0bnv1q7";doc="1r7dqwn7vxgg51jlsgx82kv79fxskcdz6cyhkdbwgd2f3rmkcm5x";};
-sansmathfonts-64661={run="166kmaxvp7rf3kzw86lnazy2wzvy43vnqcq6v1lw7n8mz34m7ahj";doc="1vp8s0z57lplwyi22755xik3ddaahnz1gy6aiqqfnaqk13yrx3wg";};
+sansmathfonts-68777={run="0bs5n1j7gm87a3dcczjmkld4h4ql9q0kbaa07l62vdvsv0zhfb1x";doc="1lnkknp1axxj0aighhj3cmv2y1bcka9f2a0678g1wqc87kh796j1";};
 sapthesis-63810={run="18dfh9msd4w3gml1h187sdzirm8g44dzvdgsnh4d21nnvbbxzhnk";doc="0cy0rhr5lc4k9jz744jy4s9pf8508vqj25xx16qabfi28rqqps3d";};
 sasnrdisplay-63255={run="0qhvx1nc7v6l2gq8c3av4sqsjlzm1raw6cmrf2lls7dg4dpz60pm";doc="10f3cr5vfdgb7g0yw3pjqdfiaciwb81m2gssn0in1hv8izy09krn";};
 sauerj-15878={run="1bd9cvx40skqlx71hnfrnc87b2p1wrw3587fjxlp6a22yhzghhvq";doc="1swlcqm2z289ijbxnv7aib0v0aisqdn4l2bfymvn268siz58l4cg";source="0l5p9c0fl1p7gy815l5064x93msfgb6z2lnvm2x24mwfnfpykrqg";};
@@ -3314,36 +3402,37 @@ scalebar-15878={run="1q9jqf46j12f9rav2j4ngr52pqfyrc4h9xj66cgb3mcc7nqgmc4w";doc="
 scalerel-42809={run="0b4ppffs7zcg3y6i3c6dnjb2rl1xm5rz7k5mxm08qj4dpdhyjfpi";doc="1js1z2fkxy7ixh069hmg5cxm33xjwwg002y64m32wj4ldb7shfk8";};
 scanpages-42633={run="15q22kfwbw6scnx8q9dj3p0hr0m86lj2asy9fp9s0a15xsbhq1is";doc="03lpz3836rwk5nk2sbbyv9s0kvjbw5ld9cvw1n40b5hggivc2sgf";};
 schedule-51805={run="1p36glmixr7qadjj91j9rlzph03rp8hfrrfdqcg1ayyzkinr9a6i";doc="198yxgq4255q9bqjj141d5rvzjxq4rw1363gcwy40yagqs4xhxs1";source="1gc4zpw7ylnnv9k9kbqjf8r83srxbiqmqyy10xnp8gx7xrnbmnyx";};
-schemabloc-58212={run="0bpcrivkkwqb6kg09rkwhqzmc101c64g1j5kicfp11r9ha1fbwc5";doc="0cvbwk285i01brrbpalclm0bfhxs4hnngrmn9aw42ywdi44ls624";};
+schemabloc-68445={run="0vc9hfg5gn0xs9gjv3c4dlrxpsqwp370y1b9v9iqlncglmjcglfy";doc="1l9hqsa743lanyxp4y2p6ifgwrdaxycwnmvdjzdl6ylzv3n4qm6c";};
 schemata-58020={run="1idrxgfzwcy31cdw07f1axv9qxiy2m2j039rj7m6gqqjwnzpdyfw";doc="0wc4vcn0gbwwgf5c7cxcb66w66yl4s815d6m1cj3dv2mcm83cjyd";source="1qblgn5msrnnaap7w1r6szdzphf7dgij48g0h7cyj12dxy8gm9a3";};
 schola-otf-64734={run="01i19k0xhha76zz34ccpq83lgnjw4x7p511ssrbdqmfgrx5q0gbq";doc="1znflqa3myy4x0m7ayg3sk4z7pja5df1jm7lkashrcrr1gjqcdbf";};
 scholax-61836={run="0is3py7zig7whp0hzga4d4a7kfs4h32w1irw4gmrjb3cqndg8w8s";doc="0m73qqh86cpgrrxw8v2nz5al0x850danniqyw8359bl26r8cj6wl";};
-schooldocs-65650={run="0snddqcm935ym1ky4sfqm1br0rcbv4kfl4q348lfx865c26r8gjk";doc="1sdnkshpdwi3dz8h5s49igl29s594kbbi1kcx4czq1hcbhdca2nj";source="05nvr5j1y5s97yg722drrk0df87l75khm6ld3wnwdhfgarsmw5i2";};
-schule-60210={run="1x6lddxv0gxqz7xh2wcjyrqgsfmsh7van1mwiw92ws4xd2a4m43d";doc="04m2ar25p77bbn9hzbrprsh786dfl8rypl4w5zrnbs8kd0a582jr";};
-schulmathematik-64108={run="18989c44rqbjd4fafv30afdl76hakc0hj22306jiam1zg464x7ba";doc="1xhj6mb2fbxyd2b2m8azk8pbib22q9k449wgnjc6mhswxkyyjqrj";};
+schooldocs-69238={run="0nvywxnknaindq3lfdclyqhna4xczyhldm40g287d8kka7avbiy6";doc="092jvfgy71nl68ljh3xd17z86q03ghc8w7h6r2mzrx2n5rga7z3p";source="1wi1ya0kg1gn6v9wbj9c1f3mg70fjkfg3lwciy7vgmzskyfcragw";};
+schule-68483={run="0ki63lqw2m5f4q5aal8qz6v8ldvlpbgc72pzw2rb58l56m1lc66i";doc="0xm09ndnhf93vyp3mwgns973dd4pff0jrkffjm2sfqfasc0lvk9y";};
+schulmathematik-69244={run="1dw6six3530vyb4ym05yzx1f7mh14kk9pd7187rlqzn9n28vzqy6";doc="04y8fyn8plnq1q01qg3l2i5hw1rdycsfhr6i170kxdishq7zavy1";};
 schulschriften-59388={run="08dsnba3p8nz3hnzh1sd5cd09ngg73vl8yq1h5l8qcnynwwbrcdc";doc="0vaqj4m0yxbbmqf51s107k28l2wms68w3km801lph4nfz8khaybs";};
 schwalbe-chess-63708={run="08aym55g3r9nn20xrc4m576q03lgdfxdwhgaac6j29b9jzac5wxz";doc="1s36x2mnj4ijn2785jvgk7mby9xpamh5ar5kz4ghpw64czsx85a7";source="0ls4xpj78311d2q1vacg4h5257wdf11as6x4k83g3m4dx30hxcvx";};
 scientific-thesis-cover-47923={run="1ggghh7w9grb1l1r7xg1igdw79jswcanyn49rpnwiq5rj4a09r2j";doc="1slsn30sbhxlvr73fk9infwjkw66p5sgv0ydkmarkp1ncybqzr6s";source="1qlxpsy3rdb10xxv1nsn817srdfywq6z1zgb4vb0hy3qnbd2rjwv";};
-scikgtex-65256={run="01ssfgixh4x60rzl3yawvsyv6nlgz6qsnhil44vrmgpvjrj8l1bg";doc="0k9pv4g1969fxnlql3y32yd5q9mngca0hnqnpzclpmf0mwgy47i0";};
+scikgtex-66764={run="1hxldpgmp0k6ygry8pni0sz1bkz2mpcifnr7zrsabsx899np0rps";doc="0x73pwz3mwa7gpq9gmmdw6j7mksyknwbaihqfar5hidcg7n45k4b";};
 sciposter-15878={run="1pihppjlynvdlsin8brrhl2mg2jif3fa1mvsard686m4ar6id25f";doc="0cpyz5n70hsp5hjdja3pl1lal1i2akn7xawwcp983mqfgnp8jm7c";};
 sclang-prettifier-35087={run="164sdqd7msilg6jk1ivjzvv49amji4hb5r6wg51vcxmg069apcr5";doc="07s0y5dfmp26j0ayz2bhksdybpqb4cn439cvyifxillkq277dqk2";source="1y67y73f2whg663hw56fwrn6jhhpdpm81w32kzwc7r6sk79bnq3a";};
 scontents-62902={run="0hl8sr63b1z8slq47z4spl0sikxdyr0im7zf0vllspaxqfb4nh6a";doc="1gapcq60n48byiv81czq8h93jhhmhx41iddynl1mq5j2icq5g6wr";source="09n4i1jqp8pjdr9qrk956vr335cc54kr5fjlcdavxxkrwdbzclhr";};
-scrabble-65507={run="1903gqya55dcmppwvcw1snx8395a5i35bwphp0jnv9q7xhfflmmg";doc="0sq03g68z68hsd12z152r93w0k5awpqqr4b2s1zi0cghv3ad360c";};
+scrabble-69024={run="1c25d2axdvz4j7n03dxk83bk9033ik4cqmw7026vjwvqwvp48mfx";doc="06jbihq6m7y7j6ivcl69kyd1jw1hkj1ixl2vsl17bgcp4la8i6hg";};
 scrambledenvs-60615={run="1r6a2k4n1h8n8svp40yraxjxy8xbrrj8d5srgz081n2fb7g6qdqx";doc="0ql4avpcccx92n4mqb6cn8g6zbq73238c4ilr4jj5x18afsg5f98";source="04xrips1nk27apwgfgr0qzn29h5nzs1810q66vlfk1qlmka2gszy";};
-scratch-50073={run="1gd2yq2w2v7n3kfsid71qv2v5q1rvpfm49rsk4815pk4k16kxhg9";doc="0jhy08h2v2qf3p8dvh8mz5yqqrdzxnzlx1p50ng7xn88d9ihpqdb";};
+scratch-66655={run="1gd2yq2w2v7n3kfsid71qv2v5q1rvpfm49rsk4815pk4k16kxhg9";doc="0jhy08h2v2qf3p8dvh8mz5yqqrdzxnzlx1p50ng7xn88d9ihpqdb";};
 scratch3-61921={run="1in71jxpq9mljn7gvaslsnaji21d43yj6ckzim42fyd9zk48waz5";doc="0yr18cyzdfrdz6vs0slbgzgp82gklrmxh34k1p135g7255gw8k0w";};
 scratchx-44906={run="1rhqiix6dmdf9i8wan5xh0sw9ynawzb080b4izlp06d8vkfzx6rb";doc="1p263dcjk8mjfxzgppkbkh7l2p89kavdk6llkffkj0z8gvg8xaiy";};
 screenplay-27223={run="14p99gph5jvm0h9x8irh0c4mxb7q4208j5q0d8pd1dpmlvxvzsh8";doc="18i460n3p05mx325nh7br1fl3i1lfviy7jgl24yc5hwqyx3wwdpk";source="1fdw0bpf4q294yqnc4svbpyiza9bq7x2m0x5rc0x709c1wylqsyr";};
 screenplay-pkg-44965={run="1xzwvnf16djzsif7ff8b51dq98h2844nzkj2f9y6c75g6rhnyls1";doc="0hkxa7gz3sammjdvglvafwczn54m6vcywz6rwqng8qa2hlvb2c3k";};
-scripture-65493={run="1kzcc5lnfyvlgq4vz8p6sx7w7a5r7srjvh66vy555rsfj5sgs2dw";doc="01hajlnq2x6ssz8dxqf7nyiz7in635l5ndna3l38ajjdh25llfk7";source="14am8mn1nra6am3qaqkcpkbih4mqmyb3cr8wlyjfiipyf282y7if";};
+scripture-69232={run="098jk1s4xdvyh5pr90rysmxjhvk26135xfaxq985sazaz6lhm5yh";doc="02q96z886ijc0ipz2gi3dxnr14a67lhffajiqxq1s203m5rbrard";source="1pbdxbmar62z4drqyr31d703lg9yv5rscg2sw493bkym3lw1v2cf";};
 scrjrnl-27810={run="1p858dfbqas8x4ddpw81mf59p47iqj30yban2g70rims1wqy4f45";doc="1rfx2x3kir9qxp74halcwrn9zg8c4lm72jljspw040gpvjpiydm0";source="0b48zv36kn7bg2n94yl2dzwh9ba1fx7phpzljqpn44ybj1ng966w";};
 scrlayer-fancyhdr-63844={run="04cq94rm8jkkncb4g3dy5d0b7c3h8bahby4rsd028i0iiimaqnf6";doc="15xy198pn5illwsphn7x2hdh2x3d3ydqa3rqkiwjj4srq5japbw3";source="1b60i58229yc8mv07fls6an4br8p897sdg18lz6b4a56z73020x6";};
 scrlttr2copy-56733={run="1as8ipxhssfx4hqa4s246gfim09nl35dx1wanfc6p0yk79nm5lz1";doc="0hsyiicb359blk6m4kj5gddlzwphxr12hbrwbp34cjfzkbh5ib5m";};
-scsnowman-66119={run="0xzi49kpfq3n37ryn8p0z8h86x1328az401pmv6iviyw3l4ri0ap";doc="1h472n0ajfc9my3y6ggnihd0kjpiqhw65c7442aidmkwmxqi5lln";};
+scrwfile-66872={run="0mvrg5vqhswmvnpf74ifld6fk2dyczknjf21hwmy7lyca6vn9fak";doc="0jhagc6ab9rfnb3shkn17dhfgklwmz6lg2ln77vskngxia5g9wzr";source="08dv79i1cm699rxpv2h2acnq53ghngc3cf98r7rcgmxvszgqlm8f";};
+scsnowman-66115={run="0xzi49kpfq3n37ryn8p0z8h86x1328az401pmv6iviyw3l4ri0ap";doc="1h472n0ajfc9my3y6ggnihd0kjpiqhw65c7442aidmkwmxqi5lln";};
 sdaps-65345={run="1s9vs9ffjl5i8lax4i5ij7zjv28d75sm7z8frssm1cj0fb0wdq01";doc="18096xagndh28fkiy4sd6nw23vik781w4pybqnwjfy9hfm3h6c9l";source="1l3m01pggyxpnr2nvqnvzwl12lsv7m3lqh7h27l77wnwip7sjhz4";};
 sdrt-15878={run="15p0i40aa82f9lgdiy7wn5vbkbb4z5hzmmr4g52w6jisx8c1w45v";doc="0y1gxcyms3wprp47y2mlfcc68gijyvyc6h10ivif1yydmxq1b2ki";};
 sduthesis-41401={run="1i8rdk8m8bc5lk35p7qd4pqddi3knpq1ylbxv67ij7g8sgrl9xwg";doc="0i7f9zjxs297hx3hd6cm70hkkc50wb1pcr83xk54cy72yqiq119p";source="1j6asblirf0x4f5zp8zbmpm7ak5nsilqf4ksxr4bgrca70vfava3";};
-se2thesis-65645={run="0r5x7rs3jdsgymlnm6aqywq4kb6fh6v7v1jb00w77qicz35cy1yk";doc="1znh3apfh31az7kxb7cbhd7fm1257hml4qvrvqb1gv12vx3k5gck";source="191sb3zh4gax37fyv88x8hxccfbg1bydhliagjfj1ld813f2dwj0";};
+se2thesis-68255={run="0krn4a0r5vl4iaw0mwxh50h96qgwfwh25b26c82jhs4hdssv8gjz";doc="1sdg6kln5vz6misy8fs14abfvbsrb896gzf32a635qld3ayxb4k4";source="0hr40nj37s4civj4q62c29gdyp2w1yqi8n2ls7f77rfsk32w5czv";};
 secdot-20208={run="0pnimi0vfgp5zsp0iwak0r0j562w59cl1fn3pnp1gwjz65q2229i";doc="1v8j3l2bh055b18zxl3287ardn0ns5qjgbqkj08qxz5ls912y2br";};
 secnum-61813={run="1zpxz6j5is9f2iaj53bqq2m73040lmzn60h9rwp9kzvlafciss7x";doc="0dabcwh85mvq73sqyi9zkbslzbhhns1sqrmvddvy1yjww0lf2q3k";source="1f8dfi9vrlh71bfb1mi2ll0gqcd6jbv5k96jpmvrpqy0pv1i2ckx";};
 section-20180={run="0rqlczfl443z7mjmnmndclbjy6qnqvla89s8yqwngzyms4z1h3v8";doc="14d7576idcbpxlw7hy3hsdd41gpiyksb9ajwnn0jm1mk2snzb51b";};
@@ -3354,7 +3443,7 @@ seealso-43595={run="1mqy9br1fz73q2l6czmhly8j6dnw51d50dkfh9622793z0a2cl71";doc="1
 seetexk-57972={doc="1bhv5xgv8jpam5apdybd0cggnvcizk2r6zs7lim1hmhzafpqqlcx";};
 selectp-20185={run="16kcbpvjsdc1ndhhflfmnz0igjyjc5k62gcfly447w7d13qsg2s6";doc="1frpv5dbxfg708xp03hs4vkgqsxjihn3yk3qvcpns6awjlfi2n9d";};
 selinput-53098={run="13pxqr1mzkblniv9rcrr5aslx887xjahjj9f27h7hpx6r4g7hk17";doc="0pbqch586hfwfjbm68g7i56d0jcgg6w26k6g2qlfdbk8mjpc4r4v";source="0na8byym8s2y2jyi1691cnw46izri0y6ybf3g0pmil2hpxy544ry";};
-selnolig-38721={run="1xrndff5if1jbk5vzycj2alj72r123xjwmyr1lrsjkpkp6jqjg0y";doc="14ppr67fbhsqi6d5x0f40awac7j3i90kk7mwrjm1ch1572im5dhc";};
+selnolig-68747={run="1xrndff5if1jbk5vzycj2alj72r123xjwmyr1lrsjkpkp6jqjg0y";doc="14ppr67fbhsqi6d5x0f40awac7j3i90kk7mwrjm1ch1572im5dhc";};
 semantex-65679={run="0hzp5i2zdnw30s5kn797bwz0hi8ldz6x10x6bgp157n9hvipqaj3";doc="1kd48bj4w4rjk8zswgxgjxj470zxnicr7mbq9lb7crra6ldprp15";};
 semantic-15878={run="1vf341vlmgc00d6srdwjm0a2spad674439ml9k6ir24pll39ia73";doc="0rr5kbn1yzil4h0j42v48m4mkqk8rzwcn05rkn8vs2s13az6djna";source="0x2qal3q0m886lw5xd9w200fkq4hn34qs2kqsr7i7dcq9xwl57qp";};
 semantic-markup-53607={run="10ahkdiwm4h5mwigkzgjiq2xmy1lzgjdif11zajwckv2xng5ckgc";doc="14gv3pgdyjjjj8l8vfa2pgzafyqlq0666hbk0cz6497g99z4ga15";};
@@ -3375,6 +3464,7 @@ sesamanuel-36613={run="1a6673xpr0q8v7wr1rrq3n6acydsfsc3q6kmj0qg6hm7lzqc1f2r";doc
 sesstime-49750={run="0nrwgky0rh7lazd41h3jxlb0kgpk5q7hhbgkfdab41zrawjp9y86";doc="1a353bn7z135bnk2a8q57x4z8d03aimyjfqx3w9x0r81rwzns605";source="0vrwbbmfwfqpvsfz31yid9rxzdc19749fwhlpimx30arqpd88jhg";};
 setdeck-40613={run="149m9s33isx98vkl3498ywjy6f9q31jkw8schc16hxxm1z0jadnh";doc="1rp64i0nrrxn7l2g6dlcmfvwbq3rg62h2ifxrzfp3k5ifnlkhpz1";};
 setspace-65206={run="1h2cwbh7kb2hf3s399x78ij2mxj4b9pjyxrc7jjsr4ldx8hvf2by";doc="01v5nwbkap93zf90vx4a2whwxa0hbnscqqgcd8r865xfnzgc8a49";};
+setspaceenhanced-68493={run="0jqlpgv868qvcl5v3kgzi9dl2r99fx7k8frbzd3fj1yfmjvzb1vh";doc="15ln2969hhaic7zk6g7j66b5iqpw1css0qgwnppwfvydyx1ln6yj";source="068z20knb02jccvh3qm9a3rzpaki5r41is38v6ax9a2mxmv36y4y";};
 seu-ml-assign-62933={run="1cz01iy83gvgg3mk54vkc373smz4r47i8084jgcnr24c0gwr4h3v";doc="0f780ydm3ww7q2rar32lxadzda4mz8bccgman9j5ibwfsdnc1jch";};
 seuthesis-33042={run="0yfan3cpx7h7hrnqncn152ccawlrsaccj0c53kzza0wnkr3hc9rc";doc="1hnrl455lz61y9ybhmrvxjb66y5816sq3yqb76zszrscxh5a8h5f";source="0dw7ipk6l0mwgrwrj9sxg8vidwmmy22vmpwm6j2ksnznz0238yf7";};
 seuthesix-40088={run="07vjbiycd00r1daqg8m0b6g9k97ja0wn3s4zx7774av6p2hdhllj";doc="0j1vphdi9z6anvw7d3a20nasrdfgg8vrn9jh9wi787f9vy2xzdlz";source="09qpilk53k37c8dzc3q3pgvm6yf7i7a09ln0yn586wslvm2dmmhr";};
@@ -3388,51 +3478,52 @@ shade-22212={run="1dcpvvk5216znr2i0nn302da6vjixkih5nwix9m3hlmrd69z6hcm";doc="0xs
 shadethm-53350={run="1miq7szfh1nya53vcn9kv3m8jb1sx8p1v7z5m3829ynbyiwr7z9v";doc="1gbjisy9miqp0mrciz793vvhj0a04vaai1ixi6vzplhlx9gknv6i";};
 shadow-20312={run="1avy8291hmmvbrqdn4yza9w8w7a7hbwlh38sl7288c6gh1hkyibr";doc="0rjfdi2hm07j418q3fvrf5pxflh1nfkhrk58nsa23fixxzaw5nlk";};
 shadowtext-26522={run="1pnnskcw1nq6m3rlvsa69dxq828dx0bgggg8n2p2bxnr9gmnba3c";doc="0lfvn68d48yh8smf4w8c1is67chsfnipxc82fx6mal1czlyn73hf";};
-shapepar-30708={run="0siq7d3d5gr91s3bc5873540b1ia73ggkf1y1bs47zb3mh4z9g0b";doc="08bwm9a4rq70swqibj9s0i4042fnribqz93jx02xd0638wa51pph";};
+shapepar-69343={run="0siq7d3d5gr91s3bc5873540b1ia73ggkf1y1bs47zb3mh4z9g0b";doc="08bwm9a4rq70swqibj9s0i4042fnribqz93jx02xd0638wa51pph";};
 shapes-42428={run="0ww9akd1cf6nr9jk00qrjc8j0d9ryf7f8hc5ywmnz1q1z6mk1fqd";doc="0qh721vhyny3xmkwiaif3gdmk2bhy67mvyfkc4hxrba8lddnkfqm";source="0g3xfni1lmwdkl2jmprnhl3yxdrmilr6nb59kvznwph10h1c7iqd";};
 shdoc-41991={run="0casdf6vn89la2vgqy5zcc04nlsrqpiz0zj7mwlf6w2zqcpmr1x6";doc="1vzz7q88xq2dg3r1xf4idgvdqs4q4w5lplg9rvi867qa8qcf3ly2";source="0wxd21fs45f9d5y2ml3w50d7z8ig25gv34iy3mldarnqi2v64p7z";};
 shipunov-52334={run="01mckfm6ikchmld5r8mdy5x472avh473bfc7lk4rqan8p4wivjrl";doc="0k6x9nxsqcg74z9i462qix58qycf3wjii5ld13xajn04g52bwvpy";};
 shobhika-50555={run="128p64d6bc0m65nwdrjr35b7rxlx21c025vj8bk6n1frfg4k4lzx";doc="1zxg9rxsdf15jn0hn81p20j0dbq1095vqrmh7d5mzhlhnybkr1kg";};
 short-math-guide-46126={doc="1wjcjgw0xk4zx57f364cpl57qpxj3lq4lahlkbk6iiin1h9v2prf";};
-shortmathj-54407={run="19rscnl84f9x6r7kajj6wjh80di5y1mc4g4nybafnisap76r3c06";doc="1kzzbkv36hj2wc9kz1wjr5dlgx3r21vlyj7sy8m8i72yfnmajgbx";};
+shortmathj-67201={run="19rscnl84f9x6r7kajj6wjh80di5y1mc4g4nybafnisap76r3c06";doc="1kzzbkv36hj2wc9kz1wjr5dlgx3r21vlyj7sy8m8i72yfnmajgbx";};
 shorttoc-15878={run="0y1sa1l5g19arc5wdnqp0jzvqn51m4gb07acpcp3ajqq7n7yaf3y";doc="13nlpmb1asrx8vi08kb6kcqg6szhnzb6667crj9xchbk3zm9iyil";source="0a3hl98rl5qadx1mqqla9hw6i1s3324i4la2kwdazhxhvi6nxm0q";};
 show2e-15878={run="0mhpxhvgfnzwwzd9ahyzdhqxzqz9sj6vldrnbjy4n0r4fv6c67pi";doc="0zfir9yzh3mgpkldcak7hzal0mwls90h1m5vxiax6h2izfkrixfm";source="1lnhqxazyz2gfgkgbj7l2140x81bgsxb71y8dagcqazjzdmqgcdl";};
 showcharinbox-29803={run="013an5sq2kxrfs04k51ldc9vkixag1lbicl614sbj3n3ixgk15db";doc="1zdxvlj1jspgkws4xmwa8yy7aaxqwr33lmzkicg6ayy465jmfk9b";source="0b8hq68lbd0xjyd1cj3qsw1rd4rvjsihd6s9ab5v3a0q1sm5kaw3";};
 showdim-28918={run="1pb5qddnvv4kl79fcp20zkcfgxm8p4zix82g9431db3bbavvmkri";doc="1hc208xi8c4ihxb9nsk6y5p6p43yyylqh7jgy8lai2a526xm2hgw";};
 showexpl-57414={run="0gg8bp3pddkp3z79z8wkh9263gnxhcn6vxhgp2mq7w8i166rrsyc";doc="0dv60pc2p19bzr1fj2hqkgyjry9j8ykcgsi0v3xpvzh91ic9v5q9";source="002v6m0gzzx4kr8vnw75czn58cmzjnyyfyzi2hvfx9ykh7nmibng";};
-showhyphenation-63578={run="09y88h5vns0g7xg48g4kcf5vg10qg5m445ihxcq3r3wa13clj3py";doc="0ymp4x3n2p2d84mzc9kcq6dyywhjivxjrar7v56anhc7z9hxq419";};
-showkerning-63708={run="1irn104fk72wkk0qhazgd2965gj5rzaf4g4j4hifi03qz32xpijz";doc="18n8ifl29garmx7fyh01h5vpycb41lrrb9wvvkl1g9s87ldac8c3";};
+showhyphenation-67602={run="1qbgbs9jc2i2r572187p925wjyw6zi1h3pgpyr1ixz84ykdjc2n1";doc="0qrvpapyby3bbaxh84529fvhgpsvsd8xv1020q832ad5fay6rm10";};
+showkerning-67603={run="05jfqr88hcx4mq1fq9hv47921d54947qqa3jdgvk529d0487lcqf";doc="0ggkfgf7zb4jn6icnn43w4jzlklkdw7f0pqyksf00mgxcx041fh6";};
 showlabels-63940={run="0v3azvk9minc28bs6n7g75c0bimnf2ilw1379fd8hic59h1vgqja";doc="1l46xsay07ysg4d63x7mxkavvd9cnjwmfcmgnsh1pg4icpyhs055";source="0vmh36ia7s85bx51hddga0mxb4lcfrmxk31zidqk4kkpqmf20mj9";};
 showtags-20336={run="04m7f6i3992p93xz9rlfa0vnil6h9dyk7gy1v7ih47f1m2awjak8";doc="0i0iaz4hlgf52g68znl5a3q366hd8ygad2khjs3y7hk1fwqpz45h";};
 shtthesis-62441={run="09g79h7dwc0v06h06svj3h43q1xf31fli33xxlqnckz28i1a4y95";doc="14fqspd33n3r642mvmiamswjl4qjda2g7p62amxs69s64cqfliv2";};
 shuffle-15878={run="0laiw8v6izp53c8y0jf4k1nb8brvs36gd937nz2i2cvnpghz98if";doc="1wd46l86h8vlxpasvhnvjimsfrhrbs56i767v2h7bdl8yp751ycl";source="13qz2jc0f084acxdsf99fj22kbsjkr6i3y7pqzh1g2jd4d8bbw8m";};
 sidecap-65618={run="0g6j4mh0nxvdvqyaz0b0756y1xx55zxwrn761xz39mmw3sca3yzz";doc="0yynp2qmq6df47fzns8jq5hkbhkj8p3il3prq4l7pg1129278my0";source="0h0s7hpmx4ha318zkz6caxq2ckvwxxv2fbkjy7a3pfs7q2x9fal4";};
 sidenotes-54524={run="1ip6ybhfihbbzflafcqfhspr1d1x44285msahf7f9ilmhd4536x5";doc="0f4nqbw2y36ymgcj7ywy9gf94pcg09aqk4kjpankksgwmvyjbsxg";source="15kz5d5038vi03siq6lbbf97nng1024hx8zzgrasm304sf2c0ggl";};
-sidenotesplus-63867={run="1x5mpszf3c76qzw62y6x23pshlbj2y1bd014h34sdn3xma4m796a";doc="18dkzrl5m5aj8h68kx37m8lsz7jcyfk00c9bqmhdnz62zv34kvrq";source="0kzir93q2528i7j9331axsvrsrpwwr6g67nkmw7x3ynm0b812pyq";};
+sidenotesplus-69176={run="147si778pbc8vj4jmclsp1qkjn68qli97b2jz8c5ij3znjaxk42v";doc="0vb5r7bxj9xn1nkzmqnxh32ar87fy385rf2zpggahld9v6l7phbg";source="056mv9jqp9lgysgk89hh9wwbnwi4q477zc3cw6c7hkm5wn0xcx7w";};
 sides-15878={run="11anl2mfkzkdv5qb0rfw7940z7hy5i43d8hh9nsvzgwfsw0x1qkr";doc="0gsqb1hzhy1qk29lhq57arzivkwxw1achz08ms1q8q9vxwcsf0sz";};
 signchart-39707={run="1qg1r76v1llj68iqk5imp7f63774ky68sv64xa6j4w52jkkswn1v";doc="0scpaw7l26fcqylcqspd0g5va331yf88a8wc69diw78haywwgp4f";source="1lx77qldn3d23dvs11giircs2pafm54094h6ipxlc4g39g7xc0zl";};
 silence-27028={run="1zixww8d87jymdvxjzjhvhjjr5f8fxhbjwqyzivki2rhw6dpsp2v";doc="01qb2z62da0ji751i3wbhq10rfin23q20r7wr0fzvqv163niy93v";source="1m5xiy5j8l0xy9731mf0jvk4f6bh7d22vbsgpjpvy5r0vxafgxwv";};
-sillypage-66350={run="11r22wb3701sbkdwcz1bhmiaw5xv0bajzhfky1yld05w5phzh21x";doc="1cdahbjw4p317iyr0drpvqw317cjlmzkpjw9s61hv95297156cl6";source="0ya6g5jgpip7b18av75ifia998z5pz3r1sixa44f5f1vjmbxvy4w";};
+sillypage-66349={run="11r22wb3701sbkdwcz1bhmiaw5xv0bajzhfky1yld05w5phzh21x";doc="1cdahbjw4p317iyr0drpvqw317cjlmzkpjw9s61hv95297156cl6";source="0ya6g5jgpip7b18av75ifia998z5pz3r1sixa44f5f1vjmbxvy4w";};
+sim-os-menus-68843={run="02gnf1js2x3l3y01hj10yy1b1ymkmpf2x8pl9qrhsx63v55chm3k";doc="16bgnhiqxmk5z1ifgci7pp0lm9sg3xh18irvrgbwmdvd088cxm4a";};
 simple-resume-cv-43057={run="09xsryzpnq33wja6fkrxy4ajrci6xcn0bx0mbsw37h0q0h65rp9z";doc="0gbf0rg3v1ivw631yl133iamh7kadclr089rby72al50xwnbi559";};
 simple-thesis-dissertation-43058={run="16byfnhfd1j14911xs1448yampvvplxy8l54by4qwq01wp7pjjmf";doc="1wrxjkgbvps1wyicwlhkx59xwb3vcy1n0wf7r7dllw11r7hdg6f4";};
-simplebnf-65485={run="0rn155jbx869rcfr1s66wqssj87krxhk9i3iqr60sqaihjsck0lq";doc="0jyiym24m8l4yjbskl0ic1kcz29lajndxd4qxcqyg7ynw9cdizyp";};
+simplebnf-68959={run="1bcg213dww4ngpafy873ralbhp901c6xrsnvryzpgk5jrqw2d2bj";doc="1450ri57ci113csq9z54zj6284s8bn8rsl5y2xidl76rz9hdidgv";};
 simplecd-29260={run="0d6gw59xd1mqc991yy6k5jva88j66pd69k5sl5jrysl4rw1mxxng";doc="11fzk8p911v1myphghzpmkj7k62vk4sdicirys1jh8rd2cpnnwcl";source="16g6fcsr0nw7isqimjq29g0zyf72z11qx9xz36zq8z4khxsl09ln";};
 simplecv-35537={run="0b7p6d8y7xa8xs9i2qyljk2s992gprsr3a5pjalkkssa5kiz3371";doc="02x3nwmxdk9spx5crlaw1xdqlwah04m88zrrw4wdg0qjnhvv4mvr";source="05ikxmvflqz5m3qallwgyncda49dzq4fibllgc1j77pdh99cy3vq";};
-simpleicons-66337={run="1fl8z2sp0acndjg7zrml8g4iqnzr43ldblgj1hi3lxjw8314zc06";doc="1lb1d5s3dhyabv4m9ng13g150f952q5n1rlsbbr3rg2kb6my99lw";};
+simpleicons-69396={run="0qb0mr7k1fypanyw0lhldmqnxynj7iymmyn40yy5j8nzfxz44c8p";doc="0h2qfijb12yslabq7yny5cmhlhjyglg7w1dwbn3gph2c5z7mlqq7";};
 simpleinvoice-45673={run="1mdc6aij1id1jxlbkwfdvdv87yh55v5qyazfciffpbf91qm87z0s";doc="0lvk87l3xafl4s303rhmksfajnw77qd90yvzhdk126dp1prh7i6p";};
-simplekv-64578={run="19ndzh5cg0aj5diybkz04ix1gzxmbyczcn3wi104sg02ck01jl9p";doc="0k4hbv1p5xjvwl106nh3wlh6nhiivnprdjgkj0s64y65458vsj24";};
+simplekv-68439={run="0cw7n0skxgxgar8ks5nlcn70pyi60zi7n2crdbamfw3kgzdqhqsl";doc="1hqyfflwjdxmq289ngc25gbjm2mcvwxzm9sbfp06xszk2vhbjd4i";};
 simplenodes-62888={run="0rdmcmj583i81349m2hwdf0wl4glsfkg5vkmhlvzndh0n55ivj3a";doc="0sg5xs96agly3r917fvbs8mxii7b3l9hsqf2cpfpx5gwdlmwf0d3";};
 simpleoptics-62977={run="051635sr8yp7n44hw9wza6hw0b4av87yp42wkxwq0rshxldqgsq6";doc="1lwk3qq1rgkgi7qd8qxdjjfrnk44c1gj4vl01m1jl181dxjs7lp2";};
 simpler-wick-39074={run="0lm22wdxiwasv4igfsyjfi338qc7m985da7a9a6q8cm63hks2alm";doc="18hmx8b6zpsc98mmjvimdayqpkffwjjch4sjajbz4csjpza7nl98";};
 simples-matrices-63802={run="09kmqq2si98yg3ddnlkddn5gjlvmwd8w78r9d2xvd7g28wm1hjbj";doc="0zbg9ppqj6af49braf4hd9b0fklxjmsr7yjgbla6ckbkwihkqssc";source="059wa3qyaxx7ha1xw98rwa9w7v5nyhq5rfmajhba1crnp155x73p";};
 simplewick-15878={run="07rzphj6ffla4qz9pa31xnn25d420lvsnmgj7l78ryxai5amdfvw";doc="1ch7yqh3bv2y6282cgvqzm4pf5hgpfvlmpg66zcp44wnkq1sw67d";source="070f0zrnrf2sh0dx5dlbz6072b76f8iw03pvywhyryfgghfdfv7d";};
 simplified-latex-20620={doc="1cgf1p7p2ikda1nb0c2vhhx7ai6rd973pz6a00pr9yanxsvghp6d";};
-simplivre-65475={run="08irr0irj0hnrmgv7xfab3dbbl87s7anwawnnbraj5l3d6p9qqhk";doc="0ar4pww5dn3q39yydm0bv7jwlcf4dp0h23rx1h0kk83sivgsj19r";};
+simplivre-68376={run="09x9c7z98sdv7zw9kqysw4wcfg3x76rn2y4fjwqwqa63fwy9ky9x";doc="0m5bxr5gflag1kv1c34jk78lsv8d9hsyqw6i5yhfm3r7hb1z0ki4";};
 simurgh-31719={run="1nhdmdi6qbvx1nd92hxl8vkly82a9nxi7ghj0zpm31c15z5pb7rq";doc="1cw434sxnbgq5dbaidn3zn8i9az4q35blcx9lr6yf3m0yy2rl8by";};
 sistyle-59682={run="146493bgh2ghbscq69bxsngjfkl3k8g68cy5j28v07lxi3ywr6n0";doc="05hs1wd3wj8szj16wnmjfiy0g0hxgy2cc9ai7q6ys77kgjb0dpfp";source="0sb6vbhnqlixrfy9484d8im3vmgk58y7nqad9hm2gkd4p560cxj9";};
 sitem-22136={run="19z6zmwriwrlcpgdgn5yl2bzbz0fkn3p8g5hrwd368bq7wyfc8mi";doc="1wwnqhl3ffqnp5qxddicqwsr7515g6j53rx1rgi9b5z3cv42f5qj";source="0y249krv2h241wy8xbi5xjrxypa56zipi8fbmqbziw9cjjnz993v";};
 siunits-59702={run="06x797504p5lzb3xlkri1sc9whyjjz6a95gk8kvpympglm8fmpxz";doc="06saapj9rh5gbrj0npb9rm60xrww8rl1y5brvx97gj4qvc3i2pic";source="1clhfsmydg2xjajak0ssa9v5sd3id957si5zvyq3njgl9cpjwi9r";};
-siunitx-66370={run="1szqn5gp71hmp5k1nz5w54bb1dc56yzksvsisscc0m4035q41iqx";doc="0rxybaxx8k20yhlh3qsgvx0m3m1bx4m0bf5v9gfyjmjy97d6br0a";source="1bhcximmicl68k3rhqs103l5pzkivkxm7c2gybs341hjc8pxssfr";};
+siunitx-68844={run="040pclva6m2300m4zrqqdd1jm608yw3rpldf63scmhkxgb981iil";doc="00j5b599s2wdizmhk8rr9k1894nffa6ynaz1wg6ccm8ndzsv6kp5";source="18a9xwb1zaay0mv8b3br6bg2dm016z1s9zbavalz6psr8wv59lj0";};
 skak-61719={run="1lh97kc1hmz3ybb67zr7vr74z1zngwl2cppkhmp9cagm48j24am1";doc="0abiardppn7hx6l5h4zh92b9m2yf3w16y15rcvsspv1cb9sf4lfw";};
 skaknew-20031={run="14j42hifh60p6glfp24c2f5k9k34vcm0l3alqfqhvv68l31i05rx";doc="0i144akq7sgs6kwayl8c2yir0kc7czjs49vj6l5lwdcwbyryhh21";};
 skb-22781={run="0k441znw2bn13aiyc6b5hskl76hbhcpilc1xg4jw837dbj2v6qiv";doc="0qi7l9ky0y65cmcp32j93lhwlvflvz8didq9c77faq7ffgzz51s8";source="1rnraidwhkxlhk09ppa5k0ndqhrra4asbpjwv2j5dgf70wfm5vmh";};
@@ -3456,23 +3547,23 @@ snapshot-56735={run="0598yminjxp01imxrbzydqjli0i2ws1f9hw6f3qhs7xykfacbaml";doc="
 snaptodo-61155={run="0wxnac52wv3aknjs8vsw17ghxn77xiqffn6badyp0scyr7gvmkbc";doc="0036gs7ybs2ilhp4lhzc489r5ai6ffx0ha7fn674qzk3qn5j7zkl";};
 snotez-61992={run="1nq3ggbdpkpydaqzpfawvvny8azgbmnbwpl00wsl4rhi7jbqsfwc";doc="1v82nn2y2kk8h34j8gidrzlx8nwah5wmdk3qigw8aa1q7vrkj5h6";};
 songbook-18136={run="1qknajn3s4vpw68hwn0mjf9zllhba035gjgiwj807nifhgm2bvpv";doc="08p61v1jgw0s2bdfwgmb1zw5pyldfsy61d09n6qq93wclgaim7lk";source="1xzx3jxp4791imxw6h7gs1ach94k1w33f4p8pd4rvlcnwglnv9s4";};
-songproj-64966={run="0p7jah73xsvh4yg08jmsvs8cq2r1bn6aq9s4rz6v4q6p65b69lx8";doc="08ksccgcwpqkl04dif0yy019bl5gra7pmybyhpbzy3zmji37v1ip";source="0910za7bn9ph1k0g1n43w8fjn0f50j65pn9is5wz6qwxzxjmcw94";};
+songproj-66704={run="04jnj92nva8agg4k8qgfqcd7rvwhvhwx3836464z66fdv6v4q92x";doc="1qyw11czqdhkpyf190asx8yi4wmcyxc71n052f5481p3xbblz1bd";source="16qcb0k59kkxmqavywdmxy373ck923xn8pjfzp6qssgjvssnbnar";};
 songs-51494={run="1q2fddi3z3d6f03y110ah1lc5j64cgg16w4hcxdd1q6sc6ccc61r";doc="06y36cnx42yms6b3mnpkvbwrl1rrpjy1jlafycy33ijx0sbpizql";source="0airs4wvpv2wmm2398sfy5sh40q0r2skha33999fkk2s9jc99jbb";};
 sort-by-letters-27128={run="0gjmbx6bk2c3nygcbvwn3wfsdj1lscpnqzfl6w8li26hws1ravii";doc="1p0dfvh0l4z4bd86wcvph1fcjip2rvsm22j890y607lfbqhc72kv";};
 soton-16215={run="03vldli7z2bsvznmqw5y6gi81ln5v54jbiqm53z464v76kp9w29f";doc="1i7b5i8vv88cjxvcm1adlxikqwvbzpzkiiksdn36in8msj23vjkm";};
-soul-65906={run="0x1g88ayix00axma92sl1lyqhj955pvkwp3iq1372kx4pacln50c";doc="1z1936dq34x48rpfh4fymdsp5nm555bcvq99j7msxshphkv5p3ip";source="1c5g5bryj31vjfk88aszcf938zmm7n84aa6s0ll7k555fm5s3ks5";};
+soul-67365={run="0hkxhwqmss7lsh600ggs8q7qx0dlgw63q482m8piwx0jmh4p29xy";doc="146ji413205b7igjscv9wfybs60wyn47d9q6gkzn8l23wamrzxwm";source="0lplpmk05y85r2rjzjh24p6slmq8319kn7ixxb3zjbzjp1lc44j7";};
 soulpos-60772={run="033c0arpqhrypwy5grpc8c6dnlc7k86iq5wglm6r02bdk4mcw7hk";doc="1g99lgnl1m7nffwdfhmmb4zgjwpaiq3pggbgmi19p24z7qc1sjlz";};
 soup-50815={run="00glliinyi7m5m6gkr0szzsp5drgnqww4k50yfb6p3qv1mlkqgvi";doc="0470i396sk8a6lnx189zcazns280qgyw3yvwiyxc1gs2wd812qr1";source="09db050wsnmpqxmba7w23h3g92xyzg0sqv57yhns5nwxb2cmbr2g";};
 sourcecodepro-54512={run="0vzs79a6bhvxap9xw9nm4csqm8x6m83nmsxffqckihkrbcbwnkz5";doc="04g53xmi3afzv76dn4pg9vjsd903rl0hbzqw32gr7hhgh60xwb8d";};
 sourcesanspro-54892={run="0j0qgb04yvwf265hwiiv581fy39cpr6i9f21k38xdgdi0dl7ghzl";doc="1lg7jxxcymnvbrhgdf6ddj0nahbr6g5vnz7ahav8v8zfyfw87z6z";};
 sourceserifpro-54512={run="1zwvz4yqvs5pcqwsig4sjkp4chsc089j0dl9mn8ah047nhr2d7z1";doc="11q4ppkw8m56bpn8s08w0zkiilfz6s5jv0rkqjnqbzn47nm3dqij";};
-spacekern-63552={run="043jpbd7clfhzcc14hmai4v6y4546pw9piaaf2zbk1qkw9jgmmyw";doc="0n1lf57k4qjl0ljsd4gccbmqyfkl4663sjb78d5yh1cszd6p1fdj";};
-spacingtricks-66398={run="0a98ca45sl8r4k6x69084p2nsz2yj06x4zvki3fmzhpsr97xypnz";doc="06lmv3qcfngdrm32h703qfq2s91spakxbj0w0xc54xf32gf501ab";source="0p0qh3wapfigl8hjpam2540svqs680vkbadh476zmyvxacvmbjqx";};
+spacekern-67604={run="0jf5rv2kqzfr2ji8w4x3cgli028rhnndz5xm7l54q5m5rqczb1ag";doc="0z9dyms40vh95wslx7xack5qys02hdwxr451d19k3jvx4jyxsl7f";};
+spacingtricks-69048={run="0ahyb2skb6bl3m37ppzb569y539bi0njkq26wkvf0qw1g51irvz6";doc="122xkp4s2wqqza5nxlibxyfsxs21n20xn3y5i9lym0hakpj7112m";source="1mbb835yyrzpk1qlqci0zbvwd64amxqav0z3vnwaxxi14hqr9laf";};
 spalign-42225={run="0wy2kliv3mrcqvandk3qbbqjbri6xq69d5jsi80l7qdiij86z3g2";doc="0jp34h19q4588rli6k0v5kg47j6i1gjpjgk772fkb7l0f5wln7k3";source="02qzd21qzb8s2jsip2fr1jgf11xd7xmiyi7fv0s9ylyfr259c5b1";};
 spark-otf-62481={run="1z9k0dnahkq2nfqs3plpyb3fdj48x8vcav0ahykd554fygv5h4x3";doc="07pq90xx911rdjdyr0sxg4zqfg1yb5kn43xc5l6hn0y81m9j151d";};
 sparklines-42821={run="1mb6c3mial9ashhvmjhynczjpb462j18qyy2an4ckgwgc46pwhp3";doc="03j6xdkvsv5p71bifmggf69w3s1n7758yii1caz9p9bcqmqbnrk9";};
 spath3-64818={run="1w91n8mq9bzf7fwfwwhpqn8j5w7plc4366a5pw56x2212n75pzh5";doc="1gy8n6rhxbqf64gh4xbjvy0dz484vm53ld3i6graly3qzdrwkhdq";source="1gy5p59n76lh0k961cysc3qpnnhppbcd7dmspjijca4fx2v3ckkl";};
-spbmark-64706={run="1ixxwza7s6y4vzjlpmw1vjl67mg0ga23r3yd7y52zp0fzmw4krpb";doc="191cw250wxfy8g9lfbs7xlglwb95ip409hgph1v5crv9ca5csdv6";};
+spbmark-69350={run="1h76dvirbiqbn2z1cki5ya8psialnp2lhddxsyqxa6c2k4n128zk";doc="1k8bip2v32gwqyvsa6jrbgfkihv0g5sh27c34fgpz0g65cpzpxjz";};
 spectral-64528={run="1qjvxyjxm81j3cyajki6jv59k6y2m8nv9kzhj45d7i56za9klkf2";doc="1x6sixvjk4sk5r6x3pgppynsgp139jm3cc7bv83bk55757jjd8j5";};
 spectralsequences-65667={run="06v0sb1xa28biv5ak6nprdcjzjdm0106rmlgm4if0jgmax0hiqpb";doc="10limf15cp1bv933m45s3vdvxwzbpd5hard4lqff2x8ay1h0n1wd";};
 spelling-30715={run="08zkbw4fdfmfz1pxcr96xjhrs8lfbf6sydp8crp8110fikksjv9i";doc="1wm6r4rhkmxmc66zx9nvvdmjaarx789c33vzm26mbd6ylv5qs1is";};
@@ -3485,14 +3576,14 @@ splitbib-15878={run="0z2vnb51ksqp3i11903mvgaknvxl1azwqsch5aaq14y7fp9kcrah";doc="
 splitindex-39766={run="03x58nb9bqd1fn3k9fqq5rdafsna9rbxjhp44dwzig8kp81f0g0i";doc="1v2wwls8fgb1rhk91hrjsabxj6plx2bq7h07fyqxvl3982am9wm5";source="06ksmac3dxacfq7j4ad7vy9kls2rnay1hww3kgbp2sgadqvwmz0z";};
 spot-22408={run="18ich1w6d68xa2p65lh22yfwdkvgbl9zz9qmd4yx84ljzby49zhg";doc="1flizmkafy77g30ffsispr2m4yaqyfw5hvynf7ppph1q07jqdy0v";source="01sx1j1sxr1bgi5h48ij02nwawg2wgg1c7mx22q9r4sbn9mprlbr";};
 spotcolor-15878={run="19xicma97v309pbwgdyizrjwwnlas95wq0d2qlyw7m9wrq295lpb";doc="1qsdgagx45z4gha0y7z37687jxrc121pr592b1xcy8bhf86nimhm";};
-spreadtab-50147={run="0zgiys6ry7szi6rvrj6kbnlysr8nss66j3xspqwc9j2jdp5c9lp7";doc="13c2rgms44wmbqvfi1yi7ini69kjv55bg3czwgx2rn99shafzh4d";};
+spreadtab-68256={run="1jkc9h4a3cn5k7p87hdib2jk8kkmcn98cx7b8p7p9fm3pjac807r";doc="1xgy9b81am6pl835sf04hf0srpdpd7bwvxdl5cd4pr784xgfvdb8";};
 spverbatim-15878={run="0s7042ln9l7jvb0vyrmg4h4fdgzy6vaabr62n7zlkr8pf7zd8nvh";doc="1rb6gyq7j5m14d8707gkqv1n5ifk1y497mwflhigqgyi9lgcvgxc";source="0f3spbpb6icwm84v4lq0skkx53nw3i0b90ik0svd9dhg31y24c43";};
 sr-vorl-59333={run="0a87b640qdc7bysxlgr0y63znls4ryjgibi3ablnw9q3rhzbbr7c";doc="05zpxq3qjhziidiq8i30hj295yh2qa3g79lx9ywlldbkyhq928cy";source="1ddwga4af9k70c05v2a8frn3q779d2pw43h5bpfks5w889ss6rr2";};
 srbook-mem-45818={run="0znvycl1land17f2c9cq09hhhg4b677rixzjc0hsq34c91s3xdq5";doc="1nf53sq2ic8y70z0n28kz27lji35slwkxrn8rz0dsaas73ga5k2y";};
 srbtiks-63308={run="0bghfl9fix95nxb8zvsylb8040msfwk0vazqkwvc75v08idigijx";doc="1z9fyz7kjqis1rblrdb2hmj2507bifg07yrigqkn2cgm4wsg0cfg";};
 srcltx-15878={run="054b8g0vvhbzazxs8913dzir7qb6x5q5pfsiwdp1z1awkpafwkmv";doc="0fidv12pgqck21fffgrrz2a0pfsb01fsyld8qhf5r00915aai6h3";source="1sj23lc6k8kwd11q3sq6wbslwl4fsc3wzp45w4by3mw5k1q5xqcf";};
 srcredact-38710={run="1rqmgpxcvvcmzxdj6k15v8z4i4iq4wv95whddpi93l3n0zv2ihmq";doc="082ff60lfnapb570ps3g6vjy2xn0gjjih6y4nm3ry9i0k1isbk0w";};
-srdp-mathematik-65293={run="0vk7l57qx3hbhslr7jaqbh81x4kfq2v9qr8a0jj692n41rmfjlqg";doc="1zyfray1i0w01pxmlycg3450yfd4lm2jq027b2vanwcb4j8wyvgd";};
+srdp-mathematik-69288={run="09pxklmnmdwiaf0dgi94aq33v5v3ml7ap0xs9s422wswhxx8378d";doc="1143sfcqclgsqkcd0ypcyp37hna4apbg16kvi2146xkz3gh3agqy";};
 sseq-31585={run="01vqjmi5vpd2s00sqqj6nlwgqvz9c43igg09w282khlca471253l";doc="08xq5fjn951hdpbrvzx6p09a173radfh8a4wzhmifd5rca9l7asy";source="0a1rh7s1fjxn3bblqz4lzhd9812d9p71wwww5hg9nnpn3gjvdr6n";};
 sslides-32293={run="12vg8fdv0di8vgnw8wj1y6rad6izmczfqzy5pr6gpflzmn14fbq4";doc="1dssqc7f6260hl527hhqq8zbiyszb13z3bny3rwjblscl9ia29yf";};
 stack-15878={run="1wadfhja3yji011aawrp3jgiqdxil7lzvkd1pzy9c9y63lzknfg5";source="1qv2bvjs01lk9b86rzb7n0lk2a4gr870qsnahyrd9dqdnvvz4n9n";};
@@ -3501,10 +3592,11 @@ stage-62929={run="1wdvq1izp0y8b7mzbqql3fc9q8j7jkrmm4ynnk3h2zlg24lgi3gv";doc="1ja
 standalone-64677={run="13bp2iyfnpyflps370mzrxk1vkrybamam1f47ws4cafpz99nvvyr";doc="0waw4vqxh6nclh6kp17nhb4i1hpckwraf5clksxvzgiv25cxkada";source="0a4k7lx74w035fvj5q6mnzpx18jzlghz3lavhsl9ssqjb3zqmar2";};
 stanli-54512={run="05mq6zhs6x5qjqk58gwws9lw3p876bd1f8a5c2jvb2azjl7d9r4f";doc="091knxhx7jsjiv4ip0z2jbazvv3xmbvandbraxbipp4zqqakb8bj";};
 starfont-19982={run="1bf89j0qqyzih5w9ban03k85v8ih0d16sil1sf7smzmqk3nhmrz8";doc="0rjx4wj021ri26zxdlhkh71q3d0ygf3hvcqghq9fwkbi0gnig1r1";};
+starray-69002={run="1dh1n0z8c1g9060mjr8qi7qcq4s6v86c61nfis61xxj9606q5xlc";doc="11d8y9yqvm7l5nbwxpakj3ybw5v8p7vm0ccsnvib9cyivy8vqvbb";};
 startex-35718={run="1d6c54hm9jdi882srj87drkcxm7lldb4g60lbic9wwzn9kpa0ynk";doc="0ikmb30ndmj0yhzxy9mba3kqxdc5f8i66sji51ihjcrlplj3jk73";source="0304dzv4nzlcqi5k1gbfnx823xaxq84ja4gwh7qg941q152y7w9n";};
 statex-20306={run="11qpdrcszbsrasbasmk6h9wg5r2a11pm116i16h7mvw73vjaq76f";doc="0dkb7c7wavn3qgndl0g8jpkx1qr00c3iwp6d0r72znggl4cznhsd";};
 statex2-23961={run="1949zszdv000dw1dx1jjznbd79q73fjiqnkq2axdbxffh47ls1dp";doc="0fkzbs76yfyygscazn4dgphs8g1byzg9n3fbdg6pizzncirbgh6c";};
-statistics-52212={run="11szmc6f380si38il9vw78n30yyfmmvgxpp8f8p8kzb373d3hs9f";doc="0z8mx2gar2fn97n3x01dw23l7r4ckqwgfksgmfdj7vhgs51wsv16";source="1dkz9vdcnadd1xd4k9i37a3mpn1bwm4zf3c6bg6rvzxaarrrci4m";};
+statistics-67201={run="11szmc6f380si38il9vw78n30yyfmmvgxpp8f8p8kzb373d3hs9f";doc="0z8mx2gar2fn97n3x01dw23l7r4ckqwgfksgmfdj7vhgs51wsv16";source="1dkz9vdcnadd1xd4k9i37a3mpn1bwm4zf3c6bg6rvzxaarrrci4m";};
 statistik-20334={run="1c0469cxfvyg5jl9q1pyzras6fk3f6zbgigaby0iav34imhg7zy6";doc="0fih9k7mpzg25h56x6zzdbdnhybd25b7hlv0pdbnlfb73s7h4mcv";source="0i68y5ynymx339zgxc9r8dgcflm5468gd6cwn9ngpnjvqqbas3kf";};
 statmath-46925={run="0imcx9nx9h5fi53nwg82n2d9s21vlngdab7znyg1z5pdll0df043";doc="10mxwgvjjnk2ci05ikml35q64c82c7dv7rjwajhk03gq8ljq939j";source="1himjc8cn3j5jr073qpp4mfyi2cpr0czf7iykr0w6b7722kkqdh1";};
 staves-15878={run="0pb7cghd2p1f7y5x19x3zyvaz63k3nmrwd04g0yqrl3774fvnh1r";doc="11i1rcc30lnm8fqmnpmk1hgz2fmm54hgf23ich279aqfsk2pm8iq";source="1y87sw1qrmvgvayzwz2i6qjzvx952h68123fhhv67ga0kpxf9fwi";};
@@ -3512,10 +3604,11 @@ stdclsdv-15878={run="1130sj024qfsszjx4adr3bmmr6594d21bcv3ixmw75y85djha1iz";doc="
 stdpage-15878={run="13q3jc6snrscq7bl22myd8rb04q9q5b0a3xvr609j1lxczbs1xnc";doc="1kr7851lc6lp4aq78xc61nw495qnhnrbsz0w2yyldwfh07h4byzb";source="0ygk73pk79wgn4qpg0niv3d0a4l8bdhrdvv1a9s8g6ayngfr0nsd";};
 stealcaps-64967={run="1n6922kmdf5ahc8i3jyps6w5r5k1yhnp2x1p2bd259mjd5ivplyx";doc="0djb508nm3l88p33736kwv7z309nalblb1zfijib7ksqq03515di";source="12krgi4wm37q2jcag29mflql1fpry8zhzxn3bfbmwh6cna8i6042";};
 steinmetz-15878={run="0g9ll1hsf82wll1ng5lc2v6il3l6pdy3dppz7k7piqqmifzc8ifz";doc="0gyyqmllgp6dg2g4nh5q5ycnixlyzc6xfmi3szypmr1rai1dvx2s";source="07fj431nraf7f9qcmm5bvk03cblmj15xcsbnhgish4rxqbf7clsj";};
-stellenbosch-36696={run="07j555jrcg91nk6rgr6c9dq8y9b3i0677j339hlcb6mk7949nz3m";doc="0xrpmbzaa4y3v86zzdws9al13v723k5yjbxgnd9l985fgq5w21bz";source="16mmz7pq4y9blxskrxjq8w15zq9vrbcr6nj8ynfy13b7wxvqqrcn";};
+stellenbosch-68039={run="07j555jrcg91nk6rgr6c9dq8y9b3i0677j339hlcb6mk7949nz3m";doc="0xrpmbzaa4y3v86zzdws9al13v723k5yjbxgnd9l985fgq5w21bz";source="16mmz7pq4y9blxskrxjq8w15zq9vrbcr6nj8ynfy13b7wxvqqrcn";};
+stellenbosch-2-68183={run="1mp3sskmlxmr5jc00rh5i1vyikipmgvc266djbx8f47adkgqxfl0";doc="1v7drgjgiyjp4q714lanybp34pkxjn73w4s20lch49mpq0qfnfqn";source="1ha1ps4cdf6kr6dix9wnhf2672ic31n04vhzqjal12lcrf00pzi3";};
 step-57307={run="1r2mf2qlcksllpaakrycmcrpxfq9c4g7n18ip13ykp92fmrbcz4h";doc="0f0hph5cjwhwdn2yyfzvn1jbkh8xm71jw10zagbncapfqfgx5h62";};
 stepgreek-57074={run="04xldk3dzcr1vg1xld4hhwx5xzi2pr0v7gn526xr8ca3m3x5mwnd";doc="179zz295nxpp21p6xhrn1r9ka68i3l9l8bphrb2833a2x6qgmil3";};
-stex-64383={run="09zdqjajh0iyg82m4sgwsx76qvnyy6g8nh6cz8rkcaxpaay5v1js";doc="0ix1y1n10kfy9hbbx3liy1rmkmiq9whqw1mi85ncjbz1lhxxcpdm";source="08sl4hn2vcs1ngi7zdbvkzpf16vl3n46ry8fdq71i0f9sy3m07sj";};
+stex-68569={run="0qpc9nqi6gkkwc8rg00rkvli3kgdfvxn2h23paxmsf8jsf74c4lv";doc="1b855d0n3m2glxf22j7ifn8sf7yi9z4s55jnb1dk0pfy3i8a5zf7";source="0xm55wcxd47z57pmmls2nx6f310nbjzmn05crynfj4rw4310vq00";};
 stickstoo-60793={run="1vil4pran5vkgzrks8wp2nnwddily3pkfw9vap1l72c5rcxsvii8";doc="02h21jbb19cl24ds2r1gz3js8fgxhi4dq4acw6fvq5kv8izqr9mz";};
 stix-54512={run="1jqrvkx444hvfh7246g22k02jm00m2cnc6ffj36k8qdi1s5m9dkj";doc="0vmiariam5zd37zq2ni9560kjgia89p52cm1phxqp6gp7avfyl7q";source="0jjxifyrkdwgbv6xvgpk9ji6qwn4wr91lkdprcdjpmw9b2mwflj2";};
 stix2-otf-58735={run="03ilzmkskp2fj3jwyvlwz8b2ryvb1rfj08ciqhkhi9ddygzjk8xx";doc="18cqnpabka16kfq09rspzgwmyh0fva77i8676myf4wg805953zgh";};
@@ -3525,12 +3618,13 @@ storebox-64967={run="0vy7iavq6qqxpmwhm9cz4gxp67nriq230kcf1mr1gq2w0ncy7kjc";doc="
 storecmd-24431={run="00xk8l8l99qpsmkdxcpccf8g7av2asa26qrh3bi0kkmapm7agk8x";doc="1n5vw689y9y2kakhkyqv47d5cin7f3xqfz8bc3yncdrmgh4kq82j";};
 strands-59906={run="0i2k3b3kb570k5h7yag83gchk9ss971v8w1xqr2kb448f1yqkjr3";doc="1clpm1i4a0477zbrixscwpg6qyli0y5vp61lblgn4iqgw0sndhlz";source="0ckf9ipirn8m795df5za2qd5w96cxzxmmv1kcn0gl4aj3ypia6b9";};
 stricttex-56320={run="0igsjl8gsdld0way8nry9r50ibvm0aj8g46ki547c1jhdgmw67fn";doc="11pyyvsxi2d4dfzv4pmapa2ffyp5fky32823fklcffd2i6jnvsbh";};
+string-diagrams-67363={run="1r1xww9h5vvvhar2nvkmjlkv1s57qv53cz582mh6vwg6v6w41nj8";doc="1nccy5d95ada03lh1sfk7rv2r3qba8rd2g61wavw1p9cq40r97lx";source="02mzpys2xw7hd7mfn4z5z7cdlcafkwhiibxnkwya9h578g20ji1a";};
 stringenc-52982={run="01xnfg0mcp94dh33rfzphk50kjb68bw76kf7jnbsnjwlqf2cr5pq";doc="00hbmjwhas4fpcx1yg016ggqv324hdc2aklr2nx5m5x0i68xq6qa";source="1ir6041286fiz8c5zpsbl4cq62gzdrdpj50aqv5p6b1lqd8bsfp6";};
 stringstrings-57097={run="178qqf3ii5kaw5rpjazvf78mjb0aw4vnqzxpsv9ahbqfxpa16894";doc="0x6hcdp3hlfnd0vn3inq92nja4hirvhg9m37zmsh9ilnnz7dk8lp";source="1aryr9b5d4jrj6mc9cmbpc11l2mqxlxsc16c5h68ql0i6z0bpsz1";};
-structmech-58985={run="0hz5c2wvsm63cblj507bph7c7031lzca8g6628pw8lwinrx8npx4";doc="052m701f5pv6lh4jsxn54m8x4086vh4670gr7v1k2rwqx1dzbv8l";};
+structmech-66724={run="1l28ljkgzxirg31ai7gb3m71kcdzn3gif8w9ssiawaifrz15wi50";doc="1rnmrjpmzzidykm3al7sqb2q7m435lpjppv7xyl9a8zlkjgvwnlc";};
 struktex-47931={run="0qkfh53rhy29zapn4zr6n14nmximfyv8rbgxm16qq3l6mid5jnyc";doc="1nbbqh3g42qvrk478q2v6snl1lbmfjnb07jhx6z53yk87pna8gmb";source="0j3bprncnkp7iar2dh46bqr3v9zdvkk9c2w9kgj523bcyzw48zyx";};
 sttools-60736={run="1sxdf55j0g6gm2h486i023axk2m5ik37ndayjs5zxxkj6i3sh4vw";doc="1l1js9bpslrqih0c5cjdw3d5nkcx96d4idfxw861yx4lhxwzdq08";source="1c74wjq7r3jqq10mf1d87v6fi14b37i90qavwcx6s5bhhrpl871z";};
-stubs-19440={run="1p454rfdp2v4zq3vx1716x2w1cr1a6dkcwnj2hx7w2jn8118vqkb";doc="03la45gxcy1l1qik7kgcb518n3yvzwgdi5x3ffzfpj4yp2rq994a";};
+stubs-69128={run="1p454rfdp2v4zq3vx1716x2w1cr1a6dkcwnj2hx7w2jn8118vqkb";doc="03la45gxcy1l1qik7kgcb518n3yvzwgdi5x3ffzfpj4yp2rq994a";};
 studenthandouts-43516={run="1007rr5m0lbfib30bkb21nvpq1h7didqijg6jsbprmkgsz1xfdkm";doc="0sqfqxypkrcyp8fc60xsb1v9nbw7h1xrdai626dlpknhnm00kzmj";};
 sty2dtx-64967={run="1nrn2xv4r39qa2glfw4kalzdh5w2zlx4vaw0hplnrnxj8lwmpb9m";doc="16jpjskvsk51sz0j503z4dljwzd1ymi2b06z9lag8ab5iiyhm80j";};
 styledcmd-65262={run="1l1rg9456g7jk95kx5c7l1rz738b83vqf02kxq5n994rzxsmz0kx";doc="1fs253bda40z0cf23zz2330js8f0cg9f9rv5mrp09pf0f13shvxi";source="064czvwrkssjgw33v6lv70znbjb3q0shp2piwgia2p2lazimxrrg";};
@@ -3545,15 +3639,14 @@ subfigure-15878={run="02b2y8isk2irxdm7bcmx22v5lbkbhc15jqpx0dhs61dnzb5x7ag6";doc=
 subfiles-56977={run="10nslhm56kp5bmzr2nlbm40rlp3i02zj4z6vxj8w6cj1vv7jrd9j";doc="08r52aci5ab4cv70kbrqq1ak4ny627ks43nhqk6kn649pcahjqlw";source="1hmli1qvgpnn2bmllf1w53wjh63zk92dv2wvvi6fzjpq0q6lqhwg";};
 subfloat-29349={run="1ibpaj98ibx67x4kff1p0cnzpxmhs4yyqs2y4vj6as5jx43qnwj9";doc="18ps2xbqdf7pgyhj848zw1sbk36drwkpa0g1s9mw882ynz16gl9g";source="01c11mbfyynpa1yi0arlqcaklikr4sr83j69piznabj5jhb45nci";};
 substances-40989={run="13nl4xc0spsg4bq3ld0fv0612kac2z017zp8hwck2d8413jwkj8y";doc="0xbrs7qpbs5314j79nzcv408ghhayqxj2n0nfify6isxh85r1ks5";};
-substitutefont-32066={run="1djss6q6l864sj8mbvavdxd6fpmcblhb666hyskwciha6naja8xg";doc="094ywcg880qdryi970cx12hrnkjawhmpz6mmh8p7cxir80ah37n7";};
 substr-16117={run="1qialx52sccay00z85z001xsm62ajvbfxqxc9ps0bpmjkcvvgad4";doc="0zfcggj17bf26dxihkmqwn80pdir4n216x0nhkb3v17q889q903n";};
 subsupscripts-16080={run="14v5a89iwm2ykjsm3jxgbqsm5nba444yh8mzqf23s23z7fmcmsqb";doc="10swcywyb0jdsjhm0cybvmyc9g2ksxq60bqaqnp23kfxp39g9rq2";};
 subtext-51273={run="030f7sq37qjn99l1z6nx7qbivhczpzhjm7drxhhhsssw4n3mci7k";doc="1m6zyy09a3193w0p91y8g66n8bnm80awzg2g8l195n4p41l8vnkw";};
-sudoku-15878={run="1nyh5rv8fgs0lgmsjgkfx24s3lh8pph6jcp7dx8nb8q2ij8ia4pi";doc="0hdvzb1vcrlbis4xsgzdnbidapqp7kdaqdskdha5szjw53xz77ys";source="1rwwqpqvmwvq26ycj2glk0k4m1vlbjrxjp0l20qnh5vad98a1x7p";};
+sudoku-67189={run="1nyh5rv8fgs0lgmsjgkfx24s3lh8pph6jcp7dx8nb8q2ij8ia4pi";doc="0hdvzb1vcrlbis4xsgzdnbidapqp7kdaqdskdha5szjw53xz77ys";source="1rwwqpqvmwvq26ycj2glk0k4m1vlbjrxjp0l20qnh5vad98a1x7p";};
 sudokubundle-15878={run="18y4x1g050ircqh3nd95m45scb8zgjzi03cj3n7whn207dvapsdw";doc="17mdxysiwjp3ii1qhknrxw07dcds57qbm986583xh69bhq08c4sr";source="17g96rhis66gvgbm1857ck4ri8nz3isdlqshfx9rdbpgs8x58i0h";};
-suftesi-60991={run="09rnrhy7vi8zdg5lmgmvlh3lc50wkp9gkr2jfmmg919ls36bfwcz";doc="1wka69sqlp0p2c496ibak2md6v13hxcsvc9lf5fay14czwvyll25";source="0wbp99vy883whqjhhyzsq3w232jk6nsaq6wgq3dgv1d0zamadi1g";};
+suftesi-68204={run="12cis5ynr5ddhqis0i5501sbxznpcv7i4rh172c7jm5dww2vank8";doc="1bmnzdnmzn4j3fpbfax4m9xd8gpk2vd1xqf5z3ypza46vh7nggxw";source="1x001l06wnfkky2vng3vpkj0cwv0z9f29h09jpf4yc5i1nn2s9rh";};
 sugconf-58752={run="1x2nrvqnl65jk3amclgwrk2x1dscncxajdf074a2d410w1vikrck";doc="16w8nfyixsr7l2dn1lbwcscbs6m4mczql9gmg9wi16nr8d7pm8si";};
-superiors-51909={run="056i8jrpfs79g2n4fb3kabkkbqbpyii1g0z63mciqyfbs0wvpasm";doc="1459za0bj73lgz7nqv0ys0zimfw1nmmzzcyhydi9km7mjv5sf5r3";};
+superiors-69387={run="1kj12xhd0psdz08mx7k2kz2maaaam29s3lway19gcawr156jp60m";doc="0vg6sk9ad181y4g53shj1j0mdrcqny4hjdfv3kdn5csm7h5kqq72";};
 supertabular-53658={run="10r18kzg7p8s2wp1nydvn5f5vfbailcypqb7hkhxyjzpkdfrp12w";doc="0cw3vfh4mxd39n2w1yk0nxjq67pb8s0kzv6syr2s4x3p3nrml822";source="06r03i93j8rxw6ddiwmshb88q3h1dc3srlh4djwwycjbgp66xx87";};
 suppose-59281={run="1157v4laxbdllf5vqlnsf4cyk535xdq968q33gla769r1vv4yyhx";doc="1cigx59dypmjyv11lbf9fyfh4krl9gyp8jiwirhb9hrr9jzy7263";};
 susy-19440={run="06q7nw6bh9dkknj1jzvy1wljh9vn49z7mbhr5d0ydv10mp9y9zlv";doc="0dsr3yd5v6i240f7fgpbdlp0dig4dl0376ssd7nbg86scl63k9iy";};
@@ -3573,14 +3666,15 @@ swungdash-64204={run="1mr1x0g86qdh5nw39b56da3pyw7p4cq1x783rcqqw2rmvszp6zqd";doc=
 syllogism-15878={run="01x5kjyfm5ksqig5h2b8sgmn05ws0a65idv1xh5l709yp2i35120";doc="1zqljwv03f755lzc9fhps5xh2dy6r0jdsvp6a21ka11kqq696vjw";};
 symbats3-63833={run="1rkc00q12f8ysw3vcn15hk626wzmy5j6gisvyzss924482pp54dv";doc="1cs9vdddpv7ymgicx005r50ilwjharqvszykf35lram9d2n7f40v";};
 symbol-61719={run="1pdkpr86bhia5hcmf7q3nhvklnsga4mqqrrirgl8a7al7x6q3ivs";};
+sympycalc-67087={run="0nr281r9f5d68kqsg2psvhdzgy24sdghyd9h395q666mp05z787f";doc="1ik7h5bwvnbv8zqq4pppprqwkrb2fjd68l5fhj10yznx38hh5x47";};
 sympytexpackage-57090={run="0d77xd1xl9wc6qbd335kvhq8gbvvqzgqxblhcmyd5khhg3azk6sk";doc="1y743lffzk65wl5nwi490wnmf4xaxcnkpicmhadcvjcadvhrnlxn";source="0q3cl06b2mcpn5an1m7c68c4c0swmgacj3afqb38984dcvap5abv";};
-synctex-54074={doc="13fc91avs09za1y5rrn50wfr2bf1csnf3p4dn0r3mkny46bdfw7c";};
+synctex-66203={doc="1a2nlmbib8723jjhf6xxh5rpmnd5jv3cd69br4ihchbq5ipzircp";};
 synproof-15878={run="01bx52ckyg4abigyzfcxi83jqdkczvsj9b80rznqz8vm9yrbv951";doc="1kvd3vvj6yx1bfqbi858qglc31dx03ish49q0lai0mp1814n6fqh";};
 syntax-15878={run="1gd38myk5lf5fxlx1j8cvjv6pcpcr15r0370ikxf7fczv8s4ab2l";doc="0l6rkyidqvvhkrjxs8y316rssayihqimbyqwvmdzqpnfd16rdxpv";};
 syntaxdi-56685={run="11l8609xj9gz2zkd6b0ah41lgw4qhrvdjj47vwpzb4sb1sirsfgw";doc="04hnwc8hc4z88wxrp81balza27xjj56ymv4wb8lvl7kg0087ldw2";};
 syntrace-15878={run="19vx1iz2zxv49znddhcsl7aw4i267fmxhxpszzg2i9z0klm9b3nq";doc="1dzy8pazcp3lfc009g0n1h0a6q3v99ii43pza3m2gkjvbrb5sk00";source="0hb5iklz2c7zqrl8zrhkn8k7dj1zgk5gvf4wpr7h32sa83ajqrdr";};
 synttree-16252={run="1n2n1q2pwx3fi0dhh3h5dj7s5wrz2r5zpx77fmxjk0c3d45c8wan";doc="0rnghg1459nlliwbcy8r60rc9si3ya35c7sl5zqh67sfwla2ixps";source="022b2sn42mfdnska1cvqjsafakah9a908rvyw0d326d7lxx8wrx3";};
-systeme-55015={run="0agy0h2zq8n6723w27psm3azigf2bsw4s80701xr0zz6kmlyrfg2";doc="1xxycz86kxljxg1np3zd6jzwanvp3f67la1k267z3w39f5i63x1z";};
+systeme-66655={run="0agy0h2zq8n6723w27psm3azigf2bsw4s80701xr0zz6kmlyrfg2";doc="1xxycz86kxljxg1np3zd6jzwanvp3f67la1k267z3w39f5i63x1z";};
 t-angles-15878={run="1p1h0gz1k4lr7rmadhdgb7l3gp55w12m3p88hy9d4d0ryzld299q";doc="1n01pg82p0yz0b7ph82k5ha7a9j0a4hc0489xq9pf4kbizh7ap4d";};
 t1utils-57972={doc="0hdk57179nn57wnmvr3jasjavkvmrn6ryph6jvjhsfqprn7bhf1y";};
 t2-47870={run="0s6zn41dp7vzilfyk92yy5mbb74lcrpnmhrwl9xcj1dbadi97nm6";doc="0wfm1gy3dyhfv2xzjfsky2fvdhki5r2ndgvzliq2n0kvfxf1sgna";};
@@ -3590,11 +3684,10 @@ table-fct-41849={run="1kpmd1qynxq29aanvaanq35ihiv0d55k6wamxdz3lssicrn3f2vr";doc=
 tableaux-42413={run="09pi8sm17m1v4h362al448ayhj1h5n0krdaa7zsys00l0w55qm3h";doc="06173sm4yx2a3mfadax16nqj6ggn6yak85l63jiaqdczwyb09kxi";};
 tablefootnote-32804={run="0i1mj9bq2hj4d7y7za2zj64p5dfdvsfi51147as5kfb6ci90rc56";doc="071xk16ck9r0jip847ikb2qjyv3ghf1m73w4s619zilvm752c0ak";source="14vrh8c322skk3rpjpr03fgzbm03khmhf3ifh2fm72yb5cqgbbqr";};
 tableof-59837={run="1n9faa8pcnls7n1ghqywvzri484j37nwmhhday1wa0rzxqhs5vl1";doc="1aa9frbqj6676w0v4s2n3h9nz922qsiafh7rxnmw83bmv93sdydz";source="0as1hwba4vski9vby84j48s88ha76vl2h3yqvn6qkrzyh6cg7g3p";};
-tablestyles-66465={run="05vlmkazizr31l57zm9q4lsw5kinqd4wrmyjgrlgxl130hy3chxx";doc="04wiizp4giyh938rfs5j3s9jm6fjz45bxas3nq3lnmh5akcnpy10";source="03bxnqry8imwj5ihs7n61b9f689x3c0p6yx0lza71cawh5jx6zh8";};
 tablists-15878={run="02sffbb22hirw8mdijf7scxbivipmqw828qzdbc49vaxq7ggmzib";doc="1fwhps6a0j8r5zqcksdqw8gwa55rh2r2la3iz7wc451zk3ddbxpr";source="1wpir71xwq7xhg41l6sigp55n93v94lashgi6lgr0g9ad8hh3y4j";};
 tablor-31855={run="15xinskbqjj1dmi1fpvb6slg8kk3g66dm70z9f7dx8bzb1v65zwz";doc="0lmi8mn5k7b5i0n7bqhagjkkzs2niy9852r8r0vv2c8qfbpm4hpm";};
 tabls-17255={run="17bg083653km6v92hifll78vs0p9zwfnj5rbw1pcl2siizf3pfj6";doc="1gnk4blwfikqshqjv4zd4cykp1k6k025h7vnbjrvia11l6kcnavn";};
-tablvar-51543={run="1c3q074gli4k8a9665i9da7rpv8rdqd6x1kffnzm8n3l3nws6y6b";doc="1jakhzygr71avs9syz6hlrlrabxa0l4061w5x8kzk03bdgygnhc4";source="0mk3s6fxj1vpi8pr2pvg504wrw13adav02p2l6313d14zfzgp6nj";};
+tablvar-69212={run="11xcbpdcl39r8lacnvqyd8j3qzbpzd6q15ivjwh9ndrznkxbpjpz";doc="06gh6a1qsbgbncl13jybpprmdbyfddwyyfwz1m9fs5b6y5dr2sck";source="09ixxr26sw9507my98p6dmnqgk0xw14h1gfbav6f02yxk3f6glp3";};
 tabriz-thesis-51729={run="1jrxxmd38369qrhg2a8w4j9m3ldp08wrblbpmc08f35zwlrackbs";doc="1rzl7y6p7n46r7ljcycr4k40qxbih06bli90mdjwn96vn60m1jym";};
 tabstackengine-46848={run="0zd7gp1k40wg6b5aln30qxbk84ks3ys0d31vlw3wijvh31qbw6xz";doc="1n26fdj1lxwwx1abslxl3vkcvhk6lbnbi0wqi5mhx2n6g6ir8b89";};
 tabto-generic-15878={run="0i65jflbnhqpqf1w7pkagicic1s39gcl319z7g9zr1g80f9532dv";};
@@ -3603,22 +3696,23 @@ tabu-61719={run="1x22myjp1rpg0in3jgjj4wy0xyva8xd5hsy5c1rqqpy67wy83k0a";doc="076i
 tabularborder-17885={run="1p7iwpalamif71mrznbmsig5g9lxs3l16dcpwj2kzhiixsh78vfv";doc="0rd6k4b00aj398hy247x84jj9c3d0dm00xnaw69p7wvlprzricwc";source="1lrvp6128j70fzwqr61nnwiivgllbbkw7pd53l11sqzqwzxppgi5";};
 tabularcalc-15878={run="057720z8l7ss0kpkg7l16fc2v82xr0wqlxzxbcak5m3hl5k03g7a";doc="0539rar83mprammyilmclcbjxr657z6q2xmmwmlik990imf78lqc";};
 tabularew-15878={run="0g9pbr0vhhjj2lz9bbgwvm49wl8bdwvv1jjggq2dnwwqbr4vc4p8";doc="1ff62dxvnhi4q1gy8f7qhc0zz1jiayl6f8j96dp0rz38l2is7m86";source="0sfpx5w61xrmmgip0c746mghhj06r2mn2jmj56zingymm2djiad1";};
-tabularray-66281={run="1alrp56nra7pcxg1km7p8km679dkkqcsj7m85r5wm091qk7gxhf4";doc="1jkhrvq0xwr5qp88zxj888j0grj904vljvfahd5azys05n3ahv33";};
+tabularray-66276={run="1alrp56nra7pcxg1km7p8km679dkkqcsj7m85r5wm091qk7gxhf4";doc="1jkhrvq0xwr5qp88zxj888j0grj904vljvfahd5azys05n3ahv33";};
 tabulary-34368={run="0z57030pg4pfvghjii8bgqba589cabnj8qsr9w1abpwp3pfy4zbs";doc="08r21q2h7sjrk875x84lngcqgiy5ijik56ly7g7wyzhq3jyxds0f";source="0lsdypidawyhzj73c3yjs8k4xy2sds7gz8gazxfy460zndsz675m";};
 tabvar-63921={run="09pbsqa0a492j6ijvi25zdv4ic69wc8ngdxll2gr7wgh6m9hsrq8";doc="0iv8w8jvq05f6a1z7n29c9cldk499fd9igryv3c93g6bgq2hkzks";source="0bw2a9rgij2xvz3lhz6gya4vfsjn41cn7mg9mkg728q4vbhg19ms";};
 tagging-52064={run="0sws4x1h52cd313apfzydqpj6c8xrb8x5881cfhwir000n48crb6";doc="1pv7savkzm6jhaliw5ilb7qmhlj3iyiz2w6kxchanwrg4pnqabx7";};
 tagpair-42138={run="08qjcwyjs90sg8agmpmm3122h20898hy6dwkm0lk3dba1j3w5drj";doc="1dkn4gq6zxfqw9h64h7ggkbyrk9vzyax8gmnk9qk8dccdvf5n2sv";};
-tagpdf-66465={run="0199pakl7j6992x1f6l8r4mgnjglzjc2gxkvf4yh680ciq0hl2cw";doc="1z3ryhmr6rkj9v0sq6v1pq1q5hvajvl2akwy4k9rsfmyzyy2fnws";source="1z82dzv40hx86fjg79x6qs1hjnc7bb9pgji3jmriv3ihsi5w297c";};
+tagpdf-69165={run="0lh32csbsl17wvp9nqfkh07sqb5kqrlgfgz8w6asndbsnna01wih";doc="1jksjkym9cj28bgv7bgl5i2dyng0ggzlnqxwr23gv739c749gxxj";source="09a16y2mgyj88b0dvvszv1d6lw9ji75c6rnq4wd1azjz0k397w64";};
 talk-42428={run="0i9whk49bahsm2kbj53pjdh3fpg1ixfyxmfvcp563ylr8j2ibimb";doc="0rgil00i39p2agz9fybg0h3xmpq0wxcpjcqpbpzjw5lcf4mpcni5";source="0kdrknwwivyxiyn8xqappf3k5l1brkwkkhjqa0l5n0abzafkjcy9";};
 talos-61820={run="0pffvqdkhmc0adl7g1sfckgwwjsfgbnf03jfry3yfq6za6mk05d0";doc="1narnqgf3221fpf66w2vlw95cr17swbap35lvb7dzviyad0ailcf";};
 tamefloats-27345={run="0mhiz5lxz0szi8ygmajjmldz1bjf6f1lpyxj3b9zb17h9aw8gr4x";doc="0s5cy9m8jpxh81c10fgdvn8wy7pnv7sa25hy8wbv6qkr1qwz8dss";};
 tamethebeast-15878={doc="13shw7hcimckn7pp8pj0cr1zsi1wq6r400x1v6akpmwwjxkw09g5";};
-tangramtikz-66201={run="1c9in9zdw7ixanhj7kgrdsrv6iwvjy02b12lgq0k3wwllnaakv24";doc="15979bzhc22d2pzc8v8ml9220b0sqz4f2nh0nkxibm8hg9pq3prr";};
+tangocolors-66733={run="1i0a42sdqgm7sraxaq246fk1w8ql4hn00y2r1rndyd9v3828x8yq";doc="16x99xbhwnibsbw364kb9yxzfcws3d65n0sdj2wflz2v7qbyk986";source="03kpykm57favngm16669ylkh7jh1q92c2zhb9sx1qy1wd5li7ix2";};
+tangramtikz-66183={run="1c9in9zdw7ixanhj7kgrdsrv6iwvjy02b12lgq0k3wwllnaakv24";doc="15979bzhc22d2pzc8v8ml9220b0sqz4f2nh0nkxibm8hg9pq3prr";};
 tap-31731={run="1ci65i2k6n0h9lklgk41sdq4acp5655mps77j9gcb65yk4mdl6c5";doc="0r8y4jzri83qypvnmgchnhrd0yi7j0k753zmnwhzxqg4bvki10gp";};
 tapir-20484={run="0ad1qkbvvswq7msx9889sz8n7wf8iszigd0vmk2yycykbf0axzii";doc="1m5g6bsijqris8r7z2dw3cj74ajcny2wjysq8ql26531z61hj9ss";};
 tasks-61541={run="1gwl8g4a2x3sbvqg91ry577hmpxdc4dgcj9ixhsla25h23jl414b";doc="1pavbpzm6z6najh72z52j089mdg6gqzsa8sb9qyfsql7mndnxznz";};
 tcldoc-22018={run="0gz5v5hi7r6wr8qas79lakwr7gnf8d5kypf7cp62qvrybp0ljgqs";doc="1vy7k0f6ri4kbjrhby0napsas9wwlq5by2q1dakbz7r80zr7dc3k";source="150p69vd9465icda6p0wp37gg9vl8y3c2ys3b8f9ij9a88x5775j";};
-tcolorbox-65800={run="0sfn6j0829b418fs6zry1xnjkmw69vcifgnql8yg5gwypixrq6w3";doc="1469w97dj43gb4110sx4aqn2j1hhwa615b1gybhb9i7cc3jigd6q";};
+tcolorbox-69370={run="16k26jwbhk466h8a09syzskljyg0x2h5fm5f6fmy65bcjgc8ai51";doc="0dal9wv4aryz1l20hbbg6njgy534540vqmyd2q9366a9ydgx1km1";};
 tdclock-33043={run="05w49l1kvs73sxchbwrlfs9n6mn7qshx102gkjk4jslhnw9lc48z";doc="1n0ir0l10p9fai1cssri11bpzpjabpsrpfji6w826l8i3xlqkdkg";};
 tds-64477={doc="04lhavbayyisxxqfm1vpfq38xx1xwkn136hdnjaa3szky2xyn3yh";};
 tdsfrmath-15878={run="18qqjmdh4hgzar37imn811i7nbk93zx5w7f7agwnzbxgy1kx2plb";doc="1vvbsq5aql1f5q0q6v5z1xm16bmb20w2jnn0d0rc64dw4dxnwpxw";source="03r9f335gb31zb2frpv6hk50c01sz6rwlqw9vdxf4ch2np90fd9z";};
@@ -3627,11 +3721,11 @@ technion-thesis-template-49889={run="1w004bdgaag02kqhsdksw7qy93lyjihhlbxiccavp7m
 ted-15878={run="0m9dv66nl6q4kq8jq08ayx4hrkh9r2i7hmr290s5d7bkyicdkgpw";doc="08yjlfrblhralk4b9ji4g47cr9r1zj8dp6sjha0169395wn4820l";source="1cifrswbfk6714m63kvmrsyvz3q29wd1bgl48f5d9ay7pz07wjyq";};
 templates-fenn-15878={doc="1s91swqsysva49cjrb9khgik5mvhxcb3wr2wz4l2683gdgxlbgkf";};
 templates-sommer-15878={doc="0z75xhawsmcxv4f24cqcvfi0r22gavjpg4si6nwrgc8sg82x24m6";};
-templatetools-34495={run="1djj67vbfjrhk273yqc9ss38bz9bq1sasxs8bsd47acvfkgq45n6";doc="087ib1pxgryfx03057yfj3mfm3sgy885s5nwy21cmdniwqsk0i3x";source="1cpa3yvrjlh4l8w0bfyznpk6bvg6fmyhplzsz7jxv9s01w642455";};
+templatetools-67201={run="1hbpn6aqp5zq2dm8dd2cm0zmnib6rasrn8a8rpjphvhfkr1ydmck";doc="0irpqbcf51dx4rcsa0y3r4x00y7p0fanspyhia6vhk2wsipbgk0x";source="0z1nm6jp8za0dlrj8s7zfcy099c7zr6lsxa48v7gppabh7i96gqq";};
 tempora-39596={run="025smp68d941hqdxqsd4qpaxvk4z8ybg14xwc47i36k04244rarh";doc="14k350dyiqjcfg5fx09i2i9cqsdw4mh1qcrv8cglf1gf2d0b3jl8";};
 tengwarscript-34594={run="0v6mpqkyp7fr1nb5myjs4alz8f7y56rnd1vlsgvp0m2shvnvhy2f";doc="0225gpdqbbmcpgxmpjcj2blbpzxcnr7vmm38jkkpyan3gfw52n2w";source="0jzzn01c5gwkc8n6naaddm793sm8vs67vsjd30lj4ls7djpnixkc";};
 tensind-51481={run="05vgqn5wcynyp8gy80icnkrdrgb0wsr3h0db033yx4yk3c8lhwaf";doc="1vns4k813ffccps5vrrpfmb7rm4fmfs8zgs7cnw2hqg08dmzijfn";};
-tensor-15878={run="1lw3dxk7ar07d4mb02rvv5r2zdkx8pz0w3dzf9s2pa2slbjx5dlx";doc="17xg416ccniiwvq0schcmp53a9hdxvds2pfn6q1q5xw78r983r62";source="1xh8fk3z37wc0jhz8jhz12d35xq6a8fsmn64ga4iv7pi1lhvaagq";};
+tensor-67667={run="0712frfli31jnxndk2fac6fln2538pmb7k16jlvskkifgzwrsf99";doc="0cgwilixdvg1ak90m1bv50rvzhlyd17d3h28mw5bj1myqxr8ybbj";source="1g03dgvnj7j8n7z482fyxpa40daj6rllvz4vnli78i8kyp2b3m3v";};
 termcal-22514={run="1sxzpnrgc7f325w0ww0b92y8ih6jrzpvgp6b5ilvcpyriym89j8d";doc="0nv2s95n2h67j4zd5i2iiz5ygkc1s0xp5wjnnvbb27cxqw1h4sic";source="078bs0l7615z66h5fr1fcd1ydyjbc3lddl1z7j80dngnx5j0vf28";};
 termcal-de-47111={run="13a79lp2lp0r1r1j5nc94adbir463rhprdlc9p6rk3qa7lh445pf";doc="0krnv111d82razivjks8ip9m6z1bllqhx47yzjw6b5af9ps1k6a5";source="0nn9vgxv5awzqx1zndl7zvgd5nhllw7kp8zj7snd1nqvz3wgc5n6";};
 termes-otf-64733={run="0vwm8qrbp9r3bbz2a5sbkkpmkmhb4zh4hbxd37hngx1pd576lasj";doc="0pxck3jbnw7wk7j0p18as2i7cffwj2bf4zjx258dqxg2yjg82i7y";};
@@ -3641,73 +3735,75 @@ termsim-61414={run="1b263hwbplgxw8ca03dx11vp3ar4dh1avf5r1r02qa8b1zax4b20";doc="0
 testhyphens-38928={run="1sqq2rf8amsn6zdp8l1vg5v5jxcn7ipp78qbzzkikiamlxv89nkv";doc="1nzimg7bz6h9dm7hb9r9fzs130dw5y7cjzmb4rc5dp5a5xhiliv5";source="0s92imbkb4p70fd629bbg2cma72ys853qby1nwk6rvdw8gp47pgg";};
 testidx-60966={run="02zkg2kffwh95nxn602ara915jihj59af4hrgv6cb6916m9fv0r1";doc="1pz2p3fdzdv4n1dabh81yl3b3iaywmbjvgxi6zklli6jbbx5h708";source="0h88x6mmid6nmhl4pw9p4p9nlh90p86g1k44a6bbcyzdlxc8n6ac";};
 tetragonos-49732={run="0l8b3kjk0jk70mmmv37zrdb16id6yrjvgsgsmji7pzdqiixy7jh5";doc="1g2zcx3b1pfc9dh76p5iprdgsxp0yndp7rn5ksbq4s9k4m7ikpzp";};
-teubner-64600={run="1rv52yxxanb44f05hr9h30gppbnzbyiaybqm4jdfgi3s9xhprrag";doc="0krg6m3wg0wvda60hmavz6ag78wqcyrzmwc81d0n2x1r687hr3pg";source="16j6g4p7nskjfc1h3ihakl512zv1da3qi4xlppra3j6p34366i17";};
-tex-62387={doc="07ql2xh656imv7xxjial2hzfsm1b0yjd1ddl71q1m6y3ms7qdjvr";};
+teubner-68074={run="06xxypkdzmxs0m6bl99p9hggic3zaxqgfxg8ljq2wad0k7mwn0i6";doc="05vj8877g8ndya6p2kvhipxa61504sa6p80j1zwjdr732n7bg218";source="1nqs8cxfi1rgiab8kvzdi9fcwbpgaw51fjy1kzzpszydf6qxgqjg";};
+tex-66186={doc="1n4jybv4qghg74anpj7n7kj4l908f476q597vyvvq59fd9k5m7mm";};
 tex-ewd-15878={run="1pmf17bxw6i4a9pfi32fjk0hd3p44kw2scwmr7p38320r6dv7srk";doc="0ss7nljpn8k3cz3av5qanc966q90v3qj9qy0akmdzbiy7q8ml7na";};
 tex-font-errors-cheatsheet-18314={doc="0pfd5qphmizhxb2p4gg6809xcx1rlfkwqa6vs4f74457chcwljwn";};
-tex-gyre-48058={run="08578kyph2grc2ca9bdg6271iqpjyjg1qcrivfk5r27sq5c8cwf0";doc="1i6383n8w3h7rjhdzhj0zc8xfd7ngmbqyvzcm0xibqpsdmzis4yy";source="0f9gzhlawkpn4cg284n2sad05aary5pwyczi1qdgnvk9v8sbjax3";};
+tex-gyre-68624={run="08578kyph2grc2ca9bdg6271iqpjyjg1qcrivfk5r27sq5c8cwf0";doc="115gb3afrys7ww3p29lm9bkwvkqk9gjdfcj457yazbk53ah2yff8";source="0f9gzhlawkpn4cg284n2sad05aary5pwyczi1qdgnvk9v8sbjax3";};
 tex-gyre-math-41264={run="0vqg04im4s6k1sjfclrn855liilgayh5kca774aicifzjgsigs1d";doc="0s6s2bs6q2ar4y53fyckz104y8rbvz3msjvyb4sv2p4j6x0kwz4g";source="0vl9ggi62bn1cpnjmqanx62b6an5294375jg68gskg8fwi8j6gir";};
-tex-ini-files-40533={run="0q1g62jg0qiqslm93ycvm30bw8ydmssjdshzsnzl7n2vpd62qfi2";doc="198f4y0bjw9azzck8rz6ml0rpq7g67r37rw8825y8crhpykchp6n";};
+tex-ini-files-68920={run="1dzfn0v8v8pdg6lmgfs0q2c0695zndkf4rpl6dckn51gp2i1bgl5";doc="1l1yizfq9srfjxirdwb3hvlj31a72mnw4spwyjk58xwcsjxx3y00";};
 tex-label-16372={run="0flvmmh0lzkwvwksmnb8m4ix6pzw6f18flybkgidkyf9mf0gg8xc";doc="1ppvdq0cj62zk3b0i76lc35r9pizzli7mm4j2zvdabysn0prlyyb";source="0ysjsk73ksninqk2dyrw06arl692x66rsrr8vb4l2ri3m0lyivlf";};
 tex-locale-48500={run="05l4frsxpdmsrbn50q87db878bwpi076wagj5r8kdnmdwmcanr6l";doc="0j9m67n83f4h5yhfh3a51s9yhqh6kpjz8y5vlxhyabyf7rcpybd3";source="1x0wmqsrbgdgy67gln4jd0518cbd2cxp36gqrjrqgn574qsl5cx9";};
-tex-nutshell-63336={doc="1pc9hx4fzk0k6lwab6galf7gxm55x4z250dymsmbz4fan76xk51x";};
+tex-nutshell-67213={doc="1r5idg9ai3bpc1nxwj7jm7kr9i514gvnkz7wq3dh745y6ilqncsb";};
 tex-overview-41403={doc="1agfya9rwvyjvip0alvibimz75jivpf19hp4jvlv7z0n9m26m9jd";};
 tex-ps-15878={run="0i35b4pp38d1l5rac059znlkazrcqa62qm8brhdmx7zzkbhyysi7";doc="0kgf7y3nxkw8x42wpc1g5mmmbz28n73vgwd9d6rf6fjpzrycc2zx";};
 tex-refs-57349={doc="1w7hcd3qsdhmb2siakjg2hm3h6kxa90ncsaif9spr4xkxs03ib6l";};
-tex-virtual-academy-pl-34177={doc="1kb86nn5vp1b0sy21aw9wlla1dwlaijppzq7728bmfs5nk1dnbjv";};
-tex-vpat-63560={doc="16nfvhzzg46vk6pqli6spxq9y9r0manqd5b7b4k6r9lssdqxf8ld";};
-tex4ebook-66333={run="06hp0i93s2a25w9z7ip1x6k8371asgrkcyk2adfsi4ibbp8kvnw1";doc="10p9mzjfrn7pdfj0wywqv8z6i1qqsnnmjjv0lh5a4w7brln09dq7";};
-tex4ht-66531={run="0hwyqgxgb8pjkqwbcdp22c9ffrcqm23dnry5m57x8cs0s6ml1j9k";doc="04z1bsgy3lisx7ifskxzna5jcbjkbwwjlqfwbfppnmjp5rwphxdv";source="13qh9basfis90xm8vqwcahi2y491jfcq08m1x5wg5b1iq763rgb7";};
+tex-virtual-academy-pl-67718={doc="1kb86nn5vp1b0sy21aw9wlla1dwlaijppzq7728bmfs5nk1dnbjv";};
+tex-vpat-66758={doc="1y7f87prympxg8av128npsa43cri71jjl9gxq1p04pjlpdjjm0fv";};
+tex4ebook-66621={run="12daajbjblpxvfcsa1b63zz7kxcyaiwcpj0djfj1ycdmyhz53cqi";doc="0rx0wppzfdl7z6zmbvyva9yq6mj8gqhy8m62x0r9wa01c0jlm79a";};
+tex4ht-69412={run="0vy411zwfhgsfjbyj81pgihp3g4sqkmb6cssb8sc7ipi74ckjha1";doc="04z1bsgy3lisx7ifskxzna5jcbjkbwwjlqfwbfppnmjp5rwphxdv";source="0qdman4aan2m1wmsf9l9j9qkc5d0rq5v6ghi7zmflv7jj5v1yld9";};
 texaccents-64447={run="0xai85qn9isnrvijw9shhljlkcnvmygni18kw02gsmij0dp9c1jp";doc="02185jla4hffra1wf3mgiaq8lyxh4gxgcjrb5dv3mkrw709iidcz";source="1wqbdmfly54sb8q1y6ms2wg8n62w34xpbfvxvwmg5i4as4a1ycmy";};
 texapi-54080={run="09cnhqn4gxf0alkx0276jkpcsd0myypbn94jzsavnjq8jknp6850";doc="0529cncxbw53km02pymj57iphgziri3d9cj54pqmjqjx9qmgwfmm";};
-texbytopic-15878={doc="0pnh1hsd6k434c8i1xdjq3ywrwylmryrsl86d6h7i1cnmzz4pwlx";};
+texblend-68961={run="12lfkp9qykcvmrafwilyz2vj0yk0ghvkxmmnkhlac57q3hjy12k2";doc="1sahpz1bh883crlr4qicgmx96ncij5zz1dqrm23q4qlg88yn8y3k";};
+texbytopic-68950={doc="0pnh1hsd6k434c8i1xdjq3ywrwylmryrsl86d6h7i1cnmzz4pwlx";};
 texcount-49013={run="1bi484kbrcfx3hyflr4f2w0plhz58p2206rz4r1wjllhhhwzc7pl";doc="12a3j0sk7nysd3bd7mwnbifyrcvjjkfjy3b8f1caf6k0pf1mz8b0";};
 texdate-49362={run="06bqyfl1vnj4gadqsx94lj8cm1ia3w3bmlsfjwwfaad0al3ncxdp";doc="0kks8hswbwhp8dpjdbwr4nm55md4wgabl5ypzpx5arj41x8halhl";source="0mbcap5nfj5ap8gxn4pyv8w37hcfnq4bm5m6jx43cwkzf2hiwar5";};
 texdef-64967={run="0wi60appvgs0h5690h8qqvcmsq2r6fcxais2jqps92ryy41s2v68";doc="124azfh1332lq18g40d291gczx2agh2b1cxq07ldmizi8pmvjaza";source="0hanvqdj2dgpgl3wa6sz3qa542882h3mv9709spl8q2glmyip5b1";};
 texdiff-29752={run="1jjzd4grr3ip6gd8xmhlawhdcjfj1sqfsa06rxrpziklwirw6bq4";doc="0f7q7cszy6ca6fmwzi7fn6p72szgzyj9fldvzz1rk3ywkhsnpakr";};
 texdimens-61070={run="0fny36zd88qkcz7k3hdxq2qr41dmk9j88skihls4vwf350fy8j98";doc="1qls1hqs6ypmsg4rqa26dp98m6h7zq18wdg9n6g6895jrmj10qdz";};
 texdirflatten-55064={run="0q2m138gpk9cvfp19jvsw746mkxa613c2204qfxw1bxw8b454d7m";doc="19iiznql82a34d2yhzqcp339zszbhfz9fh0h4mb11696mj8rx3v7";};
-texdoc-66228-tlpdb66590={run="1ph4mzrlri8daxg7j4n15s3b9dj58ni4fdqhpvqxwy6736fiw130";doc="1dpz5ni9xdbwfy4m12j3v407ywbddmy3j2dhzwrdsyj7wq3impmg";};
+texdoc-66227-tlpdb69413={run="012smkh6bm7rbdpaf0w38gakhqz0s7hr25gi2cf3592imk92qlxz";doc="1xh39n2iw8zlfncvwlw2a0lbxf90awf96z5cry47dvsz81k7r6si";};
 texdoctk-62186={run="13j0c5m12if8jx8sp7hlirz33y6l2jk8lvnms7dalz52mxz8kq4h";doc="1k41z2lbfjsar5rl47xnk1adbcnnb4w97bzbgf2rnjhimd1gn9hq";};
 texdraw-64477={run="14vg45kci5pffvwdqnnb0dv3fznfaay3rg0fjiwfill24ifms14s";doc="0lw37yi82ir8zn2ii2x88f871843y2was3xwp7p06wjanr1jwc6h";};
-texfot-65545={run="19aswiyr722n9misvg9ajdsgpn1ghmic2xfmr4w0w00sai5sh5rx";doc="1jhyfpiyg3007p22jfwkdfmnbnwwax8rzym30pii2bkx6n652p4y";};
+texfindpkg-67027={run="04igpv1y8gw945z4abb0wi959wq9y0xwzk7ymlr09qs8zcm0xv6q";doc="0gddmzndg4cc69173ssp4ncz0mmcw575fffanmdxp7y5w7ggrxb7";source="1vjbmin6jqv4k7qc0l8gd27z8gk6p87pw35rgqp0f3h0pf3r62b5";};
+texfot-68110={run="1yk59iwj4wylhagrlpasy5s8x24lvfab9xg8xz2hz8d3khai1qzd";doc="0rqhyyp6da4fkdfqa1c81jaryy29mdgm2rzml2hklp1mkxkw7k19";};
 texilikechaps-28553={run="1z9nvv2y2nzpkpxyf18p426wcl0g6gbg7qppq70b285kdbczbijd";};
 texilikecover-15878={run="04bljvhvmrxh1a4sfqw57yysaw03c5ldi1bq63mlqqvd9p3hmyck";};
-texinfo-66356={run="1wdrqwksbhxxx275mzhcr3mc67f76nbflplqs4y1xx67iw724dmx";};
-texlive-common-63925={doc="0z76di99n5f9frqcn9jmw6vi1whdpvspppl9k0ikgiahkqb5pa8b";};
+texinfo-68342={run="1wwzz52da923022bg9cqqcwny33qsspf9hfaz1zgrmxw5mi2p879";};
+texlive-common-68510={doc="0l4yicbx7n787xczpg0lwsxlq2cavhswb0w469gc21va59lki3z5";};
 texlive-cz-62854={doc="0wkf0g47wj7yqngxmy5cvjic2gcgy31pry4810cgklljn7pqffxp";};
-texlive-de-62234={doc="1xpqlz6wmsn7l8z66ljiix4qbmqlyg22wa7k03pxq12h3i7ad2pc";};
-texlive-en-65770={doc="05i4ggfi558frkjhxrrkjzd3x8ff1zm2qk056a23v736a5hg9y2m";};
-texlive-es-65640={doc="13442kjpprpc1fp9d6i1byg09vx3i98gylc81xm6k14pn2vy14fw";};
-texlive-fr-63071={doc="120jahzjmak3shjhiy81gv6nk3c1hv4rrxyi1mmzi1xklxjlhl4b";};
+texlive-de-67108={doc="13k76mqf535l8y0pk5vvzirnicxajnq5kpgywp2f35vks362a8pl";};
+texlive-en-67184={doc="17fqvsdnil7chg6a33sy7sxmdh23jyy944qznlfllbnzdpqc9cxx";};
+texlive-es-66059={doc="0crlg0madfm3gp54rh4jm0q1x1l7mvn3l82swhdxab3pl7zwmq34";};
+texlive-fr-66571={doc="1d48jxvrz3dxrbfzj5pygi2gd9bzjvrch8728pbc7fk7xbimkafx";};
 texlive-it-58653={doc="0vmwn6n8bxpzcfrzic5qg5k2vklbm6rhl9861zxsli0rd9396qn6";};
-texlive-ja-62817={doc="1h2rv13ip3bgmfz8q64abqx3ajla9mc02a50xz1nzmng0rmgz04r";};
-texlive-msg-translations-65889={tlpkg="03bshv5xacw01ssbpd5wmz4ryym3dc27l8mwyh652i8gd2lg0scm";};
-texlive-pl-62841={doc="19qab4nd9z87v9dpx7gh2a87rw8k4x6kqzg5yc7wqmf46pfjmpcw";};
+texlive-ja-66482={doc="1sbv761vh7a25lpk1h4b2ar6w7cqjmafv1kbl8dwd47hnsjd7xk0";};
+texlive-msg-translations-69346={tlpkg="0l0w783z2zbb24jlqwxjjiwmfbqys3g634ymk5qhzck5w7wcwy6a";};
+texlive-pl-66576={doc="1id4kngpwqs53zn3pqj0hp85yf6rvha17dyb4s0m8l66cj2rzyn0";};
 texlive-ru-58426={doc="0c77yyfj87fajran8jppj0x8krk6b5195iscpn8z2n94spz2fcc9";};
-texlive-scripts-66570={run="0hl1vjr4hr7q7s2pvizicmabb185df5rl84cjsz0ki7vai5mh7pq";doc="0zvji7w8zvykmy97yim0yx0m05pazg0f60bbls0lb3mnx7rx8imj";tlpkg="07b68n9i587v247hpqnhwi052iczwg15z0npc1s5g1yxriy5k1lf";};
+texlive-scripts-69407={run="12y5mpwin93asvl0anqs170zixvb29vjakwgagvylhg1ns27lrdc";doc="12all49r6n1yc3jxpkc96gx17g5zfbimwfmb5d7s55vl1c88zmxp";tlpkg="12scd4svhgnvp65wkv3kd4iqppahcg3229s4qfkjwm3jb1zwslxr";};
 texlive-scripts-extra-62517={run="193v0r4i3p4psn5b4q0ggpgaazwn6jadjlzh5gjm3igg9k73i1wj";doc="1izzy295pmxrg0sf2szxxahxm6s8bfi960mbs9z6vy7m5j1szxwl";};
 texlive-sr-54594={doc="0icavs9jkcr5b5cx5kv202k95j0ydgby9lqrw8wm9h936mbn9bkj";};
 texlive-zh-cn-54490={doc="1r8n9k1cy7798g1rg1hyj6g945j9649c5hhqf8hm7a7abzx7w6ll";};
-"texlive.infra-63645.tlpdb66590"={run="127ff11k8hamywgvvb4apbg1ra64ig7sghg0qqn8c913mqgxf844";doc="1c9xqbbbn2h7v76kp7bhjwk1g3zzykgdrkrslrzrrhs9x7laicl4";tlpkg="0msr7i7vp5wf63fkjmmx0c2h13ky17j5qlrq7rbnym732ryzlx7r";};
+"texlive.infra-68903.tlpdb69413"={run="1ig9nsyhhgv9vr5hhvzj3asqz75fdjrvgyj1s2z8rbng0y45x8nv";doc="0d6ij3bgna15i5fkg4xwi7155wz891625sy6qh4jfjmi9sda9p2n";tlpkg="07qvyhgbbl4cddhn4wqh1ivp1ifpw5hwv05xywl62zc1swag317x";};
 texliveonfly-55777={run="03i9pzqv2dz4z9nlq60kzwiyfvzhhaalhczqa9146jp4wvcib9l3";doc="1fsabzkbcrk42rsp8ssx0kvap31y1rqnkq582129946q3njvmylx";};
 texloganalyser-54526={run="0icav63nll0lj85cqlbg1lx1r6ysjf1lyv5bydxr3flr1c7yqx2r";doc="1s7952n2brrz3s1qca9r5qk8fnjlmrmrn8b06dhjxdb7wdqis6g0";};
 texlogfilter-62792={run="19sxpfyfp2knv8q13sgka5kw74vplr0fnf5c9m599h5kb7v4pcys";doc="1wwhdm7b2rwp9qjpivj3wflwf6q4lcxbc3r52g9c68w7d492v7al";};
 texlogos-19083={run="0rp4l8da3dn6djdjajavxqr5mmi3fsyadcqrpmd9cfggdvb9i8qz";};
-texlogsieve-64301={run="1nva2ccmarr15yrm4hiak0z7gn5z60nqhj06fn0n6k4asf9i09k8";doc="0i545ihxqcn61hw4vid6a77fkpcyq8sn6qy2hb4f7hb4d3zl7c1g";};
+texlogsieve-69072={run="01l0i7naqyjf5nafk0bzx3i9zvcqphzg4wkbnb27ghhwarzibjs4";doc="04r1cj63s3rh97z42fysr27drximd1a27ksvm434aiiqz3niylld";};
 texmate-15878={run="06hnwj11ify60gx92zqky28spdhppgai5v08l73kiabrryzdn8w5";doc="13d6rlazx3qx9zwbb60z1f6dk64n6rph610s97hha5kpc0v2vkm9";source="0faabcm8lyfvzn5jb7vbpkpa31gjb1czkr0g391vbdmx9lrllxar";};
 texments-15878={run="0vhwraxncqx74akzmjcww4akisn3zjgi5b6ac8c350flhl0nsh5p";doc="0xn17gjnb7n3ryc28p8vg2hshcwa660482pzm9byq8k6s3a78yny";source="1kq5zw31sv0i87h30ahyasqy1qh4m36f0j37f8532s20n5llcq0z";};
 texnegar-57692={run="0qrnysss751vsbgd794gwh8lwrq6gq09p55qkkfngc5ly29icx9c";doc="0jidhqlklr8yd48san5iyy3i5pxg8lygf4xi0gcp3ps7xcb0m5g1";source="1bayaa5vffnkmvdmg64q5rsnh69grr8qirwd41mlfi9symh9gm2j";};
 texonly-50985={doc="0h40f8hj03ha0ilpj2fx5kzzvdv0yplmr4528s2rmmy62l9kgdkd";};
 texosquery-53676={run="0jszy2f076hrc29kk8qcr9616hyk2cvys3kg2qfhvblxf07ziw62";doc="11rz21m720pp97vb457pxaq5yxf3j4v8vfcd77w0bjpc632lh1xx";source="1q7spgr1xk2lnx2xqksjh979n7r2v1n1441fkrc479zyi69ncn33";};
-texplate-61719={run="0bh1yhs28wzagh7i3sraki8ygd1kikcmalqvksilmb7j4s5c0hhl";doc="0zvrsllhb8fkk1wzg9mylnjyvb7pjl5wvd3m899j7w9cp5zl5yvp";source="02wc2aiqcrrgc514pn1m7yn1b5k6vg1p8d92kk99pkiz46vxnfj8";};
+texplate-67201={run="0bh1yhs28wzagh7i3sraki8ygd1kikcmalqvksilmb7j4s5c0hhl";doc="0zvrsllhb8fkk1wzg9mylnjyvb7pjl5wvd3m899j7w9cp5zl5yvp";source="02wc2aiqcrrgc514pn1m7yn1b5k6vg1p8d92kk99pkiz46vxnfj8";};
 texpower-29349={run="1w1yn4is019rjnj137ckmkas48xblmhpn0gvp8dac2hmsvqfl06f";doc="16j3xy98k9hb3p7bg9inzqmsl07csa6lx1lgym4h6rcjh247llqn";source="0nkbapkzq4knxhs63fiqg0rcxyp72vmd35jz46dha87s2v5w2km5";};
 texproposal-43151={doc="1yxb3yagljsdp4s07fzd6498889i7cscch68fb77jbfc2z4srvsy";};
-texshade-64242={run="0mbxv0y7m0hibfgy1ffhsmp570jv87r84l7ibgl8anwcby8r3mps";doc="018kqz80pyaz6x0lsr9p2al4fqa9xsf998vccnz1ixv5lhibbfx0";source="0avk1x3wl7n1hl975xj3rzxhdikx3nfmi6i5lzwjy9rcf77j1s5g";};
-texsis-45678={run="08sn35x8wab41mdv67ra3hahrsf4v4brp9n5z0l4bk3k27rl4q0m";doc="1bgngwqj3kkr196sp8i59yrkqpambijr4a54jfrgxb6595hiadsj";};
+texshade-69371={run="0d5panq1z0fpi7rvwp9p2pahd7vlb3skgsw9zq4rhb9pirawv3v7";doc="0bvxfpc2v8hph04kn8a8rf5995awp8c3zc5r3ddnghcidn83xsny";source="0ib9fs5391pjxh8p0c6bzvxmgv03y73qgdpjdzyadbhkqj4kkdxw";};
+texsis-67930={run="08sn35x8wab41mdv67ra3hahrsf4v4brp9n5z0l4bk3k27rl4q0m";doc="1bgngwqj3kkr196sp8i59yrkqpambijr4a54jfrgxb6595hiadsj";};
 texsurgery-59885={run="1f2m8b4xjq38j6q86pfa4m8f7z4sqyfblxpkkljppiz66cq9gnpy";doc="1zpilg11flz7z6pk7zhpm5ck39avh24na2jpl4asnnznaf5bzfjz";};
-textcase-63868={run="0kz6lq6iv9qpqa8pfs6bwxmafgy9c31ywrwk7nvv96hy198dqbzh";doc="1419lkln58nxwqspfwxcxzzmqwl384z7kg3ghlm2xxkz7426ncck";source="17qhj729q5b54mddbvqys5wvkmh66c1nlagl06nmgz728cc18xzp";};
-textcsc-64935={run="15mgpsgjhhp7hxyllmwfb6j4sx9h5r59pdrlysvivq8vf66zb78a";doc="0c8iz090fx551ppayx61f72bn20v3mqillp2wapajdbjnz3s082b";};
+textcase-67755={run="0rkhw4rai08n52ak4acix224cwj9fzpl1m4qcxzql9cq0h51rn2f";doc="0hw7q77pn8nx80qqvfz333sn1dpx4srf5xsv8vpl6q1akhrk5f84";source="1bxkagbkl6pnlnf9ibs0ics3p5nm9dghyfq97bn32fv38jywlswl";};
+textcsc-67193={run="1zx7890vdwghxl7g9rm9fcj0v4h06sdbhsscwyp7wjmf35k6awm6";doc="04gh3w1a7pnw1zja7gg01xda0f15s1918v5m289ax22j4x9g472a";};
 textfit-20591={run="0vmffs1a9zspg3hcnd7p0mffa0cw4nnbx8s4vari3n8npmdxrf26";doc="0dcb63v0yhlhvjmcbsfnw3px6qizmq95rq67i64dgks85d4dhi6m";source="1h2yql1gy6hvwv0rirm9v996j3clrywsg9dzgnvrkrvnkf1b6dqi";};
 textglos-30788={run="08932gszahdc5q6pckg9q8bdxs39gacjw9cljjlvghs8vn7jjwjj";doc="1c88my4j07b7ihn07bcii9xxckdv04g3c6jycm0ffhjffw4p7609";source="19hc7lalmbr85pbz3pd3dm696fsbdl7y8v9g1c4l2k7b0i5mc8zf";};
 textgreek-44192={run="0r7jcv38749xndr6sigy8zw96kwqw63k4m33c09hikawf2728jzd";doc="12pwr5b8269hrwgpr9g4chw273wv81cfa52wvp3nhkd2cvbhfcp4";source="0wq69l55462snrkpbpnlg03mrn2yxvibw38lkplgfc65gzaa07sw";};
@@ -3715,10 +3811,10 @@ textmerg-20677={run="1bwlcaggagg811sbsi2wrfsz31rd6x92m47aszikmkzfzx4ina7k";doc="
 textopo-23796={run="10g5i5mg9898q091w9svm7gk4hgd6dja3dwy5dwc7s78pv0qcd68";doc="0r94ivbqmvs9lyw1ipwzcb4f0v9npvyfll7r8c9g627ikk9fmpa4";source="19p7sgz34dkvjqkld38x8li539kx140w1nj9l3ai5chilxz4lvy1";};
 textpath-15878={run="12f8qn2ncw0drx5r48ddb0xcc6fdm7jpmv5i1n0ihfcqaqa1l8xb";doc="0qhyflskr978qp01apai5r3qjhsj5q4mrvwck60jr79yasxa109k";};
 textpos-63967={run="1mhbsyil3ldw4xq40739pm7995d7fcv050ra4xjnaqdf93cqr2gm";doc="06ya6i8qkp823pnh1jzq30wi3pnww00jw48lbk6rzvxzyhwxrzdh";source="0vhyr1ljhi5dxyj90zhpr8x7h8rjn84pddaa09al69awlgkihclf";};
-textualicomma-48474={run="06myfm4l1k1ms5bmgswbqikg3kkrz6qah97ncjv0s32inkqjcicc";doc="157m953qh08i0a8lhrk3228ir2clyk32zd6x9ar2fgbkggjll9ch";source="1zp5qj4b8fn5y8a7aylz7bpkg6jnmqifral9l3h5g8ka1727ng9h";};
+textualicomma-67201={run="06myfm4l1k1ms5bmgswbqikg3kkrz6qah97ncjv0s32inkqjcicc";doc="157m953qh08i0a8lhrk3228ir2clyk32zd6x9ar2fgbkggjll9ch";source="1zp5qj4b8fn5y8a7aylz7bpkg6jnmqifral9l3h5g8ka1727ng9h";};
 texvc-46844={run="12knhsx5y5n6wlzlmzvym6bza5dry1z8qlszka0f93wx8hpvk7cg";doc="1852x7zd684h6jjhq3f465z4q7d75871hh5gc8abvdk9p6srnwsz";source="05532lckvznsv4slyvsn4jrv93y4gxbcy3q3r8c7g0lgya255s9q";};
-texware-62387={doc="0zbx2i3hran98pj0n0l4q9029lxj8cflvx7cbhbv9lj04k8lss3n";};
-texworks-54074={doc="0n0ydn8v42q3wcxmhjv5nwmmzf5yfg77qlc1v5bmkpb04dn4055y";};
+texware-66186={doc="122r0aq02vwx6irsnapnfbvhgy5d09x90rc8zc7a0bi7b25bxnd1";};
+texworks-65952={doc="0n0ydn8v42q3wcxmhjv5nwmmzf5yfg77qlc1v5bmkpb04dn4055y";};
 tfrupee-20770={run="1q0z0as8gd9qb3p10rf5kwzljg5z790cgmxi5dbz1piy0lcnj4hn";doc="04zmcfp1xqq53wl41rw199yj47nf7l396qcnsp8dsrvf7d0n0pfc";source="19bgxgg9cdgfdvdr4kzmp4na0n6p28dq0iq4nqi849j4ij5lwmnj";};
 thaienum-44140={run="16awnv395nhgm8s3n7w1x7x0h32033258bb0jp81v5nrnmn344wi";doc="0jvggbnxinc81bn8glmyli746asqcpclgmvyl8gzbdarrnabij3b";};
 thaispec-58019={run="1inic6cpbf1kf1hi6brhq5fj3fkwn95cvgjqwh7bxk9dxk1rzsh8";doc="0ki2jl9spv70f5hkzr762nkcylplb9z70c8gdp97whqg9l9mb8bs";source="0j69dwrn3qk82xgnwabq30ab1pf4xs3sfnxgnrksgmhd0ly4lpjv";};
@@ -3727,15 +3823,16 @@ theanodidot-64518={run="1f1ixiqb6mn875rahrcl157y3bc6dv2i7vks7vbnchppjbfgk757";do
 theanomodern-64520={run="0w1ybshhj3y22ysymxg27apmblqxwwp193q81vkykxjrf4qn357p";doc="1a99wqmfr3adqm7rhq58kjg10q9bvf0gj44ly21nvmdl7wa0qjjl";};
 theanooldstyle-64519={run="1v5hkpspzjizpbcgbr5wjikwpvslq02fahqbdjpycrpl2q3zlc4m";doc="1wfqvav0k9vz7bs7wdh6fppijq904r76r6cwg8x5ffcv029l75ir";};
 theatre-45363={doc="1nhm56spqvryhmhwmzly939mzv5yv3398lh2lyfhf40rr02mzgi5";};
+thematicpuzzle-69356={run="0cxgvzld08bmyl89qvnkqf285qfgyhdmkq6aq8sk19acr9lljrzj";doc="1c693zjh4n4gjpkbrvw5s29r55b350mchby88l7pakhzzk81xxfx";};
 theoremref-54512={run="1dfv3pz7pjkazp0czzpzhga9j201gwvx785v3qvqasrvpa0vwyyq";doc="0zs8q0xzinp2ih68c75yj9mbjh1pmpqc77xg9hmj8n3gpf1kmmi5";};
-thermodynamics-63188={run="0774lspvcrbwqz68n2kvx4153a10hwi6p23cmpap226v1rq8zy0q";doc="0im7y0qrl556l70yfgxgmlv9h5zb4f0hgga79ig4dkd9bdvc12xa";source="0gjh11bsqy7zjmvz0n0316d1jlfnfx4bg97qdcv8z8m9a5rhhxcv";};
+thermodynamics-69086={run="1m7lhcbn6ynxm34y44j4hwb0y644n2vlm0r1yc08j1p9h27s6zym";doc="0knza3s977z4vs2cdp7ykk80104k487gbs2f7aa3qsbxqfln3jrr";source="1c1xs99a599l8km9x0ckcif32gg78j8pgva2axdrllws36wpn2j1";};
 thesis-ekf-60228={run="1r2fgq9ralrcm00gz0lrxm1f413pik1hill8x8nqfm9wzif2dd9s";doc="122vzng8dhsrpixwn40r9ddczqk9igmzi300hmbymy2b4ydhzc3a";source="1nizsqbj6nbf5qk54vvldhb6flppyn29i058jngldqp43r3xq8hy";};
 thesis-gwu-54287={run="16vb94z3svvnsxmv43d3xy6rz8ki3dmk01iz553q949f4dfig1l7";doc="0xfl7s0i4ni5lwxlsmlldl96jnhfxjyay99w3qc3vc4az9vdqfmc";};
 thesis-qom-63524={run="0lsi7xy3grxmwcj55s2m0cnkqr6544qn40k5jrj6himi7l1p82b9";doc="1sppdlgr859hnfjhjlsdv8shwzi5gkgmv10s8f9vh646cnqp50rx";};
 thesis-titlepage-fhac-15878={run="1s9g6h020ahv404mxsfvqic2im68qnvb425cyvz0bj2rwn1fwnc8";doc="0pjvm3d2l9715q50nbbza5l6vzhj6zaf9payimk1lr6k94357v1s";source="0bhf68pc8c41ih92sajva48m9fq7a05x4y9qqanbidvmb6jmvhbn";};
 thinsp-39669={run="19d23nm17nybk0dda4l05dsbs1695fk0kl86vc713l19mzw4l7fw";doc="139v4dmnbhsd3nqlp9qknml0glfmh1f9dg0nnixggf19lsayn27p";};
 thmbox-15878={run="16c6p3n4zc2726adj8z131h03gbzyhmh5bj8hzc286p96131swdw";doc="15mkfzmy0141k5wgspngbwnnldf0i1rvbmq2bkzcpb72v9vcj8fd";source="0lv5mr23wwhig6r9fyy7rlv2cqxlr35y3g89i938w35s9q25xx08";};
-thmtools-65863={run="1nwiv4b5mz42g4x2gi41n02q8rxb6mqc7g84p297b22j29ppcxfl";doc="0vr05h3lyadhca4wnhc4jbna5mzpm5pblfccbl66y09g35mf784b";source="1dmw6rj7w97d64g8fgi3qgmsgy3065d6r6bmd30vj57pqhb5dm37";};
+thmtools-67018={run="0msngnpdpqpw0skchd629v72wnd9pn8s1jijcyvqzwy88k8i8f2m";doc="1lyc17i46x1v7xhxl7qf8hpjn3y9r7da4lycpsfijmlscp9q3c3y";source="13zd5sx1nh9f61jwr2raxkli2y42w2dr23j5yjjfwfk65pd8bfq9";};
 threadcol-28754={run="1whvgb3901wciijafawy5pgnr4adpix2a6ph2v52kwglg68s2ixa";doc="0dky94vqbqrba5hsvgs1sllwy6cxmr6mlr6zv6qgn1yrrmjxs0by";source="1qd96xl0h8bnp5mqbh8mprdfbw1bhvp60dhj46hqyl4w7f61jj20";};
 threeddice-20675={run="1r5cssaj6qxv17n04pgvib12a7b7fnxfk3qbf87mhs1xpxsh6v1s";doc="0w7f2dfy6sbircp8dbw8s28s4bxbqnmz469c71v3qcaw6hgw3y2y";};
 threeparttable-17383={run="043vgdllz4k8fcclyw49515rcwl03albnmszbqi7sbsskmxnzck4";doc="1mlhxgv9q1gnkp383vinybzh95fd49dgz4x14jnjilhjabvhgyid";};
@@ -3747,11 +3844,11 @@ thumb-16549={run="1khi4j0as028c7fhzkdc6dmbgdyj45lbasbv4ksnxmf2kylmbhxz";doc="1h4
 thumbpdf-62518={run="1zj2733wnq4zydf22qhza9j0nywh6fmn8xd3dc6nwfzm68pdn9ic";doc="1fpbfz855cgs9gdvwqbg9pb3i3yl2xagmxbf25mra08ii17v3pf3";};
 thumbs-33134={run="15k7rn5fygvsrjln614jndldmq47zq75zqlv71f2gvr8nqgil93n";doc="0c70k96v2m6nbx9b8qx09pky9g0s0ipqsxy3fsn8spjjrqkwk0v9";source="1ns05c3ji4svj4x9y2qy9hn0f2bvlllbvg98xsr2xv7gylr2pkmw";};
 thumby-16736={run="0q3h6cwbw90adw3c8ggyb707l23qvsfl3dl8zrzhg78dm9l8q3gi";doc="1v1934z064ar7zgjpnpxvmc7bkaq080h0hka0snkj7kwqm6sfry7";};
-thuthesis-64628={run="03x6rrxhf3nwyy6pdn4382dspvgkxr67yyjvym7ww0v0l16iij16";doc="17pwhwzmmhhn6skn7kalx0jb4wddnljmnq4yfxd2nf6mpvcd2nq6";source="07d9ibfnkiigylz5b11fb6f57ciw1zazfagcj95n6qwghgs54zxa";};
+thuthesis-67127={run="1wnnl59l063ykjlzl2ln781w56w6s5wwz6nxs3wsx9inzn4dn966";doc="13a5vrnfnhhwl9kdjry50rs67kmcpdz7yh0qvfvwddv5kndjr0py";source="06ys99v2865pyc5xfrszvj1jc6l4kxgi37nih3v5s2a4k0sp3hnw";};
 ticket-42280={run="0qpqzff2hj01g2k8nq9vc91l4zvg7kx4p7nf0gd6ji9lf0q5caaw";doc="07xa7nf2qgvjq5pzaj7k75wzg2ldcpxb47ypx53swssz277ixvp7";};
 ticollege-36306={run="1mivwaf3ngmdr1zdkl9xif1rl4fy0b062r43064645idpkk4120d";doc="0xy35cggk34ziagi1m60ymckknls2wwil0wdzlswn0aw2zca9lc7";};
-tidyres-65789={run="0pkbch6z2c54pmadc8f045zggz4rjpbnf3aqr25lwjzkcys6y3lw";doc="0ip2s1f4mm959dm769a14xrnfjgr9y10ihf0213smagxa2lr4xaa";};
-tie-62387={doc="1x506bz3y2vjii6skayq67407v8yhh0h103j9n97sky6m4qizdvv";};
+tidyres-67738={run="1lnymwa3hbfabxigxfqkhmczigswqn84wdw8jdzj7khsv4zm47rk";doc="0gb1aayki8i14i9zl450jmy4ybbcdnv54l5s1b34ma7vw9nbng5g";};
+tie-66186={doc="17z5ik7bbf0v5ylq2v1rda6z64iz386vp56z7yrr6h1dl488kr93";};
 tikz-3dplot-25087={run="06ij3bk1aham4iv0wm14z9dhcq1v60qiv9n6idfcmjqz6m05cdf8";doc="1mq9drqg2z9khxfylsgpz32binla5abq88938jcjk9y21d46r31h";};
 tikz-among-us-60880={run="047mfp3z4m63wc4f7psrsi77qpc55drl1wdrk2dlzfykkh4mna3p";doc="1f817bi1m745c7cgl7r0yx5jx22qi6h2xwg8kb246lkfsvwlynnz";};
 tikz-bagua-64103={run="14cycyq0lshr61n83jdzdyjhr20b26fsrp1ximyh1phk958yxmbj";doc="167pi758hdi7chys2rbs1v1lqd5gi2nb1fq244igjr77v1775ifb";};
@@ -3760,7 +3857,7 @@ tikz-bbox-57444={run="023xrf65s1c4g63ggpmsdyckp6zspgjz1ad7pk7jf56zdnhqaxb1";doc=
 tikz-cd-59133={run="0xv75gvwlhax08mp1nlyy2kgi0br7wy7aahbaf9rfbj0idpcl5ip";doc="0dxsixn2n0irfqrgcp63h74fss1ldqlcvfv6d9v61asxsjdrzf0v";};
 tikz-dependency-54512={run="0v471rprwnqlhwvx0lqxvpsgh8ph16lbvrpcrynx2hx71n9daqla";doc="0h3mnxwcb1k1ilw9pi1xcwmryjpci0kwlaqfxx2i8lcggsdrxfxi";};
 tikz-dimline-35805={run="0mp6xg317m0dkrw73609xdn7r9hbf8bdmyp0bdj2xzpynpvxisxd";doc="05rikgrm1f0f0rx7ir1nn4cy3a93bwrck2xqnms26dg4dqddnrbk";};
-tikz-ext-64920={run="06dzrs98549bmc0hhrgkji4lbf7ly59bq63cw3dp791iaydy8d0k";doc="0x9ys9zsai569nahiw7q8nzds5jz295pg9da45dbk3wxpz8h61vz";};
+tikz-ext-66737={run="04ar5xpvxsihcv50n8z49dd76s4vlw401y106yi37x3fsbgfzshl";doc="0aigvf2a0b9lh6gj66gp75iag3ipd1kjf6wv5safpn2v1jfhadcg";};
 tikz-feynhand-51915={run="16bb4h6wbmyv9mz68sywgw18h2dcyxkmkcyjjshkbagimf3ikb58";doc="15h182ywc8ihahv76khphah6awpahbsrdi0hin578jmg1582rzp4";};
 tikz-feynman-56615={run="1kh3riwk5iksldsg6ljk27lhh6fka473k958q9781m65isdzhwa9";doc="0cjl1zvn2q39khh4afzvh6nh8dlhrkd6vn3i8n2ywv4xldpb2k0b";};
 tikz-imagelabels-51490={run="1xg2malb3ybgcvmr1gksgg93i4d8fvr7pqjky1b98n0abfxybxv9";doc="1fqkzfbbm4ckbjpgjrg5fa9ggam2lcy5gzvnhc4njyjxwx1hjcsd";source="0cqcbwccfq65zsbnkcdjfqwj9h8ndjhan1ghnzp9by8z41qj2fvv";};
@@ -3773,8 +3870,10 @@ tikz-layers-46660={run="1ym859l9bzzd2rack9kcbckzbpmqxyglaa0jggpf3hlbsgzy33h6";do
 tikz-mirror-lens-65500={run="0lpb87kidq5lrl79hzjss78qy5hvag2maddvwkh8idnccr06awbi";doc="0q4rp929pq600xi78yp0siagzxbrhx0cksqplr0h7xgn74yldrs3";};
 tikz-nef-55920={run="1i1l0rk7k6kc9vyx9jbpj25bkl77ml5ay1wvwff7a51rr8c87s99";doc="1nsbycqfai72xbrzy6vz7lzpywdavbcyz7x3h1kfhby10s2h136k";};
 tikz-network-51884={run="1mf196mmkg097slc5aslpjlpih2kdq5wkmcpznsyhg7s20mf11yy";doc="05dzfw2x5j1i3534qmhp6wcymba5mwilv2vf7vrw5fmrgd4h1gy2";};
+tikz-nfold-67718={run="03q6hj8p7p4f5sa6ipsw456q5g3326kidkmsiil0sjprklsm3w9i";doc="0xpc9nik5m90kqrpmg254mcpa7qca0fl4n4832pax0j59g9f9z1f";};
 tikz-opm-32769={run="04ch55a4jvvif7c74s8bbsq0bkw3v3zjh6wdlmij30cfyxn114jg";doc="0ajrvamsj1is4lh0xf25wjylnjg8kd02b7kwj40nq1kawnp0hlxb";};
 tikz-optics-62977={run="0r5z7vp05s92hk87m01vcxfa0kkvfmzxyzfx397b3lwmlavzws8q";doc="1zjlpblczvr9390fmz0vh8zf0pbf1zc4d01l4ykhdpvljf7ndrmd";};
+tikz-osci-68636={run="1rxkdljz3lq6lnmpr56wyb7zkxrcjzkg6pi3qwrgqcz0njd5d7xl";doc="0sn7qhv2kdkiivigbkhqqpgj2kki8xydnkagmrbk47s3bnvzmhqz";};
 tikz-page-42039={run="0971kcdlavr24lkf9wdzgwb97cf952iw1d5ls6zz7fsfj6pigqjn";doc="19g4b944wzahnabpw2kighd1vr63c7im3xgcjz3l53yrz89nhjmk";source="10v67pn2zvpxl3817h1rvn0y4wb7dj07p4nv6wf1jhchgvmb8bdz";};
 tikz-palattice-43442={run="0pfp30l373li523l0skr52fa397h2wkizvggsls3kv3p087j16an";doc="0krdfwivibibgpxsjnlsl11yppmsynanj2lgf892izxj2m3hld7d";};
 tikz-planets-55002={run="0gjkapcls19839jrjimshd3cqdl9x0ld27i2d51s7k8f0rcakkmh";doc="0xx18gdj4r9jj7qvwlrd237nhcbazprhqgzn6m6cy8m36xy6yc09";};
@@ -3785,10 +3884,13 @@ tikz-swigs-59889={run="0cpmk783m9qf4wq1qsw4hy3azjlx0r47ya5ijw4ss3l4nr8i710x";doc
 tikz-timing-64967={run="145r878hxqfx1sdn4hdagmcnfx8xqcihfz775zabn5sbzki87ywq";doc="0na0rjgnala2lyww8chnkqyp26c1y2siaj7gqh6h8fjpi5bpamdf";source="17wzwm58194p5jlwb74z30864q7nzg9fi4q4dbcp26b3p6kn5cxs";};
 tikz-trackschematic-63480={run="1jbji8zkqjwpf1bn25p415n7cwz0a5q2606imyj8bbxdzp0r8y23";doc="1pvp3a9pgszgb2013gkh1z1fm8hpxa4z6ssmr1hwvwj7y48399bv";};
 tikz-truchet-50020={run="00yf9044lpsazd8wnmcz39lnazrxpqd7lpyr8ss24gk9gm33b563";doc="1vlsyyh7xj1fn6wkafh7ps4ys439n1lmvmgk63pya18laxkphxxk";source="1zbp1xb9sbbnr4iiqgg352ymn9ybfmkwmwd49r1ws3w7iy3qdvrz";};
+tikz2d-fr-67239={run="13mzq1azxi34lrkm4rycsfhbcm8cap8pzam8gwc3vfa5sygkczhd";doc="10lv2v9j65bq9fj3yin86hbbj4bvlygqc1b2sszjabsdnmzbw0yd";};
+tikz3d-fr-67774={run="19js2ypl2xlzqb2rspvrx1a73w6wl9jcf6pcm2b0i19rwfp93d39";doc="0kbil2rvy07rdva18kb7krd49mqcrrsbmh2mbflqxagycpy3vf7a";};
 tikzbricks-63952={run="0k15zgfckasxf9zbnh3m4bhwa22pc1rmx930in2k9qskqx41rlrz";doc="1dmnx38k0b1ivs8ay74yhh3pmqi3m9s12cxakfhnw57ipkpp6af3";};
 tikzcodeblocks-54758={run="0q10q8gfbdw20ysv40pj9c1ks4mnb4dqvvz39fvyji3f4s4xd60n";doc="1imd5qf95ykqs89zqb32yg7p61in242vkjx5wv6r2xh2dkjpvv9h";};
-tikzducks-55713={run="1sdryfjchphbk6w838pfn7ddqxg5gq4hgh4k7b8k99avnxkckll7";doc="14rmpx2xwww8v0lpdgv6nz0kp43w1wlxzpr3i11gi1didd78nbm9";};
-tikzfill-63947={run="1c4z86r4jhygylysqayainpz5iwyrs3khdvwwi2kmk60vazp4x36";doc="11p6afr3h1y9yqfsb7dq0w51gjpgc4vc3p3y9kwcn3kwnvygqvh4";};
+tikzdotncross-69382={run="0vwxdha9gpmdv4l61wdfk5j3mi2facrv3a3azkgrfn5s2pyf4m5k";doc="14xwxm1ckicip2dwc7925sfdnlxdwry7h12fixs1g4l0vmh4bcim";};
+tikzducks-66773={run="1mlj8h6wk80pi8vi8ggj30mg1gcdwdfncif53p0mkyvmvjfin3px";doc="17c88srkb48y49icbqv85kih5qd2r222559a6g6xgbqvwa3yx1gq";};
+tikzfill-67847={run="1igbzzpx6rwqklhnalzpsb1rpj7l4mkrhwblp8k732nfqvj1fn0x";doc="1dl033xf2waf0j40c4whci5qsyxk4346353j43vsrqy7lgsh557b";};
 tikzinclude-28715={run="0s0mhfshfzl28z6lgwn7f540pbmdxl51gqf7nw1s88738mx3m4z1";doc="11jj75nnzw9m3i6nndbfscllfxzn5bd636s85q17gds03jbqkhfc";source="1v1bvpfqhvn3hp3zjx3sqv4kg288aviy1b9zl3s8r64zmai86bfy";};
 tikzlings-63628={run="17wgali1pawsb6kz2w41a27i7gj1sm4h8ay8i8q967s8s07kxv5p";doc="043sia2hyynbwpgh10dfca9gyih97z8hlxpi1390a28wnmyvcbwb";};
 tikzmark-64819={run="1p73c3ivn3aamrzzzw5y4fmkfy7s9qnvw4q64jn01qxzzs1vbhdl";doc="10fwszi7wsqrh6kql40s6w4y0jji8v0q41bd684cravhgg0yjc1p";source="0mbk2xvqjpn44skvdgjq43s1j4814sfn57xc1ishcwrrmidy5pra";};
@@ -3796,20 +3898,23 @@ tikzmarmots-54080={run="1m33y48cs82f2z19gwhr89qyaa9n5qlrps9ash5ijjgra9dkfj8q";do
 tikzorbital-36439={run="17g4bd556kkhrxir4c2q6f7qxa8rigkf41dj979nb5k3a7w4k3b4";doc="0h1s5dnyv8n4hv608c5rspdgy2h10ilqknddai779h9biwhfzh3m";};
 tikzpackets-55827={run="1kidqyd1d7wvs1f3cp6ixp397ipaj7jd19djhy3q4dvbnzq1xm4b";doc="0rlpz3m4vsyin6ckyjkxjp9a40gxhhi44z18hrw2blmp0mg011v5";};
 tikzpagenodes-64967={run="197sijaabaa3sf5syasf4ciwz8hkgy2pyr7lp78gzhlv950drghh";doc="0y9ik1r203inp74hx4xznkypw0p88zhg9fq6b9205i053vvla239";source="01bjvk944nlld4zbrld35n45dzljqf1rng83y14ipn3wcdxa0plx";};
-tikzpeople-43978={run="12i0m8jilbl8ldji9xmxm5hgsl0bd5vkjly1ykmj6w2rzgmjfbbp";doc="1a3cjadvnrv9hslwgihxv8z16awkikinv44zcj4fd5drnqjsvcrq";};
+tikzpeople-67840={run="12i0m8jilbl8ldji9xmxm5hgsl0bd5vkjly1ykmj6w2rzgmjfbbp";doc="1a3cjadvnrv9hslwgihxv8z16awkikinv44zcj4fd5drnqjsvcrq";};
 tikzpfeile-25777={run="1rwv1i6yb0jd5gw16db3kqar4ykzbwcyw51hv781iz358hgww5mc";doc="1530vkp14lpv0hnv8qcxalibsi1pkcj9xp1pa87lisrillxs7kwb";source="180cp8vp26shmnjxg9qs9n28v4xy0qhqgm1bvbkqrpagykzzhsrf";};
-tikzpingus-64199={run="19f6drnmhkm6h3ga4bz0ifcb1jgdsm3rrgrwjs3sdlylr2lfi1yf";doc="1xakjxabm6vb0gaa5li3j0j6xyydk54h07hr9id43ibklrb2gavd";};
+tikzpingus-68310={run="058v2b6scnz31p0jzk4i1i8v6a1vb10fd4kgi0izd4pw58cjj31f";doc="08fi2mlzwvdx8i4r2hf8l2lx7j6b4phpm8ihwklfi49ha5i0z2n8";};
 tikzposter-32732={run="1r6pia3sjl9xcixnsr5pk8cma4f18mvpn60dxmpzpn2nn1sk4p26";doc="06vy5vmzrqhl6zk6z9a4kyqfvjqc4s9pslvl9zfl17cdqsfvbdf6";source="1idiz8izn9m9h7kyiavw836v9x1vzg58vap42wpj7yd74izwvf1d";};
+tikzquads-69409={run="1a55w1apikxg33n35wwi3ffafnlhgsnl5w6fxq9qin77qi5rq8l5";doc="090fyhby42m0zlx28vm9ix5pjgkmv7ml0ja6w1kgn0vd63q02i4c";};
+tikzquests-69388={run="1l1d23ky7pvcj6j1g52p5qsdy060qbjws4fp4i7j38k6dvyrw2pl";doc="1bvjy5ghc0arx48gxc3sz7z1fz02vigg5cxc1g75b6pcn1l5x9lf";};
 tikzscale-30637={run="0h8hpk0nv712vydxrzyhvqxrrqb34hw5qjgq9baagqj42ka06qfg";doc="02sz63v9zxr58417jn00ypm3myga7x29q31xbnz7p7mmq5q1r94h";source="0rf6rsrcpapmhz3q5wkgcivhvswy1kb3mql94xs372qc08bxsi3h";};
 tikzsymbols-61300={run="05a3szm1xgsqj766cwwf8ssg1s2jd0kbvgzv6m0hlkvnpig13y7k";doc="06wkvldkiym2xlz47rr4f0nhlbygdqisczn66d41lsf59v8036lx";source="19jcl91qn62hr4j6fcw6a6dc0qhpqqfpzqb1d8mwibn91dzad00z";};
 tikztosvg-60289={run="1gpkypg9j6iz0i0f77drk0p373x2vx8z5v6j9wsb3bggnf00f0yi";doc="03f324pxiwyxgnsvw83wi8sh5ya633a1d6833kq2zl8z1f51vvfd";};
-tikzviolinplots-65687={run="12vmrv3hp4b3dflhn7c2gida4j7m6ldmw7j18kagvzw69wml3wsp";doc="1f5nfffjm1473zzvfnmillkzy0d3b48lcnbqxclhlbrkxp8hiqq2";};
+tikzviolinplots-66659={run="185hmygifmnydjfsg01mwshzjx6d80r92j7bh3djpkslxwp8pdyz";doc="0asisvkbf7gfwqn6wzyjl574kysjz4z088ph4pqggy4znd0yqljr";};
 tile-graphic-55325={run="1l87pqfzgyr8apcs9f2gssf5rh1mvknkr5jim98zj5f93ca5mjpq";doc="0rq35cpk9l7rc30l1hk55r7x07f96ishr3dzdi7x4d50gv7675ah";source="01xqc704g5pqwmlfifzvv61nypgvnabxv6xw7ljgv9vvpyvfh0ni";};
+tilings-67292={run="124gj42waa50pv8qm4zkal8xxr5d0kvi9wf9qlrz0chhm1xk4v15";doc="02bz0wpvzwf4f97g14rkv25x0ifxxfwdkgi3nbv6x2djbm79xjd0";source="03zb3sfygc8bbdl5z4hz7gy7wfnl54sbka9b8w7ywkx9wgymvkz9";};
 timbreicmc-49740={run="0inffnb824kv9lswj46b8p0zb36f4s3pfix4m7x7v0d216xa75pw";doc="05x699cyrkfnygbwfifzz4ih0g5nm7pzlj6ygkh6pysyzxkb5w94";source="0hznll8725wbjmayxilg0hvjw2vf63wj4cxmznvfly9lk8z5zh5m";};
 times-61719={run="13g41a7vbkvsf7ki9dgl7qm100w382mnlqkcngwgl3axp6s5s8l0";};
 timetable-15878={run="1lnl8gi2rrzcy688qb8b1ff9yivwxdqmbcfx2ph49aymkxfym97b";};
 timing-diagrams-31491={run="04yal5fdbwwdq5i7frmvxm0z7zy379gpwbc5383xn0nfdyzrq91b";doc="1w3qzl1j3viaj6qi50qcyx51w2ms23j27p17h526iz11x39w0gw7";};
-tinos-64504={run="0czfddyibqn7g62j3kqqvswwfdm1z6xwv0k0m43g30n8r61a0qa5";doc="0mg2rjy5kk7gd05lp00zh41sxapmm0bvl950r404wy1snl17d23d";};
+tinos-68950={run="0czfddyibqn7g62j3kqqvswwfdm1z6xwv0k0m43g30n8r61a0qa5";doc="0mg2rjy5kk7gd05lp00zh41sxapmm0bvl950r404wy1snl17d23d";};
 tipa-29349={run="1vax0padc42ks1b4rvl0ikfqmb5i04ii27k1711vfdbzmg87j217";doc="0wwnbarpvjcq8ibbn8sr0zqrlg3clplc9nyh46r5gsr06qgd1prf";};
 tipa-de-22005={doc="16gwc0dpdls6s2vdl3hmd6307d88gfzsa3kbw3vhl0z5iawvwj4h";};
 tipauni-65817={run="0qzwx1rd5wqrqwlqrgd7c8czsvr9hy5bb2dljf2xqnm0c1c05496";doc="19azyp11a949kqkwph7b47128fdh7k80lf9ia34ik7a9qw1gri73";source="0m5kfcjk6c0mm40mqbsfnp1ddha617d4sl44dv62nj3rkj3shqvl";};
@@ -3820,41 +3925,43 @@ titlefoot-15878={run="0c0nhhxhb3hmvg3a64lr5npbqsmrmprqqj9pic91j007k4s1in4y";};
 titlepages-19457={doc="17ib7rpb2dhb2m724x66fdzddv8cqd808wxy5kkvx0vb3rl27hyh";};
 titlepic-43497={run="1pj4mavc06r5ghcvyjjhvn7x2xrccgdfjr3961al7420ymaqb726";doc="06s1r8xy54129y7fvzaym2vkfbyw2x31r91i8cyxyra0chzh8ngl";};
 titleref-18729={run="1y2aw2m7jg7l9vcr35nd2qpbafyff1bc8acy2cm9k7fcjm4rcr17";doc="0rv9hsx5p460pa3ry50fnrcb0kf08rzdl7bq47n5nhm8frpmczad";};
-titlesec-59845={run="1xv4ha82h5mqfnfk05n6lifl25kf8zv27ps3mbwwjds0lgw6w52l";doc="1k4z6gvangc1zz9lpd0ax4b9m4wf6g765mgj5wdyjdafxg8k52ls";};
+titlesec-68677={run="0y27npwraxaryl2z7mv0fzkdci8whq8jz7b2xlk2n31slbfvksb8";doc="1yz5s63bbpkiziwggqcal266444nm03fnr7kwan14gswmqqbkav5";};
 titling-15878={run="15iw3giwxg658pzb6basjkp4v92m3qvzk1fcarnzikc649bjcbch";doc="1r75nwakbkwf32qva6icp3pq3y8bgfl6cqw304lcw8p6bih74y5j";source="1jdgyn9zyf5rwbaz004g85rr2jpd5gi5iyn111s0r22ml41ci3hk";};
-tkz-base-66119={run="1hvk92fj8w5lnwi1g16mmgdkinjscpcxbhf0n37sn8l3kpl7m9p9";doc="1lhg3zrhxhzrzav52293jn764kyv0nzb47b97n4v60v3ajgqw5r1";};
+tkz-base-66115={run="1hvk92fj8w5lnwi1g16mmgdkinjscpcxbhf0n37sn8l3kpl7m9p9";doc="1lhg3zrhxhzrzav52293jn764kyv0nzb47b97n4v60v3ajgqw5r1";};
 tkz-berge-57485={run="1c9kgzsagh5ww0zlwywpddwn3mx0wrf8yc627gjap3f7nyyvixn4";doc="07bsfmh9qyn8q9z4brd4si1clmw7sn2vh2nr8idqnm1z1jqdnq40";};
-tkz-doc-66119={doc="00awi2m8ak949r6bxzw1l69fx8gjcn4kmrr0q0yp8qghga40c6n3";};
-tkz-euclide-65724={run="01yd3jrdlpynf6qjknrdi1nkrnzmzhwg07gq4abb2sp52l0d1xls";doc="11kq025mid9phizfknq0yb49kykkzrvv4z3rpp93cfh3nc10qgbb";};
+tkz-bernoulli-68780={run="0ifjig10clmd3402y9kdpyw1vlwk9vjakanjzkzablm5zzdr0qgs";doc="1iv94xglrk07kg3jkdci5nixrz96gwasgg5h0fl345ph9rdalwx1";};
+tkz-doc-68665={run="0gf3zjnqng90kn9341xdchm1diav93qlv2910mrl1cc7vqfp47wf";doc="10p4i3xnbpyhzj32j3mi59pzaisjhj066m9np4ankzizgwv9x5in";};
+tkz-elements-69213={run="1k2ypgil01w9d79fswb1mmckb6iznc0da8fhpqax1lp7pqxhhr6a";doc="0baqnqhlf4zc22d4qh8ikzimhrwqc26f7nwjwmxh4n5k6gwwfm3d";};
+tkz-euclide-68747={run="0jb3cs6yqngv2g30sp5xw69fmy620q40w0d0ny65q2d62s46nrw9";doc="0y7x17i9dc3yxa7amgl4a61kk8b0mbyrn1v7n1bsbhva150087mb";};
 tkz-fct-61949={run="0hlcxnllmkhmxl5dwap1sb2jg822bz4glllqcv59dx7jqab5bv8k";doc="1bjkya9ssr6m4aw6rd64nniwffgz57ikz16ciba2x149f39pkcx3";};
 tkz-graph-57484={run="08kfjaniwrlw23vmz24yq9gbdks9fwcf0g4jyy98ikfqh9phhhs9";doc="1drk9va3bgq62qfkcvp5z30gvnscl7mbjz66m27wmgagb2ki2f0q";};
 tkz-orm-61719={run="020bi7dgjipd2ancqji6fa1zcf9lh9d8n4zbacy5l5nclxfiphcl";doc="1zgmsl11cf4fgkfilflw8c4wrcfwnvk1f88l90hwgclfj5q0ashr";};
-tkz-tab-66119={run="142fjk2kdv02b7whr2m5a53z6b7rhh2zfv2fi55q1sy4xaa1wia1";doc="1p0h1l1jca83j27wa79ncjarczissgp1jh9f9ylqhbi7y5mk8abw";};
+tkz-tab-66115={run="142fjk2kdv02b7whr2m5a53z6b7rhh2zfv2fi55q1sy4xaa1wia1";doc="1p0h1l1jca83j27wa79ncjarczissgp1jh9f9ylqhbi7y5mk8abw";};
 tkzexample-63908={run="1cs6x5v0f4dbwrsmdq6wjcggc87hc132bp0faxd1fqfhgapd00mc";doc="03cn9q2qq04ni6f6kvrcyy0js718bpc3di37znr47vhh419vpc5h";};
 tlc-article-51431={run="1kzizgzmi7swzhjq9dasz392wga0w1qdb4x3x812lbshzg235vyh";doc="0w07p4rv12ila4ix4pymysbig3yl1apb6cxmb2cp9ziwv9c2184j";};
 tlc2-26096={doc="1ysb233rjb8gpl9s35qql1dny5rj6fn8ssy2dqdqsn5xj9pdasyy";};
 tlc3-examples-65496={doc="01ny6r3ycji0af0cdywn2fmxd0fyz3y7afdnn983a5gy1j9rza7v";};
 tlcockpit-54857={run="0sm882jxczx8q4dvqaxnyb2wzlpxd249ayv77gj9vgq4lx9v0l27";doc="0zd8hx3f6jhm5rklhr5dxb84y17p4rbgwa7wh95ab5f6n8i5pgwb";source="0kldzbbyjvj0n60jgff8y6y27nxnzihjyq10gnx2gi62qn9bia7i";};
 tlmgr-intro-zh-cn-59100={doc="127fad3aq66rnn4jkccyw7qc8pdcwapyjb6lj9kn49nqcy3jm6nk";};
-tlmgrbasics-60588={doc="1zn4xlmichd2r6vjcasysk0vd26vrn2drmc4ng8hz8136bq5zb71";};
-tlshell-62795={run="06zjawsk91jknic542k9gw74pdfb1lv2iil09rpv9fw2i58lxsg9";doc="1h5mk09sakbmgsppl9fnry28xnzqya3bmp3r1nkzg44cv7kl98vz";tlpkg="0zvpmmf9dnjz64adb4dn615qyd1d09hqj2kvm898009697r20lh7";};
+tlmgrbasics-68999={doc="0yz7d8dw071nawgn2s38da6sp8zbrd03zzsgisfx7yx9jp0zzbpz";};
+tlshell-66771={run="17nrf6cwxapdkdccqr2sp5v7fayd00qcdczzznl7ppm98rsz9p36";doc="1h5mk09sakbmgsppl9fnry28xnzqya3bmp3r1nkzg44cv7kl98vz";tlpkg="1dvb7jjnmdh0k4dfkm4f89zapkjb31z2364m0vapmvfq4z84vpyq";};
 to-be-determined-64882={run="0yrs04ik67wj1wyn4cl3wfabczvz3ga3h7sfbhni9x4438br48gh";doc="1acxz8nala57gnc78r5aswiwhfvdckmvkv4xiwgcznb0c217wpl3";source="1fizh0inczp818vdwlvyawzvw8s0i48mkpgjydfcmwpsbf8rdm8c";};
 tocbibind-20085={run="1swxyai6gqlz8zjah2qnz9c5dkd1smpk163b56rba0kx7zcmvzc5";doc="189qi2qyp1nasg9w902ydk7rlzxl2qww9w3p5s3p9ywchvm1l9cf";source="08sr335sgs7hrhd6cbdc4dh3f8m9fpplv72fk54y57rx59l8wxbs";};
-tocdata-65451={run="02kjspmrr0wla123az64wxrfzcbyxwp8v2kqpk8c9j045v3vv625";doc="1lqy5qw88n2w6hjgl4q0a47zfrv0dmzipb537skw8xgh50ckkda9";source="0x38b040ldxyirmg8pxpjxry5fdjc91pnldhjhyp13v24514wk1b";};
+tocdata-69402={run="0qf3w3021053akx5fzgia258qw25bi0z8aqi73wwsj1prli6mv10";doc="1zmgdlivs4jvhpr6iaqykdgac8v5lyfp3gy9zd72g9l3s0j86cna";source="1y3cg75lj5f6aana3hjicnrca38bq3nbql8sj51akz509a27yl4v";};
 tocloft-53364={run="1vp3s7q0fcyfj2ksk61gxdjjnwhd62dzfd94yp7y3qfy7x8hyqxq";doc="0zjs0ldib6hm3b9msb5x7r64ddknqwf6kkc9cc82hbla9wshq4qq";source="1764cq3d9ad5gy3qag6f6wxgnna0dhk3rx186jqjpqyqli8b4lgh";};
 tocvsec2-33146={run="157m17r777cfqjn5p4j1rbj10ysbyms87jrhk0wjkahag9rgny1b";doc="0dvzcynpfn9fvfkks5idncgbdqbhxj0vp1d3mfzymhiw4sds31xk";source="0gjpdjkl73ip3jkhr9sx94mwxz3rvxaacn553xwa9gvk3xh5rav9";};
 todo-17746={run="0chmi45gcs8y2zh24072y37g3z62ixpv8cg7ck7knmkzwfzv5i13";doc="0n6dy738cj08laf4cg4y0sadzzzrz9wa9m87hwkya6c95znl0091";source="06xpbraybhf1wbl979653waznvgq697jq61xcpz29gn159li0pdb";};
-todonotes-65699={run="0r56xifccy26k5xghfsrx2jrywpwjx4hnirj2f1h6j3qhkycdd4d";doc="01p6diqs6pg1xxn2fx4fs2vczjjnlwrb6zlqibin2qazlnni3cxb";source="0sn25wgj0wnj50n4d6ybv1wnphchj00lxdb1x8yrj0i2jxgix195";};
+todonotes-69319={run="130szqdm8xx7bqqqlx01wgrj6x2wfqzynmf7pjsn953rvyd2da4d";doc="0920zvilbcjsl707vyvvdcw27qg1hjlrmjfbr3229rv9n4zd4fqy";source="1xx14nww9nh8iv0nxvnj2iwj1wm70iqfclgg39q7jlywdzpp7h0y";};
 tokcycle-60320={run="0cl2m00pl40pi6ycw1c1kndaqinrqml5gl88kh5d00dr7g9p50rd";doc="0yy8m10q7pzwqbf371w7r2x1x872idjlrh842vkxk51ijb1441a7";};
 tokenizer-15878={run="04b3jy76qdvbq9c6yc0lmq99jqcprmcfd602zm6xsr0lwmxrp1cd";doc="0lpbfdvmib9ykdcwrcd5inpibgkm99avqyn94zadbasr54k62gna";};
 tonevalue-60058={run="12jvvfppr9zqaqkqm1g1nqvxikqqg493a1p10z0k123cw11877xq";doc="04gvjaxqhqixs13x9y805dgsxr62zb4i1xmcgwr42n2a5qa4dv2y";};
 toolbox-32260={run="1qpbidjji1rj056700iyrbhgmqvw8is5kp2mmm5r9f455dmgm390";doc="17n7dxi0j8razw5s12s4drz22wd63xffx1x6w0a4jhiq87na4jq0";source="0l9w43kp3h1mbas4pab9qk6b18ny5r1k8vmm9nq2j95gm7z5p77f";};
-tools-64892={run="0a0z57saj09abxgxqgy2bxq6f81lv2d63rgnyyrcywpzmmyaq91a";doc="0shc7d8v84z7ryx8d34cs6rx5xj86n9xp2nrl6rr5w4wn3cn47m4";source="1q66d55fc8cakplsbcq5w271pkxqaavsjga3hpajrpi2sgbj49z1";};
+tools-68941={run="0hhib64h3l94c98v7x505gvc0rd1z8cqawypkbnvlycmw57804jw";doc="0r1c6gr5qcrxyy3xnxj1rrwnzfsqna9qzs45gka09i23r6x7ip8y";source="15an5rw7ciq2lji49afy28z0dyjid3sbf66pc0lfs1dxrln2ijrz";};
 topfloat-19084={run="0md1db8a7ifx2vg269y2dhcf4l07qa35jg57x4q9nsn8ac9gy4v0";doc="1q7fssdrg5r2i51b722mw6wydd17qd8b41iv9rqa7s8r9brf8f8i";};
 topiclongtable-54758={run="1p71kg4882rjzlbq9rfgvppz532s227xs2jmg8zbgplfd3j96mnj";doc="1q12jsaxs9d15qc19wjca7xhq6qajdp7573lv9dc6y9il84r1izs";};
 topletter-48182={run="13ggrw7s7k476sp8fzbj5if20wa1x75m68ip17f1srihnfks3903";doc="0f45rz9n6fsg2c429n3hmzqx4cqv9jvrhwgmbfhznn6zrlip3qy8";source="0p6gvk4xj7bsazb7ipfgp6by60br9lyha53lj0z7rz16f7f2ar0w";};
 toptesi-56276={run="00qd8ap3dgrj16g831458m2kp0jivvbvmya2xzcyp560njsvqqca";doc="09hnbj0g7x76m9lnn47z3cjjnlbbfmapmln3hi6ykb6lh534c4wa";source="1nr54n7hsij9rjn54wgnij16xgay0dda2h6vl2qc44s8yz892jc2";};
-totalcount-56214={run="0zd8h2sanc98qzhgkzgaxjyzfh969lb2935778c80n0w8g53ipn7";doc="1cwk1dnpin4zz0zc4rbf7a1spz5wzvza3nc9d4jrpxqbzgs36nb9";source="1cp1fkvs1gbif9brdwxd1dyx81ylshayq6gad4fw6npzqynppk6f";};
+totalcount-67201={run="0zd8h2sanc98qzhgkzgaxjyzfh969lb2935778c80n0w8g53ipn7";doc="1cwk1dnpin4zz0zc4rbf7a1spz5wzvza3nc9d4jrpxqbzgs36nb9";source="1cp1fkvs1gbif9brdwxd1dyx81ylshayq6gad4fw6npzqynppk6f";};
 totcount-21178={run="1mj04hqxi81i1pwjrn10ipm6b0xwv2081paa4kvq7yma8g2kmi9p";doc="1c1941vfi2pf0wsbfhhzpahyxjzb4jx4lr85k7g6r8vk64qahy9i";source="1f6r2ci4dqri4fxd5mwmfmqmw2k5jfr5vzf2mazynixxp809mjwq";};
 totpages-15878={run="1z6brrn4kb6w6an8iz6das0yykwj2cbaswa9wy2p3rfc0w95x0ms";doc="0nm7x3rv5rxg40k0xls5d3s5dqrpc8vw9g93sa3jkdn18xkxh2zs";source="1b0glns220jsmn1607d5f44k2lijjp95cd0dkxabdc3p576ipmmv";};
 tpic2pdftex-52851={doc="02nf2fg4xzh8lbbddvm44qyvcvfn5b7kzcyg729a58l29gd88pbs";};
@@ -3886,24 +3993,26 @@ trfsigns-15878={run="0g1xdyhin39sqbgi7x5m5r5786x2822sf49271arhnv58md7ns76";doc="
 trigonometry-43006={run="1z4sk50nzdplwarbv7ha3gi5v6g2sh2nf85ipdz2rbj3cnz0j53n";doc="12pm2720vyk1c79qbgk935nridg3z48cbzmzbx9ak66araz9y901";};
 trimspaces-15878={run="10rx6pcvwn1lzyivn312j76lsrw3lb40jgzyj861gl3r3pcls0nw";doc="13zf5bz4pp0lwp44kxdj1zw44h978bdpaiskbma752603jlznaqs";source="0nfwqm4a7c1ks5sqypkwmffqasjaw008pxjb5spr49h3sv7sp04w";};
 trivfloat-15878={run="0s74sisq1bg9n593az435chspj55ysx9b0vqywl30mk60hray6zm";doc="09szjgdcy2fc4ddkw09vsa2am5m98mgm606i6s2nrkjgldm0x4ap";source="067ab9d2vc3m950587iqcfismjnl8fp0jxw0ssdsz3gqxys6vgz8";};
+trivialpursuit-68971={run="0rs7bf0wba9i85sgnxms4sng83y1ckpz89ibs93wqh3fappy4w0i";doc="1zci9nn24r51fcbz6sqd81zk8zad5v45xyi6mminq0h3c9c6lysz";};
 trsym-18732={run="0crl9ik3bd9jwvy6x9sl102bvp5pgj2rq9mywlrcpbxrvvffw1ab";doc="1pd0r5j26xj63qvj7mrifcxjrzazdi702ang8k6npq0cc8v29iar";source="06aavqqczg63yc0s1mwry4nd2ml94424a2qxswcz60y57m68yq61";};
 truncate-18921={run="13hzrndx2myazl7f30i736zs8vk12203hv9rskwncl77hxrqqqpm";doc="0l5hgx3207h54s4n5193zc6ssj6l49xwx2hd9jfpqh1f73kpn6hf";};
-truthtable-60717={run="1l2dj1g6maj8lznpwz3q9qk1nld0i573npk18fm7fm2368krrnlv";doc="19kb04si61dp6fdx7mj96q842fhlrqbd33lvkp3fxwz3jls7al2n";};
+truthtable-68300={run="0cas4lh1n7y9z7b0bvi3yv6xhm3klp4bqdmqz42gh0n2vz9clrvd";doc="1s3ff2pjyls5z1ll8m3x5m0h6gf2is4pnlagiv3y87nbs9sx359d";};
 tsemlines-23440={run="1c7sjdrgqbjw6f2s3185k5rlkig643pkkahjisx16h0akbbdm4k3";};
 tsvtemplate-65333={run="02v9b1jvkynz0gl4czzizs3kj68bkwx7m5xfh5abffcy74f9b96r";doc="06ph8853hvm6xmn6zcycim7qrmr2a4vk702sicg6bh1bzcw14cvj";};
-ttfutils-62517={run="188gcwglfgl7yi4026n9l3zkpgwx034vfr4damxpfr6n630rixw1";doc="0n8jwjzm35hcmk2k677427bszp72kpwgx49bm95fng8br3i439al";};
+ttfutils-66186={run="188gcwglfgl7yi4026n9l3zkpgwx034vfr4damxpfr6n630rixw1";doc="0yabxx9pq8rj2ibzqa19ix7vz5haydbdp3ylinanzqgafrjd5pfq";};
 tucv-20680={run="08m364pqd2imqfi5jalxjrwbjnphjihnmlpnpqg8vaz2rsmddlh7";doc="0rfpmrlh7wbpmpqp5j6iai3g9x1zkhqvwfnwjfskknx5an1ad79c";source="1s0shpwhb7q4zhn6kq2010a4d3jwck3liir5jn5h0gzqbsafai11";};
-tuda-ci-65254={run="0dkksjn8xcgzrsqkzbrip6jkq55hzr4niizr0xfyvlnwb82rqanv";doc="11n920ifz33w3s317v1lz1kv52cv6j2jk4jrr6piv8mbzb1jxwlj";};
+tuda-ci-69351={run="0cblzjymh2012wrkxyh09wwax25cysiz5ph6k2pg5qjspx1a98cm";doc="0q4lj07kd9h1cqsyvb4y1amdyrabck16a9r0pwi4mkl1qnlv8dmg";};
 tudscr-64085={run="0l7m9n8n6ikd9f47jc1xp8b1ik2vq58samd3g1v0m7f48jvf36f9";doc="06g1h7l2bbabg87y97zifxn6401hf0j7ia86scgjkpjbx7p2dj2w";source="1s4y8cvn1iw77b2qklbbnpm1jkjc0sjnkvsa3savvcb7zhw4asa0";};
 tufte-latex-37649={run="1azsqa3qa1w2k0r4sp83xp9b7g1xjw47wv9l0sk065zq0bdjr9yy";doc="10h41jbfmjg7p8k3m98l2jyhl7365qym844y8f38g0f9sr1pyxvn";};
-tugboat-66516={run="1zili0n3nrn0370c3xcyi4iwjwj3d1ks1s1gmgzr36md3fi45p4g";doc="1y5n1pqaz4j5xjjf74ld2nvqwz5sqa216l9fkkpv06i8sj5jx62v";source="1lr1wwpid03isi1gck91f8d6h2gqzgl42axf1lb3g3j0zja4hlr9";};
-tugboat-plain-63386={run="0km1a0vaynd4afjf6p18xsvgnd1g25nypsdvaz6gr2jpm747l31a";doc="0jiq0jggz7x6vgq5szssq1nmphhypa4zicq2n0x81di86fpnj785";};
+tugboat-68694={run="0yj3a32shn70svaq3pjmilw9ah55rg4z3ffd47dz263qqrp5kxm3";doc="1skr54zc5z1vmmv6c9yx1c7q69z5y6a956m917ckb67shqrvsgiv";source="0af24yivq0dym98zzpz1y2xy1l4k59j627fiiz4ny3lzmgwjszg1";};
+tugboat-plain-68695={run="0nk6ycvi05lfbmr2grhdfrgp3d3w8d5di1alc7gpsqfimxh8d89k";doc="0bzv0zl27vjz4fk3nl117jjvcj7ay9dpwnvlwblq27mhj0b3z3j3";};
 tui-27253={run="0liczx2jcdks6r5040r7dqcyrcj225xq0035ccdb9kjmp0rmc90b";doc="1m73fc2nj7qsy144fmbqhld3hx431ry64jv5p7h0r4p0giadwxgc";};
 turabian-36298={run="0fjqr88a51699p57d9mpkpf2hn9rrmdchsxhpjng8hkx3yjl647g";doc="193qbhcgh63kfnrivzjyyk8vp66wb5k4791qdii7brp59xsy6l7a";};
 turabian-formatting-58561={run="0bfl9fgj0adpcm405a9b1819463nrzqplzzdlvwy6yanyqfqcp3i";doc="1dam5fm94hdyzi4ai0wq03pkarb6lbrykych3ixcsz8r2z04g7nx";};
 turkmen-17748={run="0jhg6nd47y8igsn10m3bcsn61zydlwk3g1qfqpy8snz80rkyn9d7";doc="1rs4jmqy5zrgk2awvvw8lsvdkzjwbfq65bm3m9c02158q63bw2i9";source="1kz5qhyjax82mv74qxhsiwj83jijnfhgijdl2w8ic8lwc31q5ihl";};
 turnstile-64967={run="1br0ny72qsv5fpfw4x0v7q3dqy2jgicyd97ibzpxc04mp967njjr";doc="1iv8ysamcqzc7lavhskf8kwi29jn9xcda0am0ak9s1c7nz7pb3ly";source="0aadq0w193hl3rlb1d8xv60yy0fam4aprz4j96dphnanbb9g27ll";};
 turnthepage-29803={run="0zsgmi4akjkhwqas45r7ppbx5c8i5fyvpmk6a8wmpk99ib58pipq";doc="0jkv2zs1m6bggjhf3g71g9cyvrnmgmr549fqsvc4lf8fp9kp3ayn";};
+tutodoc-69343={run="1a2q792dv19y03sv7fcdlb60vkld9z6vkkv4ad10w9frgq3ghhwg";doc="0i9h32l6smr7k1ra54ds8gh2fjaiwpgnqvgwq9m890l9f9f322cn";};
 twemoji-colr-64854={run="10k7gl7jp9l41mj6jamz26wndf3casx1qyy1dz1rscgqyvgjgh9w";doc="1d0kaq2k3svm7609x3nfm8lcd1d41rzp8vcr3wxwrl1dadjv180c";};
 twemojis-62930={run="1k58rnl12pj54g5r9rc7dcf1n33p0hw233wckrpn0dh287gf5ffy";doc="022i152bp2r8fnkwb0mpz1nhs54qxpy57f51j1mkb5rc1dqgcxqh";source="08jxkcjb95yb7pc7jlf2rcz9b2yibpi5ygi48d2ni79i5382mizh";};
 twoinone-17024={run="02na16ki3n7gcbzi45dk6nwna3dqzgxwc73aha1zncm05bnj3n4q";doc="15ldj27nb6pp90abilsybzg7hn0z8xfv7mmwrmwdq20qw8ss75ay";};
@@ -3916,7 +4025,7 @@ type1cm-21820={run="0xdbj0yivyb7advckx6k2iwbn8xqkxrlapjrqrx51jcqhzqshknp";doc="1
 typed-checklist-63445={run="0yrl1vlsly2k71svaziblbnd3jl9jpnpvpg942gg31dsj9vvsb2q";doc="165h7yh2w6n64g2165wbxhpyghwgxww7lasy1qi2qmzkxyf3zi4n";source="0f942k6pjy821851sxhff7idp8w9n8wgf8v9dfrx7mgyb2yqwwqb";};
 typeface-27046={run="06i3zhnc42zbzb5lk0pqgiwq0y7wgds4hs27jybizw9y3yhv9nf6";doc="0z9q8q87iybb4b6g1xnnryr5aihic0vdsjq5xv55i3gbgrd15kr2";source="15igfb6xy0g7jykb50086as2drjr76jcprj3kafcf347427026dv";};
 typehtml-17134={run="1lv5bl9bq1413bbbsjvh8gz1p3qd075y7asi9x0nja36rmcags11";doc="1cgx2prk9ggw3wkbabrm0sbsfb4ablglzh2ckvg5s0chgkilcnyf";source="1ihc1dq38rklrmw8h4k4i6pq3qy9dlwn7nwzmjblpsghszfivxqb";};
-typeoutfileinfo-29349={run="0w48qf9d7qh57s7b1745z6d5abc8rlgcjpmf402gqxv636589dcr";doc="1pffnydxqlkjixa71g09f7754ay0gnyphay51dys9gvvmwzv5npq";};
+typeoutfileinfo-67526={run="1006mxdn6gdmm0ssmnqnw1ay8wi0549qs7a6vyv1nrvis4v7nys7";doc="0dvglz9jw5ig3xy61syy6yghf3xjnynvkxnwqdmkfz7fgy74hb15";};
 typewriter-46641={run="1cgyi8q0w8j6xywby39g4nprg7p7p2dpgfdb58qr5nsppa2i31m8";doc="0lz81r7jv8frdgb1aglxlr98cngacacjvsa4wjzwr9cvahc1q5r0";};
 typicons-37623={run="0acmp2zpg1734c6719jpmcccyq4325h2023bc87xmj7jxqq0xlp6";doc="1r9wabmkqvzdj6dcxl9syymp0rzz8kj0lfmqn9j4njghclndkfdf";};
 typoaid-44238={run="0m7nvdni7nsmbmlbpf51cb3s4s5qaszbn7mw62dfvvawgd2d1y0j";doc="1b24irgw2779j43pc15cwpazx0mdjy2zla9n6lqvmwyhl5xnaswz";};
@@ -3924,27 +4033,28 @@ typogrid-24994={run="1p3if64qmyhflwlf4gy59wl3xajaza5xpllxy5f3a7n1pzca46rx";doc="
 tzplot-64537={run="166wxyqcd55y55ql1p7wvrb2x4mhavz7byax2sq43bqsz2h6689y";doc="027pg77h4p7vavy1s25awa355id6i2ngsb9spmj3bapr6bknsajw";};
 uaclasses-15878={run="015wxmrjfykv7j2bvmb42491i137h513q826f5czmcf1c8gk8bl9";doc="0x6krd94wrdwc1zkyvqzznwvnvxx4agwinr5fhshav6r8jfsn4rg";source="06nsdpmp8qqsrcbbcdpm82gcc3z8y5dlhv2lgwr4i01srwkd91r6";};
 uafthesis-57349={run="0fj2rfdzldav8m1ac7wv8n1k8pcgj4yy4zxx0g8sg1mb5i7if0k6";doc="0g096y6dvxfzbjrvvwpb92z4hrxp1p9jvbgkap5gra61msacqawq";};
-uantwerpendocs-64165={run="014hhy9rwbdl69i9qx5cj8470pi6nb0pam3x499rg6rysn2jyd83";doc="19g4p3h2hb4h32z2fv1jy9d6xsjscabcmk9gkci2my41fzq87b6y";source="1f7kxwadm4m63cc3wzr4nk3hp8771agm9f4z132bykp4il9agyvw";};
+uantwerpendocs-66819={run="1dx140fk30ppk96h4n751mds1m6d521d3br94ixbqybya5bc1y64";doc="1f57n9v9pbwgw7j0i0gvv3y976a58lrf4w55gd7pqgwi88fdwy9a";source="0sq29h4il7zmxksqhdnxyszmz4d5rgd8qyzhi1y7bjp8c4sny2dk";};
 uassign-38459={run="1xwinmh3a8scfgxm40505zn85r0052pcykcs0lcvazn91007dl8i";doc="1b89rvsspkgs60rkmqjad7n2pwwmviiizpqr2si02kwnsqfspqdw";};
-ucalgmthesis-52527={run="17pqf8p5wq7szg81iqmimgz8hac49yqlla40g5lf9s8f2pjagjmz";doc="1fzb7b9v81y0q8pqpvrpsbrk64831pf393hca1j17amsnv5al0c2";};
+ucalgmthesis-66602={run="1n8g3blw71qrrkrjjq867qimn58w5a2l4lnfyqdw77wa67qzxb08";doc="0jkxxfnc9npmvvxyqk3zw5csapmhgfqhzm0rssijw4d46b7w1lcp";};
 ucbthesis-51690={run="19g7wv3iypbkcxhlybizkis6yivgn6z0mvz4rgsi72zaahpxmg7y";doc="0nlpc0vm12h7pni3lw3jqq7fsh273nc63abw8yzw69crh3fspyqg";};
 ucdavisthesis-40772={run="0kdrwdk7mg3yd7hm2xmq63kgikr2p2izibfgw1whai921za4wlm4";doc="1chajx1i2zmfh4ypnf8jspwr8kjwbfv7z07qrfasrf73r775yxnh";source="08525i86hrv1387jn9ayz3mpwnh4z8kvjvb590y7gqv3cdvrsa2b";};
 ucharcat-38907={run="0xiryrx3pjx2nq01f4f0x3anx3zvkdarp87103z9zvpf6aa27slw";doc="0k1aqic1ljafdk8xralygdyjapkqa0qiainrbf982233kjqclpvd";source="08xxmm2rrpyi9a601bzxka226fnhmyqfv8cfbc1qdivn8658785y";};
 ucharclasses-64782={run="0d5rr5w322pr4bsmcp09vsldydxxm69mcpvpaf9j7z5rwhic9biv";doc="1l6pv743lzdhnxpd8bv1y40xhfg82421jyri2c5h7j4ahlcnnvic";};
-ucs-64114={run="160d79c7hcs239gjli8v430zn0xdj5x3dvinr8ci01wzsziry6mg";doc="0qnd28dg8ji3jyd985kn3hids2vvrkd6hgkdrscbvbp02y95fm2l";source="0q371qvb7r5b3bhyqj360c4qd06ww8a275aym2bdw8g62dcjhary";};
+ucph-revy-68224={run="0i0fzn556b07i46jq4mb43fhczvjh91asd71512lc2rsx12r7gvk";doc="03ab4kj1qnb9hp89kf9vvh8ca0l0k3jqzkkdxi9kycwzqm7x6bij";source="1b0v20k0ypkf7gcz0wmrbr5v4lzp97v1vvb2818bphrqj7bdksf2";};
+ucs-68759={run="07xgqkjhks344r0d9c8rvw2gvy0kwhx5kvyzkf2ymw1hiix8w48s";doc="0icaq9irpb67mipfpv55kfbdy5m7dw83h5qqq98f5d1x14h3gxbn";source="07pasmgx62jjdq8wgqgk10wkykzljj7v52xhl1ncma4idmd7l97q";};
 ucsmonograph-52698={run="1jkcyhrh5zf8p205xgs10azhp69vrz613ln9ssrb4485b7a25b3d";doc="1hhr0z3sy8vn6cv2i7g8nfpnsdpyrsbqrclc8j8g6qidh83x2y5q";source="0x465kyz3chdcj705v9gc8s0w3pmawaza93pcm8nxy3k7dwx920j";};
 ucthesis-15878={run="1mqj65aps995issvi1vgn7f7pvxq39pwxaqqwh7pxnki26k8czrv";doc="1hv02nxak4laz9az2kr5lvd97l4mcnixdmpysiz6xqvc13ivkjl7";};
-udes-genie-these-65039={run="090wa3ygl261bx2pfvfjh39cpb0r9r7vjyzc2vwiadyy9l4mbr1r";doc="0g1cm6gwhk4ndwc8rwnzmgxw20gfh07ssiwv9jli624m12ysj9ml";source="185226vgpf1wyc29cr1zsf259w67hi3aa2mvrba64pf2k131vb4z";};
+udes-genie-these-68141={run="1fj7qy5cbcs03pkpcv8ii539val5ps57pk0836srwgmgh418csiw";doc="0ikgr4zdxfi06ply66kp8v8h1p51m8fmzv87hlg490qaj8wmng5i";source="1rz05n7bvf0c8h8b278m9q4pj8vdc29i5xncr2374lyhkcx4r3xp";};
 udesoftec-57866={run="1lq0n05v6q0p78jnq1wf67pgzh214lllcas4jxlpz8hrwk9n9v1h";doc="1gd4qhdr4wxgjalxgqp0d404w65x7r3ipdkdq82lfcyclqyab8fh";source="16fgvdzlxrcaxbbk9m9yxviv8v3qhki2s5kq8j065xx88zd181aw";};
 uebungsblatt-15878={run="198bz1875qhh366ddvdxj72jpcdinfxsrb2mzirr17fq6liwbwhq";doc="0814xqw1iglvwn5y29fsvgbrm5clhgiz6ivbh8a8rayscbjwixmj";};
 uestcthesis-36371={run="0dsdzhf9pp2x4xbprii9rvl0h0jwwwd03va8mg7c3cjgr2nvy1dl";doc="11z3ac2pnxg8qqy4shmdks7h33257nbkgj4h1rq49gc2ssqmp8pc";};
-ufrgscca-65661={run="0lldcnj85g2n2na7aq6xilw9sp747p2vv6651cd6f5f4c4snqx2k";doc="1dar07m3mycp3pllimqa2hjv3b049k5mz1lnjdxw28m6pf8p7xff";};
+ufrgscca-69042={run="1jch6z0jvybza2fmd6mamc8kx4c5q9l8dhpk2r808a9zxdwhcx39";doc="1w4736vj2x3znz31qpfkmnh2aqc4khvz9zx2n3mda3ngl34cb1rf";};
 uhc-16791={run="1xvkp384p0xcba1lbi3b2najk6d2w1s78yi6vgppmcjrd5limif2";doc="0q1wxcn2zclpj4bsn47jgd78xmp82a6x8w068j4ihza9pfvbqacm";};
 uhhassignment-44026={run="0pb7hw9krpri3ky7hfshjkkbk36cilf31iv00l5iynsnrw70lwyy";doc="1106wbx02mbnkgzwwiypfz7fg1a3rmwyhlgnsxf4z081q891p3fm";source="1ck8c7jx3qkxnm0a82qfql92s05bg5p352fw1yv3y7v86z2kh6ad";};
 uhrzeit-39570={run="11ysijqpnm3b4z7pnyg7m7kpzp6fiw42dc36gxk1aq55wsv7kk7g";doc="0rln5amx6vkny0pm4yhgvnmmr9akwcrd93db7bifxdp07hjbvj83";};
 uiucredborder-29974={run="1zklnahb3inyf5qnavccqvkc02iwqw8mz7w1iam0lz2jmzgc1c41";doc="1lxyssdc3sxsfhizm3f74lxcgpkaskljqpybwl1zw8m347p1qf85";source="1rbxxliaaggn4rk6093lhmndas1xy111z9bjrgjrhjhxw19lc0ib";};
 uiucthesis-15878={run="19fif7a2xb3qrmkg8yfjg1hpisif4znc64765d6jrqgb9fqqzlnz";doc="1w20kjwdgppl39axgwks373j3dsnidamhvqy1wn3yilzfb9vjjxj";source="185mzcsh598dxnf2sb4mmvc3qy4pi43qrlim5jhn3n90qvwp62cw";};
-ukbill-65485={run="0v61h84kyimm3ljwm98blm9473bqr6y7nc3xy4pqlqh2ys6q9ffw";doc="1m0ny0msddbhh1a27srqf9v5h9vlg1kr1wc18x14dlzc7s45lhry";};
+ukbill-69362={run="0k3wwd9snv9w8mif0snbxbgaykmrj2d25kakllqc9f3gdpjfqy7h";doc="0c54c4zaznbpskycspfihpla4928w5g9w095lr6djnqb0spk8138";};
 ukrhyph-21081={run="1fnh98jcbn9l09mi952qrdw0dq0pjykwgwi35zz2lz8h8r750ihw";doc="0bbj125zb494g9x160n3lsivims28w0drhfmp0c2920cwhk4m0xh";};
 ulem-53365={run="0v6p4hj3hij0qvq7vpsbnk11rhwwlx80p3g575jy4sn2vfw5zzsm";doc="18ny9kfv3w2ag97czcj2gaqqy1gj2f7rd8r72vd7wsdihgqd5wzb";};
 ulqda-26313={run="1mpjwq43dj2am9llszy1yzz2jbhdskf14ki881j6q6h5zfwwacdv";doc="0kkxa9sv2xg6d31bj00wszkchkk6raj2pvqji930098jray3zdc7";source="1gb2r4zzr3q2kfigrb4j528jmr5paj38swhnp1dlb2dqr8y1szfc";};
@@ -3957,9 +4067,9 @@ umoline-19085={run="0xx4v6w2sw43nqrzdpww561511dcaigsz5blywqg72giw0x2v3la";doc="0
 umthesis-15878={run="0iby3d7f8mm4p5z4jgnxzqnfmwhsws6hg3yb2l0mrknlj98ww4yx";doc="0vf8ikxi8706hc0sv1h53wzpd4mfiz607hzbhwq607k4hc71iz8f";};
 umtypewriter-64443={run="1xn06vz5lxr58xi6y2qv5wa5h2r0g1xnba43x5qh5ag6bz5ym1wh";doc="1sgsj3d153nyylqz5q1mvjfh2mnll783863wsmh9n6zajkfxhv0c";};
 unam-thesis-51207={run="05lb63wclgxqr7jn7c38plhg3r806b7888zyifcivv85q143j191";doc="0kxdr723xvg0lzhmzwpyik9vxy584y41pmwy8bi7197gz1hgdlzz";};
-unamth-template-33625={doc="018vpcbxfzch8qsrrqakcxxir53nalvj39l2kn45kn26p5nfkfbn";};
+unamth-template-68681={doc="1ydaxzcwxq1rjkawlapnfipjzlyzvbvijrx98pi9yd4zk2nnqjfv";};
 unamthesis-43639={run="0wqi46mdjsl06q7hyvy4wpihvrr040f5g23bgc6lm6lq11jadj6l";doc="1l71n80psc2hzjs1lnfgpfpg13355sk9ld86104dkyrl645qx07r";};
-unbtex-64634={run="1gyqir4b3a94ssjqifhr4h72z1sz98p7g9g4p12gdfwi3bd4k14b";doc="05lawlk6qv39csv0y48f2h1rp3x8hzlrgaspiclrn98yqkb6bycl";};
+unbtex-69307={run="03pmfjv9ssgk0g4344pnq15z28mgkjr5f4jgddqdbs23320zwd43";doc="0gy3r6mp4lr8k7z93i0dx0zrr0pn89lzaq9anjmc6wnwnb9bwvgf";};
 undergradmath-57286={doc="1z8my3fwqc8rfc1843j7lcmfka2023z9k0js4ygh1m8kilc2nrr7";};
 underlin-15878={run="0gm9cikysz83sdkhhwd6x9zbs278gwfw8mxh7z22l3c0nvfkxbfa";doc="1rvryx13hyif7hw2wgb88n95qycip95xh92jdy1jm2l6pl3c5q3i";source="1mczvxrhlipisffdi9jv5m3d2i7h34jpm6vi4dbl58cg9sasc4a4";};
 underoverlap-29019={run="14cknh021b4qsymflf0mnv8q2vvhgsf2088s1g6pm8ckpx7diq0r";doc="1h1qvk9m04sp0nm4acj7kfib5cfpch1mkpvs55mnqqsgasgnymjn";};
@@ -3967,17 +4077,19 @@ underscore-18261={run="0a93sgddm7xy8iby50yficparkr6hnzj46w70madbwpjkpnfya78";doc
 undolabl-65846={run="0arfny56vh389m89jz17mr0xbdlmf3mf0wiilmkdia4sbnbv3g7z";doc="0802sqkxir6gdkxkaxh867wjc12m8apvlhycl19fmlbivg6pfla6";source="16ymhmx7by5pi36z6l4l27z1x8pkpz314jfibpc5azjmcphqhjq5";};
 unfonts-core-56291={run="0pyrnydswlqhxacwqpbc1m3bzm8v4gcl3ka7w2mppp77l8a70drl";doc="0225vsqaj8l0g1igc4h8m94cfk6wv17vlnappdgxwws1fknz0x5m";};
 unfonts-extra-56291={run="1i7skyjqlprf6m1pnz5l2hn67f1cix4n3pai6v1a8adrrx7vcfdx";doc="0d3cxfm110lg12n3c9hc88lqmx77rcsil1s6yph384scxadlg3bn";};
-uni-titlepage-64306={run="141wbn588pjavsa3d7v1c32gqgkl1rpxacn3w6v4nxb3vjw2mizv";doc="1g90i5kdikdxffk2lnxb9a446hbx67fwv7vba5v5f63rzjjqn2xv";source="0vzxcindsr31b2bdyi3zddh42l62a7nfc8lih51h69ycp8r80har";};
+uni-titlepage-68917={run="18s5vidaarmpppdw12ynb6fjc52sn5i5zr5lglvgfqmxnwx5i3d7";doc="0djb52kfbp3nn4prj7x613g58qqjf1lnmcxg1rq2y3kam4g63r37";source="1jhvh4aj2z3qzf85wq3isfvkwlf5cghrkhqq82q371zxaks2fd0c";};
 uni-wtal-ger-31541={run="1jyba7g6qmngn4lx7mrmk0j190zkjv8lw775w13hxr2yky31cf1z";doc="0kncfbrs663qcpc0nsfhf0asjri8103laj9zpaayk3by612lfgj4";};
 uni-wtal-lin-31409={run="1rc0dc1g1fwhz8qa550ykc8azzc4i748jh37a8ppgrf4x2lgxzjq";doc="1ja9a6fjrlh1lbjkcsal7ahw24w1gs1mzma6jiiw5p5kbmc4zpz1";};
-unicode-alphabets-66230={run="10zmjmbrlxsvq7snzm3p89afj4xy4ad0ni06fi9dkqjmi9l5nph4";doc="18l3zd0q5ixwpvbcx2glldp75anqkgm3ifnf3lha2iqapk03jsm8";};
+unicode-alphabets-66225={run="10zmjmbrlxsvq7snzm3p89afj4xy4ad0ni06fi9dkqjmi9l5nph4";doc="18l3zd0q5ixwpvbcx2glldp75anqkgm3ifnf3lha2iqapk03jsm8";};
 unicode-bidi-42482={run="1prl0i2a9dg5yc2yl1x1k0zmz9lww051w1zwy8cbyvk3rd765a72";doc="0ab0gym9sjllmqdclkjfbc4fh9n20999mv7z2gylfybirm0n7i7c";};
-unicode-data-64423={run="0x1kv79rzlkxlljl90pa04sm2d8gg8qc3ja6349ya73fgp8qmy0a";doc="105a76nckm016kdv8zr8amzqx9xgrlanghhnwrw78g0nbm7q31ni";};
-unicode-math-61719={run="1ix7yd0yiss2j5gm6s8njqp3287v1h27xxall0ya34ip1n85wkmx";doc="16w4qsgvgq8vi0ylivi3j5b80y4in205ysyq8xaa2ksa8rbbaa4b";source="0isg86y341w2p4a8lpsra9djb2ldn9w5cxffwzbprri33j2yqs82";};
-unicodefonttable-65009={run="08hfw4kr08igk18r1cib7ln28d1ivh6kaqfyr29sbaif4kyywf40";doc="148pgxa27w397r22j7i7sjywgh6qw8hc5njqv1phb9pggidgisy8";source="0w0id4dzq0848jynnxr342s88pjk865q30kiwd02nbr9142piip8";};
+unicode-data-68311={run="1ra75819cglkd1gdv96wzflx65bc73v46k2hmn1bxjachz3cd7fr";doc="1b8zpwd0vr238may4wv68xj77w7fiq757jv3i45yz0gir1as9piz";};
+unicode-math-67919={run="12xc969s6x742a3aay28354cpvam2x9ack1396q2hk1wdhg846fl";doc="0y0sacc4rd4ilzjfw10v058wv626wlva1kzrbrbqxsclq3xcm2fy";source="1wr1hrxd63z5iisdw6k95qjknl3i917y2dmnrflyn0afvl2pxjg8";};
+unicode-math-input-67089={run="1gkamvcr38zh9yzvhbngi4lcbmxsrmbidg1rq3mfs51qnpwrkww1";doc="0p9k80mymz1dflsvjjb99pzrskwa21fmvrj3zmsxdmf8vzq2c88q";};
+unicodefonttable-67066={run="19idvgz9pmwsjrjc09z9njpnffyyaf963xcz89dhzxcc2k6v2wrp";doc="02jvkpcwhf5bxg6d6pxl9h1igx01wkhwm7rs3ycid8vf9ydsvl77";source="1lfjccv4h97vy34g8shh26rw9ai7h7f35xywri06ch3vx8gsmlrl";};
 unifith-60698={run="0plwq53cp9rsdsjd6db1g8b39k5czzdsmmrfki7ckbgiw317k7w4";doc="17q97073nni7x2d1zlplrwfvnxw9pkjgk79jwcvbgfjq09cq374z";};
+unifront-67054={run="04rm3pia1x68qm5kabay70fr1szrzvg4bzk674din4babl3nblal";doc="1d2kmwfa7cz009wfc713my93v3pgh1jcqz13jcy65f7py86qf2xp";};
 unigrazpub-64797={run="1rg5b9f3679qn8jaaqn29bfw3qgyxgx3p3zxi7vsr6kn6ada3j82";doc="0hpjzkdhrl64g00x7jb55wf5mz57gab432vxq3hd4igffrxvk88m";source="0mdcp3f8by29abbclsy9ndydgslpybcs5wqbiz5aiy5blp8d8abx";};
-unimath-plain-xetex-66397={run="0h81w9pzy11mnq63401m6a8nbmz11xxvjfawqmnyzzgpx0v0n7r5";doc="178slwilm2klrln2q7zm42xf6hanc16ksvrn6hzfzsda46f5mrsn";};
+unimath-plain-xetex-66394={run="0h81w9pzy11mnq63401m6a8nbmz11xxvjfawqmnyzzgpx0v0n7r5";doc="178slwilm2klrln2q7zm42xf6hanc16ksvrn6hzfzsda46f5mrsn";};
 uninormalize-57257={run="0ai1w8n010sq2fmwvp7625dfmmlvzx9d67ji34zwxdl2cyjlgsw3";doc="1dksyk07zjmwbzgc7c2d5lz7fkvrllbj1nrpb34vd54yxl4azgip";};
 uniquecounter-53162={run="1g7ix0pnd52dsykq5na5d4kfi49zm8gmampf5yn281mn901p3wjc";doc="099clvqs76hiwl8i2gqj2hdmj2m77v03pc82sls2xpwvrs1dqd4s";source="0cgpfgv4yybrq1ryhjrzwfwf97805dw6if2s1qivhry94lb96vn2";};
 unisc-63178={run="16drn07j24q41a99w7cgf69d9j21if2csf4lplbkrvjnv5rnpdda";doc="1s0xqq03ccx4rrmds2l9sz7qphnh9wsimxmghmy7d1slmfwg2g1a";source="1mxjq2s5ns2lhrrqy3xwxlnn3fcb206gvbdvr75kagzqb61rz5mq";};
@@ -3988,22 +4100,24 @@ units-42428={run="0rblvdf1cgsm4fda44vvldy6my58dnars88wv2blgnzny8s00jhn";doc="0nn
 unitsdef-15878={run="1ck9awf9mzjhq0x4c3cpan79imh7ijpffii90955jc78h3bhcwkg";doc="15svjszg72axskaa3yg91gvh9y01s1nh5x6nhwqbr9mz3bn3npck";source="07v6xpwkag6fp8p331gcfbb0p1ca36rvrs9kbkayc986k6nds688";};
 universa-51984={run="1r8rh4jbx3lxciszf93klg3zwv06qqgnzikhp11c2qmrjrk9gznh";doc="0acfyvdbqagda11730d5bmr5qlfq7hiqw7dajq143i54k9ln8mvi";source="1ydba7wjiqnjc8drv5j8skv5q8hjrliwd38s6xj2jd12i0zp3gyc";};
 universalis-64505={run="19v4kl6xbqj5lpxlpjghnnhs2dnljzzr71pvw90z71n6wncza5gh";doc="0nw6c17jvpyp5lvarj2hf1ir2hwc54ns9nflw4zpgz2ifr5kr1ci";};
-univie-ling-65651={run="1ffslx4ry1aiipp4bia6idfkf5l83bk9i47768wr4kja8lih4rs7";doc="0zy7cj2d00jl4acvwr7cvynyrwlk45j00zachlxg05cfh3g24i07";};
+univie-ling-66728={run="1aqh4gpxg8ryx6lvqwiz1m82hsjf1g1206vqfl3kml3vbkylv21i";doc="1p9i4gy6wimgfwcwffqf5hkpxhj2knn7ljfdx818rscrjrrf592m";};
 unizgklasa-51647={run="0clwxzngdy6n7iwk9zrn21i1frmahdf0s9qq2nqlhk4h6rxwb8jb";doc="1q7q2fpgpjdsmbfj9zijccqpl2m6n0dch72wl05a64hxg117jbl4";};
-unravel-59175={run="1kixvhz6l4mdlvjl8823jqa1fzx7m0w5vcznflcjww53n7jhrj66";doc="1lafb702nv1103kap2yldigp5y6f4hmszbcs1j4sijdj44cxaaa4";source="10df5gx6idfi23r92p9m8axcm3lisyh94xp301synr1yfpyw80zl";};
-unswcover-66119={run="05nkk3xgpjcdlsk8xrj0mn5r3kwzi15awish2hd205v1rnbjiaz6";doc="1jsxc55wrfczcc9mnf5yl2yqbbzbk10jcdly5z5nyfvg51427adw";};
+unravel-69308={run="0n440qrni1qnbhjajj2kd7zwgv8sk73bv4arasha05xfic0g3arf";doc="1smf996jz3iy82p34b0qjmjnpipxdakp0b9yk5qxv0rbkiwkhymc";source="0hb343svdnjx8czl4x1wlhpmzhrzsslykpnx9aywpsgn2xabncnd";};
+unswcover-66115={run="05nkk3xgpjcdlsk8xrj0mn5r3kwzi15awish2hd205v1rnbjiaz6";doc="1jsxc55wrfczcc9mnf5yl2yqbbzbk10jcdly5z5nyfvg51427adw";};
 uol-physics-report-65761={run="008iix41i3zxghxmxiyky0cyfn2rzy8q64f49dsj6nvixp6zlf9d";doc="0pbl7vx7xvmvi7fx7l0mn98hff9d838n19zx7izg3xgrqalygpgp";source="05rd3ss59gcfa9i3lpzfb6f8rhnmx50868si3hys13pqhwb7xkn0";};
 uothesis-25355={run="1wgs3fxg01cxcpnhk43ik12sjdip77fkxdaik6w4w926i8z0np7s";doc="1zmpx6biaxlm7fys5a3qahglpbqgn6ml07z6q8vplyqgn213hd6d";source="137c9av6i6b6hg97wmqd2iwqzd1dq6lvg2992wnbm2bp2m9r20zl";};
 uowthesis-19700={run="0iv9s5dfmbrhxbx4kqbhxjf23rln4ymcx4kkk5fmc67qi51i8jnq";doc="1xcqs2h6qs2lca74mg1jvqza77xrph53bk9dwkk0bprhkxn1all1";};
 uowthesistitlepage-54512={run="17xh2myc3xj2zwbc7jjdmnfqhmhzkqj3dwwn2q04hcyr4bm7vnfz";doc="1gm1clfvd0g45fpgf6h4nmyy2vrc0d9lqfy9h3nn2pnh0ki2z0ir";};
 upca-22511={run="1px88kyvr7jkzzcbd32pi7zlak9wwzf3b55yhnh9bi03pk0il33s";doc="07gsza0vhs52qjj8im4i1fg2v2lch9iwk424ik9c1xak1v7s9d23";};
-uplatex-65305={run="0kmw51xvg44jrzn6r1w2biz2d0m3j533qadi4bfjhf2dzi4jdg61";doc="00p3h87c5mc94hq8wwald6axij9izflzarszxanavdkh3dhggg5f";source="01gpwxp81hz8824y1hffq6b035l0pxa8wyfkjm9kh5m58j52s50w";};
+updatemarks-68163={run="08x63a7hg949dcszq5x03kwc1408bml78mfrd1p36vd99gsiakv1";doc="0lsdfdd6nkl21pblpax32gw96mgm8l34gp2m7h60fipj3garfb69";};
+uplatex-66186={run="0kmw51xvg44jrzn6r1w2biz2d0m3j533qadi4bfjhf2dzi4jdg61";doc="15b338kzdd0xbglihc5hf92mv3jwmyxp2pf1nb9l75cxnqfglzjl";source="01gpwxp81hz8824y1hffq6b035l0pxa8wyfkjm9kh5m58j52s50w";};
+upmendex-66381={doc="0mj8nmqr3z7b802kvjmnkckq89l694an7s639yghf3b9b5v7xihx";};
 upmethodology-64613={run="0r7k223ypavdbywq5fwffyysn68pg12dgp842jd22b866ffm13pj";doc="1vw9azpz8vwanfg60vr1a9bbx39k8v6jhvn505pvmf8fqgkqd9ch";};
 uppunctlm-42334={run="1a71nsc5dnaa8gb4xmnlhvdsvid2h9gwmxr0xa8blh4xd0vwi2d9";doc="0d1qs7krblmnf9r2afvzx5ir94aqgxv8p2d9sf9p18nlz9f5h06q";};
 upquote-26059={run="1zglh6pb1fq0ipsivhj0knhcwcg04mjkxca5s2adbbfk2xs1iqgy";doc="125756iaikya3v0wk9a712klp39ndw7i68bybnrif2klm4c695lm";source="137lbzacpmkm1fdmp548m6r83mnhclsrcyqk1s0rkp558fpnqpp1";};
-uptex-62464={doc="048c3rg0vdfl9ypdazrpl6f2sr39k6hph6lambsh0q3086bv2zg9";};
-uptex-base-65802={run="0g1ihpqi9im0k7zg8vmwzz8mz3qpy2nfgsq5r7kidsar4yrqcj1m";doc="0ndk6z627a61zf903nfqcv7g10579gbvy8dqrvdjfj86bxdw5h41";};
-uptex-fonts-65657={run="17q19l0l2v10h0ghh8kflr0rxd634q55m0z5p7n93nmahjmq89fw";doc="0xh25w91m8xzpkvq0c38y30gslzrqwqp0vmmn053nawkmsdsfl3q";};
+uptex-66381={doc="14hn2n6jbibbqbdr72j74z5bz003jnlabi3kja0f0waxhas680gd";};
+uptex-base-68298={run="0g1ihpqi9im0k7zg8vmwzz8mz3qpy2nfgsq5r7kidsar4yrqcj1m";doc="0sadkwyprlv4i2mh0mxcf2paslskqg400xzwnndycx99yi9bvrvk";};
+uptex-fonts-68297={run="1306b0nq975iskifmbj0ah66dh969sbwydblhv2gywy0yddkg8x9";doc="14m7l415n7ywh0k4k6pnq1kf9iw7x0xv11qvi2n1azs5r9nyw302";};
 upzhkinsoku-47354={run="13fm9r3s01003n8ykbq8plx3xzj7p9bz958ylkl9f10kd9favr57";doc="0hd55x231kpcl1rmds601a2k1yzvhvfks7sg0424gzw7wirhns75";};
 urcls-49903={run="15hnqy2fxqblr9db4h2r38v1h4iwhk5kcm8qm9war1c1pgwg2a6l";doc="0axb3cpbqbksrixhksdhbjyqyic0176lyxxk5di268jbr58203xp";};
 uri-48602={run="1mmxhxm4y7qsvq4kgdnq2vhid360gcgq0yxbcgw46k56hxd61kln";doc="1zadcddyfrgfbrsyl4461zwz8g3rjwypixvmi5ny8f80z4igal6a";source="1w5hbpzc5xka2z834hnzx16ky0kdx3x4y0xxs61l9gx0ygqkzbpa";};
@@ -4020,7 +4134,7 @@ utf8add-61074={run="1xgp93wcvb2jiaggidznmbp173w0kfhwcw2bg7829hl60vhqnsjh";doc="1
 utf8mex-15878={run="0inwvyrizq3mr4c78l036ib15d6v2bnrakm08hvxx6ck753kn1hj";doc="1nj94nn4s662jh2wykvrwkiiv2xzg6v8q4iax18d20p75yfcn3v6";};
 utfsym-63076={run="0w72bcx656rdkbgndmshzd6ackh1r6x6m2f6bjrc3rxkmhvf2awc";doc="17m89pxzhfrcg8b3pai9bpivypmzfm0ck0pbcp38nabbnwk7bmbl";};
 utopia-15878={run="1hsvl3la37nbb0b2q9995w1hlgvrc0gkyjkgqbsp99rk0ry392v6";doc="0yyxzyg38z6kip43gxlj3j55rdabqjrzl33yp1z043rblfw5b9mc";};
-uvaletter-66335={run="0d5g993axvin6lvhqw9w9zkyhpw9vm5qi9k3mnsdgawhxzziyib4";doc="0w96kc44y0l7vg0229cs1wy4s5gl6z0lwl3lr3xccyfw3vyyfaih";};
+uvaletter-66712={run="0qp48wng88fqkp1x0c3brzkr9f7p08pvbfws46dzrddxg5w4nwvm";doc="00g32zdkyv5x3hzhdph754f5mcqicgzqvcwigxf2dz9shb0phgk8";};
 uwa-colours-60443={run="0j3yywmr4rb011062gwaz4q56jcizblah0a4s3xi2gh0jycdfd1v";doc="0pa7a1ic7am0w1chl6cx778gv86pf38m12s0xdpz3hp2krkrjxwx";source="0h59r1sxqsgsl79jvm8q015mck28z89c595lkpilymahfn3aqi88";};
 uwa-letterhead-64491={run="0y59djz26f6br8gpdaxbzx0sm6p4gjyvfdi3g5w2rhvzv92w81is";doc="1kj991b6w3f6svzf130g4zb58k1n1fq18jvvradrqygvgrj8lg0w";source="1ysgg1idxm0h3rslw94ih10jmb85n445rr2cfzx9x1fhl2zclj3n";};
 uwa-pcf-64491={run="0bgg42n0sbp1hslwrrc8xclxpj87sggicxhmcijiijfdb88g5cl8";doc="0r8cmhy9laq7j40vkgp9v35xsq27xn5akkj97qysi844n4dia9kb";source="0sm6zx16yyi4p3wwfsyzgp4w7p53mqi5gbl4qcjj7iz373mmy3lj";};
@@ -4038,29 +4152,31 @@ varwidth-24104={run="032izb0vpcwiydg7lli6hnawij95s5ygkwdp4bfk1c9j17d749cr";doc="
 vaucanson-g-15878={run="10dk1ff3swbnx6l6c30s1ryn2dbyx9harmrcg7whmqdys1mahsbq";doc="1dlf50f0hpislqkcbr685y5xg7iz2y6zvlzjdkjq3af4qv7ncf5n";};
 vcell-59039={run="0m9r0wldir0g8y32aikm2il8qsygsc3zyv2zkg4wn7jqlidk6f2i";doc="1zrhf70s70zxm5ck22vbi88vpdjn6ba6iay88f41x21f11l536q5";};
 vdmlisting-56905={run="10fzab1jn6hk6ah7h9kyv9cyrv2l0gvlmask1c90njhvgqi2526s";doc="0b0vrxv5mlf721mfdvw46ixidgzh0bq88sgrvxb10y05wjcjqiwc";};
-velthuis-55475={run="1ki27wimj82h2dgw6c1f6hs93yg794j711x1w3vmgiwz3mdqkzdf";doc="133f9scdzjncbvqqf9c5nj6vjszp1f235vrapg2pjlg018hlhv9x";};
+vectorlogos-69010={run="1sibmv30czwrvp850d6zgw30daxjlz95wm3ck0rb4bshjy92rg9a";doc="08hkajc2hffhkn7zg7sqqcjc3gisqmkx3fgy43vf7vn33wa42n28";};
+velthuis-66186={run="1ki27wimj82h2dgw6c1f6hs93yg794j711x1w3vmgiwz3mdqkzdf";doc="0af9p3rq7d6g0549sj74vl3scww6ia88vwzfv84fmkysa6ph9n2g";};
 venn-15878={run="0kfq2wnjsbvk0ciwrm4923fpr7whmzyv240r4zps41vzpc4mykiy";doc="0izj8qsnxj9jgslwzz37xwr9n812y3cxmfs52yd7p4638qid50im";};
 venndiagram-47952={run="1v4hbkc214fjh5wc2myqxa6jcvr6sa31c7nz9avzj2kf40kp3ip0";doc="0as35w7fd9xjqhrr3v3nzld9bnhz6xg7rqgs2hyzx150xndy6cb9";source="0ci3ajx316b6iin315z1xkdfmxbbflnj8sf2ww7gkxf853qakwlc";};
 venturisadf-19444={run="0a80pz2ng6grjj97hgk277d25ijgc7swjjsr4rjbd1ljnfjdvf51";doc="1b50h04xl2nwlpclfxl7m1wnyl1ysf9d7p8jbahglnxaxxn8ib3r";source="07isrwhzw538w4asc5baw6wbfydzdrflrp3pk1qilq3a5wcj1n00";};
 verbasef-21922={run="1bb1ddwlix4v6knmz68yy7i2jsismqdz189p1664q78h12rxcpx3";doc="1rd4mhi7w3nsvvx0zxv43nd4ldw7if1zadh0xxbzbjaljypmshi4";};
-verbatimbox-33197={run="0sc53aigy5jx7yvxpms4f0s9msn6szkqmy2jm2ydh8ac02f2lqpb";doc="1gbli0qqgff2ph1lc6nhykz3bh8f0sl18rnk39jqs4xpzr7m641d";};
+verbatimbox-67865={run="0pgim93ifd9mnrx7fkl9fprgf33wp7m5anms8qgzny0lxsm1fafz";doc="1v32x3j5zc8yl7rgxn3j40p53x4f1y8abr9w5fj0bwhs8qawv2xh";};
 verbatimcopy-15878={run="07syldn58zwnwxwdsmq63qgr2nb0bkl9di09knska9jk0c50ql1j";doc="06awpisb1y773xsijrifh0121pq6fdzp2ai0snxny5vrpmyp412n";};
 verbdef-17177={run="1dy1h0vcknnizm2f3zggga85slga5p77aw3ll5ca3kx5qxp1xqhl";doc="06zh9v72ywrg84wlb96p0y28sn9919pn2xjgqhaii6irdf3hmlma";};
 verbments-23670={run="1iv716hb41cy7bc7bk2420lwdykpccyg6wxvbxb8vk904fsgdk2a";doc="0hzrzb6m8iakip93in80x6k15b08z9xwjrbki12d28xdadqkpqcc";};
 verifica-56625={run="0i5bh8j5yjvql6mywfs617mh3pywnqd7z1m6158r3jpwyn6ki25g";doc="0sinc5ha8k3nk307q0piqwj56r2bh4pbxxyww29ygalfqjr755bb";source="1zn10fr9kv131w4id0djycy7492ch7gis27gbr5r02ydwm7nny1c";};
-verifiche-64425={run="035mcwxs1sj9y4w0dq6rfwph6smyx7wqsmcdwyy6k3crwgams6sh";doc="0dp4wvg3rv9z6hg2kdb19b0p29l9b5wscdxx0hxb7d1qb5j63ihw";source="0608i77k8rqryjkiqg460m2fz0srhvl4nkabb6n67v10arh1gghk";};
+verifiche-68023={run="1fzxa5aycqxnzvvhzwprvq0lcdgvchdn5gnwbzbfnsg1547l6kz2";doc="17f2r3l9252bijlips61naj0wzdsa5ghf0lkyni5xsiz0s2jc4a9";source="130hq5mzia4pj0cdqcj3w5fhgcsd0hhmv83s6an6ia5rzmb14kzi";};
+verifycommand-69389={run="125r3ncvllap1vmnj1wz11ir10223fvbgsy233qmg0kdclnh4v54";doc="12j8v0r2jay5f1w20f7yi1kl4jdfqrv2ga5748xksds7jj0x7im3";source="179642vhwmgrmlvavl5naxnj1a3279clgjyc090gqw8vg8hbnccq";};
 verse-34017={run="19yp18fl88zcph3r53ajbnwcr8lbvgahs2kfdg733l5zw3k5pj16";doc="063lkcis5m4zs509hn4z1zg1faz1lsxvjak6c574xasspm45v559";source="1r9pn4dqpr42ng4xk899kxph5sci82dkdx834lyrhi8lsj32g9b4";};
 version-21920={run="19b4h22lqvgzqqm0pivjjhmpxmijrr5rfy0xc9g9y7czsrp810hb";doc="17bsgyjvnna790nz3x94wbwslxkkz3958vj2l3jbyphm5vv92fxz";};
 versions-21921={run="07bxhbpsqgdbpwph2w7gam699605m181xmj8jhpcsf4rwcpnjik7";doc="0pjz8nk7dnf2jp6yixhi55zbrlmhv477qsx6p52dwkf74vxgv5ki";};
-versonotes-55777={run="0kw6ydfy7fycfrr5i8p38farwjrhkfvdlvmaxcxzk0cgnn7102mh";doc="13crgm6g52n4d92rmw7w08j1c5l2nnhp17816w4csb3fjsrr83w2";source="0vvkxga9jzv87dzsv1rac75x147lcf84mkfcx2npz8sbbsc1rj9v";};
+versonotes-69249={run="0kcfa9j99jpw521sz1q0w9qfjs76138l1rdy9ha4gb61m5r95008";doc="0z0mpqrz3n8lp3wf1kfzfmm39n7rwv2xxfvy4x76a67qdjg2glbk";source="1h0qkcpps65a8qcbzskbghsdnqvhgg62yk7ihmv487a8lid68js0";};
 vertbars-49429={run="0a5fc0a4z482fcxx27wrn20fsdvx9xclsy36623h80pxnfw49aji";doc="0y8vfa23ld199r45pqd56rv7b0iskskpaqc08lix2zss6a082iy1";};
 vgrid-32457={run="0yb2hr83xvy19j43kmjrx9kf2cadyairjr45vg5a0pbr9nwpzdsr";doc="0ymfdbqws78n3mm9cbf7zrcdbn4hb9pzzjsw77hlg023h4hkddh0";source="0rwsi6lmd4yhgpa6605631ld2bn8pzij7radk8vhwsa1sn19326g";};
 vhistory-61719={run="1m3k7qhrkxa52hky57jp1p23sa2binjfkywv51hjfkz5cyhcqi3r";doc="0f8agd4p659ncqx66yam1q30jaxx20qcmg649w3vy7fwf6crjiyp";};
 visualfaq-61719={doc="0fjx5y95n8bhsnwsw34sazbgygznvw76z01rrxmn1bp8za7751n0";};
-visualfaq-fr-61420={doc="0xk0qly49dqkrw1qjhnyp4r7y5jykghlp1y26hipghlaqqhdynga";};
+visualfaq-fr-67718={doc="0xk0qly49dqkrw1qjhnyp4r7y5jykghlp1y26hipghlaqqhdynga";};
 visualpstricks-39799={doc="1wfri908smlw1ngqq1mjll2b80b29piicqmv67x0xs1v3kc2sz3s";};
 visualtikz-54080={doc="1q0a1mhc330z8cnhghp2p46bxsmzz8cdba8hcvssglz0gsq5z5fc";};
-vlna-54074={doc="0g6x2m8c5mjwjfrbqcndjj45alslin7a0vqasc1j7rhfmqr3issd";};
+vlna-66186={doc="0nfb7mj6y9d4n89z59ppi96grfylwky97mxcv9rjflr5kpqlpga2";};
 vmargin-15878={run="0k0qp68wnfr13i2prx64n463g9xa4cf6y656m2bc735pvsa5ln78";doc="0l1lv0szznc9l5jz261nkcpq6dq28869s6h616rama40kqpdm0bh";source="1vwydnpsd5ha4g86dg2q5s012d6l3yrksc580m41q3i67npb8chb";};
 vntex-62837={run="1857xywsc16rgarwhj30jk9mfdw62483g31gsir9rgibpxdjchsh";doc="040364kv9mizvb2bw22in4z6smzplx7jg9wac7h3wl7739qcfwgl";source="0f7il38l3yp8v6yxgg5mszgiki9z0as1s1i99ky50bvvb049x8zg";};
 vocaltract-25629={run="0af79zsabml28hwhf2nq19s1sf7p6kljyvz6c2zlbx96a5k9mjs6";doc="1sjvklf54r6znggylk2wyf1fw806v8msc2g24ibv4p1ia3da2giq";};
@@ -4073,46 +4189,48 @@ vwcol-36254={run="1wfqcin8xmxrby5mxn9s5j32zmr4ka4k0h9ps4kdddpq238db89n";doc="1zy
 wadalab-42428={run="01lf8nlga2nycr23xpzl6xas2nlgajjmia4lk4zvjdgcxqnipfrq";doc="0m8x6plkry0p3jabvhgkccb2rvlsz941di4ihfc8schkq7iyjlxq";};
 wallcalendar-45568={run="04rck2mzvzpm2f934iz4nni9s5w9g7a0qcp3kvp3bsqa6nhhcf6v";doc="1b2nn4cwsb6vi29a49cnnazpzffwbpyw48wffklv11frbmk74dnj";};
 wallpaper-15878={run="00cixdnwr4vpfpqfdcbra4gwz0i36kddak8ywv8l4q4d4yd567c9";doc="0ngsn8an7gqzkw96sdxb4q24h7bvbjw0gsqk6dzrdphclvsjy8w4";};
-wargame-64797={run="140dp6vz4sxymwaqv8acy2l48npxc2s668qhaycgv99ycpqlg4is";doc="09p0f9zpgx5kpp0qh8bij5k114497bn871qiwzrcwjlyicspqh0k";source="0kblmmv8bfrlzpsz2cjl0y52bbrq2sav6n8r5mim1aaxgr2q3hk3";};
-warning-22028={run="1qmymyl01vd3hqvgkzzwffffawbwms0zhs0na7nhvlv59f1316rm";doc="1d27zqh4cn9sa5ivp5a47d8dji73dzvirp6pl7cgcihy62ll34v1";};
+wargame-66713={run="0gck1xa19pqmccblad9lpgj2n4wvlka83grd1qgnkhvwam185r0k";doc="0swifh404yi2mya0xv1np8ga9m8bk0nwrc386bpzgq7s8i1mmlhv";source="16zz89n1z9wif54xs6140xn9rmi9dhaas9s6yjwy6z52gjinsaga";};
+warning-66616={run="1rsqy10fghs5n2zb3g378csxykrlympd40g74wsz9v4aqb5a9xf1";doc="1fsqznifd2fj3czhhhii1j1z79f3vdkjhf46sdhc67y2izqmg8rj";};
 warpcol-15878={run="1dr0ic0pskvw6397q1yy1ibbpl1c1kndqaw5y72zzzy52x4l4j71";doc="1jc7rilhf61irh8kgc437mp45ryz0yr63z11r9ixbsj04dmfk2xr";source="1lnd9b42xyzfnrz94x10vxrmfy6r2l4wlxbfc1c02fmnchj2wq6c";};
 was-64691={run="18yszyvcv57im6qk8kyck21mzyzwmlzn4s64jlzz0pdzpjhn7sxa";doc="1dv6d27zlvpb1kc8qlj1jxbq08czxqrfq9l0ahqdcrl3fawdgiv2";source="0ylf9h95ig7vy64hai9skl7dxvkf0rj85syhcpf9a2p301hchs35";};
 wasy-53533={run="1gvk9gdx32sm4q2f2k4i6yj45c6zyf0hjkq7r6ysygmd2zsvf9lh";doc="1ah93bb5gr4di1jbq316cm4d5iaijj4f06vcjj4x44jajirlaq6m";};
 wasy-type1-53534={run="1zkhqyh72q1w6lr94a7164myp5qfmj119qim58cal1h48n3wypcw";doc="0rhkbkmn7xg044aw1cm44vbwiqfpcixpdpcdvz8yq6in8kmgs0lv";};
 wasysym-54080={run="1i8pvf5yfw5j0rkcpy6v8czvr85p1yk18c8h18iljgsdvfj786h7";doc="07lhw9ss609gjlhv9f0bbyv3z327v3jqblfwhcspwg2sjvazzx8l";source="1i7y0si6mbd6kxbbyvcfak46hrcf95xv8x6nc29nc6adqjbygkiw";};
-web-62517={doc="029qxwfgv5qqvwvamc2y94vkx7q510hqa3yfkaa54cwzqsmb9ksy";};
+web-66186={doc="0iiyzzrgwakw7ipdnwmjwcrqayzq4yn4786zlr9zirmmj34hpamz";};
 webguide-25813={doc="0wid2sxrif3mm3lrs0s6pil949byviq4d7924yzvmf9hkrs5f03v";};
 webquiz-58808={run="1bl334im0jvsyx78g6jq9m8623xyr4xz0avzfaymhs39dv17wsyr";doc="0lwc3r3w2d7lzz39ilncbckmvx536z3wvz84jlnv3flm2dll2z7s";};
-wheelchart-64373={run="07v4g0vl7jwny8v2d3n7xkirdsgc1n0bibdq5z04jbfvhij48lwm";doc="0zyzc88ghs4dsk0kvb6r0rp2d9zhcbsasrnjlkdfplyhyhc2vppg";};
+wheelchart-69040={run="14m5nrs3iv6hdryi9xn3yral2pr5vbabwzxq882x8qfhm4c75ch9";doc="0dlffrsc1lyx56mhjnxla20mf7qh2blybdw2xnc1nkvw59yj4dc8";};
 widetable-53409={run="1k1jnl3jbrbcc55cl34wj3znfay2wnf8k8sgdslicvnan2j717zm";doc="1giy0gvhngsmfwc87j9k2p820j6bm2mc2r1kbcl4ci0c3383mify";source="0krkcnxzjrn7lqd0qh8lgjixfpd3c5glvj1ilqhak9ifd3lq8r4s";};
-widows-and-orphans-66534={run="0q7125vnly2ky6w2187dzhga2p6bdbsv7ql785ns4n7frnqz9g11";doc="194imvr58m34r3lbqzgws1g8wlhwczgs1wwwlp7gpj2wd0bicxxn";source="0cxvqcccgzskczp7n3hp1jwf1qklwrnbfb2g7ikdirzblscbc4i3";};
+widows-and-orphans-66753={run="189ch6wprsw4xsyk79pm03kkn19h5rkqpfs0g0p6kj5jg39x78xv";doc="0vzcyzcf8fh83llravv0iz739ilr15qpjkgyjmb95r0a9zwx044i";source="0sf8picg17x58baw36s0z41p7ck26439wjra4mbc6kl6gh11jqmz";};
 williams-15878={run="0pbij6hwk82pmddl199sxin34fk22wzvgfj0dpjsg0i5qrsg0qcl";doc="0vvz6fsh4vlhwirz27gyni6xnqinhl6iymgmfhlcc808y7fawcvq";};
 willowtreebook-60638={run="1g8v5am9pzabiq5l5306q0s3a9zmyrdx5s7pjbpph08bhqfhxvvj";doc="1368jr8d6444bnalx4p0by1133liv7fl4zpvafdm0a6gz8b5n5pa";};
-windycity-61223={run="1d8kywgr02z32cm8clyl5h3r7h49r5x8gwi41jiwyzid42jln0hf";doc="18qhpg0gmwnh78gvg8zkbzjiy9kscjza3i1d5cq4jifldv5cj574";};
+windycity-67011={run="1r395672jacizgwyk2jlf1af1np4p8i54vf4g6lii5yv0yhx6pmb";doc="0f6c5pnm31bdanbcjn5p7icq9qbk7j07sam6g7daj670z385lx5f";};
 withargs-52641={run="1b49fag0ivb5srlsxcbmy8ssqsrcbgadkvcxd6xn9l9bk28wpfwr";doc="12n87c9181kskqvx7bzvqjimg7agcm8n2z7rxnh1g4kh9bjr57ms";};
-witharrows-65841={run="045wa8y7vfsdgsqrvcr3yv8qs3hmjxgzmqkq3zl48pqd0f70slbc";doc="1656ksizv7lvbj64xscrcyi2zbqyihzjxhphmys79a6cvcrr1nry";source="0h8bwm57s9n0npa66k3lf4in6q2mfzr9kwndqyip697ij9zhr8ws";};
+witharrows-68047={run="1z4v7vr44xd2c8b86am74xi41796bv4gql41hk1zldswz6gw8w35";doc="0ycg0p5a9vzz7nihcsb49vdcqnwzvz6za7dibbx7am0crb4y9a38";source="1vhdm893g8zk7aqqpx7wsy35phaffpfhd2cj359z6k3r4km548bz";};
 wnri-22459={run="16hcapjdb5dx48gbcvk2bkpnp1w9knswni2vs8v1l9shxz03nnxa";doc="0wpf06is1vkaw4ivhrz4hfii3qrgs71cawgn1fnm8fdzalgb2frc";};
 wnri-latex-22338={run="06m6xwvm1pxz2bjf2xa7k3x6m70p1f5866wn5imipmhw4wjs2jp2";doc="15d9mcvdhs1jd574gm6a9ppxyy7avclvq54ikcmlf4vn20lygidx";source="02x8fdavhkxfnxhvr891adpn93yhqccs31w05h8f9hyg34jlnb30";};
+wordcloud-68209={run="1s3fpbd182zqi94kg59mpssdp51rh7gw5371xrp235g8ih50054a";doc="187ap98yaffx8nf935chvvgjalx0g8xk4gnaqbblxkz26qi8z3f0";};
 wordcount-46165={run="16vxb87jyj7006akcd7fdvnqihz9rjyw2pl43mdvr5lxp22fpxdx";doc="1yv9lj7k7m446knp2ghsj0dj95splsc6071w2iarh8cq1xlbj3kz";};
+wordle-68170={run="1kz3xxwls671vv1czi7fy6k0cpzrw39afqmakq8apnxazi96lp3l";doc="1jjfsviijxk6n3qymsa7v7rn7slfq30k2arsz3xrgvri2c22z3yl";};
 wordlike-15878={run="1mdgcdiwnqcsrqrzbl27v56xpnzvxb7gg7a8vass31srk8n10ssq";doc="0i9k22hwjkq3pb6z8hiff6zz8l3yjp4vh8x89z5mcbg8iw5gjacd";source="1azirdir33aixw7zh9ps9npxy1v8ckgsdjb96ri1ma0cy2z5d1ij";};
 worksheet-48423={run="1rsh38fx4ayai0mlakqgpzxpnwp6ckzjcpiwy7aqlpia0504jgpc";doc="1hagdjrf472ip4jjkrjv6mgycwjlhbggval7kkk449i0xd9kiz39";};
-worldflags-59171={run="1zgjygxpfngjx944195nmv1qyfqvgdp5izav69505k0n176fg0nf";doc="0s67hgrlfpin5fhm6d35vdd0nksg449fry51cr638aq444yv4r0g";};
+worldflags-68827={run="170wypqn7mmfj4s8gbm363l4hqmmjhsziv22z9hyfhrdh0lprip6";doc="165ny43vh389qqi7rzw7mhfyn04awr397i67kkc20jiqxl6v64r9";};
 wrapfig-61719={run="1axad52pzzsx9d32rivasl5d49dj51adk5kcnb1rr8mz59421rk3";doc="1c3xd0ja4063qzag0v07mxkk52yczlcwdbwn84gsfp5hdmd5cibr";};
-wrapfig2-66119={run="1j9shv3mgxmi4kd6jak97kcis7282gm1s9d173059iq6z9iz4g3y";doc="1bnkqmdcmjywqm6qkl25lxgvbk5l50c3pyx68zx8g7jjy954s5iv";source="0w46ld38i7acv0464j1ipmd9kdsigyldijy247rmgk05znzpadaw";};
+wrapfig2-68164={run="1vkp56jijwjivf0ml9crdsy4ga7763m6hh9kdw94s1zb60zh4zny";doc="0cjfllnqyj50v9jd7sdqbf7inic7jvrzd4nh3dhssgd5s2abfpnh";source="1zy26lvz2b35ywxxcgk5r6p8vqq92bbw33j39zzg4b739jrh842h";};
 wrapstuff-64058={run="1w5bnl5w2shar2qg2lm7768n8h4qvgzhxaacphjhqbx9zb1r20w3";doc="14npfsqr8wp1bgq9az4x23rmkkgpn37w4cr6c43wyqs7cvizz0yl";source="1x34kkbv8n8c89x21ikv2lyzlk24qbwcpcxwgv13lqqlcqxfz2ix";};
-writeongrid-65700={run="1fc9s2xac259lc9i8hhmxr3abpvbj620mk0izz50b33j80211ipd";doc="1c2kjcdw8lscbysqnxkicbq5smzpg9584zvn7psfvnys8qc4kwm1";};
+writeongrid-68863={run="0vkm3hfgc8a3a6x5sxyszbmhprqckpxy0ibz75g6dhf8wr30jrf6";doc="1dvxx2gqvip9wf80m67hb6w76bbwcy2nzk5rm4m8dj9fvpzfv2jr";};
 wsemclassic-31532={run="0zpqx8gi2yf8cm5rmvchz0jprfwcc0gjkwcrygrvlqhqqn7qmc07";doc="0h7vz6pza8bv8y8ihfplbsq8ip9ds2z63s7j7qh84vf325ci5chm";source="1522cvwkw0ryvhgdqqd7k8lrbrayrmm3h31c77v7x8a81cry2bj9";};
 wsuipa-25469={run="1grz4s0zi7dlgbks7rx0h0rkjvchilhjabs59h81f92f835lafm4";doc="1zw7ibbqc75k4hplbvqpdmnqg5ks9bw75mrwcg14q1rb1807sp8w";};
-wtref-55558={run="118ajsdd1d1g1fr23pnq1zrdczl5qgdcrqp4ly6kp8w2iwjhqdn0";doc="1nk1w4w8x9xfyr8wdr68gx24vw3arf89ak72rbiwjkspzjl1h9fa";};
+wtref-69214={run="05zfj6b59m0ic977w31fi4i86l7214xixws7yidvnr35fa7wm75z";doc="0g4fsbhhsvszvpnf1vn701c8kr8lpq01lcd2g8nnmknvrpd56v5z";};
 xargs-15878={run="1r4giz5gp4pcnxw12lr8hnsa45yv1lm1ddq6g33rkgs1qjzkhv02";doc="06kfclbfr2kc95c431hn54g0c6vcv7vscsskg9myrp94ilq1qglk";source="0k58hqv0jmk3v2jmx212idnfrs9rxqz93zq34f5kqx8dwhnss9pp";};
 xassoccnt-61112={run="1z25b0dps2qf1lsvmbq462ljyyakkicg92d3l1pz254n2mqzvwjb";doc="0057kfclqs5n04ghsz6ad0pvgzwp4hlpk21c66922nscyl4qrfnv";};
 xbmks-53448={run="0pv35b38frgwbi4ijn1x8w5mx48fcy709adlrkzhy641bw4isv86";doc="1nr1m8mhqwkjl9l9pw72ls8xrvg8w2gi8rar4chk3xmh6kphi7ra";source="0waizijqrvg7qigh317vr56bi2b795p5k3h779p0kbl53k3f9f6i";};
-xcharter-63057={run="1d002nncq3wq13hkp72k2293xidhz21znhix08fgz3p5ymd2rbk9";doc="0wkg6wy2kkq4lp6f93lvghh25hzzjzxhswd2ajxmgaq86cbfdw3c";};
-xcharter-math-65686={run="0y9c9w1whbhbr063d1by0lx02iw7f54kjqfkx3f8w9b4wbrpl0gs";doc="1xh6d4x8ncm4xb5nk9zxrn07hj6fccw9ngsaayink35qm1hjczlr";};
+xcharter-67742={run="07c71gkxryhr6a1yjqyqypsmr4ns986g00nqi0ij823bz6q34hk2";doc="0mkgx4daalf59qrh0afd025r0p8nq2908f4fs1am0sy6svc1m16x";};
+xcharter-math-68992={run="1bys9mnl562jq8zr1zd98c3vyvpjw1xp7pblaxcwxwsy0zij8291";doc="1f9rm0ga8mdjkqj4qv75c73cc9jbkjj6bnm6s4ayf4lbqhirzjn7";};
 xcite-53486={run="0zsfyaxs0w2xy6fa1s6hlrcnzw1q9n4n676bv6j80cwp5cw7nnhg";doc="1sfziwn05dii3gviiahvmg67kb04hzhz4cd1cwjsrrvnjii0dqb5";source="0j5blcycs86vgmi54z0b06il06zzyjp4v15lmdwfnx0amb9y8jr9";};
 xcjk2uni-54958={run="1x77gmg738r2zbyd0mc7q079hz5wbvabyszmwizfdj6vflm86w3y";doc="0xig1w251dsn2qd9iywcdc20plibadiw8hl1iwygpzfa3187djjf";source="12hbjjdypk0s5k5iaac80n2n4z1zlkg5lp59y58dwnn4y1dx6m6z";};
 xcntperchap-54080={run="0hqagjlxphvfqmslg91fpxngbm15i3kmawglszj8z585i0j570di";doc="0yf5ak4xr07jzlh8s087c7g8rfa71isziy1z13qy8ifv2882p9qa";};
-xcolor-63563={run="1qwfxx9nfl2nr0hwyckf63q53h522w0pnxvjyn95ql415im4p0rv";doc="1rvzrqxmlddgpc2i03rkiw0nmfc0772dwz4s4fdwqnn24ydsjyzl";source="1bryjaajqa6xbnbkndk9b5d2w682xci1wmqwvbfyz7sjalppa87c";};
+xcolor-68864={run="1s4iv57w90ckapbaplzj5p837k7a0gvx8k33cici0sqi115iqvxc";doc="194q54ls577n7cv6hwz6b5al98lh3v8za989cmrqg7gn1ahr5pqr";source="12lki4jl45c4jiwncfkcbypghqq8i61m0ams9jljfpgs66421kkn";};
 xcolor-material-42289={run="0sa38kjyy4iywgd9lwhd1aqw48laqj9h2crcarvjd8hr4xwhrbcw";doc="00jfvs4r7hsclvy49r6waanq1q9vszdi5fhlnbg5arhkf53lzii6";source="1jiyl9vry12fl3y2c6l8z5ic8jaahshbvaha8c98h1h2d8mqk6vx";};
 xcolor-solarized-61719={run="0ggm9s8vqw80jfsmw5jn143xcbrx226rwkarjkfqhnlzx85k2d36";doc="1vmr5y6c5mi7hgkb33daamag2y4j6vpiyxnh0cpya824l6miichq";source="06f2x0w9k87wd75vm6gjxg2pdrcv3g6406nraq2mnlf9sial9mnh";};
 xcomment-20031={run="0hxbf6hid76d1gm7ngjbrrcb0x7faxsqa44560f93n6arhj1nmwm";doc="11zcprsby27n8dh78658r6xmmkpqzmx28f6sqc7jhg403jq0j27f";};
@@ -4120,7 +4238,7 @@ xcookybooky-36435={run="0hx5n7rz2aw460m9cqk2f2p4d3v7fhr02cjf8wk471fp8jwn5bx9";do
 xcpdftips-50449={run="02g4rm81gf314ds6yzrgasj1ighbyvka7p0vb8mrl78m1ybqjab0";doc="0wcbx6qx288448h2rffv87xgzfj8i30z1v2j6qcp8nlqq21lmw38";source="1h60va01gkm2m9jz521wx93libahh9fi3a8pyb67l6zgjd8dllxi";};
 xdoc-15878={run="18nqhig2kiwa1yzk06v65hzriq6la8c31j6f7caxzjrhjkzx0rvm";doc="09i5zcp7qisgf5rj6ys4rqvj8v8lxcxr16ddmzzvibgdc8kpc3za";source="0vxkqg2jl0qfnahfs82764z7npvsyc0ys3qlz6xk61ylhyqvycns";};
 xduthesis-63116={run="08cxhw5lhklv7vxl30fhwmlgq4kmv53a8qppcmsap1v8jc8vjrdk";doc="1j8pqz4l85qiziry85w7a23i6s577nb2cpbq4v5jgvp5l8x8lhzk";source="0zdlq46z2l3y5zydal9nsawv7nhhp113hdia15d9fd23j8gq4jdp";};
-xduts-66475={run="0l79ks9j99alp43nia6m6l1wd4r5a4x9v161l25c9zzcjg6xb29n";doc="1p9q7g77rbc7f3pzvnry8xhb956pzfcys9358lhxkvf3wh76rar9";source="07cn29j9y5aia67q8ja37vhql5yj49jravanz27sgizdzqp5sf5d";};
+xduts-66661={run="0l0p1xmnphgsfqq0q4si38zbrzxgmwzw3mqq7lyd48vwq8m8sqad";doc="0l1v9a1c6bhd3k9r272y64lyqpgn1vi6hflz8cg90ybxqxwrgb3d";source="0zaxm3rv20ijh6pmcas69hc3m2x3355gn8g1z06ihn8fnz77wl68";};
 xdvi-62387={run="10aldzxy02d9phqr9qwpxxwci7vf5q9z7sgxcz50kf44asa28fcm";doc="0n4v45wnzba23qpv5nmx87rdd09wl74jjfgpy6z66xp9jsdlja4w";};
 xebaposter-63513={run="1kdrjvdzsn9jwb6awcj2g2cr5csrhzds4w0anb8wm9q3532hcw58";doc="1k2cv0b1l4bn229rjvwcfjivkvgdifjgs5mlp5s27jpq9m5jvpph";};
 xechangebar-54080={run="03d1wmvldpfk6y52sd2pvw3ipglbl8cc851rqlz5jgk82c2frxg0";doc="0cnc62nff1vljwkk6gb6r0cwxq17b2yl4v9ilb7kxapaa6apbp14";};
@@ -4130,11 +4248,11 @@ xecyr-54308={run="1qqfdi6pxlkx6pxi2q61i0diwmsy9n95x4bvj9r3pgaf851p7cjx";doc="08b
 xecyrmongolian-53160={run="1m20p5x1s92cwhsixaz3s0y00r8n0j6172bi8vpyzcpf8mc886br";doc="0kiyjcqlajmpj80n8wkk0ziri83811ivl380i3cyz7rxmsh1hqhg";source="0dj2191iqcm9qpi45h45r3cp4nz5gdviw6xf9iz261b3pn515prp";};
 xeindex-35756={run="06ipq7m9mnal497j3awdspqim3fs7v695pf2x7v4l92vqz3hh1sa";doc="1pa1fa8vjgbzmgphx3fmm93dd5wr3adxrrld5xibk2qrp7fgkbsr";};
 xellipsis-47546={run="1slakkdjh4c88caxcdznir5gkw0v7aahfpqksp4l9as9bsl52980";doc="1jlndanic0xc16ba1hg1lswcxa2b20hibd25bs65wyag04rbh8lb";source="0768vqhmxgra190g0k3k4hhzgkhkxwwnvwmdpymphsqm9lvxbl95";};
-xepersian-64872={run="007x0i8fg1chyc8izb5rcy6qcglsnm1vf5bgaq6mps7kq8vaqyqy";doc="0g2y4ybalqs6q7b91q0y342pxf0n5bsirpv59yyya9z6bbn1pi4v";source="1kxbbjnnjb8d1vkf67j37v4ay5mdi6isjh0aqkdjgcy26iqb1cm9";};
+xepersian-68117={run="1i461pl3hdqd2p02d1xnmzpxfc8bxcip3c61bfjf30cnsa184zvc";doc="0b04na4c83ly2r8jv5d1mpjvhnc7i46kzhbgkh5kxzvjrpmqwnws";source="1409w2mfp50mihwn7vg3krhg7mrijxjc09sgqhxa1fgv1c3yqisq";};
 xepersian-hm-56272={run="0qj98xrbnh9bam0a6c6vy7ffaia3iqsx5s71bjlmbnyl6y2h8lwp";doc="16f5x8jv8mqf5a32gvrzqwh1xz4s5nxwqsq4q8sg1za6micqniyg";source="0zcq75xzkr0bgpf1xdsphrkcv70q17vs8jkhzxvjrfzilh9h3iqr";};
 xesearch-51908={run="1rszh3svj87vw5lskxv8bvnkzzj6k9rbikl6rr87ry9apmymsklg";doc="0cb73d981aa0s0hg2ynrg3zybsaw28f5b29zmqgvzqidi8vxfbhl";};
 xespotcolor-58212={run="0w7nns136gfz1dvq6iplk0jbza85lpzlpvsxf1bzjhqw5sk6v4p9";doc="1fai2v8x4g9cmda5m6nvf6g8w6qg64qfdq1rvjlz1qiqmy71c8jy";source="14yachqawnmpldkwc3f3q4krj2sr1kad7wzy1lfxwqggvpbdcjkh";};
-xetex-62387={run="09124rd2k40dihk4c1pidkd44rvhv1b0ain1bfk5ry1032ky7wly";doc="1zj2mwi7rlibadwy42f1jkgzni6wvz01rwd5d7w48x00sjxhckxj";tlpkg="01xia61wywddd2aa8xv703z1fb6sz4n13gvpbk7kync4dmki8v48";};
+xetex-66203={run="09124rd2k40dihk4c1pidkd44rvhv1b0ain1bfk5ry1032ky7wly";doc="10x15yqxsfb6xsl8z75i1hnh6dcff6ivl036945cfqsycyi9sq72";tlpkg="1ai1pw2hqv01z24x9s7vjva5v487rrr6al7rqpa001k7in2ijff4";};
 xetex-devanagari-34296={run="0i6hkzl2jbiixzrw2gvngnyzqkz0lfdilj1zz5xi6ypffi4vyihx";doc="0ahcawr9872lipz33jrv870lj2601j593fwfqcn5x0jhas93ch6c";};
 xetex-itrans-55475={run="17476frf0r4w50bfbk6g6ic40kv3x3i6qpl642glb3vyzyjd5dbg";doc="0bs67djfa9pi1k2900y2ybnv6lgjd031cyczks0jjzfnav2g4df6";};
 xetex-pstricks-17055={run="0i37r4lk1l36cch6kjz12mfzgpg6hd7n903fzbj9h7mwmjwnrylk";doc="17kiv64h94hf83ailbw29wf15r7gv9yq06h3l53c38rn0n20vdz9";};
@@ -4142,47 +4260,47 @@ xetex-tibetan-28847={run="0r8xgnagsqrkxr0ij0mcv30vhf7c3amyf9lk895lgwsvz6cysmma";
 xetexconfig-45845={run="1253njshiwdayzq0xir9cmbi8syhjb3sc4pyrw9p6kzyqvckkcxm";};
 xetexfontinfo-15878={run="1sc0lm5w94320f5abv2hw2bzqprhk73fjv2lkv380fgkpdfi7pdv";doc="14mc9snykdwzcmq013bs8vzn5w80lblpg05jk57g7fl2z9x6xl38";};
 xetexko-64894={run="03cqwgd87skkn9bxrmka5q0cfgz7wq7l2kln9apq35xhz6qr5hcl";doc="0iizxcn99c9qvm0l5d1724cw3x44w41rhhlb99kh16bjxs42xc2k";};
-xetexref-65972={doc="0d6xwyd09rrmd0pjvrdha05l1qldppd2k7wcpyfb475pd9q05r5r";};
+xetexref-68072={doc="1gq31fz879pjzn1r0ksy9prhvh70wil785p5nsj2n5pa67hd1h5g";};
 xevlna-43864={run="16ayk70kxk2s23r6nxva1hkb1z7aw7zz1zhmcis1bsijx657kw25";doc="09aaf3mpbh07mix5xvr20zybbbrbgbwcmkd5q0rfsd0ac8cm72fh";};
-xfakebold-55654={run="0dd7dj7nrdxrnznly4qvsayfb9n0cd70zr41jm8b7n800rn8z0v0";doc="00k39478xw7hldrhdvi2g8gl1745msxhfiln04q64m6ahpabca92";};
+xfakebold-68929={run="1xmw5mm5r2r0bvqga95lvcyf5y0jf7hc40sgzdnc2dx9n8sizwgf";doc="06a3znvv53c3ymfh53f37anlgj8878n5mzcw0mdjszlg8q4bl914";};
 xfor-15878={run="0m4y0caa22fps0r6735kb9pr2f89z5a8wflzrvpbms4nh3a61zgc";doc="0c0qg60h631d3m9rqr0nwj9772zjv3ch0d2p1ksnqnjf30idydl1";source="16xp7hziirlnd507g9bjvszm90wk9iv6ankq8bx27qkyk1shhjfq";};
-xgreek-64300={run="0gva8rgq8m03ik4wx55dxrin57k92d853vnihfpqs12av7synzpj";doc="0rwc23lsqy3ffjxb5bkwbyj3s0fvrbbf4n730plw642071b0n455";source="0ch2mb352zisg1vccq6mhc4a0gpzcla74qqj0ayrfbg3zbixlidg";};
+xgreek-69268={run="13hvjamdswy98r0z19hgyq9nd4y7x4j1vq06garkpvq9r7x6v68r";doc="0dn65ndxdg10zfzr2s4ybsalcl3gymhygdbyl0cdzsqkcv4xj7d5";source="1g6vpqia7yffnkzdshhgly1c69fdrlphaziia2sgcp9zc7mdwlb1";};
 xhfill-22575={run="00lb01b27h1bg8h37rcm7wmqh5pc3gz7rkw0l6xrfai0mb8ypq2k";doc="0alaqaiz2dfk4sh4xgrxfrwxgisv2p0bfdz7ppiqmli10al1h2gd";};
 xifthen-38929={run="0ys8yq13vhval5jg9a4n4pv7b3v11w1yh63ssvyx3pnr767ay5r8";doc="1miqc1bfwi2ssl6yp9aqw7ygnars27vks0grpyfns494yimy8nc0";};
 xii-45804={doc="19jhzv5hqzj59wrfcr1dsj6z56qfckax694idgf8arri5lnbkdd8";};
 xii-lat-45805={doc="1nn54xv71kcmn9jbkcslz6a64cvjcay9x96rrxnakdj9qcqd27r5";};
-xindex-65597={run="1lyshvrkd9gpwalmfa824w6divm9rq552vmqwn12c4wr33fk5zwz";doc="184c0bsm24p05pwgzxnb8i21q4p4n4dfmq57p6hfjsgqpx9mrfdj";};
-xindy-59894={run="1pb2146xb5g3l5jbqsgzy01lc4zkd39v7rd0rdnwdf7yrxad4zax";doc="119lq9mqczsh1np0876fz4gdfyq1rxmc0ghaqyriwl4fzj6lka1n";};
+xindex-67771={run="1scp2bj9jlp71wji8fa90m9jmjm2075cjand9schs8551and42r4";doc="0yddkhqk43d7hnaxfh3afqqcfqadgcx26f77gj2bs4xl9qa0c755";};
+xindy-65958={run="1jm8gi2pq4rw60p8bh7hp5xw1kyhy9r02zy5s2p2xyqh5c6di7jn";doc="119lq9mqczsh1np0876fz4gdfyq1rxmc0ghaqyriwl4fzj6lka1n";};
 xindy-persian-59013={doc="04w3h65215slnakk5w19m94xmj9cjx01izbk9xijifv5l6dqh447";};
 xint-63562={run="1nhf2g00742yzjzl6hnc52cbp1y97l60grgjhjc7j80w91g7vv35";doc="1340cagm5hxif3qmfwvhy6izkhg1awazg971a9ww8xlnxk70gmp9";source="183llw3pmalq4ylndhnvbfc74h57xl9q6pcbr9bnrazlxkjmfpq8";};
 xintsession-60926={run="0p28r81qa93r9hwsaib9jbg252q76xz1hxlaf6q0r2bs3i8a4hbr";doc="1fzyqf14fdk6mjvgfxg43mx2gncj1c7m0h4fid88z7ffsa6rq1g5";};
 xistercian-61366={run="1bkwcw3n5kkygz0d5ihikxp5hx2mcj3hvbqpggfv8wz8y820fkjv";doc="18q40xjmzd51hnh4ga6g7yx3ra8lmcysavf5r2wv8chqfa6jcxji";source="1vzkm5p56h4rbsj36nnc2c45p6fchqdmym1hh8fblxdy311vjrhh";};
 xits-55730={run="0hnjyncrb0r9ssp6aj9lih23b0z031fjhc7fjjsjc89igbxb8v58";doc="0iv1bs2i1fn0pr3gkz07xaqsdfw9idcyfdd6bzqjryynas25aia2";};
-xkcdcolors-54512={run="0471difnr81ihdan9qm8a15pgiy33fcc8qpwwigkhqby1f2sl6kl";doc="1s6xza7ci8gazqhrnhqj1c4kqd8b7dbhwy01qds9wjxbwrvxrm9y";};
+xkcdcolors-67895={run="0nhg0b4zv1xszx2sl61nyhfc5z5caw5bhi16ia119j3kb2lwr26h";doc="0sqv3kwbhh8ay0igpfal2gx22sbgay3wkwd2kzbs6rgsp6xyvj0k";};
+xkeymask-69223={run="14ll2mzc3sa1271yvq417a03g4ky4fvmb8zhmb9bqvw15vz7v53l";doc="0a9n4l2ffd358cvyc2xqvvmrd3zjq6nz7d99b490ap2734y21q1k";};
 xkeyval-63616={run="03m4skbhpv0l8cg3v50650k3h75x8rzk873hnqry0frb3qphjycs";doc="00xayhdwcwb6nq093v65pp1vzx2icn1xpkrbl7vllls4viq861s9";source="00ljf3z3017jdyifxhvls0j4l4jvdg8wi7sh56ij9qlx5jmjjzdm";};
 xlop-56910={run="1clpl22vxgqjpzs0ypgak0d6z0sr6hw3gj18r7sgs2q0jf5m6715";doc="1acnr4yfcakpnr8pb8g26qh7z9xr4dms4nfy50ig7r7azmdpz9py";};
 xltabular-56855={run="12skn3ld5cjd8jvh32l1h86mcqmx03v2w04189rkxh2q90kyjmfw";doc="1lps5w6p2j0c1bszyrbwdfn9r7mii9k9k6ap9s2ssb2rrfzf291f";};
 xltxtra-56594={run="0zpvlsdsrn6pnlfd3aa23hcrjfnnrjivi7r61g25j9sqcx7cmkym";doc="12wp6zwqa5mi5i5ridd2amnr48xrkqmi92xdhh95ydijpzyslhli";source="0vwlj6f7z7fh1vx257v0gnxj29rp3xqjpxlnn156xp9i8i29v0hn";};
 xml2pmx-57972={doc="1d3ralqh0b71scd59b4hmm707yfrz1rj28ni2lzkhbb1ql73bvah";};
 xmltex-62145={run="06rhg0mgxsv4061w8k6parag7fkhrja81aj900mi65bdwmxqxxql";doc="0zjaf8nvsid88nrvzgprwjcm6nirs6glyy25xws57fa9yhza8di2";};
-xmltexconfig-45845={run="0drgvmn27snq43kjkpg5k4igkcdi56p1q3fwkrv3ivsiqfp6cdz3";};
 xmpincl-60593={run="17p97mqcmy10hql3fvdkkjbmlnylhz852ckai0s45birpk6bvi8p";doc="1k532g5b8fm6ly9whah5133g6yngadb9w6cvf2apwm9hwx1pmnxj";source="14xwxsxfa8m8p2idzbkcjznh46np2fikn511bqw54k4k6991vmx1";};
 xmuthesis-56614={run="05z3pbc9gqfnzp4y4a5p6bmprsr1r63w9l442hgk3pshswc2dflp";doc="0dqmbdz0ydlq1hkz0s3lr12sia1qj7p912carwq4pjg9rrw98z7s";source="1c3a90gpb2siww65yc2l3kf91bf5xvxk9iq1s9cnx1ngxjbs7835";};
 xnewcommand-15878={run="1hqpc8p8bl56gzcmar6m670l6yq5arlh382s3m649lya35yydmms";doc="1r4wlg8368ax3p492qyh0nzxkfgkgvm5bzrbm0jhh9ayk9sp7ryf";};
 xoptarg-15878={run="1ykc3mdg45hhyk5x8lv06zggfv88kyrr1zqnv8s9j8cb5c4r71jj";doc="1g42s8mgr7yqdziwza1g241vjgygzddk6ly8md6c22kj8g0sq9jg";};
 xpatch-54563={run="1almf1wif49mi3yqr4qsdffd6m3q8xcma8x9v737ffczsffhs923";doc="1lxsqxzajkcfw4b9i89bk0gmhrsprkmgqqbj5v34bgvkvh0n5pm0";source="1cf161h6g6m3q8bq38imvmja7ral7lpyb26byb8nn26lgixkprad";};
-xpdfopen-53998={doc="130wvaypfrg9sav0pdcdy1g10fll8pqcsqsy70fxlzzr937glsh1";};
+xpdfopen-65952={doc="130wvaypfrg9sav0pdcdy1g10fll8pqcsqsy70fxlzzr937glsh1";};
 xpeek-61719={run="185jan9h82hrc8bai9h0k09dj2q8p2klqvz042h7xrh2napk060m";doc="0sag912jjxpiwbsgmp0l4p0kw4jfhp1j3sy0lb4kdxcqrzf3m1aj";source="144glnmckvjm24smk4d2xmnkfz8n3r4k7zjmsd0iwa004n28il5h";};
 xpiano-61719={run="11vk7k3n3np2wxx7gv9rvlgfmipmh1x0bjq5b2yvgsfxii65kwz3";doc="0hq4v45nacdxygxpjby6s8smlfkkp63yg83zfmwcl3dgxzayb2s3";source="00xnkxm6ijk1i0h3q0yadklc7f2np19bx3yzq4dzrfavdkxjz8f0";};
 xpicture-28770={run="1z3hbmqlamcm9wgwan834hggks2b73s73h3r2pppp00a1sz3g343";doc="0ymdwdspdhrhgyxw7h7f8nal6h0kjw6i8zicmll5vj8vbmi44dv6";source="1yjvqrpp7a0d3nldqidqrk2xk1lp5vbla865l3lxw1xd5b08y40r";};
-xpinyin-66119={run="1bavg69s0hin8phlgpmz53vkjlh039mancih71amw8bbvh077ynh";doc="0rnqq2hy7wzip9nij6bv0jvahrnsyqdmkvr23fvm7f90s07d1ay3";source="0yj7qh7qp3c1n17vplwywcsjwwy982gp5smxqq110syk6w2hppj5";};
+xpinyin-66115={run="1bavg69s0hin8phlgpmz53vkjlh039mancih71amw8bbvh077ynh";doc="0rnqq2hy7wzip9nij6bv0jvahrnsyqdmkvr23fvm7f90s07d1ay3";source="0yj7qh7qp3c1n17vplwywcsjwwy982gp5smxqq110syk6w2hppj5";};
 xprintlen-35928={run="0ywzhbp0b40cq395x5bv348f5dbbv29cqvlh6gkznr6qkjm6ai3b";doc="0dslr7n1mfbclyxic7pl1i425hbcb925jfbag0sfaal03pbczq7z";};
-xpunctuate-26641={run="0bqv9l0f3fwvzv2hcp2913spilawj21zbhdfgs9k04knda4xb7wm";doc="0r06jwsc38qac0k4b2rmm56phxi0qgmmvlixgk3w3mk51d26jz0f";source="1i5xcn13kr9nbfx8nc34n7qn7zj3p1hggws1yd1bqjpvj2dbssk4";};
+xpunctuate-67918={run="06lcrbk2q0vy6myjc1qs94p6746acawj7z38ldp3vvc4xynrarnw";doc="02vzwbrqj1dzd46xj49mldkw6rqppvq917bj8216argr5dc4dfk4";source="0lrgdnfv9zlnlyyyybr76a458sp8bayrbl0vw6jzzs0psy1lskq0";};
 xq-35211={run="165zyviwxybpgfx9ycngv9nml482faz766q1skgmligx05qzkhyl";doc="01yhk07lrcbl7ppkqvks5j7wjpwyy0zc69q46wh42gbp65vp24a4";};
 xsavebox-64049={run="1zsv2yf8hp3yfdz2hwlqdzhk40xbcm8bhxwq0dzzkdqi73pfay6d";doc="0ad4gm6mxayrsvbc38nmn20jiv72g177r8vdnv04f8z8i02h7im5";source="1x3rm695vs3nh01nal4qyk164kfjx7pjx3sfmv90cj2jkyi4clwf";};
 xsim-61988={run="1ajmvlrmx97f94k7aci6bni5bhhlrf07c7vb8vnjgyq2iik12ys7";doc="0ppqjy9sgkrwcycfj5z1igi6w56rvcb5a12p22spa56fpsh94910";};
 xskak-51432={run="1hirv11b76xl7jx4swpa7imhjncfn81i9qc118qfrn26n890dgr4";doc="0hzyv8gy91avmpf2fgjwpqfkkbi8255gy86xzn5cz3y948l3m5vl";source="1gw6xqbpcsgdi5s7d239j0ds18w674z4zfibsvbgqjb70lixnyv6";};
-xstring-65551={run="0vpbi2v7kvlm6w541sk1jdi01ws1dp0cff2k2nq4yy9icrb4rl51";doc="00gdmsg807cway1y30q44ivh6azjzg67rfw2jz70h1hcg9kbvfcb";};
+xstring-68015={run="131y1vly79iga9yi9lva4bizxs00p4gyx44f7gcgqnd35biqpy00";doc="0sn9djwkb06n917f1zly6gy81j1gixvp0w28a0f4i3whk3va0yac";};
 xtab-23347={run="1cpcs7k8liapv68cghfwj5fw80rz71qrld7l9lsnli50h7ph42sz";doc="1z3wp3hqy98a4l34kgm604zajdyv0b2vq0jipywmdc12115cw63f";source="1im5cv88g6n88rxzx8lqcxfmhkihywrv2h9gclmv0jx2mmwvwafv";};
 xtuthesis-47049={run="1d68hx38gwwscshdm07rcg75zjbsvk5kyliy5rx6z5jp75k0fra4";doc="1fdr5k60zxjb75vv4m6mj1kalka1kg7cw3k5j9a53n01m2w7q6r5";};
 xunicode-30466={run="1h8ixz9zy9izv5j7555094jiwfp5js5y8mp4bh993gn9xn1rb6b2";doc="0jrxnpas07np9a30cybk6jqv4ng96vjqpyyadbl55szkiylzwwfi";};
@@ -4196,15 +4314,15 @@ xytree-15878={run="14f3vxkfmv2s944qpdhxpvbrpxq2p259bnk5sxlcv8lbsk2fvvcx";doc="1a
 yafoot-48568={run="05b2niwqs6c43gl4ag811ljdd0nasmbdinz6dx2d488nl4jiifaj";doc="0mbg6y7qsdsq5nwgdh32kd9x3ghvf8qlbrm84rg6269ff0b5achv";source="1p3zwyg1pf3ad35w25ahlk1r4c18k6vvllcv8ccm952mjg79mj83";};
 yagusylo-29803={run="12p2kxrqa4479wrwcbbxsn5hknr1ai9rf1x76psfs43k9fh1pnn7";doc="0g0vx5zjrfxrf595c0kz378n2h9hrlaf9sx1ypw3iv90zns1sp35";source="1js0slg00sr0bc0gysxvlp3jwlfa57lldi6q7a8fvqjfg9bkclvm";};
 yaletter-42830={run="13xizdiq8dj7iyjw7a9srhr24c1z6g50r44a7hjz0909z3b58j65";doc="1jgv50mssx6g94fh5fcysi884w1iah2qdwb0vrkg6952266gdkvw";source="0byfxy8h76m0jwgd4q0s1ar08sr9ys9jhvsz2l44id321w5276dj";};
-yamlvars-64949={run="0c6862hpzx5jihs30pm1221mj06sf26q2kv451drc39bclzsla05";doc="07srm1ba3b5yhdm6h69nyzyps9i8lhzav8xa1cfxszjpk04if3dy";};
+yamlvars-69071={run="05fjkphk70cqkgkd0gg3abnxdnnr4yyr6sd2pbkyh8jkc1pwadfx";doc="04cjg932c22v40fmka7baj17bs99awilgvmakdbcz4mqiaw9zmzb";};
 yannisgr-22613={run="0h61qn97l6k97zbgk0ghqgr4bf8fhbrb037gdskg2sgxb7zsl5wl";doc="1vw8p9xk3aj3lfsq8a2qv7qd00aqx22fs3427j31wnl1iymwycag";};
-yathesis-66159={run="1kbp66x3rh5mlfpakgfyfk34aq5wq7dbg3dqpy3g3cvlfjm5anwm";doc="0y1v78cy20i042fg02qq7ipqzrfn82hrgzfdxz6p68i10fmzpmi1";source="0q47z4k7k55n0wxabh3sjlfdd68nm8bmdy8hdkl0b5mfa5dh35z0";};
+yathesis-66146={run="1kbp66x3rh5mlfpakgfyfk34aq5wq7dbg3dqpy3g3cvlfjm5anwm";doc="0y1v78cy20i042fg02qq7ipqzrfn82hrgzfdxz6p68i10fmzpmi1";source="0q47z4k7k55n0wxabh3sjlfdd68nm8bmdy8hdkl0b5mfa5dh35z0";};
 yax-54080={run="058i478l85ilq0asix6mkdn1kfzh2abqn9ngar6s339db4h81lxy";doc="06i376649jszpwgvb0bq8wxchjmhwjfvc78pl5q6q1ic2jpkq5pj";};
 yazd-thesis-61719={run="1bhjqd6k4lqk4sypssmrsjl9lqrbha9d0n42qbaq1mg5whpl2b8x";doc="0krsm9s3ym6f3d323scvxn8cf1wjqppglhmzbxwn0cpjq5nl01pg";};
-yb-book-64586={run="1fy9f39kbmlsm0fwgpkm89s81bs17xqvhbgmhxf707bl9jni1xb0";doc="1xdh1cy7whwmkaa3a05i13m9zkaggc7q4bqpqi3r52fxxv71nbqx";source="1lr6vyxxqxqcirmhbmk0177bxa0xy1vlw9mih5w86y3wzxbfpn16";};
+yb-book-67188={run="01ha50044ph7f19jrpkdlfa4idk71k21l28hwm67l4y1q6fyzrll";doc="0ckn24i29cqnlmvml5w77ws9rx9k380c470kv2b2d88709yzzqgf";source="1j29rgbdnlmi4a2px1y3xmq2lsdrwlmi9l3dqsac1lx45hpqmhby";};
 ycbook-46201={run="1ajhl8vkd94yajib69s3jw6v2jbbn7h6g92m0yc86gfri3qcff2r";doc="0zf71gmxj1hwywlw5h8klgyrn9mww12hc4bic0l0gmwixvn6k56k";};
 ydoc-64887={run="19njcgsdhz094w6c7hxp20kcj8b9kvcx4y6zg0rzsxs3h4fr2f21";doc="1dpjwv7m10413dxvhqgxsw2rp9n2gw8s0jghshgmbfm6x46a4db6";source="0y7cc2sl9yia5ldp2la1wy4d53jgxgcpi0v5wkc4m554jl9am4z9";};
-yet-another-guide-latex2e-65714={doc="1bxpk66cfmqc6g0d29vvfd4d6y83nhdxsb9gsfwqbh38yr6rlq1b";};
+yet-another-guide-latex2e-68564={doc="1a4z4ni7327jd1r4n0w2lh7bb8ag7dfdgr6xwl4q5hf2jbdv8mmy";};
 yfonts-50755={run="1k7b78fr6x8kp6354viqfni3k77d96qmx9r76249m5j140hi6fk1";doc="0a7fy4z790fr6q4z5qnzv578x48kqs128wl5znd5bn3mbg0n0cq0";source="1ph8vc09vg0zxc9x1xydrm9wn6q5vml2bc3wln15v69p8nm52d7z";};
 yfonts-otf-65030={run="0rhym2lw9jk2aj73ndyvr32ryz58krmmfbm28cpgaia06crjl4jp";doc="02ghwiqnws03wfhg3sim6xm1ifdpmi4x5yz5azssxnxfwbndp62n";};
 yfonts-t1-36013={run="08fbdd97n2h649kvks6q03zrsjvb1f7qwys3955g6iznf4y8pyv6";doc="0h0gi1j5fcn1nkvf0abf2aimj2q3h6bw4rx7kzg5xra735fqpl4n";};
@@ -4213,28 +4331,28 @@ yinit-otf-40207={run="1yjz72nixv6di0ifsimbnc34wlw6s8nqkwflkag2p75q0jw52qrg";doc=
 york-thesis-23348={run="04c8g1wkl795caadm8kqfy6kdqqgwlk46lijpmyiiykbb8z54wq7";doc="0zp6pfr3giqm4nbsidg06q0c3x9gr4bk3g8qq7wxl9a2pgk3z45p";source="0105amrybkm78pwb9hrd7n8r69sj6lkh1zm7c9sskibb13lqrk9p";};
 youngtab-56500={run="18h6a4b4psbm0hjxq2xnk4bkmsa1wd2fvarrzfkhcj01hgn8bz17";doc="00jkdw02iary6s5szh7hf4qjlr7r8y9lfmvlnrpqkhh6pdhsy3jh";source="1hjqkj12jx9imfqm7y1mqdvp1knhf69kbixr88varbh09d6r9p66";};
 yplan-34398={run="1f2kxbb32hxwgin5bn7b78r8sqdj4v1q80sh1c87425zw8jyd73z";doc="1ls02mng1jwihz8s505brmaqcjn4abqys6bwl22dy855bw5rgr5k";};
-yquant-65944={run="194mnyclwr0nxmgyigfyw82fns4b0kq7a2sizppd4mz826cfj1w9";doc="0vxjrj0hffrpkrdsqy00gndlrsh8qxqmn6jh89xgxsj8m1m2n5z4";};
+yquant-68997={run="0xlwjgc0lwls7zpgbd0v85cij3a66vsv2vwlr6a73s0bjyjy9akh";doc="043yq765f23rdhn3pmdwzy0q3x91hwaawfwakq93acwbx4mqjz8h";};
 ytableau-59580={run="0gfpxbvar3m21pj74j19qnj8qakbknhvssyvfyw61jwdd8ygdxkd";doc="00k10759qihk3330bwfpzmrm9bfb8513w3sak9jlfy5inay59rbd";source="05pxlbj3rdgr15cqfdxviyp2698b7l44rzgssx18yv2a8qnaxylh";};
 zapfchan-61719={run="1753lvv2bq29g43s4chc884n742695agvgal0b99gsrvlkyfp8gn";};
 zapfding-61719={run="17mls8wilz9api9ivsbcczpiqp1f39qy8wa6ajssi8zhnc5lq7zn";};
 zbmath-review-template-59693={run="1zyll0lpd3d2cjizq6f2zxnb1pmdl2qkhd1fcm9f9l6i5fqmjk15";doc="0ymvngll5znvw0i4y65imidy21fzfzsdcz22i2i8369k1n15x6yh";};
-zebra-goodies-51554={run="1f8iv32wgmkzqr75m44hiagz34d9h8qz38ylh3jaq2d9hxf0l1fq";doc="1fz5bz0k6ymj32wc6lkikk0b36b6l9n893xqhbhac4y5gxd1r8z0";source="1as545i691hxy3kqnn72gksgqc9hswz7n48zzhmaz77q6ilnkpkm";};
+zebra-goodies-66630={run="03m5npbrbcmxw9csl2hg1jgzjg96rr2r3yix3sajkxzmf2bcm3my";doc="107wr1pjqc9yswd52gflan10007p7i072gysnwdpcxk880f1n29l";source="15sw808cqfjvwmdnnkds9n1m29c7dzdm3id4hkm2cl92jxiygb0f";};
 zed-csp-17258={run="0wr6dxb5ks34x8rzr7s2cnanxc5jawqcq0zhkmxrh8cjqcfkk1w9";doc="05gm4s4svqa4wds0ichfm6lk39i0y54y33b96bnycrabggqfw77g";};
 zennote-65549={run="0sawds55l9cc15b3lvr5zswg5ybsj8v22kx8h5gn65g4j0zj79aq";doc="0qwl9f1c777iim45xcl00b3zidzs4192hyv6vv14a8c57h28j7zr";};
 zhlineskip-51142={run="1j3wkvd57kdwhhny0dzw0hqqnv2ghx1mdjgyzrhfj8gf3fifdaym";doc="0hy14njxpzffcnyciyc4zbil6372b640bshfw9jq4wyskwk3i45h";};
 zhlipsum-54994={run="0rvwbnqzgbdihdavscn8mcc7hy6yjdzj2fc2h3xs3i77lfa5140d";doc="177l81c3zbgdvjgr861jn917ps174zg8bab824f7dx2gj5mhdzgf";source="098fqbcr9fdv6f6hjaczm3q28dpx0g8xqjykg5hyx7nfp7nh6yjk";};
 zhmetrics-22207={run="094afdf0mwb6f5jvg7z7cs5xinia71cnlaixcihliai37kdn1qss";doc="0achyp4i8dfhrkr9jddp7qzdifcqsf28qaqdnyb76525mvgkip5y";source="0hic8n6kq4sx2dc8vb34fhyjrbbxp50lllyj5sh2ld9s5fwgm3yk";};
 zhmetrics-uptex-40728={run="06g61qm3ryy6mvvaq4whk7084hjp544dig57mwcxlgp6cfs0fq8l";doc="0ybijj2hjm4byli3yh8q9lgb40bdpq16d9273nrmiyy8szxa20qc";};
-zhnumber-66119={run="1iryx2mdk0fkvwnvw8z71bscy0kk41nx85flw88kwmsv5bd3aqxz";doc="07hkrlf3gycv0clmr13c6xxp36yy5wrcmzr39ms3ql205qz94qcq";source="01b6l05j6mkx2c8lbj2kmkl7cr5l9cwj2z26v85mmki1z3fkqmrw";};
+zhnumber-66115={run="1iryx2mdk0fkvwnvw8z71bscy0kk41nx85flw88kwmsv5bd3aqxz";doc="07hkrlf3gycv0clmr13c6xxp36yy5wrcmzr39ms3ql205qz94qcq";source="01b6l05j6mkx2c8lbj2kmkl7cr5l9cwj2z26v85mmki1z3fkqmrw";};
 zhspacing-41145={run="0h588z408lggk7370l9kcssz2hn9lz19bnakadygrklsyhqh9pzh";doc="0s5qyrsi5nw0vppgx90lzz3ra121jgm9hgzg3z791imlxgjn8pzr";};
 ziffer-32279={run="0nalr6i8yqd1iq713gigafnh1k0h8kgiml1zwpk8rjyya606capw";doc="1cr63lkqi9kpkbpnrwmbppipsmw6wy732wsaha0y9y5ia2934nck";};
 zitie-60676={run="131kiycj7q9javr3xs7maa2qjczmva7vj98bw36pv7znwchspcca";doc="00daf6p699y5204lrdg7hfcnmqh3ah764fpjymblvm8hy5f1w5g2";};
 zlmtt-64076={run="1krv8frabpvnx00xwdx058f9y2mip3bblpix05yxpfspx6aarhcw";doc="1xiirzbgh1x34zih8xbf7whl5f994lx9bc4qrirc58rlccnqgbgr";};
 zootaxa-bst-50619={run="0lwin7dfd3nk0r3drznmhkqd7fhfvizxqy3z2xv616spg1jh9sgj";doc="1s4v9azi1pvvh1fizp2azkbwh35xvqh8qcnnn1xwi0g1xhcp38pa";};
-zref-62977={run="07xvr2jicmlsr6mlahf4vyh3f91bm94zay24gaqfj48ph9pakzkb";doc="0ix0zi8zi69vs70ykyrvfdj6j4l9izwsb1j6dsyn6i56dvyc3lsh";source="1hs95sjv2qwqimb664lc46icbycq00743kvr6wcmar97ygf723ds";};
-zref-check-63845={run="1z8735nq12ikq8ldradays9yyz97mp91ah33j5dhp33wv4sap32y";doc="0d2xc6xak46b10j61d43vy4vdq4pspjr5p65aqy1jppljcfv671d";source="0xszpxfvxjrlm6ybyrh214kha3vw3rlvnb7c1ivvahmczi70n48j";};
-zref-clever-66024={run="1bi2xgsk44l8y829cjpwnmwnaakp6pc481mn9145gscxybx2h5k0";doc="1h1qc1lmfimkbcdcp6ca310zyybp0jb09jrmxnpxip7h0fl3w14r";source="0y1nha6631ai3k2pwc0ai2w1p8dxpf2xws6rswbmr1pm90n0v3kv";};
-zref-vario-65453={run="1fbdnv9rvz0ypdglq645rsmgjh195z9zkl3gqlgqbb2pppgjz6c9";doc="0xnq1gq1kjxilyl3cck3f5ppkbvzwc4w2p8z7hkjfwq1vjma8811";source="1kxgjnlh6kasgadrnyxcgiqipvmqwzlah756m2lqpj4879nj8vw9";};
+zref-68278={run="1292p3hmhlngwnhl9lnppbvn4fqblphxmpmbh1vij23v64acv3lk";doc="1xnyvhrhcnganvdzilljdn6x5yh7srijhdd63fc0p5d7zn5hccc1";source="1dbzxl0rc3xwcn2bwaghywsry8q2q34npax5zrv9xak24gplv72y";};
+zref-check-68846={run="13syzhmzvd537gdvwkzvlnbrf9as2yl0id3z7fmj35vjwf9z12al";doc="17f344gzq68c9v2glz24pwxal72aa7mmyi5lvgqx9dkkpzlmghfc";source="1lnnx5fb23pkkzwdl82j765canbm9bbnmmpwwxh9yg9dcz4gwhkp";};
+zref-clever-68846={run="0dgpx323gw46qi45wqvlyhsyw5d60i18bg7vk9ndkb6isvs9pdx4";doc="19dfpz5185m5gi4828vc1hg6njc4jkb2n6hah1hvyg10izbxamgr";source="0bk2irrrbmyh7w6p9z5b2bmfcmnb8sb97zszsq54hg2rc7r1h1vx";};
+zref-vario-68846={run="0p7b9pqldlliwshm2xfm6c69is878nj52dgchx26dqhi8lx8l8dy";doc="0ck4h0wdm7rkhcb7bp0cksy2krpziyjykp15p0l02180c79mnp3z";source="12qsz4fn6d3gpxhi5ppfvzqcj04r9f88a5hj9691kqjwh0507zn4";};
 zwgetfdate-15878={run="1fgz3z1f9ifcbrwiq166hnff23gmlgp5vn0djm2znci26bcip4s9";doc="0gda7xd1sbiaaspb253xgl47jm6bcn8hj101m6ih69mxrka6sz60";};
 zwpagelayout-63074={run="0xl2qyq9037fjxwc6v9hz9gbb5fggqb2x93bibvhdb0bik6iw5md";doc="010120lcnx9d9jj116y6vskch3025jfi4v7xh6nyqlvirsjr4hk1";};
 zx-calculus-60838={run="12i0zskbwky4l81imz83aqi2g1jypy23nwv9fyc3rjlm6aarrzrj";doc="08clr1caznfygq0wqmi0w5955birqaiyvmvz5kjaq6qrzi9rwnns";};
diff --git a/pkgs/tools/typesetting/tex/texlive/generate-fixed-hashes.nix b/pkgs/tools/typesetting/tex/texlive/generate-fixed-hashes.nix
index dedb877448a6f..532e3c5cfafdd 100644
--- a/pkgs/tools/typesetting/tex/texlive/generate-fixed-hashes.nix
+++ b/pkgs/tools/typesetting/tex/texlive/generate-fixed-hashes.nix
@@ -1,13 +1,13 @@
 with import ../../../../.. { };
 
 with lib; let
-  isFod = p: p.tlType != "bin" && isDerivation p;
+  getFods = drv: lib.optional (isDerivation drv.tex) (drv.tex // { tlType = "run"; })
+    ++ lib.optional (drv ? texdoc) (drv.texdoc // { tlType = "doc"; })
+    ++ lib.optional (drv ? texsource) (drv.texsource // { tlType = "source"; })
+    ++ lib.optional (drv ? tlpkg) (drv.tlpkg // { tlType = "tlpkg"; });
 
-  # ugly hack to extract combine from collection-latexextra, since it is masked by texlive.combine
-  combine = lib.findFirst (p: (lib.head p.pkgs).pname == "combine") { pkgs = [ ]; } (lib.head texlive.collection-latexextra.pkgs).tlDeps;
-  all = filter (p: p ? pkgs) (attrValues (removeAttrs texlive [ "bin" "combine" "combined" "tlpdb" ])) ++ [ combine ];
-  sorted = sort (a: b: (head a.pkgs).pname < (head b.pkgs).pname) all;
-  fods = filter isFod (concatMap (p: p.pkgs or [ ]) all);
+  sorted = sort (a: b: a.pname < b.pname) (attrValues texlive.pkgs);
+  fods = concatMap getFods sorted;
 
   computeHash = fod: runCommand "${fod.pname}-${fod.tlType}-fixed-hash"
     { buildInputs = [ nix ]; inherit fod; }
@@ -15,18 +15,17 @@ with lib; let
 
   hash = fod: fod.outputHash or (builtins.readFile (computeHash fod));
 
-  hashes = { pkgs }:
-    concatMapStrings ({ tlType, ... }@p: lib.optionalString (isFod p) (''${tlType}="${hash p}";'')) pkgs;
+  hashes = fods:
+    concatMapStrings ({ tlType, ... }@p: ''${tlType}="${hash p}";'') fods;
 
-  hashLine = { pkgs }@pkg:
+  hashLine = { pname, revision, extraRevision ? "", ... }@drv:
     let
-      fods = lib.filter isFod pkgs;
-      first = lib.head fods;
+      fods = getFods drv;
       # NOTE: the fixed naming scheme must match default.nix
-      fixedName = with first; "${pname}-${toString revision}${first.extraRevision or ""}";
+      fixedName = "${pname}-${toString revision}${extraRevision}";
     in
-    lib.optionalString (fods != [ ]) ''
-      ${strings.escapeNixIdentifier fixedName}={${hashes pkg}};
+    optionalString (fods != [ ]) ''
+      ${strings.escapeNixIdentifier fixedName}={${hashes fods}};
     '';
 in
 {
@@ -37,6 +36,6 @@ in
   fixedHashesNix = writeText "fixed-hashes.nix"
     ''
       {
-      ${lib.concatMapStrings hashLine sorted}}
+      ${concatMapStrings hashLine sorted}}
     '';
 }
diff --git a/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh b/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
index af49ae22e19fb..1d8cbbd4067c4 100644
--- a/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
+++ b/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
@@ -30,18 +30,18 @@ for binname in $binfiles ; do
   # look for scripts
   # the explicit list of extensions avoid non-scripts such as $binname.cmd, $binname.jar, $binname.pm
   # the order is relevant: $binname.sh is preferred to other $binname.*
-  if [[ -n "$scriptsFolder" ]] ; then
-    for script in "$scriptsFolder/$binname"{,.sh,.lua,.pl,.py,.rb,.sno,.tcl,.texlua,.tlu}; do
+  for folder in $scriptsFolder ; do
+    for script in "$folder/$binname"{,.sh,.lua,.pl,.py,.rb,.sno,.tcl,.texlua,.tlu}; do
       if [[ -f "$script" ]] ; then
         sed -f patch-scripts.sed \
           -e 's/^scriptname=`basename "\$0"`$/'"scriptname='$(basename "$binname")'/" \
           -e 's/^scriptname=`basename "\$0" .sh`$'"/scriptname='$(basename "$binname" .sh)'/" \
           "$script" > "$output"
         chmod +x "$output"
-        continue 2
+        continue 3
       fi
     done
-  fi
+  done
 
   echo "error: could not find source for 'bin/$binname'" >&2
   exit 1
diff --git a/pkgs/tools/typesetting/tex/texlive/tl2nix.sed b/pkgs/tools/typesetting/tex/texlive/tl2nix.sed
index 7c8520707a930..244f8fbcc15f7 100644
--- a/pkgs/tools/typesetting/tex/texlive/tl2nix.sed
+++ b/pkgs/tools/typesetting/tex/texlive/tl2nix.sed
@@ -91,6 +91,7 @@ $a}
       t next-doc # loop if the previous lines matched
 
     / (texmf-dist|RELOC)\/doc\/man\//i\  hasManpages = true;
+    / (texmf-dist|RELOC)\/doc\/info\//i\  hasInfo = true;
 
     D # restart cycle
   }
diff --git a/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix b/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
index 6b974c7214379..5ee4d4d6a79f2 100644
--- a/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
+++ b/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, tlpdb, bin, tlpdbxz, tl
 , installShellFiles
 , coreutils, findutils, gawk, getopt, ghostscript_headless, gnugrep
-, gnumake, gnupg, gnused, gzip, ncurses, perl, python3, ruby, zip
+, gnumake, gnupg, gnused, gzip, html-tidy, ncurses, perl, python3, ruby, zip
 }:
 
 oldTlpdb:
@@ -26,7 +26,8 @@ in lib.recursiveUpdate orig rec {
   #### overrides of texlive.tlpdb
 
   #### nonstandard script folders
-  context.scriptsFolder = "context/stubs/unix";
+  context.scriptsFolder = "context/stubs-mkiv/unix";
+  context-legacy.scriptsFolder = "context/stubs/unix";
   cyrillic-bin.scriptsFolder = "texlive-extra";
   fontinst.scriptsFolder = "texlive-extra";
   mptopdf.scriptsFolder = "context/perl";
@@ -66,7 +67,8 @@ in lib.recursiveUpdate orig rec {
   bibexport.extraBuildInputs = [ gnugrep ];
   checklistings.extraBuildInputs = [ coreutils ];
   cjk-gs-integrate.extraBuildInputs = [ ghostscript_headless ];
-  context.extraBuildInputs = [ coreutils ruby ];
+  context.extraBuildInputs = [ coreutils ];
+  context-legacy.extraBuildInputs = [ ruby ];
   cyrillic-bin.extraBuildInputs = [ coreutils gnused ];
   dtxgen.extraBuildInputs = [ coreutils getopt gnumake zip ];
   dviljk.extraBuildInputs = [ coreutils ];
@@ -88,7 +90,7 @@ in lib.recursiveUpdate orig rec {
   pkfix-helper.extraBuildInputs = [ ghostscript_headless ];
   ps2eps.extraBuildInputs = [ ghostscript_headless ];
   pst2pdf.extraBuildInputs = [ ghostscript_headless ];
-  tex4ht.extraBuildInputs = [ ruby ];
+  tex4ebook.extraBuildInputs = [ html-tidy ];
   texlive-scripts.extraBuildInputs = [ gnused ];
   texlive-scripts-extra.extraBuildInputs = [ coreutils findutils ghostscript_headless gnused ];
   thumbpdf.extraBuildInputs = [ ghostscript_headless ];
@@ -117,16 +119,31 @@ in lib.recursiveUpdate orig rec {
     clxelatex = "cluttex";
   };
 
+  context.binlinks = {
+    context = "luametatex";
+    "context.lua" = tl.context.tex + "/scripts/context/lua/context.lua";
+    mtxrun = "luametatex";
+    "mtxrun.lua" = tl.context.tex + "/scripts/context/lua/mtxrun.lua";
+  };
+
   epstopdf.binlinks.repstopdf = "epstopdf";
   pdfcrop.binlinks.rpdfcrop = "pdfcrop";
 
+  # TODO: handle symlinks in bin.core
+  ptex.binlinks = {
+    pbibtex = tl.uptex + "/bin/upbibtex";
+    pdvitype = tl.uptex + "/bin/updvitype";
+    ppltotf = tl.uptex + "/bin/uppltotf";
+    ptftopl = tl.uptex + "/bin/uptftopl";
+  };
+
   texdef.binlinks = {
     latexdef = "texdef";
   };
 
   texlive-scripts.binlinks = {
     mktexfmt = "fmtutil";
-    texhash = (lib.last tl."texlive.infra".pkgs) + "/bin/mktexlsr";
+    texhash = tl."texlive.infra" + "/bin/mktexlsr";
   };
 
   texlive-scripts-extra.binlinks = {
@@ -154,8 +171,11 @@ in lib.recursiveUpdate orig rec {
   '';
 
   context.postFixup = ''
-    sed -i '2iPATH="${lib.makeBinPath [ coreutils ]}''${PATH:+:$PATH}"' "$out"/bin/{contextjit,mtxrunjit}
-    sed -i '2iPATH="${lib.makeBinPath [ ruby ]}''${PATH:+:$PATH}"' "$out"/bin/texexec
+    sed -i '2iPATH="${lib.makeBinPath context.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/{contextjit,mtxrunjit}
+  '';
+
+  context-legacy.postFixup = ''
+    sed -i '2iPATH="${lib.makeBinPath context-legacy.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/texexec
   '';
 
   cyrillic-bin.postFixup = ''
@@ -241,8 +261,8 @@ in lib.recursiveUpdate orig rec {
     sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath pst2pdf.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/pst2pdf
   '';
 
-  tex4ht.postFixup = ''
-    sed -i -e '2iPATH="${lib.makeBinPath tex4ht.extraBuildInputs}''${PATH:+:$PATH}"' -e 's/\\rubyCall//g;' "$out"/bin/htcontext
+  tex4ebook.postFixup = ''
+    sed -i '2ios.setenv("PATH","${lib.makeBinPath tex4ebook.extraBuildInputs}" .. (os.getenv("PATH") and ":" .. os.getenv("PATH") or ""))' "$out"/bin/tex4ebook
   '';
 
   texlive-scripts.postFixup = ''
@@ -271,6 +291,11 @@ in lib.recursiveUpdate orig rec {
   '';
 
   #### other script fixes
+  # wrong $0 expectations
+  bibcop.postFixup = ''
+    substituteInPlace "$out"/bin/bibcop --replace "basename(\$0) eq 'bibcop.pl'" "basename(\$0) eq 'bibcop'"
+  '';
+
   # misc tab and python3 fixes
   ebong.postFixup = ''
     sed -Ei 's/import sre/import re/; s/file\(/open(/g; s/\t/        /g; s/print +(.*)$/print(\1)/g' "$out"/bin/ebong
@@ -288,6 +313,9 @@ in lib.recursiveUpdate orig rec {
     substituteInPlace "$out"/bin/latexindent --replace 'use FindBin;' "BEGIN { \$0 = '$scriptsFolder' . '/latexindent.pl'; }; use FindBin;"
   '';
 
+  # flag lua dependency
+  texblend.scriptExts = [ "lua" ];
+
   # Patch texlinks.sh back to 2015 version;
   # otherwise some bin/ links break, e.g. xe(la)tex.
   # add runtime dependencies to PATH
@@ -311,8 +339,8 @@ in lib.recursiveUpdate orig rec {
       --replace '[dict get $::pkgs texlive.infra localrev]' '${toString orig."texlive.infra".revision}' \
       --replace '[dict get $::pkgs tlshell localrev]' '${toString orig.tlshell.revision}'
   '';
-  #### dependency changes
 
+  #### dependency changes
   # it seems to need it to transform fonts
   xdvi.deps = (orig.xdvi.deps or []) ++  [ "metafont" ];
 
@@ -333,10 +361,6 @@ in lib.recursiveUpdate orig rec {
   # tlpdb lists license as "unknown", but the README says lppl13: http://mirrors.ctan.org/language/arabic/arabi-add/README
   arabi-add.license = [  "lppl13c" ];
 
-  # TODO: remove this when updating to texlive-2023, npp-for-context is no longer in texlive
-  # tlpdb lists license as "noinfo", but it's gpl3: https://github.com/luigiScarso/context-npp
-  npp-for-context.license = [  "gpl3Only" ];
-
   texdoc = {
     extraRevision = "-tlpdb${toString tlpdbVersion.revision}";
     extraVersion = "-tlpdb-${toString tlpdbVersion.revision}";
@@ -352,7 +376,7 @@ in lib.recursiveUpdate orig rec {
         mkdir -p support/texdoc
         touch support/texdoc/NEWS
 
-        TEXMFCNF="${lib.head tl.kpathsea.pkgs}/web2c" TEXMF="$out" TEXDOCS=. TEXMFVAR=. \
+        TEXMFCNF="${tl.kpathsea.tex}/web2c" TEXMF="$out" TEXDOCS=. TEXMFVAR=. \
           "${bin.luatex}"/bin/texlua "$out"/scripts/texdoc/texdoc.tlu \
           -c texlive_tlpdb=texlive.tlpdb -lM texdoc
 
@@ -362,7 +386,7 @@ in lib.recursiveUpdate orig rec {
 
     # install zsh completion
     postFixup = ''
-      TEXMFCNF="${lib.head tl.kpathsea.pkgs}"/web2c TEXMF="$scriptsFolder/../.." \
+      TEXMFCNF="${tl.kpathsea.tex}"/web2c TEXMF="$scriptsFolder/../.." \
         texlua "$out"/bin/texdoc --print-completion zsh > "$TMPDIR"/_texdoc
       substituteInPlace "$TMPDIR"/_texdoc \
         --replace 'compdef __texdoc texdoc' '#compdef texdoc' \
@@ -381,14 +405,14 @@ in lib.recursiveUpdate orig rec {
     license = [ "gpl2Plus" ] ++ lib.toList bin.core.meta.license.shortName ++ orig."texlive.infra".license or [ ];
 
     scriptsFolder = "texlive";
-    extraBuildInputs = [ coreutils gnused gnupg (lib.last tl.kpathsea.pkgs) (perl.withPackages (ps: with ps; [ Tk ])) ];
+    extraBuildInputs = [ coreutils gnused gnupg tl.kpathsea (perl.withPackages (ps: with ps; [ Tk ])) ];
 
     # make tlmgr believe it can use kpsewhich to evaluate TEXMFROOT
     postFixup = ''
       substituteInPlace "$out"/bin/tlmgr \
         --replace 'if (-r "$bindir/$kpsewhichname")' 'if (1)'
       sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath [ gnupg ]}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/tlmgr
-      sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused (lib.last tl.kpathsea.pkgs) ]}''${PATH:+:$PATH}"' "$out"/bin/mktexlsr
+      sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused tl.kpathsea ]}''${PATH:+:$PATH}"' "$out"/bin/mktexlsr
     '';
 
     # add minimal texlive.tlpdb
diff --git a/pkgs/tools/typesetting/tex/texlive/tlpdb.nix b/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
index 8765916060817..7685359a3a232 100644
--- a/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
+++ b/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
@@ -1,8 +1,8 @@
 { # no indentation
 "00texlive.config" = {
-  frozen = true;
-  year = 2022;
-  revision = 66590;
+  frozen = false;
+  year = 2023;
+  revision = 69413;
 };
 "12many" = {
   revision = 15878;
@@ -123,13 +123,13 @@ abntex2 = {
   version = "1.9.7";
 };
 abntexto = {
-  revision = 65705;
+  revision = 68837;
   stripPrefix = 0;
-  sha512.run = "e238ffc706d7902fb782c9f97cdc3dfd0492fb2b33ce1a2e3b6839d128fca3a9cbbe0f89e71ed456eb2bbbf00eafe2139e9bd310146af082d33f7f6cf5edd80d";
-  sha512.doc = "21bec45fca68bb40227ed64a2893f65b526e19ac635fd521bdb65409b41ef2bd5dab25977e9ca1eb4df715691fed3fc0eb4c2bed200398588997be5cc9271a87";
+  sha512.run = "9fb1177d1e97995fa8c7038e38fb827e491c2658af6844f62edb547f281120a9df873a98e509d3e67c577d46472c887ca96ce2e2436f748cba9086c6160f2986";
+  sha512.doc = "3d3d58d077f3072e9bfd9bc11e68e17e4885af88864ef80de1010c331c429895c5e03df438d3a0652a8d31623dde5b1cb40daf0a709af6c3a2e90658d13c596c";
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "2.0.0-alpha";
+  version = "3.1.0-beta";
 };
 aboensis = {
   revision = 62977;
@@ -246,14 +246,14 @@ achemso = {
   version = "3.13f";
 };
 acmart = {
-  revision = 64967;
+  revision = 69242;
   stripPrefix = 0;
-  sha512.run = "63bc67438a059caec0efd1c5e74a68cd225ca3d3802045641b041cc9c75013a96e84ba6809f055eebe592a7ef95479e1e84910e471b6168891e49e1d5da03b77";
-  sha512.doc = "5eda87dbf0e40ff096004083d301299734d77b2b65a9148587b241feefda71345d5bd69308e7101375d8985eaf7c9463ba1f8bf8113a1379b3d37b0af8fe8cfa";
-  sha512.source = "d60835fc235c226a3d5441dd2dfeceeda9a0df5e0b412893a8b8199c3fbcb411590c9a451c72dbd2ac15ef2fa4343c7f586a8f9756815e28c5601fff10e14a67";
+  sha512.run = "c51a10fb637e62857d723f103fa9c28e2d0257ebf8a5eaa9968c32446bebde6d49627cd1dee965d2e6832575fe54438ee62585ae1cf833af93537b7ed3521cd0";
+  sha512.doc = "fd0ad303a63510061e6e43c64f77f9bbc27dbfdd6011195f5ae64d5ca0e7263aed3261853652dab1576a614e94de677f37a5a4e165d8d4d525a61b86f023b2af";
+  sha512.source = "b8fff464e69e493152c1fbfd7feda02471f3e7a8ce3ed9dcdbc2b43d8fa30a587768d7c63754dab2a8b84969e5671f2426b748297ac98096fc323f9937dea963";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.88";
+  version = "2.01";
 };
 acmconf = {
   revision = 15878;
@@ -310,21 +310,21 @@ active-conf = {
   version = "0.3a";
 };
 actuarialangle = {
-  revision = 51376;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "0f3cb2dc7b0e392942c5eee41227c93a2559c3a268916393530342fc9600c9c4b946f469f222250c23d9b635b9b51a9afc598003a00eab71d641d9d78db29cb1";
-  sha512.doc = "ac945df0aad5f51dbc900d7b9def5115cc6aa48c081feaddf8cc7985daedce5fbc0ed633ab4c201a0b0af27327b028bfda1875ec6e2e1c90d038441785a0e8cd";
-  sha512.source = "4958cca024dc6918371f68336a67d9950231630ee8f011f9c190693f7d5454eae1d1daf51147f1887699a9c941562cc8c867ab7c388eaf2c154d5373ff245d86";
+  sha512.run = "23878ac98706c08b1fed8f4fdbe7d403f4f0b668ce069837ddd1d433bd3bd3e50e9b041ebec4c8256df56f1649962b7ba2421795f9adc3207a825562633a2b4c";
+  sha512.doc = "f28274449a2c9558a22e1b3a3d648ed2a456d6ee179168d06ab4a6cf339f2e0ae7e43c8b0d2ecd8697ffb8cf5308f0497a13012f4b481ec68e02248036a8cf96";
+  sha512.source = "9364093cb942abdca6062b66d35f1a0e9088c7bf653baca6bd2ecadb8aa2e743c311caed3ea52f42121511b9b66232d5ef0ed554a29a3253c8e52eadd83d0dd0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.1";
 };
 actuarialsymbol = {
-  revision = 54080;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "81260a4e92a75f5ace84c190b9bd7e6b46e8c697824856cfc69f4d9e9f14a4e0230d5623cb6e3bd546d84b29240865dfa14f433c9ad34875fec22944053bb5ef";
-  sha512.doc = "95efefa6e40a77806a2fe8d47575cb78c7e295ddb17b263d2e324610614d36d6ccf1dda75a428b12719d8c4b1fdd3b94656df1ff351f4fb98fc6a94eb87d357d";
-  sha512.source = "48211fe7604a931a8e53599d617bcf2be100ceed5003fd1bcc96ce84525904e68bc279ef672100044e03cbf70fa47f53548ec3686f70a795a50d78d96f792d81";
+  sha512.run = "a36df9659b33223efb54d050f12676e3aa0555c83911a901c5cfe137e8e7b27d68b47534cdd2064724f20a37715b46fbf6863a5935c9fb93f56e4e7ca26bf004";
+  sha512.doc = "ab15ff459aa82dc46a011a7601128dc7e6da720676390167ca856c0942f6a70e0d698a1624b443d3779446f3ac01d4af6bcf5bb5e1e0a17e0e5fefd3deef657c";
+  sha512.source = "3b587f3621cbf4d4446664c253a9cd27a6b69da3ed8d1bc09f6054bcdd450e40f8b38be336ce48e0ec251f1d8dbe45b17b6055251aa76bdf4c36b97ed8e4f077";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1";
@@ -357,6 +357,14 @@ addlines = {
   license = [ "lppl13c" ];
   version = "0.3";
 };
+addtoluatexpath = {
+  revision = 67821;
+  stripPrefix = 0;
+  sha512.run = "91d4f85e45181674b6ab2bda5ff3632aaab4abc0066c5026478d41c0205e021f12c3cb833c8c339c02e4e033aed351a5891f8527b95cc33f26ba534aeeaa785b";
+  sha512.doc = "ccc8ca7fc9423192a68260b6f441fa7be8a1144bdff8e0eee478f01e2c09d0e54f2a25d7a7fb935f76803003842f16e41916861d9a69e3ea2bca5724b1be5411";
+  hasRunfiles = true;
+  license = [ "mit" ];
+};
 adfathesis = {
   revision = 26048;
   stripPrefix = 0;
@@ -431,9 +439,9 @@ adjustbox = {
   version = "1.3a";
 };
 adobemapping = {
-  revision = 66553;
+  revision = 66552;
   stripPrefix = 0;
-  sha512.run = "ae5dc34fd64804c8429cede14efa25223c6ce0408ad13fcf44f5d6751174ba72ca72cc99b523837173d9ec92d7574088ff0169a40dc83dace188e01d1269625d";
+  sha512.run = "363f7fd337e5a34737608a2bc37521bb526ce726f5c9b5b4d08416e534448306002bc7af1be3f5e6fefcaba16ffc2260c4dea8a486d44dbccad577fb04d6da5b";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -464,6 +472,16 @@ advdate = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+advice = {
+  revision = 69283;
+  stripPrefix = 0;
+  sha512.run = "fab7716603412d29daf4710ec6c04742f1d2f898d818f1f012932c99ab51bb8c9746bd3ab5b18752218fd37dd09d4550f3d2b8ef59e9aa852a68a132366b1900";
+  sha512.doc = "145aad6269324b04cbe79c159734ae30f3b13cd361250260ba374fba07c39af8a00974d0e47195dc4a1390a881936c443c671b1e09e8f905267baec3a60bc2f3";
+  sha512.source = "49e25acd701cd657f41c5dc611b9fcf7342918f29f276eccbc584a88aaa0e0b777c5838e84f067924943bab3b22002fc94f4a5d8b977d2c64a09567ccbca0fbf";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
 ae = {
   revision = 15878;
   stripPrefix = 0;
@@ -492,10 +510,19 @@ aesupp = {
   license = [ "gfl" "gpl3Plus" ];
   version = "1";
 };
+affilauthor = {
+  revision = 68996;
+  stripPrefix = 0;
+  sha512.run = "4aaae3ef6ba9dcfcafff4214c3c425a40518687fd01600266feb3ac1f836f6d1795fd1c2903f57cc3010b7bf5fb153876a4bbb83ac81576e6423589baeeeeaf8";
+  sha512.doc = "24c28a1c6879c2a292a96fb10dace8d1dcfa2a1a71e07570a232ac70b70e4e9f10f7af823fb2b8d619dbf587e1f5cd9bc38e1a4e2fc6e22714e5deb27a0edbe1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.1";
+};
 afm2pl = {
-  revision = 54074;
-  sha512.run = "e539a12013dae7b30a83f615fe9f01678a25136a72ce754101aeb6bc8f1d287e006648f3050573ab211eeb00e5ac8082857b15e388d0da4886929a57d018fed2";
-  sha512.doc = "771e72385110bfaf133865ceaf9cb85a94dc1037f7390b027b21a9117aaeb00e88f67b191229fbbb61f417ccecd6556335ba1d2ba46a0a65079929a0ccbfb1a7";
+  revision = 66186;
+  sha512.run = "9ec87ccaff69c7467f803e4ce3f3408f8195cb93f571a7c7aa5f195d3de80b480b182831d239d8b2144dc72a5c26f9da58973075b6a939d23a51de0acdb1d199";
+  sha512.doc = "e18ef6478d02676a3edc048ec1f8bc37e7cca97e62164632dbf02595a051e6d09d19ba8422c4a617523dccfe1a6ed55fc9be34d1c0ffc147bbfa4e5d8f2daf40";
   hasManpages = true;
   hasRunfiles = true;
 };
@@ -599,10 +626,10 @@ albatross.binfiles = [
   "albatross"
 ];
 alchemist = {
-  revision = 66557;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "705bca949b8f95dc5a5981155bcc5b8bd2d0d36b2f7a7ce4d6eb4f0e6ba8a453171c76752ced654f971305df1677ba5361b04bd3553da0c189d78fa9ce8e6765";
-  sha512.doc = "d19c79d3e54fafae33b2dae0d3024955cc3e63a7968f0f3cd71a44d8ad570e27459ddf4dff4a470120141c6fd179d13a902aa83a70fab5471b6ac2bf0ed3ead4";
+  sha512.run = "3e4c4902c70deb8f380d3ff5e1a621f595ea1dc47cde3579bcfc12bd0a066d5d1d6773ffb1d1f98aef336c8cfdbe7770e1d48f5b89fabb98308f54df5dc75fcf";
+  sha512.doc = "cb978dd26bb9b95a29f6ced2ed4891f27fd0646daf560316dc1b20827a7af454fca1b6500bd4bd5c723c4fc6a24b77d6d7c7a6eafb3edc99e2098b11e4f53029";
   hasRunfiles = true;
   license = [ "gpl1Only" "lppl13c" ];
   version = "1.00";
@@ -616,7 +643,7 @@ alegreya = {
   license = [ "ofl" "lppl13c" ];
 };
 aleph = {
-  revision = 62387;
+  revision = 66203;
   deps = [
     "cm"
     "hyphen-base"
@@ -633,8 +660,8 @@ aleph = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "222d0c7045ddfdde5f0ca0ebe20a029c32fd0d4f35326c5ead6bf4ebbcadc86a2a2ff609bca3a6c3a04a09828c50c885f49ef9da0e6e548c18c2633400865c7f";
-  sha512.doc = "77d2daaacfa99d7f4ed5b70706751936bed5ae00ac67490e428d900b5fee3d78797d2324039743cbf0cb06a3a03dba17643d67d9057d020a95a536c860d5e78e";
+  sha512.run = "326c0c2327ec391a2e6caa5b7bed74af44be58df05b58dd2d2ed68ac96151282f63cc51dcfad7b84f3fa716b9df1d9fe97e27e4ebefe81d40a1e0ddf06be48e4";
+  sha512.doc = "33dbdb3fc2ed1cb698b1b3a1826771475b27e33c19ab102b5f0f403f670abd10330dbdb4223d9f5b96cff001a14dc8d25ecc9a084a612b9db8a1cc6a70bec090";
   hasManpages = true;
   license = [ "gpl1Only" ];
 };
@@ -670,11 +697,11 @@ alg = {
   license = [ "lppl13c" ];
 };
 algobox = {
-  revision = 52204;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "0c7b068f117a5eb591646e32faf3a9dfb6a03a218411d092afc33c7adcee30f95836a9d841444fe87a700288e293510763807d393043518ba70e64a3df82099f";
-  sha512.doc = "ccc96b84ea2d1c6c9dab8bd286e24f3dcb4fb9dd31904b1eef4b07a1de34a067f3cccd3d8e33785edced6dee8673e60d50ffc201643912d732660b1f14404d74";
-  sha512.source = "49e1b417bb0df72356f5d4046826268dad628d6872732a61cc7df789bd214799ed49a4a0778eceb31369fbf8cbf21c6b142a85348e10a7ab634828108b7cf03a";
+  sha512.run = "42192835e3dd2aedf96ae3602b3009af09512425cad0ee3dc859a972ea5b8ec46bbed35456b17f0ff7a31faead6df06c01734211bb0f206eba80fb05e66d2663";
+  sha512.doc = "5d5de2d91d0a5cbc63774259934fcb8b772eec36e9841d8f9e5d813e5f40cdce3171409b131ca788fb2b6eee651caa311128fa075eb22c969d2456b1e54708b3";
+  sha512.source = "019badab6a259e9e41ad21d81b53231fc9fd12f87c8b980610dc5a4d60fd7c1201d9f45d71d46dd3b583df1ae8725fe0b183c4ed0b4a35e849bb5d0281a6d31f";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "1.3";
@@ -716,23 +743,22 @@ algorithms = {
   version = "0.1";
 };
 algpseudocodex = {
-  revision = 65860;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "7b69eddad12567fb6fea17a3205c56e695ba73015143239def94e56adde3194dc847ee049ccbdde15e5a402be02c0aa7459f9ad20b1c2e0a1150ac06cc3f24e2";
-  sha512.doc = "2ea383e6427973ae31d54d8f04cb45e2ffe649310c66d8d9866160ac7f71af786ab0899b48bc8f7c704fc8b54063df3a5e786d7d808aabc371eea96dc00fdfc6";
+  sha512.run = "0a8b2e49f389066575d403eced31e57cba4af96619bb2ad09bfe51054193d3033705736ea23233b8da3e5e9e0714aa26c4132c2227fa36cdbdeb7df50035aec4";
+  sha512.doc = "5ebf9cb1c66d4e4987387958758aa5d174002409759a38075f6c32e2418f0db670445d2b9d61442c5fe719154d137e3156c6871063eae7e5c4b50593022af623";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.0";
+  version = "1.1.2";
 };
 algxpar = {
-  revision = 56006;
+  revision = 67495;
   stripPrefix = 0;
-  sha512.run = "90b0e879f0b335a2fae58f09ef3081096631a1cafce3ffa1d4ec396bea8c4c5911babc346b5c9864a2a9a798ff1ded2a489684ac97f6275d7f91042ae8e9929e";
-  sha512.doc = "d0e8e696fec318f395a08cfaf4e809b1fdbe3a6b86a162c69b6558eaff01c85a387bad0df4e0f4c4854572a45583dfec79db8ce78261c45a1cbb8112fbae5777";
-  sha512.source = "b60358558a1ca240bb4aeb1762855b200fc59db95e27ca65f8916411601c4315b7c05fd0e0b7073b2a627c2623e7398f3619d662377f1b3a72967170a1f45e54";
+  sha512.run = "3ea0ccb08a088e16c3fd47f5455ec1c3980d242c4f9db838ad07dad089326bead01c03708fe25fe3a14ab3abfdee93c864d1c633f5e0fe043b31962ca1dfe462";
+  sha512.doc = "196b2539e23d96f2f7967272d59243af9eabfd588c8ad4cf69174493084f5f3af0c088e3e5ee51df96a6a5de02a7d3a84f7f4f7b3f0cfec0fa4463fb929055ed";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.91";
+  version = "0.99";
 };
 aligned-overset = {
   revision = 47290;
@@ -791,10 +817,10 @@ alnumsec = {
   version = "0.03";
 };
 alpha-persian = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "c353e33c402622cac42e00bee21193cf9ae7d6f1f2480d3d81a1392b199a3c211613d3ebdd79d031630514005f7b0aeb308202f414df5ebf9fd09163acdf351d";
-  sha512.doc = "112458509e26a515fdd67f9720473ade30376d2b7a69ee1c335fdcd6dbba443738c098c94742479753fe68538fbeed9ddba031b124a771d1354f4ce0f46ca3af";
+  sha512.run = "dc0344deccdbdac04c5a798a52785e913d6da3997b907a07894f86b1b3ed12640a870eabec3bf5916f9835a8a405ae4c692bfb70a63022cf8b52db0c2c3e1382";
+  sha512.doc = "a5881df317b723fff5e00a89706584d05d650971a4bd88d3e3f71df1e7dc021289f9737d1d5239d6196be29307599c3bc1ff782c190032dbea9bea0140547866";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.3";
@@ -925,11 +951,11 @@ amsldoc-vn = {
   version = "2.0";
 };
 amsmath = {
-  revision = 63514;
+  revision = 68720;
   stripPrefix = 0;
-  sha512.run = "3a1f01c2249557038d07f4294a378156cb1b83e9120164e88f5825e09c2d1d930e513d4e10d7db293072ff80cdd025fa52735de86056dc71d5a60742c19be85d";
-  sha512.doc = "5280ae6e465401c08d1ba4a28f6f4cb0581aef8f1df1a6299ddb314356927991fb4db0db84fdcc3ab289c019c476c289a4775c776a96d18877273e75179f5626";
-  sha512.source = "60817410435a93668e8e19e9e326833c49cf792fdef272d4ccf90ec62c8a9c0d27e7aceb3e1c74572fb44c291d9557309bdb818c4b10f520c0144df2d6286d37";
+  sha512.run = "39e87ac8255c577fa8b1c0cd155d4fa21bd0c0f789141e6d1e75cad1c34a78bf5fa44277342ae9d93d80f4f88f31ca9f88dba9c592ceba04961e601e3e8e9650";
+  sha512.doc = "b1dff0cb1c09a184dfe9dd890ccb6e9e5bd5d2b109ce0b98336ca4cc1a45d4f398eb7822d02e9210c611c98a49fe41884b103e1b1e4f7c6b3b29b4de5be2ebf0";
+  sha512.source = "c1d052395b6f6291a269d610f713ce01383940685af91b1c2dd711b73f5d765e801524a538687d7f8cde055bb1dda9ca11900e4e8b58182b3cd792fdfbaca6be";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -951,12 +977,13 @@ amsrefs = {
   version = "2.14";
 };
 amstex = {
-  revision = 63708;
+  revision = 67930;
   deps = [
     "amsfonts"
     "cm"
     "hyphen-base"
     "knuth-lib"
+    "pdftex"
     "plain"
     "tex"
   ];
@@ -968,8 +995,8 @@ amstex = {
       fmttriggers = [ "amsfonts" "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "d92156cc5a01152776378c8809993b2ccbc9e917125d2ecfd2a06482401008385928e279a8832f328f7a8f4f3eeb746f9725e4986e4eb2f478c20a432ea8698e";
-  sha512.doc = "ba87f3c3858ad7d86de6bcc03e50c5407e83f9de4bd3b3c63e3ce612fc5f933fba0d10bbad88525bae0a1f489adbd02643687f650874409962ee5b29447e14e8";
+  sha512.run = "4f380f6c67b3c92d4be1b3a9ddec3b464e91ccc632762d6bf28f47dabf6e2e096471dd64804deb370349fe14ddffc3b4d37be195cb63f87e47a2345ebbdbd7fb";
+  sha512.doc = "94b3f6ac9f2314cf5e3335ea517bd23e0c08ef10e5edcc032bc5907fb69b04525ad434eb896ef8d5b149033148da55703039d5481242c2f5bf791c1b32c85388";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -994,11 +1021,11 @@ andika = {
   version = "6.101";
 };
 animate = {
-  revision = 64401;
+  revision = 67401;
   stripPrefix = 0;
-  sha512.run = "5e5d9cf1dc86374ef0f64c3b882d9d39c672dd1042ccc841c40889ac15d312d79433ef46cb45a367b9bc3ae5485bddbfaef9167475f973982d1419c6e49edd1f";
-  sha512.doc = "f0c9e0b9bc3210347d75d1b3a05ee09ed014ad498f19eb9c71f9cd432b2a8c19aad6e811a4eefb766bf22587a955b86d139ef9aacbc5d27ea51ae001f2640e7c";
-  sha512.source = "d401b85d3a90b37dc9950e9749bf10bf30b70b09826d0752893f8215962121713043caf9079572602560843ba4f2ea42af455d977578e2c17ab7fa6546976d72";
+  sha512.run = "dabe8762a0329d46ca8987621a59c38183e713c1c257e2cfcd2bbe36bd49bb7cf23b3e75e421f4bf023db2558bb9503d550efa882d77b229114649a15ffcafbc";
+  sha512.doc = "857f611cfccc96ed1ae63f47128e9b7b4240428f86ebfdb6f2b79c5f0c76858e7a917321330d841059be02c3d7ef45036f0a2ed441e27abfe68ccbaa61568607";
+  sha512.source = "d0b799be895882ba64d200f4c77d8794212fecce55b8c65e874b77587ed4bc186930f9abf1f662d0c7c7e8383f34afc3679f11679d22c035539d93b8dcd19e7b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -1020,13 +1047,13 @@ annotate = {
   license = [ "free" ];
 };
 annotate-equations = {
-  revision = 65851;
+  revision = 67044;
   stripPrefix = 0;
-  sha512.run = "bfb32b21539e4565bca6e5ac69bb1503e5265e21b0a9b70227849b0c803fec10cfe480750d2e95eaed98b073e33b8e0de7efda42fc3f7be6166d6d40caa4530a";
-  sha512.doc = "a52c3caf249012fb980cd8487b648452616545b31516bd03aeb2e09fb5ffd5f9930bd31cb52b9b026c193f5de3a39b737bd068a40f3a176ee86fc86eb47eea4d";
+  sha512.run = "4d4f64f6346eaee14dfe509857d2a592da825eed9ccaaa1a9c2cbf3a4d4f750441392d703c9c9665c88316125bc37192c0d6869f3e2f5274e7f80699f8c553c6";
+  sha512.doc = "9f958eafc15d7de177a3ea66c0e381ec76480845647af0969e34b7429f3543c51de33dff58d2a4faf10bba82eb8f3de097d3324955b1842806fc69e8cc6b200f";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.2.0";
+  version = "0.2.2";
 };
 anonchap = {
   revision = 17049;
@@ -1085,6 +1112,14 @@ antiqua = {
   license = [ "gpl1Only" ];
   version = "001.003";
 };
+antique-spanish-units = {
+  revision = 68998;
+  stripPrefix = 0;
+  sha512.run = "d5b6208afb1e098a66ecb7f4f536d4b4f2762705bfb142e66e4f83e38670b88db1be5f04ce3c8c1f1db7feea8ac3d92bcbf5a1ff099f87a01f05503c881c92d4";
+  sha512.doc = "b25eaf2cdbddf60950478c26874ff99e62f9ca8b726cf533958a723652c56e32e7279cba9c4a861d670a6933639618902dc914102af1dd8e672ea9a1b38ae67f";
+  license = [ "cc-by-40" ];
+  version = "1.5";
+};
 antomega = {
   revision = 21933;
   stripPrefix = 0;
@@ -1160,14 +1195,14 @@ apa = {
   version = "1.3.4";
 };
 apa6 = {
-  revision = 53406;
+  revision = 67848;
   stripPrefix = 0;
-  sha512.run = "76a307c077ebec0ef984e9296018e1b91a51e95db8d1955924a373e82feb5152ce453d1388e706e6b0ca46f3dcc71a8981bf68848a2022cd19e179fc9ecc0bee";
-  sha512.doc = "841821dbf4f8efa07a96dc37d26e21348ef5e1c486ffabbedfe973833d2328b8c5fb32196ae2e0323683d1d20b635242c371262df92ccc0c4bbe126c89263dfe";
-  sha512.source = "b7571a14e100e65748c31ae49ca070c42b3c6d868885f2ee487c76561858aa19744b890eb7bac075c43208ee8d6dd91ef327f8afff2758a1be6c79d23d50f717";
+  sha512.run = "17ca4d98885f30c42c6e5338e838ea2556a2f9dcaaaaa82a4cdc0d82c9a208388f66fec45a87211720b12da193d758d662fefaa8d95fd3246f3403091b4082ef";
+  sha512.doc = "244f143bdb9209482eba9c644a21b65af3a6990b5896ef079aaaac2aa57bfd4c0ae26878cf1f87d3f1744b3dece2aaebfccae4e0ebaa846944b614b76a12a673";
+  sha512.source = "fae9f67a6f34bbb7ebbe06d125a45b6b2fcbb2d631f7b9731bacf2e87c87493b4e0804b9381609147000e412d2ce55e5b0e582de242ef027e0d3ac08dc3ed05b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.34";
+  version = "2.35";
 };
 apa6e = {
   revision = 23350;
@@ -1296,12 +1331,12 @@ arabi = {
   version = "1.1";
 };
 arabi-add = {
-  revision = 37709;
+  revision = 67573;
   stripPrefix = 0;
-  sha512.run = "5db89004e82030185f34c0a38e4ba55fe38fb9fa087c7a25ee7f7df9180734ffde0957eec52f0110655ea273202b6cdf63114e3520cb23db80c48c6c74acb0a0";
-  sha512.doc = "4c44de9d3b46c605a463fd1704e56c5c61806f6e0dcc130251c81d0c555534e167034b6ba2deec1370e502fd006192540ef415aa42987f69025f18642451396e";
+  sha512.run = "8a9742a1499082ec9ecf5082f34b194e572cb94a0d0b6a3b1d6b8a01edfb9b3b53d42e3720b85fc2dc654d06b3641b95d506eac8cb393bb9ef21dc68c70e5adb";
+  sha512.doc = "c11ac1fa2b8dfd619060efa36f81ed0ae6d0e1b976c08894f7115d960458a812496d5ce4f8270350ead90a5a1614a8a61cfb98568a1e28d414fc0c5b370690ac";
   hasRunfiles = true;
-  license = [ "unknown" ];
+  license = [ "lppl13c" ];
   version = "1.0";
 };
 arabic-book = {
@@ -1323,11 +1358,11 @@ arabicfront = {
   version = "1.1";
 };
 arabluatex = {
-  revision = 54512;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "34c30ac3f9382b56c013fc8cd85c8c42ab903739c3feb73d5c1d6531340d2c0deb157b6b88f2a7554c21be413420484a667a0a672f04096a5dc2afe6c82511f2";
-  sha512.doc = "b9153998fe52ac42bed2bce670db355c805c274b71e3a1f18d8794c36bf9143641b01d9b42cb95f0c126659651aa7dff38e69a7a122326b54e719dabb6f7ebe0";
-  sha512.source = "bc4aabaf735415ae31c0b4a44e339ba7dafee4f5f01462a36c2871574fe540847e98e279f971c17f9cc22626f894dcf8ec5a74e4bbe92ec8498a43c6647231f7";
+  sha512.run = "c235430d724495035832ca32fe838ab5d75d48d2d68c6c84965f5fb7e5c65098356513241c82e95b6c6d806328c0272b775c1aca963df02ce2540052d62b312e";
+  sha512.doc = "d625d9d23d73a4c261c2099b77831dd1b60f38211a4802a3651e31f65c5d278c3cc3db8469cacede81c1a105cc6d4f605a5a9ef764b6171e4fcacf515a1080e7";
+  sha512.source = "260d4eda4b79f727bf33327953fd0effe33f12272d293a2fcf6d8a5da8ef918d42220effedf20a29e5d4f39449b461398f15b08dd1b73522666cd7a009ece904";
   hasRunfiles = true;
   license = [ "gpl3Plus" "cc-by-sa-40" ];
   version = "1.20";
@@ -1361,30 +1396,30 @@ aramaic-serto = {
   version = "1.0";
 };
 arara = {
-  revision = 63760;
-  sha512.run = "b30ab2023cea6e606301146c06b34711b4c40b771721724bef178a5df7a1bf3e22ce97675131ee7370acae3b6416d49b28f12d0c02eb7e34885e2609f8dc5ca8";
-  sha512.doc = "0c0b799f6e4f43c6d123f66b6a84e35607b2c10d6241c445376d29a466154634c559cb6282f4e3f66c273342c764b56604e00bc1ee12b4452ef78ab7620aaaf2";
+  revision = 68431;
+  sha512.run = "142cbad66e19afd1190d4ce76962a133b6340a72d6dc5c77b4ff6898223a00bbbf4d4a9f1d089e5256084e6a277314d904790f55e35143a07c217ea2453c2238";
+  sha512.doc = "cbac6e45e0a580887ea8da3fb1273152884590a7b4a3dadf03676e89f9af056eb1f276e74d0445b059382afc6a7239edf8f9dadce549d3a6b55b7aeb244f63f8";
   hasManpages = true;
-  sha512.source = "6cc31f1368d8588d9a7bca3717171c43786ab6ed7a1b3ed159d700324ec42bf588234483a4e56f7322726c30156900086a901f081cfa7010f79cc393a449fe13";
+  sha512.source = "850f8dc8292d391940340db96b5d53efd145924848f575719503f7cbf7c3dd1b87d274fa31cefd9ff3107fd2424c65b47e79abe6fbe3798f5c57f14c7c0960f5";
   hasRunfiles = true;
   scriptExts = [
     "jar"
   ];
   license = [ "bsd3" ];
-  version = "7.0.4";
+  version = "7.1.2";
 };
 arara.binfiles = [
   "arara"
 ];
 archaeologie = {
-  revision = 57090;
+  revision = 68476;
   stripPrefix = 0;
-  sha512.run = "40220a43a1f5775076f75379eb7c6c6eb4f7e9c709b7ff22b0db29868f5ac7e5def3cead10dbcd17e3bad2aa33af7942c10f5968c42494b5ab35dd6886c912db";
-  sha512.doc = "efc68c2bb845f1966aecf6cdb20694778212261d6ba6f0136c87ddd0cd5872d0196c99220c56a9c9dd50ecc32c1a59a4d4630ff3fea9b5d953a0a9ee3aa66dcc";
-  sha512.source = "2f3324c8844c5d04d35e3e4bbafac591c1c33ac2a0ba21d7b4b1231ae7883ddd53fee555ac89d2f2fe27358c80470b414f14fef073f03fc3ed405b96a5df290f";
+  sha512.run = "02768eb18bd866522380974e675eae530afaa9f0c0baf4e4dd6e5c0bcfef3755a54e79d9be2697b4e29cc633ec87c65179561d662cd99406556d3a66940b9199";
+  sha512.doc = "60136a2704265de25c0097e766fb50d89019b01524edebf6986db2c465d8dd2230f5d48ed5fa7b2d0c6f1ba5bc11dff4d2a171667d7743ad3d883e068c318864";
+  sha512.source = "0625c3bb08909e367a908f5f12f9f2e064e6beb251e7e79ccf0ff7fd15639e89040b4a3ee45cf28cd11b14559c1f1660812b78cca6d8dfa02796f9af85290be0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.4.5";
+  version = "2.5.0";
 };
 archaic = {
   revision = 38005;
@@ -1423,11 +1458,20 @@ arev = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+argumentation = {
+  revision = 69023;
+  stripPrefix = 0;
+  sha512.run = "d18f62c0c6c5cef4f85b854342671ebbc9224475d41488058543e682e41230f61cea4ecb68db767742c30d92ae2af1270ef47624608a3fb93aa6f8031b12648e";
+  sha512.doc = "bd6e12905e35d15064a357a248f4f5dbf5d91e37d0e742be0cd360e7d6079122090f29341acf11584ab563355481aad7edbbdfe1fa6b2455aee2b67e263dbb6a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1";
+};
 arimo = {
-  revision = 64548;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "f1b4c1edbe8a6e8864b121ed5411d4ac33158d68acfeab9905c49eaba315b784e0f2472ec8b61bb3241b202345b6151a0702aec4946a1de67125258c8c2edfb6";
-  sha512.doc = "14bc469a9288fbed519c8f0164f11c4d00369ae672d0c69f5c871aa24f54f8d8a4eaa5f189e30b42ada8e6f30dc8bd925b96b66a53461a2069682b89562c56f8";
+  sha512.run = "3c84fc274ebd29dfa65a8db214ef2ea74bb22da21827844be3b5648b7f10cba81a73772ccffe758b19ac16e58a75b1eb578a0ec8e85957f9693858065665a085";
+  sha512.doc = "dc70491f5b2b5a900f3d6f9bd543974b81976907a7c3dd53fd7530e3d0a6d83fc44a61607b27d9644eeca6f6228faa171916e67fc7517c35d466d9c50a186808";
   hasRunfiles = true;
   license = [ "asl20" ];
 };
@@ -1464,14 +1508,14 @@ arphic-ttf = {
   license = [ "free" ];
 };
 arraycols = {
-  revision = 61719;
+  revision = 68277;
   stripPrefix = 0;
-  sha512.run = "3f97d2424091e5690feb3e1e290d1135332ab146019c1b290e8c69ea7f048ecd779dd81c9b3d3f9a0d7c919f1bc9bb949bdccfb3939148a426b336cd22993398";
-  sha512.doc = "bab50fccd4ec8bbcc64684208eb8ad60b17ee55b534f287d0640562bbe1f1e2ef25698ee2fb80baca9e984e79e36fabb8411e6fa330bb33fad680b00ede665e4";
-  sha512.source = "e19bc42fa9a0d2bdd843eed789275f4d5a987adf9061535090f9d56ed182a19bd3950b10730c5cbe640f0261b545cf09212cb771b9a9a44163c6fc052b8c08fd";
+  sha512.run = "faf429613ee1987b92b369dc357f376c1465531cec8f7f78c37099366fa80954930afd62c553760b71a2226b0d245d9ad9664f4e5383803471bcf4f63f419f7a";
+  sha512.doc = "6bff5add83a6eb8f0c697bdfc5da076c5a833e856abf0b023002a50a85dd1a7cc24e0cd042a2fd28c18a37a88ac91f4f09a5c4f2911cbba30026fbc03df06c71";
+  sha512.source = "9fe04362a179851b135af96b0eed0d229d19f2d4623acbbc39dfcef375be7dc682ef08af3fcbe146d7ce738cbe8e7e00e9f72d549966efa674433e3024738ab0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.4";
 };
 arrayjobx = {
   revision = 18125;
@@ -1500,6 +1544,16 @@ arsclassica = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+arsenal = {
+  revision = 68191;
+  stripPrefix = 0;
+  sha512.run = "f103fff41a3e21594134b9902064001bb18e0c85985ebc99486378c0929d11eb3c12f00e7e23ed254029bca78adb2061575c48e9406fda890eb732b3cb90f096";
+  sha512.doc = "72295197eca81954e733409239b4cc13ff9ae87f5cf5c402a8d2904edf2e3fb6686fe2a0ea8bbd4d0e2bc0498507c47870ae1ac3cc2d722713ea4b952613a345";
+  sha512.source = "214ebf080bbe11aa5c3fd088b6329746202ae1c46867fc6f1ac23d56ca22b44b147a8e929eb895c86834d6d3117bfc1e447e3759db9b73f4ba14b824a952b00f";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+  version = "0.2";
+};
 articleingud = {
   revision = 38741;
   stripPrefix = 0;
@@ -1622,22 +1676,22 @@ askmaps = {
   version = "0.2";
 };
 asmeconf = {
-  revision = 65413;
+  revision = 69228;
   stripPrefix = 0;
-  sha512.run = "e2545a50595a8276de018afb6037f9d05a5e39ca9bda61b893ba75c61237702f4cb310df75b8c2daca88a4e46683f475e1ad7a1dac5641100f61d25202e952d3";
-  sha512.doc = "1f8587342100f63b3918ff5f11845f9fb10deb193215abbddf5f08ecff232889bbc28ef0f80287fe66420ce5bafa29917c239540ba1b0c860090564c5b3910f8";
+  sha512.run = "1953dea9ef81dc53b06888b912a67de2427448d9d3b38ddc75ebf3714912ae0092d372f82e107b4bc312c0af032b73e6e056f4e64df29d76d01614ae339e9397";
+  sha512.doc = "fe442954eaa9726fbd7b1a1c58f799fb0c8fb0cff55dc0eeb7930a131c77470aa87db26c3178eda57d1fb3c3953178088a4fbc8d6e8260fdbb884b382c08883a";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.34";
+  version = "1.36";
 };
 asmejour = {
-  revision = 65405;
+  revision = 68629;
   stripPrefix = 0;
-  sha512.run = "ea16b3b9d8852248ea87cd9da0ec78dde09c1da8af233a27a837aba266a6dadc3703cef6be5e0b5185cf7581076e4e8d7176d06215c2848f1637bcf24ce68195";
-  sha512.doc = "2c9e630113f8870cc0f78c31194754ef2d572534a599991ad16a301f85970cf8a437b719be6afa79711515d10d089486f56024504fc7af24989edcde4b656c70";
+  sha512.run = "a2c37b69e147b7174335faa13522e00a2decf12f6a0fff45c6074c27299a5f71b80181d81265a1ddc7169e2f7652f60250e94222dcef1423de98ec30576aed62";
+  sha512.doc = "1a788cf31b7ef2a1cbf0a7d439b36ad80c786f4719a6d6138120d4fbf22208fc151300774da5718389fe22e0dea83fc8d9b41f0e96b1bb7426d0feab38b2e4ea";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.20";
+  version = "1.21";
 };
 aspectratio = {
   revision = 25243;
@@ -1703,13 +1757,14 @@ asyfig = {
   version = "0.1c";
 };
 asymptote = {
-  revision = 66119;
-  sha512.run = "4f97d0d87d1f29985c83c99629fc52e8e18f6eabf95d77aa888429187b49ed9525661d9c06b46a9b2295b03df412778ede1490fa9cd8ec680c3209a4ca6d0be0";
-  sha512.doc = "940297c3d69de7e01caa09ff44483f7334aba14705bdcdc83661ca9be2210133e094f99a8355b4b88d076355bb4f13f64c21700bff57f452dd5dbc8d2fddb432";
+  revision = 67300;
+  sha512.run = "327acc6f4d21a2babb4d10ce3e888e95027e11ab0466e5e98ef3fc8140f0553cb95e3f961534c614934522e7c995078ceeac10a7a62a64801edcbeb090e54bfa";
+  sha512.doc = "38c4adaaf073eee94398ea11e7b9fe671278dc8f326689500abdc1a5ddd34b5be438de6686f830928e2cf879c1dec6c332e9c7228ebca1fa0c31284593c2c619";
   hasManpages = true;
+  hasInfo = true;
   hasRunfiles = true;
   license = [ "lgpl3" ];
-  version = "2.85";
+  version = "2.86";
 };
 asymptote-by-example-zh-cn = {
   revision = 15878;
@@ -1912,22 +1967,22 @@ auto-pst-pdf = {
   version = "0.7";
 };
 auto-pst-pdf-lua = {
-  revision = 54779;
+  revision = 66637;
   stripPrefix = 0;
   deps = [
     "iftex"
   ];
-  sha512.run = "053adb8525158b1c0703333bc9a20d3923468da54db4400f83c8c651820a01a9569542afb5502b56abf7034122fe5baf17ea6d2e7d7dbe53acdc7c2f9b1de68d";
-  sha512.doc = "dc7647af18502d3f7d88cb9dde9a4bc467204a78d6f6ef441d7593aeb2f9776532eddb94350081619986a0dece023c2ece54d3dce554188f5b62056b7a1a96b8";
+  sha512.run = "7d9882f2c80021409602f343e99dca9613f060056614f2fa8445b4f427f53287c4eb95af0a252ee3cddb2d6b47e1ecbc0ee3032dd55c209eb946b686f8037023";
+  sha512.doc = "ab6cc1b954ff26f5d7b44f12cffc7aa2d5ac1aa64e37a68a5952616debeecab0e34dd2bcb6e06a3f49e90d45e9b5f60955d8b62cb8d124ae35625b398e97fd44";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.03";
+  version = "0.03a";
 };
 autoaligne = {
-  revision = 56966;
+  revision = 66655;
   stripPrefix = 0;
-  sha512.run = "25e4d56033596a05c6b9e9bae4380dd5fc27d469cfa63272bb388fb3b38a57d2a980fadad7061c76940adc3d50e2115037b5299cd2f095ba5c2e9f47a88fb8d5";
-  sha512.doc = "ef84201b9cfc06b3c6f9031389bd9b593e5477f92507843689304afa8db67737887773d1d5c0a2be2fc77d922dd183cffa0ca27063cf27cd3d41664f76803a7b";
+  sha512.run = "b590b6f43bf17d54595c3adcc6de0e5c6780efd8ee68efaa5c2990f3e9e79ad6844397d6c7695d3ab66d72d4eb592c1455e4234f7a40efdbf4c788bc45216442";
+  sha512.doc = "d043ed183b3e30d35f7d4e6a5b5f094ae5bddb4e2265294c02c0888cf2e78fceb16b14cabb5b5d759b5397f58da1111d5fa590aab89a59ce13e3e13fb2e3dc91";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.5";
@@ -2008,6 +2063,15 @@ autosp.binfiles = [
   "autosp"
   "tex2aspc"
 ];
+autotype = {
+  revision = 69309;
+  stripPrefix = 0;
+  sha512.run = "f7bbb705f28bd5f546125118c48fcb2e02043ddec76ace5866206a3b047448740db06537d969584197de375bc195a8ac5712eda8bc00633befc102eee7c4e538";
+  sha512.doc = "a64c7184ae642968af2ff85a08634b04d526051f798c16a2d3ac1c42f7a948de11fe5b83ec9d208733a7e2fedb190c5175bd253d811c9a6838a5a3ee45768317";
+  hasRunfiles = true;
+  license = [ "lppl13c" "mit" "free" ];
+  version = "0.5";
+};
 auxhook = {
   revision = 53173;
   stripPrefix = 0;
@@ -2078,14 +2142,14 @@ b1encoding = {
   version = "1.0";
 };
 babel = {
-  revision = 65823;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "ec773d88ce631b47cce6543a6211d14c76568f5fcc0c52e1a4289784816eced7391b64d181abfb514102c304299fcdb72e47e8c197ca06ca2ab59aab62993635";
-  sha512.doc = "c492f6d2da0a55d4de187f578279c9ec4c7dc2570b4c129b3f031f6b0a5475cabd0b528f6d53bae1c395ea875790ec1ab9fac8364d7b618012365ac057a1e0b5";
-  sha512.source = "c2ccfd558da2768009467fdd9bce3f676038c4b405a227a71cf2e49c5f6dbc9524b23806e1915adf8a3d8511b7478964b0e41cd51b22d208356e5b64a2177d8d";
+  sha512.run = "8c4b15316808e7de5c039082ecec99cb1d2ab72909cb5c85899180e55d7d425db4440fe6fa9b9f801345c34d55fcfaefba2296d424187bf6f809ca1dd96245dd";
+  sha512.doc = "5f6a02d13ca3e1104587595edffec7735d84ae5b4686692db04325a1bf3b82a45c08c8fb94d6cc79b0da02778e30f7eb8ff0473fcbb30e260022c647e4a8fdf3";
+  sha512.source = "fab559d1876e220830972bae45ffbc2f25c1ae0c0d16f0ba4b857bac5a6f92316bd45951b2fc4c718f0fe3947d88afa0aeaee813787b23040bfbffaf88018850";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.86";
+  version = "24.1";
 };
 babel-albanian = {
   revision = 57005;
@@ -2248,14 +2312,14 @@ babel-finnish = {
   version = "1.3s";
 };
 babel-french = {
-  revision = 66516;
+  revision = 69205;
   stripPrefix = 0;
-  sha512.run = "6cb9355ae6dc0a1ddd6ccd12be767fab6d8af70d8c4d884b314bca67a20a165b55a49b4feab12ca8387d5fc4b9553cb13c2166a2a60cd4248cb755e512774a96";
-  sha512.doc = "1e5b9a8ac199167fa33ac627acd5501d9f0bb992c3cbe4175d141511830647623797d343bc8190273d09341e36e0171d00579b9fd37b77cbe8badae6399aae35";
-  sha512.source = "257f5fcf47fd7959647294e6ee240b7075410704836fa2308118fee99f3e9802d6c4481685d1998933a01a957aecb9901d9ee9afb0ebfc40e07754479d92306d";
+  sha512.run = "ed7e71eb62c61cdc41c23a0e351d7f34b3b90fc245fd56129325774d64755e1bf42e755a295eb99ff39ad300945c3b32c514eab53a338195854fd9eef2c2c347";
+  sha512.doc = "fb42614164d9231fd23672f9f548eaad2501d416c51c2a08c5aa47085111140f1fb1f3519322d17f1b13601238b6167dac92669af43cee67e0a8fef0934d2030";
+  sha512.source = "8ccfec652d691199d0e6f51be21e6b4f77f49bcfe83c168a072443f7c16f518aac34b3221efbf2bfe1f8e5ac30e6db22b556bf2a4708d232b077aa6c52d190cf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.5q";
+  version = "3.5r";
 };
 babel-friulan = {
   revision = 39861;
@@ -2297,24 +2361,24 @@ babel-german = {
   version = "2.13";
 };
 babel-greek = {
-  revision = 66347;
+  revision = 68532;
   stripPrefix = 0;
-  sha512.run = "eae0105f5f1a637677387065b8cb941336da2c4440ebeceef26f6c0e25bfc0b92089140d47332da372f31ed0a0b1e1e976092d636f142a21e1d27c61959ca189";
-  sha512.doc = "a76fc17e43dd86da4a05b3eb515167c436cd7c211ddc84f3b7fe37acf42a971684e09ea3af552318bf896b9fb5f5d75a461db6fd598df434e17e63fdcd80abdb";
-  sha512.source = "2d7ab1f4f63f437f4988cc7572ee3eaf9fdafec0fdc9d88cb132ae3daa83bac33a9149a9fb9bd92be7ab6958e4bdd787a23c815771ca073453f7e4baa0e2a6be";
+  sha512.run = "f81c220447f77f207dee02a5611edb3dfe68fb775abe932efc560de9a268570e688b3abe4eb3dcc094ac0c967360d52be02bc85c82daedcf173bcda269065938";
+  sha512.doc = "deb5a889b55a93101ee4c8571dabf00f8f971a6a27c2531c9e71a74e4b972ac1fe3efc6a336a6f0a38bb746316ba38881fcb2b4a90b64fdb5fa1fed51a7d90a0";
+  sha512.source = "aa891867efbcd19359dc6fa93334e43858ec9c4f7b0ae2d26c5d770fa2210fbfa16afe2ee8ca49fa3db1cd6b8680c8f06dc1069d760b65ebfbdcef0e54fc7da8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.12";
+  version = "1.15";
 };
 babel-hebrew = {
-  revision = 30273;
+  revision = 68016;
   stripPrefix = 0;
-  sha512.run = "4690fc4288ba1d2142fcda24153e741a539ddc4a52d3e502c1c349feb19609c7cef1427751af24b93df191f12d2b7cf2d11423052193df01d848987e66744dab";
-  sha512.doc = "cd4b52bb2d207cb2bcd327e2351bf30d18921c7c4f8a8fa79ce0bf8864d6f6a34e2272fd416828c772abb2df5612b4a78f73f54157b6d69b011c008495b93cd5";
-  sha512.source = "6d380ba803ecb1f6f268ebd2f80da0eca87c7f25d3374ba0a0432f9de6d39632613fb49e108ac9b7d97438b589dc71c37b47927b7387bad8809175355aeabbc6";
+  sha512.run = "7feecb0fecb5ba203e494c9ca8810c7e58df692617c7ef1e15128bc3d2c947fda90267c21b0dcb2743b18fbcc120da2a0f1ca0ba76cb74cb2e53b3039dfb1c5d";
+  sha512.doc = "849c598ce07421613bb7dbdcb1893efe5facd807e5ad54a507d62054119113f349e60186258b7a60bdc695d7fae757ae65d64e7bec68710046a4247e52510523";
+  sha512.source = "cbe6c2798fcd9edf4f98520172cc56725081158d2968f961a6ad59436455bead4553070ba5ff52aee705464d261d0880c032850e51ff1514e631362f64ba0dab";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3h";
+  version = "2.4a";
 };
 babel-hungarian = {
   revision = 49701;
@@ -2366,14 +2430,14 @@ babel-irish = {
   version = "1.0h";
 };
 babel-italian = {
-  revision = 62890;
+  revision = 69298;
   stripPrefix = 0;
-  sha512.run = "a30e451e39ed4e073e3a188ecd19933b965ffe94aeee3acc9b3443466df1fcf86b7a04ee0c6283bb92b17b0b11a975f9df7ebfdfa3306fbc15f6e2214e30afee";
-  sha512.doc = "4fe9d39aef8a29737aa8a6f945f1efec3a442aa072cb6fc63ba358c372d02a718f10a5d25df58014333c2a6bac9e97dc84e3dad86f8d81d45e4c1216a9eaf0ee";
-  sha512.source = "48a5d7f150658558638d3354398462cb5999a3ff18b2479885a989db816711610b9c2ba9b237d5ea1e11eae66441d8f6d88656f6df73e2b7d49e11959c79ae2f";
+  sha512.run = "39c9a5b40215874e74a86d3f994900e1dc3f5c1d0067b5bec224b5ca997a2bb254b914c9a15888e896e73908be5cba309a8da82fa12d797c12a93037c245256c";
+  sha512.doc = "ef2f87cfb66fff50fccc3ba4eec0f1c778765d49ac2976561f4963d9e12f1b2c486459827a44e66fbb42278fce72111d9aee373c1395f0532fcc42ab5efc5ad2";
+  sha512.source = "8436a5fe438a56e27efc22d979e56dd8f55971c598cf40702b485172448c0e5c959a1d9971f201c9e5e14df1d37815a39d9572c9dadbf6c6c9b0969f3529a3c8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4.07";
+  version = "1.5.00";
 };
 babel-japanese = {
   revision = 57733;
@@ -2415,11 +2479,11 @@ babel-latvian = {
   version = "2.0b";
 };
 babel-lithuanian = {
-  revision = 66516;
+  revision = 66513;
   stripPrefix = 0;
-  sha512.run = "18dd55b766a08088c49bc263560f5d3ae9ef0c644a3bc8cb70ef3496ae86bfc15eb4f450de6627ab1bd01365fd2d98230a46f92aa866d7eced55eb2c21e116b1";
-  sha512.doc = "f48446baa2e78cf8e5a730e06f53797b90d04827aebd36d2d66a3dc9c7380abab92b0ffc87d59ba28f4b0d603a77a75ba6f315c90ab3509c067243a05d8681cf";
-  sha512.source = "6fbcd3b900ebafb10f9b83591d28e5d61bce8c954ae064e6e215db77d9ba3a670687f2f133459866a5e12c5be7b6116b5608a83131dfe2e5752b0784e395d101";
+  sha512.run = "83e8aa3c7e8e018f79c848ebd884f0d0a07c87953611342b5a9f25df1241ddd931ede31a03b1670922049948a6f9ebc88676de0a4be9e144a3f99e22fb857fd7";
+  sha512.doc = "76dac9c2b95699a42018ad370afc1236668a37a71707a6c1a8fff1921df9edf30730f71337c1128f64b7448a0bd3f99e432ddbc1219534884e8476a8c7fdf338";
+  sha512.source = "1ad90b302e3e7d415fcf0534642a22fbced05f0cb3ff9218c73175b3bda74d0a7c96b27dd1401e12885233e2236e7be479d651829dcc04906f94f27012a5ee8e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -2832,13 +2896,13 @@ baskervald = {
   version = "1.016";
 };
 baskervaldx = {
-  revision = 57080;
+  revision = 69273;
   stripPrefix = 0;
-  sha512.run = "42db4e01e127ca3870f6eb692217a7b0c24857599f01314c41ff6f26664e3559c4a938fac1557e799e273b42df2884955df3dd72f8e0b44456b414b8831fc019";
-  sha512.doc = "df3462932654a6fee3afd099a92c5d12b6999003af1c76a3be3ec3f32035b76993b3806c88e670a26c0857bbc699efa64063a4f23c24055ec337481e65019e91";
+  sha512.run = "f78b61573fc99c6696dd9aac4f108f473996c5e67223e721db88f355b2e55a68f2b8a21c7bf994f2ee36a8fa465b55b970d65407b1ecfe1ffd7e00061bb70753";
+  sha512.doc = "8d1b8a3e12b958fe5dee50255c291ebe8ed75e8733a28a5fda7c927a9253e0d94e68b51e81ce8805e3c3855893f53947429fa9684c99925d80176522c72119e9";
   hasRunfiles = true;
   license = [ "gpl2Plus" "lppl13c" ];
-  version = "1.076";
+  version = "1.077";
 };
 baskervillef = {
   revision = 55475;
@@ -2960,7 +3024,7 @@ bclogo = {
   version = "3.1";
 };
 beamer = {
-  revision = 65975;
+  revision = 69316;
   stripPrefix = 0;
   deps = [
     "amscls"
@@ -2975,11 +3039,11 @@ beamer = {
     "translator"
     "xcolor"
   ];
-  sha512.run = "e74d15c057451bcd3aa915ddf17412322dbb71885661f7bd6ca30c0fefaa3451ed7bc519b78099594614bee126ae72c110d035924b8db2e23a9e535408fdee19";
-  sha512.doc = "bbe680442b95b9d953e9e82e439b2885fd9830b335aa8310cd1adcb6493cdfdc67c61fad887a44704bee96ccfb743d8e101a8ace5807babad88e083fed17cffc";
+  sha512.run = "25fd0161673badc509511fe31b4780a68011ac796e12a841ed185ccb5d9eeaa22c519ddbcd2fc0a5cb70ba94a0752b6b5880f86dd499e4c89f1a5b708f3d7fd0";
+  sha512.doc = "8893df96934b3325455557a8a4499113c9d69d563452a01a81107054d99bf4ab67308482a70a777491d208d3e008b60d9c8f76cd560f1fb8af82d97a2a121bc6";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl2Plus" "fdl13Only" ];
-  version = "3.69";
+  version = "3.71";
 };
 beamer-fuberlin = {
   revision = 63161;
@@ -2991,13 +3055,13 @@ beamer-fuberlin = {
   version = "0.02b";
 };
 beamer-rl = {
-  revision = 65725;
+  revision = 69254;
   stripPrefix = 0;
-  sha512.run = "116da52bba8c3e49784d4cdcc50e1326b9e2455741fa1187d51c0757dcbe8ad4e27300e26143413f5e5868cdb845ba044655a263a6a709268ead43f0398425f9";
-  sha512.doc = "2acce2762763518cbe8bc0342c2b742efb685bbc83159a4b3ae9ae254f5bb8326aa0dd83691e4115b9c63ff83822bbabaf461cbe5385aacb4ba7a31782bcd440";
+  sha512.run = "36f3fbabba1319d8019862455e97502d5446f1838db4fe42410d75101f430270df3abdafb61e7fb565040d9aaadc987cf268010aa682fb509cd7303f6f2e6dcf";
+  sha512.doc = "d0add94467afb47bd358ef5a228e314e280b92c8c038f3e6b6f2a28410e8eaa6c984a34b43902e4b6abc2c0246e732be9e9e31065e11cb14cabe5dd34b15e941";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.8";
+  version = "1.9";
 };
 beamer-tut-pt = {
   revision = 15878;
@@ -3101,13 +3165,13 @@ beamerswitch = {
   version = "1.9";
 };
 beamertheme-arguelles = {
-  revision = 66373;
+  revision = 68659;
   stripPrefix = 0;
-  sha512.run = "3f80674087810ba9904fbd6278059010df99d4c3583043efa2a8d09e1bdeb88c1e116c537eb621196a5abda921531ccf406c6d694e4e3773493afc1a05dbe2f8";
-  sha512.doc = "bfe9877c96c8930a3e9c2f36ff09b46e698d2756ae99ca5bacfde4c0b86a30af7320860cdaeaa0f841da228489109f2ca111bb6e5bd6de6a0cdb4c4ec019d75f";
+  sha512.run = "e8b070e76ada96ff6a679c6c7d553d7ff67d4cc3fc792183bf68eee73fd9be3059eda0f0f7fe970655b6debef3af018b15b3a408bd494bdd506bf187d80055a5";
+  sha512.doc = "c9f34943ba6a1233f24be443a56abe9aabd51dfe7c4531ffbe793ddbcdeef637edf87686934b09e78bcf3213d4530165bf28646e86300ce790b94f0ad8fcc7b2";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.1.0";
+  version = "2.3.0";
 };
 beamertheme-cuerna = {
   revision = 42161;
@@ -3191,6 +3255,15 @@ beamertheme-pure-minimalistic = {
   license = [ "gpl3Plus" ];
   version = "2.0.0";
 };
+beamertheme-rainbow = {
+  revision = 67542;
+  stripPrefix = 0;
+  sha512.run = "220dd54bd2565263ce7bc48068c96b48a0677f36ad5f3d826561e1d0ca21f5ecfa7ab675005e7aef40e4b9e9f149ee341c0ed82ec8a5a6fcab40785cca97289f";
+  sha512.doc = "bcf12ee63331bec8fd8c5443231109bcf1027d1abb9ce94c919c17fbb8a5248bea503acc25bda67226fcea1e30a2ae7283cfcce6a9b937362086e9123b4a429b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 beamertheme-saintpetersburg = {
   revision = 45877;
   stripPrefix = 0;
@@ -3218,20 +3291,20 @@ beamertheme-simpleplus = {
   version = "1.0";
 };
 beamertheme-tcolorbox = {
-  revision = 64387;
+  revision = 67000;
   stripPrefix = 0;
-  sha512.run = "9cf46f7998a683675640dc4f6bec5bc873dbe4fa09324ce1e3c32b0f1baf297b6f0ed9f25fa5f346e718e9290d697b535b23da927c5630acbe61e20835faa68b";
-  sha512.doc = "9c779600fd21e28052fd345871ed9541eb7ded8dcda3a63eacfe0de72dbd009f61883b5564ad3168483b2b1d4ca7e138d678c14dc67fbeb4b58785d33c22542d";
+  sha512.run = "bcace2249558b6519dde1d9c80da791e38330de31da26c606d8bb8a780952bc2cd57f93948ba191606bd44c2260819546a367e34f672555db22d0c736a6b959b";
+  sha512.doc = "240a7be55ae035ae4e155efa814639de14a2c5ddc2dec9bfb963df2010026e8cbc7f6c834b6445695dbd7f1e68499e123b505de068fc196ed25a86115c06261e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.6";
 };
 beamertheme-trigon = {
-  revision = 65974;
+  revision = 65985;
   stripPrefix = 0;
-  sha512.run = "0f8c9af1c1dde891be6d8fb924276c72742a8d45fad9bee7c095c20e62576b65162178f9d6a11fdfe97a86d7ff3501f6b21ce3eb404f29bdb7224fc41428bfe4";
-  sha512.doc = "91c5d076b2814a6d4c0a57b9e2d91419ee50bb57ff38ef1e040d2e227f68a5a68668b35c9a24e3ece8d3936c2bef49786da6bc93e1594ce83ebb314058b670e2";
-  sha512.source = "f770036c49ae0c8e875a02ed2350d6ec9526bd8a576077799b4839a723c26b3961a3c98e2271507e787b5c6a27f0d62ce37e0d062dec4ff1a4d54719b86eb156";
+  sha512.run = "1269b79603c415123a91093bc69cd672aa54518da7e7cef52193804fcede45dc09fe6748f2c0c940a754767963174e768b52873fbac5a520f7076229100ff016";
+  sha512.doc = "83b6946c17d060c299260ff272130938933dbeb9124b1608e8f3bd886b2f63851773181dc1efabe901196b37f7254569a5b5de0de7fd39ff558eb21376ffaa27";
+  sha512.source = "49f9d4cf001b45b29a5c7b59155d72e286092157dfa5c0dfa05e7a20958adefda2a182974508f9a0936acb1d5ce199e21b350e85da7e292525b2aaab60e2c6d3";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
   version = "0.7.0";
@@ -3300,20 +3373,28 @@ bearwear = {
   version = "0.2";
 };
 beaulivre = {
-  revision = 65475;
+  revision = 68376;
   stripPrefix = 0;
   deps = [
     "colorist"
   ];
-  sha512.run = "cfadd2e47adc0f4fbe6eace5ca12f2e4dcd42a5efa681d4e0dc2f269957a582bb463c6230671ba1f4c35bff7299f4764f8f3dbab75d35c54a7e7594f6a9ad68a";
-  sha512.doc = "f72326c7d83bbf6c4ce9cda132efac84e5ea1cce1f4a64842c6bd5b16c8a393e4a8e7fe15b064d49597f9b23a81bfc40bc4c43bc07f30558042d8f0f97cc484f";
+  sha512.run = "edef18ea01309678c4fd177b08cce8c5a59023cb521c9adab9cb88e096c3a4af3c2cbe035360f9310914252a9f0ca71a0bb4a8e220c75ea38fd2dfe8faf0d639";
+  sha512.doc = "8159204651670ac0ffb0d3d4b9121f573e86bdbaa5619ac461393d097f5d2a94dd547e3dfc83b6e8aad0b57dc2913bebaf77d41bd0355ac55ea4c74175a73922";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
+beautybook = {
+  revision = 68438;
+  stripPrefix = 0;
+  sha512.run = "68df2cac1064c5636f1df6b5f9d51773278798310e7d36550f2a55c05c8d1480518407a97037d0167fe92fbab2f8d7be73d528681d66f63afe644ef3ede38ca0";
+  sha512.doc = "62eeb012597c27e02b00ac5d7b2b280136986c412baf7113634bf62e0fe82b1fb9e4fdab3ab6a2345517a046fe46bfad6f2031926f07f69609e895800e215ed4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 beebe = {
-  revision = 66287;
+  revision = 69012;
   stripPrefix = 0;
-  sha512.run = "3f470175ef075692f753d8d758e8a94ce01ef181610b267ad09e2e50c51d51930caa32f298e27a9f127f74d0bd672c6e5a7453178c30a893a9c535aa8d47a5cc";
+  sha512.run = "46ab5e24904f3a5f9fc3a548a13b78befed28d1d32aad38aa57a619313aeaaabcb5c131e14103c7c9c02b42297bc59e0a096872ecb3342cda92ec5e14e9c8c29";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -3347,11 +3428,11 @@ beilstein = {
   version = "2.1";
 };
 belleek = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "05824940255b84f080261bf4cc2f192a40b6f53fe0620da486106e5904062570ce73035f710fe56405eae6c0e99f03350109f0f784ad524840527a2047b47fb2";
-  sha512.doc = "16bc074238cb02f0d08c1facecf01d4de9994e4f1458f32a0a62616d31e204971af6ee8a64e2e9ad473fb87c98fd03453896c3b1d85505b8f0a46d08b3738189";
-  sha512.source = "617c3011075b005d2c56b093df07edee8f1538e1813d515f0fb71f6b9d3e5d78473630d36e33315f725998891ba043cd301badaed6017b8028e69bc586652b03";
+  sha512.run = "4ae91c01e67fcefd46da99d6bc8379b3829e4e0e88f512f36bfc9743d075090d0c26d0eef11dde5125b344e85ccc3c5a31569f3a1078d00d364ea80120bec30d";
+  sha512.doc = "93266af4f4293639a123f5ba88e2680d87e6d815f49cd7dc6c9322866dfb22308716da1e362699aeded819e7817987938f70cf48c9166e7127836de743e5dd63";
+  sha512.source = "b8547d1b3da8be829b7fe99d0cd7cee8fc6b7158c1799712ea85614534d0b020cfafdc1696a0e5037ad15b215173e1461c64f86a1f52795209272aed9991d107";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -3455,13 +3536,41 @@ bezierplot = {
   version = "1.4";
 };
 bfh-ci = {
-  revision = 66465;
+  revision = 68828;
   stripPrefix = 0;
-  sha512.run = "f17076389ce9b898e20d38768bbbd379c7dfcccbc8f5cee99b155cc68b0133369fad4198ddfd337916d4ee0ec12ca40bb3ee4e7d68cd6fed7b1f2f6a5096323a";
-  sha512.doc = "8efa11a2c8193fee4d10219309f8587b08f18514c966bf2034f62e05cb1581067597412e073d1a2240e62f0ebf7519e0c8aa97ff254ce9a613b23352cf11e994";
+  deps = [
+    "adjustbox"
+    "amsfonts"
+    "amsmath"
+    "anyfontsize"
+    "beamer"
+    "fontawesome"
+    "fontspec"
+    "geometry"
+    "graphics"
+    "handoutwithnotes"
+    "hyperref"
+    "iftex"
+    "koma-script"
+    "l3kernel"
+    "l3packages"
+    "listings"
+    "nunito"
+    "pgf"
+    "qrcode"
+    "sourceserifpro"
+    "tcolorbox"
+    "tools"
+    "translations"
+    "url"
+    "xcolor"
+    "zref"
+  ];
+  sha512.run = "8aacc57f0eb40e83a6331cf86b076b287787672421648df65814214b60e739697d97fea5d8d18f112c27ea60cd2f2b9a26c31fb6074b9c1f1cba4522e96a11af";
+  sha512.doc = "fc7e441fac29da849714c79ed0f68e94059d09c1472b4c56b3f100f0e1af730963e9d0bedeb3bcbb87512ef68535321d6df13370cd9be3d5399cbc05e7f1cee7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1.5";
+  version = "2.2.0";
 };
 bgteubner = {
   revision = 54080;
@@ -3502,65 +3611,65 @@ bib-fr = {
   version = "1.5";
 };
 bib2gls = {
-  revision = 65104;
+  revision = 68534;
   deps = [
     "glossaries-extra"
   ];
-  sha512.run = "009e393b3083a3260642cb36dc463c714689d1b32d07885c9d20092e4f7386d05118c452e6f97001120f70558a69aa58d757ae0998cefe10e164bb172e432fbf";
-  sha512.doc = "2a22e662fa0c41581a3c9d9496f97854ea2faa0d01970ab0cc0542048d0ebdcfcbf7ddc7fcf519510d99300eb6634f1c7688874cf02cf6052962d903c5810887";
+  sha512.run = "98fa1d2a2af4c0bcb63aee20725206d015d9aeacae7291739d1b0e2a11acc2a0b447a6da8229bf1f09cbbedc4f5071401ec5f61a4a69e64658ad62e927e6618e";
+  sha512.doc = "6213d39c6029ce142232f077e65173b92b9eeb2c88b4d15431301687d4fcc16dbced3ab4817241a1f252c5e8eafd7f63f5bd71ce7d7dcd277b49bddbe351c93d";
   hasManpages = true;
-  sha512.source = "da69973053fda82589612813834134837cf9680f4257a6336aed08213df0ff4c34dbef3c7edb833c7987549599cc48ae82dec36bac96dda003e3de3d1422bc6d";
+  sha512.source = "b029073dff63dd547fcb5f2359c0449e1d91c9eac243cc45a850fcce917db4fc22646bc45e47f5fee14b75ae67e75b13bf4677e0e76868c5a83e689411de28b4";
   hasRunfiles = true;
   scriptExts = [
     "jar"
   ];
   license = [ "gpl3Plus" ];
-  version = "3.2";
+  version = "3.8";
 };
 bib2gls.binfiles = [
   "bib2gls"
   "convertgls2bib"
 ];
 bibarts = {
-  revision = 64579;
+  revision = 67407;
   stripPrefix = 0;
-  sha512.run = "df6f803918f6beaa20ddf581bb531c6f9cb488a77262dc075a00e2ab5e8aedc107697c17cdc4b0310702db3b565dcba4fea68fee9b9c0a2d6a9109ce3c8d2ef0";
-  sha512.doc = "ec614687a713c8c1542fc8a28aba9bf837eda9c91d63e6236ad021d2eb13d052ab37d078263fc9f25ad3279b7e721cbf39de4cdc94db4c18dd06625e5fe10507";
-  sha512.source = "b4d0e27e0bcbfcc140c6a28a5d0f7b9150ce0c8ae07d7a6e96d7669c3f91da5e41e8d52e53f9927a00cbc534694e45dd787ec6786627cba9d81fb841d0aa10d6";
+  sha512.run = "358492693511d2de25fc7e080c862e1aa6a6ba40655fbf64991092a4a56c76a35f9fa9f8e0035fa042f0341f8fa9f13a5615079a2c9c56af36aaba4f41385865";
+  sha512.doc = "d708263bf3d867e075281e0cdedca007fbcaf8cc333a8c7c0c9a0b79e68bce1c100b263a740e232a5f84861726dda947914a7c4ba52d87315163db9528c2c544";
+  sha512.source = "b1d8043b2f7c49e6bfee9b1b82f361450878f6059cef790f12e9a26279caf25f2bf446b4b70c1882478503586b700e7b2e78a6c631264b1c2498ec493ba20ad3";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
-  version = "2.5";
+  version = "2.6";
 };
 bibcop = {
-  revision = 65816;
+  revision = 69395;
   deps = [
     "iexec"
     "pgfopts"
   ];
-  sha512.run = "a035642f1b1827f0b6b4d15b4115054b9ab3ff49d7d369f3e304cab5964a707b23865b837c6b156b913e33fe8ae5589941e6ff284ee0b62454a9eb8ec77f3442";
-  sha512.doc = "93abe6f0a97138237d7546d132385069f8ff8a638a31cf9be23619b812fa578af808e6f9ce04c06778a4559b1eef98b7d24a0ce5ce6eb5ca9680fc2ddbf7c4b8";
+  sha512.run = "e4520627247c144f8fdaa3f3923f150297714171124f3e76e0d772ef0455d89c8229574a3e9bc8875c6902103465dace4eda81b0e30de3830152f3cd260bc794";
+  sha512.doc = "30ee2abd74da23ece25080c25c9c94bf44a54dea50088fa6a04109a7f67c9ddbd08973679499854cc4a29ed432a110283319cd2f8f53f6aed005a03218d0ab0c";
   hasManpages = true;
-  sha512.source = "42a5b9a9f058afa6a1460a3a7c6f7dc9ded6abbd8915529f8366d2df9c2871727bc766a407d2dbbb6716420da7115af5bc2795b343c974f2bf0e1d673d8e96f3";
+  sha512.source = "e2bfecbc459f92887760ce2862874f05a392970c8d5dc5564a46128564f7da7d8dec4d4fa27ae4381efc79222760d76c74f19f5a6216fc234a377f83402ee0db";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.0.9";
+  version = "0.0.17";
 };
 bibcop.binfiles = [
   "bibcop"
 ];
 biber = {
-  revision = 66456;
-  sha512.run = "09e6751c129a0fe21ed251d191fb0e0e4a1b7896e03b925a024f19eb8c7526b9134e9fd5fef7a02e525dadc589976a8744b249a9486b5367303b6f830e0d3eb2";
-  sha512.doc = "d0ffdc4417cf646c8b8b22af56abc0258987943948e314c194d2d1cd17c2124936d9a8a2e5c6db6da2de3d6c67d36da2b01e5be07ea83e16b06c465cc8a9eb12";
-  sha512.source = "46f654ff68533544bed787de738e270f4c82a57867603831ef9cd1cd3704a2ce3c052509835334ee0e8bc476b13b9521fa71af62777e26c044ecda7923b43e44";
+  revision = 68188;
+  sha512.run = "07222b2bb0aed6b2de71b1e061c878e409205459decf998a7c100ae92dbecd91549a6c5e2e0dabe21f742fdfa7a57704252ec565d9e7ef0bb1d802fc1939edc6";
+  sha512.doc = "a02c41efa4a5fd8ff79c8112dfc22b45e9717aa572021aaf93ede35ae57d91531dddc004497b562c605350dcff1c96441f7613d6c922e882652e9776707022b8";
+  sha512.source = "8fd59f63eaa86ea4d87c8c01458fea16c0e470969f3dd6ac65e20954e8a63e793a58888cdb61f913fcc291fb5d2f3e0205e7e7488946738e27c23f1ac51be9b2";
   license = [ "artistic2" ];
   version = "2.19";
 };
 biber-ms = {
-  revision = 66479;
-  sha512.run = "8a0bc3d5e6d4cf3991ee7b0090d62358e3d691af9e901a1cc91396a0a01cb59ac2e707b941d32d18c35345987180bf60c9fc0ec259dfd9d25fd18dbe216f8bb8";
-  sha512.doc = "5cfd427c1324b83b33a5a5a93c727e9f6551b292d63e5e7659d8bcf2d1dc4c323bb58c40017977b9545930624ce1deb92ced28ac80a5a91df80d207a4f1495c1";
-  sha512.source = "9d68fa2f2a1e28c12b34e21c08211de8582c613c35693ef59bcb7f592a650a043ed81719cad6764952403ce19c435465b990f6701ebd7127c3c8fcb8010b4b9e";
+  revision = 66478;
+  sha512.run = "8e78b381978835ea25e8a973fea35a653f37a23e4ab3f0a83f26808f142e4b2a91ce61ab230f7667b222af249bbbae08b40256cb82fb8ddf39c89b7dd042c3e8";
+  sha512.doc = "82bbadac2732d19b750cbc9ffd76c9a26409837b0e1b9396d405b9a64a2e5e9997fc11c53d8d399f815bc822feb1ba3fe9fcb50c8e9401ef7b2c9790450ab784";
+  sha512.source = "9c15f088c5c97d63b928ef10a8d1f0a628874ad664182b631e5a52407b1a034bea478fdbe1c287ddb703fd9c9d3d84a8bdb47ea09d6de25ad99aa1ef8e227fcd";
   license = [ "artistic2" ];
   version = "4.0-1";
 };
@@ -3592,7 +3701,7 @@ bibhtml = {
   version = "2.0.2";
 };
 biblatex = {
-  revision = 66405;
+  revision = 66403;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -3601,8 +3710,8 @@ biblatex = {
     "pdftexcmds"
     "url"
   ];
-  sha512.run = "7269a29d39552dc9041644c186917662f874ca70f70240b57b00c5a3de9413634ce8fccb82a04a9fa63f0a884bea6eb8d2ae61b0d8263b237c3a335d7b5aac84";
-  sha512.doc = "bdc1836751a1220539bee8f4a59f2afa072d452ec09cda9b69c8f2c3bd1b6df58d972af73ea7b8ae3cdccb512c5adbe3b74ea32ab7edbf9790ce0d40b5113c26";
+  sha512.run = "e07cd6233021bbe2f3591f866c3b3eeae083574f705da9505f6bcbb7284c243ac7f24440253c4557f0a300e9995188bf5915a42643e63eb80ff9e0fa4ffaff1c";
+  sha512.doc = "f765e31a89e4deaa9578b30aa206d8f26ae7b3545a6575a5a28758263fc45eae6c5d3b5aa1233f3000f731ebed104180cf79fd051b47a79699c89305d626d0ed";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.19";
@@ -3635,13 +3744,13 @@ biblatex-anonymous = {
   version = "2.6.2";
 };
 biblatex-apa = {
-  revision = 63719;
+  revision = 66605;
   stripPrefix = 0;
-  sha512.run = "cceda3efc358f1cb2ea6e8c19063e3a2568e1a7569f6d18a10db5db69347a8fce01cf1a2e811af35b8905f096527783f5c62a875978c807f2860eb2e123d0de6";
-  sha512.doc = "cf7ef8e8998b7be34c115d71a8c832724277baf775a03313e5e4bb906be140eb996dde8852d95e46950c9ba9d725cfd08e51177e2e3c133f8e1ea8977f71df16";
+  sha512.run = "d86ea9a83fd5c1f08bab77c12d6f93e241d444c10554918a8aa91ca4f9677531dac291962e354d2fb19668c3e59fa14e256039fc2cae2bc531c2ffaaa2ae3735";
+  sha512.doc = "84f00557b32e8a50a1256d7a39635c77ee6a59c9fca1d36e571df8540afcef5cf0bf8b1dd648a0eaac1c45744d863774da2d0033223b5e3043653f8759b31388";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "9.16";
+  version = "9.17";
 };
 biblatex-apa6 = {
   revision = 56209;
@@ -3761,13 +3870,13 @@ biblatex-cv = {
   version = "0.01";
 };
 biblatex-dw = {
-  revision = 66534;
+  revision = 66579;
   stripPrefix = 0;
-  sha512.run = "e45780eab8c3c19e129193dc83ab34ff7d0ef2636c1c9ed89bc9302fa3763448a701dc4cd9ae2d7ea17c18730b7daed22397a91469c8d50461e660d8486c2f11";
-  sha512.doc = "ab8cb148e87de3e8f9100f60d0dd6da56b0ee3cdc5107c02ee29dd0f14938181b2ca8e2138745f2e68a7107399090b2b0b308708a613a649a89e2683b519482f";
+  sha512.run = "bcfc88a15950bce48844dfdfcaa8cc946d553c9fc31b3820dd52a9f4588c55e253cc593d13b1dda0b38153a21b93a3d9a868398296546f54b5b804c58eebaa1b";
+  sha512.doc = "54699b3f4e89bafa89cec29ed14a0ac32269bd52a68dda7916961b50032fba9ad3acadebb1737d8bdffcfa07f99fd104ad3fe19f0a1f569258fb4ceacefcd1ba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.7a";
+  version = "1.7b";
 };
 biblatex-enc = {
   revision = 44627;
@@ -3779,13 +3888,13 @@ biblatex-enc = {
   version = "1.0";
 };
 biblatex-ext = {
-  revision = 63638;
+  revision = 66641;
   stripPrefix = 0;
-  sha512.run = "f0ece2929a62260440cfba408a9abad4bf023102bac3b75ba3d024af760b9ef55a1378b6b1ae4e4d37cc56d62694e71481a39c7b6d60b9cb25515df96e6179f9";
-  sha512.doc = "c51a10472697acb229d3cd4484d6d911b4990733824a397854a331c39074e79df8b005b051bd344ffbdc9f0869d9cf63a832a687607763eb56394af5c27b5813";
+  sha512.run = "d39e7a2418beb7b627bb6cb9566dc17553f0f33c6c720a6da760976d6f0333cc15763d79aa2dd09a70d571a3be886d4129896db14616e8e28d426cf41945da8c";
+  sha512.doc = "bfca548e2bc673037efe14a54363787311c05c8518e868f7333d958f45b0a75da7d65caa9dd993ef37408414d27576ecc2cca7eb5d2e5e316f4f2f94c961d8cf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.16";
+  version = "0.17";
 };
 biblatex-fiwi = {
   revision = 45876;
@@ -3797,31 +3906,31 @@ biblatex-fiwi = {
   version = "1.7";
 };
 biblatex-gb7714-2015 = {
-  revision = 64967;
+  revision = 68240;
   stripPrefix = 0;
-  sha512.run = "ede1745a2cdae712e7cab552e25682540fb03a44884b6d488e4af5a43dfd3ed08aa4f75be3fc6f0d777585081073eee18af7b5f942664c8fce0a3c2752d1effc";
-  sha512.doc = "724b21b108898ba86cb2738ebb9b4db8348624c09078b166c74cfec3b77c29f878d83a709a0cd0b238583def462af45dbb21e822c00908e0bd9a426f46ee2f79";
+  sha512.run = "6bfa18d733590bd1c361a47fef482285dc2357617e69f49edf0d398311ab038fac38d326515b840fbd46630171af004f4d66f1db3b4f77efed836e297c92dc66";
+  sha512.doc = "7aa9cea56196c395805b484e5f003a17215db968ee3e7fdd8aa1ff5976079be542adad8cbb25e0a874a1094f63a17efc4fba5a9ac70d22ac7bef739486ad9a68";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1k";
+  version = "1.1o";
 };
 biblatex-german-legal = {
-  revision = 66465;
+  revision = 66461;
   stripPrefix = 0;
-  sha512.run = "b28eda940fe50d51227a2dc069599766fbb6828b083b2b5220390371c5e640492de6e78250ac81709fa4c22720c1d81532bca2d3e2b20daa8a7633f5fbf50134";
-  sha512.doc = "a5e5ef04ca52c42becc0bd610cdb75519e5c783acfc6dad010d8ffc220e8062155478492601300c192a06553703cad34d1258f88f4133239df2f0ec4ca810e19";
+  sha512.run = "0d447d700791b3e0a50fa98c14cd71c735e1e1196c9d0c23e86114942d2a9d7dfc9f769a6f8ea7aa78903f1c6bf5600dfcd7091250ef65f2a2a5295a796f8fd1";
+  sha512.doc = "8b83f35af4cbc23c2e19dd35d3f798575f1df540bd4f10a9f0f7d732d5de6559cc0ad49df21753920eb659596b5e506e17fbc066fdab27552831d222da1e394d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "003";
 };
 biblatex-gost = {
-  revision = 59135;
+  revision = 66935;
   stripPrefix = 0;
-  sha512.run = "72da076da250a07f89364ecdc65649ab845f7ec90eac0207af902beb42625c7ef69612d444628a0c9472063ae9485d9518cd6934ce1124d25549a64a0eab91d6";
-  sha512.doc = "4cb101c69ffc07d14d653cbd6bcc33deb797987dcae399535bea5bc14d1149705cbf6b1e21a7fd95d9edfc7c558eaf744e1715157a62fc2e1978476db0af4e75";
+  sha512.run = "8d87595c133fd1b64ea7facda55a1a7a79dbedb93750e0f54abd26e5904d331200349a956eb03a67017015e85e9854e26f6753b5d2be2ef0f3e4d532eb0b7ddf";
+  sha512.doc = "3ee6799d4dd00b4503fd6d7bb041d674c9e61d4ab3c366fe078a9db4a4da154601c13876dec51ba14e3322442e3174cda81212df26d2309e3517a60d06283051";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.22";
+  version = "1.24";
 };
 biblatex-historian = {
   revision = 19787;
@@ -3887,22 +3996,22 @@ biblatex-license = {
   version = "0.1";
 };
 biblatex-lncs = {
-  revision = 65280;
+  revision = 67053;
   stripPrefix = 0;
-  sha512.run = "bd708ad46839042f2113cddb25dc8370c4ec1ca6ac34e08dd472473f56097e29d154cbaeba9a1a5f86c810d288321528c92a1041858e2f6256f4125ef8238930";
-  sha512.doc = "b0f5868bc3018ba7a8d82f11af9965bf592564e578ee459ec747720dcf6fa741103a40f5f0cc3a3394d7514c16c04e0a34fc37940637e2ffdaa8b560d128d735";
+  sha512.run = "b2ab630bfdd41150b0be50d3851c03413ca8c8fbb5756989bf4e0bd8f98480a65eadcb9b11ab879f5cdf3b6c980376ff6ca6507bd26248a9f1b42b9217f656df";
+  sha512.doc = "ec622c2258d96900fa8daeef1aee6216eb933870eb09329cb90b7771b3e8668c88cfd253d4da0889ecb127421061bfa7cfbc8df27ac59eb58f7ae309eebc1f82";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.6";
+  version = "0.7";
 };
 biblatex-lni = {
-  revision = 61719;
+  revision = 68755;
   stripPrefix = 0;
-  sha512.run = "c91f3f8cc6e238602682893ef0ef20af2ac87a518d845e46262f17773f9082c5ed7ffb59329ac4852d8b3d72b3b1364395d3d16aa9ddff52619d9591f2b7257c";
-  sha512.doc = "19bd2d8f8f7539543c876c214731d407def9c193d70ea3eeb7a9869202fa26242674a996934a599004e36bddc62669bc769c6a76af6cec6ca85bf44436c41de0";
+  sha512.run = "f5d636b5cfa0125be2f5f87f41ebd0ce7bb853f7eddb4a7601f72ad42267e6456e2212bcdf5d820db3cd8b2aca058123a8dc2bbc67305cedf331d83b9a007b6f";
+  sha512.doc = "87f37b95865ccc3d66fd514fa038b8c224e1a7df502e6ab59e65a37457f129b1188e510fee0f307296222d40ce241acc307e6e2d2cef7598cc009fb21a9fd7f0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.6";
 };
 biblatex-luh-ipw = {
   revision = 32180;
@@ -3914,13 +4023,13 @@ biblatex-luh-ipw = {
   version = "0.3";
 };
 biblatex-manuscripts-philology = {
-  revision = 53344;
+  revision = 66977;
   stripPrefix = 0;
-  sha512.run = "3677e980482bd1beedafd4120d119d2a73c4c7ae9a3ddef7130572fac5d2388ec4144b0ba74d4d8012fd994262c378226c987472d4d66e323e3b8395b5d3259b";
-  sha512.doc = "da435de87f61045d565199034c5ffb1bf818d31c74309648b1cd78cc80dd1b1274cb008a575dae1bcc6b1987973745e3483e829085438821ef1e4a10fbf157d5";
+  sha512.run = "8ac244a6dbdc725b256e5de0389ab4e4bef4f8e1c85d8c173680e66f1ba793679c8388e70e18791c544091a8bc7870459a945c6a5f298a80c530e58d071bf11d";
+  sha512.doc = "eedeb99e8712337165d684c38621a0bd7829d3071fe8df1496d2347c5f0b8150af68b20caaad69c8d3e3f08c75a52ab63df5d16c48863d0ea179f15c0f55a490";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1.2";
+  version = "2.1.4";
 };
 biblatex-mla = {
   revision = 62138;
@@ -3941,7 +4050,7 @@ biblatex-morenames = {
   version = "1.3.1";
 };
 biblatex-ms = {
-  revision = 66481;
+  revision = 66480;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -3950,8 +4059,8 @@ biblatex-ms = {
     "pdftexcmds"
     "url"
   ];
-  sha512.run = "5bbf3e0d88a7bb26e141329fd6347736d27236156b999d362d4d23c42260591f01921f5bf269697d273ecf74dc736a79d8e4780f408b867fcc5600ab54f94c48";
-  sha512.doc = "837b364abe2c9c5d496014a099c6cf077ad3135e007b17e1f0cf3afb931223dbbe7b51aaf78719f209d632f9ed3d2f3afdc17188a9e82a4da7f369a4a75826f8";
+  sha512.run = "811bcee998c24f46ca5fb8bef9532148c97233766c30f0022cce7022ce0d5f0b5ee260ef0d7276095dc4ccba3dcf67e90a4cc1abf080951c9bd7cfa4237428d6";
+  sha512.doc = "dd6dcf78d0423578a41b47ab84fee4f398a238ac15e098e09d8cee93d5d08d4af62a72d90fadcd5ddb497cf7a4c4b6017fc721c1de246d0aedc98ccb32bad111";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "4.0-1";
@@ -4012,14 +4121,14 @@ biblatex-opcit-booktitle = {
   version = "1.9.0";
 };
 biblatex-oxref = {
-  revision = 65707;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "c9839c0a69065596b6d36ca61ca23fbe3d3d8d147bf7ecae0db22f24a5db9cbe21ae67563f929868ba39f8cb0c1d8040f4bf20d134aafd26cfa0dadf2cbd9d78";
-  sha512.doc = "f0fc6068778972b96a61414285c3371b77f29aae0ca7e31c225b1ccebf09b659b2ee156278b582a46a14b4ab20255f179c2ba4d269c53be5c85e9a0ceae44429";
-  sha512.source = "636b0c6c97c76ff15214145685d768c20d44cb1b17527cae743265f94b551aefb4610d63838e0f4bbfc34eb39b11b3a06005f9710e2503fcd4c6f6547665d0d0";
+  sha512.run = "4059920c5183f9ed337b9fbc0e56ddaed2bd7e089028729c606981dddd113e1d916f335283608774b56bc9fbda53822e1e2b9ab8d9c3283a05bbda530ff4e234";
+  sha512.doc = "55d8336df5219f430dce34e2138d770557e9d68ede3d15b34a1a1b164d92d58a27664470764c45fb65dc6b5f6e1550e7fdcc9aa5f266027d3543418f7b6d2b07";
+  sha512.source = "df89dae5cdd3a5edf49bd49ecb1226dfa8e9145ca9abfd10a065ea4a5f12e65b4d0dcafc9b4c6067b180029797cebdab7d50f42c8dcb0fdaa21e33fc09963eca";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0";
+  version = "3.2";
 };
 biblatex-philosophy = {
   revision = 64414;
@@ -4041,13 +4150,13 @@ biblatex-phys = {
   version = "1.1b";
 };
 biblatex-publist = {
-  revision = 66284;
+  revision = 68476;
   stripPrefix = 0;
-  sha512.run = "1fb8c2ac0bd7067609d42335997eba7d4c4ac91b9342cdaaf574865a18695e7471b2d08b0792ee5869f3fcbdc8c2915a993b6b5726d8d0abeb7a2276925d7015";
-  sha512.doc = "4a29986b3bc8b493bf1ceadca8f4ce2d7bf8c625d21f64b3d1c23e833f8d2217c5d38b783cd017c52caa880c4936cb73a5e3bffd7b05b8e5708b4d2a571774bf";
+  sha512.run = "b3a8bc7c370e1dd6f7545e878748ad7afbed934440ea37161f33350b8a277ec4ac4844ffb37273b282352eb543641ae77516d5bdc7c8245b97d2ff946d31dcba";
+  sha512.doc = "d5a3841a106272f32941d5a9f8e2d1544eaa431f60f630cffb1168d3e579412f5d867aff993d1f76fec7d1590248bdfdd5bce93a60f014c15f1275b800b7a1ac";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2";
+  version = "2.7";
 };
 biblatex-readbbl = {
   revision = 61549;
@@ -4186,10 +4295,10 @@ biblatex-vancouver = {
   version = "0.1";
 };
 biblatex2bibitem = {
-  revision = 61648;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "c5c80c9c9951ed57cbedb64976e96540dcbb7797e7af58e3cd983779863617f8deb4cca3b4223f6de2e1f4bd15940df02f6b87188e937b2b5a79ebcf2b1a068c";
-  sha512.doc = "a44dcfab5daf60da858ad548e306732c7bd3bcd4121f9143f5bbb7150616edae5b42fabe301c7f3fa271bb6fe851276528304c801fa8d7c3aed7c41f5fbde91f";
+  sha512.run = "ff86dc4068b0b3065e19af6447a71396337d9e7e5394777c1c385b714d01f2ce983c45923b460c60784024a8068ad68f05ee8dfd14039b65c2d9d9a61ef584a5";
+  sha512.doc = "21a53b0f4612fc18cb43f12cd6b1d1f72db896d0c55f73928fd11399598c04973595895d7cfafa546507e19cb25811118de9d07a8e9e1e242e22bb8d17e3486a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.2.2";
@@ -4270,12 +4379,12 @@ biblist = {
   license = [ "gpl1Only" ];
 };
 bibtex = {
-  revision = 64491;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "fadbb6ca18794e52b40a7083db41c5f1d42e47ce93daed7a551bf8e263f8aac8302578f23fe915c3706e4e3603cbdc9cafc55b07c895542a60eb1670ce07d628";
-  sha512.doc = "6e1433e40fd604e391be05b9b68449cb6804488a42aac802d8960407930f99ae4450b77afe1baae4fe9b4d20b48c359472cf6c1e0a67d6f0a4a87cbffaaf1d8c";
+  sha512.run = "568a72b269dbcb0d5c723e346e8118a0ed923273460d9518891616cbf7b174b17cd75acff02f092176d71b6020483de75df20994bfb66c2cd46432c33d5ade3d";
+  sha512.doc = "4f95c010ded89688791e1115ce4e167740b43e9e48d596b2621e6c18b4529479da9441351b463946e7efa1e428cba3d60112c5f7a5e008733a00fc64050723a9";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -4285,9 +4394,9 @@ bibtex.binfiles = [
   "bibtex"
 ];
 bibtex8 = {
-  revision = 64491;
-  sha512.run = "ca2af96d3d11d27a4ff01297ca91f5b829f0ebc67ceedd358acb5e89842cd86776864a0d948c85f9364b5542476bfd8e0cdc189853637e77b0b66ef8de453130";
-  sha512.doc = "31de3b7bbef0733347ab71f2c893df1cdc163a0d2ce4d47fc1f49a86e7bef225653cc704f4e6b9f8cdfe245cff5295ea45daf7995e863cdac930984ca64de84e";
+  revision = 66186;
+  sha512.run = "27008a8ccf05b7f48f7668ea171c9d53063fc26c09ac4507a3eaa86eb22b94cbd70ba6c2b7a8d439d7978a3860be37733dcbc17f7cef930d06dc5a45a89c95d5";
+  sha512.doc = "c305fe0afcaab072ee07542b8bae8475ce205744500f81c6de400b2bcd7ac05ff65a025301319f80a668ed35d653105c0ec0ab392c0c893f5d76802a1806bd04";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -4297,18 +4406,22 @@ bibtex8.binfiles = [
   "bibtex8"
 ];
 bibtexperllibs = {
-  revision = 57137;
-  stripPrefix = 0;
-  sha512.run = "a2989820b603d7001bdafd85d637d500a1f27640c37ed48990acd5cd49b8c9d0035457f9c55bb79dad5c9397fd5d4f46fc8a10834bb388a0626daf8e8269a2ba";
-  sha512.source = "b4cb508f2e24de447427bc82abf3366f5f2afa0b5a5a827e1b129e8b2819878ea78c2057c771dcdd86e362eaefa942c90e0f7285a8495256a9087667cde2325b";
+  revision = 68910;
+  sha512.run = "54e8413435420357c6e4acb1ab28a6aa602f1a222ed4b3350aea498a3516f48cfec0d04e9951a3ea0117184855e32d891d2c04af98231763eb1c5f7bd1700aa5";
+  sha512.doc = "e2a1f67710cbb6b732f5dc9b39e4ced5150792c06d0455704375cfd6def134dfbe54a8d92dc1dd88896a6d5405e662dceb15f0282e9d82a9d2f857a91a8b4fe0";
+  hasManpages = true;
+  sha512.source = "92cd4a937f3783305396a5705bc7a0d80371a22405865be33e1ff1caef7ec0a479ad58d9d80d45218273dd21541eb3167ac0cffba8ac16ec5d46ada1ea4e6145";
   hasRunfiles = true;
   license = [ "gpl1Only" "artistic1-cl8" "publicDomain" ];
-  version = "1.6";
+  version = "1.9";
 };
+bibtexperllibs.binfiles = [
+  "ltx2unitxt"
+];
 bibtexu = {
-  revision = 64491;
-  sha512.run = "8f629b95c9a12cdaa6be4fca3e6ee0d69f7c54a988ef778737de505446fac17aa9baa6d0bf08ea6dcf33d68202acc9223df91df0cd46696802e7ed238d4ef717";
-  sha512.doc = "18934f3f91e19dddd6940110c4d1a17072a7640a6a56133535f8ad8ff7d3e6d3a3ba7d8b4e82906f65c1de17fea4911ea78ea96c0b9e0b561be488c3da6d8f67";
+  revision = 66186;
+  sha512.run = "fce13fca4fd3d65b04a451365c5df50e4990bb62b0e8f878b712e9062f7d240a33ca6cfdbccd2ad2df0179be1cbaf2421ca32bdb745f3b9d9c67829d4c739916";
+  sha512.doc = "0f200681fd81074a5f23477ff99ac9e08e2d123056544edf7bc5b7b7645c22b74b66404028133037b5e47ffc4ff7c0059a1ed375ed0d3e4d211632c44f37072c";
   hasManpages = true;
   license = [ "gpl1Only" ];
   version = "3.72";
@@ -4316,6 +4429,14 @@ bibtexu = {
 bibtexu.binfiles = [
   "bibtexu"
 ];
+bibtools = {
+  revision = 67386;
+  stripPrefix = 0;
+  sha512.run = "72472e2c51a0b984feae71dd1bacd72880df1438406301219c80f1dc6a8702b0d7c1e2bfad7ffdbd025e58c14a069335d4f5d6f1fe981d5bca259a6eba94bd4b";
+  sha512.source = "3507bf7da29aad37a43cdd1ab2668908e227a2002438fb161c822fbac48be0e6b120070d6866fa553205ed404375d160e3a8b756c0681fb6a3e3b5600ac7a7b1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 bibtopic = {
   revision = 15878;
   stripPrefix = 0;
@@ -4347,14 +4468,14 @@ bibunits = {
   version = "2.2";
 };
 bidi = {
-  revision = 65572;
+  revision = 67798;
   stripPrefix = 0;
-  sha512.run = "b4d94dc0e539c0c0e4d91586ff9d121fe58af5c4729c603d6eb22f16a19e5edbea722b7576faf2b56a46f6fc68fc3e1cdc3c2f1941bba51a60337f091a248045";
-  sha512.doc = "002f65b1fff0798a2bdb87999910c848d94ce1e03c5dd4e61fd173cde8bdb5e153086616274cc1d97b711ee9a2d0d11b06e11de303d03e38ff577c2f941e1caa";
-  sha512.source = "e43b88ae4423bb1075a432f9034bf51ebe403bf5e5b8c0ab899e49a46257e45228b65ea4b0150542748830c74e3d9cbc59e9df49d75fdaf2fabc0b33b0a59714";
+  sha512.run = "e589f50dbd63df9d711540ad90b53384e52a5a0b353e2ba050657af3273f3dd7b65925101465d89831ea133504701c6d05d01ef959fcaa2570bb1188384c621d";
+  sha512.doc = "09ac7b97d9d1a93b80e8dac120cd6e70932ca9239dc94202449a476979caadd596677a210b27700e3638c3cf0bcecf98c4f903ea228f94545a2cf5cb206abcc8";
+  sha512.source = "1bdd170bb3065027106944aa23b99311482fd90a019a6bd1e87044f03a04f672e0b01a31d4d09e213db7b228718f7e9ad15d77acfcef7412af8ae180935fd77c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "39.7";
+  version = "39.8";
 };
 bidi-atbegshi = {
   revision = 62009;
@@ -4485,10 +4606,10 @@ biocon = {
   license = [ "gpl1Only" ];
 };
 biolett-bst = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "3251e508797afa53db159f156f030f2397f6e5a3f36bfe50254d3abf0ae637c976a293d21bb63bf57f51b5e0a863be69b2aaf751695d311e8353c7765105d236";
-  sha512.doc = "df57edc9a738f7a2e054600dd11a3e6567eccc4b5b00ba9bd7c9b29ec1b8404d92ff25a2310cb9012697bed00adc52587d16bb900aba062dce420343b435fb6f";
+  sha512.run = "35fa3e7a46706c715783b10997888a45cfe6f84b465562f894eb9914915e608f420b631e9d4e7fabe3d3d83424c089288c848ee34cae5cd08d1d778e4ad64155";
+  sha512.doc = "2a839dfad925ca94f26bada0d14fecdd7c096d3c99e903a57e4a1d093b2d1b9cf8770974aa1ac51baa9759c68e2a4fdd6efbc861c5bdebaea4cb523c00662487";
   hasRunfiles = true;
   license = [ "lppl1" ];
 };
@@ -4503,14 +4624,14 @@ bitelist = {
   version = "0.1";
 };
 bithesis = {
-  revision = 66369;
+  revision = 68634;
   stripPrefix = 0;
-  sha512.run = "9fe6b1865bd60fc3a96217e060350556adb5fc55710560f068e2f156ecfe995d2c8ccfad0cb872440b614c1c646f331a71b8e961ec502b6b7bb45af9222232e6";
-  sha512.doc = "3d5b881564ced892e22d0121e06fcca8cb77346ce429b07c527e1ed1d6ee34514b749caa299f78ed1119286d65354bfbec9aab3016a9fbad6f52d6c56fcec470";
-  sha512.source = "445c71e6683e5fc2337fc3d88b491289eca181632e2c76f33eba17c8ea63864ed185a3403f1b218e42dca946f2ca380a95c398ab359a3951d5e660566c921554";
+  sha512.run = "617142849910c69e2986f1c685aa09f29375b83197dc6d964a887b50bc495f9501d578b6b7b3d2a6e78613a34b994a11f1160590e660a65e748c42504866ae1d";
+  sha512.doc = "6d5a915b04a096b1f5a9d9b9ed7bab9ae9e69886c3553778d5db07cbf8d2f0c183f2b86b1df0d2cb752368f192bf5e9252ad4c07071625659dca052c12ddcb25";
+  sha512.source = "8cef46e7e72dcc829ed8c9df27f6411b1b51a4fd3792a3d56479911ceb0e3197179a6e901beb49d4f91acdd5ac400881254c59a8162aaedded260b340cbb422f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.4.2";
+  version = "3.6.1";
 };
 bitpattern = {
   revision = 39073;
@@ -4535,10 +4656,10 @@ bitset = {
   version = "1.3";
 };
 bitter = {
-  revision = 64541;
+  revision = 67598;
   stripPrefix = 0;
-  sha512.run = "f8916a429ab34f42a8c79314245ab869977a8311531a6ef66f02265812671cb48111ca2de5eeef8a074b5c6f908fc4a742553a865c3e77dd640da13231aaad60";
-  sha512.doc = "a53311b88802cdafe796ae658dd7a1bf72fd5ea0f5eede875e660c8c288b585e1877e0ba65c906a13fb40feb52376132cd97b3a65b097ca65a6d143ed7b32e19";
+  sha512.run = "217870554e509c3bbfb70d3da9e3ccc4fb1013db4508034ace728ff114e31eb9f56511b1e89c702d21cf1b522ae799601a0908ffe70a3856aee29c595a22483e";
+  sha512.doc = "2bff9fef75632fb43c59cba04ea531eba8420c3841a0343cbb1d56995a8c322beff036da61d494112e9c89f82d367ec3bcc9e39ecbe153c99dc012cbc8c15bea";
   hasRunfiles = true;
   license = [ "lppl13c" "ofl" ];
 };
@@ -4616,18 +4737,18 @@ blockdraw_mp = {
   license = [ "lppl13c" ];
 };
 blopentype = {
-  revision = 65441;
+  revision = 69080;
   stripPrefix = 0;
   deps = [
     "gates"
     "texapi"
     "yax"
   ];
-  sha512.run = "a58ba583f2c9cdc9d262f2ae60704164e4aa1ec9b6a1b7f5df97598cb3cef0b85badd62b641e5b388822d8ab84bb993521d9fec08b0be71088ec62f069bdd856";
-  sha512.doc = "521b2c4897aee4e0ba07fb6bfb490e186a90218fd6d5972db83c42278a5212c7aacde54014cd6d2a9e321138e5e098eb14e746d6f114e84ea252c4fa67073353";
+  sha512.run = "6cb45600033a679ed498e59c2045561683edb0193cc330e2650a83cdd37e18daca45db700f5767492800af78f365c6f1b03766d92ec759b3448287c7b378bd63";
+  sha512.doc = "1159bcbc24dd6a860909f0b16911b3a88e3deb2bcc0670b85d31ac82a34b5e991cf73f305c8517a8dee1088eddc3c4cb02d8c5778d897efea254a715e78de294";
   hasRunfiles = true;
   license = [ "lppl13c" "mit" ];
-  version = "0.0.0";
+  version = "0.0.4";
 };
 bloques = {
   revision = 22490;
@@ -4639,14 +4760,14 @@ bloques = {
   version = "1.0";
 };
 blowup = {
-  revision = 64466;
+  revision = 67640;
   stripPrefix = 0;
-  sha512.run = "a516938f57984f320563b6acf3016d5e49d2d4899d0ed9b193b3015df277519444d152d0be8f49801ae259c9de1daf74cfa5f228851160b6a8e11b5707fac99a";
-  sha512.doc = "aa26cab17c65e4b8899ef985ac10cb283711901881e41e2b269d544d3c4f51a7637d94789a1bf88094f5b32ea0344b7d7afb3d97402ab50a2bb2bacc930d7988";
-  sha512.source = "65f1f194ad5673aa0f119d9f39e55b7cebe1d17a5587c42d3fc8b255fbbc9d968d6889b544041434fd8cdbf3acebc64ecefe25af2ba6b9bdbe4102e5d13c8753";
+  sha512.run = "52cb1cbef8c97f265114decec953472b2a8804659d60ce3227aa5904827dacb1cd6156c189a6e75aacb2051d8237298690c6ce6816ce9425fc293c8e32962236";
+  sha512.doc = "c038502451d1952927f9b9e1648fed009452d00a5d9db06429f8968ec453cb7863444ee0e41073dce5c0c4990c2487ebd818ad51bf72d1e7a91257ab76684729";
+  sha512.source = "632342966fb59de8f7ccda1fc7062c691fa2829462c67d4edc7cbfbed3dafe4888979baa60a502793f0db88343c1b8bcbb5e8cf18727e854b4a8443ff06f564a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1.0";
+  version = "2.2.0";
 };
 blox = {
   revision = 57949;
@@ -4659,10 +4780,10 @@ blox = {
   version = "2.51";
 };
 bmstu = {
-  revision = 65896;
+  revision = 65897;
   stripPrefix = 0;
-  sha512.run = "7a5dfa6bc3c0661cf27fb5faaec603a6b1877478381a7b63a0ada08dceda69e730e1be69a24195a105909a9bdec1d37320da3694ae23bff831de9bd33a6300e8";
-  sha512.doc = "ae4c8893460bfde38fcbc2b1c9130b4da20a9f3ea239b73409d308a032dc648f2b4ea98daf3ed204dc5bd78d48a3e4770c6a9d28a97bcc88d818ca8e056a0ca3";
+  sha512.run = "e8e2af194ab8dc10e88543cdd888438d6dabd37651fcb331df2a2372c863884ee3ff77344d14a79608ef6e87d3b82042497f26045db3007b4cfc85fa33831667";
+  sha512.doc = "da816655e19a91d152a088e92078a9ef2c35f4a7b379d63e353eebb7b4047d459b73e5f53537e9be5a80d56ebe80e1f20db1305fb21fff14fedd518a11c494db";
   hasRunfiles = true;
   license = [ "lppl13c" "free" ];
   version = "2.0.0";
@@ -4687,23 +4808,23 @@ bnumexpr = {
   version = "1.5";
 };
 bodegraph = {
-  revision = 61719;
+  revision = 68785;
   stripPrefix = 0;
-  sha512.run = "abec68060be55077c615c7a4dde1f0a1c59d2b94120a1c5e3f578572b2c23ff814e20344ee767ec7af4c30371e95a5647256f39be11e54fc8d6ad661025887c8";
-  sha512.doc = "463c7fad4432c366c59d1ad9ce029cf1264b4f398021479ac77ba04bdfe2b1e6983553e46c5fac3b248b0df07f2ac9ea07fff7d4c8019b30874316e08f3522c1";
+  sha512.run = "65c14de3d529c5f439ffe83dbeeb6551152bfebcaa4f6ca8f22bb29340f23cd2541fa7934a5c0163f6b9a604d76c7c2bda3ee6ac1ed3fca04367c08e5f580f39";
+  sha512.doc = "e9dc19657f581260a59f141747bee7b15d96352eb4b59a2decf116e1287a980b106bfff220642e4d1828d65201484e657d8f4513faf7998c0ce3938a98484ae1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "1.6";
 };
 bodeplot = {
-  revision = 65074;
+  revision = 69397;
   stripPrefix = 0;
-  sha512.run = "671f6373b4057279d92e7153c561a72d6b28031dedd395d8a35a9b7e82f89be8983f7e8598c85694fa68497d7af1092d6f5f403c0dc9c8fb3e24b3b373a51f9f";
-  sha512.doc = "02dbe19ab0243fed2609c5aadd91dc4a32e5bc8cd36a38244c5ee8e875d68ee5aa8e3c7bd4248c4287ff5fcdbc8d0c81adbbf5168d40e3e03eb44804dacd7109";
-  sha512.source = "c4f2f526cf9f9ed20364b555728664b68763b1ecebbf4c47be80fde5f9dc0af2766f2a9724824442fef362798dc42618268157028ec482dcea3572290ddbbde4";
+  sha512.run = "ce07cd6d21576123e5fcbefe15417f90a3c8bb65344a0700cb017bbcf76a27b2a3938e7d3f13e12a06398f6af739af69d4e09e614f1ca58850f2d74150bedb71";
+  sha512.doc = "478f633335f8fd55c712c37b11f54523c9d51a650d9025bd0f09b4ba77241710a6921fac8caac6ab0c4aeab252ba89886871c3887b327d1abc01771e6e9c5618";
+  sha512.source = "53c0f4825ad3323af7cb59ee07327d628a075e86dc880edffcac25dd0b3891d2f156085764cf0153c4b7bb9549f6e9253d090a4b08c0d12d195e872dbab02686";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.3";
+  version = "1.1.5";
 };
 bohr = {
   revision = 62977;
@@ -4833,14 +4954,14 @@ bookman = {
   license = [ "gpl1Only" ];
 };
 bookmark = {
-  revision = 56885;
+  revision = 69084;
   stripPrefix = 0;
-  sha512.run = "56d73af9961348a8436beb957b65cd9cb0bf62c9031fa71e5f247a367ecfbbb15763214710c66e057d2806a0dc0ce09b05a163d74a7687c8f0dc340ebdbd2849";
-  sha512.doc = "44491b3165eb356327345f6f7c5b690db6435369e1c58571146982285ef849425935ad03ef1c9bb0e306af740bb6b886b21226093fd083e838da29d09bb005bc";
-  sha512.source = "9fb4abf83e752b4c1301050feaa4d648d67fedbb6ddd9aa1bc253dd9eca76b91ce02c14fed17364d768d170e8b7ec4e991c23c582d121a4e72e4fe62a02f0442";
+  sha512.run = "0a95a2839415393f430eac43a0cac3ac1c4397d68b037167d0e66595e82cda6ef11078bee63855ed1de66191f2f241418705ff819dbe02ac4e3c68ba88eec52d";
+  sha512.doc = "1c6a24efbee2e8734955b40b9908a8f5af95d6d4b8aa330c72ae7dde5c9fa374af6bbe7651f46c87bdc11f69a38b5d81d03152eb10d0eddc334b87276fddf252";
+  sha512.source = "d9087686dad4b3d68e8520888fd1787ab707c0bb196777144865e2a9419112a3e3cd25064ed4c0d0d5a31a195c84d4793d0063e17037c74ce3eff20e03def946";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.29";
+  version = "1.31";
 };
 bookshelf = {
   revision = 55475;
@@ -4981,14 +5102,14 @@ bracketkey = {
   version = "1.0";
 };
 braids = {
-  revision = 64817;
+  revision = 69398;
   stripPrefix = 0;
-  sha512.run = "f22e6cd21211deea82179b351911f9809d420bf5a9c59064a24134b87d8e75e2a7a0268b6e285117b782884a7faf3a9b54ca9a6e2e3f2c5203c45c85984ccae5";
-  sha512.doc = "52922680397d933d9d99fe63004b2874061cdf83aef88e8d3dedbc46c97b270b559affa8b7a5bd515c086aa83f21552c35c161c9450ae57cbef57d96e2c70cd5";
-  sha512.source = "54d308837fa78d4133d88d2d162cf1f80a032b00860adb560ff08bb2ea9b33fe7a8f5ac36e918b281547c44a0c3584efff53d0e5538f36fc03c554ed2b6b26f3";
+  sha512.run = "e92513b484cd34387542fd39684141d6bd24c99ac4e99791498e75e28c814b9647f9762a5803aa127e9c5423dfb93ac9126348d94668bd7e82c82b54af482f34";
+  sha512.doc = "b8a26f24d450b8176a2a6d094e3f0e66faade539266652319c354cc45a824358fbcde416582fa34917de422d0a86f782858247b7d457b50353ec4803b9024f91";
+  sha512.source = "c47edfa15e2d11bb06d984cce5735699f2fa2bcbe5ce09abf7f4220bcb904bbb5a541fd0ba9479d941b909ad9cf4df3374fffae8fe6a90fbbed9e80e26def3f9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2";
+  version = "2.3";
 };
 braille = {
   revision = 20655;
@@ -5007,14 +5128,14 @@ braket = {
   license = [ "publicDomain" ];
 };
 brandeis-dissertation = {
-  revision = 61215;
+  revision = 67935;
   stripPrefix = 0;
-  sha512.run = "fc8d06b0d5f7e24680e6c08f7ac59b59b19b2232e61175092f63e3d19bd43e080b84777e6305d1ec3a110b367b135a80e2d7bc6e13bbb875855b732fec796bb5";
-  sha512.doc = "219fd04d81a64c85b1bb6d26d2ce1dba07fdb07d1df370e01e7683d7bb29da90dbde18ddb509415ab55454e1b112b7053a6b3f179ba32b362ec19a43433caf4e";
-  sha512.source = "c545f4d71ed630207492f68fc79a054c7a57121335aae12449106a1cc5554631d247b8a5a1cffb03f8288d3b3ceef1f45bad561a1a1ce0da67cceb12d7391f01";
+  sha512.run = "96cabbbfd22e26d8aff3b9c54c5f9bdb9ada8a036af3761171c7ec1384d4429bd69c5004e16e87098e5c6355cd029e08371f41484742618f9090fa2c919bd638";
+  sha512.doc = "23c1a0d8fa47893017e657f60ef9a7ea54e6f587bf164872b4abfc51f04074ecd82d3494b1c78bec76e6e848bcce20c61af0ef7c2e9b24f91f657a678b03eeaf";
+  sha512.source = "b0d4a1712c784aa20e159c9c6827cb61b007826ef445981a196bb5e4c159199b76fb59dcc6ff03dc67b0328eabdaa821b5ed6ba0773c17ef7025b171bd6f746a";
   hasRunfiles = true;
-  license = [ "lppl12" ];
-  version = "3.13";
+  license = [ "lppl13c" ];
+  version = "3.14";
 };
 brandeis-problemset = {
   revision = 50991;
@@ -5026,14 +5147,14 @@ brandeis-problemset = {
   version = "0.5.5";
 };
 brandeis-thesis = {
-  revision = 59832;
+  revision = 68092;
   stripPrefix = 0;
-  sha512.run = "f1fbb296da700ba3cf4c9e6818898624576b9a58803754d77909031e7bf3b207790f4818e247fdabade5927687e8c6a186e887f595f536c1c4a8ba8e1ba03ec7";
-  sha512.doc = "51bfa4fbc6d5900d92b3c7d5530b166dbd653af2017153c5ccd18d9ac49e124178378d1a2ecc867ece7ae758812f5c030dac00d55c46275e79c2bf4e9cf77c78";
-  sha512.source = "b5a5b294470869862855b4e9ddfaa6c7213d91ea69ee99834b5eb2e09c595d12fc5df0742cf52e19af156bf1db29744b9a320ecacb036843f2169891fa42fd41";
+  sha512.run = "8d2c00167dc8c755d5d29f66c36d7d70d4fcb8fc1ca66e5c4008d702b38eee9c8bbb4bf9e7129a69649f57f31b25b532d44f3bb7628421aeff90e89afd9ba2e7";
+  sha512.doc = "61bf51cd01c13bf698b9466573af4f91357ec77a265db2166881c1f01112ce0a17d87b74f5470aff7da42bc39bb77fdac0cf20613e379bc168119ebdafb85d2d";
+  sha512.source = "0cb20a7d0b841a2d206ea4d8d9c0e7077d6b94c841d3bf8372899707e2b63c20d0cd6ea60b451abc6e1e64ec2c69771bd6fd30203e4b994d8b0e6779abaed515";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2";
+  version = "3.3";
 };
 breakcites = {
   revision = 21014;
@@ -5101,14 +5222,14 @@ bubblesort = {
   version = "1.0";
 };
 buctthesis = {
-  revision = 64004;
+  revision = 67818;
   stripPrefix = 0;
-  sha512.run = "c8988be5f140ee2739c2fc2365d1306ce2f47480d47c85c6f2f7cc525cf5ba5b8683a99bc4d5167f78839852ca800ed07caa98a3498893dad92051ca3ba3f7b8";
-  sha512.doc = "a0f41589d447a81f9fbec183b30e832883a7cffff16ca538c74ccecafd59e41a67e1b3d2ae355eaf8d04c3c6417326606db5ad6752e45f1f031cd7b26ebdb0b0";
-  sha512.source = "b7be46e4266544c18bdd76838a3f2635c6cadcd6aa93879cf977ec37264c9438cb3a1e9b79b5e567d460bde2193038b4f88f6f5446519666b33c170b8c698d12";
+  sha512.run = "7c27a0f982a2727c8ad7dc98052f48ddb73d37ff27b89eb53f8e33338f67fdb99dba2cdbc843cb628ea725fb7ca7d0188ec5f53c6b863c4707e8b174c8b788c2";
+  sha512.doc = "edcf0ac0b5e9ea86df731fee1d2388960b997b7278fac5b88dde6e3820ed3ff488c6ab156dfbca169fb9dd11cf49c5ba5c17516ac2f874bfb3d825426f0fa5ad";
+  sha512.source = "bbb105930a740ffecc9c2f4ebf3a3a206c49c3128b44bc9d96c97ec0715da1fe152bab9ffdbb3a3d8fd3689702bb7091056dcccb4b428d54ad0853f9ede97ada";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4.1";
+  version = "2.0";
 };
 bullcntr = {
   revision = 15878;
@@ -5171,10 +5292,10 @@ bussproofs-extra = {
   version = "0.4";
 };
 bxbase = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "c60e8977d31a2868fe5ce91a27944a9e27708bda09800828b760accb166413902c57a1999fad09edcfdbd6463e6e5c248a4f1f13de50762a762ccc7de8e31a24";
-  sha512.doc = "97032b46c6bada17d81cc9b167f4f180d1cd9e1fe04b0e73f1bc958f9cc72e678bff482ebf522f01d0e0a27a79b4edda867faab01d139a300e3e1add0fc05b68";
+  sha512.run = "7d1b15d92136126999f976127b43a125a9bd5aacaca5a76aecee94d4f6a6ce6538c449fc82d95a55984b9de802e1e66903078e5d2344db532b9b2e2e94ffdf24";
+  sha512.doc = "162a33a07b6149997b9cf0ed5b1baf55f80f2142c106e07188b27c02f4fad891d95d6366581d958bb730106f5d3777e59a1ba55176a7e7594cdadc77e85d7365";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.2a";
@@ -5189,13 +5310,13 @@ bxcalc = {
   version = "1.1";
 };
 bxcjkjatype = {
-  revision = 54080;
+  revision = 67705;
   stripPrefix = 0;
-  sha512.run = "f720106c08ffc3b8f9a2c9279325364d5ae91948d3c61b83423d41a55249cdb205bf330c8f08ce6877a7713e82a67a29f1a71e9ff07f9c1225926a61a858fb5a";
-  sha512.doc = "cecf43857662a4b1126edbacc017a8d06b366ad8c785db520d6b18a293cdf786b8d7bb7d3981355acf9a4d2759c2a58af25a61a9a06d20b431ba3eb50117b560";
+  sha512.run = "72d3a88c117ea971faf8bc836bfe32ddc52e96c1fe1546ceeb8a9b298b7a28fdfc8aa4b0f43bdb3fd27126383b289ad293b2ca6c4ad95873948be0651de4ea18";
+  sha512.doc = "8118935396e03cf72b0efe04d6e436c6d7b3aad3dd1518561ec36d1fcf35a4e29dcdf86dfe554d06f4814694e7528f238b73c0145dce6ebdd5cc9b587db3f86f";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.3";
+  version = "0.5";
 };
 bxdpx-beamer = {
   revision = 41813;
@@ -5234,10 +5355,10 @@ bxenclose = {
   version = "0.2";
 };
 bxghost = {
-  revision = 66158;
+  revision = 66147;
   stripPrefix = 0;
-  sha512.run = "ea52e53228cb79a5f3aa5dea1c85bbe19a4fb1d397d6da113b360b5a6fae384174a5ca79f4f00bca2f011a484e529991c9d7c4856060fe47b9ff1d42edbba20f";
-  sha512.doc = "a158433c89401dc345997e9a29ea0eab432e9ed22f5a150025371ad2d7d038073cf49371415443c7f1dea7d48b1506208461bd6d46d502e4c630385486dde509";
+  sha512.run = "8b5345c2e48c16f296e3533977b2d9a031274764f3580887d2142a12f34e93d4d31bda0a5997823a7bf52891c8707d897afdc365a001348d2ab12d8f947acd0d";
+  sha512.doc = "999e7623526c6ef51b8c6da383e79d9f889d1e45efb52eb127463b94e7790edb124c2ddece303c932134df4daf4189db082c3492fe04e6a829e1dd6d943edc02";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "0.5.1";
@@ -5252,13 +5373,13 @@ bxjaholiday = {
   version = "1.1.1";
 };
 bxjalipsum = {
-  revision = 66033;
+  revision = 67620;
   stripPrefix = 0;
-  sha512.run = "2c591c8a821d993c7ba3632b4794c19d067b7702a8999ebb611becd2c4492c238817a9ad60f4f04d70bc2f69980a2972b18388755c33f60dd74ffef44c3a86b6";
-  sha512.doc = "a1247ad8a66e357de1e67837d4ae916023e6003c29f43d178e25be938c10b43f100a35d944311c49c8099a4199c999f89b0eaf4e97e3229e1151789c3b699963";
+  sha512.run = "a3c635eff092be08bb99f882a18fd477aba3b9b25666defa4cf872806dce666ab8b931cc5b85ee217dfbfd453a066461ba169f830236ad55f75a28a81a157e0b";
+  sha512.doc = "b7f020236e7cf429bb367ab412a6b58746302d2ea0c6d50c3b9af20a86e535196bf3e628c962c98ff0dd3d194d702c7a20cca55b815b88727bf8bcf0a5eb278b";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.0";
+  version = "1.0a";
 };
 bxjaprnind = {
   revision = 59641;
@@ -5279,14 +5400,14 @@ bxjatoucs = {
   version = "0.2";
 };
 bxjscls = {
-  revision = 63011;
+  revision = 67657;
   stripPrefix = 0;
-  sha512.run = "23b3ad893f6d3d4ca3e05bc047eca414058974f622ec966c9a6f6f02f34f664e08a1aa8ef1fb64f9665c73ca8cb8b396336c00917b0295c8dc421e6b52bd96d1";
-  sha512.doc = "2c56a1cbcfdf4760b47919b5669a118f79615eccfc66681b1d6eb3c5ff2037f9b9de283558923e28a696059ad2d210c6568e6fc1e7e342b74978100e79494d32";
-  sha512.source = "f76994ec09a8eb2b86ec1a5d13dc8e005fa5210566e28086f1175056f1014276ee799c2cb6f2e38d09f8dee645f86c02f6de12821215a691b7cba4d6cd3449fd";
+  sha512.run = "83829f4785fbe8e283adc7c463bade1828f5bb3b401e0e3e632ca418754e76b8ab68f275e408cc779ee8644f4f90885257ac989e66982efe6b66d77ae2587d6e";
+  sha512.doc = "c5923edd13dee12f95611103de2926c03edad8cbe85259ac345d33ab164012e9cb4011381fd58a49f8a76ec1eb11653b6dc589b3c8a4dff2299b7140547e14f6";
+  sha512.source = "b111a7f4054086062db2f5686552b8b763f7617d5828a74b57462836c09284c7fae6666d2af2d4892b8a7fe2db9198f93ecefa38e1a152cea31c52ad35995583";
   hasRunfiles = true;
   license = [ "bsd2" ];
-  version = "2.7a";
+  version = "2.9";
 };
 bxnewfont = {
   revision = 44173;
@@ -5334,13 +5455,13 @@ bxtexlogo = {
   version = "0.6";
 };
 bxwareki = {
-  revision = 51286;
+  revision = 67594;
   stripPrefix = 0;
-  sha512.run = "73f44924ed35cf95af7d2eae057a48fcdd307741ef9a0a0943638681f9008eac56e8f2b1f57afdf0c3dc789a079e65ab1142cc5e993ecf6b382e8bb127f6ea1e";
-  sha512.doc = "d861ef91292b76b4f248b51d99d062116f49be1f942629d049fff00e20a6e383bed050799a576e14f7daef52dd4f7f1fdd2ce898374191b9c719421ea755d7f0";
+  sha512.run = "6a7b89540c662871ad9799b00a8e17d0cae301366ac6651d9a9e7ba995f6d2de6b2149f6eb5795af0d58c5de454aeb94d0ade0026520a4e54594f93fd4470b3d";
+  sha512.doc = "60c6416a036372f3fbe636dc46106114d2a43ba292f961fe299f765afd9e23c975a7f68f4c48a9c1ef9ea5b9b97224f1d0f1bd1585fb90b5f183a14528351539";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.6";
+  version = "0.7";
 };
 byo-twemojis = {
   revision = 58917;
@@ -5362,14 +5483,14 @@ byrne = {
   version = "0.2.2";
 };
 bytefield = {
-  revision = 60265;
+  revision = 68366;
   stripPrefix = 0;
-  sha512.run = "6f128c419989627e6ba7329932588121f88a63d89761d5cc912b8d53371ee5c80651dd6a3e0f8e9fb16d77ef3818baa65c317b1629b954a45743c993849732d9";
-  sha512.doc = "e7a496c61fde7af9d5ffb96b4dc1c2dfff8dc3883b07ece63007b2987f1ecb5d0d751daa001b0d2c045c9ca5be9ce074d37aefde8981fa88a2c9e91f7c3bdbe7";
-  sha512.source = "e017a2d0ea3b04682a2c5e8c0f1fc76d3d45f25161c00695f134947da31d98fd89967be43785c307893f34dee0f29ecce99c3aa539370463b31093c03b2e78ab";
+  sha512.run = "394c796574674e877a6532900edbe3555b63aaaf62bf2c8bc8dac280c60064d77bda56991ae1c1a208fc8bde4c8e990cfbb05d21605fdd4f934aad0403775f31";
+  sha512.doc = "98e7e38ae0a9337fd9926af76e51b6381436d4e6cc9b05cd1beee2f8b01d460643265c09b53b1058e72cacda1ee60df6adfc210efaee67b2b0cb31e3d2624833";
+  sha512.source = "d878e6325e42c5a7e2695af6ca46d876c56eb4f0bbeb75e560ebac50bac30dcbf6df4b82a1379ff60e713e5f92840150c96fb1b637591863dd9ca1387e9a38ee";
   hasRunfiles = true;
   license = [ "lppl13a" ];
-  version = "2.7";
+  version = "2.8";
 };
 c-pascal = {
   revision = 18337;
@@ -5389,10 +5510,10 @@ c90 = {
   hasRunfiles = true;
 };
 cabin = {
-  revision = 65358;
+  revision = 68373;
   stripPrefix = 0;
-  sha512.run = "5d96c971e8924402048edc533cdc048398fe4bcfcaed87bd0709511056f94d68ba9785599363e59c9e26fcb7bc724bb9481f8e5ea14ef8cef07376922083ceb2";
-  sha512.doc = "dfe85a134cffe5831a318f1b95e3f7d85ed296cafb834273e441af49488ba2c3dd974bd5668f695da1279efefce8c4858eda630f894de7cb0535d629bea74e29";
+  sha512.run = "8227929382396ece0ddac74095387ee0c96d2102fffe5121f89182836792933a6ad66ded538229c5bd12f65fe7518d00a333835c17537761f309db578e81bd3b";
+  sha512.doc = "95353266181cfda03973d68472ad564185abac4d828141e339183f69380f99151e0a3165f099235db54be8a3ee35ffe069512240633972f4b7dbf14ca1e06126";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
@@ -5410,6 +5531,15 @@ cachepic = {
 cachepic.binfiles = [
   "cachepic"
 ];
+cahierprof = {
+  revision = 68148;
+  stripPrefix = 0;
+  sha512.run = "c152dcc24128f0f6e9424012660f2620e385f470d92dc9ed530eb530d11b1fc3aac6e9e3466fea3548d16ac812c89743865ada67a3bd820cd37601f754506939";
+  sha512.doc = "1e203d56ace798bff086a9a3eec3a3f110c5e2c4ec56be637ffc70edca4b28ea8e5bcd8804b087515431460b48ad4863d3c15a1496724e5ad814cac79dc5e7ca";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 caladea = {
   revision = 64549;
   stripPrefix = 0;
@@ -5428,6 +5558,15 @@ calcage = {
   license = [ "lppl13c" ];
   version = "0.90";
 };
+calcfrac = {
+  revision = 68684;
+  stripPrefix = 0;
+  sha512.run = "1545318973205544c136b6bc03ee6838f9496972e43cb4dbda404d2bc389ff41f873513ac0275769685f72c0222998386d2f9abfed686570d98fced592414443";
+  sha512.doc = "d9bc62d0d8f95ef3f34b801eaf612e5506c2c3ff855bac800a6bf3827fc3b1e572390691e04425992604e2d6404844db3fdaba566f98da46d67877a8d077fb10";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.2";
+};
 calctab = {
   revision = 15878;
   stripPrefix = 0;
@@ -5501,13 +5640,13 @@ cals = {
   version = "2.4.2";
 };
 calxxxx-yyyy = {
-  revision = 65426;
+  revision = 69266;
   stripPrefix = 0;
-  sha512.run = "f76d0a8a225582fda0c9b93549de8f091cbe5bb7db4cc20ffe5c5237126162954504f9748c75b8ea90805daa1b0b3bce2bd67fd6a9cea0700653c46206b27c9c";
-  sha512.doc = "418beea5ff9b534d9cce8a4b90ee930c9df6e6c109fb045207899c823deab6e10f284111ff57aa8d5d7eed7a03f6073afeff2eccabe0303f566d560f59c5fc39";
+  sha512.run = "329c4f91442d8115c997bbab09ae77e29bd2a8146d3109328ed9e08a2a4080895618b9a8467d4827c14ef65741b1380771409909f80d0b5fba6f527fbc900411";
+  sha512.doc = "8c3f1a6a168e5891a07d39c7f67270adc521c19cc4be6a302dc779b9bc5284bf4aa7d9b3caab22b5591c0483800ce62f0647bf9e14c83902777aad0070e4193c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "20.23a";
+  version = "20.24a";
 };
 cancel = {
   revision = 32508;
@@ -5565,11 +5704,11 @@ captdef = {
   license = [ "lppl13c" ];
 };
 caption = {
-  revision = 62757;
+  revision = 68425;
   stripPrefix = 0;
-  sha512.run = "55109f93b3dbdb817985c13b4ab55c0effb4122162158e014e7626d3093ee8ad4496374b0a337da27640f22e4ccfced8aff21cc198b932edc95092e67f43c14c";
-  sha512.doc = "bd6435cf073f65ad373aff3970e802751ad3b41d3d8683b4b23a7592a5d8a780c9870ca7a5ffd2c26c4990384c5d97565fa5dea17c162a0b922584b87efba687";
-  sha512.source = "a099da0a5d70e8fa16ebfb9e4b7837979f8ddd7fb30cb23d13e1104c1449fab119c4b7bb9b43f1f5e9bd76888aae4e78db924e8ed386418fc8467f501f4a5656";
+  sha512.run = "21a36ab8ece42716032a15f3c105ba32c5697c4c88fc8b383c66bc6fe7ddd4969e12721e94d79df0817b02b43e498ba5211ef844e320bd91ccd9ae24e6f28fec";
+  sha512.doc = "3a13af008ba73516f8d4be8ccdeda4b18fda2bf9462fed32aca7917efca3e5185f77810900945ed518fef5d81e2629f89cacad5564462f40bc0defe79451a415";
+  sha512.source = "160a286e1145f2669dcd1abd651cf2fd725ceb95c87506d0844e95393be85624fe53b2f549b7006d8470449ee9305aeed2e81d1a7f2c69cd2f38a26aaf4fecb5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -5628,13 +5767,13 @@ cascade = {
   version = "1.2a";
 };
 cascadia-code = {
-  revision = 57478;
+  revision = 68485;
   stripPrefix = 0;
-  sha512.run = "52364786bb0be4bf001ad0563b9bbd7929f7c4b09299919623a237f631633c9ae57a185515802372251c2dca3261dab41f66420e59e9be7d2912f2c6bd30dc66";
-  sha512.doc = "48120981b674f9dbd5099255f4f430c33bae91bc50f6a2fda3f7e9625886584bfb024eddfc9ca795dedf4174f73d6546e2fbb0f85862b12e6b35bec527b6086c";
+  sha512.run = "3164663a54bc3ffe39aee9cbe9501a3d405fd8879059081ee2f0f66bb523686e25f3a7fdb69e61cb623a17ed21f21b0d6752f8c05b09590672d04315d5d6594a";
+  sha512.doc = "c84b14187b080c744a33319a4ef791be09b4517d8cd0e9ed2dbedfbb37a09785dd6244a4e4dd1cf67cc8f6ff608b6ba8d2299c7074921f6443d6208c702feac7";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.0.1";
+  version = "0.0.2";
 };
 cascadilla = {
   revision = 25144;
@@ -5704,19 +5843,19 @@ catechis = {
   version = "2.6";
 };
 catoptions = {
-  revision = 35069;
+  revision = 68982;
   stripPrefix = 0;
-  sha512.run = "1169ec654a56230c615f561649ca1fc22716eaee05e5229d1d2320ff73717b708abb98789d7457093e5ab5f2dc67f3e818e58c7e8f32c8f29014e19548f02de1";
-  sha512.doc = "4c35a3fc5829e3492fad27f2635bb4ae62b17b5d012db40fcdc5929ffe0f3917ec76c12a940d5fc6dad2b8d7d9d12042c7f5c2350467ba0777a23c97372cca5c";
+  sha512.run = "d58647cd52548a6ceb0f6a47ea20ba9348e1edd55f5514c5264857d99be1085824c4f75c2f7231ef41a1ff5fd0274fd5e3f5dd1b91241179d1bab417f2ef100f";
+  sha512.doc = "ef09ecf5c1bb066ae733dc1dc3aefc8f6c8521c8596ff8b45d42ce8315fe49773b6c7d41d632eb342ada05d16784faac3cdfce51af9cca4dab7c9157a7947867";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2.7h";
+  version = "0.2.7i";
 };
 causets = {
-  revision = 66375;
+  revision = 66359;
   stripPrefix = 0;
-  sha512.run = "af547d00813a1e22809f11b465e0a17076895ed6b7c3a51da0a6e14adaee54397f8650e4d1845243f494217e80f5b22726af04fb719353a9cd07a8d98792d3b3";
-  sha512.doc = "add04d39687d5dc1d6ffc37b889cad1dd75aaa515d5af912ceedee3df302495512163e1fd9a8b014ca3615c166a2201d15f3f68b2a507f4f68c3481f0a3af7c5";
+  sha512.run = "961f6affda4b94a2f67e1acfd62a12439faafc436c66320b04c3df11383016375f0bd284836a0618def46e624e7e7a5f46524bfb9c3113575c88d490d117a417";
+  sha512.doc = "241ce316af86e3f764929fa7c601a1533b86f85dacfbf2e81acb487b312c7df9c2a9ef1ddd047a977cc7eabaf4643caeca7f5c07979f9509867f3d522c507873";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.4";
@@ -5857,11 +5996,11 @@ cell = {
   license = [ "publicDomain" ];
 };
 cellprops = {
-  revision = 57599;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "44aa6378b682ec67b547458ffbdd26416c517cbd8df6b021325448696e291e0a8006ec036edcd476f105dc8cf41e556867f8f87fad30da184668050bb2d8d34e";
-  sha512.doc = "187c5708944d275b5d17f616a2b4bbfc76fcaa0dc9d11da2d67769e46b232656f1bab0602ea94b3fcb1665c92500abb7ffe60645ff267da077ea98f35620efb3";
-  sha512.source = "771b6bc32e1e82a62dc1a93c955b01455b14ca5f9fe43d79f29e131487ec695ac50d6106cfe68c5e1e8fdf6d88980b7d7220613a8132472cc8fcd0d9d3b63045";
+  sha512.run = "81b8f2983c9425d7b95d916fc5f1989dc266154d4cea7c48165265076f187c82d256fd98989b750cbe15db64f6fb4a935bc91ae67718b5541ed695ede861c231";
+  sha512.doc = "a88187cd20bd8ab41077d3221dd6f804c310a3f7e53e1e600872a4edc65dfbe1547ca8599c42a9a10d4d61ea89c0a8da2cf4d60680706605048fb728e7f93129";
+  sha512.source = "1cda598a44d2b5c8663927911a291d91dae59d5b0169d34f386910877916a7edd6018549ca36a5c317d33c93096ec77dbdab5528b4fc41864a140aa206112c75";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "2.0";
@@ -5886,13 +6025,13 @@ celtic = {
   version = "1.1";
 };
 censor = {
-  revision = 63126;
+  revision = 67293;
   stripPrefix = 0;
-  sha512.run = "d4f70727850c311cff4f7bbfd2962bb9510590791cb3e00a247f6c708477f9b0b7bd35f771e3145ad760f18284b7e8779bf302b55fbba3f25f11ed57ee896306";
-  sha512.doc = "3d1d7f5828ef75c26b8e172c6fbe0d48d15842a11d720574f022684a154c6dc864241a8a320fc4cf42c31ed67eced0bf1c728e321b9d8e4cb08a96811e7f80c1";
+  sha512.run = "9f61a4830737a7ec59797489ce4fef44d5d270d1ef84b4971eda0d91bd9fb6aca0efae6a7a0d056919d090325592e459de7b9182321cf1025251a81ee9127a90";
+  sha512.doc = "3cf23b7cfac9f992890f67fc86f3e53cadef7cbe2725b4a19bab144766c4f1e60a3675685513d062d5ad81b3f13b4b6864c1daf83f76761275aa51b07a130c60";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.2";
+  version = "4.3";
 };
 centeredline = {
   revision = 64672;
@@ -5943,14 +6082,14 @@ cfr-lm = {
   version = "1.5";
 };
 changebar = {
-  revision = 63259;
+  revision = 69367;
   stripPrefix = 0;
-  sha512.run = "1d47e3e98e6923fda580a8a34b8fcdcc7aad164306a6380ff8fd9ed77f1256225221f8b15da604303e562471ed6ffdb7109b6b95a397b25b80c48fdc4e565b62";
-  sha512.doc = "f3ece8b350ee00ecb596f0f66ef2ded81b7c507c618d226084d4a4e403441b9183a3686c2c26430654c45f15471092e83864a28cddad3d08e60c656d3af8ebe1";
-  sha512.source = "0615c7d0057e9138ba84e0f622560b7c0823d44021702ba31a77ab1e3bd13c24b8d59b1d96369d5e619d180797f2684c25d497e40a5c253a67eaf399b6cd0763";
+  sha512.run = "2dda64af4a2528e5f81a1dad9002badd1c443d7f1e3cec36b9548254e5b365a641912e720779787cabc6057dca74af42db2e1ec3a9ffe39c3ae5ef7ffe0d8319";
+  sha512.doc = "5e0e2766b5078d1ffe87c36d14961aca842ff7d0ee73aefc6277b730dfcf98ea573c822addb2d6b95cc3981e6f56458a3a209c03848eea48170f7452a6261b96";
+  sha512.source = "ad58dc8f77ac1f4852d47baad9718fab4549d8fc0f856596cd8501329895b532346a299e412e87840de6934151837eee0af0b4ec30200c1bb99f10709901c9d0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.6d";
+  version = "3.7d";
 };
 changelayout = {
   revision = 16094;
@@ -5981,11 +6120,11 @@ changepage = {
   version = "1.0c";
 };
 changes = {
-  revision = 59950;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "4fe27f5c76d1ae374b1d3f3d75cb7e61a82baff34ea0fbc6c7ea87eede785f83dff23f3f56fed9323b9d364cc2bdc533640552c8b454f7a821a80e830244f97f";
-  sha512.doc = "f35b3e0eb4318a97bc09361be9561a3b195678559f8311fb0d2bab4211f86853b1210e515e02e6312a8d46e52d7534ad9573b9bb3ed5611f1766a55e54d22c3f";
-  sha512.source = "a8ee2f4efa5caad223bd543a0bcad42eed02d2aaa143826ebbb13000d820083ed416cd7399d07c8865301708fcb87febc5d211ae8b0a6a6f08b5b9143d8c430c";
+  sha512.run = "c7c8f65cc8a6f94403a1c85b01eece41561eaaef39b39977d02b146ef8dfa49aeca27345eb96ad5f6ee05d3a6625aa0dec9a34def564fb2b25dceaa528d230f7";
+  sha512.doc = "26796990ee809dd953fc8f5ead93517faa1bdddf3639d9d51fc2f0ab00a620fdc1950ca78a6a77cb58a5977f702a1d93738312451900ffb0a745282e777f7daa";
+  sha512.source = "35fc09ca71c5a7baac4d4bd69ea38f507927ba0c82c2ad7318d11ac22d3e319f70522cedea14f2d36f780bb2c7ea0cb852a111dac3b07273df53291956e9c716";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "4.2.1";
@@ -6047,9 +6186,9 @@ cheatsheet = {
   version = "0.8";
 };
 checkcites = {
-  revision = 64155;
-  sha512.run = "c28a2785348bdc7cf8e30d3339f301a355b6a9e513d143d34f2b2535a69a32f7cf8a8ae9c26b42c6db32d00021a10ca135891a22b0547c219f31c6c9720d8ca5";
-  sha512.doc = "a394ea5f70f48e7dc7c9d75de33bbf788904a5e1d8e3aefb5dd3bfd5207ee512b1a84ab4bc03bddfa15dedf962f330931d9e80593542e5a180fdda8a8aaf87c2";
+  revision = 67201;
+  sha512.run = "f39c3d9dd2190ea9bd08ac323192197042d9a3899de22ca3a3fe05c0eaea0061f07fc3f53ea3c5f8c8b3bbad5ef4be0da7bf218238e660d28283bbf4edd02a31";
+  sha512.doc = "49760eb0be9ec54bb784f1b33ed5b86ce655b91b85e6f9a905342832aa4d4288138b82268a874f7b458ff87c8a94e4fc542dba3491b55a309915b6c3623e5de8";
   hasRunfiles = true;
   scriptExts = [
     "lua"
@@ -6136,13 +6275,13 @@ chemexec = {
   version = "1.0";
 };
 chemfig = {
-  revision = 65901;
+  revision = 69227;
   stripPrefix = 0;
-  sha512.run = "3d7e49943a034ecb25c13015c3c2e05078ccca1cde53ca4aa1496dc46372fc182afa48275b29ab87e6877307a595735329cb5a1aad8db7fa43f8582fa18e8ebc";
-  sha512.doc = "ee26e23a8409cfe2a3e8efb888734f93f4d5b727420fc057b6963e344565ef56c1385fd0fe02f299ea009167ce1de72f448784368cd8fbd4cc45f991863dc564";
+  sha512.run = "1f5908b759c39314eb999b4d1e60ac364888e4d6193673bd387ea838eb9bc257500b0603055b2182cd5be581dc1d674ed4eaee6ec4b0ce225f72ddb77f67ac80";
+  sha512.doc = "1af123c858992787d641eb6f0263f5ed0d819c4264e97191ae8058714039e202bd9bb663e25104775d9362ca005acdb056b3c97c238b1899880fb51665405a13";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.6d";
+  version = "1.66";
 };
 chemformula = {
   revision = 61719;
@@ -6460,13 +6599,13 @@ chordbox = {
   version = "1.0";
 };
 chronology = {
-  revision = 37934;
+  revision = 67973;
   stripPrefix = 0;
-  sha512.run = "6fca0b31511366c1e39f6518bf5c6e10bfb503a8a901d9e1167866a40e2fbb9d2a6e109f48e146bbaaa2c017ac96e82196a5f49a91c6c9f52eee2633fd5c0737";
-  sha512.doc = "ce0417e339724dfd97c227f104d9cd0b697c1cb7a5c586c890c3e938bbdaf5db2984fa83a09d983970c1105751cd012e544807a74bf0a35ecd2074a97d0520a4";
+  sha512.run = "0706b70147c064fed807d750e3619d6f6c9ee9d875de70c8e08720bd0fe86e75fe79a2dc909ea9c76d98e0f6cd864957ee213f58f2753eaab86bbf2866b301e9";
+  sha512.doc = "dacc8fbf5869df257cc03f0bb4b1c33b2ed7e67f2bb7e4fb897038d623b4f3c1c7e308191a2270e661157d3908c142fc6fbaea349740487797f45feaabc9c039";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.1";
+  version = "2.0";
 };
 chronosys = {
   revision = 26700;
@@ -6496,7 +6635,7 @@ chscite = {
   version = "2.9999";
 };
 churchslavonic = {
-  revision = 42751;
+  revision = 67474;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -6505,11 +6644,21 @@ churchslavonic = {
     "oberdiek"
     "xcolor"
   ];
-  sha512.run = "6c572235b95bb1f8407addefdefa1d7d3facc09b963f4d65d2be317986eb6523db9a8ff7104f15c526962ea8fbd0e1430b68867bf619cebc9b494f5cc04bfb07";
-  sha512.doc = "90d563afc8248ded0ea4f30ff685e2fd9da8dec7ea92a3d4313040905be883af3f11393a031ec85ad39e9e51d374557e0f1f373a78caf855d2048fc4e0393e37";
+  sha512.run = "6b312822caec9f9d71396b8737010e59521cc59a744c6d2e0633ac26b24ab0ea97ef29472a83b49448e8d82225ccb63926cd91ffdacc523ebf37bfbd2d4cf6b9";
+  sha512.doc = "a56e9927434f6d29db7c1ec20c0c3d20cd24241a9883fff160cba111eb5c11181d5ad1b9ec8cb66dedc649b8c8d25b9cb8670f1a28474174b31cfed380a2327a";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.2.1";
+  version = "0.2.4";
+};
+cidarticle = {
+  revision = 68976;
+  stripPrefix = 0;
+  sha512.run = "1dd802c60fade71ee873cac25440e52b9cfa45293019cba6c22a16a6861eeeea1e15ad4f945dc9eafd95873efc112110b4ec14550f8bf8cdf57bec6fb6e54ade";
+  sha512.doc = "ff0dbf03d9c9f371d90adaf1f5d984e5ca6628d005c1345f4e2fa7c2c4bfe494914667d8afa572a5e3eebe73a7d4e01cfff8e1ec8c213d58f71fe64089872722";
+  sha512.source = "f46c3d5e483cbc9352793a2b8cb6b92ca0a561ea321633d9589a39f8331ded98e183ac331fb100e4e7e0539674e2563aad95c029f29c00e98798462e25228c9a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1";
 };
 cinzel = {
   revision = 64550;
@@ -6530,13 +6679,13 @@ circ = {
   version = "1.1";
 };
 circledsteps = {
-  revision = 63255;
+  revision = 67889;
   stripPrefix = 0;
-  sha512.run = "9d6d03eefcf50ccb8f88d5782f00d5201efdcf844c947f45ea92a41d196de70b7917013b061b6eaa9d0322cd44e826b3987576c7483176b7aa956cff2a55a611";
-  sha512.doc = "ca3ff6fd272068aae1935a56f63e32886dd879816114b51835ae4c44db35d97bf048e5808fcf3c6c3206f700736835ceefe7883434a91318d434591d701a4aeb";
+  sha512.run = "41f96e112cba5f15bb36afaccff8852917383269c7ccf8f163972759615d5e5b87c3acbb54e4d14db6572cb0330154e1117f3159d851fcc9d3c5c3efd3c17d88";
+  sha512.doc = "815af1f69253625528fda78b1794eae1ddb5cdce357f5af5db5a68385d7ae90386611335fb8c429de8dc13a908ab5253ca2e99ed019590434ab6d087c2dbcbd4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3.1";
+  version = "1.3.3";
 };
 circledtext = {
   revision = 63166;
@@ -6548,25 +6697,34 @@ circledtext = {
   version = "1.1.0";
 };
 circuit-macros = {
-  revision = 66556;
+  revision = 69263;
   stripPrefix = 0;
-  sha512.run = "8879518a4ad41942651c04f4372f354e231ffd121a8c8fe7ea7a517ddd33765910ead0251a8f82b3a0a5d77dbae7c997d01d4fbeaab82fbda112952d1a6a1a24";
-  sha512.doc = "5d8e5af2d8cb8998147510f72dd1a2be31566708c000616989c48593b98f86c8302970345d7d9f1bbb383f4798b66ad624f9e1a365fd072066ca8f3286713b7e";
+  sha512.run = "5bd9c2885a1e8bde8f954d5a4072e00fb7e2b2a1663fa6db5f1346aa5f5022107a01f44175daeb0fa8e84e066c8373de8943b89bed725c03bdf45769dca51ef5";
+  sha512.doc = "784736df91755e22f003719b1821b01a8346ffd72036cef10ed2fb38869beaa449a12f8a5782d48355426ac46268f3d897178e7ad06a2bb21fe00672a9d64280";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "10.2";
+  version = "10.5";
 };
 circuitikz = {
-  revision = 65785;
+  revision = 69077;
   stripPrefix = 0;
-  sha512.run = "c7fb0d07045efd8165ff3e15f1d92dccab8ffb91cf383a9617252386bd2fe49bf570ad74100c81115ac609403546865561f61a64761e728354179da0a19adf26";
-  sha512.doc = "d1c09c6166c3d0a03da892e45613bc15a8176fb7646f0a893a60cfb84bd00a8c9475c4be98067cd1c3b4ce855621053963607ed963eb20300588d4c2657c6416";
+  sha512.run = "82eda82916370e8c76c450d74ffc4a77770a00aa0c65c4b53e46b1d6c2262db83af3290d220be14db657ad80ddca202535428d6e34af5a0e7b6348c01d8fb59b";
+  sha512.doc = "8dbe6c341fa86da01fcb3122531f1dae59abd3e1927d065ea7904294dabdf45746c52fa9b25b8a32a6234984afd8566b914c9e5b7b29a05337fbaecb4321c506";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl1Only" ];
-  version = "1.6.1";
+  version = "1.6.6";
+};
+circularglyphs = {
+  revision = 68476;
+  stripPrefix = 0;
+  sha512.run = "043f30f3b8e7834698e2c70744ebb66f938ff7189c593f54b1d3017b84cd7fe180b5b7685013985f68c31f8e62785804129ba91181053119679ea4f775676933";
+  sha512.doc = "8ebcaacfdafbec747a690b392e872a9ee8e7293070e3200ef583f6f5e660a5ab813a8a426464f024c493e17e956f1192984ca3a58fd7abbfb89fd403fc1e359c";
+  hasRunfiles = true;
+  license = [ "lppl13c" "free" ];
+  version = "0.1.1";
 };
 citation-style-language = {
-  revision = 65357;
+  revision = 68454;
   deps = [
     "filehook"
     "l3kernel"
@@ -6577,15 +6735,15 @@ citation-style-language = {
     "luaxml"
     "url"
   ];
-  sha512.run = "4260ef2c25c7350e01a0bb7b7372a63da723c81a473ecad7346962c49ce35b68d5385863bf3ad742bd4da79720d4d240293f65677e01cdc41993509a5999cd21";
-  sha512.doc = "19c2336b57d8da88dcf22a92e54872a0d9548d5b2f9433ef155534c29f935988056240064ee863fa4a86caaa93dd0e4873725342c698bddabcbc90b771fb8d60";
+  sha512.run = "da914f9a07a02453627546719a1df88d3cc5520bd1530876208b2cbf0acee4536f043bb34228a54afbb86a4fe5ea9fe178102f61828b66b1eecd610cae7c473e";
+  sha512.doc = "3af7adda2f2cf49b178680be6bd72f299d04f515d4f8711f6830227a43292229704dfb990ceee289ef9b46afd1f057d53215dbf226fa99c41a218542dda74a67";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "mit" "cc-by-sa-30" ];
-  version = "0.3.0";
+  version = "0.4.5";
 };
 citation-style-language.binfiles = [
   "citeproc-lua"
@@ -6618,13 +6776,13 @@ citeref = {
   version = "1.1";
 };
 cje = {
-  revision = 46721;
+  revision = 68656;
   stripPrefix = 0;
-  sha512.run = "cab80d266c2b5f9d4ba9d37cc5490e831e3f773d86c92fcbfab9474864aebbb6123e1ed44877127e84b6e1fe8037f2425259789b9b9597de49e1b24b123992a4";
-  sha512.doc = "47a2d96b6b530be732385617af832ad48c3d6c7a34a7e9e0523c38a03b5116b94588c995afd153c25be6ceea9bc199685fab9eb83636b5fe27525b19a4bc7cec";
+  sha512.run = "764c9429f8000aede2b8dd85fbb2bd7eedf8e6bd2924347b75d2aa51a05b060921da15b1a55d9cc33582e5fe658d89edf8337e02f164a3de033c66bed3c6c2b7";
+  sha512.doc = "791757a59293d7144844cd05ae3346068bef42dee489138e5faacac68b0ed0ec639eb8c60d0fe34e29f37e1238601ae074d43d0e7194f07c1940a0f9411f8f85";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.06";
+  version = "1.07";
 };
 cjhebrew = {
   revision = 43444;
@@ -6666,16 +6824,16 @@ cjk-gs-integrate.binfiles = [
   "cjk-gs-integrate"
 ];
 cjk-ko = {
-  revision = 63561;
+  revision = 67252;
   stripPrefix = 0;
   deps = [
     "cjk"
   ];
-  sha512.run = "be65ef03300b8fccc4012ece68570a86797e36267ea2f531fead77659cf7bf2a315cca1a3e3386f8d1dc09cbb3b44b20dafb3e0e0cbd53bddb1a368c984937b0";
-  sha512.doc = "3ffcae00a4a0dcd175fcf864c3c0c578d7926917216b4a785c0a46074ef013eafe9458ba9010d14f081c63ab4ee0941d0597dace373eb178369de9caa210a16b";
+  sha512.run = "8eb4ca863ffdcab233a353629f40b87264903d2cec2a79088a8f92a705b78e5172228ca46cf4f3ebb78ec5e8bca093917bf191baa7184f805003ea1f3019ea8b";
+  sha512.doc = "75c041a2fbaca6977a96efbe7f5c37729d85c2f0903faafcdd69eb1425037e8a045a394b6c65b8914e0d10c831a63c58bab111491e3670e5cdedbb4a73b2e3d3";
   hasRunfiles = true;
   license = [ "gpl1Only" "lppl13c" "publicDomain" ];
-  version = "2.3";
+  version = "2.4";
 };
 cjkpunct = {
   revision = 41119;
@@ -6719,6 +6877,16 @@ cjkutils.binfiles = [
   "sjislatex"
   "sjispdflatex"
 ];
+cjs-rcs-article = {
+  revision = 69006;
+  stripPrefix = 0;
+  sha512.run = "6f49b9c02aa67036997403d65a9efc60c0cb7bcc29931d93fbb0359624fcbf4b3899e75c1721155b6484d7baafa79a823adf08fa5f1491352d4bd547dee22a58";
+  sha512.doc = "2932d797b3969a5e399c51d2c515c05cf7fccaa88d82d80b99f626dbf2ff7a6e5f7414963696842f1980755b72a06f9e9def3d282f8ff5ca5175ad1ec8d3f1c5";
+  sha512.source = "e3ca39b24e2dee6d611ccf7b0753da2d99a419db6d7e31d5aee231439dfd08da4f4bd9f902fa8c65d16df7fb9560cacf3d76ce111ba2881d267be7964c538649";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-sa-40" ];
+  version = "1.0";
+};
 clara = {
   revision = 54512;
   stripPrefix = 0;
@@ -6792,6 +6960,16 @@ cleveref = {
   license = [ "lppl12" ];
   version = "0.21.4";
 };
+cleveref-usedon = {
+  revision = 66915;
+  stripPrefix = 0;
+  sha512.run = "6004d6bb5fe8c93d2c48219c1c464ad26ee1ba4b31d15e0ca55b49df9218dc974e863f975e2d4f254c2e41197bb60c4722c126660919fe07d1f0e502f2bb13ea";
+  sha512.doc = "f8e2efa3de278d1ee600f844e0cbd7da73e105003b45f103fc0f1c3aed9df4dc622302cdfcbe77646322e29a0451856816ff9ecd908e1d882f7829f9aee5cf1d";
+  sha512.source = "acc43cbb720d9feb8b4535b60fe613583192b5c6907e00db495cc03432e1bfcbb99eaf99208213e1b29140766f16d2246f6232f3a3929e88d00ec581a39bec1a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.4.0";
+};
 clicks = {
   revision = 64602;
   stripPrefix = 0;
@@ -6834,11 +7012,11 @@ clock = {
   license = [ "free" ];
 };
 clojure-pamphlet = {
-  revision = 60981;
-  sha512.run = "67047118c74e1d19426d99bd3a716d6076d977156f1e686bbd991d6b1cba464897f662e950c86218910b485300d40a5cb80d8d43868fb7920cc99a6d7f1c5735";
-  sha512.doc = "02ab33398a87a47c76fd34df9eccde47b60b028b3a659294968b35beaead85908d958ccd94b8f706f6f2173c9af3d7f7382c510134dabde4bfab9be20f85998d";
+  revision = 67201;
+  sha512.run = "bfdc173aa0a79905af238766f162f779296fe16e343a0fc4d41e8a47be2021eaff1cb30129db1238c725f633f3c96264ccc9a2cc0fdf0686e04622090d5a598d";
+  sha512.doc = "a8c782042d9c55d234ad5df84d73e0d4abedac2294073146bbb8dc0b01ea40910657d3a3e1bfb324437bc67426f69ccae6eb297b81282f32190e87bb2ba154a8";
   hasManpages = true;
-  sha512.source = "5848f7ace83c5bbf5017f7a760fdc464e848511717f5fcca5e17f95421429a5608c590fcbc1e7a0d49bb5996def552f16515edfbfa5a2673fef962529141e5a2";
+  sha512.source = "8dd7cf59db96f9977f9242475c46a6635bf6cbc5c18bf1f44ee65cd6e308a5d0dafd2951b602fef102632ac2f6fdf707d306fb400b02e657c45a4eaf2a52384c";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "1.3";
@@ -6893,15 +7071,16 @@ clrstrip = {
   license = [ "lppl13c" ];
 };
 cluttex = {
-  revision = 60964;
-  sha512.run = "35c8ec3711963131bb50fe67ef95705a1d40a6dfd831a33d863bde16f16e66086e204725154d0deaed13e94fdc28dd59497561673542151c1574f7fe87f516f9";
-  sha512.doc = "c8e395e087f9ca511db96b96dee3de4a51fdfc9374ddaf40703db0980724000f1987298dc8253d0c5a8d7c97e46cc2a8165b7cad6560fa560213cd5ce85205de";
+  revision = 68912;
+  sha512.run = "652ad061ea6dd183b7bb5e0a893f3d1cb1e48e17f93c65e2c9f82eb1261759c369498b2ba36f48acb2a29772707bbc36c2832be1518507970f06f0e527c1fb55";
+  sha512.doc = "5dec8c3c1ecebea760f25d5acdf6371ee67c40b38f64b24d2b47346caaa3a2a20d18578c37e14586fc16aa81a4f50761444f26206b01901913e684e413ecc0ed";
+  hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "gpl3Plus" ];
-  version = "0.5.1";
+  version = "0.6";
 };
 cluttex.binfiles = [
   "cllualatex"
@@ -6987,10 +7166,10 @@ cmbright = {
   version = "8.1";
 };
 cmcyr = {
-  revision = 60630;
+  revision = 68681;
   stripPrefix = 0;
-  sha512.run = "ecb1662bf6861744fa07126fa9cbcccfc0d53a1a9c1bd6b91a3c5482ccd83ec45b1dc17976d2d6c9cffc1dfb6aeb8ee583d753c427eb367b2c294defda98f519";
-  sha512.doc = "8db204fd976f23f99871dde1523ea0d46c2471ffd55f7bc1dd65e6728bd09be609b659f2044e5650d8f4c89c169569b4a4ab5535e975f3bb824a1faddb8a97a4";
+  sha512.run = "c42006e8d596b231c3ef7f3f7123292a9563f6bb0881a7807625bd05e49a67ffd37d6e0965e6da36cdff816cdbf780e54b79b999ee5d0a18fad315f2724cc839";
+  sha512.doc = "153db17097c5a1e6bbad3e13e7bbfaf13bd8380633f62e9323d2c0514a2649b001c997bad9e7495a88f5cf9c1289f2987d147e22bdca6100e7adc1d88561d443";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -7132,13 +7311,13 @@ cntperchap = {
   version = "0.3";
 };
 cochineal = {
-  revision = 62063;
+  revision = 68904;
   stripPrefix = 0;
-  sha512.run = "9ab8abcb37615f7381132181a991adf35d34d61c81ed5100e02e9d314a0e555669a6488edbf9fd698a239ead8f49221410333705d2074046eb3e467f31ea7196";
-  sha512.doc = "5bf6a83c03d5a87567a42379c7f8462b1f52245fad5b18839532761cf855f45e596b76ea266e361527a6f269b008c6a2515cce2a616f372daaf06e6ddd6efe73";
+  sha512.run = "43b896ccce0842cdc7ceb207932c1f112334b27fa11c8431c6d2561ab0b17ac6f841ef3d9ecdb27e8a7c3976c350edfa115bf927c205a4cb493f66b35eaea357";
+  sha512.doc = "16e0783a4a77d96c96d26bb7d04723dcd5fe882da39a9214b4c84bbcd5581aeba331c0c7994a56d6199385ab54ed5cd47bd9dfaab92dcc44f940c0c2d9afdf4f";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "1.077";
+  version = "1.081";
 };
 codeanatomy = {
   revision = 65648;
@@ -7159,6 +7338,15 @@ codebox = {
   license = [ "lppl13c" ];
   version = "1.0.4";
 };
+codedescribe = {
+  revision = 69343;
+  stripPrefix = 0;
+  sha512.run = "9d1176a6934468658a99d00f862ff2554fda33ae7e458409c3dab3df42afcf093f3d28263f8f7b431024df1b67f969ac808806b222ba256d27793a4b1e7a2865";
+  sha512.doc = "2540adbdb84154d3fa96a74e716b3b7051f4687852f873b67a0a0bbe6bf9e932b3bb19eee07b0e4cf7299e3f1d06983b4faeec77182db0e8676f53b2aeaa2776";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl1Only" ];
+  version = "1.3";
+};
 codedoc = {
   revision = 17630;
   stripPrefix = 0;
@@ -7224,6 +7412,16 @@ coffeestains = {
   license = [ "publicDomain" ];
   version = "0.5.1";
 };
+collargs = {
+  revision = 69284;
+  stripPrefix = 0;
+  sha512.run = "1807cca3a1e73b42ec1403c272777d5e31c1a6ecc3efe9b61697d6fee7b2b1deb76b9b909846b55a297587e950b42754f68be4cc5ed729c54e310fcd248d2972";
+  sha512.doc = "395931952725fbebb85445d8f465bc57a74d98f2d70b61f67b97f9a3542598bdfb1ddd7203a3bcae87094aded580325c98f77bfcdfa78147b971a9aff18a8cd0";
+  sha512.source = "4ec8b2ed23cae6473c8a5993efa79e426522ba710378598c408e4b33343b1be29c7aee01c2ad1483cad2a91fcc8775844fa598f740c42438d9c830210d31e0ef";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
 collcell = {
   revision = 64967;
   stripPrefix = 0;
@@ -7292,7 +7490,7 @@ collection-basic = {
   sha512.run = "4241bc3a3ef21502faa9a2e0b16295126c357fc15813a625306552b40f9da804164abccce642f4ec1e677092f81d61381958b87fcf515120a12f9b7a19055370";
 };
 collection-bibtexextra = {
-  revision = 65257;
+  revision = 67386;
   stripPrefix = 0;
   deps = [
     "aaai-named"
@@ -7381,6 +7579,7 @@ collection-bibtexextra = {
     "biblatex2bibitem"
     "biblist"
     "bibtexperllibs"
+    "bibtools"
     "bibtopic"
     "bibtopicprefix"
     "bibunits"
@@ -7460,10 +7659,10 @@ collection-bibtexextra = {
     "xcite"
     "zootaxa-bst"
   ];
-  sha512.run = "db80edc251a62547b401d922c954a40dc3887b01a59952bf20829b67953e26083c98249dba83157b0e9db4b0b2b2802f5965d9360b332d45fe4d69762ef38c62";
+  sha512.run = "652554e2038407c987a3aaf73f206b228728ec7848c737de8c6267abb0b20054846fcc74400fbf4a802c8efa1dff2d4174e9d4725b41a7816e25c9c8d1cfd848";
 };
 collection-binextra = {
-  revision = 65204;
+  revision = 69128;
   stripPrefix = 0;
   deps = [
     "a2ping"
@@ -7501,6 +7700,7 @@ collection-binextra = {
     "dvipng"
     "dvipos"
     "dvisvgm"
+    "easydtx"
     "findhyph"
     "fragmaster"
     "git-latexdiff"
@@ -7522,7 +7722,6 @@ collection-binextra = {
     "listings-ext"
     "ltxfileinfo"
     "ltximg"
-    "luajittex"
     "make4ht"
     "match_parens"
     "mflua"
@@ -7541,6 +7740,7 @@ collection-binextra = {
     "pkfix-helper"
     "purifyeps"
     "pythontex"
+    "runtexshebang"
     "seetexk"
     "spix"
     "srcredact"
@@ -7548,6 +7748,7 @@ collection-binextra = {
     "synctex"
     "tex4ebook"
     "texaccents"
+    "texblend"
     "texcount"
     "texdef"
     "texdiff"
@@ -7567,60 +7768,46 @@ collection-binextra = {
     "tlcockpit"
     "tpic2pdftex"
     "typeoutfileinfo"
+    "upmendex"
     "web"
     "xindex"
     "xindy"
     "xpdfopen"
   ];
-  sha512.run = "4297ddb3f20775c97c2ac4782060ad2c2da469fb68eda24d98c0c84a07403215aaa4e221b82459300887769e9355cb4425f4fe599d5d8413e38f1be5c7f8fab9";
+  sha512.run = "e397e1e30540ecdbefb7017348dde411b1287fb5c3a395d963747e74bd6e67fa5abd1f5137ea57e5f2eedcff1e89ca8fd1bcdc9aeafc2a969821953343e13620";
 };
 collection-context = {
-  revision = 54074;
+  revision = 69108;
   stripPrefix = 0;
   deps = [
     "collection-basic"
     "context"
-    "context-account"
-    "context-algorithmic"
-    "context-animation"
-    "context-annotation"
-    "context-bnf"
-    "context-chromato"
-    "context-cmscbf"
-    "context-cmttbf"
-    "context-construction-plan"
+    "context-calendar-examples"
+    "context-collating-marks"
     "context-cyrillicnumbers"
-    "context-degrade"
-    "context-fancybreak"
     "context-filter"
-    "context-french"
-    "context-fullpage"
-    "context-gantt"
     "context-gnuplot"
     "context-handlecsv"
-    "context-inifile"
-    "context-layout"
+    "context-legacy"
     "context-letter"
-    "context-lettrine"
     "context-mathsets"
     "context-notes-zh-cn"
-    "context-rst"
-    "context-ruby"
-    "context-simplefonts"
+    "context-pocketdiary"
     "context-simpleslides"
-    "context-title"
+    "context-squares"
+    "context-sudoku"
+    "context-texlive"
     "context-transliterator"
-    "context-typearea"
     "context-typescripts"
     "context-vim"
     "context-visualcounter"
     "jmn"
-    "npp-for-context"
+    "luajittex"
   ];
-  sha512.run = "5bd74e1a434549cf31ce31777e9a32f90baa14148e6658633945508a46dbf6611644c4212b53812bb32a399e850517369e3d89bb0e495c89e6f2a979090ed765";
+  sha512.run = "a8426893d3b9cfbddfffa383dc7898f7abe48271695dc6835abb2cda70ca1998d65eda2acd716a13ef4239c8ca8528c92b2c679510d6785ef38bf554b81a6cd6";
 };
 collection-fontsextra = {
-  revision = 64952;
+  revision = 69278;
   stripPrefix = 0;
   deps = [
     "aboensis"
@@ -7643,6 +7830,7 @@ collection-fontsextra = {
     "archivo"
     "arev"
     "arimo"
+    "arsenal"
     "arvo"
     "asana-math"
     "asapsym"
@@ -7783,6 +7971,7 @@ collection-fontsextra = {
     "frimurer"
     "garamond-libre"
     "garamond-math"
+    "gelasio"
     "genealogy"
     "gentium-tug"
     "gfsartemisia"
@@ -7815,6 +8004,7 @@ collection-fontsextra = {
     "ifsym"
     "imfellenglish"
     "inconsolata"
+    "inconsolata-nerd-font"
     "initials"
     "inriafonts"
     "inter"
@@ -7824,6 +8014,7 @@ collection-fontsextra = {
     "jamtimes"
     "josefin"
     "junicode"
+    "junicodevf"
     "kixfont"
     "kpfonts"
     "kpfonts-otf"
@@ -7857,6 +8048,7 @@ collection-fontsextra = {
     "mdputu"
     "mdsymbol"
     "merriweather"
+    "metsymb"
     "miama"
     "mintspirit"
     "missaali"
@@ -7911,6 +8103,7 @@ collection-fontsextra = {
     "quattrocento"
     "raleway"
     "recycle"
+    "rit-fonts"
     "roboto"
     "romande"
     "rosario"
@@ -7973,7 +8166,7 @@ collection-fontsextra = {
     "yinit-otf"
     "zlmtt"
   ];
-  sha512.run = "e0c3a3142ca8dcdcdc0d7c5328e1624736f20bfe9e3757bad95d0e361b73ecdf3bc53e9d19f42ef5d91b74cbdf4fca1ee62b79f53d4d5a5f8aed47f51553d77e";
+  sha512.run = "1a80dbc68b0a3a248fdc699013f7a23796ac9c6e2ae7e3135878f9d5fd6ee17ec1c809ac906804f1fbb3bc43451ee969d48247d9ab9125b681dbb29209892df2";
 };
 collection-fontsrecommended = {
   revision = 54074;
@@ -8071,7 +8264,7 @@ collection-formatsextra = {
   sha512.run = "6c7f0a1829789edea6a42d45f13f482abc0aa1ecc66b0ba4b70197efff349df75c9a89a98f21537cf6f3751b608fc3ee10ac842613deaf2aa21005374a23bab2";
 };
 collection-games = {
-  revision = 65631;
+  revision = 69159;
   stripPrefix = 0;
   deps = [
     "bartel-chess-fonts"
@@ -8106,9 +8299,12 @@ collection-games = {
     "othello"
     "othelloboard"
     "pas-crosswords"
+    "playcards"
     "psgo"
+    "quizztex"
     "realtranspose"
     "reverxii"
+    "rouequestions"
     "rubik"
     "schwalbe-chess"
     "scrabble"
@@ -8119,14 +8315,17 @@ collection-games = {
     "sudoku"
     "sudokubundle"
     "tangramtikz"
+    "thematicpuzzle"
+    "trivialpursuit"
     "wargame"
+    "wordle"
     "xq"
     "xskak"
   ];
-  sha512.run = "f7508dd7b59f4137260fb3a9c74037513e4722539aa8460dd7f0917f47d42cbd1575077880a4e6af49351600c8b9d316437132113c33737a253e7db3c3c1076a";
+  sha512.run = "29cd464cc85a8632164c26468b441ddc97133e4e5ca291d9939e7c0c22c60c7a02df91d1e3cdf925b803976bd7f089d8c7e2b63cd32fb88f8760f546be921160";
 };
 collection-humanities = {
-  revision = 65216;
+  revision = 68465;
   stripPrefix = 0;
   deps = [
     "adtrees"
@@ -8144,6 +8343,7 @@ collection-humanities = {
     "eledform"
     "eledmac"
     "expex"
+    "expex-glossonly"
     "gb4e"
     "gmverse"
     "jura"
@@ -8159,6 +8359,7 @@ collection-humanities = {
     "liturg"
     "metrix"
     "nnext"
+    "opbible"
     "parallel"
     "parrun"
     "phonrule"
@@ -8183,10 +8384,10 @@ collection-humanities = {
     "verse"
     "xyling"
   ];
-  sha512.run = "d2ae12a0b914be72772dadc60021220990f037f40a2ef4f95038cdd603c80e039f94009910aed38513b4a7938ec99ecf2f035a0dbe221b9e166ccd8aa977c30b";
+  sha512.run = "33b19b29b31671c148900d207f1f9947be502ab215e901afa9c5fe5264bafd004717dc8f6438d1a4b40abfa63c0b94725738b8c8bc117e293676f3db1e25ba6a";
 };
 collection-langarabic = {
-  revision = 59594;
+  revision = 69111;
   stripPrefix = 0;
   deps = [
     "alkalami"
@@ -8206,10 +8407,14 @@ collection-langarabic = {
     "hyphen-arabic"
     "hyphen-farsi"
     "imsproc"
+    "iran-bibtex"
+    "khatalmaqala"
     "kurdishlipsum"
     "lshort-persian"
     "luabidi"
     "na-box"
+    "parsimatn"
+    "parsinevis"
     "persian-bib"
     "quran"
     "sexam"
@@ -8220,7 +8425,7 @@ collection-langarabic = {
     "xepersian-hm"
     "xindy-persian"
   ];
-  sha512.run = "3fdcf41fafd94373254281f3f7ee9f2a2e136cfa1adc1dd38e4b5cd6f90d0364e6a20d3284fcf255f245158352421e28cfb794c673b8b96399a20343ed991fc2";
+  sha512.run = "8cef2ee028669abcc0e964ba01f6287f52c4e2857fa7547036ea00bfa47d83d38c9c126705ba7989cfbc027586315284139ec6131c5ea7701136f1bfd7cdc2cf";
 };
 collection-langchinese = {
   revision = 63995;
@@ -8366,7 +8571,7 @@ collection-langczechslovak = {
   sha512.run = "719c321173ca12660891080dae509080934f72d13a9417b2c40a22add963c7c5a1ee95d3b306f0d6c26b0db97d69979c27fbb15d1690849aa03b06d4b0193a67";
 };
 collection-langenglish = {
-  revision = 65496;
+  revision = 68790;
   stripPrefix = 0;
   deps = [
     "amiweb2c-guide"
@@ -8380,6 +8585,7 @@ collection-langenglish = {
     "comprehensive"
     "dickimaw"
     "docsurvey"
+    "drawing-with-metapost"
     "dtxtut"
     "first-latex-doc"
     "fontinstallationguide"
@@ -8418,6 +8624,7 @@ collection-langenglish = {
     "patgen2-tutorial"
     "pictexsum"
     "plain-doc"
+    "quran-en"
     "short-math-guide"
     "simplified-latex"
     "svg-inkscape"
@@ -8440,10 +8647,10 @@ collection-langenglish = {
     "xetexref"
     "yet-another-guide-latex2e"
   ];
-  sha512.run = "2c2f75491a801f71fe8a4a64d798c40f66dc71dbae32192089757a6881fd14299fe30a95eca65c75a9901c82c033a327f7d9a91080dea51f6679239d6660b2fd";
+  sha512.run = "49f20b883df99755070b68d3eacb29c297e76a05b3151d632c26fcf2864d996e4873bbab27429db915f93995923d5b7e680a3c901b28cac888ffa021bc629b74";
 };
 collection-langeuropean = {
-  revision = 66452;
+  revision = 66432;
   stripPrefix = 0;
   deps = [
     "armtex"
@@ -8517,10 +8724,10 @@ collection-langeuropean = {
     "swebib"
     "turkmen"
   ];
-  sha512.run = "4ba87445f080bbe7446ea2f1e4b8f2abdbf64770831db43ab1b4233f35a12c362e5e43b60706ee2400f1070362b949a40b8147547acc5a8b8429879a3fc64dfe";
+  sha512.run = "5fa87f174fc372c21b80ebe6b097525218da63892bc8445a29c24f2bfb015b0f04c100467f85e6c9e16a27ad26e31f00832d7712ebea7dec8631a730a95a9759";
 };
 collection-langfrench = {
-  revision = 63147;
+  revision = 67951;
   stripPrefix = 0;
   deps = [
     "aeguill"
@@ -8534,7 +8741,9 @@ collection-langfrench = {
     "bib-fr"
     "bibleref-french"
     "booktabs-fr"
+    "cahierprof"
     "collection-basic"
+    "couleurs-fr"
     "droit-fr"
     "e-french"
     "epslatex-fr"
@@ -8554,9 +8763,11 @@ collection-langfrench = {
     "lshort-french"
     "mafr"
     "matapli"
+    "panneauxroute"
     "profcollege"
     "proflabo"
     "proflycee"
+    "profsio"
     "tabvar"
     "tdsfrmath"
     "texlive-fr"
@@ -8568,13 +8779,14 @@ collection-langfrench = {
     "visualfaq-fr"
     "visualtikz"
   ];
-  sha512.run = "baec84c93e0b9313b29f807831da39da40902afdbc2305e193e9d4805c631a1e44695c0bc148e973d9021146cc25da9b22b0130b29fe4ff9834667ec83dff9b6";
+  sha512.run = "83be4aa190b32580ab6334a00785123be5678a95f84589dea2ccc2ce77a6328bf8954f28e683a9614b43a062901a28b3f6b060bd968876094aeab5b1f9aee816";
 };
 collection-langgerman = {
-  revision = 55706;
+  revision = 68711;
   stripPrefix = 0;
   deps = [
     "apalike-german"
+    "autotype"
     "babel-german"
     "bibleref-german"
     "booktabs-de"
@@ -8621,7 +8833,7 @@ collection-langgerman = {
     "umlaute"
     "voss-mathcol"
   ];
-  sha512.run = "19b9f47b68ca6068900c413d8216e13c20d25ab084cdcbd500694a18a10cbaa35ba5681be09392e0b20873788519a436c28c1ea89a728e3f546083ce0883c15c";
+  sha512.run = "3b52fac1e2520302998c3b11bc2f77b34d5bd4cc09f4fa4b9238ece66b0e36e676643f7476846d1b25eb64d31b0dbe87a33ad44669be101f61cf223e70ecb047";
 };
 collection-langgreek = {
   revision = 65038;
@@ -8774,7 +8986,7 @@ collection-langkorean = {
   sha512.run = "2d93df728d34137c8f9a884aa2871a2980e806672006f2c5f0c5f79412d5789c6f94958363cfc9a78b5a97a7d76bbb6cb157b2cb2a8a283f7afdfd838fa24883";
 };
 collection-langother = {
-  revision = 59564;
+  revision = 68719;
   stripPrefix = 0;
   deps = [
     "aalok"
@@ -8799,11 +9011,13 @@ collection-langother = {
     "cjhebrew"
     "collection-basic"
     "ctib"
+    "culmus"
     "ebong"
     "ethiop"
     "ethiop-t1"
     "fc"
     "fonts-tlwg"
+    "hebrew-fonts"
     "hindawi-latex-template"
     "hyphen-afrikaans"
     "hyphen-armenian"
@@ -8826,6 +9040,7 @@ collection-langother = {
     "ntheorem-vn"
     "padauk"
     "quran-bn"
+    "quran-id"
     "quran-ur"
     "sanskrit"
     "sanskrit-t1"
@@ -8838,7 +9053,7 @@ collection-langother = {
     "wnri-latex"
     "xetex-devanagari"
   ];
-  sha512.run = "3db7709c3545df3713dc0a7df73f676f9f34df5fdc157c6a2d6a124a5bbd14f6f5f1f2938092e76be19417f9dd5ff4f84513c84beddafbe5c9747abd7fa597c0";
+  sha512.run = "312be65445c4b862e50fcf4bb8d4413b233eadee8a9ca14ff3cb4eb37549314f37a5d00d22a4b3b2cd461b3b0473a7426a5e7f33ffbaf6dfc0687f1af754cae1";
 };
 collection-langpolish = {
   revision = 54074;
@@ -8867,7 +9082,7 @@ collection-langpolish = {
   sha512.run = "fc0d08f70aeb83869109290e6d1585d513097dcd4e17791752ecd3d26ac202838afb5931f78ceaeeaf72c63b18fe9183edd650c075d03188f24cb2caded178de";
 };
 collection-langportuguese = {
-  revision = 54074;
+  revision = 67125;
   stripPrefix = 0;
   deps = [
     "babel-portuges"
@@ -8881,14 +9096,16 @@ collection-langportuguese = {
     "lshort-portuguese"
     "numberpt"
     "ordinalpt"
+    "ptlatexcommands"
     "xypic-tut-pt"
   ];
-  sha512.run = "16d67d288fb702807b43dcf8da044a45206c27c5cf0d953688fc341966fb166db8cec69b727b1de079b9bf434f024f7338eaf34529510cab7881147d1635b43d";
+  sha512.run = "554f7d7e4828e1122cf3bc6b24c67661046ce2ae646975054f6903f8c2dfd3e63131ada963cd3b5a1ca3128539f039b4d275b9c8caadde1dbe9118d583d47585";
 };
 collection-langspanish = {
-  revision = 54141;
+  revision = 67307;
   stripPrefix = 0;
   deps = [
+    "antique-spanish-units"
     "babel-catalan"
     "babel-galician"
     "babel-spanish"
@@ -8903,10 +9120,10 @@ collection-langspanish = {
     "lshort-spanish"
     "texlive-es"
   ];
-  sha512.run = "88bdc5cefd5519bc80e50e2d808abf32aae8f7c730023afab3babb82ab817dc034c78d42b4143135df187343de7164a8fd94dc95c5ec8909e317a2f5628de15e";
+  sha512.run = "1f3c1cc4d1e28871085092314a58671a2acab47da0a758c0bdff569b0a80697ac3c32e9991a8f77268f86c02e51420e4d999a9eef72a2a7353a3efbc633e25a9";
 };
 collection-latex = {
-  revision = 63515;
+  revision = 69131;
   stripPrefix = 0;
   deps = [
     "ae"
@@ -8958,6 +9175,7 @@ collection-latex = {
     "oberdiek"
     "pagesel"
     "pdfescape"
+    "pdftexcmds"
     "pslatex"
     "psnfss"
     "pspicture"
@@ -8968,10 +9186,10 @@ collection-latex = {
     "uniquecounter"
     "url"
   ];
-  sha512.run = "c73220abd1545907a1d8de37cb534d2c6bd2534f1b55f03c069f39f535c326d4b1852f8415d9876ca52645db939ad7a11c55f550a2096ccd4b8dd8be6a4114d6";
+  sha512.run = "889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a03a16e660b114e358cd72e3fafa14a158849cf03aa2ad4d73a5bee4ca9abc4c24af";
 };
 collection-latexextra = {
-  revision = 66557;
+  revision = 69389;
   stripPrefix = 0;
   deps = [
     "2up"
@@ -8995,6 +9213,7 @@ collection-latexextra = {
     "adjustbox"
     "adrconv"
     "advdate"
+    "affilauthor"
     "akktex"
     "akletter"
     "alchemist"
@@ -9014,6 +9233,7 @@ collection-latexextra = {
     "apptools"
     "arabicfront"
     "arcs"
+    "argumentation"
     "arraycols"
     "arrayjobx"
     "arraysort"
@@ -9060,6 +9280,7 @@ collection-latexextra = {
     "beamertheme-npbt"
     "beamertheme-phnompenh"
     "beamertheme-pure-minimalistic"
+    "beamertheme-rainbow"
     "beamertheme-saintpetersburg"
     "beamertheme-simpledarkblue"
     "beamertheme-simpleplus"
@@ -9073,6 +9294,7 @@ collection-latexextra = {
     "beamerthemenord"
     "bearwear"
     "beaulivre"
+    "beautybook"
     "beton"
     "bewerbung"
     "bez123"
@@ -9166,6 +9388,7 @@ collection-latexextra = {
     "classpack"
     "clefval"
     "cleveref"
+    "cleveref-usedon"
     "clicks"
     "clipboard"
     "clistmap"
@@ -9179,6 +9402,7 @@ collection-latexextra = {
     "cntformats"
     "cntperchap"
     "codebox"
+    "codedescribe"
     "codedoc"
     "codehigh"
     "codepage"
@@ -9228,6 +9452,7 @@ collection-latexextra = {
     "copyedit"
     "copyrightbox"
     "coseoul"
+    "counterz"
     "counttexruns"
     "courseoutline"
     "coursepaper"
@@ -9236,6 +9461,7 @@ collection-latexextra = {
     "cprotectinside"
     "crbox"
     "create-theorem"
+    "creationboites"
     "crefthe"
     "crossreference"
     "crossreftools"
@@ -9247,7 +9473,9 @@ collection-latexextra = {
     "cuisine"
     "currency"
     "currfile"
+    "curriculum-vitae"
     "currvita"
+    "customenvs"
     "cutwin"
     "cv"
     "cv4tw"
@@ -9312,7 +9540,9 @@ collection-latexextra = {
     "dbshow"
     "debate"
     "decimal"
+    "decimalcomma"
     "decorule"
+    "defoldfonts"
     "delimtxt"
     "democodetools"
     "denisbdoc"
@@ -9385,6 +9615,7 @@ collection-latexextra = {
     "embedall"
     "embedfile"
     "embrac"
+    "emo"
     "emptypage"
     "emulateapj"
     "endfloat"
@@ -9433,6 +9664,7 @@ collection-latexextra = {
     "examdesign"
     "example"
     "examplep"
+    "examz"
     "exceltex"
     "excludeonly"
     "exercise"
@@ -9449,6 +9681,7 @@ collection-latexextra = {
     "extract"
     "facsimile"
     "factura"
+    "fail-fast"
     "familytree"
     "fancyhandout"
     "fancylabel"
@@ -9489,8 +9722,10 @@ collection-latexextra = {
     "flexipage"
     "flipbook"
     "flippdf"
+    "floatbytocbasic"
     "floatflt"
     "floatrow"
+    "floatrowbytocbasic"
     "flowfram"
     "fmp"
     "fmtcount"
@@ -9567,6 +9802,7 @@ collection-latexextra = {
     "glossaries-irish"
     "glossaries-italian"
     "glossaries-magyar"
+    "glossaries-norsk"
     "glossaries-nynorsk"
     "glossaries-polish"
     "glossaries-portuges"
@@ -9617,11 +9853,13 @@ collection-latexextra = {
     "hhtensor"
     "hideanswer"
     "highlightlatex"
+    "highlightx"
     "histogr"
     "hitec"
     "hitreport"
     "hletter"
     "hobsub"
+    "homework"
     "hpsdiss"
     "href-ul"
     "hrefhide"
@@ -9669,6 +9907,7 @@ collection-latexextra = {
     "invoice"
     "invoice-class"
     "invoice2"
+    "ipsum"
     "iso"
     "iso10303"
     "isodate"
@@ -9676,12 +9915,14 @@ collection-latexextra = {
     "isonums"
     "isopt"
     "isorot"
+    "isosafety"
     "isotope"
     "issuulinks"
-    "iwhdp"
+    "iwonamath"
     "jlabels"
     "jmsdelim"
     "jobname-suffix"
+    "joinbox"
     "jslectureplanner"
     "jumplines"
     "jvlisting"
@@ -9702,6 +9943,7 @@ collection-latexextra = {
     "koma-script-sfs"
     "komacv"
     "komacv-rg"
+    "korigamik"
     "ktv-texdata"
     "l3build"
     "labbook"
@@ -9714,11 +9956,13 @@ collection-latexextra = {
     "latex-amsmath-dev"
     "latex-base-dev"
     "latex-bin-dev"
+    "latex-context-ppchtex"
     "latex-firstaid-dev"
     "latex-graphics-dev"
     "latex-lab-dev"
     "latex-tools-dev"
     "latex-uni8"
+    "latex2pydata"
     "latexcolors"
     "latexdemo"
     "latexgit"
@@ -9751,11 +9995,14 @@ collection-latexextra = {
     "listlbls"
     "listliketab"
     "listofsymbols"
+    "litesolution"
+    "litetable"
     "lkproof"
     "lmake"
     "locality"
     "logbox"
     "logical-markup-utils"
+    "logoetalab"
     "logpap"
     "longfbox"
     "longfigure"
@@ -9862,6 +10109,7 @@ collection-latexextra = {
     "moresize"
     "moreverb"
     "morewrites"
+    "movement-arrows"
     "movie15"
     "mparhack"
     "mpostinl"
@@ -9915,10 +10163,12 @@ collection-latexextra = {
     "nolbreaks"
     "nomencl"
     "nomentbl"
+    "non-decimal-units"
     "nonfloat"
     "nonumonpart"
     "nopageno"
     "normalcolor"
+    "notebeamer"
     "notes"
     "notespages"
     "notestex"
@@ -9983,6 +10233,7 @@ collection-latexextra = {
     "pbox"
     "pbsheet"
     "pdf14"
+    "pdfannotations"
     "pdfcol"
     "pdfcolmk"
     "pdfcomment"
@@ -9993,6 +10244,7 @@ collection-latexextra = {
     "pdfpc"
     "pdfpc-movie"
     "pdfprivacy"
+    "pdfrender"
     "pdfreview"
     "pdfscreen"
     "pdfslide"
@@ -10044,6 +10296,7 @@ collection-latexextra = {
     "preview"
     "printlen"
     "probsoln"
+    "profmaquette"
     "program"
     "progress"
     "progressbar"
@@ -10060,6 +10313,7 @@ collection-latexextra = {
     "pygmentex"
     "python"
     "pythonimmediate"
+    "q-and-a"
     "qcm"
     "qstest"
     "qsymbols"
@@ -10095,17 +10349,20 @@ collection-latexextra = {
     "repltext"
     "rescansync"
     "resmes"
+    "responsive"
     "returntogrid"
     "rgltxdoc"
     "rjlparshap"
     "rlepsf"
     "rmpage"
+    "robust-externalize"
     "robustcommand"
     "robustindex"
     "romanbar"
     "romanbarpagenumber"
     "romanneg"
     "romannum"
+    "rorlink"
     "rotfloat"
     "rotpages"
     "roundbox"
@@ -10131,6 +10388,7 @@ collection-latexextra = {
     "scrambledenvs"
     "scrlayer-fancyhdr"
     "scrlttr2copy"
+    "scrwfile"
     "sdaps"
     "sdrt"
     "secdot"
@@ -10151,6 +10409,7 @@ collection-latexextra = {
     "sepfootnotes"
     "seqsplit"
     "sesstime"
+    "setspaceenhanced"
     "sf298"
     "sffms"
     "sfmath"
@@ -10171,6 +10430,7 @@ collection-latexextra = {
     "sidenotesplus"
     "silence"
     "sillypage"
+    "sim-os-menus"
     "simplecd"
     "simplecv"
     "simpleinvoice"
@@ -10208,6 +10468,7 @@ collection-latexextra = {
     "stack"
     "stackengine"
     "standalone"
+    "starray"
     "stdclsdv"
     "stdpage"
     "stealcaps"
@@ -10227,7 +10488,6 @@ collection-latexextra = {
     "subfigure"
     "subfiles"
     "subfloat"
-    "substitutefont"
     "substr"
     "supertabular"
     "suppose"
@@ -10247,7 +10507,6 @@ collection-latexextra = {
     "tableaux"
     "tablefootnote"
     "tableof"
-    "tablestyles"
     "tablists"
     "tabls"
     "tablvar"
@@ -10264,6 +10523,7 @@ collection-latexextra = {
     "tagpdf"
     "talk"
     "tamefloats"
+    "tangocolors"
     "tasks"
     "tcldoc"
     "tcolorbox"
@@ -10332,6 +10592,7 @@ collection-latexextra = {
     "truncate"
     "tucv"
     "turnthepage"
+    "tutodoc"
     "twoinone"
     "twoup"
     "txgreeks"
@@ -10348,11 +10609,14 @@ collection-latexextra = {
     "underoverlap"
     "undolabl"
     "uni-titlepage"
+    "unicode-math-input"
     "unicodefonttable"
+    "unifront"
     "unisc"
     "unitconv"
     "units"
     "unravel"
+    "updatemarks"
     "upmethodology"
     "upquote"
     "uri"
@@ -10372,6 +10636,7 @@ collection-latexextra = {
     "verbdef"
     "verbments"
     "verifiche"
+    "verifycommand"
     "version"
     "versions"
     "versonotes"
@@ -10420,6 +10685,7 @@ collection-latexextra = {
     "xifthen"
     "xint"
     "xkcdcolors"
+    "xkeymask"
     "xltabular"
     "xmpincl"
     "xnewcommand"
@@ -10452,10 +10718,10 @@ collection-latexextra = {
     "zwgetfdate"
     "zwpagelayout"
   ];
-  sha512.run = "ff0de06445cf602f2a3d7b2c759e5214c5ca2ee00bc596416eb201d23bec87f5d3af6acd2cb42b2860ac1e0486a8682a628e67958afbc472c73d5b692549985b";
+  sha512.run = "9241966245fa9c875e458a781779f1ab00b615cfee8e5b4a591bd2fe71ed0ef148f7ed40559e7a54c6a46c63305838bb2e46634a2f434d550e80366af2f329a1";
 };
 collection-latexrecommended = {
-  revision = 65512;
+  revision = 69131;
   stripPrefix = 0;
   deps = [
     "anysize"
@@ -10509,7 +10775,6 @@ collection-latexrecommended = {
     "pdflscape"
     "pdfmanagement-testphase"
     "pdfpages"
-    "pdftexcmds"
     "polyglossia"
     "psfrag"
     "ragged2e"
@@ -10532,13 +10797,14 @@ collection-latexrecommended = {
     "xltxtra"
     "xunicode"
   ];
-  sha512.run = "952fe1be5136c0fded29381fe58935dedfe2c0f338f38d280c2a69bb718e2b93520f6f328f98d98a9161bbf106bda77cbddc4277e401a4f33e480dd3a7316483";
+  sha512.run = "586232e420ea3c53c4c9532252681a8ef20185348deba9e1f37c1e0231203a8d4955dc27c067ab1491ffbaa8f267a34d09cb6c48536f871da3fba8ae15c1f910";
 };
 collection-luatex = {
-  revision = 65791;
+  revision = 69404;
   stripPrefix = 0;
   deps = [
     "addliga"
+    "addtoluatexpath"
     "auto-pst-pdf-lua"
     "barracuda"
     "bezierplot"
@@ -10555,6 +10821,7 @@ collection-luatex = {
     "emoji"
     "emojicite"
     "enigma"
+    "gitinfo-lua"
     "innerscript"
     "interpreter"
     "kanaparser"
@@ -10562,6 +10829,8 @@ collection-luatex = {
     "linebreaker"
     "lparse"
     "lt3luabridge"
+    "lua-placeholders"
+    "lua-tinyyaml"
     "lua-typo"
     "lua-uca"
     "lua-ul"
@@ -10575,13 +10844,12 @@ collection-luatex = {
     "luacolor"
     "luacomplex"
     "luagcd"
+    "luahttp"
     "luahyphenrules"
     "luaimageembed"
     "luaindex"
     "luainputenc"
-    "luaintro"
     "luakeys"
-    "lualatex-doc"
     "lualatex-math"
     "lualatex-truncate"
     "lualibs"
@@ -10593,6 +10861,7 @@ collection-luatex = {
     "luaoptions"
     "luaotfload"
     "luapackageloader"
+    "luaplot"
     "luaprogtable"
     "luaquotes"
     "luarandom"
@@ -10617,6 +10886,7 @@ collection-luatex = {
     "pdfarticle"
     "pdfextra"
     "penlight"
+    "penlightplus"
     "piton"
     "placeat"
     "plantuml"
@@ -10628,16 +10898,18 @@ collection-luatex = {
     "spacekern"
     "spelling"
     "stricttex"
+    "sympycalc"
+    "texfindpkg"
     "truthtable"
     "tsvtemplate"
     "typewriter"
     "uninormalize"
     "yamlvars"
   ];
-  sha512.run = "49f722cd1dfa2aed5c47b61ac393c1ba2c4c9156090fe05a2e079185c6d619ca020d08ac2c4644fac2a8ebd3aa4ca95481e500bba83e39ad260c4d4b7cfce628";
+  sha512.run = "d03b9242340be7be8c32e87c2773bb8aecd4a6b7e1594fe755d9955f111dad4863e497bd3f374140c162b84c6c90379ff86c930267ab5c6d26c3cd0e3968c745";
 };
 collection-mathscience = {
-  revision = 65753;
+  revision = 69267;
   stripPrefix = 0;
   deps = [
     "12many"
@@ -10732,11 +11004,13 @@ collection-mathscience = {
     "extpfeil"
     "faktor"
     "fascicules"
+    "fitch"
     "fixdif"
     "fixmath"
     "fnspe"
     "formal-grammar"
     "fouridx"
+    "freealign"
     "functan"
     "galois"
     "gastex"
@@ -10748,6 +11022,7 @@ collection-mathscience = {
     "gu"
     "helmholtz-ellis-ji-notation"
     "hep"
+    "hep-graphic"
     "hep-reference"
     "hepnames"
     "hepparticles"
@@ -10758,6 +11033,7 @@ collection-mathscience = {
     "interval"
     "ionumbers"
     "isomath"
+    "isphysicalmath"
     "jkmath"
     "jupynotex"
     "karnaugh"
@@ -10771,6 +11047,7 @@ collection-mathscience = {
     "lpform"
     "lplfitch"
     "lstbayes"
+    "luanumint"
     "mathcommand"
     "mathcomp"
     "mathfixs"
@@ -10816,6 +11093,7 @@ collection-mathscience = {
     "physunits"
     "pinoutikz"
     "pm-isomath"
+    "pmdraw"
     "polexpr"
     "prftree"
     "principia"
@@ -10826,6 +11104,8 @@ collection-mathscience = {
     "pseudocode"
     "pythonhighlight"
     "qsharp"
+    "quickreaction"
+    "quiver"
     "rank-2-roots"
     "rbt-mathnotes"
     "rec-thy"
@@ -10860,6 +11140,7 @@ collection-mathscience = {
     "statmath"
     "steinmetz"
     "stmaryrd"
+    "string-diagrams"
     "structmech"
     "struktex"
     "substances"
@@ -10891,10 +11172,10 @@ collection-mathscience = {
     "ytableau"
     "zx-calculus"
   ];
-  sha512.run = "0d15380e672b11509f8ff78ae57cdf5f75b862522d9287e5577a33bdad5901ad85646d4d4c573653b3f838ef9469b86218a98bdfc5ab97e00c618eceaa1e34c3";
+  sha512.run = "bc4ca79e6057d48ac00b5f271d8e776fa1ee2080749a3e5761e13bfe0b3acaa08ff797b653ddb61bc9d168b28f4f29f234e64b51724773d0ac51cea7efa6ab9e";
 };
 collection-metapost = {
-  revision = 64878;
+  revision = 67071;
   stripPrefix = 0;
   deps = [
     "automata"
@@ -10917,6 +11198,7 @@ collection-metapost = {
     "gmp"
     "hatching"
     "hershey-mp"
+    "huffman"
     "latexmp"
     "mcf2graph"
     "metago"
@@ -10931,6 +11213,7 @@ collection-metapost = {
     "mp3d"
     "mparrows"
     "mpattern"
+    "mpchess"
     "mpcolornames"
     "mpgraphics"
     "mptrees"
@@ -10945,7 +11228,7 @@ collection-metapost = {
     "textpath"
     "threeddice"
   ];
-  sha512.run = "c17510f676b4aec1887893083e00438be77d879e44e52aedeb040ae1eb593d1d688fefc8eaa48939db0f83e8d1743cea3030490e73d8c3d65689b3e4db21f016";
+  sha512.run = "c0bf45f69b1b11ef6e59e6dfa0bd690fcae8b1b06097eb99f06e7ffa954f1ebebf296f3245e6922d716688353e22b691092f8e6349b1f02b3234b49a3bfaf969";
 };
 collection-music = {
   revision = 65862;
@@ -10991,7 +11274,7 @@ collection-music = {
   sha512.run = "951e172129275fa2cb7ccea6bf23f27484503533ebee4c3bef7d2f4ddda5940c15713b104a584704a0b9ec710e2ae363b6ec130747a6e169a7c461e509714a77";
 };
 collection-pictures = {
-  revision = 66377;
+  revision = 69409;
   stripPrefix = 0;
   deps = [
     "adigraph"
@@ -11019,8 +11302,10 @@ collection-pictures = {
     "chemfig"
     "circuit-macros"
     "circuitikz"
+    "circularglyphs"
     "coffeestains"
     "collection-basic"
+    "coloredbelts"
     "combinedgraphics"
     "curve"
     "curve2e"
@@ -11038,6 +11323,7 @@ collection-pictures = {
     "dynkin-diagrams"
     "ecgdraw"
     "eepic"
+    "egpeirce"
     "ellipse"
     "endofproofwd"
     "epspdf"
@@ -11045,6 +11331,7 @@ collection-pictures = {
     "esk"
     "euflag"
     "fast-diagram"
+    "fenetrecas"
     "fig4latex"
     "figchild"
     "figput"
@@ -11082,6 +11369,7 @@ collection-pictures = {
     "maker"
     "makeshape"
     "mathspic"
+    "memoize"
     "mercatormap"
     "milsymb"
     "miniplot"
@@ -11092,8 +11380,8 @@ collection-pictures = {
     "nndraw"
     "numericplots"
     "outilsgeomtikz"
+    "papiergurvan"
     "pb-diagram"
-    "penrose"
     "petri-nets"
     "pgf"
     "pgf-blur"
@@ -11105,6 +11393,7 @@ collection-pictures = {
     "pgf-umlcd"
     "pgf-umlsd"
     "pgfgantt"
+    "pgfkeysearch"
     "pgfkeyx"
     "pgfmolbio"
     "pgfmorepages"
@@ -11119,7 +11408,9 @@ collection-pictures = {
     "pixelart"
     "pixelarttikz"
     "pmgraph"
+    "polyhedra"
     "postage"
+    "postit"
     "prerex"
     "productbox"
     "ptolemaicastronomy"
@@ -11175,8 +11466,10 @@ collection-pictures = {
     "tikz-mirror-lens"
     "tikz-nef"
     "tikz-network"
+    "tikz-nfold"
     "tikz-opm"
     "tikz-optics"
+    "tikz-osci"
     "tikz-page"
     "tikz-palattice"
     "tikz-planets"
@@ -11187,8 +11480,11 @@ collection-pictures = {
     "tikz-timing"
     "tikz-trackschematic"
     "tikz-truchet"
+    "tikz2d-fr"
+    "tikz3d-fr"
     "tikzbricks"
     "tikzcodeblocks"
+    "tikzdotncross"
     "tikzducks"
     "tikzfill"
     "tikzinclude"
@@ -11202,16 +11498,21 @@ collection-pictures = {
     "tikzpfeile"
     "tikzpingus"
     "tikzposter"
+    "tikzquads"
+    "tikzquests"
     "tikzscale"
     "tikzsymbols"
     "tikztosvg"
     "tikzviolinplots"
     "tile-graphic"
+    "tilings"
     "timing-diagrams"
     "tipfr"
     "tkz-base"
     "tkz-berge"
+    "tkz-bernoulli"
     "tkz-doc"
+    "tkz-elements"
     "tkz-euclide"
     "tkz-fct"
     "tkz-graph"
@@ -11225,30 +11526,35 @@ collection-pictures = {
     "twemojis"
     "tzplot"
     "utfsym"
+    "vectorlogos"
     "venndiagram"
     "visualpstricks"
     "wheelchart"
+    "wordcloud"
     "worldflags"
     "xistercian"
     "xpicture"
     "xypic"
   ];
-  sha512.run = "1bf5daeffd4e3df80a028af026bb39789ce9e2174b7d0d7018b0285bd5f55eb84adf45f456282daa29ed924ad9f67949301fc9c6bd0f0696634c15a1020a8eed";
+  sha512.run = "1549c2635af7f0f8f2e06ccfc383a840b859b2f191351f3c42cc3ec9d7ddb8bee9be89e67139f8968e638aafc5630d9c30b4148fba5ee1d5eef1b41f0d879cbd";
 };
 collection-plaingeneric = {
-  revision = 65622;
+  revision = 68675;
   stripPrefix = 0;
   deps = [
     "abbr"
     "abstyles"
+    "advice"
     "apnum"
     "autoaligne"
     "barr"
     "bitelist"
     "borceux"
     "c-pascal"
+    "calcfrac"
     "catcodes"
     "chronosys"
+    "collargs"
     "collection-basic"
     "colorsep"
     "compare"
@@ -11263,6 +11569,7 @@ collection-plaingeneric = {
     "epigram"
     "epsf"
     "epsf-dvipdfmx"
+    "etoolbox-generic"
     "expex-acro"
     "expkv-bundle"
     "fenixpar"
@@ -11296,6 +11603,7 @@ collection-plaingeneric = {
     "metatex"
     "midnight"
     "mkpattern"
+    "mlawriter"
     "modulus"
     "multido"
     "namedef"
@@ -11350,7 +11658,7 @@ collection-plaingeneric = {
     "yax"
     "zztex"
   ];
-  sha512.run = "848081f23c64b1dd159add9a4756c0fe1f7176727b9665835a1eb1c1ed5765e119f71ce23ce750b87a33ed091be944316f35b3db70ea89ef56801aba04d06b4d";
+  sha512.run = "e162b0e32f52ea7ca60d5241ad6f653b29d2601eb05734ca0970224894e1acf3c21b1c160fdea652b8616f19cce5e812d5ba78ef10aa3cce784a90aebea960ef";
 };
 collection-pstricks = {
   revision = 65367;
@@ -11474,7 +11782,7 @@ collection-pstricks = {
   sha512.run = "508276fe37018f3d9773fc7cda0cb37edcdd28e9cf8ab54ed5be16b07c2066de4626a561bbe387c7bba0fb82d4102be406efd721a4b5dc90110b8560083d2b07";
 };
 collection-publishers = {
-  revision = 66335;
+  revision = 69033;
   stripPrefix = 0;
   deps = [
     "aastex"
@@ -11524,7 +11832,9 @@ collection-publishers = {
     "chem-journal"
     "chifoot"
     "chs-physics-report"
+    "cidarticle"
     "cje"
+    "cjs-rcs-article"
     "classicthesis"
     "cleanthesis"
     "cmpj"
@@ -11541,6 +11851,7 @@ collection-publishers = {
     "elbioimp"
     "els-cas-templates"
     "elsarticle"
+    "elteiktdk"
     "elteikthesis"
     "emisa"
     "erdc"
@@ -11565,6 +11876,7 @@ collection-publishers = {
     "har2nat"
     "hecthese"
     "hep-paper"
+    "heria"
     "hfutexam"
     "hfutthesis"
     "hithesis"
@@ -11588,6 +11900,7 @@ collection-publishers = {
     "jmlr"
     "jnuexam"
     "jourcl"
+    "jourrr"
     "jpsj"
     "jwjournal"
     "kdgdocs"
@@ -11608,6 +11921,7 @@ collection-publishers = {
     "matc3mem"
     "mcmthesis"
     "mentis"
+    "mitthesis"
     "mlacls"
     "mluexercise"
     "mnras"
@@ -11636,6 +11950,7 @@ collection-publishers = {
     "nwejm"
     "onrannual"
     "opteng"
+    "oststud"
     "oup-authoring-template"
     "philosophersimprint"
     "pittetd"
@@ -11677,6 +11992,7 @@ collection-publishers = {
     "sr-vorl"
     "srdp-mathematik"
     "stellenbosch"
+    "stellenbosch-2"
     "suftesi"
     "sugconf"
     "tabriz-thesis"
@@ -11708,6 +12024,7 @@ collection-publishers = {
     "ucalgmthesis"
     "ucbthesis"
     "ucdavisthesis"
+    "ucph-revy"
     "ucsmonograph"
     "ucthesis"
     "udes-genie-these"
@@ -11755,7 +12072,7 @@ collection-publishers = {
     "yb-book"
     "york-thesis"
   ];
-  sha512.run = "1d14f37712edc04d5000091f2d8fc04bc4929e057bfaffafc2002df21cdf1e1d8c4a9d25ca9e0d3a295416f06a8b59ae8554dc5c01272d3d066dcd5ad899d0b2";
+  sha512.run = "3bef1e82951ac3624c88c3f42e7d9dfdb4aaef71648852a0df777276139a1fa121f640420d5977a5eae99a590a53eb96854dc97b6637bbebf76e63a7c1248228";
 };
 collection-texworks = {
   revision = 54074;
@@ -11767,9 +12084,9 @@ collection-texworks = {
   sha512.run = "b1f38877115fb6efc9b63a5591c399b799f3a258e342d5e198b74b582628461ad67ea7c1ab76e5ae83a3e8e538c62ac3e7c5b3d3f1d29c093331843067cfec57";
 };
 collection-wintools = {
-  revision = 54074;
+  revision = 65952;
   stripPrefix = 0;
-  sha512.run = "9bf4c58094748424c1b60a3731d9cb2b1ad1d24764469072da693de26a4e4e857df3bcab6d4c2b5ae7454a69f9730fc596fd156b46b7704eafb1421f6936d66a";
+  sha512.run = "8af5c376990a7ed062588a0eb8695455936a92376b94f157d75a22f976f62017999aee8aeb692a07f98a64f05ac98bf4aba79c5f75688c54ad2196807471dc1b";
 };
 collection-xetex = {
   revision = 64951;
@@ -11860,6 +12177,15 @@ colordoc = {
   hasRunfiles = true;
   license = [ "lppl1" ];
 };
+coloredbelts = {
+  revision = 68747;
+  stripPrefix = 0;
+  sha512.run = "0c2ccc4f77c74e551361b6c479759d10db1ab96bd293926e3fb60c1888e073094c4aed403b147744711b5210c9fc8e0cdb431ef8b778cbd12fefb4f691faab85";
+  sha512.doc = "dbe9cd28b3bdac4b51d080edae7a983900fb2f9c583d7e19d0137d551222d23138862e9acb43de98c2f321d4abee3dbc2e43961f66227a5cf2c639545586ecfe";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-sa-30" ];
+  version = "0.1.0";
+};
 colorframed = {
   revision = 64551;
   stripPrefix = 0;
@@ -11888,13 +12214,13 @@ coloring = {
   version = "0.2";
 };
 colorist = {
-  revision = 66450;
+  revision = 68440;
   stripPrefix = 0;
   deps = [
     "projlib"
   ];
-  sha512.run = "53024afd887ad7bcc94e86db7ba7468003cf5f78608e5fecd1bb685a01fb536465efc6b8dcb1b8d970de710a4fe4410ef374a9912165800aac321aa971a5c358";
-  sha512.doc = "4fdca0796938abdbb773fcd2d689b493c5c6f31100c1ddaad61ad7729b19121e42370de951c953f2734d3ee07eb7c3408b868068692658518679f192cc7f606a";
+  sha512.run = "c3a49d415ec1133adfae9b8c5d8059dd0c41d2cc9637a0905494820a514dd6e466a1d114e8d26b7cc8b5a2b197f331a146b2f3dd6a5a4d478f2a71b62dba3f7c";
+  sha512.doc = "6f5abb6dfc10b4e4b952746f84caa489c06e84d0d9dfa7ce9a2cd1de29f19dc028ab4a42cb233310540d70b8862a797420aa9f383d05c3b672574b8a4870078a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -11943,11 +12269,11 @@ colortbl = {
   version = "1.0f";
 };
 colorwav = {
-  revision = 15878;
+  revision = 67012;
   stripPrefix = 0;
-  sha512.run = "618f813c9e009a671069a151bc6d438a42b2c589b255685d91dbbbd162e6a106164d626cd772bdb3e6538a1b010ae178dd7e1519195b6b1fee10ce6e46253b6c";
-  sha512.doc = "e042c10fcd4d2760383352ace13b2d3600682a01c900220913c79a950fb1597a59a82483429557aa7598e1cd1eea52b73dd23367139fb741ea48ee9c84c4c572";
-  sha512.source = "96ff1933d48bbe938de3635588d9a9c682ac387415d5a7c316e310ed0931e7fa0adf44185d8232d753a1532653b6bb5c0f6c402903bdab654333694f7c293215";
+  sha512.run = "1f0ec92974581f7a1d5d36993eaef84d46019a345f1ca9979d0508b5dde7226cdb38e102dce02d404a4d28f8c408cb53cb0b3bc819905935fc9cd323abada305";
+  sha512.doc = "c9d23542ccc17980837bd49012889a8e11fb87f76bdd3c5ea9650177ebe527533cb5ac3631895f2455b094ffb4c6bfa973fddf9f071c80bc52c3c824b1fce471";
+  sha512.source = "d41960edb1e83edb50be56a6eb43025cfabd5fc3a83ae068daba59276e9b5995f25804311398ff6874038587165b6c236dc983247f52399ab55e156417bf7adb";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "1.0";
@@ -12084,13 +12410,13 @@ commonunicode = {
   version = "1.0.0";
 };
 commutative-diagrams = {
-  revision = 55526;
+  revision = 68044;
   stripPrefix = 0;
-  sha512.run = "ff7cd8401eb54f14bd013db9a62e2540a8015e51ad573cb76683b19c2cf2fed0a2081be87c5c81238664ab441f6d17eedc896e41fa0700dcd70b088d08e6ec8a";
-  sha512.doc = "3709730425aafd1fd9aed5b4cbb1b80bf70ed474c792f0ad6f35d4ae6ad64624db64bda7a02656b226c13ea93159d2811356eb75f8b2756328f0ecea2289f738";
+  sha512.run = "896235dcfbe5fc65302f5473b8821a2943ba3bce0c5b410aca855f48fd2ee6dd1b39667be7413aab027e0b36b3cad9735cf6b8406077b0c833f025fe41a83d04";
+  sha512.doc = "49de0a9e52308dcf0b5ee7ca5b18df49efb3822ab2a46024e787979abf6cd682b180a461868c565b79607b301ef5bb65e9493bd27d9cbbdbe4d71472708fc01d";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.0.1";
+  version = "1.1.0";
 };
 compactbib = {
   revision = 15878;
@@ -12133,12 +12459,12 @@ components = {
   license = [ "gpl1Only" ];
 };
 comprehensive = {
-  revision = 59099;
+  revision = 69282;
   stripPrefix = 0;
-  sha512.run = "9c414012e570fac3a3aee90cc7b6983d6791dcdcda0709722dc5354068815b2407fd4ed9196b8e961164698597324b9da8ff85b741eca86a4962701e0ce40d1a";
-  sha512.doc = "24c7c0fdda00f5f5dd7c66c383d95a4fd99b41c5470482d1e53e8f061796cab5955b8043f80a2a57c9f045765ff1d10f0c7b48b10705a2677b80b67d01dafa96";
+  sha512.run = "3a95484c972a27245694364364b16545069e677eba8e84bb1e3d743ec37ef4427dcdac4ea507df41d90c155bcac48b346ec3e0e985c5d447fce05be5a9a8e418";
+  sha512.doc = "0534af854d41a22af152ecc0eed7f0d835525d4508dc8cf7eed131a88958ec2024d35d80002a77fc09a2df4ea428514edfa751f889c1b90740344bf5025f4b59";
   license = [ "lppl13c" ];
-  version = "14.0";
+  version = "15.0";
 };
 computational-complexity = {
   revision = 44847;
@@ -12177,13 +12503,13 @@ concmath-fonts = {
   license = [ "lppl13c" ];
 };
 concmath-otf = {
-  revision = 65683;
+  revision = 69005;
   stripPrefix = 0;
-  sha512.run = "efbd04812e5c617adb4caac1de59caf11eabedb2f145dc069e49c572d14f4dacaadb0de112235c29b5f12f3c54a2d4f66a4e5e7a6928dd178be9b127d5ef550e";
-  sha512.doc = "3ec3b3a39f21895413fc05e1fa54a3896b2fe6b32fb390a5ff9691a54c0fa39f2a532da58edfba4f2c34b020495b8c673d107e28abb7fb6d86e6246188567374";
+  sha512.run = "3ad91e982f5a46ffde4a24c2c16233b671c4ce55f78afeba4a538e9437171a5936cdbcac56dcac357c17a188940150f70b475e37b4eb5f2416c9c00a970fd87d";
+  sha512.doc = "7ca90916cab639721f678b33d341c9ce253923ec4ef78d5a1246c9f79979aba9674579f2e8eeeca6b6fd2c0de3d70e3d44b8be572e5f738cafc408337432baf2";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.25";
+  version = "0.61";
 };
 concprog = {
   revision = 18791;
@@ -12241,174 +12567,50 @@ conteq = {
   version = "0.1.1";
 };
 context = {
-  revision = 58167;
+  revision = 69131;
   deps = [
     "amsfonts"
+    "context-texlive"
     "lm"
     "lm-math"
+    "luajittex"
     "luatex"
     "manfnt-font"
-    "metapost"
     "mflogo-font"
-    "mptopdf"
-    "pdftex"
     "stmaryrd"
-    "xetex"
   ];
-  formats = [
-    {
-      name = "cont-en";
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-en.mkii";
-    }
-    {
-      name = "cont-en";
-      engine = "xetex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-en.mkii";
-    }
-    {
-      name = "cont-fr";
-      enabled = false;
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-fr.mkii";
-      fmttriggers = [ "context" ];
-    }
-    {
-      name = "cont-it";
-      enabled = false;
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-it.mkii";
-      fmttriggers = [ "context" ];
-    }
-    {
-      name = "cont-nl";
-      enabled = false;
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-nl.mkii";
-      fmttriggers = [ "context" ];
-    }
-    {
-      name = "cont-ro";
-      enabled = false;
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-ro.mkii";
-      fmttriggers = [ "context" ];
-    }
-  ];
-  sha512.run = "61fcc778837ecff88bb0e80e39e2acb3ee64e2c26e4069f7634e5dc6c74dc93caab78e4b0088ed58f494d6dcd3a5084bc55cd471baaeb292dc208cf2a241bf69";
-  sha512.doc = "ee4458cd6d45a41652ae24b3b82bea5cfa2d8b9c14cf4ba1357f9f07d6572f8ba83e350b74659c471ebf5068f33f5c5762a11669ab2a4f5adb3db41f392956dd";
+  postactionScript = "tlpkg/tlpostcode/cont-cache.sh   filew32=tlpkg/tlpostcode/cont-cache.cmd";
+  sha512.run = "5dc3ab5f5747a0d69684ad61ed86f508411357abeb52e01d1cba256024c370309d2f4ccad1076d1337eb35f7b10f8bb31f5a51219c4f8ad4795ddf4617b158d8";
+  sha512.doc = "7c440d9924d68a4abcd9e404b3516ff696ff215c44f2bc81542bcafb69b92bc73b4ee173c5e90dc2de7405b754fb1c452e76b7b71fe623c72d794dc0b966bff1";
   hasManpages = true;
   hasRunfiles = true;
+  hasTlpkg = true;
   scriptExts = [
     "lua"
-    "rb"
   ];
   license = [ "free" ];
 };
-context-account = {
-  revision = 47085;
+context-calendar-examples = {
+  revision = 66947;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "755ddb4c62a496873d5362df01307163c79d2a6c3fabce6ea01b442c16dad2f23d72909df71dd44eb4fbbf5c57366e20eb49bfce240807c2e2a9a52cbd76680a";
-  sha512.doc = "b19f6d0330e5da99a961304f8c022609dedb2dc3a8cc4607cb9b2ca7eda38f9c8b972316bb9fac92cc36166e1c0822afaebda2c5e2d87db1e1efd2781f51956e";
+  sha512.run = "aae09b844ae244839f82088ffbad9c777355696023fa95c24221b6ae0e4ac6dfce6a4d70efe9f09d5e5dc89e6e7a17d98282a77b90697ee6a3496ed0568734b4";
+  sha512.doc = "62a63d54d0388a027cb6afa58141a6fc303fde6cc0f989348fe29fd10e825a03d86ff682f480723b223b606e296591cf03092c886cf13cde03463ff8012caca1";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
-context-algorithmic = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "72d4bbfe723b4012f8701c2786f96009bbed3c6b4bd2129f7153306f172e72218920e222f97ee6d5ee4b863e9e915fc38dd92b0c42066385fde35c5c3d0cc42a";
-  sha512.doc = "19ba676dc7822bc0a6583d6e9e031f3780977835c10d901e1ae02fca781719a0e015ac79cfc35c908a8de40a19614fcd17a35c604c9311b50972d0706d6f07e1";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-animation = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "19691ca3325b3f72154ac8439e616a128b5f3ba8c9447bb1e92979e175daa902cd756853a2b6e6a34a84fbe96e02771a0c6ef27ed5bbb7eac94f62dd72d571f1";
-  sha512.doc = "a06227508c2dc343598fc6878e2b17b56341f5dd86a473957318eb94ecc6e150adaedf7346ffb931eda184651efd00d8f60e36ec6ea50e9ac94e2ed096058293";
-  hasRunfiles = true;
-  license = [ "gpl3" ];
-};
-context-annotation = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "bb66132ed1e4f146c407bb3b2852c451b82d3d06de1dc25ddec6e692d17f4d994d1a67cfd7ff711dc2de7a4ce7259b1768d6efcfb58856321d5ea5b15271cd34";
-  sha512.doc = "4491012c8172beb64478b2de5557ed8f97701cfcb3996a8a5ff9990048d79ddce8cc2796dbf4c08812bc8963c0d318f9d79d2d4c2d14bc372f06dbc28e012c3d";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-bnf = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "53e5d3d7c977aab648bb024942263a8aed5da6314506825ace02556db890ea23400c6de714ddf6380235c942dfc02e127736579b6be1c5b0b0ecc65d25fb0d6b";
-  sha512.doc = "d7ab60c2f8571ce2e2e96b82c1f97b140c5750324efb73275062a8d301d530279a3f9c19f6a6feebd6d7c72727d94f469d9aad05ad67cde5dbd3de9f695dad31";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-chromato = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "52e11c6953e7c2e2f9a3a20b8885fd12f5abef32d32da5ae5415b0321d37ac5ff8ff5bece3d522e1f785470cef542568cd56abd509d26671da9298c3d0ba27cc";
-  sha512.doc = "5c7c7f03050b0a17dadf23a09dced356a036c6b95ca76aeb0fda583dbc490d82222de64299c121224efaccc78b62364a1bc56daf020c177865c29e343529f040";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-cmscbf = {
-  revision = 47085;
+context-collating-marks = {
+  revision = 68696;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "cb0e5849ac3168a4ecdd1545edd029a1622ecf1c46d29eec97b28a66f65305e6b4d3a9c83e24d78e1596c8009ad5c9a0e25fa7e09448c3e0ea492e62bc933ea8";
-  sha512.doc = "8f45989c08f09381ccbf2942a08c0b13792917a18d5b2e92fb45c7ac2f4b4538f5ffd633da0348e12835c03a6f79b0ea7044f1ebea5770365a83d2d097a56df4";
+  sha512.run = "dec8338854260467eb5d6542d4561e38a87183290e53e75c3fa188fc8f537a466ce4a5974f4f5644b9f2e62591cd4e8860f8e2b314c8918ae45e90e00c61ba4d";
+  sha512.doc = "6a5d88d6091e95025e7a4f12a6e831e5bf462156afa06c7b49d35086f9b555ed8fc1ed9cde970146106f3efc29b70bf0699c1b5eadcf970c1f8978c46ad590bc";
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-cmttbf = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "e3bc048c09bfdf114efa25077fa4e6a6c20b4d0e2ba337cefa0a8a82348fd3376f82cae0c85b029b863b7a5db9d9552b4fc5f5487d5ed5f6d88484181ea98ced";
-  sha512.doc = "2b55367f236330a07120229902405213a495de2ba455f333bc23e1c1abbe0f0a4be16ee95415f613d41572916722e3d023a71698f74e5e37f34a8de4fdca6e47";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-construction-plan = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "b292f8e271fcac88eaedc376257ae16a401a6c31009eaa3d4faeefba25c33d034f57d30ba4638e85b76ffd0d24ef4d541dfbceb1bc0b5c806a8412d239a32146";
-  sha512.doc = "605e09bedb9e2ad1e98a621c0a4842f28592c93507c3da31f8c6437e95e63a47e795b38fa0263d7fa81fa3b8838f21d2426c8705f8e17ac1d827923cf5e88784";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
+  license = [ "publicDomain" ];
 };
 context-cyrillicnumbers = {
   revision = 47085;
@@ -12421,28 +12623,6 @@ context-cyrillicnumbers = {
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
-context-degrade = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "b2df5bbee492b7137180bfe7b0b826f4149b8231b78cb839ac9716f02b622e5b3a0eb5964e12625650a224ae463714bb7cafbecae6061a6e3120022d2f545d52";
-  sha512.doc = "8f24fd70547ecfcbb163df2e3e4450525f0e56583b6984f61fb04559142bd838287e79c9b9d8cdef2c26a882688074b5010615e6d818a11f2f5812d88e31cd82";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-fancybreak = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "1e8e51de47c67a3287dfa4386f9c09b4dfaa494d9b59fe8d117a3a1b65a5041add24c36227f2d2d7fb3bf2ec34d6a5a8b6658d275b63f55793d05dea08722b10";
-  sha512.doc = "6082670766d63da902d2a53f2a6ee89fcdce942fd73439fea8326ef3117e6a5483b86d9d4271d2f3d9546a5fe44277721cd15510a9da392db36356b44ae2f36d";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
 context-filter = {
   revision = 62070;
   stripPrefix = 0;
@@ -12454,40 +12634,6 @@ context-filter = {
   hasRunfiles = true;
   license = [ "bsd2" ];
 };
-context-french = {
-  revision = 54215;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "aed7a7f91e909e8b9b7efc5e0b45c67d5ed3e084c5019e1ddd68d8e9e969c0579b1dbbe4e25d74ca22b256324358ed34f3f54a92e2fb3a012a6aa43797e8aaa7";
-  sha512.doc = "926a054d12f59d45dbe538eaed4087ed2c9f3321f1051c7006fe651af95d2275788030ee9371ffd39a7f7f8a4022776c19721323ab82871f061dca365c081728";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-fullpage = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "280a16b47e04f3099a2f960435bf1c22ec623553303e339df4d06135b768cee6565e20a0c4e0c080d8c6f621a32d862ba6203daacdbf9ecd03b62829dd0014fd";
-  sha512.doc = "1d4ff98bae26e0d6ec1ce1ca58fac82f8592158f8635eeac737546873f1f468b2ad7a82b9f8956b770fdc0c01443a9327c509265cdecb90d83dca15462cfa23b";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-gantt = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-    "hatching"
-  ];
-  sha512.run = "e0c61179f4ecdf93c13dbfe19f59487fbce55e1a0dece76ac025a88a452e7168c5e3b84e53c01bcae4cc412993be36eb554dc5f7299fc1205f4070aa07a834cf";
-  sha512.doc = "a5cc76238f8377dc8d06869bf23a1367c880b57ba62ab8c8331886cbed145427e2819ba92965924fc7a78579d28b7c1cf331acf7f199cf72672ccb64962c9367";
-  hasRunfiles = true;
-  license = [ "publicDomain" ];
-};
 context-gnuplot = {
   revision = 47085;
   stripPrefix = 0;
@@ -12500,38 +12646,49 @@ context-gnuplot = {
   license = [ "gpl1Only" ];
 };
 context-handlecsv = {
-  revision = 51306;
+  revision = 69186;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "10f862b7152e0efe2a8444fcf847ade2aad2c1499e146b94643a7e08a438359c2f7d1927e7e9773f3dd14475fb4535d17fb4f29ff053e7a29c9463f40c6e5598";
-  sha512.doc = "39330dfaf22a83181086343ac9ea7d64025fbe779e55161b33e5a9a9802e0928bb1c16941aeb307da641835aefdfe2e431becbc0cfe40ad8bb33a3816b9b177b";
+  sha512.run = "7142f762e76a00a0ed7821ba67f09daa9900977dd643ab5249668d385896e87aff71b0dfe268389599ca75a22618638f4d873965bcba94f7fb4ec684d46986fc";
+  sha512.doc = "bf2a7b6498743fa148653e8634099f7597dc8a383f88e15a0605c6cc45247bc0521a1e57c879bf4212e22345f7482f734c741bfac739df1977f1f140b6be6928";
   hasRunfiles = true;
   license = [ "gpl3" ];
 };
-context-inifile = {
-  revision = 47085;
-  stripPrefix = 0;
+context-legacy = {
+  revision = 69173;
   deps = [
     "context"
+    "metapost"
+    "mptopdf"
+    "pdftex"
+    "xetex"
   ];
-  sha512.run = "9dd9b61cd2b5700b0e2b6e59bf4040de9431820c659f121c2681e454ddb4b34454270eac6c442836c90f8a1819761ce0d7659684a1f0c8876fec1f947a0b16f7";
-  sha512.doc = "9635bc80ae7222c6a38004ad5f985004634b7db9596e03a23123ad71bbf177639bb1b028bdfe79d51b75c1c429c327f65c2b5e0720723d8bcdf63f4939312850";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-layout = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
+  formats = [
+    {
+      name = "cont-en";
+      engine = "pdftex";
+      options = "-8bit *cont-en.mkii";
+    }
+    {
+      name = "cont-en";
+      engine = "xetex";
+      options = "-8bit *cont-en.mkii";
+    }
   ];
-  sha512.run = "6cad00783d0bc91000ca0e0c8350fe2a2e99f7fefccd375d5bb2f1a144fc04a59f83122dcd490fc0596b1dc9fd0c0a779bfa35932362927ed50ed8df39ec359e";
-  sha512.doc = "4ecf7bfe5fbc78453cc116cf7a657f4b6ac7fc21ca7dd6da5beb0ea1af0c1fd48d6a74ab516213f49d1e29cb8bd47fbcc94145157472e3ea22b291f494fc3d1f";
+  sha512.run = "79783a6096e3bbe21eff5967fa3ed4edffc573567bd027a59c40fbd1f5e3cfc7d0c213ddc9fabcdecd596bcbc9946cf4255edc4237f0148c89dbae7744f3f508";
+  sha512.doc = "6fbf5f1194771c9dc4a19b49aa343656bdcad3620e14a68a0bf9d05cad8f8c813f717b66b12526c2f11a87d4ded75e1cab56d3e72ca1cabe81c9818aa11399a7";
+  hasManpages = true;
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
+  scriptExts = [
+    "rb"
+  ];
 };
+context-legacy.binfiles = [
+  "texexec"
+  "texmfstart"
+];
 context-letter = {
   revision = 60787;
   stripPrefix = 0;
@@ -12543,17 +12700,6 @@ context-letter = {
   hasRunfiles = true;
   license = [ "gpl1Only" ];
 };
-context-lettrine = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "79e4e246a7bb0a300db53425e2769a3ef61bc0249ce57840c0b9037805e86eadbd1ef4ab8a110fd806584393feef00f498418732cfd53922aed6df67c561e535";
-  sha512.doc = "ab32697b6c309b1099b809c33182ffc48bb3019c8d520269cbb616b61e8f20678cc2cf4e7e971e06cadb22ffcee0d502deedf21aa95d8d372d1840e4fb4a6591";
-  hasRunfiles = true;
-  license = [ "publicDomain" ];
-};
 context-mathsets = {
   revision = 47085;
   stripPrefix = 0;
@@ -12566,69 +12712,64 @@ context-mathsets = {
   license = [ "free" ];
 };
 context-notes-zh-cn = {
-  revision = 23171;
+  revision = 66725;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "a05cd68d609fb9427ca07f64ba1b9ad85762464a3294653c8a790c0a6a41d6af43aab72a1eb7ef0d56a299db2f54af5666dbe974f9fdac014f624350c8bfe50a";
-  sha512.doc = "4261b8aeb5b3cbebde2890af1b7039c6f557ce36f4979228f40f9e5e99b19aa5c457ed6842f4501f4dc32f51f58d9fcd0764028b9d5c74fd07d41c8c866220a1";
-  license = [ "gpl1Only" ];
+  sha512.run = "46be6b5f9f86d6da5514f0ae0cd77aa9beab67572699f9779f3a6cd461a8600336103eaf71d6e6d99fd7ac300a3e5fedcd6e378d349cf648c9aa5a8be2aaa5b5";
+  sha512.doc = "a49b1c85508128e0a2e9ae0218e3622f7479da528f51380c1e109bf877f401531689e8119cab3bde6a91e507f0bd7f16e334cb3affaba7fae5927cc23b17a207";
+  license = [ "gpl3" ];
 };
-context-rst = {
-  revision = 47085;
+context-pocketdiary = {
+  revision = 66953;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "f93173c1b27afe538d670c791048f495fa3f236cf75511d43b33172d140ac47fa3b5f11c674db5d515733b8ef9cfa7ac2d3c46b78b624768ee95a21884dae904";
-  sha512.doc = "536f63f9fa02e37c38f445974dab1f75b38abf0769379ee1735001972db71be10d51a1782e850ddd75d73f2a6f1375cf043684c0fae1a88b20a1650248870f9a";
+  sha512.run = "fd90eca9b9642a16aa203984165302b111d4058ed970aab3867018f48d16884fe543d3067a0ad2fc2c0e2684924ef11e9788a7deacb20ad06d7451dc5b19383b";
+  sha512.doc = "a78ed374f6a7ad63a93aef4c9cb2ecc0937c2e3df821c543f49a3ad762ed6949a7d1c4c5a03c7cf54eeb0b9ad891a18c5d10b97a42bbb840c74fef2bf8f14cfb";
   hasRunfiles = true;
-  license = [ "free" ];
+  license = [ "publicDomain" ];
 };
-context-ruby = {
-  revision = 47085;
+context-simpleslides = {
+  revision = 67070;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "e219c6da61585d88f8e899278d1c85f0903ed32b6c7368cdb6076697230a0e79f5f88f53dd98514394fa09e7580c1c6b7c167d81c010107f3399dffb18b13d95";
-  sha512.doc = "179e501b428bd87a49830a68236008ea6e962b80e79ab45a0e75a7b86a7fc11025ac38ad463c459c6d290aa5ac8627da5849d1fd8f7502ea7d97696b53ed2647";
+  sha512.run = "083b1f0b70a74a3648501314fa993632534f476376fb80eb4444b0273866bf4a4d562e4bfffbd14ed79be0020361ab6cc5c40fde1f99544b76d6f33939781f19";
+  sha512.doc = "e7a410ec0d99f945dae91c041b396875a6350aa06333f5a5d2d7aa4c6bb62f926ec53a27a1c95a724ce7b320ddef11d6550b0b92a34c00ac63c7c0da96a35928";
   hasRunfiles = true;
-  license = [ "publicDomain" ];
+  license = [ "gpl1Only" ];
 };
-context-simplefonts = {
-  revision = 47085;
+context-squares = {
+  revision = 68545;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "7c817f4a25a8883ce052c9657a3d6117042e8538fadc8d67b4b0194abd69238045c09d365e90e555d5b04d83a1ef82039ca9631aec00eb1f80b56fbefa729cd3";
-  sha512.doc = "238babc7694bf85c81e3079b5d72feabc9c9eeea4f3b625a57ecb133d70ac745334ca0426097dccfe53e3ffe108ac0859be4da7625bb6b683abec1101367ac06";
+  sha512.run = "1f84f3131d67e831b31eaeb60939e467031fc080b32bb4c0d52439c1dd7ec7fe5768d2f2bb1f6dcdb25b1b1e4f9455aa83d5dcb3a0d1954aac41a79b0cb0dfae";
+  sha512.doc = "e55bcb462d1aa0aed9563d01dd53f9062f8463d7cd06a42720f3930656edd0fd818f891e43c622b753200ac2ed32f45d21900208f69999b35474f6e7789a7b5e";
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
+  license = [ "mit" ];
 };
-context-simpleslides = {
-  revision = 63903;
+context-sudoku = {
+  revision = 67289;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "2db8348769d60d38266ad3798264864a0453b38c769db02ddaee072e795596fd48cc201caa5023d980c1a748c41a30e4c560ece68def59deb3c467bec2e60f64";
-  sha512.doc = "532a9a142b30c8fe2ff3431d24988ef96e5da63276cd0084fe8b69b3e9cb572a0beab8d7ee4291d00a4b1d725f3d23ed47632811fde7e2aca41998c5d44a0481";
+  sha512.run = "b33ece74cc5578c4dca8df816715d7106b674fdc653d149992cf637b11799a21eb03708c0efcc79da9d4658c5f8a801c6bb32dc681f43f3d4b3900dfa588ca99";
+  sha512.doc = "e7f9b6c0ae6bad729074ffb2e4e1673336954adb9013ee6525e87715f3d22720efbe1f7e2cb6b695e01940a4d7f58489889612749ea2f4dbcba3ac6faaa741c4";
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
+  license = [ "mit" ];
 };
-context-title = {
-  revision = 47085;
+context-texlive = {
+  revision = 66924;
   stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "bc7d6cbd373cb6d6214489ed97117929ba381626c854a0a5a950bfa44c06214991d7a90290793c825c96e6d22ba1f6807054d4553d1d3980d9d9bc0e6dabafda";
-  sha512.doc = "3b910eeca8c8a442939873e082a4025523472b267ed3268e63cbf5fbe0821c9db8d8d183058d139aa02233dfdb6be7e23fb9df360a490f7d551875c59753c7c0";
+  sha512.run = "64abf080ecfd9cf68f2ef12123ca6ee976d6fe3cb8382d34b32f424a1bfcf9165142bab2c1a9a1f394e1ed4bd53aaf2875363e7f357eae48ba00ddfc894e5d1f";
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
 };
 context-transliterator = {
   revision = 61127;
@@ -12641,17 +12782,6 @@ context-transliterator = {
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
-context-typearea = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "c4a2f2317b146b31102273e9b616d403d4ee836a61fae96bd9315670b0bdd5f9d94ecde00b53d2ea5f7073773bd8af5c322b07c3b05bf7ad5262a9f0e0b623a1";
-  sha512.doc = "7171bc5c5e82b3897f75421e745e876c2aea84e9e9cb74badd6dedc75666b8f9ddb8b6d11c523ea64be6b57dca4f84555827afa32a0c90f6df1c31b68b1f6395";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
 context-typescripts = {
   revision = 60422;
   stripPrefix = 0;
@@ -12689,12 +12819,13 @@ context-visualcounter = {
 };
 context.binfiles = [
   "context"
+  "context.lua"
   "contextjit"
+  "luametatex"
   "luatools"
   "mtxrun"
+  "mtxrun.lua"
   "mtxrunjit"
-  "texexec"
-  "texmfstart"
 ];
 continue = {
   revision = 49449;
@@ -12717,11 +12848,11 @@ contour = {
   version = "2.14";
 };
 contracard = {
-  revision = 50217;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "07c77a1e864c012a88be95a98ef662f5642fd63e84801a994be702f5ae2d62100b02e109ba6c775f2c8d11d75627fdef48acdbd55bdb4735896fd945edc4fdc6";
-  sha512.doc = "984acf51897209c3bc3fe4760088a6b9cbae613acf51c5f8c848dae3a3d13e5e8171fc62db25dcea267cadaf9f2ba81d221085ae90a7da1fb5e6d0dd8e243f10";
-  sha512.source = "6a0f0536861da9f012b5600fc1c635a9f9124c25b4a5d9544ca00fbc3770760c0d1de77587452d33c254abec3bee6fd923e31f2bd34581c467f15d1d658a9cae";
+  sha512.run = "eb705425aa67034ddbf4390165a5f6a9690c67d34371a720298843d1c7292655bcb59a56364bdb510608d48b6590931abd68216fdcdcd8be90eddfbc339ce28b";
+  sha512.doc = "046a38d7a11edaa8f67648996c31e481cd818b79afb1f971afe459b7adf0bb3d4f5cb0afc3903177bfc0b9b0678336a837002f8db486916afc24445a875c3285";
+  sha512.source = "67bf64418fde78f9ea7288f47efaf50970f133325860f0283ed2842f58394417b4e8ec8f0180cde60c9bb74cd1c797aa6f89afe3fd033676681807cd25d5cebc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.0.0";
@@ -12780,40 +12911,40 @@ cookingsymbols = {
   version = "1.1";
 };
 cool = {
-  revision = 15878;
+  revision = 67013;
   stripPrefix = 0;
-  sha512.run = "ec5b1612484852897856b58bde90aabc3e8c051f6a14674f2bf3a121993ce074214c3d61c7d074dae54e227c759630cff71793ac1ff433b048f3a15f90038c0f";
-  sha512.doc = "bf27e08a04f02f58ffb04ae0fa7b26860ab4129d3de3e2ab20d244a99c96b112a7a3dc10d064a364e38a80c1087ea8c693e7e7538a36975b6914f75418a82547";
-  sha512.source = "1f5b16c0e1d4598ec4f4c5981e079537b0142f92b514d1f3dad567b2a71b02f9be0b3441087d7a973750f308f691270e750d75f669784fa3c787e6bc919d7e68";
+  sha512.run = "4ee983b7b07d20c9fe7568ebb6be60ecc56f85cc4ae4013870c53370df99d69bc0537c3889790324baa1f1a8afab2da56763b590457c49866d219b1540effe98";
+  sha512.doc = "06d182b5415ed25be80c827206759708daddfaa6bf7a3aae59c1639c3c09523a7b421abdd9d2a8db1297e161e439b777d3d1d8c07e52dddc1c071ce1c5a9fe47";
+  sha512.source = "c305695f6694cfb4b08462591aabd64adef27001d0c84ba905b0d4f07b7095905cda414e7e477ae962f5ecf6cdcee60d0a432e4eea924bf2fad0770411131912";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "1.35";
 };
 coolfn = {
-  revision = 66234;
+  revision = 69007;
   stripPrefix = 0;
-  sha512.run = "7cec637033598a8d91b5e284fed608a0369314ee2971de64bcb02e5f7b72702958da8b81e64ced9894ef8bb27286f2b1547550d6b11ad43f6111ca8459cdc3d7";
-  sha512.doc = "e35e455eb1be787777629bd1333c9130f4fa272ef808ce67c9b7c18eee93ad059794588763f81779a4ffe1cdb8cd1cb283f65ce05732e5d03f4fc5e7b2c1a74a";
+  sha512.run = "b92b231bee56a8589e079a1175569a8d8b92bd0e4730e87882cd8415bf301d466c381eaa0540104abfa5e9ed2d159b3349e3dbfc34e6b1c10e52e255946b3067";
+  sha512.doc = "f3f6c06eaff8ce132e5bbdc25fa244b6aefd388a467bdf78c9c5459d6bbcaff185ef0a485957e8b864ce167b0be3a994d73cbed788754da308dea2af5d9beaae";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.0";
+  version = "1.2.2";
 };
 coollist = {
-  revision = 63523;
+  revision = 67048;
   stripPrefix = 0;
-  sha512.run = "f9c220204782a1b61deb6e049b10bb81b5417383e1dd9b7e9b0ec827da48f06e3167f0dc2453d46f3f54923fc2200c2cc714f2f3725f6f41602f8dc493503855";
-  sha512.doc = "09d1780a5738f82ff8d1820c015447855b8a930e63f3d0bb3e8e428a3bc6f6239f185fb6f9d7d45af2d9af5ba283fc0fafee7fd9bc88dacf654dfeee46dc375f";
-  sha512.source = "beb55ae83841be57a743a39c49c83028a0207b8d307e717f91381d3157139748abac33f300683dbcdb683353ad2d8798dbc416d450ba950d9245e45ff87be89f";
+  sha512.run = "7336f6e9a05311295d1ada4598d4b5506ef64ea1c245d30c2f30e079b5da66f08b029d98a74dec769b60da7ac05822f377c485bc0a7a25fcb3aec9e2f499d3a3";
+  sha512.doc = "5f27ec17d4544bb4ac9891e088b6d921901504c46a52a65638d5caa0fb7ad4df55c00ff2ad7569b6b7f97919b9a139f433044f849ca4bd559c77e147e5878d50";
+  sha512.source = "c0a8e06bae7ea5e3a2dfba01e014c7bd0ffa22306bc1827e1eab717317b23df8d20ca344ba182c7c44a596f3c7471aeab03ed93221cca658a0e451578bad6761";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "1.4";
 };
 coolstr = {
-  revision = 15878;
+  revision = 67015;
   stripPrefix = 0;
-  sha512.run = "d4fe8de308d6dd9711f1d877fd1d5ad32f36a4d6cb17480571d88f4b63f9441fb1db217629ddafb25e774bb6d43d148742f9e823e1d43f497a9799b869f90b62";
-  sha512.doc = "63c833be3ab646ce509e5082af3d135d81224c7b586f6998e5fc7410f2ed0e52abb05adfb49d78bae721889fc522395b53810e3ee627184de83dddb198cd3083";
-  sha512.source = "69ba696387583767b4c4d0b196c2b37000da16198242ea1ba4e2208fce6dab8eddb2bd40093eb092fe62b3be82aacab4b11ee35e2f94422eb07e0ad489709930";
+  sha512.run = "272c0ad1071f394c9cf96c38ce85800aeed55eacba29dc86c5887b86a63b717d8f83fd83afb5ff813df780691a7a2deff6d466e521eeca14ad3e3d09f07ab0db";
+  sha512.doc = "5f4baf28b3a5d2b83ab51037c60454def4c1ebb74a408add0459fbc7766fe828e32af9c02ba898592272b067b23715e3986ca4f561a1a89d58a57c7de6d70bd3";
+  sha512.source = "56e15bc77c6bbc2523162db8a86d1b3bf86e97a59fec15e27da736b964d02e27e7838690befce0f493a9363b946f710676c76e1ddc0c048f5cf40e41d29c1c0b";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "2.2";
@@ -12912,6 +13043,25 @@ coseoul = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+couleurs-fr = {
+  revision = 67901;
+  stripPrefix = 0;
+  sha512.run = "d3d1abad334d50129f77b35ebd6fa244feb84e347e64cd98f3e3413c556b1848a198e4679e266f838d947244756fc19071b1bb0816c73b887b2deb4fe061adcf";
+  sha512.doc = "8e88f3947d0dcebab82a60bf9886350762f57da2c2b3c739e2e3896afea70a2088ce325cfe6373d6a351b57fc2f0b0bb7f0f4c9716a094d86e1997744890c92c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.2";
+};
+counterz = {
+  revision = 67335;
+  stripPrefix = 0;
+  sha512.run = "5fcc21ea49e222cbb205998172ca4184f4daa3efcf92c48278b3e7c5bce6669594b02f5fe54af76f94ee19ba63b9701e66d24c2ce85262748c1fd2c9b6e18b3a";
+  sha512.doc = "a5ccf25501d1275161e9aa53f076fea2480cd5edbb83e4133c9cf8e400b840fde78f69bf038e5778c6b8535fea3e654c11eb1ac82545a90fe952530bfdbb607b";
+  sha512.source = "920d054c6a3bc41504db850407d8553b1e108af85ab1a94fd2a6bb71e8f6f7f02abd11908a8d73430cf27c9f9f8e46014a53b8afdb80dd360e4e1cd12f8bb090";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.1";
+};
 countriesofeurope = {
   revision = 54512;
   stripPrefix = 0;
@@ -12983,13 +13133,13 @@ coverpage = {
   version = "1.01";
 };
 covington = {
-  revision = 64241;
+  revision = 69091;
   stripPrefix = 0;
-  sha512.run = "36c48b3d496464d6aa2d4debbd50e9794fd608a19b6c3f443ccd726dbf105ed3ac6da5af89947ddf509489fb3835c5ae630075d149ba8866f51fe43ef1c3de33";
-  sha512.doc = "b20a69084adc6f2a4801672069f6f445e3d15f52fce3e32c707abdc4545a4c0115c0819648dbfaf1ac0562250377372d66e354fd28d2977b065c222e33d1019f";
+  sha512.run = "c70d4926d45c93ffecff4d8f32923ac99a1b354e51dfc21eed8f3e3172e5c29875d5ef7a2509dbd6150f22bec337efceb7cd42717798144d1d1046e4332d00d0";
+  sha512.doc = "cee67a2bcd26ef106d35fadf02145b74e7c9b67c2bd2ff46a4a7afc262d020d43b168fefc2d086688c4087469e9d68a9f0ae79c83dc018ecce70233a0459f9fb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.8";
+  version = "2.14";
 };
 cprotect = {
   revision = 21209;
@@ -13039,22 +13189,30 @@ crbox = {
   version = "0.1";
 };
 create-theorem = {
-  revision = 64104;
+  revision = 67712;
   stripPrefix = 0;
   deps = [
     "crefthe"
   ];
-  sha512.run = "dcb4f947d6d0fed303d53c19e29049070b1c3ca47fb0d78c0c1c3455f6de59ea2aa98640ac88549bb8f00f1b5cd4320a84f92f98d08a0ee788eb47417a86486d";
-  sha512.doc = "4c84bebff2a93f8326fb8ce795a9fe2193194f70d49b5448b51d25a98378336bc931a60d762dc12bcfb2fffc362663391347a4b89e69336fb47efd23dcae4499";
+  sha512.run = "4e33efc66887fda4505c7036444c7afbebd96594bcd326b8cdb149fb4a429f3cf05f87d6315dd6c207d5f55a9951ec6632ed63aa6f2d4320ac7fbee53d744680";
+  sha512.doc = "ee71cddaf790679dbc46044e5262f3b5db098f1b57291719bbba68b9e905e5daa20127d1a124b6f1e3d898fa081a3e7003f607ad0bc4191f5f63fca837ab2c7d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
+creationboites = {
+  revision = 68087;
+  stripPrefix = 0;
+  sha512.run = "5aaa071101c52bbd95c83b2e523ab664a2d52109fd5ebdf71da07d3af997d93cc2550736fe18dfac05348d92cbb02749f03a052954a0807fd3d2140efb322588";
+  sha512.doc = "42e8ce40f037b18e82899b570e8102835a437a5283193f1e799876039a856f86adb1afe52f5b07bc6151644e9b174dcfbd96f6148e2610a0a32cb400832f3ebf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2022-08-08a";
+  version = "0.1.0";
 };
 crefthe = {
-  revision = 64498;
+  revision = 68813;
   stripPrefix = 0;
-  sha512.run = "00e42796dfb4a48ffcf1750562842e0bee1f3216929d05729b9930134bc55521e4e9b9a3840dde0d615539c2206088a1e554dcad41ebaa83a0c3822e66893aa5";
-  sha512.doc = "b9ce19968dd09744ee594b40c0ad4478675c2530679183e3de0e79e344a106c244ad9201c61cad42f60e24f97b61490b2f103b8ffc591d4fd1388dcd4dcbcf5e";
+  sha512.run = "4222df8d84b006df3641dd2fd976440401b83c40e9ef0b126be8ba9b459eadc084cda58798db596e5ceabcf4b4f0c821bcdd5b05be5a3ec9e3f65d98b4c6da3b";
+  sha512.doc = "48b2636dd969403d3f0511c8b959985da32243d5763d6d2837f57981ae2f548b2e92956c3fcc9349290e7b705ea8144ab2af9b74a5538ebae967693e82e6085c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -13085,10 +13243,10 @@ crop = {
   version = "1.10.2";
 };
 crossrefenum = {
-  revision = 66032;
+  revision = 66014;
   stripPrefix = 0;
-  sha512.run = "35b59fce84e356e5f72d91bea2de582b75fdbfebe1573e3e23321743a203b258ce186bf274dffa3ce09bec034d8a52b2a7275c4452ea63162f71898bd1ca9ea9";
-  sha512.doc = "77675af4bcc279317792089faa1571c5f2a7f9b20872ba0a919850f1316ac17e4110d57266555b3d2bc8804ebd9d393e7245e62023445791d6af9cd2d248b9ef";
+  sha512.run = "ec85888801dd66c0e1b22a257be19eb141b922975a7dfeff90ba146232a6d8b9a7b76e338b68548ae228a1317af0208072c06cd10ddebbada93b11b72907c817";
+  sha512.doc = "c5d847af7f8c2d753563d5f393cd3de2936de96ebf1e653b7e0b9f72da75f3481ce1a783329f74ccf8e5f160eae81e045c663775dac916c431edafb1677b5860";
   hasRunfiles = true;
   license = [ "gpl3Plus" "fdl13Only" ];
   version = "1.0.2";
@@ -13209,7 +13367,8 @@ csbulletin = {
   license = [ "lppl13c" ];
 };
 cslatex = {
-  revision = 62387;
+  revision = 67494;
+  stripPrefix = 0;
   deps = [
     "atbegshi"
     "atveryend"
@@ -13229,29 +13388,25 @@ cslatex = {
     {
       name = "cslatex";
       engine = "pdftex";
+      enabled = false;
       options = "-etex cslatex.ini";
       fmttriggers = [ "atbegshi" "atveryend" "cm" "csplain" "everyshi" "firstaid" "hyphen-base" "l3kernel" "l3packages" "latex-fonts" "latex" "unicode-data" ];
     }
     {
       name = "pdfcslatex";
       engine = "pdftex";
+      enabled = false;
       options = "-etex cslatex.ini";
       fmttriggers = [ "atbegshi" "atveryend" "cm" "csplain" "everyshi" "firstaid" "hyphen-base" "l3kernel" "l3packages" "latex-fonts" "latex" "unicode-data" "tex-ini-files" ];
     }
   ];
-  sha512.run = "a65516275b53ce0e2487193b537759da447137898915f577c66893d6408c664b7cb830941dac2e80b2922c1597719cc879f66d3378216bfa2dc190e1bf502675";
-  sha512.doc = "d1be033b7355bb3431193a9a39bdd1e269c7f3a97333c2b753ffdf795ad45a366893267a13472463805ed428760de680aae3377b25ef39bf5522a0186f80f899";
-  hasManpages = true;
-  sha512.source = "def618478c9d3b500aafdf47ea5e9432412b9ae5029417b85fe38f2c506d691cc001b9c4492bceb7ff276a15612bf17b13dc2fecd2158ad940e97c6ca2d03bb7";
+  sha512.run = "a5ea5d33fcf2573f772541cf03cb660fbc4d32d4d1e145fabc07781f5f664369f0bce9e8434f403beebb3a6c17c2da43d7727fecf6944db1bc9d36796e8470da";
+  sha512.source = "8ea942f9cf3b9939311ae29bc4badbb2a67c6f4f2e03a4745142a0b570aeb0e668dfc47dea278f960e6a11231856464370507379cdbd77588720a16ff5e25d17";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
 };
-cslatex.binfiles = [
-  "cslatex"
-  "pdfcslatex"
-];
 csplain = {
-  revision = 62771;
+  revision = 67934;
   deps = [
     "cm"
     "cs"
@@ -13260,9 +13415,11 @@ csplain = {
     "hyphen-base"
     "luatex"
     "luatex85"
+    "pdftex"
     "plain"
     "tex"
     "tex-ini-files"
+    "xetex"
   ];
   formats = [
     {
@@ -13296,7 +13453,7 @@ csplain = {
       fmttriggers = [ "cm" "cs" "hyphen-base" "plain" ];
     }
   ];
-  sha512.run = "c4dbe1721fc2281cba7e426f6c75d35671cfeddf77a947f147a33c651090bc90528583445736bc2933c2d3986424e1b3ac4984e93cfae5f0ad1cfe41902f63cb";
+  sha512.run = "5c0d9f12254d2b61a9ab34cb447dcdda56b032c5d4fcd1b4ee2ec2f3999e5b5317e067c7e03814598add15ecd56449ace1bd1a67b6d87bcc6adc2122bf7b5083";
   hasRunfiles = true;
   license = [ "free" ];
   version = "Mar._2022";
@@ -13362,13 +13519,13 @@ csvmerge = {
   version = "1.0";
 };
 csvsimple = {
-  revision = 64450;
+  revision = 68566;
   stripPrefix = 0;
-  sha512.run = "5c17b0055230159d8e37ab77738d7f177578fa4061dbf5fca0071da4dadcc929946fddee11bbfb32c2109adffe8e33bad74ee0f343b467ab695a85face9ca516";
-  sha512.doc = "9d63055aecb4f5939799b03691c6620c5b07b7b8b785a00a84d2c937409f675223aab97e68ceedbdf21b0193a05fcf3763971ca3c9e016933f2c55b5a2c8f8ef";
+  sha512.run = "e98878933f2f4a7b5b41325f11deea34db380bfe7ae581cb7e78a738ce599ea7b325ae77d48af7a58705ec4e7b668751b371ddb0396a44e28b1af57ab21cb87b";
+  sha512.doc = "7d0a19509538818153357c485984abfe88b9a7e3c865a2184594155a9643dea61755a510e264a38d170f660fe502b9a37a0c353565d2518ccf621cd69ef3030c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3.2";
+  version = "2.5.0";
 };
 ctable = {
   revision = 38672;
@@ -13411,13 +13568,13 @@ ctan_chk = {
   version = "1.0";
 };
 ctanbib = {
-  revision = 66069;
-  sha512.run = "5cb965c9b387d5c733204663f5f6496e4ff8033ece3f6063513bb8890516e8e96b4d307ce830ac51f15796ac467e3db0e27eea668f14b4da8b3446623b6767fa";
-  sha512.doc = "e161bc466807c7697cb7232874c0d7daf14d82677d25a081085dce91461826d2aace842f599cd27cc0f6491d31028d3253e8d9dbf237f9e97444dda80490e5ba";
+  revision = 68650;
+  sha512.run = "1d89c7bab95472d993c6e685880d513f9cd4ac57af87c7656bfb8423b2e5c9c1ede851da01e638558edb37e85caca3080293a7df9b0ad9e87b2aee84a6680a52";
+  sha512.doc = "760b98e3c4d7b07e2f15d7e2b1705f10eb697f5e7f2aa03de97a3ce347d7495f3595d9ed0518c0aa5d38d2eb0b20c3a889e6e66416587a4d15b89a9965986d04";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2b";
+  version = "0.2d";
 };
 ctanbib.binfiles = [
   "ctanbib"
@@ -13446,7 +13603,7 @@ ctanupload.binfiles = [
   "ctanupload"
 ];
 ctex = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
   deps = [
     "adobemapping"
@@ -13487,9 +13644,9 @@ ctex = {
     "zhmetrics-uptex"
     "zhnumber"
   ];
-  sha512.run = "d118a114f1f4df64f66d3a747042e3fd2409d96322e3d6118d5326bad22eec9fcf957e9e0c89a2a3589f24eaa0f10e96580e3b80b2490ef4c372014503d0a5d2";
-  sha512.doc = "c2917675879646b56dcc3709e87194b862c6ae1a2cb3a58691bc587f4c72d520abefebeee256460d797eef1c7f9aebbd20c7c54c4276583b2be89dfda6166599";
-  sha512.source = "64c1af74f09b3aa1d859a5c37c88d92c22e72e25cb9f7fedda8941b4ffcd92c7eb18ac36c9f3927b70ac5d27a8145d9eaf1dc5953cb489b6155f0a097cf3b9a4";
+  sha512.run = "43954ec2acfd2a0e37acb55c3bc7496a9959abeb60787a4daa742cfccc3bfe5b88542d341552aa9bfef6b4224c79a14c5a5e9a7221cc0ecf83d22c9e6ce6a48b";
+  sha512.doc = "475eb846b55672b23769af8757c7532b30d3d13d6667fcd71b8783ab291dd3a39fef6d255080745d4d609276f9074896fae7e674e8abeccad7c5984db5f88636";
+  sha512.source = "59df412a321a4ad75e1b948dd12d250a844c042c9a7c5ef24f0108591fbb087ec6949b537788f070d496b9ead0e8b8de120b37f6977dd536bf10ac353d5da6c2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.5.10";
@@ -13511,12 +13668,12 @@ ctib = {
   license = [ "gpl1Only" ];
 };
 ctie = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "c1c69127e1157c15086beb269e1925feaf63eebbc45baec018ce97196a2fc42638bb3107a4c1d065e98a08e490d238d2bffe1827f27f9015ffa5be88be53d6bf";
-  sha512.doc = "494a3e6569a77b434f66a56f1fa44d4651dc23e7cdcacb101043ed55cc6e32551f148e67976b67b88507da2fe05a0b006c810fb737f9364d47cb010438c7b39e";
+  sha512.run = "0180080c48fea7b717ff0ad27e060ad4564841fe2929b8db919aa0402886a00e0fa40f1398ef82bbf9e983343c9f9f6c797606045d55ed07e572e006588c7353";
+  sha512.doc = "178a88260131781b6678ee63b1b35ecc0734525309b99c0d5bd4498127970bd67e30c23072392b6678186532a845c7e27188b1902b5dca52180720bc98fe3dd6";
   hasManpages = true;
   license = [ "gpl1Only" ];
   version = "1.1";
@@ -13534,6 +13691,16 @@ cuisine = {
   license = [ "lppl13c" ];
   version = "0.7";
 };
+culmus = {
+  revision = 68495;
+  stripPrefix = 0;
+  sha512.run = "4f6f370a13ce2cdea9a1dd32bb1e2243000f4cd566f1a7698c641b9ad4793b3c1148fb914dd748e37b5e7bd6802144d4e1b9fd4c536df58bcb4863ad4f9cd2dd";
+  sha512.doc = "4c1217f0cd27bcd56c11006b7b3749e661aba567798b2e397a21b3b0df39a35acb6355836d4eac4fd619509b09b57c7e39a97068343b6e28005944ebf0430adc";
+  sha512.source = "2dc2e6bd71ee949208625fc259cecc6a0ffdd0701416c5775cc32855a2bbf8a533238e07d4fa08c090ed3ff627613c27f0cddeb2c86eda1b320cbc68e236a6a0";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl2" ];
+  version = "1.1";
+};
 cuprum = {
   revision = 49909;
   stripPrefix = 0;
@@ -13562,6 +13729,15 @@ currfile = {
   license = [ "lppl13c" ];
   version = "0.8";
 };
+curriculum-vitae = {
+  revision = 68211;
+  stripPrefix = 0;
+  sha512.run = "a650807bb2a12df8460ff4b450af6bb7122a8629aa72d5e180e196ed3f904ab70e04fe0ae79474649d22534a0a7cf0342f4a1ff953355b8003e9d8eea0016d10";
+  sha512.doc = "5c07bdfa540b65a6df224bea38b5865e44f08ce042e4b465be83f580a08976236442d7bb96573ea8c5b089aeff8f02e2a9b556997a24a73d264a557e775f8d3e";
+  hasRunfiles = true;
+  license = [ "asl20" ];
+  version = "1.0";
+};
 currvita = {
   revision = 15878;
   stripPrefix = 0;
@@ -13589,14 +13765,14 @@ curve = {
   version = "1.16";
 };
 curve2e = {
-  revision = 65469;
+  revision = 67599;
   stripPrefix = 0;
-  sha512.run = "0d2e5e851136e73d205cd87fdd22eb2d4513c4f8d1f510c1adefc6a278c9c47e148ca6c45d7cbedfc5e51543f06301f7960bdc704fd4da3dbc2bcbbd68e506e3";
-  sha512.doc = "d7c0dad1800cc12ab3908036a8f59d87a37c6a2218a6fd6b0280019f98d34908b080499abebb1976ecf16957d9290cadebc93c90c766d467b6452f6a8b7c8743";
-  sha512.source = "4767deede52b6c3a31168f37a41a8f127ad6de0208b6aa42ca00ec7ed2cdcddc0317de2920ccdd5f1896b6b007ebeabcbd5aaf8211f798584ff64f960f63e5da";
+  sha512.run = "36b8d1ebbc07ea1cb78b85fe2c327a4c932ef0a88881ef9185654cda6865ea5ca017aeb33334f603fad74fa0245a531f50e2016c912da4355cb552ee5e069f97";
+  sha512.doc = "d28134fe19310084b6ffee13bea26b7dd131789a124041cbecb500e070bb134db98d4cf01d7d970781ad1823327f363fe886be9615d3458ca6763fbd7039f0db";
+  sha512.source = "7a9207da9be81c2dd9de00adf25f81adc2bec671e4fe281904410e964670968103a4e556806a287e830aa9aba908c353606884079f3509a66975dd9411d2c886";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2.22";
+  version = "2.3.1";
 };
 curves = {
   revision = 45255;
@@ -13628,6 +13804,15 @@ customdice = {
   license = [ "cc-by-sa-40" ];
   version = "1.1";
 };
+customenvs = {
+  revision = 68637;
+  stripPrefix = 0;
+  sha512.run = "d58a216909f8bf7c425f0836c05842ca918b03b928a57ab06223a82fa588a3bd3d515f6beb5ed27330d5566192a234a08385ac387563db8ad171b928749b488c";
+  sha512.doc = "d807f71f40367888621fefb52ff3fbba1d5b301b670710461b0feb79eb61171ec6208de41ea15ab39c14650734f2ba6a2c5f89182f27072c87c9564fa462544a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 cutwin = {
   revision = 60901;
   stripPrefix = 0;
@@ -13666,9 +13851,9 @@ cvss = {
   version = "1.1.0";
 };
 cweb = {
-  revision = 65081;
-  sha512.run = "a3c7600debbae6ee9af48efc27cb69eb84fb338985ddcbaceffd969e18673d0943d080a3c9fd83a3edda8b93a0d70e2b4bcced158c903477c29620decc1587f0";
-  sha512.doc = "6f0ced7413dd513cdbde98a2c9e4f3841e8469084938e921a186b0f0a571ed859548921e710deb1c1634063068807aba15209cb0d07f891564d42dc751784e45";
+  revision = 68702;
+  sha512.run = "4c7a5bc2e7f347e29b625db12e9aa53c872e97c38adb08feba1fd8498aca39a2a83ba3707725757860353294541bcb29585e262404687f6f4939b8512c362765";
+  sha512.doc = "27ce2eb4a74a662eda15e5f72c1543b739c3b2eb918a07421781fcf62f0a4f1ae18c99ec836409175835ce56f3f3087e8b6bcf4deaf4f2282ecf9a2fc713a14d";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -14071,11 +14256,11 @@ datetime2-galician = {
   version = "1.0";
 };
 datetime2-german = {
-  revision = 53125;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "a27345e07164419862e2aa50a46252ffa05ccc1f3aa36cf530544642faee34a7670cb2d9279245b657bd5cfb5f9282eb537a94acfe56017bd855948a0b0d1ae7";
-  sha512.doc = "70c3d14708a87ea3e7f81ce3fa26420daa123f214a1bbdee17a8d1a33c437be51602a5857081ddc82998526e5424e4899dc795d1fc7462519ff35cfe8b63df9a";
-  sha512.source = "04f88422f1134325f6c9dae292c8c6e10ea61da4c5159afb04774a776277f35130a5d7dd90d58e368df3db20a29d472e4c8c1ef2527d17cfe77ef1f46bb7dcdf";
+  sha512.run = "1c020ab84d3c6f5b5dfa8170d9be8344c6a63bc3a7f462b29697fbb892eb4061a502801177bf21408f3a6eb68fafb8b77711c125d23e662ce1510f75117c1d03";
+  sha512.doc = "f050add5492691986f50007fcc48fc36a0a19e6a23303062c5a865be753e0c56f4f5f955efc22c4c838fbf9af79f91e0f488e00027f4bed045af483ce06cd24c";
+  sha512.source = "f131874dc61bc52d040dd25ce684782d50c0519c03294f23f9c6b717a8f574751e8f2df18de0b74bb3a9026718b6beb299435af6c990e4e2d7c891e831fae7d5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.0";
@@ -14244,11 +14429,11 @@ datetime2-scottish = {
   version = "1.1";
 };
 datetime2-serbian = {
-  revision = 52893;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "ebcdbb32af1743e9dc2b46b6730664c48a26ac4d15c4e9936c9df883a718fb52e8800f29285295e7521a02130471bdc10f8227b5dbbbeaf6481355d7025a8dd4";
-  sha512.doc = "c56761130dc00406a27356a8b38f4c82f233dab32fa6f19d58626139ecd7e12fe3c736edc676db52176c5918800b4f0a47362fcb9b3ef265ec3beebd641c1b15";
-  sha512.source = "a7d421d3e090bfdcdd0fc5f734a45cf32d8849e1c27ddb2de3f829c5488d99220797400c8039deef2fb76c3ede96059519dad3d54412f2c780ca5b9bca39f043";
+  sha512.run = "55ddf54bb1ba9cca7836ef0ec082d98d9d280b92e1d2d108c3a4d11b5c5d89f43098215eff675e8ff5b42bd8f446c6361a98f544f2d4bcb4ae684f69597eecb2";
+  sha512.doc = "b3b25cef5afc1481617cc3edbbe0aac242b1dacfdfdb9bbd30fa9d2c0f963605ead09bb9a91b016d0739b848cafce18ab17d3fd0750e589faeda0c434b4ac73e";
+  sha512.source = "c36f353d307bc2a49844dcc53837ab6ff2cb17a10973419ccd848c752f0eb53b369d4f0e123e3992f96d5fcde30f204e830093d6421f3544be693a9369c43129";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.1.0";
@@ -14353,14 +14538,14 @@ dbshow = {
   version = "1.5";
 };
 dccpaper = {
-  revision = 61763;
+  revision = 67890;
   stripPrefix = 0;
-  sha512.run = "98648e229632afa6503388edbf7418b2f92fb46351bdedf7d678132be91b3740927ce4c17ccb2ddbee6e24cfc0810b415c013cb61aa81db986efb5daef311aed";
-  sha512.doc = "e9809887d68592513d5d9992add687dc7fe82e7570fcbc46cf582f66152c94d5f9729735f0f5714245421556b470fcf0f6cb0129017fd79df20e96fc0f4548e2";
-  sha512.source = "da0843ea5f46a187b0d454b5a421699865086af684512a2202aded1e50c240e1345130753fff0a779794d5897f32be793006802c59a7aa741a0f53b4ac002f91";
+  sha512.run = "16a507603bffd0fd0e305c9e2d21927f0788dcff750ab276349919cc2e1036b41f57696e088ab5596bd714f890ea68ece629980dc613581d5c90f586f7e4117c";
+  sha512.doc = "7793786d0c34ab72954fe189bbae96a388f61f789b845b42d7fb062bab3858643e8ee730d11a5d4209fb0d728220e7ea89bceb3684118978dd8119aedf167a89";
+  sha512.source = "bf4bb7b3ed2cae28c3f3d15758a48fcea3e737872b27af3ded1cda51f5b1c84ac200116fa7019972c65aa2a4966885582956bdbb717b6b427ab42f2f7b7fb00a";
   hasRunfiles = true;
   license = [ "lppl13c" "cc-by-40" ];
-  version = "2.3";
+  version = "2.4";
 };
 dcpic = {
   revision = 30206;
@@ -14381,9 +14566,9 @@ ddphonism = {
   version = "0.2";
 };
 de-macro = {
-  revision = 61719;
-  sha512.run = "8952325be56b193440dd24f0e6847ed1a9bea4cf8aed86afc7b7ff0a0f6d61130320834e679d55a020d8114d555733a92e645eea8fa1d3afabeb8cac5ef097ea";
-  sha512.doc = "079dfa97d55a2989e300856e7877591bd041b239454a0a0f72ed20e329fe2f9ebbbff22497eec1b622e2679316242a845eacab5716e01e74c5c810fb357c1636";
+  revision = 66746;
+  sha512.run = "6847ee60de3e70db18f402744ce0edf926fa2ba1ccd64faaa9844aeca85809efdab740d99f1ddcaddb74fa54c70d0c2dc0a7e8d15575e574ce8d451e0b6248e4";
+  sha512.doc = "21065d2ebaee0a2c82e5d41ae6a5ddb071623f9e405262de404557053c2f402f9166e7c3c939ec57e3d3a1842397143c16bfee9d219eb84ef613b74474538052";
   hasRunfiles = true;
   license = [ "free" ];
   version = "1.4.1";
@@ -14418,6 +14603,16 @@ decimal = {
   hasRunfiles = true;
   license = [ "lppl1" ];
 };
+decimalcomma = {
+  revision = 69251;
+  stripPrefix = 0;
+  sha512.run = "78d257b6a3b65c44e9cff04093896240c7a9401af04b028fa79bf29dc436a18d163049d34a9a7c92c193ce07085aa877e69399f79da22696da800f72de20eb37";
+  sha512.doc = "21f1a61e45fe9d83f4ca7d01375c832b230485035f39277e18a3062da98f7d0bc63aa1703258c7fbbb6330dfde15153ed9bab60afe62db9bca4250033a12fb0d";
+  sha512.source = "56906bcdf0d1ed82de86cb39994682705b5e19504a97d2deabf34ccba239c499ca3b613e013c04c2726155b49a7971b9ad450d248acbeb5bddcdf4c4c7e8d687";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.4";
+};
 decision-table = {
   revision = 60673;
   stripPrefix = 0;
@@ -14438,6 +14633,16 @@ decorule = {
   license = [ "lppl13c" ];
   version = "0.7";
 };
+defoldfonts = {
+  revision = 68234;
+  stripPrefix = 0;
+  sha512.run = "f6823da220c00ffd688d0b25d06109f0f3a7ab606d535631d9197a26b02388b11e4dedf41829c94ca4a414cbc1cee81c425d006e7567116b243272fa8d8659fd";
+  sha512.doc = "d799609d039e98e2b737fcff5bef277359818838a8cc1489dab934d6b890ce480b7d6e935a84562662e8f130873d1a2dc777e08b229b7d5c0b431b8fde5d6978";
+  sha512.source = "5bc0c27101fac6b15e8e792bb4436c4f5ada6684bdcc254eae8466ef07ed7896957544186c09ab43d8ed278efcf44f07c40c9ce5c194fff081bd46a6e628704c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 dehyph = {
   revision = 48599;
   stripPrefix = 0;
@@ -14446,15 +14651,15 @@ dehyph = {
   license = [ "lppl1" ];
 };
 dehyph-exptl = {
-  revision = 66401;
+  revision = 66390;
   stripPrefix = 0;
   deps = [
     "hyph-utf8"
     "hyphen-base"
   ];
   hasHyphens = true;
-  sha512.run = "278e3c30cd1f107075fec4cc4d9301e97a19500398d2c4e87cc9df43479db5abca70cd3fe9bde3c3ff7545d0674bfda799dcd4211137a54cca22851ef1f31ffa";
-  sha512.doc = "f4eaa2fec9f9df21cac411f000e9a797a12f264b335daeb4f8a00f2f43d903948f6ad52bc544acc1e5ea383c948979f5505bfddf97ce7a6a2ed7732d046ef5cf";
+  sha512.run = "2dd98977dc31445cd981dda46f289a93b4340406801db929c21e8d08300b17745cda637f6b40ccbd2a02a0ebafa980fd9c1591b8f7beffe3fa029bf8c82d2eee";
+  sha512.doc = "c28f49469c8a2bad8fbe34ca1a0df6441649edb96c19d9482fd2140068447d86716911534cff181fddcf784c8e80a20eb1c952b2b9c323df7725b46d950c7b4c";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" ];
   version = "0.9";
@@ -14525,28 +14730,28 @@ democodetools = {
   version = "1.0.1beta";
 };
 denisbdoc = {
-  revision = 63589;
+  revision = 66137;
   stripPrefix = 0;
-  sha512.run = "e079ce92fc827ae1bc836dbae68c0f1cac81a68c2935258f8246e39bd46bcd06bb1b56e577c6514e262d7dc9f3351d1e783643a303f52d8d66995b6875e3dde3";
-  sha512.doc = "c64805de12c81f388ff5d1011f11c7ec01e7e906eac12d1dcf794bea37dc7c16c56cb94f0f8db8f734a0cd027659ebfda57737572cfd6e7ae732b8181ffef4ef";
-  sha512.source = "487ce4614e1ee0c519126bb5873ce0de39bec63e89c72cdbdbe6e557fcc345191baebb299cac7b4a5ef42b4d96d905764f9067ed88cf8c717d7bbbbee13a672f";
+  sha512.run = "43bbcb7f73c1ba704fef0754a4d79c99b45c99c7ff3b06f70db1c0c922734f9c3bc973841b6c1ffe6879324f935e936ab396aeb2d2fce1bce029b6b0379882d0";
+  sha512.doc = "4a0572e776d2b00d088bdcf5e65c94c15d644182a5ab8284a6b16e9ca795ad95ab89448954dfe5aeaacb986a012da0f1abccde7df35f4619a6ad5dc633facf96";
+  sha512.source = "f173f64219c4ab4194cbfb091273311da6963f09995fb2d751302c356613bee2bd4a874a35dbe1e99b995a5d50d9803025e8861947dedf77fa990a5f601f646f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.9.4";
 };
 derivative = {
-  revision = 63850;
+  revision = 68787;
   stripPrefix = 0;
-  sha512.run = "67e5c2a148105051ca882b70d2f3f9c63a06e2f34bb72b84b13bf225a7583bcf919c525890071e3ffe3bbaa0bbc616b8fc62ba050d1c910fceb161131a6fb3a9";
-  sha512.doc = "8e2986eda21c8688feaa0f659bd79a8f8f2931381f0dad7fbd055dbf98d8e8fb7c1724df8d2d081ae0ec45781c7eab10edf01535076d28830fef9aff5d4452f4";
+  sha512.run = "64a219eb707e54c1c57715243e4bb5c676d495eec5c0095887f33f30591b7e90a7278ce6401c649f1902ded58c9fc890a23f0611dc8780e9a7bb6bd55a728083";
+  sha512.doc = "3f660b6b8c0c1da3d7434f3a0ecf19c51a8618ad660ac4a6518ca67a4bbdb788b36a457a6f52c544618e814a3bf2b73a5c84590125f3e1d55cd95bda01f6b9e8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.31";
 };
 detex = {
-  revision = 62387;
-  sha512.run = "27c94ef578afaf7fa3ca232f4a4a0e5167c69cf24a2c005c1d5a06830332b6a4aca8d0eb4450026d498e371d5c142bb71cd41de199b77f5963d88d612208e0ad";
-  sha512.doc = "f3339f5d93f073bdc2b6052f38c314a1f4284c60a5adc7813ee2cf7d5f609ce8c68b60cb2a0fc9571e26796ba2fc2660da137120751fb465ed723a800aac2cc8";
+  revision = 66186;
+  sha512.run = "e258d80d1509831132c4f70df81b8e93cfc9d92ee74c5d39e7f35bd4f71a3eb93fe3594afbd5ab0e33cf0b6f45c816506e32ca8f41427f3c3fe661f3086100d1";
+  sha512.doc = "3d5a3b371e007bda61441460479a208062fd0d477d1fc9ab9a6764c1969fd383acec9e336e8d0b16aab5606444f5d87335320e010657cf088e9caeb18d6dddf5";
   hasManpages = true;
   license = [ "free" ];
 };
@@ -14654,13 +14859,13 @@ dictsym = {
   license = [ "lppl13c" ];
 };
 diffcoeff = {
-  revision = 65676;
+  revision = 68838;
   stripPrefix = 0;
-  sha512.run = "3f6e304dbe15deee61f6a54f8d9c69a06bf1ef48e9a0583179bbf5afbaec8364fb3a974f47ab6d6f350c6ea7083095854109e1d4555e2395781e40774ce46f67";
-  sha512.doc = "c742e1e8679f3ebf58f2a189acb695af893231c922f5659d9c586f5c684020f30368cf41def55dc1537b25eb05a8b4d8de771d19129dc15df64cdab7b3986ca6";
+  sha512.run = "a40e95018d471504d5d0cfa2d6ed3c43bb7d4a749a97200b2ed682905d6b448cbb51b80d27d772673b747fdfa3c9b02515ffb32ee9e44efc67445bc4c8cba3ba";
+  sha512.doc = "65646cb4ad22f5755be51c5c8e1ff907803d9d3817b76da8146d81b7b42ea4c9af07710d55d861795a2e7f25f0adbf4f0c55bdce208a563c3ad34d32992c17ec";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.2";
+  version = "5.4";
 };
 digestif = {
   revision = 65223;
@@ -14847,14 +15052,14 @@ docbytex = {
   license = [ "free" ];
 };
 doclicense = {
-  revision = 63340;
+  revision = 68441;
   stripPrefix = 0;
-  sha512.run = "c46f4b7368ee52f68eae743fc4184c18a5ce4038976d0e4b810e4395f90c6651283cb345eee59de994973f0fdc93fda983438ff9690058065904cadc58aec8fa";
-  sha512.doc = "ae39c96a61f534f6a66e902d273816e55b48f1d12a2256a3c1fc2dbf0e6027543771ebd722fd4b6b575b7d632cbb3dcf56c58513694672de298d528527ec8c89";
-  sha512.source = "fab1662738be1aa2aeab240725df64a325a6cd17e77054e19432008914ccd380495aa9eb75b8b3ab72b5388bb0b0237fe23f17ce5976a05ac31e098381f49fdf";
+  sha512.run = "f312fe38842267c1a35ab506354717a0ffc3d4b2684769965b7b94ca5fd6b137d0b13fdc98943b1fe0f635bd673c331ccc53faf5667b75d1192d786972008dc3";
+  sha512.doc = "162af038ac645790412ea0e07771c39bbc3706ee3ccd6b8a496b166e7ef51e7802a225b00f1cceb0bdb0c8661ab51a79d4eb40a52c0348f1565fc83dc7efed9f";
+  sha512.source = "2002418b83eb7117195e60a6f0211a395febe6455b210068db7fe1d99738820ba111e14fd6f61bf53020a78ce1bb7d0bd12b57294cf5081d37d5002dcf641253";
   hasRunfiles = true;
   license = [ "cc0" "lppl13c" ];
-  version = "3.2.0";
+  version = "3.3.0";
 };
 docmfp = {
   revision = 15878;
@@ -14877,7 +15082,7 @@ docmute = {
   version = "1.4";
 };
 docshots = {
-  revision = 65141;
+  revision = 69410;
   stripPrefix = 0;
   deps = [
     "fancyvrb"
@@ -14886,18 +15091,18 @@ docshots = {
     "pgf"
     "pgf-blur"
   ];
-  sha512.run = "1d4ce9b3bd39d12bc4fc2630c3f9116e7030d623700e951fa99e5bd25fcb2965765d5bf32a709eb9ea2ebd39382ef1ef33205ddd24c6cd5e9b75136de0ff18c2";
-  sha512.doc = "7ab3122caf188621a0f5045b9d8dff1361b6577c6e80d6f6bf20a9e81703e7060936162356e4c34c44bea6f8611ae8819eafd8abf745a28346ce3d8b065596f8";
-  sha512.source = "1913dbf266953cd42e9a840e140b00fc785f12f610d0e5c84f70a1eb3bef06b8a4cd5c612c682a8c6ab2fb8ff355fe416cbbe70ef366e123f13419bcaaa1abbc";
+  sha512.run = "b25c70def3ad4e85aaa6f229362a7d4ca3b2cf20fc86c8682d3ddc36738868d3ba3f481634d0a9acf8366af102ba3a27b325f3282724f392e8e3d312abb60814";
+  sha512.doc = "81adc089c9572519c09a0e1472cf2aef9a52a51c84992c8a46fdf74bb81aa432417f58836eea621173c60ef9ef2367348643d161f661580d030c206fd88f478d";
+  sha512.source = "f7e7609765907f9ae15f000ab50afc4546660e01266431050fb16b59bb760ff154ca2efda4187452511c8cb4c47f253ac401225e33e261028ee5df2bbbf0687a";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.4.0";
+  version = "0.4.2";
 };
 docsurvey = {
-  revision = 61447;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "bfb93b2510b2b2e334e63468dbb4a4860d4a2166c36b5ce5ff706007a2af605ffb1b5b64c567fe1a3bc46a4fe420fef4020ce6bdc16a4a6d3396ef00dc69d076";
-  sha512.doc = "5f91a58cd18315c612860bcfcac7b85ffd402b02dfe669e6fae1efbbac5eaec683b3a286231f9db1cfe5ba967be67f08b1319dea72263f7bbcc84cfd913ffc1a";
+  sha512.run = "06d5844c96ba47de92459a20594f0f575e0ca2fb6471f7079274ff752a1ac631f0f0d2f4f76f01fd5b8fa8036fca57557b37fe8490571b49b46fca06ade0a4ed";
+  sha512.doc = "fbd223b5af17fd7e09d43f00d103ddd3e5730eee7fd86cb25a8d4568f00f0155a6aefa28d3addd507bc261ff57e99256f40b232781256744ff9634292b35fa87";
   license = [ "lppl13c" ];
 };
 doctools = {
@@ -15158,6 +15363,13 @@ dratex = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+drawing-with-metapost = {
+  revision = 66846;
+  stripPrefix = 0;
+  sha512.run = "9e9deb95f1ca68c4f7b2a1e82bbc213da68e60bea65510e18dfa12528dbf65b20d06769c766009a1db49b9b7a649598f64a513957a4874f6c657ea0c1bc99901";
+  sha512.doc = "9d3ac79b2d4165a3e7fe1675826db2190b7bbdeaf8b14460a618ae909e29dcd9796aff70af98bae5307f67945434ab3a304d955ed5d56e17ea94a67f83f2ef09";
+  license = [ "opubl" ];
+};
 drawmatrix = {
   revision = 44471;
   stripPrefix = 0;
@@ -15223,13 +15435,13 @@ drv = {
   version = "0.97";
 };
 dsptricks = {
-  revision = 34724;
+  revision = 68753;
   stripPrefix = 0;
-  sha512.run = "282c1c1aa51c70a77b0b63190ee875668dab9fc2303e2a84ff0d79a7c9f78a2534e4752a32c093e72eda7e98aea220923f9d1703b5c94214f9590962187de194";
-  sha512.doc = "c45da3740ed14540cada0c75a98c19f5e3cd2b32811a4f1906e11c45a40e0e8d31bd706ff4afb18073690e4e285b7b44b858f53f33f050702526dbe0fc88f8b8";
+  sha512.run = "f51353329034141f52c38563f79de526b7b47de3435e14dcbf91f658a0f64a7b23075e8cef98d0f948ab54b57681c7d9fcec417b59871ff908c00e12d1711b6e";
+  sha512.doc = "0cfcb4e1094284ae954da49c1212bb793831861b57316f48fa93e20e92c8d35e1ee8e02bb1be8ecb52442dd80e3f0f921d024bdc8797a843ea0fcaad29759d01";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.1";
 };
 dsserif = {
   revision = 60898;
@@ -15242,22 +15454,22 @@ dsserif = {
   version = "1.031";
 };
 dtk = {
-  revision = 65315;
+  revision = 68849;
   stripPrefix = 0;
-  sha512.run = "6ddebf4d05d5eed8d2569c19a113b2653d11689db9aa8b702c8445473dc102685ee0da967af3d44763e4514dfd2c7a3b9309223abff10da2aa37a9b5d9d58095";
-  sha512.doc = "debb6a9fda42df78143b6515e5efd189bba4be426aa71c3a653b51b02e0f40ead12267d6fa54b0e495bc30775427de98a0d1375d52d6013fb6e8acc526043675";
+  sha512.run = "fef5d494604434e725a79e2dc8165cc25bb01953e31bd64046af11ea6513314afc879c86dfb8aff814e25ea3d6eb3a64a4896c0e5992a87c44af3444eb1439c5";
+  sha512.doc = "5ef9df97097a35a4598ee8fd0fd5a506510479195a8dbb9c4bd221324b091f1d62da62a4f7ef8e422fc4a01ac494384882d24d102d1b7cd4b59d72f821e415a4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.08n";
+  version = "2.10b";
 };
 dtk-bibliography = {
-  revision = 65444;
+  revision = 69155;
   stripPrefix = 0;
-  sha512.run = "417e5bbe812750ba4832939af9c9ed8bc6595049985554c53e49bf48a9cd66aae575cdfa3c49b6593a2116bc6aff44c771a17c91a2d233ba8550ab862db1ec97";
-  sha512.doc = "b48549663c4478a20339ad9c54a2d458b1472f231ae90a13a9cd35c0ff6ac6596ea8246ee97838bd462828a346082675294f843aa16f44f31d48b1ce2df16f5d";
+  sha512.run = "57a04ffa623863f4413aaf8c78d1d9e6e2e3eac1ae71fae768cfc103680b0191306175a5534fabed4ac33381b9d1b0b2884ec9180d4fb92c8db8c095689bcbf6";
+  sha512.doc = "c43357d8f3b490840ca62f7f495d53bf13a187362d7caef89caaafcc2196b64b88ab093ba86d55e209ee3fc5d1c3ded0b2db6b1fdbf70a74d87233f1e54c703a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2022-04";
+  version = "2023-04";
 };
 dtl = {
   revision = 62387;
@@ -15272,14 +15484,14 @@ dtl.binfiles = [
   "dv2dt"
 ];
 dtxdescribe = {
-  revision = 65445;
+  revision = 69348;
   stripPrefix = 0;
-  sha512.run = "cfae5c15bef8b3d75d31f970c47ccc63cb261820d4d19e55c48de6e13e0133e50d60713e2e691856b0fd803834190bd76fd13e47094b0e8f7a74901f882093dc";
-  sha512.doc = "6390904b004eec6a9293b31b8467bebd4910702c26a270de573ff9bd404715d27d6bf12ce7f039a213ff545ca2667fe6a568df967b79f8d9142c58d87ed708d6";
-  sha512.source = "88d81f7d55bf3e5bac2811b7f7f9c00f68de32f307e0fd7c6d2e4d6537caf46fc60f4d14b0c5fd46b94155d2884b48a8222ca4c86fa05dd316952c78e836ed93";
+  sha512.run = "1fb81c09edb0bea837328d7518f1d1aa8f810aba84c78a08e1047aa3bebcc79e4a61a587f4453ef5875efe0019ace6f8303ed78fcb74b378eed6d153590b7d1a";
+  sha512.doc = "6ee725f86a622df46e1191f15d42fcfc2cd19440d837df9146a1e751a7e1770db406be647c7e30572341db5ac7da8fde24685be385830bd8527b5fdf6d74f483";
+  sha512.source = "13ebb0a68a33e646f2b2ef3b6f2fb92127c94ffe8123ed53bcebe95c9a13e1bfb167d0bb457ba1235de95c353ce2fbdcf396aa4af21eed2a9072ba5e42501a96";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.07";
+  version = "1.08";
 };
 dtxgallery = {
   revision = 49504;
@@ -15383,9 +15595,9 @@ dvgloss = {
   version = "0.1";
 };
 dvi2tty = {
-  revision = 62387;
-  sha512.run = "1dd9556f0b16e6111c1d93ec18fcc850a92b94298587ebda093d27d2abfb0e2adfb30afa64f8cb2d6e651711f4818ff8a6e8d85007c30e0130278ce1ed6fcaa3";
-  sha512.doc = "396fefcb10e6f44b841ed0afb6604d9ffede1ec9f4bb180ddbe09cf3d2f9eb3989658d8976e3e3d446c186933f22d5579cc2ead2047fa56dc066b2aa65bb3670";
+  revision = 66186;
+  sha512.run = "1051c3448703fdd6395d78b0d8b7658197da6114fb7455b31502bad5c2eda24fd4eba2ceaba1f65d106f981bbc60caf9f3bd0db29403e898b293514d086bf91d";
+  sha512.doc = "3ee736f5fbf91472008a5c8613c0e629a9f76f61fee4c4491b67045ddaad7aa2f89a22937b172e058b072ae1a013478fdf5a9f68dd2e225e8a8e77c8e3b3a289";
   hasManpages = true;
   license = [ "gpl2" ];
   version = "6.0.0";
@@ -15395,9 +15607,9 @@ dvi2tty.binfiles = [
   "dvi2tty"
 ];
 dviasm = {
-  revision = 64430;
-  sha512.run = "bfdc888c7a69d103d9c4548ca0465223a4e16be51a5c36f4c7a9d1064a553f60e6fb5d197a6be72e2be076c5012d7d3c7f871e217777d0be0c0e4669c1602a6c";
-  sha512.doc = "c1be5541992450e6519c1768ea21d342c5e41fb4da6547828c89c79bd8abf77634ae76c3e5c06b608172234d117f5d5839600031dc4fb0cbbaa493d0bb1154ac";
+  revision = 68043;
+  sha512.run = "aa75c4d37cce8087658b66f8559cd31add027eaaf9b4fe4075f42f1bb4cbd30e57ca1125c8ae42852d17d51709b6c368bacc7146f16dc4f0d2ceb56b327dd824";
+  sha512.doc = "116a7b02005ced75ae3e712de7d66513ce7d6d3ae9ee4e6e94b347d6000b27bb58d4fc1cf76cec7f19fd7cdd316f42c02e8ad7b8e0f0ccf88d405e17ef2ff155";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
@@ -15409,9 +15621,9 @@ dviasm.binfiles = [
   "dviasm"
 ];
 dvicopy = {
-  revision = 62387;
-  sha512.run = "9932e2c5c2c3c0ddf4c874b81441d8ca740b851da75644bfe20d0a4bde8d8bd062829423680bc95b6b53c83ed05bcd3148330d273c1cd1c3ab93dc95ca2265ea";
-  sha512.doc = "e081e3971664c8322568481d87b5723bce54320c796f928dfd1f20f7e65eddaa2d9dad65ff2775ac6d5cccbc36a1ac72e3f33198c20008698fdbcad713638dd5";
+  revision = 66186;
+  sha512.run = "60f44492a3d1af9686de3118af37f1d054068527f50765e21773f76ec406b4ec0f419d6298dab6b5d33e2fb740bd740f2037f711e8993bf9d3ab8f611bebb2d0";
+  sha512.doc = "40dd53fe878937846f003d3b72b7d474c13ad07156e78679501d01c020380a3fcc450aee7a72c0155a950429c258b8fab253a7ce3043d58d88300d0c1037da56";
   hasManpages = true;
   license = [ "gpl1Only" ];
   version = "1.5";
@@ -15420,9 +15632,9 @@ dvicopy.binfiles = [
   "dvicopy"
 ];
 dvidvi = {
-  revision = 52851;
-  sha512.run = "d4589c7c034308547b4970104f6396ef24a15be22e034ac2f4f04a1004915c8d477e64e2c4b61927f43313b90b063602a4bcd45afb1bc33ee395e0b7caef202b";
-  sha512.doc = "865f4e96bc8ff13005350800014ede4c95671db1c45f35e37b153637c23834d34054e3aac1b6033c6a219f9f123563b1d0cc3093c901f67dba7e33e65ba81646";
+  revision = 65952;
+  sha512.run = "81c58f4e1352a8e5133de1ad86b6b37c47f9b0d29307354001693ebc4975c30808e349c73a477283a16df4219fd5702b733ecb5abe2043aff1d1b537b7fa6a3c";
+  sha512.doc = "b571021445b822e9824782ab35a0743ca23f69b809354dea6676c58209a451be5bf595641fbcb461211e6dec15e765bbfaf8164c0ce1ed4204ea72a2073ecb92";
   hasManpages = true;
   license = [ "free" ];
 };
@@ -15450,9 +15662,9 @@ dviinfox.binfiles = [
   "dviinfox"
 ];
 dviljk = {
-  revision = 52851;
-  sha512.run = "7f0fff6f850f22788981370dfe9759f8d1ac803f75e6355c582eca83ca3940f64e3c32c32881234e25d8bda59e47a4f236751c9464dc41f93c67c16cc55082ef";
-  sha512.doc = "82d28f1adfc368582a5b1d05e2e73ba99bd05d51f9daa972f5ca753905341ee1d61b9e15d402b3017bfdd78bd64c7c222794bbf76073517f96ea1b9d7a58cea6";
+  revision = 66186;
+  sha512.run = "0d34e837c0f67ac43dd8ef5bfb9a11d2821188ef8259f41b0cf9454bfa6641f956c21d63fe15fbd68dd59f89c1da820cab4ec5c4579fc0255a771c47010821cc";
+  sha512.doc = "4b5815d766a41eb74125269e297eb6f7d1626d68b3f2cf9d6c4f8734721e3c71b63e84e729c39fef41320e4f728888796e421bb5c7ea5ffe76cd549400d18d37";
   hasManpages = true;
   license = [ "gpl1Only" ];
 };
@@ -15465,9 +15677,9 @@ dviljk.binfiles = [
   "dvilj6"
 ];
 dviout-util = {
-  revision = 52851;
-  sha512.run = "a9445602ac5a3663920f8c7d428e833b0451c3e80203be57cc6fbdda5db5f7c89da75cf58e74d56c4ab9cd817fc9f080a056ebd045828a0d5b034108cda61bc5";
-  sha512.doc = "61f86a23314334d7faa4f1ae0760aea6c5e5f77754a6a9b1d5952f09e3e15d3dead73a9f72ccfe9b9d7a022654f8d2e1e6e3051dc12bff574b6f053cdbc9b598";
+  revision = 66186;
+  sha512.run = "684f5efd93c0c12a07b753f169f44e764b01e4994faa86df8361ce38c15675a0601f61bdfc9702508f66273ac8c69250db65fa0d10d3c544fb78fcc824d4ff3f";
+  sha512.doc = "d10e8c9343f9065499e2c06b5eecce4047730875ccee29d6a09d1608e2334f7310282cff765c88c7da8ed8a52816910c79f3fad58d118f047d04b4bb7ebf44ca";
   hasManpages = true;
 };
 dviout-util.binfiles = [
@@ -15475,13 +15687,13 @@ dviout-util.binfiles = [
   "dvispc"
 ];
 dvipdfmx = {
-  revision = 61101;
+  revision = 69127;
   deps = [
     "glyphlist"
   ];
   postactionScript = "tlpkg/tlpostcode/dvipdfmx.pl";
-  sha512.run = "6dd78f4b5cabb51c3bd9988fa46bf90a5a79b3d3293257a4c563a8a76a5a03eb167ce3ec0d4ce6ed05412a551eb201f2379a50a97ac5355ebe833f7b34cee4b4";
-  sha512.doc = "00dce9b36eefd1788bbe455b2e5104efd9afc8bd891aeafb2cd9bdee406eeb25ab520e42e614e9d2363eb6a7273232bc3c4805bacd82a22099c5ffc438e852cb";
+  sha512.run = "75703f600365c90379c5d009e00d35d2e514a76b2556c96c84fc2a717287441af419a26fc9ef087d111f2e77c7180f6371ca2ec33b66052ab63ca3d11f48e788";
+  sha512.doc = "d2fb71e116470d2d629613401f448ad9aa8cfdfa9ada68ed324061e4ac614efc4fd2c4ea2542c8fae32f476b92aafbabe4a5be648f28f16708c43958d7aa99fd";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -15496,10 +15708,11 @@ dvipdfmx.binfiles = [
   "xdvipdfmx"
 ];
 dvipng = {
-  revision = 62517;
-  sha512.run = "d24be610a63a9df22ebe6f53891519ab77900611d1159dec5e97b27160f3552b4cbce42b575a036125d2b15910a72cb5e3793a3409c5d0f4b1df0c2433e828f8";
-  sha512.doc = "976ff6c9628fe85adca2287f04d76f2c1605f243e28b4d32cb1ef9a90d30dcae0d202e6d5156914c204fd42b0a66460755a89f7dbdeb9ec1ccf6010cfe8daf78";
+  revision = 66203;
+  sha512.run = "a1693423389d56570a3fa1ac1eb45bffdef5fa9bf26d738adae1ac2361fc9aa7985d4ed0908b5f8aa49e2425da9821989a61a3ac925ac4432c9caa49f66a95dc";
+  sha512.doc = "a4473f728047cdf06743520a5cd4c79d7aa41818c44291abf4781f04b87822b03fe5db9f42d489d7542ca259070f71a3f255507f3dc8fbe772e30da8cc88722e";
   hasManpages = true;
+  hasInfo = true;
   license = [ "lgpl3" ];
   version = "1.17";
 };
@@ -15508,19 +15721,20 @@ dvipng.binfiles = [
   "dvipng"
 ];
 dvipos = {
-  revision = 52851;
-  sha512.run = "152cc45942bb1d241008ea0924f1e96e2329d6fd4228be42dc6dcb9eb28081bcb3d80e407e9fdf0560e93d095fd07351cf073f14d4a4c25eb984613fd9189826";
-  sha512.doc = "2bf3fd5bbd7b6e1fb8a263dd0e3deef358bead727df5de280342376225fd7366ff470b9c2fca8f763890d1047fe2c7a5b138ade1b5fcab383c8113e10f245199";
+  revision = 66186;
+  sha512.run = "9e949fb402facda9c30fa2f388b80f2cfc530670b33cbd78559e4449fa6004c5d4082e4fb895ea397a334a333e5d5ae1a4f66fde3885f0a9eb28c9d9ebbecd0a";
+  sha512.doc = "254a1db41636608a133e7807a8d4ea8ddd99ac646f35b66a43205ac7fdaf4a15c21eafbb85e23a182506e509895776d1fcbe63b3b8a7f197d577c6405ece5c44";
   hasManpages = true;
 };
 dvipos.binfiles = [
   "dvipos"
 ];
 dvips = {
-  revision = 62387;
-  sha512.run = "a680a4685d3cbb429ad9dada0d48098f7755253ad1d7c808731f0f4fb4c37971cb937a9fa68bcecd892de93cc35a8086b742c86338460585c2912f36d00ade67";
-  sha512.doc = "a6acb780a45663fb21976622d7b6c3ea8d4adf1fe405ee97cd7c4cf09fa49b59069ba72b2aa14b53d3ba631b37c5cbd979929adaa274a0bec8b1272d85e1cd43";
+  revision = 66203;
+  sha512.run = "fbaf1dd979ceed4f7146d8aebc31ba7d770a8389b4ac214086db5951c485a2a3e3a62b2772394c8053444dfb8de0d22b3501c2ee3ee1e4e7493a1df5a34cc275";
+  sha512.doc = "ac2518c20c26dcda42df79be79ed24e2c021af2084ede43f51a5589b1023c9c94a307bd0a4742880e2c89d7620b2889f3a675e30a449d699d15db98922b0da71";
   hasManpages = true;
+  hasInfo = true;
   hasRunfiles = true;
   license = [ "free" ];
 };
@@ -15537,12 +15751,12 @@ dvipsconfig = {
   version = "1.6";
 };
 dvisvgm = {
-  revision = 66534;
-  sha512.run = "503ca116be0a87f2606c9e898a591dedaa7a078713e30673eae5dc748fa4c4f13ce8c81852c959e84c3c45766daa565222db59a66315b0238e716e762e19eb31";
-  sha512.doc = "faa5efd79a8cf665cc502825ea185e1abe8ce5e466b5bf485f90fc2a21a1df564ce7f9c91e6db42e67acbe78bbeb683dd9a94231044503c8082f68c33d9f8ec0";
+  revision = 68950;
+  sha512.run = "cab242a5b7fec4713015b2d3b57f36256ca9b10d606f4a11803d7c2beda9486a1839e69cf58248078d08a89a6e4513d0d4629901c828a1d154cc30f1f7059797";
+  sha512.doc = "fbd752b03b37d62e00e041104e547b1e862908f3ae74bcdffd17cb7bb74c6de3998ce8beaa32726f42aa31dfc1e4f9e85601a39b62f10d8c7381816d3c4c44db";
   hasManpages = true;
   license = [ "gpl3Plus" ];
-  version = "3.0.4";
+  version = "3.1.2";
 };
 dvisvgm.binfiles = [
   "dvisvgm"
@@ -15567,20 +15781,20 @@ dynblocks = {
   version = "0.2b";
 };
 dynkin-diagrams = {
-  revision = 58758;
+  revision = 67267;
   stripPrefix = 0;
-  sha512.run = "d415f924c580e97ec653f4bb76f911acf4a800f48a078d95d070aa5583dca46b52c1008a882b255d4728dacee8ef59acebde6dd84c05d4c1d9443c4db835bb52";
-  sha512.doc = "b31e83f3901040e27bc61c82cf687e5b98fe8b7c5b245506485fe9df7b14d9a65633bfeec30ade8168faa7262fef69a54b8848f473c02aed02c81182d2efe5c0";
+  sha512.run = "4c7d15e3e04cc562e1f4a401546223af6e53f47f8edcaab6e82bb84246bb6c72b1acc15437402b161a123d11c21ac350d01b33ef7c8d8b7bab6c8dcb9baf7723";
+  sha512.doc = "94d9a69e3603664d9f81da2887dfdcdb70d9318ecc13c0232da64cf23e6d6dbcd072807035771c519d58283ac40f306901db8699061305b3c97a3f7ee42ecf65";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1415926535897932";
+  version = "3.1415926535897932384";
 };
 dyntree = {
-  revision = 15878;
+  revision = 67016;
   stripPrefix = 0;
-  sha512.run = "8f8d568cc708e62ae1217188acf3deef05d7bbacf1da04f38c1f5b08d4b2bd0ee465021c923ed314ed284dd2234dce5079b7918c12d3bab72ad5f91749bdfe4c";
-  sha512.doc = "fde82bf8b97840014737734fb57eec7c37b34ca0d5eeb1a66c27dab16d4a5f1c4a7f7c10fb9c8bb98f3ef56a15645da0ab66cdcb658f69ea32eb84625b25023a";
-  sha512.source = "57d76ba3ff2e85a18fad69126a87b02fecf6f994de63af530831d63a0405abbcfad5ff7b33ff0f13c257b85bea73788e72a4347337c7355a25b85c5e762c25dd";
+  sha512.run = "e8591951639020398e8f6bd892bd2d43217871fae4e94ecb09bc6005f1857858edb5b3b9330c5d08e8490598fd2f3d45bba4d99a9b33de464d0c5e6478399689";
+  sha512.doc = "c2b2368a88648efe795a633f00ac826fff3b53029f557a4c5eb7dadbe882f560c768754adbbac09347b6bf44ee3bf77ec4b5ad57e9d5726e2c51519e0d02814c";
+  sha512.source = "8df01c048b52cad5fa5862b16d16672eda36158936af1bd8254ef6b9574ecf84263f5f70a466f2846e653e1565e2f57f297c4b05c281c16ec72a4fd1e1eb8f25";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "1.0";
@@ -15638,15 +15852,27 @@ easy-todo = {
   license = [ "asl20" ];
 };
 easybook = {
-  revision = 64976;
+  revision = 69411;
   stripPrefix = 0;
-  sha512.run = "3dc7b87455bd9258ae67ef30d2abd098a3f86c931c7e572d0660c43a1b5832d4d3580066cb315afaed026a25c6edd49344598427d4540087d91d43e3e202e1e6";
-  sha512.doc = "008b2c7b9dc5b4b9733d93e7880591da70ba7a3b146fc954b3ad07b2586a1594e901829e33ad33557794670adf9a5a1ed3035a158ea41a7d217f613cd57a6856";
-  sha512.source = "43fdaa65f4371b73b2171d3c6ed8f583a39f224fbe456a2d9c492454e7f6b3c8adb9ff98588d8b859d981fc14fb5eef02ec8827d57225b393b977647d2070a49";
+  sha512.run = "384ca42bbf351ddcde2675f202c4fc8d8413b074415d55f80858e982d8cc487583b00618b8a9a0fa084305b0bc425438c5859a18e8b2127d7cc58976049148cb";
+  sha512.doc = "8a9ec5d3147540f5ebebc7c85a2c1413a86d96d5961d7dadf9f24179bdf546f7645dc157a7f1b3ec12daefe243dafec828380532e867958733fa554baea45dcf";
+  sha512.source = "aef472cd48badc742213b17cfad43b5c5b59b4bc185548a3332a733542301f6cb6f9de10b60d6b7d860f6e2e62c43b9338a14eb5683456563e38377d84bc08dd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.71D";
+  version = "2024G";
 };
+easydtx = {
+  revision = 68514;
+  sha512.run = "f3297c900999197a5acbd73b931bffb21cc989296777b4884d62792d283490e46b06282ae5ce0cf3b0411690432dfa442a4f00c693f4d6677b9ced6037234914";
+  sha512.doc = "2f9fe3dd6b2ee2d326a05de9f38966f26ea5baa154c3d7fdecea4af944dd041858b9e66f593b1a246bc6a3fe7d44d64fe1ddcb72e2495917bf8f4ad38b6531c5";
+  hasManpages = true;
+  hasRunfiles = true;
+  license = [ "gpl3Plus" ];
+  version = "0.1.0";
+};
+easydtx.binfiles = [
+  "edtx2dtx"
+];
 easyfig = {
   revision = 64967;
   stripPrefix = 0;
@@ -15713,10 +15939,10 @@ ebezier = {
   version = "4";
 };
 ebgaramond = {
-  revision = 64343;
+  revision = 66604;
   stripPrefix = 0;
-  sha512.run = "13bfbc47037107eb093f5272cfb2018b1fd69bc374d8b1753ed2eb2565bc5d90960449cdb2dc2455231e590ff301e10b296140bef88189d1254eafa86e505e2d";
-  sha512.doc = "f5195c8ec803aba0dc52690f63dfc497ae5196fca7720e39181ae364826b417eb772926e7b859607e2b8408c25feef63c9f9ff17e5ccb575861dd6ce40aa8522";
+  sha512.run = "4a676d0016c5b3c4e513dca01e7e2f1b5bfbc061e111935380af4937bdfe2493927b226b28972c060ee0c09e7c27c6bf828ea09151eec0b8df67530f62e30aac";
+  sha512.doc = "82713ea36e1eeb1d2673a049d9ffcae97627406571e6e8e47fa6a6853511beb5a5eeef8a63fbe88e6c79539b1fbde880d0b2779f6f01f20eb7b1c7fc716104bc";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
@@ -15730,9 +15956,9 @@ ebgaramond-maths = {
   version = "1.2";
 };
 ebong = {
-  revision = 55475;
-  sha512.run = "2553e46f91021de4fc9eda99ff45f8efe9b20b0663912b4339b22247d1bf7125f9be398661fe24fa2e3fae6a220025d47b05f4680601f7b4842d1111a6128d8c";
-  sha512.doc = "22d20c89883c6cbb95f3fbc3da3f4c5526c9c22b15ec35828bb03a1edf068573de0b35187a893c8356b50fd59c93ce4231f02ac4f15de4071e6ced73b9e44a57";
+  revision = 67933;
+  sha512.run = "c38185b31613af4d6b27ffb5442cd404c1eb05669605a2140db85ae3074a3a7739c3e375e3cc16736f9c2889224f33f685d503b3908f4009fa308be7737aa499";
+  sha512.doc = "a3337ca9bfe756672a66554b88feb59a49f66ecd7d1aec3702d74f29bc53ac1052394bda679a4cb4aa7509c5eb712938ed943a28c6f56a749c926b8d566eecf2";
   hasRunfiles = true;
   scriptExts = [
     "py"
@@ -15836,13 +16062,13 @@ ecobiblatex = {
   version = "1.0";
 };
 econ-bst = {
-  revision = 61499;
+  revision = 68761;
   stripPrefix = 0;
-  sha512.run = "f236b3a15da35eb09e878d56f6d7c4cd632b71f262b9c470c3c64dd96aa43d305a44400d93786b8bc7f3a59773812c4ea03d6e8901cd1e7e469aa36e948bfa26";
-  sha512.doc = "60761364032deb253bb69aaa13fc10d6e8ec2747fc6af77285cb5fd53f250465d1e461110ae221050fba8150a5b1b5db9d4879689df00a33f9c8106e3e385f4a";
+  sha512.run = "e46ee69626bcf1fbb051d66572e1335496bf7981023540707cd267624798d4b4e75022cd85e0bfee05a227cb20b65c3b70053a4262b662269f905ee89569d2f8";
+  sha512.doc = "dfda5046d25922e563df6deb93a9d4402f75c883a8b449f70430c7ab7465e8d8cc392b585e5aead7fe499ed9143d5928bb556ad7ab4c563d54be11270cf8cdb7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1.1";
+  version = "3.2";
 };
 econlipsum = {
   revision = 58390;
@@ -15985,6 +16211,15 @@ egameps = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+egpeirce = {
+  revision = 66924;
+  stripPrefix = 0;
+  sha512.run = "fb91855cd9264b72df852d4adc5d369b26efc5305c032120013d6cb18e99a94c8123cc7c9a4cad86ef3144609f0a34f3645597c91aabaf165a51b903b24c9d11";
+  sha512.doc = "c78830f07e8e3caf99f51b53783112fbc7b6ada78ecc284a53e90c532331ce9e4430540e5cffed679b447b9e23cd5bb25c4d437d07a127e65e142322cabd65fa";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 egplot = {
   revision = 20617;
   stripPrefix = 0;
@@ -16030,13 +16265,13 @@ eijkhout = {
   license = [ "free" ];
 };
 einfart = {
-  revision = 65475;
+  revision = 68376;
   stripPrefix = 0;
   deps = [
     "minimalist"
   ];
-  sha512.run = "b9a38014bc6169a750e4880048792f8c4d2e1904528207214254bbdbdd3cf140c1e3bb6bc8974001c32edc5f93c5a9a07b7d839d578cabd9d4ba3f5e5ce4c374";
-  sha512.doc = "30d509c34925f252d55e47255c7deff36d1b922545599fa35fdc227a4a5dc5588649486d10d083a4602dbcc99a1fe953ea66d46aa6b566399334b33b45ff57df";
+  sha512.run = "bdd96c338f02a27d430db81f665dba86c112266577b2b62c0009637324b5560dcc48b30c3f88a45217ba8a094c342b8ccebce54941c61eb0d28c37e966d9e861";
+  sha512.doc = "8727d905963cfb0955216f8d42c7a27404db7ea188e008f654e130359fbde9b33adedd0e9c723ff4fbca49e2ffbae3f457aae3e5864715223c80ac55ab19bca9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -16196,14 +16431,23 @@ elsarticle = {
   license = [ "lppl12" ];
   version = "3.3";
 };
+elteiktdk = {
+  revision = 66821;
+  stripPrefix = 0;
+  sha512.run = "01ad0912bd93cb849013665046de7ec3773d90860b92c98201a7b075799cf6adcaad6f820abe95520e848f088c85b71afa78e49067da8a1abdea093de4476935";
+  sha512.doc = "5d0fef08a196fd796fcd3ea74f5385b83b361c8e7f1bc2bb4a5f663a5d5a86820b7bea137790a973152e5f475008423ddc55f18613da3bc48be211bb79e3dc9a";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "2.0";
+};
 elteikthesis = {
-  revision = 63186;
+  revision = 66820;
   stripPrefix = 0;
-  sha512.run = "0cac3096da5ad422ddd6a9ecd72234036ef5f73279f614ea971fda8141e745e15170c9667153a11cc87e5d79d929786566561d6b2cd4d135e3dca808077ae2e0";
-  sha512.doc = "4f8b437db0b5842ddeaf409fc480fc52580d78b9274fece82e762d40279e39aa8b8424e9c80103a88abfaa72f3136b07044ac121e5a466b27e5e7331bf6bd7c0";
+  sha512.run = "e533636f732fead1525c3264f96f69e19074728955772c92c381dedc42e0ed5b14bbdccfe5f9663a8a54a530f52d0c8e2fea556778751214cd626372004872cf";
+  sha512.doc = "a3f8102e22a12d0a970e881d3937cde9a4f71550132067ef844fd72e35c6210dd6feef56d236837a2183fa5d749287dc3c4db4cad00dd4c09cbe47fd431a7571";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.3";
+  version = "2.3.1";
 };
 eltex = {
   revision = 15878;
@@ -16290,6 +16534,16 @@ emisa = {
   license = [ "lppl13c" ];
   version = "2.3.0";
 };
+emo = {
+  revision = 66944;
+  stripPrefix = 0;
+  sha512.run = "633c92dde16b5170d5ea27fbb5e72e865300abf27054cd167652ebe598b90a8788d129c950e5a230f75201648b25aaacfb6b47aa44e994d05549c31a82600da5";
+  sha512.doc = "e60b38c75c23bb4ec5d453d76fd2c815abe712d1c602eac6897eb1ec9b51f1d6a964fd5aae5c7ecf17956eb9d39104708e887b0efab0830b72b9ad37c8c79af2";
+  sha512.source = "79cdc96d441c82b4f59b6f2bec0fb82b047d1b9540b0f29946c2d41f355118e3a9cdad2da2463ea4c9a0e26ca832a98db5b88f4445baf6ac41abff8b443ad1d5";
+  hasRunfiles = true;
+  license = [ "lppl13c" "asl20" "free" "ofl" ];
+  version = "0.4";
+};
 emoji = {
   revision = 59961;
   stripPrefix = 0;
@@ -16513,8 +16767,7 @@ envlab = {
   version = "1.2";
 };
 eolang = {
-  revision = 66283;
-  stripPrefix = 0;
+  revision = 69391;
   deps = [
     "amsfonts"
     "amsmath"
@@ -16524,13 +16777,17 @@ eolang = {
     "pgfopts"
     "stmaryrd"
   ];
-  sha512.run = "992fa67344e812c7eeea80ce93f1bc7327bb0eb1782e65fbc8a31b2dbab33059532a2ee6445ee5768e15cf5ee7945123d5e3eaa527e72dbeb1a2a16afc2ecabd";
-  sha512.doc = "62a7b5a9a922649a035ffbad8dff10e2e1b97e3a3ebaf94b222142d94b9d20106d492b1fc1a2f349de1fa782b3bac1aee5a9ad3d563f51fbbf46d8037a81e07c";
-  sha512.source = "652e1a38b1639805a4c980585c8424cf3f501e9a22fbaf52738b21b8363741d013474158f8866334e335aa839c519070595d318421cf29f4b60756e11dea58d6";
+  sha512.run = "10c7dc6dd0b824fb2ab22318b6ecadb592abb552b4a6fa58fb89612add290928b625f9f6d6ac3bd5b1202662545e51bbe0d8b154025135f92c7999341876b976";
+  sha512.doc = "6802a32f5abf01bdf32bdb7299e82ae2740e8323bc1ce0fb6dd5d38c87146ac52abd4fda69bf28dfb8a10ed09223d4c3f8d320510131c5a81f5262f2e81af9fc";
+  hasManpages = true;
+  sha512.source = "97ab60d5e21fdac9aca815b6acacc31fc534474fe6037256e9b18ce4cae3830ad39257f593a95ebaf35018109286140c46769990f60f659aaa78490bfe717cfc";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.12.1";
+  version = "0.18.0";
 };
+eolang.binfiles = [
+  "eolang"
+];
 epigrafica = {
   revision = 17210;
   stripPrefix = 0;
@@ -16610,6 +16867,7 @@ eplain = {
   sha512.run = "fda8158ae2bdc96187b6e6ace2a94be3e0f68201adbc02553b48a3848481352ac10ddd72babcbc2835e089ce751ade7dfa6cfd1c642c94155c2861db865f5c29";
   sha512.doc = "60902b2422d2f5d7570a19daf7f586df7882505d7c156539699a0aa47a0f3bde5688dcbdc92c8a6a9878f11392bc9b9f147626aad230eecd2740d56f104928ed";
   hasManpages = true;
+  hasInfo = true;
   sha512.source = "015de2eeeaec99bd15882a190f9ef3f2112520f8c591c7e6d2351c52d8690b024750adea426bcf95f438aaa20c97dd321881ac7212ff181e148337b57f6d386c";
   hasRunfiles = true;
   license = [ "gpl2Plus" ];
@@ -16663,9 +16921,10 @@ epslatex-fr = {
   license = [ "gpl1Only" ];
 };
 epspdf = {
-  revision = 66119;
-  sha512.run = "f155834a9636991c8ae752f61f70bdf22ab3172270c85aebb05462cf26e44f6e81fb83842c8515bfa54e632a3beab8bb91cccf2b5eef459d77738443c77df56d";
-  sha512.doc = "5d06f8a4ef295e0fac8cd1dc73ff98e266dcf4394ed76223c92d20758fa8195ef5bea9bde49b1a247acfdf67aa7717092f978b55fc4fbc8665922487d57985d6";
+  revision = 66115;
+  sha512.run = "3dc467713b1d90b96a8fd3903effe209fe15be82463a1ef4693e29e7d145220936bed0e75dd3824a1e520f778ab9b96fe29389037e14690352db136e642f6a2c";
+  sha512.doc = "ee5687a3add6773e127a1e83c91683b5c6ea5e37dd98ec5f5558a32015d292c31f1a456c985ee5d2e4201c0a47324dbac4a7129529236438676f587985bca64a";
+  hasInfo = true;
   hasRunfiles = true;
   scriptExts = [
     "tcl"
@@ -16688,13 +16947,13 @@ epspdfconversion = {
   version = "0.61";
 };
 epstopdf = {
-  revision = 66465;
-  sha512.run = "7640431f06879ebf5f557ec298f57dbedfa8f19d332cd05302bc09b69a0eb676f89597fab7f2d7d6358d023bcd3888e6007944f3cf66a07c6a852fe5b064c800";
-  sha512.doc = "eb66e71ad2ef95d603f48bc70a997fe17579e57c9e0114dc33dfa30207f3babc28989f59f8cab2299ec03d1b3665cecf53e3e07750539906d4a2c374c3424d49";
+  revision = 68301;
+  sha512.run = "fcba30848cb2a5bfb12cf89e1ee6d54bb89e7516789738e1fc7d9b1d47c403ff6ef1d679c9fed214669e8d06fc5e76eec2af0ef513d2649cd1d44b535287455b";
+  sha512.doc = "9d9068ce64a2e14ad72de11c6a608bf9379240c0fab77a7bd29fbf2774515c5eff12b375a592d3ad6c8accb06021309768c3965284d18b89fb0a57487e2dba06";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2.31";
+  version = "2.33";
 };
 epstopdf-pkg = {
   revision = 53546;
@@ -16812,13 +17071,13 @@ erewhon = {
   version = "1.12";
 };
 erewhon-math = {
-  revision = 65684;
+  revision = 68990;
   stripPrefix = 0;
-  sha512.run = "b836d20c767218c485853f4f83516bfebe97d54adf37f031fd5ca04813b5cbdf40ca7586bb0725d7c893475fbf849d8183fd5f22ef9bfbd5a4f22642e27e2f88";
-  sha512.doc = "8247747d74e7ead936ab648358f6c52a539777828fb9fb157bfe22cca3191f467709a4a6264a3d3c55a0731292ec010bcf71acdb542e95998fe8f521d4364bbb";
+  sha512.run = "30e5463f57ce8562c94cd6ed302c9b9bf5624d34a6f5b2374d691afc097edcaca779d45d1f6a22747c2c8d920f6f45d9c6f5f8a3d09123b27188ba84c52caa18";
+  sha512.doc = "193b4ff5e877b3f8abde9e81abe208ff1545e77e81b7d78a4d19a858e4722177ac8fe0453bcef672c348c7703fe1c53891e4a520348d11debb43102fd2450864";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.56";
+  version = "0.64";
 };
 errata = {
   revision = 42428;
@@ -16849,13 +17108,13 @@ es-tex-faq = {
   version = "1.97";
 };
 esami = {
-  revision = 61596;
+  revision = 67707;
   stripPrefix = 0;
-  sha512.run = "2e0c1bd441ccb4376d1dda69f32cff55bf4d043315dd2c004bf6bebacdc510ddc9a1347bcadbfb96dea7be94b6d59ee050746afb04f50196dd7c99937b7e8505";
-  sha512.doc = "6bc50f4083cc401278a526c44a76e5a9569d0cbb7280d38270e95676fa359c08a25779709576c1532ec9296457d970d2abd82eeb78b2ac4923caad9559da77ed";
+  sha512.run = "e5e2656b1f1dcb224652ada214871004828ac04c2ad316250e4ce1ae54f509df5607248eadcb018308ad2eb14ea761224962b751c7998b935540b4de516d4e1c";
+  sha512.doc = "7eda39cb0372f0f500b05196d526a215efddc58aadd1ee6c66504f73129936fbffc65d80183662de665b6fd54d4a9eeb5bdb2c7d5e11ff645c712ca6d712fc18";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.7";
+  version = "2.8";
 };
 esdiff = {
   revision = 21385;
@@ -16935,14 +17194,14 @@ eskdx = {
   version = "0.98";
 };
 eso-pic = {
-  revision = 56658;
+  revision = 67001;
   stripPrefix = 0;
-  sha512.run = "d4020b6d7f1ed44ecfc11938d604595e48dc32a24e2e67742016fbc2022f19ab63c759ec03030d7d3a996cc00f7a08ce8cb1354d0e9234f116080d732e4dc5e8";
-  sha512.doc = "96fcdb612c8473fffe672a6c443c120b2cc8dafec5b43de132cd8f758d85bb504ea14285af121921afbaafea7c6df99e32f6c50101d1d76900b1aeba38c3010a";
-  sha512.source = "86655acc2d9d11084dea3791a171b01e18715cce77b2300220764eba88d4a049a2a6bef6ff7bc1b90fdf337379be065a2d998aa32e42a0dd04b21f0293d1c14b";
+  sha512.run = "ee2a5c75fb02f94feabff9107d8e183cb3ce2dc7d38f8c82b2748a67718286a824e839443a9cf00edc142148271c83ae08017f2d5b8e6bc01faf50455187e75e";
+  sha512.doc = "ed03cbb8e57d28abbf3260c4a97c10833c89a603e219882920ed95fc2eab404c461a9c89b21772757a37245783c3ee10743f7ed248d4915d04a0619508469095";
+  sha512.source = "988e2f00cec99ab76b95bbb1a64a47bd11a3bc258bf04fb26db8825f381922d6d4db5f4059e09d9969c6a00926a8f6b4b235be82027368812fce493f5f16854b";
   hasRunfiles = true;
   license = [ "lppl12" ];
-  version = "3.0a";
+  version = "3.0c";
 };
 esrelation = {
   revision = 37236;
@@ -16993,13 +17252,13 @@ etaremune = {
   version = "1.2";
 };
 etbb = {
-  revision = 61872;
+  revision = 69098;
   stripPrefix = 0;
-  sha512.run = "986a063266a6081571e9a9db60674f1cc795f15b32eaa954214b4620b29cb43043b6ba6cdc9cb02f20f809a65939dcfb157590bfcf867d999299ae34520f9f8b";
-  sha512.doc = "1278c7281a247416f4439b9f034d2acab7bd03e47c63038d8a4ac12793968e2508cf562940d0a0b510abc9ceec3517dcfb277cc365c9d3998797237610936613";
+  sha512.run = "e034a9a750043f459b8682229bf01c08b341b4494fd6fc6669e1065652ae9154e0eef74038f1e5f16c2d57390ebfa70056198d563f3e454ee3e4806971a707d5";
+  sha512.doc = "cc4ebfcb831cdd9f02c93248d5083b81a69c59163fec85d469a17841607affb51310858b022ea819055c6bdade821d330599c97838ab9f92de7b8fa4d8f8f0a8";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" ];
-  version = "1.056";
+  version = "1.057";
 };
 etdipa = {
   revision = 36354;
@@ -17010,10 +17269,10 @@ etdipa = {
   version = "2.6";
 };
 etex = {
-  revision = 56291;
+  revision = 66203;
   stripPrefix = 0;
-  sha512.run = "662338c145e84577ee49bd7d1941ade688d07ab8382faec25d6f45891953554e85ab4d531164e58db97071a7950c31b36f9eec8700ad4b43dffef30217f0fd89";
-  sha512.doc = "d7c7cb6c0a8c2056be906761c7f0173c7ec28aa4e910d9546aa75aea79f8a2aedef06d708710135d3f557586990fefd73086b4f11b8b7642a1cbaedde91b1b8b";
+  sha512.run = "419c85187d6832c9624c70936b3ad879987f665e54bf1fb9a7ddeb1096d09677693987b187e8d60691235d721a1b995fbda36351ce754b9c6a2a44bd015c0ac3";
+  sha512.doc = "ae5b1f4d0b7746e294697567da95a400ada069223e497d4ff906d13e4515e879d85532675886ef0d14564604163659c3d6715ff00ff29fa06fd876eed9cf60b6";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -17076,14 +17335,14 @@ etl = {
   version = "0.3";
 };
 etoc = {
-  revision = 66351;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "09d7dfaff6ef2ecb45d65603fcfab0e4fa7810a91d8b27faf313167b763979dbe6ef14ab8fe75c22f978ad5e4ec32240eefe58ed13a85a7c186b5183de7163df";
-  sha512.doc = "046215c38ee4006e519d23ea58feca30b00fb3961f713ac49e0b5743af775d4379c9642d019a0e537874902ad6f0a101d5152365ec5d283a2411ea9a024d1161";
-  sha512.source = "3885e247d5872070c6197e3875e716d9c6bcec91656348ec06678c5def05f02add7440ae253df1ec940cb5205e7bc6eba398ac4b1b312b0da7a7b7f705b2ae80";
+  sha512.run = "ee9e46861d53c0cf3f0807f55a78b2e9c24ed6d5b37037b87f162a297421548561728dbe268927e7155a16da256e61b24c74ee9b1c18addbca937b8c85ce21e9";
+  sha512.doc = "693a6589f33a93e9086342d093b8801235d9e7d8e1729400e4e1069d0bd9457bf8b96c0a946110f12e2cf6ae646dfea81fcb9a795724558f73e53bb87b300957";
+  sha512.source = "0311468458efe4ba2b12bb0917dcc4bc763a1f7e1e6f2621843358afea9edc5a96373f5beb74224df33be1276b36cf53f7d45fd7183574acc38057b31c51f01a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.2d";
 };
 etoolbox = {
   revision = 56554;
@@ -17102,6 +17361,15 @@ etoolbox-de = {
   license = [ "lppl13c" ];
   version = "1";
 };
+etoolbox-generic = {
+  revision = 68513;
+  stripPrefix = 0;
+  sha512.run = "12bb7835b59a33026a0acff3c8f8204bf9b159fa84538332ebd7e4ce7116f3ab0dcdfda075555e595c050dcf96525a67f13ab33757df5e55e21b62c3d08488cf";
+  sha512.doc = "f877ad6a682abe82d84bbd1e9bd2870d80d5b79a63ef150f0eb4cc9abe0cf07c485b59d55281709027d705843bb7da33cff2eac6d382885ba806068a3a651c7a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.5k";
+};
 etsvthor = {
   revision = 48186;
   stripPrefix = 0;
@@ -17112,14 +17380,14 @@ etsvthor = {
   version = "1.0";
 };
 euclideangeometry = {
-  revision = 60697;
+  revision = 67608;
   stripPrefix = 0;
-  sha512.run = "cbb755602a75397494bf745c62ef1a1f9bb0e0a1635a20e9afb839a0e02c7b2041aa1b8364c8f8c17ca5be1d296831a8444f67d74ab8ce415583d7ddf81f9de4";
-  sha512.doc = "2507ea02223d4da14b79e3343f765f65259efe3b6a2558348cf1d2514d0ced1e1e631b84d9dd0b178b3faba455f5bb292b6d16fc9fa9f21e0599d272eaca7f1d";
-  sha512.source = "db799a444094b0e0f708cfa7c4d5ec0cc52a1652254bd28be4e8b8e8325d6aad3ff6bde84d0378ad43abe9d008515205def78657ea7b196aa23010cec46d8f23";
+  sha512.run = "8aaf01108b5d96000d909e3d041a7e9c00cfa85043b25fcf4029238f2570330b2402a2faa4f63f80ed84d5dbd3c12cd4690668714ca1bd75c14673b2828619e4";
+  sha512.doc = "21d80f3152ecf31c62d203b77ec42c183e2a6058faa173163fe456d521e89cc514f83b0ad60684f2b29c7952428670afccda79372bbea1727d797dc78de04bf0";
+  sha512.source = "e48b5ced844b3ad25f11c6afc93fbf5bde4693d9977106ab175c369bfda583c0725aa77185458a88d2e38797b31ff074a48999774ee9ab8cc76480684a815f77";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2.1";
+  version = "0.2.2";
 };
 euenc = {
   revision = 19795;
@@ -17162,13 +17430,13 @@ euler = {
   version = "2.5";
 };
 euler-math = {
-  revision = 65685;
+  revision = 68991;
   stripPrefix = 0;
-  sha512.run = "912d06b33ec56da0103fe7a13ba2f3e95b602842d83caf6d4fee6a55fd47f7134f70b7bf7b07736f531836378a9dd60eedd7a0297de19388b0f6ea997a140464";
-  sha512.doc = "c197e59cbd9035e915649f99605f9165c7eac55143a96b942e43a718d7237aae14db3db3afcff0b05d39651a3d81a544259d2d435ccc8895be9e831e29e18c36";
+  sha512.run = "b248ed589be13fa10210052b13c6386f4544e5cce4327902a3e2ab3b5c2a58a611393c1ecad4f72a1d4a4302b7677ff483a42173645ab3462109f9c25fbadd8f";
+  sha512.doc = "620cbbd6eac6adf53bf9ba95bafaeeffcce2f34d6a94d45a4869b328c237a3ae59f18d05c518861d56859f3f31edf16f191f28fd122ad4c456fb5301c68be96e";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.31";
+  version = "0.51";
 };
 eulerpx = {
   revision = 63967;
@@ -17240,13 +17508,14 @@ euxm = {
   hasRunfiles = true;
 };
 evangelion-jfm = {
-  revision = 65824;
+  revision = 68059;
   stripPrefix = 0;
-  sha512.run = "8f65c7a0bb9731cfa5294015fef8936a83e5cec017162997aac76cbaba1ca215189402f3c8387fc55b569395f6c7b8289a6bdbd7cde235d89484722ea257a2dc";
-  sha512.doc = "2d2d92b7189c69ce30b5ca00900a135fdacff50fb9bc5ef61adb879bf744ea52b3985f948b8c8582169acf577034790436ab606f947c943b2fd5ddadc495bf13";
+  sha512.run = "5839d7899e8dd8a5fcae792fe40e234fcfeeca9a19bec8d2e8ec7be0217a73fbd58066f6d094e37b36ab9501d53eafed7f3220ee1ebb37ce767c8dd3868708f8";
+  sha512.doc = "65447d983cd4a2b112966f8bc9de7f9a7eb2c8f38a9266db5a416219ae8b817f82f62fdc79bddcb2bfe3a67c84c6097975f178bce664e7ac23e2f29363c3df7c";
+  sha512.source = "8f31d019c8db0d9c817e5579ee9e3a31b936e91d0270eccb52ee6bfa544d5aedf8d0bb0d4af5a7aaaf3366d338ee0cc47647e211738d956857f57f28770e08bd";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.0.0_b";
+  version = "1.0.5_b";
 };
 everyhook = {
   revision = 35675;
@@ -17289,13 +17558,13 @@ everyshi = {
   version = "4.00";
 };
 exam = {
-  revision = 64134;
+  revision = 67600;
   stripPrefix = 0;
-  sha512.run = "cb32b9df4d85c1073d5fb7304bcbb2266f8f63006417bfcce81c8ecc6d401a31a5fd3c9fa3031014576f80cc4f82b99b398418c20353db6bf6f74de025eca4e9";
-  sha512.doc = "a916fc60c847df4f2e275a36f1d298da8da8fc3f248b2f1b9c06f184611d2e52ce5b417c7d9e8dec319c382ce9cda76000c7482d6ea68b204e214899133a7793";
+  sha512.run = "99621f442f2a36e661f98e2722776e2e9dc394abc39cd20d45bb6bcff3ed362a942dc79d386ebf45efe053fc6abe2524d95fc85c4c766d241385970fa00e5f65";
+  sha512.doc = "abcc7ead3c7d4847537476969bb708f61430940e7572e078e26baaeb6f2493309dcb996bac0796870825d4badb7bcabc81fc49aa7f4e71c0c816fd7e1ec875a3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.7";
+  version = "2.704";
 };
 exam-lite = {
   revision = 65754;
@@ -17325,13 +17594,13 @@ exam-randomizechoices = {
   version = "0.2";
 };
 exam-zh = {
-  revision = 64434;
+  revision = 67505;
   stripPrefix = 0;
-  sha512.run = "72932cbe9de89515f1c50a37c7b027ad3bb99c7495712b145f4e642e99ee732ce5663604175db2966baaa04104e7112881640dde766102ae8b05809ca7d47397";
-  sha512.doc = "26c307026e5bc483d3e978a1e0e75ad5954bdab7f85ee4932df2b201f7d207dfe43658e544ed8d8d89aa0a76df8f6ec6e8d9ede0ec39b956f33ebae9fb66e9c5";
+  sha512.run = "06aad5aaab885a208b6fe999b595799c2ebf99998f1e341a52f244daf0e4e2bf323f27b4888996755ac64738a70468bbba94cdec94ff8b76998299ea468dfc87";
+  sha512.doc = "076c183310db5094b07c1e9e642a4dfa3e3ce9639a53d0b62bf83377e8ab62bf4b232a0d3446afcf828e9ed0f81be14d3ff95963254c07d2bf0a5ca8f2818891";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.20";
+  version = "0.1.27";
 };
 examdesign = {
   revision = 15878;
@@ -17359,6 +17628,16 @@ examplep = {
   license = [ "gpl1Only" ];
   version = "0.04";
 };
+examz = {
+  revision = 67303;
+  stripPrefix = 0;
+  sha512.run = "7394aaadd38993f44b63409c28517af05f9875840d094fa4467e8bfcbf1be4af41327683264ad81107f2f84f024fd683a62fe32c04d9f61ee0532b100fec93f5";
+  sha512.doc = "400eb0b85928fdb12e1afc58036f6cefadc301ae4a3e659d1cd1f2fe122231729cafbab7a05910cb47d969839041ea240df26e510b43a6728e2d1794271442e9";
+  sha512.source = "df30d1ca746c4c4efaef640884ea93eb3d97288addc5571db4ae76454ec26e2b57df5e401314b9628454774c8d29b4e69b2a2e6391c30da2c29a7b7330e670ea";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 exceltex = {
   revision = 26313;
   sha512.run = "ef8495b4ef6937af022951044652ea1fb1dcd3f65961408e84a52f9053db8f4fde6703f18833ee9cd002bc058f01813ddf765f575200211563d6e16a956d3613";
@@ -17418,14 +17697,14 @@ exercises = {
   version = "1.1";
 };
 exesheet = {
-  revision = 65577;
+  revision = 69252;
   stripPrefix = 0;
-  sha512.run = "955667020291c3ca7417689606734e0d7cf0b8720e704271e46a2e466d8d48c37dee7a675a3dcf2b52b90b87901a5f65294664499b11fee94f0ed2689402bc25";
-  sha512.doc = "e792d34696ad92f186977672ae7bfdf80fab06c53c30e572359ec6402e1f0190484af52af4525f3414bed81d8ab57bccb3cf28066ff5c57a27ff3404ae0d098c";
-  sha512.source = "de1b8dc1f333dc693b240139d3379fc57f5fead1cc90b3a3bb96bec1a5e19a7519df5bd30b15ff9f1458e651dd36193e100e327e19eca8848af4dc8a0f1191cf";
+  sha512.run = "c659dfcfb0519983d4b45bfd409a155b1fec79332466108f7dc7535b5141baa8c1f48feb7929849e02077d76df15b245b60f6840c1ecc3c4d253aaf218af7422";
+  sha512.doc = "3e10ac55ce9878fe68cb5b34223b8c45f5a8edda7d527efd0cfa2c40cd8fe32582c507aa03b50afd0c7a28a251786ac5cee4a9612789243993db2cc656c77780";
+  sha512.source = "fe8d5b47bce3c0336ac7c0edbfc0d27580712d72b108f612dac4cb0957782b8d202244c84a205fc1731b667ec4986df8338cda346ddfae33f19aac03fb83516e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0";
+  version = "2.5";
 };
 exframe = {
   revision = 53911;
@@ -17467,14 +17746,23 @@ expex = {
   version = "5.1b";
 };
 expex-acro = {
-  revision = 63319;
+  revision = 68046;
   stripPrefix = 0;
-  sha512.run = "e009e9b354c3882416ec28c65d0a4ed48e269ba72ab30c56882eec49fa3a56d3423b0622b6e0af67695dc6069a5e292af4caade54f176e0d84c60b1e9b669e59";
-  sha512.doc = "c77aae7ef02df11f7a2958bdc7b2b437709d0072005549bdd09c25e11c6cf6eb9761dba6566daa479c1d395c1f8255ed5120fc11fdbef9fe948632391bfdd1dc";
-  sha512.source = "329e569dc128341b896fe43b3ff7354fe86c97157318841fb1e30b39962d70caf27451f68e1b956a6a8851310843c0071d70fecb423adac7071a7d124843707f";
+  sha512.run = "303eec6a2ff399771eb33ecaeaf85fa4a95dcd6bfcaf2a99d702dd148c90b99dcb6ec292170406e497839d5c64ca1a5a6faa20e6cd64a497eae7900b2f28f098";
+  sha512.doc = "cb24be981f9ef838be718f44f2b69ee03f81bdd0c6bb49ffe632214f3b6029293d92bd492f59b0c34bc39aeb506204f747a6e02064a9f222cd01053fa1ebe98e";
+  sha512.source = "c07114ec326345002f5a4379125516083452e7bc38ce949280a850095d260d8545fc1a3672206163dd43985a48a1e249038daf401359be8383c889a01397982c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.0.2";
+  version = "0.0.3";
+};
+expex-glossonly = {
+  revision = 68860;
+  stripPrefix = 0;
+  sha512.run = "e7d00f33d6a63e27524b9ea2fd7cfdf5f55bbcf3a0190a6967fefa11b4cfde4990dbda74da0ebe14e6fa76e8e0e4b5084ba352e39dff46f8e2028aadd6dda26b";
+  sha512.doc = "7ff5b9dfada3ef37c0ddc28a472a33a816d52b7b9b265291c640527e6b8974ca21d5867f7e271856a920589062eab5563b29c919a7df66b51af93af5e12fed5c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.8";
 };
 expkv-bundle = {
   revision = 65623;
@@ -17514,23 +17802,23 @@ expressg = {
   version = "1.5";
 };
 exsheets = {
-  revision = 52227;
+  revision = 67300;
   stripPrefix = 0;
-  sha512.run = "c1263842d06916762306b0ead03cfec31535f40d41a0abe504366d0a762850f683b10563d47d149e89ddd75c18c3da7687a19b0a5bbe2b628acac1ed891a8285";
-  sha512.doc = "fbb9dc0826789f6c19734b0b50925d035f3b55a5402dce6ced4cf6881c032d784d5f219b222170961a5e1563b2dd8a5c64e7bcdd434ca61dec94a857451250a8";
+  sha512.run = "475b2508bedfef0f537b02dde56e489ec464ab500e1b6b63e7d8accaf9d5c17e8973d9aee8d370494115592febe684262fbad239fabe5a314c5d89e781506377";
+  sha512.doc = "8a00471bef6ab06927fc7c3a4c33e32a2f6de376cb238fa3e06e3e5a44c98b2ed413f74e60bb207c99c6e64f934bcb406d898bdaa0bd6d9c70b3b5133f4e8178";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.21k";
 };
 exsol = {
-  revision = 48977;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "ef7e031334a27a522f54c5ba5adee0fbfdb4cfefca6e8c1d4f67c8bc542c82bab6ee89d35f8ba8e65ed0b17107fd164c00ed416c64160991b59693f5b567b502";
-  sha512.doc = "b6c5dd47fba5d14560a2d2341f1d17b17eda0ce16a6198ec589f47143ab46fa71808aa6a40a43613cf906542ed9df7d164fb2c7fe5785bf414076934932c63b5";
-  sha512.source = "1fa45d6d526e94e0574d15396a6d191d6b00bba30ef996aa999bf2b77a5426263f1e0a94303c07ff139bf44b0a07f419c19ac1c854c32b02e4c43c397c8a85a3";
+  sha512.run = "b29f3f9e3ba9d4b98b5db23876e69cce17740923419bc2999c742bd24ecf8f6434bc6226bf4f0bbbd17de79b45653b97ea85866b76892f07d696b0ab5b6afb46";
+  sha512.doc = "8be8c7e37139dabc5095c1c77f21a55e60666067ffaed66448db31a3cdf1ef2c21cfa4cd8e4021ecdb6586f1a7b0ece40ebd79f485f878fb25249e1094b7b316";
+  sha512.source = "d48acde6262a2eb4fcb2de2f0e3da5f7b0c33418d896235b2ec656df5fa946872c8cd4b266b8801fea5f9a30bae24154ab663358013e450736742604742578d8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "1.6";
 };
 extarrows = {
   revision = 54400;
@@ -17600,24 +17888,34 @@ factura = {
   version = "4.32";
 };
 facture = {
-  revision = 43865;
+  revision = 67538;
   stripPrefix = 0;
-  sha512.run = "6657931eb2c0a134c53cd9271109552d4b8848247198fee9aa8d9010ff2faa4909416484dec8809d7ddc58b4202f9e2a97c5b97279e5432a1e928f91d7cde71a";
-  sha512.doc = "a96e30b15f1fa827fa4dafd3594e8b98ee8c17c23056926d82243955971225d5a4bdf41a1a2a5b19049619c2eabc1b8529db70adce17bc126c0e1e3be7ecb2df";
-  sha512.source = "2612d792d95e3e22727e3e7ac4c4932e1f25c3788ebf6b4eb1be76727c52694a65c378f13ce917f9cec3975468f79f7a6d62adf4f125c57e6b644076d22e7bce";
+  sha512.run = "30ed6e76f8801f61eeea27679c8c23c050c7d17c334eabe0a00984b1117f046314e59c2c52225ca7d38eb71b93efa57dd563fd582eed500fdf238fac9540b606";
+  sha512.doc = "c84aeae53d8324b9e4f1d386dbbc8774d1b9266ca5c8b893a7280bdbc2578dc9e2ca9975874f4d0cbfc5dc10455cac322d9642534b0fc1384a6d7d192a816d51";
+  sha512.source = "5d2f865404607f25af2c0704d83b88a359ed5601a970c6798eaca104a2b61bf45745e271c9f19a6b41977cef1119e6981f986a20e05a07ba6053b24c5fcc4832";
   hasRunfiles = true;
   license = [ "cc-by-sa-20" ];
-  version = "1.2.2";
+  version = "1.3";
 };
 facture-belge-simple-sans-tva = {
-  revision = 49004;
+  revision = 67573;
   stripPrefix = 0;
-  sha512.run = "90d1ed96793b0463f14fffcef020ae58673df10bf511756387eb38bb2659ae3e362f52d898996410447bb5304f3950325fdaa25841ac4351b4584da951da2b4e";
-  sha512.doc = "f111fd7a81812aa0d65c4143751bf0bc331f8de248876f81c5517301d8a9743cf2e091de6180e3ec1d74a646ec539b65f0f1d8068ad1eb5e6638cbb783b4f420";
+  sha512.run = "b37887eff90040c6705396b81ecf753289974f1fc5e7e348db2f0414ed7f1afdc0179814a6c89f0843f310b6afb56e8a3680c787fcdec886dceb49ac5f25be9a";
+  sha512.doc = "5d5bd334d970ea18e5e041e629893fa42c391a3de0652516efa258b8919429d1d6fe7b43cc4bb104d762e5a5770fe3fe8ead51c61c40ebaabe25e3d15311bf0c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.1";
 };
+fail-fast = {
+  revision = 67543;
+  stripPrefix = 0;
+  sha512.run = "dbe4eed6fd1b3bd3c2d48ab4590043c2bf95871350bc1b56f47bb4dc27ef3010097741920ce0a935aaa03fe9e2e8de49db7906dace3be314fca49e816c7451b3";
+  sha512.doc = "6c5bcd8329cd21f13a1e0074ef4c4b5bc474babd663d444d9ce48d23ac775dfaaa7cefec393a6ce2bf81ca67c1429c65dbd41511162030b80fd1445c9aa5b541";
+  sha512.source = "0703b26d3675c57d5d81de357fdf1b50133dbb2a07710338a243dff8b04370f2af0d1c216d1b1751e1e281436427635a6bb5b226e0f35085f9dfaf9378bc6777";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "0.0.2";
+};
 faktor = {
   revision = 15878;
   stripPrefix = 0;
@@ -17741,23 +18039,23 @@ fancytabs = {
   version = "1.9";
 };
 fancytooltips = {
-  revision = 56291;
+  revision = 68931;
   stripPrefix = 0;
-  sha512.run = "79ac95184f6890ed405919d064fee444a3b00dffa8f76724c302133cc8b4f4c40648e0bee607702cc9faea6aec3e2f8c34d1e2011abe6e6c6444b9076e5f42f3";
-  sha512.doc = "c5a73dc14138cf5f13494a3844e9bda29368dc129e6445bd3f1a7b1cfb60498c44d7527a673d51dea1d81b4a2db438078a406f76ed1597b6836015c588c79270";
-  sha512.source = "6bccdd73454b8a2ede4c1895e5b7019d136af0e79b72417a223d24d004807d02c51fdc3187ddfd8555233882e3a15862db9e3ec7753a349241b25227f8e223aa";
+  sha512.run = "b24e747d4ad811002cf742f6c74855a85b69745661de1cd1d4bcf41ec18ff62d34b39adf56393f79214a1cd4e54f72c54796b00d573e29414825b8c1a3cff317";
+  sha512.doc = "4d567cc367e19727815efd49392ed0455dd47d9416d6c1a4cf846eb017b3b3cb0c8060fb0fdae0a93cd05a156422f5ece0ba15e54bf3fef9b2aa8ad6a7c4166b";
+  sha512.source = "96485cec2bf6d02338699203cf0afb06a43156a66c7c55153bcb158256bc816550b2a0dd7a20cebc8bdffa84c1e40d1652b9a829746880203b49e80dd0297c47";
   hasRunfiles = true;
   license = [ "lppl12" ];
   version = "1.8";
 };
 fancyvrb = {
-  revision = 65585;
+  revision = 68772;
   stripPrefix = 0;
-  sha512.run = "d0233f179706c41c418134d3ccb42efe6234662373834a18e3ab0d80acb5c77327fa95d52cab0172c92217f3c9ae6b974087fae87bf5be3eb82a624a8ec60146";
-  sha512.doc = "0b9f84e92c1dd9939b2bf7654afe4d379647ce933f33cddcd512601de9599cef5d58aec5c5bb3ec24f0eb7b3218bbe41c8c8433bd21d6c612191b1cfe4e32c58";
+  sha512.run = "1288adbf30e9bb084d242dab84450a60b0a9f342b20600518ea324b01223f61996576b4713b476c3cda41963047880a16a4e54cc773a0508cca1c14ea8230c2b";
+  sha512.doc = "b0fd885f1d5a1711d422f1f5340d954d6f217dfa69fbf2674e0523e335681b39270579d2e66e1cdc5246dff251725d7181f983b900899b80a927399b00f1f34e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.5a";
+  version = "4.5b";
 };
 fandol = {
   revision = 37889;
@@ -17807,13 +18105,13 @@ fbithesis = {
   version = "1.2m";
 };
 fbox = {
-  revision = 62126;
+  revision = 69041;
   stripPrefix = 0;
-  sha512.run = "8f4786fd15b1f6f2bf64a00e9367cd346716edef54298bc3334046166a067815112eb85a6277d7165ad5e4e830b1cd1ae149c907842df46196f6d33c2ba6534a";
-  sha512.doc = "e52d356422df18f8e29243b5323cf888c5d0b6f89c3c822613b577509d8dff44bd4d4e1ebd5f7b6c72abbbc782f362ed9162803b572a2d995482db86153678bf";
+  sha512.run = "705a0f1f6d5009f0ac2fa1059f3029ef7bf7e8fdab6e85bddba822eb50dfcc049f94b7ff43afc97234d44f42505e1cd4e6caac1f22178949dcaea0a60e572281";
+  sha512.doc = "19a61ddc64c3c5108ec05089e988a07f0e10d772bed810898bf82046922eab58a389c3816b15055b5c2e8a4d1392305a351802eaf3f1e72799c9c192eb8c1484";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.06";
+  version = "0.07";
 };
 fbs = {
   revision = 15878;
@@ -17851,14 +18149,14 @@ fcltxdoc = {
   version = "1.0";
 };
 fcolumn = {
-  revision = 61855;
+  revision = 67729;
   stripPrefix = 0;
-  sha512.run = "17820804588458b805a65eee92f4fff31a73b7285f85546e0006ca6ee374706bc4df9f78eb044d8b79ea26b27b16f3ae38f035d8843906efc0043e1754f6ed3d";
-  sha512.doc = "d7822b79097ec0d58468dbf46e0b2651f97e763c3212102def2c247ff3088dab4088afe2c4aa5d97bd6360b24e38da6e872fd25f9928724f151c03769ce2c219";
-  sha512.source = "f3d27931c2586d48fd34fe59b5277c67a3e1a6e25f486a1c3226385b3ada23c655cfbd25b26470ca84b80cd7d9c1d9b72172a0b11e1e0f35899cd3a3608f42ac";
+  sha512.run = "0edaa6ad0c01a2cf9cc06c65fec3bc13b85be893d7fcf4a92b0c8760d1999e5c3b90975e44c586ef104b020eaa0a18cfc4476b3abb243c5f2862941864113bd2";
+  sha512.doc = "9be3c50f25522c3fafb52432b74f6ab755afc02df04da84383ebb466bd9424c716082d3d6ff176d32c03c9097b6e39c6f54e70cd8218784492d2ebe37de0ebd8";
+  sha512.source = "e122343109c0367d3f22bfc2b3775ae10545a01d18908cd227422060ba3c685e35beae26c6892479e03c3a4f774e2f9edfcfd60d6cba0880a4279e610de1050a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4.1";
+  version = "1.4.2";
 };
 fdsymbol = {
   revision = 61719;
@@ -17871,14 +18169,14 @@ fdsymbol = {
   version = "0.8";
 };
 fduthesis = {
-  revision = 66197;
+  revision = 67231;
   stripPrefix = 0;
-  sha512.run = "2b6ffb0ab9bbd4ede0867bc007d69a3172e7a4207132aede29b4235adcb15d30f914f3a9e64be2c205c9eb5bc7bd8a0cfdda514c34f104d3c9c4a71e7e4369da";
-  sha512.doc = "5ff7d5bb938a06b9b23a59be62b7c89d7be8b633dd43242c1ddb6aae7bfc4922da3d236ef0e09f9287e56218064c9fbb283a61b6eb4b251d38c14ef81ac9a36e";
-  sha512.source = "b5da699a284bfd9ab3641434f257653c3cfb5cc110f627260f209925143387430ca1481dfbb05c362647926c38c6f25cd26b51aa5f9c9b5b6424fe4375955288";
+  sha512.run = "e495c127884aecc1856b99705c262882b390f9e800dca59c2fa1200ae584a424ef4ce7752a9bb5dd7aad9a94c4a685af557163f2b07327e80f5b99153532d915";
+  sha512.doc = "31a91fa609f3ef8631d6ed57526e932d5c110e4d84cc78862d1bf4c682f8de97c080a1e2d82e60842b731e33505b99dd2a85ae899705ebc45de44e526358703b";
+  sha512.source = "d2cee0822ae532782bf30e1cd8b07b65a4c7ec3cc29901b10a25d81c4cbc224a9724a6ab2a1e7bcd8ebdb05f6936176d95783198f6bef20dbefd4e80ffbd7349";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.9";
+  version = "0.9a";
 };
 featpost = {
   revision = 35346;
@@ -17899,6 +18197,15 @@ fei = {
   license = [ "lppl13c" ];
   version = "4.10.4";
 };
+fenetrecas = {
+  revision = 68779;
+  stripPrefix = 0;
+  sha512.run = "6337deecbd49a9ef9d19ab31cdd705cb49bb127ff451d9f3790a3ef8fa95ee7b65f52d49d22b1698d039fe268fcc178c07f30dd66ba7aaff69e883594e6956c1";
+  sha512.doc = "8fda8eeac400f810e3839f5197c53b808594c2536b1d4a5c7c96c788b8faec40a4efe403b065519d20f09cc1d14fe80e9e060d2b8e4a396cc9c1ad34dd16fc42";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.4";
+};
 fenixpar = {
   revision = 24730;
   stripPrefix = 0;
@@ -17977,7 +18284,7 @@ feynmp-auto = {
   version = "1.1";
 };
 ffcode = {
-  revision = 65170;
+  revision = 69383;
   stripPrefix = 0;
   deps = [
     "environ"
@@ -17987,12 +18294,12 @@ ffcode = {
     "tcolorbox"
     "xkeyval"
   ];
-  sha512.run = "e76c0605b8a074d1827a73a3ba4e9fae40ade590b01e90ee10593c4484e0a534cebb556bf49389fa03355424910cc349b73fbae2827153fc717be69d38d007e0";
-  sha512.doc = "c5302e1113f5d1a05517c4877efd710bc6931bac62157001ea540f0b40388c95202dd457fb1362f8b30dc313a48d9742fcd5c6c6a7e5f3404755a3eafa01041a";
-  sha512.source = "2863c642dddba771bc4507ed2f0e4a3c4ff12ab4291fb397a2e0f8859776bbba7442a85fefe87d655d0c6236b5e40878ba29cfa19f71870f6932f38247657f5f";
+  sha512.run = "c71ca2c5aaee2d7c14384fdb9655d08e92aec6b721ef906dc8524bf2833ae7893497ba67840935c97b76ebac9318a3c321af7030573a9a57c384c11dd1862faf";
+  sha512.doc = "9239c853483203eb42b1069ac1135b360af07161426c77bcf8684626b19aec169af9a2cdfe9caa7cc75ec322b191ad4ddad9b21daeb546dbe5541d66615abb12";
+  sha512.source = "a52bdf256577148636f06a391d35a0a9c59dd73b91f33b43f3f9f0a796f4995140c5563f4644a1f99cd015adbc260b67785a5c50c3af649c45a69495fd8e7af9";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.8.0";
+  version = "0.9.1";
 };
 ffslides = {
   revision = 38895;
@@ -18003,11 +18310,11 @@ ffslides = {
   license = [ "lppl13c" ];
 };
 fge = {
-  revision = 37628;
+  revision = 68353;
   stripPrefix = 0;
-  sha512.run = "0336a91c06bf658c1bf139d716952ac2ad420e307fb8b525e53cd4a488e0cff536c89ff06ceb8788d1e54b96a9fe4b24d94beb6913c1be8683e359a4d00dc4f6";
-  sha512.doc = "4f18f7bc1c8000664753e6f0615f7dd1d0f71bf51aeee6860fc2181536f6f1fc37b21e83b0c5b6c151e1012a02ec97d3d5ff6d132a5f6986e94bd173f40f994c";
-  sha512.source = "4eebdfffd7fbfeb7539543719df1e50564df6ba815f37a503fc98420cfca5c6c2a0a0a0f732656bc288009e9bd0fd1ad7fb0a4625748496575179c3a7015e7bd";
+  sha512.run = "0f97109ffa1daa97d4ad496c2e948a123a9fb04393e668c9c3b1a14131f6ed7a21ac9056c6f3766e3ab2d3a2caa2baeb67c4b59d6c6489299090976d697e10f8";
+  sha512.doc = "8505aadb706e79e6e1d0faec203de577cf76acef5360ed7c29febc2239d2719a717a59e9d4f8fbf5d2eefe67be1ec3cc1ebbf9be47930750582df29bef2fa9fe";
+  sha512.source = "c1d966e094ce4a61c6250717731a20c3db0a0e438b5d8acf1b5332cd05a2f6dfde1d0e99bd02ef5ee725c1242da9ef183f680a03bb7f10d7ed50d0ce4c2bb1ae";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.25";
@@ -18105,14 +18412,14 @@ figsize = {
   version = "0.1";
 };
 filecontents = {
-  revision = 52142;
+  revision = 66740;
   stripPrefix = 0;
-  sha512.run = "b40bf2e4eea194783dded4f00dc24f1cea26a854e96b57995b69354a70c1e7ba9ef0e64542c2b524ad59d9b12fb1accf93ee28b4c7e735279c0bbeb915b6c991";
-  sha512.doc = "0ebf1990c005dbf92b7ef73ccae0cf1ad47ca896f0805a5a8291a15c6764e2259ae03fe14d9c713484ea258764b706881051b4001589715bc36ee17ce5bdee23";
-  sha512.source = "e0238c49fcdda4a6d5ced2e52a7f5113996fed3bf7d8d2143d499870b06a1d8381a2b0796c2708570e554c1ffbd7f12c6c69b52980b1e2b7b91b2e8d2112e42a";
+  sha512.run = "bc51c03ea84130753cf4c6a6e6efe39403bc48a47b4c40f177d3ae17808c63a346a2b361ef61b0e0421094b6b64e20a972c6bcad305228ce0991818a62344296";
+  sha512.doc = "15f34d023a498c733810ddb4b04c1672507d97d731a579246fcfc3f29afcb47da73429807c4fff018708ddbac76851ab8357dc274cb6c2506cd37d075d2dbb44";
+  sha512.source = "8b93ff5a1cce54150c67bc607e67a40788dd0af08bd55163380756ce6979f3862b4cf1d70888b7b4ddd7accf078a387bf8540cb97af491b4d67bce31600fb8f0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "1.5a";
 };
 filecontentsdef = {
   revision = 52208;
@@ -18220,13 +18527,16 @@ firamath = {
   version = "0.3.4";
 };
 firamath-otf = {
-  revision = 65561;
+  revision = 68233;
   stripPrefix = 0;
-  sha512.run = "32e5eb8a0343b189afea8763a24b74b41adee9b1d5d21aa7e184eef2b402e88023145eb29aac3c7fccd56d6fd0fcffc06c77f937fc28ef69852ee87b1fa1650a";
-  sha512.doc = "fc3b91faa9acffc0f104faa90925f6907107dca2b6c1a5800285b00bf734e85f2463fe262d2ad4f123608017abea64052463eaed6ddee11230b1462261377072";
+  deps = [
+    "firamath"
+  ];
+  sha512.run = "6c713fe81dd006707b987930e8c8835c21122607d9488ce997bd9b76cbe85bb91fe7017f4282fa91c11ab41827ce70de62d0baccc78a543d56b0d873ad153c12";
+  sha512.doc = "39c2eab4cf1dc638194d81effa1b442b87e96b1ebb2efc72d0ce26041bb04fc3cee8f44b939f904b07cc0332708d8ae8cd7a1f41087d363888306c0f0583274d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.03a";
+  version = "0.03b";
 };
 first-latex-doc = {
   revision = 15878;
@@ -18236,21 +18546,21 @@ first-latex-doc = {
   license = [ "publicDomain" ];
 };
 firstaid = {
-  revision = 64892;
+  revision = 68720;
   stripPrefix = 0;
-  sha512.run = "52a53933022700a5713b750c3ca34afda096592da577febc7442807290a8e04da79affe217a0e10cf8ee483779e771b6f610a88b45df52822ea54acd3a45b4c7";
-  sha512.doc = "da564e169ae9169b828c76f1c7299dcc44fd2588d776f8fde039429c4f9a5e18ac133c6aab61076b2a58705d31f07f63f0734e66edf5c229c6d2bfeb64eda76b";
-  sha512.source = "eb776d9961f9969a780dec2c1a1eee6f9900fd66458acf4c60f84eed94d0dc0bdf5441a2c343d0052cab9fbe8d4f643d010970c908aaa0c8041fd285cf1f87f3";
+  sha512.run = "0d15794f22485c3cb922b0d1108c33f1dc3dad9bf8db46278deb8079bb966ca0f3cc1c5454d82e43f604354b578c9da465a34440670b365fab4f7bab32809603";
+  sha512.doc = "6ee8e2e67d8029551e8224a4548b425188ca85298e5cfc90f9f1b95579223c840a80aad4d4a56e36f8d0c336778cf62c8b025d3f4df215d94a310beac14b1181";
+  sha512.source = "2c091df08953ae216e713567d1af4f0dbfbe25c4d593ddda22791d353002cce85829d3a8b404d0a1a441f67264b778c3137842388159f3f551fed249e3ac711e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0u";
+  version = "1.1b";
 };
 fistrum = {
-  revision = 66263;
+  revision = 66461;
   stripPrefix = 0;
-  sha512.run = "06d0fe179e16f80a19d9dee4a62a1d4b0f64f6b02c6f5969fbf3cc461a93f123727a8d4838bd6893c0d49c3de6ff2d3897fe3099fbae9f8eb078e97cae3a5adb";
-  sha512.doc = "e751c6fa119c0b1f2e74ba30b157c18f9cfae5ffa27ce43548f2e98e5d163dc71fd3bd658f46cffbec225c48960ec093d3eb1b0793cdec339edbb98a34002b38";
-  sha512.source = "45c088d042e2cca6cc9bc029ffc83506acbf136be9253ba9f01325072f8a1cb4941f68cdc30f62d6b7af2b0068f6cc1e0e8c76bd4200706437aff732ea2d1cc4";
+  sha512.run = "7e0a92affb0fbe23b9d08e525f6e2878e3bfc10133fc95b41bbdeebca5c02c988b2c4033e50969212b5889dda4f9e2f043dd65688ea33d81b5bd138d49af5777";
+  sha512.doc = "15b50530a68fbb2b330aa972640fd85207dedc0b0e640f830940cd712a16fb001e60b59c22ff81890ed810a7aba9f1e150deb3f91ad1fc4bf52680d9d1735342";
+  sha512.source = "88fcdc104594951933fee790a45efde2cfe3665673b2589bd4f2972f15e8dc1f91b85c5e04dde3866688fc2b76d2692caa2f4dfd3353ca9416002126be408cda";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.1";
@@ -18265,6 +18575,15 @@ fitbox = {
   license = [ "lppl13c" ];
   version = "1.02";
 };
+fitch = {
+  revision = 69160;
+  stripPrefix = 0;
+  sha512.run = "ec44706fa5f5fc258666e343569f695db0d26f6628aac1ac6eaae12377f23138c49ce29d03dc5b08cb1f5427cb5ad612cbbf9aad5a9270f4b31f43679023e73a";
+  sha512.doc = "3a32fa5657e0042588c82ffd7d32f11dfc8e9d29ba268700092d26d32d24afdb3baa1f02b8ca4e248a19413aba0421d991809cac5db0d5d38aba8389b43709b0";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 fithesis = {
   revision = 64135;
   stripPrefix = 0;
@@ -18296,14 +18615,14 @@ fixcmex = {
   version = "1.1";
 };
 fixdif = {
-  revision = 66031;
+  revision = 66606;
   stripPrefix = 0;
-  sha512.run = "e0a4f2b75e80d0378bd65c623f2a43f8bed314ebcf4a4d2aea45a724896e107a1b6cfce4c34caa3b0bc4580613681c7189cd32fe63ef611227d57b512f20ef92";
-  sha512.doc = "47a0f695e145e9c33ba7ef733f2776d61941062179bcc0a416fc9368b5d3d7e8bbd6c00fc20ff23ba70c28e1ebc6d5118ccfcf3a798c5d40702b30a13bea86fd";
-  sha512.source = "a8fe5b80e8e99125859e253e7f7cc2af5af75ba131acace90e885f7a1fffbdd253b750263913e6fa5fd081ff70c8aa3983aff75127f227c83589f3aa3fb47534";
+  sha512.run = "655c9733d727189d7b2aaef2b629e67cf5c7401ec2a8ffd179fb450cdf1746a40571e0b8be56f4202e31d752c35c7255fe01cf0b36917c582f24415e8e842273";
+  sha512.doc = "e17648e54c68ebea15be76a8cf1406fd42858bca77be938efeedd72bcc8fe92ff016427ef815dcb590b8f900ce0efd87d9bb96f37afc8d79bcafcdb1e5d23bca";
+  sha512.source = "4c96dd12535cbc852d4d24623295d1d7236f8f4773e5dece09ffa99f7fe8bf24efbba89dedfa069e32af53b1d88afa109a5e1075aa368ed6331fb462c57d80f5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0b";
+  version = "2.1";
 };
 fixfoot = {
   revision = 17131;
@@ -18446,14 +18765,14 @@ flashmovie = {
   version = "0.4";
 };
 flexipage = {
-  revision = 64572;
+  revision = 66614;
   stripPrefix = 0;
-  sha512.run = "729d90296c3a84fa003f5c237dde47e3ba3417254bb408c279f135a37b701b70dc02ca4bbc0ba39165415c5cd759f273a639a796b683b1d21f0ab3127f45c1f6";
-  sha512.doc = "537ac79dddd97d4212083016b44f1db9461c4e4d337e226015ccd57101b5cf0f6519315f108715019fa09d06d24ec0700b542b57be08063719b31ebf2173667e";
-  sha512.source = "89a47b7afce5f17e8e9a5277b49f28d113e92995d5a35f6a000ec7718fccb2bb5351a71e55cb3cf96cb639b22cbbd99e6383b6a65d6291736529d8f5c2b7b65d";
+  sha512.run = "1e16b1722a4c4349879c4556338c9d72eb4fe8364d0e19e0237b3a269b85ef19bd68d4334e190b7e0cae6e3ab1551381bc2e46fbb265ce36e839a967fb114220";
+  sha512.doc = "5670616faa6646b68d3b3b2724f5e324cd1ef3595a0da3b8615d364f908f684f98d641754b71498cb2b61853192859dcf602a2925cab145292b1cc7a21f99766";
+  sha512.source = "72458fc100c39b56a6f5ce173fa1149997fec0e4b7040f9a6ff2a2f671e27a33a4cd326eefa48bb81ec53bd53147bc4065d677fc1aebd9620da1d869336b495b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.01";
+  version = "1.02";
 };
 flipbook = {
   revision = 25584;
@@ -18484,6 +18803,16 @@ float = {
   license = [ "lppl13c" ];
   version = "1.3d";
 };
+floatbytocbasic = {
+  revision = 67945;
+  stripPrefix = 0;
+  sha512.run = "01f45baf2f0713a229bf6b6d59e02c8a05f0478331c3c6c7ca7dae050db94d7497a87acccda1cd7c022b79b54ef5088f6af181429e60154ac8e1ada081062dfc";
+  sha512.doc = "0d6f29221ddb39019a9c6d308f77200279144efa9de35d5fcad8518de9ecdaf840179887282840cf7b31e7eb286f0fa41bec93e8a1f3682873adb791a467e22d";
+  sha512.source = "4b3c146a6e9960f77532bf2fc23cf686a092f00da541a0c0fc1243a3bb623b16e19de8e9bd1e792a9134cc1dd3d429fce17ce372da03f0abf3176ee4b722cf69";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 floatflt = {
   revision = 25540;
   stripPrefix = 0;
@@ -18504,6 +18833,16 @@ floatrow = {
   license = [ "lppl13c" ];
   version = "0.3b";
 };
+floatrowbytocbasic = {
+  revision = 67946;
+  stripPrefix = 0;
+  sha512.run = "3554c3cd560d5203b650bd32fa39aa4372f935bcbc757d1ff93fbde3fcf1a395bac4676e7029ec58fd79ce0089595858707880e35fdc98a65615fa27a555ea3e";
+  sha512.doc = "1ee0174dff4209c1bcc3764c89ede858174e1aea624a0032c0af8bf61c1cb4082517ee2713fff0f5a5687ae4d63ec67c04f4a14eb5479edab183d0487241c37a";
+  sha512.source = "126754a11d2a5f47d2406bfdea43ee33371ed1eb8f6b94bcc48b71fcedab4f468e3d0fbbdd7f0229780a70b5d337aa3e443046346b1c53e968a585c6d44c1c66";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 flowchart = {
   revision = 36572;
   stripPrefix = 0;
@@ -18563,14 +18902,14 @@ fn2end = {
   version = "1.1";
 };
 fnbreak = {
-  revision = 25003;
+  revision = 66615;
   stripPrefix = 0;
-  sha512.run = "794e427d66efeb15920062e86b4a405e36604703f350c4e20f2c237b358eaf08aa22cc923c7995a7db22c117b48555fb92b136edbc94100af8e2046d49eb1fc4";
-  sha512.doc = "0e8778265258304ec1cae1f2d21902ffd6f99af18527b86af064209da7f4c84e8ca6bdcb359000e3f0e9aa75819db1b375f8ae9f0a825291ee03398b6bf345bb";
-  sha512.source = "05b2586aacca96367889e328115780eaf25ae6af3179c71701c35fad2d98aab79730d23a67e165248793c58a9988442bb54bb653697fb81f1832bce847ec8b3c";
+  sha512.run = "15d3ba5ef30d8ebc23be3f0c412f7457960a7032f3c78ccdeba6342852a3b7db699b8792b6f981659268fb28c74e5cd93bfabde2b584f7eade98e6b422127d9e";
+  sha512.doc = "44837191d22ac8185b7748fbf32769a1d2299b92a313da918e6a03d78f56206e76d73990cfb1f94d956835f369adb4008df4da117a20984afc48289b1291fa4d";
+  sha512.source = "7ebefbbe46d0c4db1244ef699e454c0b393285a489bc20b0fd78bdd5da0ddd00982f063c25dbe78c4aa1661402a6ca8ea492774e9aeb5aed3d7fbd460ae2f58f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.30";
+  version = "1.40";
 };
 fncychap = {
   revision = 20710;
@@ -18768,13 +19107,14 @@ fontname = {
   stripPrefix = 0;
   sha512.run = "424da4dbbc07c41840e6aeb6fabeef5d4778d206b9cb8a90e752ebeb65d962b96ad41a7e20c86a16665e2bf48ad795d85001da66ff41b01ae3c949c6eefa4593";
   sha512.doc = "78199996913192f5f69423b6f412acc52b74f051b01d3e345b97b7f1d9ea4aea762a7b83488068f3091b41da69471d56b3f18ab4d299cc6adfe4e004072db303";
+  hasInfo = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
 };
 fontools = {
-  revision = 65706;
-  sha512.run = "a4cd3009c98502534f3c54d40fb22d788bcdfd474ba6bfc1b7010aa4d3471f468cd54a5d5c292d5afe685f9e4d99c023b8f78f302792dd1b381418042d96f47c";
-  sha512.doc = "0506f6e9d0e0ae4fe4bb15303e2abde50a076899e4330a7d68f875abeaacff999cbab779bb368da5c717370e7cf885333c1479d6e795da4e387edd4656c30933";
+  revision = 69241;
+  sha512.run = "5144f4a0636b49e63bf04f518b6c416623e2228615e33169839547cbaca574bed78777ab20f4db7e5820c1acd401b756896b39998c43f21f93de6cf8f987f6ab";
+  sha512.doc = "bcb3ab7f49e817ef5b6f710bbc227309f28396c6f4233e39e94163663f10db3daaa41b6db93a9ae85a26599dfce352a0c132a36b0c047ecf8f5269f428af4f6c";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2" ];
@@ -18785,13 +19125,13 @@ fontools.binfiles = [
   "ot2kpx"
 ];
 fonts-churchslavonic = {
-  revision = 56350;
+  revision = 67473;
   stripPrefix = 0;
-  sha512.run = "308101704643f3a028b4d58cbfb021ec05640370542e83faa6c0070fcf60c168f789a3a7f5ea50e6d2568faa2660f224488f188ea6fa30f649e8e013ce7a4025";
-  sha512.doc = "856d1112c5929b361f5c3543455ac0f2ac1b8887bae8b7ce6e94540b1673ed815cb73aa08ab50617213c20bbc6fce86e84bf0a3bcb6521940c077e7c7a6a8469";
+  sha512.run = "a6e3759ee4fa9cb50a8b7bb55f162ddf6644c3d2ab61da514ae902c99868f34e3de67f1207ac003f98a872b1b1daafada441e888efe2f0482ddc6b9132374c03";
+  sha512.doc = "9fcc08b521d9706c3775d33ed7391553e855ef43a49ef1c6cc92ecc1f21677909eaf5c5d231fe86f232d3a092e3f913012d8d96f35b3344e0a774c4e5c8f1476";
   hasRunfiles = true;
   license = [ "ofl" ];
-  version = "2.2";
+  version = "2.3";
 };
 fonts-tlwg = {
   revision = 60817;
@@ -18804,13 +19144,13 @@ fonts-tlwg = {
   version = "0.7.3";
 };
 fontsetup = {
-  revision = 65439;
+  revision = 69390;
   stripPrefix = 0;
-  sha512.run = "9eac00c84f22ba0409f49d9eb730050d8dde8e9468f7d55ffecd6ccca750aff171082638e52fa6c3e260a203e85c09a64900816d8cf7fcf025b655dcb738f62d";
-  sha512.doc = "bfecb544a2ef7ac57b14ea9fea554e39d3b9549520b1dfa76d2ab1f983eff931ad98da0b970922b262ebc01b148bc3b8d7dd4d89e4ef7c03430ea6707add7ad8";
+  sha512.run = "f291077a88db97fdb486cc14ab24fa9b2cc1b00808f8d691c3313b302715897188a9d16dec192d477b4fc19bd22bf2b9e0cd92bc1a11b079ee5a88382bb38ad3";
+  sha512.doc = "9318253e03673a6ec79d33afb2632a81354fdf0f29fc429814dc3f00326275479d8bfebdc58bf71456c38a77ba22afb1be29b2daa408c7c3e4b1e149fa7e958a";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "1.4";
+  version = "2.1.0";
 };
 fontsize = {
   revision = 60161;
@@ -18851,9 +19191,9 @@ fonttable = {
   version = "1.6c";
 };
 fontware = {
-  revision = 62387;
-  sha512.run = "6103b16df1b465b08ebec98236b04a858ab1db6f7721c324d6776d5367c4a7ea5642869fff828147860b3858569abd4658174d03c3f23317c5ed28b53cf8cd75";
-  sha512.doc = "c4caeb1ed2e50915e4ae76fe7b5fb53a4a7c55b9184e5a6c83a6912fa3d37f47627863bf76ca92578441d87055c82204bc09a3a8a96568edeef25e80c4cdac25";
+  revision = 66186;
+  sha512.run = "7cec7df72b76ed64b864401c809b48e51f69338c7cb3ed05ac4ea69899a077983763c728543f99130f18afdd2a03c955d848066a239c97547ab0240d87c97d7e";
+  sha512.doc = "ccd22e262e5fa2cccd5da0ff016447d2df04aefcdd6960f226762667ea2e81b4afd406ea9f822b74d07c8f93cbe70ef90cfcc4040cae2820cf5ace94ce8d1113";
   hasManpages = true;
   license = [ "knuth" ];
 };
@@ -18882,14 +19222,14 @@ footbib = {
   version = "2.0.7";
 };
 footmisc = {
-  revision = 62524;
+  revision = 67556;
   stripPrefix = 0;
-  sha512.run = "85a082bfa68f0ab8d9cc252d04521b45bac8a3c4d005920c1806515efdea6668b3df3b57f51780b8d4bf4cd7d4e06751f41087b76da3b0dc9d916f3716cdc522";
-  sha512.doc = "5c3e00ea325942affe2c68b6855207801b0155b79b1f33cdf3c2dc5d65f17bc94b6fb94e09c1ad8c823035232dc305d9131ae89bb726685354adb2a23117987d";
-  sha512.source = "526a64c71dd03b67dd0df1d735573bd51db7c6929aa1626c61fda42b7619ebad8b6127c2db8e08fdfc79f54e8c113080001fe6141f1412b0cf8b175c11a32972";
+  sha512.run = "814aa0a1add20812ca241280a408c1bba21920c2751f171a67532aaf6e4dafd786578701a7f431a0295a139052c8c7c37f46c7e4df35e6fd14f468a5c7181b75";
+  sha512.doc = "4a257a2b7620bc8660785ab5d8c8f167ba044e2bf8fc6b340b8645c549f9d4c528d9fec9110671f1dd757892c6193681bc845b57a7ab722423c8184a276f8043";
+  sha512.source = "514acb8de22592d5211c97ad8a82659374e574c4ed972604443036381875d33d2e5956788fd9f9577ca1feda59290209f5165568dd00dd0f059dc43fba4efe14";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.0d";
+  version = "6.0f";
 };
 footmisx = {
   revision = 42621;
@@ -18921,11 +19261,11 @@ footnotehyper = {
   version = "1.1e";
 };
 footnoterange = {
-  revision = 66156;
+  revision = 66149;
   stripPrefix = 0;
-  sha512.run = "f62bcf48415528645d20d9be9ee1a185ce4a27224509c26ea94efec3541e3f3e1e69bfc6b4ac8e7e4d15248dab32e9cfb072dc81c25c60a8179c6ad60eafef25";
-  sha512.doc = "5c69a9077656b3cc81a3dc564bc5049a5783ab0d276fe6b71291f43a99cb94ed199edfba3b56eb20cac698c9a44d812f4b101858f43a1698180bd63175e2c9d1";
-  sha512.source = "b5b2db4c757707283c345bd67a27c1d3def510205d38470f7b4ec08343c6f7faa5b3ef0b2ff7d67d0e3a9d7d55e0db3a4fe04d48e85f375c3a7ec1cb76d8177e";
+  sha512.run = "b2c20e7b528219e0eee9ca32da40982670d3fa88938a58251e1ce6aca26b831d9ffdd89752ac19b78bc148c11c265374d2f679e7e3f54cff0ba445acc4025922";
+  sha512.doc = "bf5b704bb39a8d369093feecd02da251eb45790381605495960dabb9a4ef099f9118dc7a791c9d9db74eb19739628638a8c003256a42890d64ed821ebf2b8c12";
+  sha512.source = "22665f8b1e912c325a0ba7b8b05ca7da54f54b92e8f7700d045a837e98a544c651c479dff88937615ea1d13a25ae3f6d6f3a5a60c1c7402c8a892dae0fa0a62e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1a";
@@ -18986,11 +19326,11 @@ forest-quickstart = {
   license = [ "fdl13Only" ];
 };
 forloop = {
-  revision = 15878;
+  revision = 67017;
   stripPrefix = 0;
-  sha512.run = "a9cfda31fc63d24737a5b422e9fc7072bd1f75c0926cb45d26ea3cdb7cfb50b3f74d7602964a08f13d216f3fb3798acd21f04bdcfe85a3e3652052b9f2cbc9cb";
-  sha512.doc = "49bb7031207902366fbd0924a025c692ba015af134ca38c90c43e8efe7a9522ee4db4cb9b071dd00681251ad07b4587cd49eb9e09bc77f1ad5632838fac686d6";
-  sha512.source = "f41a62a677f37a57c96a398d48cee84d213ccc23fbffe7f2da6c09e8f58d8b9524d3b53717b9657004e7de0083f43960c0ebd54de3696994d8e946d8044399e4";
+  sha512.run = "e4cf4d9fdf01b753b40d4fb2c5edac94756ccf60a7e0b1bf0da8b5b0c433eff5669858fcc35096967f9a53e6a365880e6677956ebb86764cd68ba3093fa4be91";
+  sha512.doc = "7315a8e90a83bbb73cb82525fec32c750d97f62fadcf1cd1faa816aeb2c54b5183c8fe659a19f213764979d495d7774df7aab7c950fa9886c6911e526712f0ff";
+  sha512.source = "fe9aa2c7836a17debbfc392b44bcccb09de5b978224b2ec81e17daa07eef3eaf508206f1d54cc9dc7897122ceffb9d1b8d5957c26f2b4bcaed4ee93ebe3436df";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "3.0";
@@ -19006,13 +19346,13 @@ formal-grammar = {
   version = "1.2";
 };
 formation-latex-ul = {
-  revision = 56714;
+  revision = 68791;
   stripPrefix = 0;
-  sha512.run = "30e38c93cf692aea977479159780ffa797535c938fbb0551c86979f61f459d571cf78526a5ddd435b22e850e45fd6fb33ccd6a8308a170bff034ab3d29c63318";
-  sha512.doc = "3f8744fb5c3554a256a3585cfc8f0339bbe91ff94b959fc02f2afd25466333ca54003b1183ba7e770f49e296807367ba33f809424921fd437f9773cc5aaeaf6c";
-  sha512.source = "52d36951555b74a8091efe64f5bb6790917fc3346a79d660f1f7c45793512efc86c935d13bcc88f0dae714223ea5af3a02b32b062880f117009bb99727fd8dbf";
+  sha512.run = "c1bd5690cd7aac8a9cf1b608b19d620c898474e80667594750e6ad5935fedc56f6e4352573cb3700476ecb627195fb137c8404d3701c30ba457960d9f832e42d";
+  sha512.doc = "747ad5d71a58ecec9b83c7a81e36df065b2b374c0ee4deda2a797165eb1a883e270d57b9951b61b3310feb397dfc00d81eb38a0904c2c8f187aa04d8929a2681";
+  sha512.source = "a1925f332e6a20fdd2e4926138ddc88fd5b56213a44d67a5f8d812b3ef10f1d619fc8bb47758d74c5c9fbf34837023c44394637f848359b98c446f98cf8da62f";
   license = [ "cc-by-40" ];
-  version = "2020.10";
+  version = "2023.11";
 };
 formlett = {
   revision = 21480;
@@ -19135,13 +19475,14 @@ framed = {
   version = "0.96";
 };
 francais-bst = {
-  revision = 38922;
+  revision = 68686;
   stripPrefix = 0;
-  sha512.run = "b271711badae8883426ffa2783a2f942c9d37303fb4cfa8b4a2ec2f8999dd150060dae6689bef17d2120cc7489896ffa497ccb1f7f693d5db9a8ca5ef6747f21";
-  sha512.doc = "b3a53111f7fcfe972c0722e8600b3115b6e1a93631568d9bdb1f824b8185d4c78fbb135c4593856e3766404fc8e4c005daaf017e5c1552dc452c57e943832e14";
+  sha512.run = "0a8216e8553b123c82d773637bea5ac61a618116974786b485f16eda33896f404458d755730ee12ef8971cea2a8a4e67ecc697a0c99ad59c04e3bdb2e3dd0e51";
+  sha512.doc = "5a58a8b2afbf99c2a4b1eef26d7dbc16b345ba5c1cb3cee50d9434b577d73145e0d15d2977fb2947bd2263d725b68f01c728ea028f5c9192f76831a94e2ec23a";
+  sha512.source = "a0b490a291775ca178efefa8a432e8be6de8a2794018d2fea5c38ac8ed1df2b3d15cddea6421217ee5cf84056252b2de2d584664de376dd28ee8704619cbe314";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "2.0";
 };
 frankenstein = {
   revision = 15878;
@@ -19169,6 +19510,15 @@ frederika2016 = {
   license = [ "ofl" ];
   version = "1.000_2016_initial_release";
 };
+freealign = {
+  revision = 69267;
+  stripPrefix = 0;
+  sha512.run = "ca74fc018fe0162cbc403c32efa1101edc215bdfcb9e5432c8d395cdad4f26550df6447b7cef9ffb103863052886b608c89ea5ad56a8a909822e7fc49f3241b2";
+  sha512.doc = "ea7ea3cf64373fb06372d4452d3b66654813f52e221fd1a002c5b95c63604d0aa3b3a21ca6dc70e406b51e18628bd6ce55a74b1e2562b9140811f4d860cef91d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2024A";
+};
 frege = {
   revision = 27417;
   stripPrefix = 0;
@@ -19179,14 +19529,14 @@ frege = {
   version = "1.3";
 };
 frenchmath = {
-  revision = 66477;
+  revision = 69211;
   stripPrefix = 0;
-  sha512.run = "8ab615a8b88c4b09bc2f3a2485d5f07a8ff140abd4cfaf64e3239944cfdcdc123879fcb6146331aa27a17f7a102251dc5f20538302cba72e2ce2b40714af8629";
-  sha512.doc = "a112495f232ec33ddd9f8c942892036029b6ebc3ed18e9a416188ab29907e0455051949a593ddd94efb96f97b71027197e9e3b8288c46c09b3c82fa7c3e80eca";
-  sha512.source = "b881d4858903b8d401fe4ab0e4819d657a2da0fe90df238e19f80d5b7eb250fe79e82f7a16b3f0107c902c4d2cc9b5717a733e922ad1a7d10d20287341584e65";
+  sha512.run = "d9ade8b4e036beb17c2aed0903531fe7fd29de51d1848504803ee3c9be83c4cddac2e33adfbcc94124fcc1f7913520a0da633c499d9bb4c4146796a1789ec369";
+  sha512.doc = "3348e8014b3468afb30be0a9ed36bf6684963d1aa7cd325be8050a03c668221272bc009b0883b0ebf66cbd18eeeddf5ff0d1ffa416f24e3c362fe44cc0530c7c";
+  sha512.source = "223cd3352eee8ee65b48d599677433b7fcbc4bfd7faa5f1c0a99c62806fecb9a3d3f2381907708fcc090637658fc67c43537b16d264bda60a10382985846dc4e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.6";
+  version = "2.7";
 };
 frimurer = {
   revision = 56704;
@@ -19217,11 +19567,11 @@ frontespizio = {
   version = "1.4a";
 };
 froufrou = {
-  revision = 59103;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "33efee00b38590de9510689730fa45f1123b5df05fae66fbdb4ffa740e8495309e75c75dba1c7d4d3b58ab7cc1a85d899654a27cc31f3b5eb983f512b5641db8";
-  sha512.doc = "4b19469842e5dd7e0b852e531d2f99159acef4b8eb0cbaf3c03a510673a95896abdc2f80209ce164f71acca58c476d593a30449fcc05ae52851f78f76d6000bc";
-  sha512.source = "4e06412734c22e9035b311771412e4221cadd00c693f13d78ca221b1e07e895f09cac9ec97c56be02aad4fdf7e7f6aee3e04585856b773e455efc499ad04d763";
+  sha512.run = "06c13998e051544b8fad8c65dad787b670beed1ec177262d3076b77d805423196b1b9092c0c2acf383450ebfefc4e670406dd7ab4413217c492759335a2d8310";
+  sha512.doc = "fd49cc43d8479aa952b68b42bdc58a1e6256048027eed2d50ee80d2312f375956d6936f91b7a1d0d6ea2cdf5414b09f987e4bbd0f7ba279ecaccd8cfc9f6dd48";
+  sha512.source = "bab0baff37c117b842d341045b3bc01ca9722f92c5b0b18c8e777dcbd06a8e6bb8a13432f44b561ef5857a8f8538e2ef47a9bc5a1f012addaa2accc1cffe971a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.4.0";
@@ -19338,14 +19688,14 @@ fundus-sueterlin = {
   version = "1.2";
 };
 fvextra = {
-  revision = 65158;
+  revision = 69001;
   stripPrefix = 0;
-  sha512.run = "bf54ec110ca65a8c8b984c5599633a1d9be7769c77f532cbeafe0117a3fd9bff560a68e2650921023f3575d46c5a1311331342a7fceccd71bb2e971f044efb20";
-  sha512.doc = "e20f248fb4bd31df6d6ab4268933fbca4c3aee80d63467a5cd12de13ae314c8316a3a6b6f2a7425c7db2ab92203277f88deb3462c4af66bdf4fc5d49d31a164d";
-  sha512.source = "c464715162526f03f13b1f958fed34d5e00a776e715fa6cf3b2d4339006f77a28070472b8b18fc1121b3cf7fc38a2a12d67fe9292a6e9fe5067f734fc53d3e52";
+  sha512.run = "42c77e74ff16a7aee9f79f8a6f08309742c1168138ccec2a085baad525422119bff6c10ee323e29aa45509789af188eead92379c5bd0d30c5e4a9ae557a0d991";
+  sha512.doc = "27ee96621793f4da2cf719c49edeb3cb272fee6b31b13cfd86653ceb027c84dfaa1885b82510de22e0ca1e365ed783b745190809482a9f20796617e3fbc059c2";
+  sha512.source = "49252913e7683100f1f12c5bf85420b6de4832d68af740fd8bc0f7fd1a18aa9e39005f6217c89c4a532aa72250bf0dbfa6de7f5991dc48fd6fc8b91e84606a5b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "1.6.1";
 };
 fwlw = {
   revision = 29803;
@@ -19395,14 +19745,14 @@ gamebook = {
   version = "1.0";
 };
 gamebooklib = {
-  revision = 63424;
+  revision = 67772;
   stripPrefix = 0;
-  sha512.run = "84c24df164a2f74e790a5ee64e3041510e7f9fc1f64e82a4004d8cf2db8c9c34f1853ac43741b5be08b98e44e9f3269e09019a114578036c7182bbf2a03e2e84";
-  sha512.doc = "7584a7ad39a267f71a84111c17ee8b59393672a69dcd128004a368045a2f9540f1eb21a62b596be7dff29551ef6411fb53f9b0857ef841734cc26bf8acfe34b3";
-  sha512.source = "9e00870190f03892ebc2c8115b4ba46e88244b3824d732d4dce6b767c0b5fb479ef5f009a3c8b02f58278c140e399c3bc7b501048d94acc7e69647f679c438df";
+  sha512.run = "b100e95290634e0697bc420259b287650c8bc436a950749c8f60955b4bb1f622f692730640c8b882400d7f1ac7a9cd847cfeacbd5310a5bd57f3925f21766159";
+  sha512.doc = "f34592d3d47f5cff749fc0bc44b4de233a13bb962674cb22e06dbabadfedfc303049c73b18cc0807e0f1827ab583732a0019345991b3bedd6daa1f3e84c40108";
+  sha512.source = "0c97580b9451a154838e8e32a67f3dd2af36d1a9e3a464d0912a0ec2e6a1338f617855ff49b199cdea21dabb2678b1e99c58dbe2a3ba5c976eebbdd87edd5a20";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "1.4";
 };
 gammas = {
   revision = 56403;
@@ -19467,11 +19817,11 @@ gates = {
   version = "0.2";
 };
 gatherenum = {
-  revision = 52209;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "f0a0897ca3b306341a8af5121d09b31d9169a90e073f3d2babc2b4a32b72d33b4f7ded73f2455e5b6e7454188112440cdff97c4332f3396c948ace8b2944598d";
-  sha512.doc = "9e6e1c322aa19a1c3ccaa622cf8657dd314dccc0fedeb7056e182bfc648fa21b06b67e8d1bf2d529fbf84652a0d6eec9d5a4ffeea1003dcfd2cd195ba628c6f5";
-  sha512.source = "5696c57b7a05132487fa04c16a577531886e8e443aef06e2b3b6418f74d2d971160cb1d95df43ae29c81ebde9459f8611bdea151895f8390e03d5ff2193fb318";
+  sha512.run = "c700375b321db078bc99492ba42c03855a80db6c1661590dba6763d52c65ec7c86a9889a38956a5015b78416d8c7a296efd764d1eaa758891cd8c7f7d4cef8b4";
+  sha512.doc = "a1f184ec862cb4d343b4dbb8014faee217a61e1f72418a8472a2a46b6731af4e3e767755f4f367631f40199aafd449aaee9bf409e9358822ed6006eed495d4ad";
+  sha512.source = "378a9b33f0b370fdcf8b068e8cb58def5b9c66b7cae4a72cd02d4fee61edb060bac43fd30180c5709b2e7367861430bbad0ebc812fae9520fe72382ead5b0354";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "1.8";
@@ -19543,6 +19893,14 @@ gckanbun = {
   license = [ "mit" ];
   version = "1.2";
 };
+gelasio = {
+  revision = 66805;
+  stripPrefix = 0;
+  sha512.run = "d5ef910eee7b3e26a180c88ae104da77becb4bed3a955938486d6763c2a0dc51e71ab6f9351304894d5e531fab714cf75f6a0cc421d074b3ac86931698582274";
+  sha512.doc = "aa49c6e0bebb4c097b78ba11781f7027b783c6280a5fa0e3077f9c1eb20f6b372b3910f5c78b0103afa2429938a94b277bdcacd210afb8bad2bac92f5022ed8a";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+};
 gender = {
   revision = 36464;
   stripPrefix = 0;
@@ -19571,10 +19929,10 @@ genealogy = {
   license = [ "lppl13c" ];
 };
 genealogytree = {
-  revision = 66516;
+  revision = 66513;
   stripPrefix = 0;
-  sha512.run = "cbe9d30d487524519153d1cbe8394f9659b8ca35e933fe1f48d22a16ae4b74038c2faa08e0e0ca12b54dbe7e4ba9174960e1d76c13b90a724d7e050590beedde";
-  sha512.doc = "03d9be99bbf1029b6747ada38714c50b805d18c2026856025f9b218cfe1ddf83bf5f412bc88270045b5a9709d724f0e745d1445a4e200dc2f3925f5e70760711";
+  sha512.run = "603091897c07e0d6643482ee754aa9f0a49ba4e71e3a426c35404f46c6f6fc43a6d24f721023706cf0c03b152ad3153a8322b440a89ee6542edbb8aa71a384f1";
+  sha512.doc = "88757eb6be6ade83a5125da7bb7bd0abb3d56367a330607fdea9b05929c8caaa4fad0be79863006e9048daa66aa0ce7ddddd1a2100ae9dfcfc835456c08453f4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.3.0";
@@ -19793,10 +20151,10 @@ gfscomplutum = {
   version = "1.0";
 };
 gfsdidot = {
-  revision = 54080;
+  revision = 69112;
   stripPrefix = 0;
-  sha512.run = "1f85b632dd3ff67144a83f9804d4408a4a39647303ede905d5ebd5386ac519ed73ed65cab6cd07242c72fdbea94650eaf25b6b4e7a09aef1c71be62f399c4248";
-  sha512.doc = "7ba7a00cf878c99c8daf855c0124d4027d7404739515079b2c0b2d7e38abb508a1b7e05beb2ee5036bf25d2b2a5c2377e4f397042b6bdf22376ab4a9a5e115c5";
+  sha512.run = "436a8cb4ea88663ff3358d6991fce9364f197027797903eb1b5c74ec0a857059579f0a58597ca6427c1651bf89440d7b7c8965e79fc668ecf444dbcc9f7ed4a3";
+  sha512.doc = "29b49271f62496e6537e84301b361d372b24cf208365d97f3ac1d6d5b82fae84ff82954ad45e87201eee0df9dfc58f3486049e219480d20add06e9eef934f17e";
   hasRunfiles = true;
   license = [ "free" ];
 };
@@ -19940,6 +20298,15 @@ gitinfo = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+gitinfo-lua = {
+  revision = 68808;
+  stripPrefix = 0;
+  sha512.run = "797d0a601440a08d5e1f2bc24ff275965e1412d545ab4ed88d8f174154d38da0f7c18afd10546d7f8e1bb0b98d395c9a9a36fae79cae671360124f07516b530c";
+  sha512.doc = "8724e388bfb545f5ffeca862094c9a5bee2d5635e1beec0e7d4f744c46b03ea63ce293a6a193ebcda5d53b6b54d3c96ebfeef6b5f15a1439d6ae6d4dc01ec31d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 gitinfo2 = {
   revision = 38913;
   stripPrefix = 0;
@@ -20014,7 +20381,7 @@ gloss-occitan = {
   version = "0.1";
 };
 glossaries = {
-  revision = 64919;
+  revision = 68437;
   deps = [
     "amsmath"
     "datatool"
@@ -20024,16 +20391,16 @@ glossaries = {
     "xfor"
     "xkeyval"
   ];
-  sha512.run = "a805158d4c2741c4efc707bfe417032903630d3f235c7431a3767e47592d8b9be2d64f6a14f21a0c7a3f4b37cbcba90d501c0ab1a551fe16357745960f362a1b";
-  sha512.doc = "24e43bacdaf3d3680b49460849f2d4eb652f2e2103558edecff0cb78d261d0275e5f416c7fe83857fbe09f7016643849ee5f030e4b3db167f469960d7791489b";
+  sha512.run = "bb81a95a1e379ec87b569d94ebf08f83823f825a70138a3770a3d1236424b976a98cd1265e7d68771460e6e96827761d697ddf0dbe48872c802414236e0065ba";
+  sha512.doc = "d11140ef1a6933170e59d497c57723e62d7ba7abadcbd9d3ee91e50171101d3e0740b0853da803bc7b9f56f86d7fc6cfedbe985e5e341cb775e850ee7c8ccd40";
   hasManpages = true;
-  sha512.source = "5240de5d2c942ec2eba38e76073f230265ce74dda641622acc8aad4c5856c1e8a749d01829ac39fc4b83479d9d24346270507c0f4bc5b957b7f4f3d07c4e898e";
+  sha512.source = "01ebc5d8d91a666a2693a039305103a98de9b2c7a958a40be04275e948664b3c5dd4818e4bb686a3a2a681b0ee38360a43fa795ac4537f8d083a2637ccd3df72";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "4.52";
+  version = "4.53";
 };
 glossaries-danish = {
   revision = 35665;
@@ -20076,14 +20443,14 @@ glossaries-estonian = {
   version = "1.0";
 };
 glossaries-extra = {
-  revision = 64973;
+  revision = 68409;
   stripPrefix = 0;
-  sha512.run = "e7e28773e9a8608dc86715e7ec984f8c49439b0a2ef22805fcf555feb44871a25e4fdcaccda1ec2e758d1cd28cb10ec89a9502899794412d678b7262058ab58f";
-  sha512.doc = "d8de64c98fa04db207d890f7ad2b52ec6eb8fddf61daf16b17a5b4520dd4436ce647a34cac6abc04091573af17e07c00cc3af473dbbc82d89e181cf680696427";
-  sha512.source = "09427bee8f2e23f471b84689d7ef04b04e6444fee8735e187af80bebe1027a0de11888e18646f6c07ddbf81b760d05de898169d3e2ed968ffbd35e9fb46c1f95";
+  sha512.run = "65f5a9e3aea0c8f419c530a9b989b0296830347cd0f1ad4deb0d879ac82970d546be4a907f90c917e35b7197dfa6b16fa6f1b4318a2b7aae74bbe924580fd0dc";
+  sha512.doc = "f90103cdaae2e6ba00cfdc82865a4beeab9f76d364579396b8710d81a14a71cbbd6168a307889664b0a289a34f9f7f9c1c69f449b09e90669184a0159c8aaf90";
+  sha512.source = "3eaf0e0f29949277c66928fb0952cba6e568d700c118e32e7045628da340bfa12aad6b1b6c794c9dd79d73bdd7e0e120a4ba2418e7390115a611696520e39488";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.50";
+  version = "1.53";
 };
 glossaries-finnish = {
   revision = 54080;
@@ -20145,12 +20512,22 @@ glossaries-magyar = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+glossaries-norsk = {
+  revision = 67141;
+  stripPrefix = 0;
+  sha512.run = "8e718082194eabed6a4448b89a703a3b63873286899df02824cb4582dd7fea0cf0c1496aff95139b8a4f0770d6d49c5257ca3db14b3581eb529f2a7e95858308";
+  sha512.doc = "fac57f6cecf17f22de50fd360e4069d2c0eb8dc3283e00ef1a46d86827a411e15e3a2228db08165b158d384448aaf6beeeeacace05390c428bbfba3bff553ae8";
+  sha512.source = "f90b767ec7d7a3ba384198942ca6502e33f6885cdf9cebfb00299e7909c10d70a4b5cab58dfd7b0a39f366b667a1ae0c1d3cc89ed91db415625ea0b2b0367fb3";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 glossaries-nynorsk = {
-  revision = 55189;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "8f94d41ee925f91b8646a9e01caa008a56757a46da5a642cc0142d0bee5fbc192eaed4ef914c93a40840606f569c5f20dab5c3d6a5fae26f64e981d12f868832";
-  sha512.doc = "aae437c721582343ee9395881479cf3d0c0b7d26ad6642311a63f0ed1e0aaf03a48e456f3e21d530dfef012a9f68f346827fe1ac5e7a509e1370bb60abc39e41";
-  sha512.source = "29a038a405cecd5232b3e015ee9e431e206f61691404309a9f7b47333f5d892ba629c9545a99e1a20a360ca0b3a72acca85ecd1f333e8615b856baf680d206c2";
+  sha512.run = "eab5020321d14af5af78a3449dd2b99333bec3e56014b00c5c7a1a4410c26ab715ee8d3631c5a19b4356af61ee1904650704c623b7d36f783424409481424dd2";
+  sha512.doc = "e123e0024f750a28fb3778ca6e4880c070524837dcca5bdb628d0b32fa647c8b2a5595a76d436567caabbe88d309a1711d81d5bef1c33542206bd3c8e56f3e22";
+  sha512.source = "ac2286ac8a06a40d0d15d5e4200c14d1c242ebb35c5e9d0c9a0138cbafcbde4f220798082dad3b521b33cdde9c569403fbf23066104daf1ffefb28078a9e0fb9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -20281,11 +20658,11 @@ gmverse = {
   version = "0.73";
 };
 gnu-freefont = {
-  revision = 29349;
+  revision = 68624;
   stripPrefix = 0;
-  sha512.run = "c8ced8afc3b1b9108e5a4a82db54a9a28ac6ba5f4f379062b0d9d8b9724716ca98234a345c06c7d809b1ce609f817f0a9acba1ef8e94ecbf8f1301fd3bc9d248";
-  sha512.doc = "3b7adbdabaf996fe8e0cff7e1192cb7f5984103398b22af6f859500a0041a0ce2ac0c70bc3f17abb7294ba80e34baa5cc77639500fa03f1a2c1c93548aa2a816";
-  sha512.source = "df7be02fdf1e4559f701b67183237f95c7b6c1b9b22f3b65688bc84d96f97964755397e4cf9039229ecec8b5810d65042ff2d7c101ef7cabbb126e6e9c93b3c5";
+  sha512.run = "8889c49137ab983c2744a6ec26dab4c1cdf2de3e6809c620b5f2fed51d3025bdc018a9d85b93b85235053d6c0f672f8cb1c074e64b8cd971d53dba3535d212a7";
+  sha512.doc = "232e8d0be31f77adbb62383da35e1e37d7b952cc2e6157d6eeb4cbb7d5e1dc0794d9fb3185e68073c5cb2980a3d5a6c447f878ea8cd45c7e2b806afdab21f8b5";
+  sha512.source = "b81ca0245e9a7b1bdfb0745ade7cd9da0734a407dd8c5cf3859a7fa269b949f38a3ca18341b6ff0e1c3d99ca04282ed6dd9fe2923901a06506fc9bd6b677006e";
   hasRunfiles = true;
   license = [ "gpl3" ];
 };
@@ -20422,14 +20799,14 @@ grant = {
   version = "0.0.5";
 };
 graph35 = {
-  revision = 65138;
+  revision = 66772;
   stripPrefix = 0;
-  sha512.run = "c1846cf4e04e62641adb6b9a5cf9cdb6552fe8480ae167cdea44b8cd7959745ab54b269d083d927120240129572bc7c492b73ba1126e2afdce80192c0cf8e218";
-  sha512.doc = "f32a46b9fd564e45f4988a565aa331bf4971a0b2a5057a5cbb65fddd762060a7e7dc86925e8df3d7a931d881466efdcb3ea936b950181573dd7630d9c129adc8";
-  sha512.source = "685e0307a44705b0272ff8f2a61d90768a05fcea33cc913e8645f1d5a4768078133a645fe73b0571d87ba0000b4b13810190eacf60bc552dbb6c43bd46f06406";
+  sha512.run = "6449e4a42b8de0556d9ab46b3c5f4e0da94fe015b289877e1e9a5ca6f5e84d2f0d621e8f02bf4cf3959807f830f2671124e725147fa033d25444eb14048fd77e";
+  sha512.doc = "bbab6b3a5a8ddf69de43815fe54a29ea376839f0dc8e1af47cfcdc55cbeb6ec93005c1c137fe717b8b5c81ca5ac87e0d2d7b0f181608fa1d7714ac2aa37f1e3f";
+  sha512.source = "f058197a060da4bb7525398bf51f76b595464cf2253fbd8135d20e0e9b66d12def451eb687c229a96a7f2f79afcd66b768a4db37d448824ff9597eeb3a7ae903";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.3";
+  version = "0.1.4";
 };
 graphbox = {
   revision = 46360;
@@ -20442,15 +20819,15 @@ graphbox = {
   version = "1.1";
 };
 graphics = {
-  revision = 64892;
+  revision = 66204;
   stripPrefix = 0;
   deps = [
     "graphics-cfg"
     "graphics-def"
   ];
-  sha512.run = "e123ddcd0af8ddd37519076b86a443ff74af4da4a960446708c344a2fe75b700a4700db71414cfe06470532ef863926e5e45b9292f81dfed07f60323543e92cf";
-  sha512.doc = "9ff56bfcb46f79ea455797e6582a04ce4e8539b395c988382359cdc7eff81544861b85f3b9303acf12a3f05b66aa52311d776cf3d12404b976068369f3947e08";
-  sha512.source = "a23d65d454559f6f84f3a810357d31153bec5d44c8ccbf142b1ed14eeebda7cb7c385de9b5da7ce225db169f05e6d155263a097421c84af6e845b1acdbe36902";
+  sha512.run = "cd36d380c8315829f3bf711dd970d5460f00e19961671714dbdf5928c2e842d33438221ee1fd9e45061a2adabb7f75eb34209914229eca872f2bb7fe7b346a16";
+  sha512.doc = "b2a23c52e19eb8f6eeb53951f5fee9015f6d0ebeeb8a97f1bf4db217498ddb27b62d028b3554be3e5ec3b866d1d4bcce6bc805761e981c718f123f6688ba153c";
+  sha512.source = "45f998e3729e81f50cf7c064d1a3926c18007069b4a89b478e87a6f97f3e6820eb5d58be6025f374b05d9c443c8a101918ebff84de512366f5415e041356a848";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -20471,10 +20848,10 @@ graphics-def = {
   license = [ "lppl13c" ];
 };
 graphics-pln = {
-  revision = 65187;
+  revision = 68760;
   stripPrefix = 0;
-  sha512.run = "968848e9ed432c21594670df42354badca67c38967a716aebe3af678b4904d295f908365532db6937f76fdd4a5195cae2f85093e96641bb49c5f4323797e9aa5";
-  sha512.doc = "25628fb24b2817d8bf64a919c2bd29ee3b7fb618e5d3eccf7ec4d177de772f1a580d2cc5bddfe1e69792d88804f28e9e8bbc8471085d5ede1e95f78663fb5615";
+  sha512.run = "33c1b9a4db0c564df07360c17ea89a7cabd557b21e2703e68532388f7b977a2f99f12c6d7002e9297b8e35259a42fb713fa0d2c49e6c9a347845755186437c24";
+  sha512.doc = "27600b6127990a06a75ad8aea49a86b8f16b68ed306ca3ec54762124af02ddd1859adb714eb0dadcacc652578427d230d37416cf3326f567239dfa4b9d8b53e8";
   hasRunfiles = true;
   license = [ "lppl1" ];
 };
@@ -20547,22 +20924,22 @@ grayhints = {
   license = [ "lppl12" ];
 };
 greek-fontenc = {
-  revision = 66516;
+  revision = 68877;
   stripPrefix = 0;
-  sha512.run = "fb8c1a71409b90286cfc0bc9be6049fad47416611c1f02a760121f4a585a8a9b8da5c18d06b111a51cedea38165466a3f583a4fe456e8d3b6a3c150d76eef0d3";
-  sha512.doc = "a83257b0205cf4cde35c460b5b06acddc29d7f70a8ac46d8ada195a033ddfbe7385d35cab07fb0bd0c61d627d0c4956babc16041b6ad569e6bff14eacc004eae";
+  sha512.run = "24aded84aee9dbe4674a019fb3ffbe0d48fb51d88908e532cbfbafbebd8dda63ac6d2d47c907d32063bd57c3c9d90d51b1e8f1f59ee4fecb451f20002d4a1115";
+  sha512.doc = "67f22594152f543a1b59e91a49168b92d6e9870f0c362a69746c6d3ac9fa4918980df4708bf1a6697fedcfd519153b9a29d92114b6567a2ec03e65210eba3d7a";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "2.2.1";
+  license = [ "lppl13c" "bsd2" ];
+  version = "2.6";
 };
 greek-inputenc = {
-  revision = 66309;
+  revision = 66634;
   stripPrefix = 0;
-  sha512.run = "a4846b187b1831399bc4210656aedf232d58e8d96841cf615ae1b5918aef79b27e1bdc695b98cbac6cae8a5a36f9043febfe83101e291d154b2c7561da17a56a";
-  sha512.doc = "9658b09102198d7ae3d58fdeef89c55d88a393a2d8bcc14df82b42a97ba6cfa1a8ef5136042bf09f04284dcfa76d7ce9171b47c5d3a09b2f6015135edb3ee8cb";
+  sha512.run = "47dbf3388943440918879234037ddb08a8ea7f2851945273af2a01b032484e849af3898860f1daced148b770c4146701a987afe3ba3b8b66dd030bce36c4006d";
+  sha512.doc = "2f85fc72c0415b48fd74ebe9d19e5ce86440c57c08038e96a2d99673143f2848bc347e95f7beab7753d0921414fc635aa9b4f98eafc91fabf64155a55a407bee";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.8.2";
+  version = "1.9";
 };
 greekdates = {
   revision = 15878;
@@ -20741,14 +21118,14 @@ gsftopk.binfiles = [
   "gsftopk"
 ];
 gtl = {
-  revision = 49527;
+  revision = 69297;
   stripPrefix = 0;
-  sha512.run = "cd1c08d092b11423d77a87a5fd7cf4f62290aebcfd6a99b12dca957e075d0b26cc3c482b45e5083916bee3bb6aff91940df375ca4b1dbcbd9fc37a31d8709aeb";
-  sha512.doc = "2f41bb930e46a95d5c7acb07153e5d874724ac009b2741f6f2e62a9b56165b5e2cf06cf8c89cd9c1fc42a1a93babf6761d0a48b418ddc0a0f5d38e9c2f31f175";
-  sha512.source = "5b5d004fbd3dafa14102774a3bf57867df1cf9463630a7912d49303aa9daa2c147733badeee3f628c0d7c2c9b8081131ac39f195f6dfe97d659a945702b7eae2";
+  sha512.run = "18cac75f4370c759fb74079c6647553f5d91a8aaab946c46a54c40b8ed757e3c14fbb2f2f5b375e691c8599a7f7d3ca4ebc5a748f18ad35e507305a5e5d8f73d";
+  sha512.doc = "ca1fd56abaf08f10fc6c830b51d799a71ba00c11d94e48619f6ac44f151920e8e53df450c23426a860266d5c6347b7c24c9373d152be80c2ba5023836df6f89f";
+  sha512.source = "e1ca28c2729e2a4b10ba53cb3f18a657ea1ac7cc0b3eae8b7d13b70ee510008b90d900eea9f5f48ec8b0541638e76ae73e533493ab5b1b0de020d3ad39b95561";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.6";
 };
 gtrcrd = {
   revision = 32484;
@@ -21006,23 +21383,23 @@ har2nat = {
   version = "1.0";
 };
 haranoaji = {
-  revision = 66119;
+  revision = 68501;
   postactionScript = "tlpkg/tlpostcode/haranoaji-tlpost.pl";
-  sha512.run = "96100a78ab4292a4dc656fb70e2973f75ece3964f3a0d85d9f9153b7052ea90c14f074b195d31e46465dc52ea0516541a16981239abf552861dbca16fac3ab1d";
-  sha512.doc = "bb4161c95b760c9c103f086c134d7f7528dafd92f82623dd95322ea644b86c35e2baef05170c3c67a7f1c4905dc8a5fd40108db1c65074b558eec69f0e3c6910";
+  sha512.run = "2ff313007fb9b93503ed6d703c976f639d878ccc706060e0a26ab8a21ffe1d4669aca9df9fb001c886a1b1f7a0e140403253aaa5ef76a6e91d327c504fc251f3";
+  sha512.doc = "1c294bbfbbcc6abbbcb0cdf6ea29335d2b1b039545c1dccfe60e8ae4f1883d2564a5924bec22b0dc817e4eef0009108df348d7af788afee1dba4f1b7f1ae30d0";
   hasRunfiles = true;
   hasTlpkg = true;
   license = [ "ofl" ];
-  version = "20230223";
+  version = "20231009";
 };
 haranoaji-extra = {
-  revision = 66119;
+  revision = 68500;
   stripPrefix = 0;
-  sha512.run = "f12b9c3865fbd8c94e6138ab44b8a9ae35b66b3d0e0ad7d07f4ea3c468b84458d335543bce6e1b9c7daa5be622c9a0fea92c585f779a69ed01e952cda619bbd8";
-  sha512.doc = "881a80dfc5646a9e872acf0db968a40f5e151aed459d29045f4e01c714fc7cdb7d51012862ec8a81bb40c81b5c9600a007729a473fdb61dd12c18fa6c41f7394";
+  sha512.run = "79b1d71d80bc73681f1d1d48679c2f4586834d7dcaebceadfcc17ba49fd6c41849cae77a88ae4e45f7b2f535352a27aeb91089cdfd5a75b0af88024988617422";
+  sha512.doc = "3331b5113f2f8634ddbf4e280aa7e7b8f82a2ecb494b29d2a1587ab338130340084b1f70402e70fe2c0039ce57a4665030581323c703ed504caebac823a712a1";
   hasRunfiles = true;
   license = [ "ofl" ];
-  version = "20230223";
+  version = "20231009";
 };
 hardwrap = {
   revision = 21396;
@@ -21133,15 +21510,25 @@ he-she = {
   license = [ "lppl13c" ];
   version = "1.3";
 };
+hebrew-fonts = {
+  revision = 68038;
+  stripPrefix = 0;
+  sha512.run = "5c27626c22275c42c25737d35af3c39a98a921037f6b9165a3222e168dd2c679e75e6854f88713681bdaa8eb8961bf58cff3b34c207bd1775ffea474b3524ffd";
+  sha512.doc = "bc7f81a0f09b544bee91bd387504f5a764e7a6df207f3255f5ba25b1fe654532b14e2c7ea9d1d2804db875b05e210b11058eecf7c15fd1fa7a7b516e2bb20207";
+  sha512.source = "21203d9e15eb6d3533c7a50c5fadf2cae403dbda8316a57d2a7e834ccbbcedd483f11fdbe12d1ab72ef9039e195f31e57eee1e0df8548da052bb030576557eb2";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.3";
+};
 hecthese = {
-  revision = 60455;
+  revision = 68584;
   stripPrefix = 0;
-  sha512.run = "c7956496814a25dbcd42c7f0034e32cb40746da09e8a7d527b1b5cdc4d557971b55117ad35b60db18e21bd2433f13d3850fdf9e2364184c0dd9e7a248be2896b";
-  sha512.doc = "680b2cc373f0b7bb265ff01f3d07fff56c07e5c789a7528a2257b2e4282da510874611a4754c5b65d88ded8b8b32ad1343706dd1d77e8a4594c7291fa5b201d5";
-  sha512.source = "fd4318bb47d45336d5010544f0e048a8b23d1a2f33cb0c7c24d54fcca59c20ae62887285dbb128f234170dc0cd057e96793b8012274ff400e2f63da0821dd309";
+  sha512.run = "ca64dc8ca2265ea038ac3c2250c4ead4aedcfda74ee28077db2b9f4019f2ea304ed02e7349ad0a191012d2c903a1ed21b879459c048b29827ea3478115c935b0";
+  sha512.doc = "28e1e4940bad5a6f76160f42adbf3f5f793cc9a7cd869dfee2389229335c09036044d79d3e14f179d5e8bf32304c04fd23ff997a116338c4a3500906fa6bd1c0";
+  sha512.source = "348f79081082f3b1c6362b2bc7a59b7d55947955a482bc5f323119ce3a47158ac07f44c2a95aaeaa3a3c9f2d99f322f3a163b90bc7522d613d55311973639ee4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "2.0";
 };
 helmholtz-ellis-ji-notation = {
   revision = 55213;
@@ -21170,104 +21557,114 @@ hep = {
   version = "1.0";
 };
 hep-acronym = {
-  revision = 64890;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "2a63980d54f5b00bd495ef5c44ebb32d9a75723ce79b9af131cf65da4d114eb3812581a2c305126d4c166c78bda21e164eda1fd127c3d3f0514a4e5f34cf3621";
-  sha512.doc = "ee7828b183307f94e5b77f44d228af390432ed51e5a75e96408c187139f08f9c7f19cbf80e1c752ab38b55ecdca9b0ea99c6a1043ae1eeb03ab0998398091100";
-  sha512.source = "7cd7b4619e13cfd97058dc7ad57d3c24ad7de4b39c7ae606c98c6a8c1be67cb0f370df17ad2325f62bd585abd4e98836f33e9201a876f90a5812b8c937dc1827";
+  sha512.run = "3eeaf8ba9215868df3ad2d8eee5ed17aee0f91c5404b8c93a7ab378ff6d928660853f8dbbab4cc52421f0d902936983a8cb34badd675453d2fc30344de19fb1c";
+  sha512.doc = "a17c6f61a44253d6f9db070392b146f0fa297c080f04577f30e190a2742e344c22b3d70a58d3609eea6d981e843bded2a1a01b3fda356c822b1f60ef7ed05271";
+  sha512.source = "83b2899d05ac7f8b2e1525e76327303a135860a358c08dcfc6f9d1c66e79c1d743f77a625b225c477a39c07a091d282ea2869fa9f5189ae4e3007e7e792fefb3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-bibliography = {
-  revision = 64888;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "205a5614ab353eff09732cd428b3ee5aa8ea6ae107b7d2c5b988a86eb218c06f70532d0ba6f4dd124e560e7407a2f3fa5832f04ca53094b55c26b043effd5a13";
-  sha512.doc = "24e38cb835bbf1849c56a6635c7680e86cbb3b48c9c06442c4bc431837a88c739e38cfecf86d8c9c35864485c92bb00248d261bd0dd794e6fac94f80d23d7b7e";
-  sha512.source = "0ae3ab366a1d11ce3076cc96cba73a5526a81bc7c429a1e9f81d122a9d35b016b83d54b7cac5a06916d2a46e183ccc3ff759e163140299ae4e280146efb075ea";
+  sha512.run = "8fa9f0a0f19f7dcadc88e727c461af05f3c0723d2eef1c4c7cc91fa0b507a6cc20f0414c82f7bc3ef12932ea54e8fd9c7c402fb2041032e23ee14c6dafc3a467";
+  sha512.doc = "388fed1b3b5b9de09ae4b1cb73de2f618f99293e1b3a4cba5ffaa2d5ae611e454688bea2ce01780ad844380e2de56e62c38013677bbc3a9194d0831de4cc97bc";
+  sha512.source = "5e82014ec9abfc9ff19d01c929d7475f6bbc38d0e77b9888f884862f17c1332a868153315af6d13c023e8f94b3d8b567e73d610ebc17c2df799692c603d5b509";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-float = {
-  revision = 64904;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "418e6f0f1811b0c5604b397dbea4c79b1f9996ac87304eb8785def44d23c16a5ad9497d66b04fc342a3d10ac6a0c9bc35c5c222894e24bbc8a49c5fc9fa32ae9";
-  sha512.doc = "e26b9d807922a614adee0e03c39300ff77b3f52cdac2e351fdf9343a6e24f0077d14eeb650baf1c416a78712080b71bfbf64853a94af6e96f67c4a4a84244440";
-  sha512.source = "c28a1b88639321188acd863fe75e8a8be63c03021eaf503cf5a0541a0674065b64df88e1dd89da5827388a862c56fd5762b6672288b72b5fa5271f9dfa1f32dd";
+  sha512.run = "ccfbce04c651a478a811b2148141090fffbdb3851a05b9d3fa7683943fde9e6579eb75693c4b2834741b6cf02a5b381d1f80bcec5d44783e71605e445840145a";
+  sha512.doc = "11c922d42d6793dffab0cf82f228f554510dc089956030c9c5e76b0a17e4d96ce2ae4d95533f0f704be1d4054f35884901a61ec851fa73f68b06c87b93f18821";
+  sha512.source = "c896cd60a4b8b4bf2bd46425dc615a55132fda57b42ad536807bba8cfafb65feef34cdacd4efc2b90de2b30bd859d6695b4f670d5f507786c48d19b8d0dea842";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-font = {
-  revision = 64900;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "57a5d12114bc9dc36367a9086e4ac5aa6bd3b84edcf48d724284a1b04237b95adf7b15bfe5b0e6aad35b38a759d4cd4cf3da62b8bcb31660602a3c2ef08f30d4";
-  sha512.doc = "a0dd46bbe862a9e9fa8c6c69dbc393f58d0a5cceecce6281ebdf2da87b78aedee1f57439cf28aaa0194d35b54e735b9d55154c6879e882e5ca4308cf7b31437d";
-  sha512.source = "a6e6118562ada743d6c11e733c781f4b40690e9d203cc05fee3c039598d147940d544b8be06f88bd9bfde792d593daabf947e705e63f127080fc63c7695f4f41";
+  sha512.run = "a70b15ded3774985b31a78ae5d05572922133d3fb59abcb482677ccefb6767726b902b62007e9d0e14950ca9e9f133c8677d6c2d352e0f529a3909b5f6da867a";
+  sha512.doc = "97a4c20933260eb24a935ed7a780a6e0a49f8b305872a33de5fe6df439ead0e555b909b04bd559016451bbf5cdc3494a3854d257b1804bc022a8925166103877";
+  sha512.source = "d85c106c458ebb002830f7f0cae13996f203bbc3377c66bc2776b7c501e6c2bea26530955b250eb5dd96fe4b6a18af18c9b616ca49096b9133d0041782e2ebbd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
+};
+hep-graphic = {
+  revision = 67641;
+  stripPrefix = 0;
+  sha512.run = "59dc1363cdcbe8376b5d5de1a2220c9d70c7022d1d943f657ff226a9ec1bafc302b30255983c090656d293c0995095dc325e1cafed113ff43ea74d2a85add741";
+  sha512.doc = "9398029fe703f385decf3ed9295cf64501a9ad7efc3c50bddf1ac261e780dbe5a4ad9fe5f1871c2a8f081909741ec11a93b2b399b89c841cb9b661d812f326b2";
+  sha512.source = "fcd58e2b778eb16b6b0cc9d36d44f233b9f2e40a243dc8792f37b8159c4ec3b9500df418465ee2c809bffb24d919d8295dc83b661553ab413390b0b5cf32b9c6";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
 };
 hep-math = {
-  revision = 64905;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "5066944fb9c113e38e1055eb668709bb69f654871918c74fb784cc91138c45e06b26e55a2b14ae69c35757d181c46ecc87b2684128663765371eb5d3cf46747e";
-  sha512.doc = "98f0a956d9e3015e4db038ab9cbdad943303d9bce072367b3e819a6f3054226a2dba26825bed6520782227bf1e2f39ee81b90f3dc1a7de73ba1db4524ad91451";
-  sha512.source = "4c4b0975bbc75be8adbb1b2d020da2dcb98c6dfbd4fbf8ee40770510206d24c89e0132140f0376a5055222f5bf8ae7ad46cd6aafa6b6d622e64024d29560f1a9";
+  sha512.run = "4446d255ec62b12b2eec1958696c10f4d55d83e3ccf30590f40d146d1305db3a351894c73d03baf6327834d0cee4592491c0a3a57bcfa7f95af0e172fef3148d";
+  sha512.doc = "5110d1cd03ca6b925ba6872932cb53c99068399a5329d7368189229103e13f79296bf6b97b2097ab800823eae6dd14ac408fe404d309c37b1e6e9a20c6543ba5";
+  sha512.source = "d853885d8f6910843558fa4854b51719e3d4917a324096e5dc38cbd7b701e8e250dea3a86fb803637268f36858760c2ac82ee147cd982df0b1516b93cd92150a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-math-font = {
-  revision = 64901;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "ec36fb9e13fc57148bba67e0735879c203e3e955cad88c6d8150c5f77d9204c6a6cf9c95bb76811ca8fd4ef950c49c7f28961772d03c96d14e37e9bb67766215";
-  sha512.doc = "b3fccd40b8133b29f22bf3841e65f7b48ba93e88ce241fdfe33a7a57b2f2fed7f2f5a9833df3634f17efc115fad130fb7c6ca8ada63dab03bc89487c0e6bbbae";
-  sha512.source = "d4bf264ebc8fc2c4f33878b3af6e44eaba50c3de3b5ada106f66d5ec9a51bca9d48be44026e62a12f54ec5ea016e3980918a32ef5261238f4f99e3958cbcdc46";
+  sha512.run = "0bf2ac1f414216568cfe4247f1c1c9187fbc8133831ebe7a55b2c2d3d30555db36b0c0c1edc2e8bdb799a34b20650990d26c1cc838c5a3a31c55bd9160ab1efb";
+  sha512.doc = "eac39c9916a87efd036b9f680ee9b774584845d1a3451b192857d5db72cafb1eae5ce580f1225fc6afdffe80e136f69ed2447f87986cdd3afb34adc9f9d9a49a";
+  sha512.source = "ff88e396d084bd47256015530ed0d9b6a2f29f67a0a88db018fa6c1efe5d949449a8ecb339e4ad438ebaec4f57792b8cd83496ccab23ca64e383e28ac3929cba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-paper = {
-  revision = 64917;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "16cca3b6d0e74a01cdf0904211c41e74c7a9d85837a9b6c37876cb41a787d94d51efaa8a33af0c2ffad33805eff6d91c8d1556abf5d96855da10752086352529";
-  sha512.doc = "f3d63bd7e422e7db8eaf9b2b61a177f09ba27e6f3e61beefa70d30022b680171321d969c65ed5105c1752da22d684e3e24e72a815ae145f8a314d3df252beb44";
-  sha512.source = "b70767a81d62d1db480b26f2ac5398d5db691ab538111b4954fa59be55f258d2a1dbc1d50103e4c0ad57779d2f10cd0a5ea3b73202d1ea737325c9ac078c2d9c";
+  sha512.run = "2cb6988dccd76f121a7aa39de3246559caedc0cc697a25382f7edf6cab36af32b03db915898f6073b31cd459e8dabb3da3acd387bd0c027e44d40af917613c76";
+  sha512.doc = "dcb2f4aff93c609edae00fa44c285cc6f5d5bed76026c8d5f3f722deee19dc197a28dad7372f2b44466036d6e8aa0e576457e07f953d36953219175224fc6818";
+  sha512.source = "ca7865f2f8ce574fec8d7b3a9faf77ae3899d75a2c2bc7200b8d355b89149cd88e0fbba66d5060f5b5cb567aa6a355d5ba45d34863f7fbd5749b4073e6114437";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1";
+  version = "2.2";
 };
 hep-reference = {
-  revision = 64853;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "1a422d571817be0264385beae73effb4ac674f2e05396289373c0d0792f591c39ebc2bac21d9e6def0e18dc389b7af9f604b6aebba133053894b2874a8dc113d";
-  sha512.doc = "8952bc87e4a3cb1780ce51ea402b3dbe924b5e6adc9d05c9c0b75bb2e391c8fb4b07bab0f3419dc9f21bd4e9527eca5b56f6c10ef5a6e41d6c964e15cf9a5a0c";
-  sha512.source = "3a76caf01215ec123f930e0812674e67753727d3ef2adfcba12f0df9a0291739ec9493aa1b0536f749e976463b8c8ee90add1682109d44794c79e83967564b44";
+  sha512.run = "9cc4b4b63f41b28fa95fa6a81e47b5028c8ed0bdd03670c6d239bbcc09922265dc69b443ab2b1a4032cbf966a5202ff6e8b1a8c61afc2072e6628d11e071391e";
+  sha512.doc = "588d2c5a2990b44d64598cf698cc1d6e04e92991e5319167e412692d62ee54de5c6053e4e10ce719f470ed08c028d03f9dd301afb65be4f5370742fe621a80b3";
+  sha512.source = "84ca10f669a9541f7c51609b72d2caee0bee956489b4b9efeacd356548ea573457bc5cfed865b3806b1175d0d6b3b47793283589eda435b065668395a01a255a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-text = {
-  revision = 64906;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "6355b807fbb0f5657ae14f0ab03864536a47cb5b1ba477cd6f0df6541602ee32dcfbb5837ac24297ec1f67cb044d53d27f202ba747f81c7cb9313769129ca760";
-  sha512.doc = "4b4d2319195f42dacc6b35787b54625e0db00119db9ae42c280b070aced46adf9fd5349ea8ae6bbe2e287b6f2abb40832087a3970d62b2f88d9b3bce72b9894e";
-  sha512.source = "9f0a4db06f3cb9858132e9f06530c779c698cdffd53993eb75f48a4c9b7c503b45b8f589934742609770ed659f8a0b307d59c20b7f5d0afad2ca65959aa39e8f";
+  sha512.run = "bbbf90b0e85a9b962267f42a2ced125448f8aa85bb93e347214164167a151e663f647b754e4b55faf42041ede7b6e90b6a073290056e00814ed25bf554eb20b7";
+  sha512.doc = "5c914c5b3bbda70d93fb340b863c656d67a480eb3f59c51f05fda65396d408ecc26229992bf4a0161fbbfe0801e8807381ffe7fa3a502ca68b56f5a3afc88caa";
+  sha512.source = "0052e0357e20251faab93ac645cec196a504881db615869e18073124671005a5c942e791705f2460f55bbc8bf4aa4906b74ff6cacc7174c59aaec6106afb5291";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-title = {
-  revision = 64907;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "534e6cc0062806de3756d5593657bd481866813541fac8b5ca31655f03ef4f00c02a98eb366160a0e7621821d6636b1d4ecd33933ae57e31268001753e9c1b22";
-  sha512.doc = "c94a7eefa02a942fb0b751a197ed2d52d7b7f4a390e7609e8c122f08de59b83a421b4150e867d93881aa1bcab45ee345c76e2b23b566b0774658c0d08cfd799e";
-  sha512.source = "5f4d1d073c8fcff302dd1a454837e80d6a9b821cd0b25eb0487992c3d8c474348a42644ea5c3a7da414985b0fbc78f083e565e798a42a27a0308f88c8f153475";
+  sha512.run = "6da28ecfebbb06469fc666978d8674e81b60ce019e0f9a730bafab928d95af4d92bb8783275bc261a43cc61efcb14cfdd4973fa9f52b92f33d70890983d89e53";
+  sha512.doc = "3841dc3378d6f8fff0783815f68d75581dc5623961799a034410de2e37224fbf0b1d9ea6b0b65b9b5c339cad565520960d51f7077f7c785807e9afb5acf83d3c";
+  sha512.source = "40f64530f2328fafe8163d4bf0ce2eaa7ff34f3d1661dda967bf14593af9270e33c8e3eaadd79b7d9b70e065a8876afddeaba059c64a7b0759f1cffe3bf565b4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hepnames = {
   revision = 35722;
@@ -21314,13 +21711,23 @@ here = {
   license = [ "publicDomain" ];
 };
 hereapplies = {
-  revision = 65251;
+  revision = 68638;
   stripPrefix = 0;
-  sha512.run = "b89cf4ffd5299939b681a91acb6e06c6185bbca2077677aa551e3d5ae2463f823293fced819f242cee8806000009a47baaf5375aa4487568ad229a81208eee6e";
-  sha512.doc = "e55430f11a776d57c0ff022d11317986d454fcd1101a6df73afcb4c4b7f3782d1383a198d024e56ccf3950187017590e81128ca5a7e91247ae2e90271a4cd91d";
+  sha512.run = "b796f6f276bd9cdea0f469482c96aa42956417c544647df201a8dfecfc5041b726a1ea1084a51b392b6f71b3172961689cce0cc7be63c146ba7edc3dc8bcac35";
+  sha512.doc = "185798c65981f2d09b5c49ac3bfcca8763ca929399a9f534316ee8345f5550a437be10dd39bc886febc5d9de4156c0642c125ca2a033d129479c9cf98bc885c6";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "1.0.1";
+  version = "1.0.2";
+};
+heria = {
+  revision = 69058;
+  stripPrefix = 0;
+  sha512.run = "2ddbf4e07a47f72b402087046e4778d7d655af7243465bb7ca4ec10c3c15b72c49d8c6343e4ece780ac4aa1e2007e3fff4f8eb395673952d8050e7b6803b275c";
+  sha512.doc = "08e4a34df324d61089a7632b2b8d2b41ff4df47fe633803c1c246525b86ec25ec40f6b56182432488a3cf4d1d90b36038773104d2c78a809b12d04f7a9a23bfe";
+  sha512.source = "307a67c4095b52687fd978da3a1aa90b4cfb484d5f00876c86bad6c7103d926cda269ea081781b08a4b3cc2990e6570f60590b2b431f6a3f9c4d5c58d43016fe";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "3.2.1.0";
 };
 heros-otf = {
   revision = 64695;
@@ -21397,13 +21804,13 @@ hfoldsty = {
   version = "1.15";
 };
 hfutexam = {
-  revision = 66555;
+  revision = 68829;
   stripPrefix = 0;
-  sha512.run = "990b88861c8e7c3701fde44ed4aee85c097ce158917dadfef8bd603adf07af6df3b4dcfd32c423629cf62b5de62e2862ace266d4941d028f73a55d07f4c69d90";
-  sha512.doc = "0a4643a0ee0288855069c8998f26abf4751c0a3f5df4c797e6b0673bfc9a743549b6119fc22606451edf9ddc2ae58560b3a93ba46739fc6376cc6c0fece59a5e";
+  sha512.run = "4ebc270b01ed4f0e9d1aa501cb16cc0594c209cb77423b3b83b43600cb1080fbbfa8ecd9d2512e460d7215260a3045f1f33f469762e8a7321ace472d69e0a43b";
+  sha512.doc = "bc70bcca6f0dc432fe6fbf1c92ae8a364a93a8e94d65cbd22939ee2313bd5d82e2446e60b6dc0f8a4b88e49f5cb2b3fef9ea5502e5362860eff10a8123645c40";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.7";
+  version = "1.9";
 };
 hfutthesis = {
   revision = 64025;
@@ -21441,6 +21848,15 @@ highlightlatex = {
   hasRunfiles = true;
   license = [ "mit" ];
 };
+highlightx = {
+  revision = 68756;
+  stripPrefix = 0;
+  sha512.run = "64919a37471b4ed0520cfcf8685a67ba2f9f84a278b9dc7524a484876e95072906cc5a7d40bd8c751ea2d4ec65633e589274e0b729f43625b46f91928a50b3e3";
+  sha512.doc = "ff1b00aacdf83fcc54021520bc447184ebf29498d2b5ea66b3c3266560066bc1b05d7f9edf61eee810100531c76db4c65814cb1d6c3051dd1e3d4911e41c145c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.5";
+};
 hindawi-latex-template = {
   revision = 57757;
   stripPrefix = 0;
@@ -21487,7 +21903,7 @@ hitec = {
   version = "0.0beta";
 };
 hitex = {
-  revision = 65130;
+  revision = 66924;
   deps = [
     "atbegshi"
     "atveryend"
@@ -21510,7 +21926,6 @@ hitex = {
   formats = [
     {
       name = "hilatex";
-      enabled = false;
       engine = "hitex";
       patterns = [ "language.dat" ];
       options = "-etex -ltx hilatex.ini";
@@ -21524,8 +21939,8 @@ hitex = {
       fmttriggers = [ "cm" "hyphen-base" "etex" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "5a88c0f4d7bddc0161ce24bbe17884a93469f9ffb56ea6a2dcd3045cb97e5c9d09941e44e365483bc5126e1c9c6970ad151e19573d93b1472534333a507f1c63";
-  sha512.doc = "3016748caa430c75689e27459c002abc8f68d4aa1c2d0be04b1f82981c44f7a3fd748f900aab5e4c37b16a56f884d5c0cf7d42323288c74cb51b72c19e0b08aa";
+  sha512.run = "b831998a078c61be41f376c73a63d2996ebbb128aa90dcc9f21e1e80d2e834d6628d150d9e98819defb4b38fcfd9e1ddd0239fd0ddea19d0086c7187d3d80a7b";
+  sha512.doc = "f278d0d4a4b37e4489ba46ee3325a9af5bd7205359b55f30a3de10de36182c754974e0b7a0f506ac233280ee395bfdb5a8f7f5c3ee1cbcb0c30480338968e0f9";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "x11" ];
@@ -21604,14 +22019,14 @@ hmtrump = {
   version = "1.2a";
 };
 hobby = {
-  revision = 44474;
+  revision = 68137;
   stripPrefix = 0;
-  sha512.run = "669c768dffa4e88d831d0a03a7e518fb2c101cd0af9ca1e15e6527ccbe78a13485145bedd4ef45cbaefcc94e4bead303acb89a0d0f50c6fc3a7ab312717febad";
-  sha512.doc = "7c8a353078be8b94195558d1d7a319173b4480a616c8725b99357ed3a086565c238b944b9b3baa719b354dcff9476aa7c7ffb055565df546054e662370d5d808";
-  sha512.source = "216ff34f42c28fd3e2303ff5032a299668881fbe51e8c8957547dd7953b2296e984a449cc09b79268b968ec8fcb8b774453a26e88156f5b7bbc6cb78a57de7e7";
+  sha512.run = "0caaaf772dc325e70594f909f1a58740224195aa7af7ef86571e7a97e1245cea5ad6a704415a3275719fadaf74ec55605e66af55dbbdff4c524f529e121035ad";
+  sha512.doc = "3e418503ef48dd0be479f17171d8c6767c77da95d43a2f31a374cbb6ed47c5129e2baa64ca15128240856790ea92acd2b090364384c29954266d2b9ec6aed362";
+  sha512.source = "5978e0c2f5c30145a9a5562661004a50cbb5054ea98907c25690bfd1c55f13190d74283ef79e7995d6f63d2d1516919062fe746b989227a4e95fe091ff5c9acd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.8";
+  version = "1.12";
 };
 hobete = {
   revision = 27036;
@@ -21639,6 +22054,18 @@ hologo = {
   license = [ "lppl13c" ];
   version = "1.15";
 };
+homework = {
+  revision = 68773;
+  stripPrefix = 0;
+  deps = [
+    "einfart"
+  ];
+  sha512.run = "4b74d0a93d720252e38f7b8452cd781f37de2e17343b5003ef729f1b1d2b50978ca4a22c83fe0e5e941b92ec9cc31ba4301b322e3c4e2bbf18f96d8d14c0ca81";
+  sha512.doc = "e1c29c37dbdbfb968409a9bbc8c64573dbbbe477add7a3c938162a8189cd0689ceee8c2913b59a2cae21099cb0f0ef4db8fe7b23bb802d884ec20af61896907e";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2023-10-15a";
+};
 hook-pre-commit-pkg = {
   revision = 41378;
   stripPrefix = 0;
@@ -21678,25 +22105,25 @@ hpsdiss = {
   version = "1.0";
 };
 href-ul = {
-  revision = 64880;
+  revision = 69359;
   stripPrefix = 0;
   deps = [
     "hyperref"
     "ulem"
   ];
-  sha512.run = "fd3ddb8d494b5b6a80bddf3e28747cb872452d8bf56e0e59cdbd19e811a235683ac0aff7e92e358f7b9f352cfc2b6c03f2263248cc13e147e4dad649fb331381";
-  sha512.doc = "9318e6fd357b9705e95db7600dea3b3b1fe2e7bcb0dffec4bf92b5375a8d7feaaf1574188bfeaefa71f05f6aa3728b51d9c7c72908cc66945a3bc8d5391583d9";
-  sha512.source = "cea37410dbfd8094c4028b96f03d8ac631a32f349098ad5acdbdd484a789d2da58a21f65745d647e05075226d8ad3e1c2217850a312afe522206e900c0b00eed";
+  sha512.run = "e8e5d7767c93d0f30a7cadadfb2c7644078b590e46fa073db9251426f961dbec4abbd0dfcf6db6056f9a03342a01d706e19da027f64a01adcfa584a9b1becd2e";
+  sha512.doc = "56babcea1003db2bc7456ccc77e004814d9dbb7711289e2a0af89548ef2e6b146f027ab7d0503628c7e61ba25691b1b2c7d5a24253e0fb08a30256cfde0c1e5a";
+  sha512.source = "eb842f9a9b01a36dd033f2079f0f4508eacad634c89c33e6c2607e78c6016fa441cecffe82fdab65c27870af5b3eedd4e0af45a9db224cd7c60c43a24b1b0d93";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.3.0";
+  version = "0.4.0";
 };
 hrefhide = {
-  revision = 66196;
+  revision = 66189;
   stripPrefix = 0;
-  sha512.run = "a6bcf0a61258769debb09ae41bdfa850137508a4bdae5e44f68a203f9a764fa762beced247aad29e6b643687cb7ba7e554349e96de7a5a428d54486579836a30";
-  sha512.doc = "fbeb8187af9501df6c6263d769f85ff08282c29e6af7648a7b9e4ab35877eb8d3d0d3369e18b9c4ee9a6b37c989394d275f68b68e6ec2aee1486bf45d7b118ed";
-  sha512.source = "55a3e5298a4625fe1612b8fab60e171557e56422a6f70076eb02abecca275d6b3237a62e09442355a9eed75df4e727db07b2075a5b75f6def09038455485c27e";
+  sha512.run = "f62671bc667f8a0eccf2d63b06b55e5483a7f5d1f97e4a1f829c898fe947adf048c21cac10b659160d6ee51f0ad4a48a3998a1e820e387881b6df390ce9bbd0f";
+  sha512.doc = "0ade5f947160493a66f8772d6980db65d0c52ef03b1c12cc2841ae40eeebaddb8b0af50a8c28b010cfe7689dd1bfaa136b80c419fe26ecad302699e754f372b0";
+  sha512.source = "51373bd9570c5df5ff388e9174875db7144e5868a0da8d5d27a9f4c332dc37c97436d1ebedb60c18b47a1e6befa07e5703fb1d6d5d5f872d46f3bc3e2ef71b84";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1a";
@@ -21712,53 +22139,65 @@ hrlatex = {
   version = "0.23";
 };
 hu-berlin-bundle = {
-  revision = 57580;
+  revision = 67128;
   stripPrefix = 0;
-  sha512.run = "78944145098920198c331c54572acea4238fb4344e2ef7b8a53f587b4d1754a0b6b677d7d6ff15ee4edf19b8ecaa08e1728abe00a4a9f0c0300e8b5b11ceff82";
-  sha512.doc = "47cef7dab327828865e2cfdd50873d6b50bd370caeba4b107390895c99a0badfbf7a3778e1f6f2a850ed213e95f1f6a52e0f0ff3fc2f1f1beaebd3c177b82cb9";
-  sha512.source = "08f7fabd4df92fe01790f6cb843ed912dae1e554a15c4cc54d13121a3f61797ee292086de8312a7df50171e385c2b531141a1bbe93bda482eeb936e6eacd4dcc";
+  sha512.run = "57b3122fb063e5f930e5d94aaa94dd00fccbe865570c345abbb6252c42d3f67ed7f2dd163d9474452142ada7691783b7b4e0aaa8a23fcf6320c4bbc581e5391d";
+  sha512.doc = "91483639fbbe4b073eb299b0153eb57383dc59c7d669bfc07e275bf445b22f2eff35a7abd632388d701eb23eb833561d9ad4d865f3e8d7495bf44c74be8dd12e";
+  sha512.source = "eaea8de8f9ff48ee7cc3d1d91819cfad340f9f8aa2b666bc23fd28489c585b4344a946cfca6334620acbefa2602f90050476c5da56552088b1c1ddd3c483af0f";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl2" "bsd3" ];
-  version = "1.1.1";
+  version = "1.1.2";
 };
 huawei = {
-  revision = 65264;
+  revision = 68336;
   stripPrefix = 0;
   deps = [
+    "anyfontsize"
     "biblatex"
-    "cjk"
+    "caption"
+    "catchfile"
+    "changepage"
     "currfile"
     "datetime"
     "enumitem"
+    "environ"
     "fancyhdr"
+    "ffcode"
+    "filehook"
+    "fmtcount"
+    "fontsize"
     "footmisc"
     "geometry"
-    "graphics"
     "hyperref"
-    "l3packages"
     "lastpage"
     "libertine"
+    "listings"
+    "listingsutf8"
     "makecell"
     "microtype"
-    "minted"
+    "pagecolor"
     "paralist"
+    "pdfcol"
     "pgf"
+    "pgfopts"
+    "ragged2e"
     "setspace"
     "svg"
     "tcolorbox"
     "textpos"
+    "tikzfill"
     "titling"
-    "tools"
-    "ulem"
+    "transparent"
+    "trimspaces"
     "wrapfig"
     "xcolor"
   ];
-  sha512.run = "d181f45f8211714674697a8e2e203b3169cb1be998687f315418dca664cb09533b5e3b5f7b1cda0db628401d263d7ca816c2ce1c29da48f1550ea9100d9e2523";
-  sha512.doc = "3b4112d8b5389ab26034ff126744aa4299cbc5f42630a00a7e7b4245e4355ed0abe42718100439af3cb5b1642db4567b6d16e69ffe852cae0c5c9aa20e8cd7f9";
-  sha512.source = "93271d9361e0cbf9fff9890f2617c96a381b631332041a576309a28af77150afc1da99f7596d3b89d0685584115cdbfd46d1b5fa7706b7ae4af88984e8fae8ab";
+  sha512.run = "97c8608c51635abcca6daca84e911d680967aea81ee4984a835245be32ddb4b97345e2714761e0399d3378a08619044e17e53a9bd935e44953372815f16d50fe";
+  sha512.doc = "e327912bf029cdfbaf1857534f8e5174d9bb26d5d1a2a271b3b0a8bd4bab1bdbcb8372b6f76f7c75d058f731baa483d58033f9c5ed82252e6210de4946c93128";
+  sha512.source = "f1f27f5baa2af8de2613aaeba69ac8562c6f7791ced01871c86c4dce3f25c14105003f8d636b3df3c3d8c04d81dfee4fab57150d80e58540db02d3d909dbaea0";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.15.0";
+  version = "0.18.2";
 };
 huaz = {
   revision = 64723;
@@ -21769,6 +22208,15 @@ huaz = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+huffman = {
+  revision = 67071;
+  stripPrefix = 0;
+  sha512.run = "0d78c3874045ce45d703f443817d9b20b5baca0e3b713bc5f09e18a64102af3d349ebb5b7051a5152eaf06c8d9cd01c3a00b5a3c0f5b4db12f566b5f5356c991";
+  sha512.doc = "3c1651e5cb8b527e1c55aaf682003c1639c91efd9bcaa4fa51779fac572550195979c0baf2bb4738f8b5e2628b6deb4af6109938ce70e4238696ca35f7e4ea34";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 hulipsum = {
   revision = 56848;
   stripPrefix = 0;
@@ -21799,22 +22247,22 @@ hvarabic = {
   version = "0.02";
 };
 hvextern = {
-  revision = 65670;
+  revision = 69064;
   stripPrefix = 0;
-  sha512.run = "2a0b0771f99c83fd3e33aa0da43afc51ec32ff3eed45ece76eadbe3c4eedf7ddaec16d4ba32f8829cd16e61af93f5b9be83686262174f07ca863f5d183b5520b";
-  sha512.doc = "0dfcd19c671a4e6100df0b89113d517abbc803e411a347059c44652106b7990b7371b96a6bde85ada1420f2029eeb5d614fae5b44b3c2dc7cb9191d55341cae7";
+  sha512.run = "c9effc6265c66681233309eeb19707f0ea1acb670934283c88f9fbecc4d91c07601c8cb84a06bc7d9895494ef8efb5fca1c00f658ce8baf7489a6c875d8f28ec";
+  sha512.doc = "f7a6dda6ea0d327d8596e68a5880a3ed0d4811d1f89743aca9219e9c26d6f8746a3ef569af464b81410b002047c53cad2b9dfdf783a0515d4ad3c3d322d4483f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.33";
+  version = "0.38";
 };
 hvfloat = {
-  revision = 65671;
+  revision = 68586;
   stripPrefix = 0;
-  sha512.run = "9189c7cdffe77ca6ea69288641453fb057512079dbf59a112de18d6a496a487e928a4ccdcf9ae4b69433ee73b03ab07e4ea6ebe5f881619b57b24be3ee787f11";
-  sha512.doc = "1dcfe143a1b525763a2c4e1c5f9761002cbbf46259eac4d18d8e95033af86f92c9a9d1106070f696500db89feefec6717c934ec310d463cb4161a3497df9d548";
+  sha512.run = "21124f93545ffc5a025e24a09f50457aa16b8936044c4a510a626c812ccb13cc028e6ef6cd89fb64064c39b328ed47d227d40986cab75d6efb54c734774c3cf8";
+  sha512.doc = "737fd24c8fe61f2af825ba28b71a16c2e094a50835543c8fea6b317cefecda94602afdb70c8df24a671a1e9af219350acaa368295072fba1193de8db566eca40";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.45";
+  version = "2.47";
 };
 hvindex = {
   revision = 46051;
@@ -21826,13 +22274,13 @@ hvindex = {
   version = "0.04";
 };
 hvlogos = {
-  revision = 63261;
+  revision = 68568;
   stripPrefix = 0;
-  sha512.run = "655f8db151a5fbd05b096d288a6fe93cd89de9df3741a68eb5ffd221276d3ed633ca1f17507177c8bec2485ece386d117f11a363f87483763a941a155015ab3a";
-  sha512.doc = "459e93a38de9d5dd600d02eaef7ea512ef57127a683bfa8831c159ab68bf6f86bfc4a659aba98adc59f2c5ac7e26984db5f84e8c9933b4a49b30633ad46ee45a";
+  sha512.run = "1d1c1a5944950a71046b764a76c7cdc05f6e48b08681932504009299e9d78bcc3a03c57bde36df6614faa0efd8f6af84388a02ecf225bd95e596cae0cbb69d66";
+  sha512.doc = "55b3bc2c71c8f110e39efe31469573879b65058675dd5324af9075f2b9f1d64fdc8a2121a963f88e67bea8156dfb5ca4a4c972bb70ae90b358bff209fc5a4695";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.09";
+  version = "0.10";
 };
 hvpygmentex = {
   revision = 62405;
@@ -21844,13 +22292,13 @@ hvpygmentex = {
   version = "0.01";
 };
 hvqrurl = {
-  revision = 59256;
+  revision = 68693;
   stripPrefix = 0;
-  sha512.run = "472da0c72999f672cc6d21e35e9adc7c25d1202b8f4eb4a75f9498ae8cca5ea7aca7102dece9943e2070002390a3ced018d12358523d52cb2a32c6e6b9012126";
-  sha512.doc = "0c7de4ea0173e754cdcea91b56681c4681c05d591f3176a0e7973c5b1f9d819a737d6ab14052a94a8dc48919dc2b98c7337274770a115d598667852cb118f69b";
+  sha512.run = "b9a1e88f38b18744fa66d490fe6398bbfda8d0a81a9fa37edb5735325351f5f10f28a7452d8a2d60470afe7faf878c58b59220a8c20ed1744c2be16e8f94db60";
+  sha512.doc = "ae54369788c2ae94dec99c13c57d2c6c42852670d067c97dc8f108dbf910d5a2cb212576629322ba791e56e655b14fe561ba28bc120b07cc9365312dc2bdebdb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.02";
+  version = "0.03";
 };
 hwemoji = {
   revision = 65001;
@@ -21881,14 +22329,14 @@ hypdestopt = {
   version = "2.7";
 };
 hypdoc = {
-  revision = 65678;
+  revision = 68661;
   stripPrefix = 0;
-  sha512.run = "216c3adfa731d4c18b7072d3fd812065195bd06b849cc2b669650a24d51b93cd5c4dd8b9dbfb5874e90d2b928e32a675d5bafed1f5543b826041374f2d4885dd";
-  sha512.doc = "8ef2afe4f1e69aa9934d80363d206a852444396a7067e99ee9ea33c5ab8648e94997631e657f6eca0d9d65e4c14132d46eac7d639ea5f8ba558e83d17c39a2f4";
-  sha512.source = "a68d3134f4c96ee6edcd3da623fc37b475c5ec7d599e363b2d5bb14bfb74d4906b7831d595cd1e547534e773a0348cd4cd11252f7ebdb64c7ed11ad0a5e2ab9a";
+  sha512.run = "bdd5a75f53b714976f54f0fea68093d79dc0d781a708dabbd3cb90e49d77f282ee15cbf8c1082cd5746bbe6b701e58e71bde38141db56cab5042d7556771d286";
+  sha512.doc = "cece39375981cc4adb60b20387ca441404a69c734f686cbe51df759b3025833814e9ec09aa4b720359cce4c4ae14b12cc03ff38954c3fb12ef268304a60f9dfd";
+  sha512.source = "3bf5a01f6ce3ec8cacc04fdd4d3b83d9cbdced6dc75120991e031a56a3dc4e5958c367f009c4f5fbbdabb02d0d7b391fb8fbbcdc2c4d5f68b9c0cf8d68259d1f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.18";
+  version = "1.19";
 };
 hypdvips = {
   revision = 53197;
@@ -21929,7 +22377,7 @@ hypernat = {
   version = "1.0b";
 };
 hyperref = {
-  revision = 65758;
+  revision = 68972;
   stripPrefix = 0;
   deps = [
     "atbegshi"
@@ -21950,22 +22398,22 @@ hyperref = {
     "url"
     "zapfding"
   ];
-  sha512.run = "c30dfac04cd90487740189dca7bf596c43e6313b1382296b0f5cc4337e6504906cdb247870eb15af1fc1f8b9417dac2872ca82ec490b6e065f8148c35ecdcb21";
-  sha512.doc = "b54fa3cf90ad69d0aa0ac409b1372b438a1b07818d102b01e597f956d9a380fb9e99acbab14a4d87c30b5fd4343536c40b39eb4ff43e1f5a0704f31d38063f38";
-  sha512.source = "3d1637fb8d0149214d308a4c0030f70719a27ce0c0c3cee9c061d54e8607fce12257b08d2b992c6f8de9012615e91e0ae10713d18fa16e9c6dff554257490457";
+  sha512.run = "e7daa9af79ef0ee5bb1ed13d8b7001a995d15fc5a839e4d102db7e5d7ad1e76ebc2f7c939b17d554d06789c225bf134177987743c58070e553a6e25a7cba96fc";
+  sha512.doc = "17e70d3008012178b1210bbdcd3abd3c39510dba1037753b2b4324b1f3ab832e0a6a634dce31d32950d1935fcefbc756ac1b7afc86b8f27f9bbee8cfe7768e7f";
+  sha512.source = "0cd806c9e404c93a96da335c8e26ab66476edc29f3f33a68e09ff290dbb3b69705443bbf8db5f7cdc85b702417b5e59f7e89514cb346aa0693c9ff65bcbf882f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "7.00v";
+  version = "7.01g";
 };
 hyperxmp = {
-  revision = 65979;
-  sha512.run = "b2520a486ed2451f20b3414b29ccd209c427bfce22d248ba8e9e7b1f0c13e276b35853ed28b5d578e60d7234a1f6755f00023cc3f4bad968e0f22019aa547007";
-  sha512.doc = "ce7269f6c014def7c967fd8782c3ba2e6bcbb2540e9dfaeccc63917d865ea0cc131c28ad2fcd7aff507b560d1dd7f05d4c3ee2cb9e483ba8f6f64e0bbc0dc619";
+  revision = 68251;
+  sha512.run = "79dfcb70b4df1be8ada345507f0cece0b36c38f57c1b5e92fa008af3ceb5209c5df10d9144a24af4473a2f640d2adb59054cd9985f762b9b6cf7db45ed99c4cf";
+  sha512.doc = "b56e9ef7beb7502ba2e952267fddeb3a26597e9e5193ed66369dc3c78f5a08d34b5fca0685cab8f6ec67e12167a1aca309a18b85073b8e9c497641cf062be6b1";
   hasManpages = true;
-  sha512.source = "c97193eda5c7e02f743ccb0dbc7915c6cff7c29facbc1e098b70987aa3a9b35123fd71bdc1d0b5fbf2f0d249dd48a6ace45b73c82351e1b4cf874420aea74871";
+  sha512.source = "02ca43c9809c347a6db12e0a8ffb2ec96db3b27d4c89ceea10091235c6b411de38d76f976a08d139bad0b0efa0b181e2e2fe5e2edd8cdf41ac5043fcc8758bbe";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.11";
+  version = "5.12";
 };
 hyperxmp.binfiles = [
   "hyperxmp-add-bytecount"
@@ -22024,9 +22472,9 @@ hyphen-armenian = {
   hasRunfiles = true;
 };
 hyphen-base = {
-  revision = 66418;
+  revision = 68321;
   stripPrefix = 0;
-  sha512.run = "63175fccf11584b6a67d8d3fbeec242a7e087bbcdab44792fd811f023fddee8576fabd4e006897e2ee8b3aa4546a82577825ddcf9ed0e1a15115b48b79120e0a";
+  sha512.run = "d3f2749cc6946702ff0d51c1d823531bc92b77c1106aec252c84cc8649aa56048556c90e9792f1b0749bba0b86b7c34aa2b04fe2946d1226315dbc73add36913";
   hasRunfiles = true;
 };
 hyphen-basque = {
@@ -22706,22 +23154,22 @@ hyplain = {
   version = "1.0";
 };
 ibarra = {
-  revision = 64567;
+  revision = 66892;
   stripPrefix = 0;
-  sha512.run = "1e837bc577e185fc2e79abdb3e353939eab98e824369096e536afa03f4030d0e4789080c2e51a49cc4451a4c6d7ddaf59c9def438f7a033ecf981320121c6e8f";
-  sha512.doc = "c48b49d4d0d63948c17a8116fa691e0e75b3d659e40c983082bad98b8fc21ff75f8e87ec4ce1048b0d03bbe12597e4a3d720054ff6d367c5c3ec14452fcec4c3";
+  sha512.run = "7de51f4d206481dadbd4409a0c98dafb36a415e75053b78f40349edfd8b122e9449e749967eada07507ada1f6f22658c02b0a4993e39c2b0e97334076072d6a8";
+  sha512.doc = "318a4bb5d2fd012c783053f457023604d53cdb2b02739ef8a1780f1856d5a63713774568cfa7a230f8ca1eb4711fa65f99d5a99b5c4e9235fb1b449751bc50b0";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
 ibrackets = {
-  revision = 65383;
+  revision = 67736;
   stripPrefix = 0;
-  sha512.run = "96f5a6ee84810035bdba234e23a6b87dafbff602cde6d1f435be1c291e741779133e335d7a8ea7e1a16288348357b16200a7a98751a7a4bed9de2c4fb28dcdee";
-  sha512.doc = "06ae490ac0d5f49c7a2c9f7f2c4a52922717b2f0375162c8a83750cf7f5525eca3e69b1e89a41204b971a85ceed0779ff27ed557192464d0763ce9c0892ece2d";
-  sha512.source = "2ab5897bfbd438ddfc8dbcd32b13e57f32617617529590b5089494bc5533376eef99e68e23a7f695ae5c1cd86c9c654ab40477f104ee64b63ee92c5dd24331fc";
+  sha512.run = "fee99798386a5a6b9b8ff2ae9d2eecc5f4dc835b825795400777780f567ade13d789e81de3e841a54653226098ec602fa91839ec86f25ac0ce2033b31508b4e6";
+  sha512.doc = "1d6bd5b4a22a44f03006c1fee3d94ad2760042ac98835d1ab043905595f435b583ba2b65fb6f0f881234085f028f492a283a5593d9a8316eec6fab541fc3c6a6";
+  sha512.source = "766f93cb337190246b6a446407c8ed75b1ff35edf61cae443798d1f049639bf277951d59b5d8ee7f953be848f81a74b991856d328910e9237206f47a1b4a3a1d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 ibycus-babel = {
   revision = 15878;
@@ -22743,11 +23191,11 @@ ibygrk = {
   version = "4.5";
 };
 icite = {
-  revision = 54512;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "cee4e7f2fd3a007c79966520058ae3db836fca0d9b03dc264d2889ac399bfc7db58e11f3d65de4eae8fa378a774908d36e789441fc244b54c86886fe568cd2d2";
-  sha512.doc = "09c862c89133912f7ed714678b3e1d041e529f4c8123e0241e1d0f531bcdd3036f9307ec8a34cc1f25df8cb38b5a8b5213f4a486204b21e5481f65ca1949db33";
-  sha512.source = "068a63ac822952f6a14eb12362cb94f4f8ef3ed877ef7e40f55e0a234a1736c6fa60276ba80c793c15562889a1cf20caec6baf67daa5e20a3c46cee2c10f6474";
+  sha512.run = "23f4f25a72f77cca2585bd390ad1828e04a70b73fba0a86f0622e29b6bfee596a9a3172a8e8b2531c3bac60f8e4d840301d200ff4a4ec20d5332de62766020a3";
+  sha512.doc = "a84ba9a33de8ceffb8c92b0555daa1a39fb822a272af2192513ce0c03ffd7c97a413a5916f3f5745a1b36b8e5aafdb081ee301d613d645e66e0f2ba2b7484a0c";
+  sha512.source = "227acf7dd54f4ae1e23c753bc9c8a0ad82e275eac2d406cf6147d986d5e93ba2483cb7f9abe3e31d347218d853e6a8bcd4d015b7b9b3afeab901a1a40461924a";
   hasRunfiles = true;
   license = [ "gpl3Plus" "cc-by-sa-40" ];
   version = "1.3a";
@@ -22836,18 +23284,17 @@ ietfbibs = {
   version = "1.0.0";
 };
 iexec = {
-  revision = 64908;
+  revision = 69230;
   stripPrefix = 0;
   deps = [
-    "tools"
     "xkeyval"
   ];
-  sha512.run = "7e6c55383a22d2b47858e02b0d7023a7d130a089c550c0d4aa387035374ba6e0266b35a2f825e4d0bc4fb084bab42686df610f8f6f9007ff155bf7c150383cb1";
-  sha512.doc = "2b55ea3e886043af3e137be5e23388d1d0311e64f695b3774d85be2305e5ea8389a4139e4b3c84989187d66066ffadeccb0d8b70a5347ecfc6dfef750d28b2ba";
-  sha512.source = "d4f8b3b253189de2e303c00c5c8e42cd539eaf7eb0cd20feff54473086056fff2e6f8be3bebc071a261c68adffa55f198505dc81df4d095f3ab2dc6932b8e7a1";
+  sha512.run = "21da64806f48487ec6756ec48aff60eca9406e94177419398af3970fd3638062a06d1da12655551889ce64cdca9ddaed7a8953eff35b23b6f005358586df9eac";
+  sha512.doc = "ff9c90d8a14d72ab3f03cdbe177dfc58ac8cd2fb217bd2a827ff9d14716afc95d35a647b6fc1bef77a1268175f64edab81cfd8d54b35a4a332543c3950beeea2";
+  sha512.source = "deccfbf6b069d9a4542944fe229a01ab85c845d3c84e38daa1c11c86d3dc0db4ace5e3c45497873323ba7c3033870c3bcb2de16ae3f7873ff738247e51b99af9";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.11.4";
+  version = "0.13.0";
 };
 ifallfalse = {
   revision = 60027;
@@ -22919,13 +23366,13 @@ ifplatform = {
   version = "0.4a";
 };
 ifptex = {
-  revision = 62982;
+  revision = 66803;
   stripPrefix = 0;
-  sha512.run = "54f4e4a1077a5f394811a4b0b08818fb17060496c7915c85dc69b55d2adcc7793f4047069b1bd067229bdd945c2e2a35f19b59d048cf242d489ab652813f5cf0";
-  sha512.doc = "7e30eb1014032cd8c322ffeab692f1abb325f1890e66b1136da1e88ccfa24aa80b003f785dd899ebe7951123bb7661b6f44ff382a7b296abfac129ea55eca226";
+  sha512.run = "9b0588af312fc3627687703f030f40ae421d9949d696891e9a60aca3c7582f0a534099685e8b8d5535df0d2f9dcd452f4219092d70c285d0fa65af6d140b7afa";
+  sha512.doc = "a65a583b033509fc0a41fb65c6ec17357c0e095cf09d6f5d2b9b1f8e5fa323f368cd381941e8850bc1fe81a213dd2bbcc3d9877c08d50a5a78efedca05a7897e";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.2";
+  version = "2.2c";
 };
 ifsym = {
   revision = 24868;
@@ -23124,6 +23571,16 @@ inconsolata = {
   license = [ "ofl" "asl20" "lppl13c" ];
   version = "1.121";
 };
+inconsolata-nerd-font = {
+  revision = 69061;
+  stripPrefix = 0;
+  sha512.run = "dc202282d55ad63ffbf39fe7b36edbe42391fefd1c1cb0fe2410d01c562fe8024ac007ba235999c5e369a0d80763fdf80815d2beeb7dadba0f39d027fea507f7";
+  sha512.doc = "00fa8ab8a508a3bac281ab2d7f63fbabfb6958770d308184e0fda7924383dc22a3b36d5f4dff701cda63e847cca819d38b45a0d51f634e1f503d5964fa60d9e5";
+  sha512.source = "867f875d6b1211fbc8d223df7f00030d28ed13336c639f83251fc3b930e75f61d12daf93cf46943a9b2a3db883cd2e9c8b759f19f85562fb589ffbe2f01ea344";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+  version = "0.4";
+};
 index = {
   revision = 24099;
   stripPrefix = 0;
@@ -23135,14 +23592,14 @@ index = {
   version = "4.1beta";
 };
 indextools = {
-  revision = 38931;
+  revision = 68555;
   stripPrefix = 0;
-  sha512.run = "69bb7007041b46a25e9f6bb12d8212a4dd4eaa9dfd00fc033edd94de153e8941cc4de8a06d74516220ade56f2f5800f83a96ea2c02d766939cf70aa3822da63b";
-  sha512.doc = "9290dc53a68dcc191d39bc0d1e760bd4cb8db50d7cf70771e60686ba2b1a7923b408f21e777453a6f2ec9ec372ac30faa3ffa2cc6bf7d2bc82b2526327d732a7";
-  sha512.source = "2d6d1a6009351911a3dfe204ab81ce8b54abfba885525a98557f56ad22ba6a319d35d36ea6f868d3abe9d788628d9f635dec8a657827ae3b772dae972a11c53c";
+  sha512.run = "decb4d3e7a2504f0f08f5e907eabcd961d1900cfce98e79cf8d7745868564eace7f3fd1217de69d615f9267630c71f9289a0519dd9f3b8603be6544ce6d1cad9";
+  sha512.doc = "d2b1ed9f2d79bab4dc9b69b09eafc3657c2f60002d53703ec01e7cfdd29e8e9ad4027fa46563d50ea89bc2e63fa7b6c71ce2e37caa5e37838b6cde2f99ed97d3";
+  sha512.source = "2d4d637e3cd9e6dba00104c0ae58021211cf8b10d8d44bcb9c3d9af1d0680e4539187947f6c685acb8ec194e8e60c447e6dbd02cdb6b8915c8abaaf8b991b39b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5.1";
+  version = "1.7.0";
 };
 infwarerr = {
   revision = 53023;
@@ -23208,14 +23665,14 @@ inlinelabel = {
   version = "1.2.1";
 };
 innerscript = {
-  revision = 57672;
+  revision = 68776;
   stripPrefix = 0;
-  sha512.run = "0ab2851bf450b502e1f04f8c529a2cee149ce5ffb1a091b6870189f01398ec1aaa7c26e5bcfb4ec6e156cbf3e273a4c4677dac7c6c93078d5eadbd478add7d00";
-  sha512.doc = "52684da615ec9caa76e144966be1c3f3152cbf757822b5b2a277c7f40a847bba20d03f1349770a6955daade85f97bbb03572710af39ba6874cf3ff0c422405c3";
-  sha512.source = "b5396a9f73446721e7e8d2283cb10046242e31c9ed77800b3a9e3d825a57f2e81ef06a27ca67b2bee2e88b281329b5f05e230de70982ed937d698cc4b766dfee";
+  sha512.run = "7b647763f5a535f45a7741c3264fb59e2223837a9c99617aab870b624122783e25d1ce2f48e14fa5c1f01b660e5372eefbad3df51c52cb414ba675b8bea18e51";
+  sha512.doc = "406d30155e73e13eb51967e3902e1fd2d76a92aa29323306a8769f9b4900323d288d1620a2a85ff76062e1a7b610bdddc06b113e15cd1479cbcb1bbb25b4c79a";
+  sha512.source = "caf662052e89c10a1f6da8f671aa3e30eb4738a68b095146339f9c0cd95cfdeaebee30869b5c7c92bcff6ebfbfe526ad6ab032d26bae93e671707dbcf3835218";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 inputenx = {
   revision = 52986;
@@ -23266,12 +23723,12 @@ insbox = {
   version = "2.2";
 };
 install-latex-guide-zh-cn = {
-  revision = 65434;
+  revision = 69264;
   stripPrefix = 0;
-  sha512.run = "a091341f588222b1a4301eff95afffe8d89c11818790e9a82a3a3f1e7d75601d9ae2c3ede562449938a32f29ec61efebff97467a5fae5140849d737895335d74";
-  sha512.doc = "2fe37d8e3ba7d4b36e2e8936ba30112422d5ddeacc13861fa47727e17a35466f395b06648b67a9eb54f59ee111a1c8324a8ec41f5cdcaa7396b8867a4636d4b4";
+  sha512.run = "f93859b38da5da139942105175bb9c4f399934777fc04a7d267b45d7fd42cb792de40217221c6e0fee7db3b62ec3592ad0744f0f1a7bff52864e8762d58e216a";
+  sha512.doc = "13042cd81cae222dab8ca8966702a28938f7f4b4a734905d64dba2bd819e610108078f0f81b3999b28a63dcb015bcb7941b177be9cab243fc9d01b6808ddf587";
   license = [ "lppl13c" ];
-  version = "2023.1.1";
+  version = "2024.1.1";
 };
 installfont = {
   revision = 31205;
@@ -23295,10 +23752,10 @@ intcalc = {
   version = "1.3";
 };
 inter = {
-  revision = 58892;
+  revision = 68966;
   stripPrefix = 0;
-  sha512.run = "fc423429252eeb8878fc9c423c1c51f9d24781b262d0b4e08d10e397a13985507916d50d3f3fd2164f7fea2c5b45e35da415699e6ed424957c9b337b5e349cfb";
-  sha512.doc = "aef65d0830399dd9fbdda59f130cb5a5847796d591baaafe74e621115061f04dfc55c6d68d1954251d5d6b63b6e7b88eb16c50842a6f5b045f4a643498fb9c2c";
+  sha512.run = "3e2799fdcbb3648912d99ae0fee49b3e34098204e742ffd8bac5fda212f3e452606124e5503f99a52f7f647b54c31858256e7e1dcee4a566f3ca8e9d5aab5eb8";
+  sha512.doc = "64260a91b781bc0ca36a73e1b44ffc34847b26b977a950cefa27649d7382e9cb9d34f70f982831912489d86e343d4abfc81ae0d91302d3276aaa5c8567c3ba42";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
@@ -23393,11 +23850,20 @@ invoice-class = {
   version = "1.0";
 };
 invoice2 = {
-  revision = 46364;
+  revision = 67327;
   stripPrefix = 0;
-  sha512.run = "a790c180fedcf407b999e018cd96b1a0440b07f98c403e9c9e780863f2ecac4f4559ffb88f6a3e4f6080c89745d8a99e5ca6ee98299c7529972edebe68e00eaa";
-  sha512.doc = "fc4baede264c6fd1ec94338829c6973c79c04f21284532194196063b3499becf2bbc2933644ca8b870608e8879315f724b173bbbd26548d24e1649929feed7d3";
-  sha512.source = "cf014bdc2debe9e400d940232eb434b1354ba7f1a093c7389c5b1d332dd2c270e7e3c1f07d65ffe9fd5d2d088e59b3e846e2fc2598eb7297189d6c772b2b16ee";
+  deps = [
+    "booktabs"
+    "l3kernel"
+    "l3packages"
+    "siunitx"
+    "tools"
+    "translations"
+    "xcolor"
+  ];
+  sha512.run = "7ef03f3c3a5c23774c0f3a495f949d5761f28a5d6316be7bc2a7b4039612fbab3f4aca9d29b6881a04948b9be2f0e6f7199d4ab8a41362e2d848f2ae8a090c30";
+  sha512.doc = "9621a018752d18d9a5dd069e48a3baf3fa2f11c378304573a5bd9b9bc37ddd79366732f0b47f3acc878cdb68e04374db8371a1f7efec6ec6fca251a6c2b95025";
+  sha512.source = "eb17a9ad06f67433b749e798783676212ca16dd78ab9a2029335c923235110e9c8bd8fb0654fc47417c60cd263d868789d8f86fb075cadcbd19fcd6142872121";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
 };
@@ -23446,6 +23912,24 @@ ipaex-type1 = {
   license = [ "free" ];
   version = "0.5";
 };
+ipsum = {
+  revision = 68861;
+  stripPrefix = 0;
+  sha512.run = "72ba4708735350c0b1c6521d3ba09ca0477b203328c1452033755da7eca159b82e50ca0950f2eaba7cac41c1f27cfb28951716887e2736d9e69f29f91acd29cc";
+  sha512.doc = "b53fd7756b3ac604583d95f6cf9b90d322ebee9e6a1f085607de710a2bfe3257d29394cc816f1817b0cb499a550202a0dd1578c9e7e04152e8aa132fea05bd3e";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.2";
+};
+iran-bibtex = {
+  revision = 69347;
+  stripPrefix = 0;
+  sha512.run = "0dd643474cdec8c5d15ce28dcad815978d9e3a76d0327cffeff021ff6811ba2313e44a5f21a4ed23a1bbf09433c479e551ad0a49c0d074d38a777df66daefa9a";
+  sha512.doc = "51f903f7ee725dc2ffe58d594e64bebe5639e5efcabcde15206ec5e9583f8d4771fd2b457f8a79b2fe691fcf77d03854d1f5cb291d0b33fb7f2d5272a17a18bd";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.4.0";
+};
 is-bst = {
   revision = 52623;
   stripPrefix = 0;
@@ -23540,6 +24024,16 @@ isorot = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+isosafety = {
+  revision = 68801;
+  stripPrefix = 0;
+  sha512.run = "4f3997e5ab414bea29e986e1edd7b1436f82bd22b32e4047814d48058a57aa7ba042c88808784ddf5dff3926a1ec366f374e5e275df8e16e8d8a9b9c07982ac1";
+  sha512.doc = "905fcdc25540ca0db66cc8fd6057bb71ded0016180b4efbcb5855e9ece8213d2091f387201ab44a2827fc4bb897f8cd9209b570b9bc23ab5c4b4293f5848c1d5";
+  sha512.source = "38427c445a9a816c674a01e3ce85b1a30b6ccf06f7097e82bceaddf72e7d178bac1873e57061d76c37cd3b73abd783b1d35b16648f43485b3d80cb7ce5158278";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1";
+};
 isotope = {
   revision = 23711;
   stripPrefix = 0;
@@ -23550,6 +24044,16 @@ isotope = {
   license = [ "lppl13c" ];
   version = "0.3";
 };
+isphysicalmath = {
+  revision = 69343;
+  stripPrefix = 0;
+  sha512.run = "5329b97930fbe9cc13c275132a32cfe4293bc23b2c1911089aaaa80baeb0437606c73503b4430574e88da61615d0649fea6f5666a5609a79ac5ca37cc90294a5";
+  sha512.doc = "f044b6cbdcb63a5e66b6dfd396393a99d605a219ede55317c759c28c3890a7c79ff6c0feb1de8f6517350d15a6422dc54426b7b5169ea1865024e5a335fe5517";
+  sha512.source = "d68bb0b9753303e844476ec27156dc22ba7f3c4456a26870edb080709efb88a2485f2b41bd3c15a89d7d665f22acbd206c951d0f817742d352f6997621188734";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
 issuulinks = {
   revision = 25742;
   stripPrefix = 0;
@@ -23579,15 +24083,6 @@ itnumpar = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
-iwhdp = {
-  revision = 37552;
-  stripPrefix = 0;
-  sha512.run = "7153fd75ec63a6abbb4d2bbda8a5eb150f4b202b72baec8361a810d28aac5690f76e4099ff3a616a44077337ace469d6a111d4e42ad8d68428144b7fdee58575";
-  sha512.doc = "f75a9d0ea4b69de5a82659e18a0ea04544c93b056c52efac534e16490a5ac78b329d700f2ed7b3e8564a72331489106bb7e735c44b3e24ff943c6ec0b89eaef2";
-  hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "0.50";
-};
 iwona = {
   revision = 19611;
   stripPrefix = 0;
@@ -23597,6 +24092,16 @@ iwona = {
   license = [ "gfl" ];
   version = "0.995b";
 };
+iwonamath = {
+  revision = 68144;
+  stripPrefix = 0;
+  sha512.run = "e0b87b6815ffbec37a52e0ecd1d31daacd46c222abb71566ab3476cbc2ec28128f5977367715bf1eac439f978d750b6ce7e7bee589de7a1f18bf70ab8ce166ab";
+  sha512.doc = "81fb0f9b7b738994a4af09a8dda8b580f4d59a92f790f8b285c2b1a252e672786296472847a6d4d8ce804a757248dec04e02894d1550cf0791863d25d22f35d5";
+  sha512.source = "b7aa315eb74b6fdbfdd75dc176ede1841406efb9bf5ba584fe090123f3e93b1f7db9719a321833d2486b0e5e7a0a214a4b91a8c1afb2443e126ebcf96bea5b70";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 jablantile = {
   revision = 16364;
   stripPrefix = 0;
@@ -23615,7 +24120,7 @@ jacow = {
   version = "2.7";
 };
 jadetex = {
-  revision = 63654;
+  revision = 67493;
   deps = [
     "amsfonts"
     "atbegshi"
@@ -23629,7 +24134,7 @@ jadetex = {
     "cyrillic"
     "dehyph"
     "ec"
-    "etexcmds"
+    "etoolbox"
     "everyshi"
     "fancyhdr"
     "firstaid"
@@ -23682,20 +24187,20 @@ jadetex = {
       engine = "pdftex";
       patterns = [ "language.dat" ];
       options = "*jadetex.ini";
-      fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etexcmds" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
+      fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etoolbox" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
     }
     {
       name = "pdfjadetex";
       engine = "pdftex";
       patterns = [ "language.dat" ];
       options = "*pdfjadetex.ini";
-      fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etexcmds" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
+      fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etoolbox" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
     }
   ];
-  sha512.run = "75b9c8be4f87b51798826f5ea070ff9877e8bfa2fbee5112972e9e0fc81a76dcb7081c2fe9eed645f53a38dd85443dfdb394004b2970c2ff5a91b32dc1cab909";
-  sha512.doc = "f70f85a12d730fc9dfb29da57a6f95239c10aa8ba7b9453ae884cae81399609fb99ccac3bfbc41f0c5f360ef80bd3f78b2f8479a826412bf573e9c5336d7e8ca";
+  sha512.run = "f169a494d7544e5218dc280937add40b1b0782ee5aeb5d1cebb4aa905bb72334c6caaf628ba04c3b5ebec984a5dd0c78c3c2f194ddbf121f63c5be4adcdb58a3";
+  sha512.doc = "670f0e517d81bb70b54b375e9cd240ac8a6ab9143fb529445c6622d445240a690908d043e583c7bf1be139ecb9a69dae77db74ca9755aac0a604a3eb342cc4a9";
   hasManpages = true;
-  sha512.source = "180798c7f61cfd56cef3b98f25dec39b4062b636297e60bfdf96c925f295a256e19fd25bdb8f18794db31d586234cf7c4d22989cd901d51bdaf6c3b8002e73ae";
+  sha512.source = "d05f8460b8f9b21233c92da7a5d64a898c4a4b5eae5dd8f15751d4de00b7ec48dc6ea0ccf43f43929295fbc83a5cc342dae9d7ba14034cf198d40de3cab247a9";
   hasRunfiles = true;
   license = [ "free" ];
   version = "3.13";
@@ -23723,11 +24228,11 @@ japanese-mathformulas = {
   version = "1.0.2";
 };
 japanese-otf = {
-  revision = 66102;
+  revision = 68492;
   stripPrefix = 0;
-  sha512.run = "e83d7c9ec784f25607d86c0afad9e89ccba68528ca37ec0fdee12bed5c97fb4fb7e2b3f1e63bb0f3818811eaf52a8b61cee8c7f9e853f6aec6d23dfccfd94a18";
-  sha512.doc = "f2ccccd9de5908567bbd2ad458288d16f245ac01d9bb29a1b5439e4f427262e6aebaeacbdd6ada4e63c0f59c5f35df1d9c5b90b0067c557a1e4695befd382855";
-  sha512.source = "981b75c8708cf0596ce397043776d9e469e504d0ce33d093409de735ace8e583bedfa94244abb92c7e251eed63e9f1c8c5131298f7a4d998d2e1d195f463cfc9";
+  sha512.run = "30821d9e8a8de886fcd6ac64801771ee7ff48c7523e38946a8127579bf53d7ed730867d78573dfdcdc88017743929064eed1d4a5b474328ee2cfa7f889905026";
+  sha512.doc = "80fec029e80a451eb9f53efc6e69935f9ee42063784a5f92784a595dab76532837062da90f3c3ccf8fea4e14b3cfcd339ba4e5fc539257c11e7726cb70ad2cc0";
+  sha512.source = "c5ee59b3741e19c96f151483ab5444f3fc41dd498ef8a8a34f87dd087439d29b614fe3d9597d1a29e65bcafa47b570bbe119fbe6d705436fbf1dcbf9a6b76576";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -23740,13 +24245,13 @@ jbact = {
   version = "1.30";
 };
 jeuxcartes = {
-  revision = 66195;
+  revision = 68266;
   stripPrefix = 0;
-  sha512.run = "903c67e8167f31a44783cd9673264d5417134f9201fa3490812e2805f52c41a36fda21ae7ad276b9075891cac0e6211fe360b38c9928b1cf0388a0315af47f9b";
-  sha512.doc = "82946707a25ba6115739be14202c0b5e9f0369a6ab28f74571d756e6d526c9af87d3efaeb10b9cd01680609f07e68df7830854995ad66c3a1856161f8ed2b95f";
+  sha512.run = "ad90719dd34791c88a5300d33ad7d633e650b3de6d61f493cf9069c39429f57ffbbde7aca1d2356a9cf6486701511fb7805049ed6a53ccbf49daa7a3dc5ab4e3";
+  sha512.doc = "9c918a0cb97ac3b82a88fd104a2e084404b83b2c04acac44e5f566774a3c01d8c91b0a73b49325ab6d7d366c5849e69a60c28a9686049c009bc249cc9b04c7a0";
   hasRunfiles = true;
   license = [ "lppl13c" "lgpl21" "publicDomain" "cc-by-sa-40" "publicDomain" "mit" ];
-  version = "0.2.3";
+  version = "0.2.8";
 };
 jfmutil = {
   revision = 60987;
@@ -23769,10 +24274,10 @@ jieeetran = {
   version = "0.19";
 };
 jigsaw = {
-  revision = 66036;
+  revision = 66009;
   stripPrefix = 0;
-  sha512.run = "1a40058ca0fffde5ab279969ad9a8ddbb84087fa03ed313f2ec027ad8cfacb60cf98251bf3c7bd09e8330d22d7b19fa29750039617450233bc53c83e42b89ce3";
-  sha512.doc = "a959a74f857ba77a33973f03a91c69286b9af2da0de594ee42e8192a5a698e0ec5b3ece1d145ab308ff67216c5ab9e4b593dcd6f2ccbc922c696aa1b32f8ac8c";
+  sha512.run = "3ad1aab51b4fbd99efc6bbfabf716cfd27e4af71674b094053f4866e38ab4c6c3f8d1884bfc4e4f7cf0fef11abfc488cafdb696238c5af1440255151b1b2ca77";
+  sha512.doc = "92d04e7497c19471f8aaa5344a1cc3824e18691daffab637a1822f900468269367244c984e4420efc94014cfc849ebfa4fd0db6e5b37cb1e89aa5493bdbbdb87";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.4";
@@ -23803,19 +24308,19 @@ jlabels = {
   license = [ "lppl13c" ];
 };
 jlreq = {
-  revision = 66374;
+  revision = 67400;
   stripPrefix = 0;
-  sha512.run = "d70b447ecaf3ed68a2df105928e5786c4425f1bcd8b3d5bd8096671b7e261e54dc276b6fe6417a51bf79efc5ab6ccc19c8862fe7a8f5ed94ca58074f76af6cc2";
-  sha512.doc = "2bc9c67b7b41e6204669a2d2a9cfff2fe3613473a02c8b4c4475ac7f7da1cf4b7f5dca85ca175c2de0cbdeb9b128f4e2b27b97d0b6c63ae5342fdabf5b052a5a";
-  sha512.source = "5597ad2a849889242bdc697a2ae2a27b01cd41797f7b42640b127030c9f1156d7f7abe6dad4973efec459d5200db4f0518d1e0d22fff0843c1094443c80481e9";
+  sha512.run = "7421f665a77b88d942d145dd63d0ea92c3f2c24815c564ea4eb13828bd9bc45cac1362dca4ae2e69a3f53fa9b79e4a495f87656bd560c951b407c34fab69a266";
+  sha512.doc = "2c3cf0af124dd6d92d41bd89a25884983c691c4a9a2a72c33754eda92244f37ccb310aa330f8b55d7a18c45d4bfdbeba60358d0e5b95bf7ffa3ce588f6a68b4d";
+  sha512.source = "0f455dad9f954f8e8d84bfda0fe704b0cf6a384f6c0a215299d9529d10950340071fbbee98f88a9f12a9863d3979246533a47e5a6e7fcdb71dbfc3c165079d74";
   hasRunfiles = true;
   license = [ "bsd2" ];
 };
 jlreq-deluxe = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "2b775106af23d7756ce113ef06e05145612075566338e2880b7af5b4dc65ea9c57b74665238f4c8a3e80faa300068f5a2be53c7d89a9a7e83b6e0dac4e450da6";
-  sha512.doc = "feb125c080513d03a67e89d64eeea9faee01f2d72db5cc3a710b09792c2af330bb6a811067ba5f819eeda10776801d91b4ee931468e732bc7ebf673dbdad4ee6";
+  sha512.run = "318b01471bcd2e7a15d5e58fe922d341c9daddc3ed9f3565c85bd221dba2d5d38635d60b848aa37760b3ecfd4d007d202d69b6694eacd41c885eed34ce77c34a";
+  sha512.doc = "ce096d4d8461d1fef3e4c9d24efd8f7a402085ed03852ac2b293467400e2c000633cc852d4a0ccc2b0903c9e3a682770a4edf632183758b9753e6a1c553ecab7";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "0.4.1";
@@ -23864,13 +24369,13 @@ jneurosci = {
   version = "1.00";
 };
 jnuexam = {
-  revision = 56867;
+  revision = 69161;
   stripPrefix = 0;
-  sha512.run = "36aa8858e22affb522332de4ef06a2760c5f4ecf24858fcad34655e0062cb319dc27a34ae1648fc89ebbdb2d3d79f8630d4d3663956022ec345a31cad58a5d1a";
-  sha512.doc = "e80d4db8fd0f094589ab88ef2afb01f17be611ef07b0b6fe827e8940227c5c47fce7841881dad4ce2805c0098f41eb27da5491cd50825cc70b5aa2c5bf4b1926";
+  sha512.run = "f09ea4e82d630111a770568a3ffa3de9b862bff33cfe40eeffb69e6997fd2893bf58eb626d557f310d77a13dd97d6369cb7ac3d1f87601dd3b8b2aa4dbc5fbca";
+  sha512.doc = "828fab98b92a094ba2f42e9dbafa2bd4ff6de6e7fcd242871a5e2b6d3ed2fffd54f3bc9ecce7e24e050f47aa264cc5f8d0684355340bcea00817e824e909543a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "2.1";
 };
 jobname-suffix = {
   revision = 64797;
@@ -23881,6 +24386,15 @@ jobname-suffix = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+joinbox = {
+  revision = 68003;
+  stripPrefix = 0;
+  sha512.run = "c7ef7c28e11a64f060b37e1e17fbe54a80e1c5050bde043e77c42385037974a462598b66c3ab48a9d3317a6ce55a0af3a434465657e0a42d5568a127779c765d";
+  sha512.doc = "ed665aeb55d066887e536ad545199809216a2eb84d9d81fd81e40798c7a69c5d14a191a73a8c2ee9fdcc6d36a8d206d07fbd72d427172eb9a182bbb3b4751cf1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.2";
+};
 josefin = {
   revision = 64569;
   stripPrefix = 0;
@@ -23897,6 +24411,14 @@ jourcl = {
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
 };
+jourrr = {
+  revision = 68556;
+  stripPrefix = 0;
+  sha512.run = "cbd5484b622c865b7c42f8ce54a76e54a5cbde6045701cd8fbba54d17c8abc510c79125e7d335c3509cb9c674ce233005f9fcac703fa95f3297239c00c3be682";
+  sha512.doc = "395fadb1bcc91eb1c3090f57d783b0b2deff507d22a4221258dd826d635ba382c4c4d00c0d341402374ba4bb037e39cb23efa2bb323652d73b0940ea89eb9f7b";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+};
 jpneduenumerate = {
   revision = 63893;
   stripPrefix = 0;
@@ -23916,10 +24438,10 @@ jpnedumathsymbols = {
   version = "1.1";
 };
 jpsj = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "ef3fe1333e50b9032021941a5ec965e2704f324e8d354f583f70a521e6595ca8edf9742a1cfce3da6fd9fae733f38f270149769b8b74b50fc9ef2d28bc5349e4";
-  sha512.doc = "6fa1b64cdd25ffecb5a6eb4a163ed9b77e5ee3d01743346b32f636d8d455943edc69df7f602ebf27d4caf30461d2fc1e4c9e3c635dbe51b49d07b6a883f63ded";
+  sha512.run = "de1383f7c52d4a43b0ecd2677314a88181e2702ae487b0ce3140b3048c1820bd504b6743002733e2da3e45553aaf911fe2c6ff552f77e706cbcd300570a34c03";
+  sha512.doc = "65c25cd1540664e4e529be67851e5198761cffd6eea495d1f60963dd9deb911ebe8426391fc456f08bb6f640040790fbe7d7702b21f7ddcfca5d246c02791764";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.2.2";
@@ -23933,11 +24455,11 @@ js-misc = {
   license = [ "publicDomain" ];
 };
 jsclasses = {
-  revision = 66100;
+  revision = 66093;
   stripPrefix = 0;
-  sha512.run = "ef3f39a09c29b9a94acef7041e4c9c16d6b301c926162ef85f7ec8c3f6bfa48f6d86a9a9e2c3246430d94d49bd58a36c37912599a3454dbfaec40ffdfc8b078b";
-  sha512.doc = "9cbd3abb0eb49259c2d008096fcd76e722bae7c14af820adb296c503d6eb3de280c456e16bb40e2795203dee470ce2c598bbeea4584ee1cb2ea3cbc6eb0e7590";
-  sha512.source = "714527b297551957f27c8b33b441caf600e48783183c53ef88b038c5ed97dd2ffc0a9964a68bd4086ade1ae52a23bcdb06b51ce93e43c32fb83de43f38dc71bd";
+  sha512.run = "aeba8c75d3af2077763da1846e09b6d51ce0f5935cc4e8a09fb6c747d9321161996423ce620d04c15cfe3a4f9af3ea36f90ccbded6fa03dcc088c5e71be74295";
+  sha512.doc = "0ce0175fc4a3ea36154c329961d7604bb06431b586dc1bc928afd5b2ada528bb79349a833504ccc93525addde80818210cfa2a1803ecb319032bc8eda034f18c";
+  sha512.source = "4b8e605a8f9d3de33b9deef3dd58ae2984881f9716b0a9647fd794a3c97549e50ffe3f2556bb4b4ebc5938ce3516abda9445d4ddff21882b53ccfd9276b37e02";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -23960,13 +24482,22 @@ jumplines = {
   version = "0.2";
 };
 junicode = {
-  revision = 61719;
+  revision = 69355;
   stripPrefix = 0;
-  sha512.run = "dd565975fe8ce096d575c0237caae274c0c3efb0a7b3b3fc3cc561636536ea71d62f20e73e549711580a1792e69fa794677d88ebbb7cbad28bd6c82a53797167";
-  sha512.doc = "120772bc43e50cd12e936fe0903d6b91202c2379f073750372d30ffa0abde39cc5f6092089e289fac97ef95b955e2785c07030496f601b805193138414bcc271";
+  sha512.run = "e368f15bb9adcf7ed15527e4e381424896590866cdb9a214b7f8310e9fd0c660ff5abe442a2206aa88f4032665f40fbdc21b33eba910ff1b299c5940eba82982";
+  sha512.doc = "937127e4089bf632b62dc1a218645b1c2903a700183e9d9e7456b16a47b089846509d5d3f89424417a19dd540badabdc6a8a6024826e5cfbad97c19ae9f4bdd4";
   hasRunfiles = true;
-  license = [ "ofl" ];
-  version = "1.0.2";
+  license = [ "ofl" "lppl13c" ];
+  version = "2.206";
+};
+junicodevf = {
+  revision = 69374;
+  stripPrefix = 0;
+  sha512.run = "1c227ce22bb32e8799cabfb943fcd38a4ccc6c07aa7d9dc9708c9bc84352c4a660cbf8c6d31249e47825b961f67a0d7da59349c827a97eada6a37a327091973e";
+  sha512.doc = "c96e5c1887f39a2151bf697353b84d9049ca3686a61568f1d99b68596d1b7f6363810962652813403881754ac412240a9d557a7053803172ba45a8c7c7057c13";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+  version = "2.206";
 };
 jupynotex = {
   revision = 56715;
@@ -24036,13 +24567,13 @@ jvlisting = {
   version = "0.7";
 };
 jwjournal = {
-  revision = 65480;
+  revision = 69162;
   stripPrefix = 0;
   deps = [
     "einfart"
   ];
-  sha512.run = "0f322a3af5cb47d88a2cc9ec275433e5c13e7a39bb0d1b3dd9513cbf9cf745774a676e7cb5734cc0eab330f78d973742b98287710538eccc5720c5903f534778";
-  sha512.doc = "df9e6f8b942a4d35842e18417d8624c91f4f08fcd8749b2c99513eb51b00c63517fa54c7389166bb78e0296927feba04339ae6a61de9da4281bacc5c60effe36";
+  sha512.run = "9778eb2f8a5999584afdb07b9604691d9ed1253a8a2bdedf569a10e892e876288a74c525bab2e0d26f8ed851d94f81e4a3625a54f1246cb0428a24308546d502";
+  sha512.doc = "dde16cc247d095b61e09b62039f081afa1855778b7d804e6e5692213c25a14c2746204a730f7934a531142f5b9151dc183b20f1d2aa14429d448cc5d4e543996";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -24075,14 +24606,14 @@ kanbun = {
   version = "1.2";
 };
 kantlipsum = {
-  revision = 51727;
+  revision = 68983;
   stripPrefix = 0;
-  sha512.run = "7aac4684e6d08b46319b711a824dbe33446674f63fe301e366543553e6fc4c41aa1eb9aabfc9d11710014c9347ac559dfa1882478f6ec5d9edb39c5dc42cda8d";
-  sha512.doc = "bb96e91c7562c34c56c7170e246eb71c353d67d649cbbaee5904f6bd82b905b93e79baeee536a3d8eb8b9f08296591a8d0fe621883914f4af676f78c6f244523";
-  sha512.source = "aeebdbaa22e0e2b369a18bf7243d714b872115ac9f0154438d37aa0719e3623ce27d31068d90bb60b301322b30c18bf34d4ad312355a65c8e00043653f696b54";
+  sha512.run = "bc863e42abe6397617c588c85936eec4dec5fd9578b26cdfaa80e25abd29ae814a009952f246a4920a3da43e0842a9b113d0c73eb7514b72a9c5a16193f914bb";
+  sha512.doc = "97f15c38fff7c30d99313be71a6908f5391bb15a3e363fd00bf6a6563a2abdca2d98969d5299ba644d33917b48da41985c5ea6d9238e2e8a7fbd285262bcb8d5";
+  sha512.source = "873c0b66e7d83fc93d916d4599e96ff8ce8cd045ad2220914cd4161e15e8f357676b86a35dccdca927c03abbe224f604dca187eb58cd3bc42ba78ed70b9130d4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8a";
+  version = "0.8c";
 };
 karnaugh = {
   revision = 21338;
@@ -24122,12 +24653,12 @@ kastrup = {
   license = [ "free" ];
 };
 kaytannollista-latexia = {
-  revision = 65461;
+  revision = 69265;
   stripPrefix = 0;
-  sha512.run = "dd0c2543cb40e8b1f36f29f2be3675874ce4a51538cf54584af0393e74a0acb9674a40433256d8629ceb68acb4d2d8641e97c5f19a3a0709843837a1279a10cb";
-  sha512.doc = "35056d4df46d7a935d600ee6e670a3a3221524c8e4ed1ac6da638c0fe645bd6b2786dbc2d512558c65e6675f0c5e7ca27dd3dd83eca81ca8a1d4d8cc1a18dfca";
+  sha512.run = "c91cf44906a6e377138a04048a3b9885ad10df3ceef268ee3c8d467e4697fa8af1cc5f077b0ae5e2d6049abdd0dfce35a2f83d0ee46e06a1759397a657c28ca8";
+  sha512.doc = "8ef1f9e57e05911d443123bd4393c9bf99b715a4dcab570b361e7798f714228b2782dff0705fa91e660eb2e767709b36de677b7d96c103ce674875b26d47af35";
   license = [ "cc-by-sa-40" ];
-  version = "2023";
+  version = "2024";
 };
 kblocks = {
   revision = 57617;
@@ -24215,14 +24746,14 @@ keycommand = {
   version = "3.1415";
 };
 keyfloat = {
-  revision = 65446;
+  revision = 69399;
   stripPrefix = 0;
-  sha512.run = "aeb72770dda420e3694b98ba4d9071e814b0fea850ca6876769c44ad4b7fb1b3873db0e2eddebfbc85b11603f301826dc5d04c9aa5d9e250c807d3ffa795de79";
-  sha512.doc = "19a7aa10ea4916fdfbbddd9e843db4b312a2bd5a24192fd980b34bdf5669dfe3dc5553089bb3fbd7a892167a9fa21a0424c7461a881fe2ab16f353b9c0216376";
-  sha512.source = "f0d8d54049cb79aa54d52b6c669104e6c9928e863d70df6dd434f6842bfee3bd653c4249732feb11237c5db88010d4ef0bae7f1238b19ffb807e33d4bfeb0573";
+  sha512.run = "b3bbbe74c5db4eeb1a74d49e0fe9608df347921caa0814faca8eb62cad674fc3977c7af1cd58849fe6abab5a1231b4ac3999d5af7aceb7655f12d883e41148bd";
+  sha512.doc = "43771371d9f81311e29be4b7ad2b1876299d6ff4ea740e9cd759a01701665bb6bd37983828238e13141e39c253b6d3d92b566fc97ba2944d7967cf55e492913a";
+  sha512.source = "89f10c6c68e6941de535abfc4e86a0e019a1bcbd2cf10f0fa542adc208f5ee8c1c7884f679d87186c2103b4b1f69b36b50e3c73512fd9209db1be4f5c87f05c9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.08";
+  version = "2.09";
 };
 keyindex = {
   revision = 50828;
@@ -24291,6 +24822,15 @@ kfupm-math-exam = {
   license = [ "mit" ];
   version = "0.1.0";
 };
+khatalmaqala = {
+  revision = 68280;
+  stripPrefix = 0;
+  sha512.run = "78481f7d494a7c1d9312e3c11a700e43b007660aaaf28f74a3aae4966b2387088bb891cc8e73bd431ad992395f7b66a10b9b326d2262509fdac3e153473d37dd";
+  sha512.doc = "ec0f8ec3213a009899134fbf2389f9f33e2747175bf94246c0e035c424728251c0e16a3391e598007b83262353db66acc87431f6856dc1df6e784d5f40b4a2a0";
+  hasRunfiles = true;
+  license = [ "ofl" ];
+  version = "1.0.2";
+};
 kinematikz = {
   revision = 61392;
   stripPrefix = 0;
@@ -24359,12 +24899,12 @@ knuth-errata = {
   license = [ "knuth" ];
 };
 knuth-hint = {
-  revision = 62971;
+  revision = 67373;
   stripPrefix = 0;
-  sha512.run = "0fee38074b4f7abb32f021259951072ee662ab96bcf7127e14e0e3fa68fa981a533a9112a56eaa7a71da48805737abdf3db3d41acc012300217082068e72c10a";
-  sha512.doc = "0cefe2852a97aa680989280e7e2349dce4355f5442ca34334b585596eae9923537a5acada9fca5e90eb4ff10a817df58f6bac35c5944b407cf3d6cb87cc745d9";
+  sha512.run = "ffe5a785191fe8506f59557546b3bce29a236ed5e23a6766941b37dd134bd00ff1ec5dad0278d837bfe2cf8a0e69e5ab5921daa320184ee259580c9b41d92ede";
+  sha512.doc = "5b47b3cbf6164bce8cf6903702b5a6ed93fcd13def2de2e6b30e3c8e758fdf076a1c14f1bc452768c9841d967e932a6597ff0a1a7c9140ce2100036fa04f031b";
   license = [ "publicDomain" "knuth" ];
-  version = "1.0";
+  version = "2.1";
 };
 knuth-lib = {
   revision = 57963;
@@ -24381,12 +24921,12 @@ knuth-local = {
   license = [ "publicDomain" ];
 };
 knuth-pdf = {
-  revision = 62969;
+  revision = 67332;
   stripPrefix = 0;
-  sha512.run = "4dbe29f3f595973beb13764e3e8514834a3c5b371a8cb74effedc11e9ec62c72e64e68a314f26bb1cddc491f58bdf01015bd9c3fff4e566d9e5e28a6f5ca52bf";
-  sha512.doc = "4bb68abdd5183201848e4000f921f7ee6095480341877f9cb050c923dbb930c962c78854db477d8a7df64a613693d7dc406186b4682a47371975a4c4eaff66fa";
+  sha512.run = "ab6e1db43370a551700c4ad8ca9e3787a7be7a06da2a72fd4cb0faa7091fefa1847d143bdf9c8d603ad7d307495ad34faca4e5ef054fa011d0137ba90f888a5d";
+  sha512.doc = "0f16994ee8e64478d01f7b0f2c54c55369b5f661abe7f4db347cb2b7d146c4efbf337e20fd7eba1cce497d8cfa5058bbf4c013073028c364678334c524aea155";
   license = [ "publicDomain" ];
-  version = "2.0";
+  version = "2.1";
 };
 koma-moderncvclassic = {
   revision = 25025;
@@ -24398,15 +24938,15 @@ koma-moderncvclassic = {
   version = "0.5";
 };
 koma-script = {
-  revision = 64685;
+  revision = 67573;
   stripPrefix = 0;
   deps = [
     "footmisc"
   ];
-  sha512.run = "2fe2a07d56107390a191c016c29f7bf77700647b7996957a3802aa89b9b7eacc4cefe1c444b6faa688a147a8b0d9c5d80fca511dc2454a15ada6ddaf6aa3ccb2";
+  sha512.run = "0ad55b5765ec907f39bbb8bba7deee4a131d76c81a0e7bd7379031c5a8771d47c121df5a55699706c886063a12bdf338e5b47b6a6784f0a23a72891a07b322b9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.38";
+  version = "3.41";
 };
 koma-script-examples = {
   revision = 63833;
@@ -24444,15 +24984,24 @@ komacv-rg = {
   license = [ "lppl12" ];
   version = "0.9.2";
 };
+korigamik = {
+  revision = 68204;
+  stripPrefix = 0;
+  sha512.run = "8218a2e5d09cc572c3e3bcba6d49ad9ef9be5016cbf2f3bb57c7f649fc638f718f5d91c09c3d9013ac182e651b0c53b65c7a118a021eda68a53a1e8641a0a8ee";
+  sha512.doc = "291a1153ed32bce9c7b845a40b4de3f63715f2179765021c1ac3f678bf1594a0abe405824099826eeeae30a90a5fd773e6e5aa91fe66a08ed47c91f371fdb6cc";
+  hasRunfiles = true;
+  license = [ "gpl3Plus" ];
+  version = "1.0";
+};
 kotex-oblivoir = {
-  revision = 66516;
+  revision = 66513;
   stripPrefix = 0;
   deps = [
     "kotex-utf"
     "memoir"
   ];
-  sha512.run = "29d7c6a98c086b7e3b9b857151250bc9e5e1e28b52f5215b61a0b30fe96278d0571a117d245a40e141e7724641a4d5e9439ca960b6888c07f2d8347b67ccae05";
-  sha512.doc = "8ac08af766c6c4b021aef5d9ea7f179f444163b954fc26eeef502e7dd1a99e44952efe91b5129084a1b2606345c854c367875601d6a59655c5e79c189e6ad376";
+  sha512.run = "ec9022c6f1fb3d888e7624f4ed311327d9f0b9b569f7eaa078d03c275027edbb4cbcf5785d155ec9cc7c68ea1f93f5d527cc769a12609c361250d5bcaf0d9d42";
+  sha512.doc = "28d6c7c2ba61c06258020dce099ae1ba339ff1a6c0a1c9b350512914fda062d3cc612cdb4410cb3ccefdef0f0700c6f724a35e1f8c5a0fcfdfe16c090322b59d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.2.1";
@@ -24495,10 +25044,11 @@ kotex-utils.binfiles = [
   "ttf2kotexfont"
 ];
 kpathsea = {
-  revision = 65309;
-  sha512.run = "8a9f0dd49470bec5ba0f963a0385bea45141d6b805682bd65e95291b02158b9d2cedd5bd43592de7c447fe87f04efa00e4d1aa191a490147adcb57ec3922b5db";
-  sha512.doc = "51500943de0184fd9794dbf6af80aed2fc7bbaf2a7949facb1840ad0e32344d217aa4d58ee76e3934aec891858f789b3847b9027cb2bd75e5962be98ddd9d02f";
+  revision = 69121;
+  sha512.run = "08b2ebc546de9615927f9933937c81a5fbae702e20e389055c62f13b70ce81a87995dcf402d8b94d0025eea80f9fbc1500270b615fe3f26f1e9c12a245dbd1d4";
+  sha512.doc = "17687e289d912120a0dc0b79829145521dcb660fee024f249153235bb2591936bedae9370ff20d8eb137d54d40d73d2854e4312651eff8a6763bf70040e0bf47";
   hasManpages = true;
+  hasInfo = true;
   hasRunfiles = true;
   license = [ "lgpl21" ];
 };
@@ -24518,13 +25068,13 @@ kpfonts = {
   version = "3.35";
 };
 kpfonts-otf = {
-  revision = 65560;
+  revision = 68970;
   stripPrefix = 0;
-  sha512.run = "f78d001ca2fff4367338e5b8bfc2adc933daac36168bfa88523cf03379ddf2da12d3c1d92bb3feaeab2eb4fe090aef691ba76c93b5aeb53d4a766fd2366a3556";
-  sha512.doc = "61be2d97b486e1dc330f3e0e16ca1b33c674afad63ddc711996d8126d9157851a2158f0c31e96d1bfb8d968ee5ca73f066714645af8374c6bffe3f8c5442daa3";
+  sha512.run = "d2519e9ea6aa8cb660d2fdd69e6e686c17c6111eeeb313dd163dc3dfc4ea90dab4abf41661541a461c6b7536062cc6d30f8bc802c2c86850b88b19e64b5c827b";
+  sha512.doc = "ad75e243de2644d48130c75923953368ffa09144f7b8e67738e2cc2e065026fbf1762251fef84ff89762f40a86ae1f1f6cb92b4a09924036fa73a004921acdb6";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.48";
+  version = "0.61";
 };
 ksfh_nat = {
   revision = 24825;
@@ -24591,16 +25141,16 @@ kvdefinekeys = {
   version = "1.6";
 };
 kvmap = {
-  revision = 56361;
+  revision = 67201;
   stripPrefix = 0;
   deps = [
     "amsmath"
     "l3experimental"
     "pgf"
   ];
-  sha512.run = "54a107c866519e6ce6cb69bd8c13ae085813c4adf235592e32cbfb2bd7eb8039ff8e1fe165f43892367a28ac0984874581424e733b1d3722796204df96d840f3";
-  sha512.doc = "41fb3957c91e3127b5d7c78fe2114cb4fe6c8167e6f7f2bbf3a5b7c0fdb12c0ac79e47d84fad54c4b6a3165114c333c575eea01d5c0c886c19b21643ab0fb03f";
-  sha512.source = "5dae9b0972acc7c95b148fb13d9008b27591aa9ff9065c1c43dc799c5096f89a8b6b2da97b17bb5e544b1a10702cf247d9cecaa39d9790993996276741c0d792";
+  sha512.run = "ea3659bf10ca08945ade08c52b4eba46fa01e28443bffd672a1614f917fe71f68a63d98568e23266d7becf6f6a4fed48f2d2367256a39e956bd2f1d40aff6f71";
+  sha512.doc = "96f3738d31a6d9fe8f8f8624448749fea3aa2d6edac1442eecd70d570954692eb9e1756c1b4f4cb02a8dc17cde37ea0012824fccc5b567250c8ab6715150c796";
+  sha512.source = "24103e29f4268d4ced68d5d1bb342c0e0155fe56e1ca07caadeda841795e44b0b246d2cc39a97f8c683a9ba71160ac774bcd194177352d6e29c079921c43c5b9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.3.5";
@@ -24674,23 +25224,23 @@ l2tabu-spanish = {
   version = "1.1";
 };
 l3backend = {
-  revision = 65573;
+  revision = 69310;
   stripPrefix = 0;
-  sha512.run = "adeed96dee5075c022752def063e1602dcc59d30ff032d3da5d51fdc57fd21c881eff95bfb9c027c8edd683a1e33030c72d3dac03fc62d7f2c32f782618ef6ba";
-  sha512.doc = "9b2dbdd99c36f9003dca7d28d578fbdc12d40fdf861c04dc579f9b81ab3dba4c7ba05143ff0b024b422c4d70c068ebecbc76ce1e03edb233e248dae3d5962d74";
-  sha512.source = "fcdc5cd944e68405fed8fcb4e97d5c855de67b00e352f99fe810e5bb61cda8ac0b1c25e7e07596ddc8528177b1277bbf1deecd370a31235edc94e8a0b2235ab8";
+  sha512.run = "06481bcaf4082b3f187a855eedc32abae8423ad5020911ba1ab10bf937c767f98ea8eb10f6a83dc41af126facf72bf4a52c9ac61b9a1d2b9065c4a20f86b617b";
+  sha512.doc = "637728bdbdeccd2ec5ced361941b7e9cb560b53dc2ed95755d7a4da45d22004923c034e1aa55b9ca13c2b8d7980f99deead19774120a296339402fd71c9c7948";
+  sha512.source = "16ec201e41de548e9d6b65dba8a778a30a88729c186c18079e50dab46b310f8313847ce5e4402dd71a01dcde8a0e8a74ce96336403ef53adf8283a5491e33223";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3build = {
-  revision = 66476;
+  revision = 69360;
   deps = [
     "luatex"
   ];
-  sha512.run = "448eb99216ab32847ca682083ec700ef04851f3a680b67b6e2abcb7eb5e0b1d705260776f23073e5e8c43ff0dac9bfe343a6d271aaa5b99392c0603538f23bac";
-  sha512.doc = "a1b2a775a1b12937afe34c4843aa6374f6e2bfe3e29004bb2b05f16d81f440921503c6373f7a44f5c72fa1185c7d0e7d06a7a2c5113986fc6b35d66b4b6d6f49";
+  sha512.run = "d69d48f9720187457d38db15492d2852990fea748a6ef505f244469185862d9c167e82422056839e7dfb22ad1a89d123711ee7c756197d1fe393d4526470d51c";
+  sha512.doc = "8d53dcc007176451d00d0d78a965b8f88d6bd1096ee340da14198573704304f1c9eb87de466a824871345c2e7043445631d7eadb6916e5cd13172e089912efef";
   hasManpages = true;
-  sha512.source = "35f6b8a5c72b5e4d7e019ec7d4954fef929f3958dc0667f554728034c28f2aab63df3c82f5d2101502906534ee02f51a6fbc1e88b49f8da8c017355c9cd7fdb2";
+  sha512.source = "8f53fd6835cfcbc22bf88be42afe97f92d007b89d2c9dfd745cbc23037a94b77a0a7261837bb77901cba7f52748c904bc0e009f253f68aa52aa8347728c2c7d5";
   hasRunfiles = true;
   scriptExts = [
     "lua"
@@ -24701,38 +25251,38 @@ l3build.binfiles = [
   "l3build"
 ];
 l3experimental = {
-  revision = 65621;
+  revision = 69310;
   stripPrefix = 0;
   deps = [
     "l3kernel"
   ];
-  sha512.run = "1074091d77bc323d108e27cb08592c895fae20f4cb563734dd69701f1a4ac215575af9425db9eec98e420317325adad434c21dbed50063036715b95d67050c90";
-  sha512.doc = "8b954e90f323646a289de57aa6c1a01c25a948b42d70d439c9921437b01fa489a01c08e50bf0601ee4fa12b32f8b60c64af82cf6a4ac9cd8cefb6ef4b4a22c70";
-  sha512.source = "aa5352e2c74e191baf954acdcbd22aef14a3c7aefef3acef6dbfabf206ed30d3102c29448f4401aa89c820172fb5b892a3af537f4ec605fb0b8e159b61131cbc";
+  sha512.run = "2e32434ce1c2e485e879e87cd1becb8374d54ec818b321b17d85d0586382351407c3ba0b246431dbbeb16994f525f5ecbd127465e7bb52ac96e7333d3dbf50f1";
+  sha512.doc = "6834b31fbaa7546a7bdc066134d85cc310609c3966905ec654b86cc590d26a55939e760ca5334b7ccb612c27836a9e3d876ad95a3d15f6fad4bb4bb6269faac3";
+  sha512.source = "e278373263b43924aab0e45c7e0a8fed54e907d5756022253b9a70121d0b2c978030e774fd52e72d240b5c15a05fe2c4c926d5cb84277ae9cf40021b80c9fd81";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3kernel = {
-  revision = 66099;
+  revision = 69310;
   stripPrefix = 0;
   deps = [
     "l3backend"
   ];
-  sha512.run = "820486c9e558687307d46b7014a8465c1c64fc7ab6826ad1af3905e43923a2ccc1ab9f49eb788ef789ac066555c459d025d6e20053d3e193ac7472b2c2ae309f";
-  sha512.doc = "0bce2a717b743fcf28063fa5f3f67dad352060bebfce10d4dc82d3c2b691d63d3511a8f216099f8f3ef46b47d02f567cbe9aafb7451052282ae7b0abe1a1bb49";
-  sha512.source = "6b5e60555640e0f568013e28ede3c8b914f22bb623554361a4cc68140b393234ba6cdbe0defb95e81858c0f8dbee43eaaa0e7d863a5794453f3a810c3cafb45e";
+  sha512.run = "254ca061eef5d18c856c4fb2ef00240fbf1f85b7459739b92787a99ef2c36054ce2eda2629ce92305e0e6c8b73f85074c691595d88a0ad035594307d60b2d5fd";
+  sha512.doc = "71265e9c6834c69c2945810a7aec93d7c5118b5ace790d9aebe846f86dbf62652d19d5fea2979a0701c0ff6a2c2c5bedf55a20a19cc8d5944cbd7eece3061d65";
+  sha512.source = "e2416ae4337acfd241fbd1f8b5a2d2a60c0a3838933404ac48e36c7711d6418efec041a5d8be58383a49ad0f6f3e38d8a522a0bbf9c4b589b4bfe46c9d174b6c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3packages = {
-  revision = 65722;
+  revision = 68507;
   stripPrefix = 0;
   deps = [
     "l3kernel"
   ];
-  sha512.run = "39204e9cd356a5202dddad329cefa5bb47d11e6553609fbcf79a878c524b8f67e868e027015e304fb626d5bb953a69743390174f20f489302682e08a512c26f0";
-  sha512.doc = "3ece8153e345f4678cf5e4c05200033a64fc7e0d9e80d42ad8f32604f8b78a888ab86a98a8c68144855773d96650698af82af3be77fc7523d7cb9ec36a9c5d9a";
-  sha512.source = "8a113832ec4aab128ef471c496a86bde774c9b86f77beef04b8eed03ee8c78c57004786d4606a67e5bfdccdfd41fcf7875fc96f2e03e59b6f0884cf5e03a6644";
+  sha512.run = "aaf755351982e89531305e3f7a037db69e15b1b1eabb4140cb7a3a0a4db7c9604222cf0b9622d05b7637da310634f4ca1f00ab5941f51f152eb46b77165e4c92";
+  sha512.doc = "05231cdbc1f9bf3ad9775893099c46705f155a15e3ce9c4e8fb3d92422a3bd3dce9d05cd89e6f45c1d2afcf4c3dd469995e8d156e045d95b2788a4712ad5f094";
+  sha512.source = "642810f1d5eb19059e0d5541b3cf98c6e7412c1cd3194d469eedf9df5d53ba8c1d0f3ecd382df18637408648d252c3c52bb6e730391049626d8dc5076bb3b7e7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -24765,14 +25315,14 @@ labels4easylist = {
   version = "1.0";
 };
 labelschanged = {
-  revision = 46040;
+  revision = 69400;
   stripPrefix = 0;
-  sha512.run = "e9cbb45a636fa75c9b9c8d8400fd9a0cf0ef2a46f998d650631e9874907daa7b4deeb4c99d1610eefc343436d164ace717b32cb1d0c45e860e64d69e4c827a07";
-  sha512.doc = "130c0e5f27f0de161949fca202f73bce3486e9346a48584ce1b8636c16367eb3398b36f0145e37531d64933698c201132ba90ca3b5d5b011978d0fad0cc5ad63";
-  sha512.source = "59c1cd3371e97542f6f1cd8fcd14b3cadfabffbecad635bcea33eb535e45ba8b174e9e392e135c799afec08c195b867477255d1336c281a1e9dffe7c1c457cd3";
+  sha512.run = "9d40f477089880f8e0c61f95af1e94848dbac11a8ea5ee3a0c0c33a5883a8aba4c0471d2e23319667aa0dbf0699599372c8267588247809f316304e868ebaaf5";
+  sha512.doc = "ca1f6dd7d4be5c9b130a17c75cfe927e354ffd5756bd893ef99c2f67dfef69a585e139d9d3b44e0828cf0928197bfcc8a909e5a32ca386380ca2a203a8ad0fee";
+  sha512.source = "e3e5187658e31d0391910a1d4610cdb5572ddf13006423aa673475e165b04bcca56f6d324f0b383a6e7faf0a3263e68f5727c39eef38e903ee2950981c5b290c";
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "1.0";
+  version = "1.01";
 };
 labyrinth = {
   revision = 33454;
@@ -24784,9 +25334,9 @@ labyrinth = {
   version = "1.0";
 };
 lacheck = {
-  revision = 54070;
-  sha512.run = "30241d13ac35054017c6240ad066ae84b11c26757fa895ffdc1444b0825e50a2a89864ca85d710882be4105127c4df203ad4a403504a6c309b796c9b9ee5b589";
-  sha512.doc = "a1ef923bfe1c3496651052b4a8b6978665b75f43b7dbeb254fb61657050427aedc8415218f988a7e727849dd0001b67ed023ecd252bac2445b0965a58800187c";
+  revision = 66186;
+  sha512.run = "5a27d940fe59c61539d053bc6602bf37df1f538679eaf34d0e8b3ec3aed74ff619e4843ae2769aeafd10074328e9e27255376bc9e809d373d3913995a2a95b87";
+  sha512.doc = "cf4355d56985f9335270e4280d10602299fadfd01605e83edb4e8b89cf0d91b3e8ca671257a9599d5f5578e7a85140d390edd40c3b109f77bb9fca5ba47ca517";
   hasManpages = true;
   license = [ "gpl1Only" ];
 };
@@ -24836,14 +25386,14 @@ langcode = {
   version = "0.2";
 };
 langnames = {
-  revision = 65502;
+  revision = 69101;
   stripPrefix = 0;
-  sha512.run = "34942812d0c0a59d9e0515e58dc6517a3e4b9fcbf75a338925f2913287d712b9975aa2c48a5f65d2453d5d2b5798f506e8b5bbcb6351ab92cd7a77a07804e94a";
-  sha512.doc = "0f3d6dc9fcff40e3bbf8d9217629b5c587dd5cca03efa840611d907bc2859f88515e9f4a052fe229d9fbdd3aa2c2d5905a5cfe818b09897688f3e528d12c0267";
-  sha512.source = "0777e5a79ac5dd94ac8a9c7191f877408c5d00de252ee95015e8b8918fc94dd29877f10ee110c082df2309d4c0f057fee6a5c50568259d8f93ef7f55b5b5609e";
+  sha512.run = "16d4b14025e142be2c0d21509041d99ee2eb9b4b765abfa3102cf79759c79e79f43191f8ba1fcea3d8c7269bdeb6feb0a9efafb1f1ea195b58ed97a307386bdf";
+  sha512.doc = "0cc3548f9a640e3c6756298ff609bc5458f30fe096fb8557881356624dcfc6f81068af21731df3c5635381ef98c9b30c1f297213b8489e2bab8840c78f723ed8";
+  sha512.source = "dba944b6330ed6ec883ae6bc0fddb724b74d5ea31d703cd89e85e9cf91642d9edcfdc4710e812bbf658774611bb29764fa8e2a3e1df678e70aab6fa160cad50b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1";
+  version = "3.0.0";
 };
 langsci = {
   revision = 65793;
@@ -24854,11 +25404,11 @@ langsci = {
   license = [ "lppl13c" ];
 };
 langsci-avm = {
-  revision = 66030;
+  revision = 66016;
   stripPrefix = 0;
-  sha512.run = "8ad343adc02963f16994f9e2aaef7cd1f65335493779f78b2074b9fd633cdc1503a1f0132af5f883bf922c7ac3bfc0e31af498dc374fb2bb6b1a863f94bf1a76";
-  sha512.doc = "fe54e7fc550904ae835d49bc628a99361cbe08b979607992dc134157e466a7afdde35a01e2664a0f7f8ef822f00b1a6726aedbee49c2597f19d8b8ada8903591";
-  sha512.source = "d6f6e468c729715295c1f4f9d9a784cc5924a2a535c108bdbabd2e4dfefe6458a2ddf66883dfe91db8b68e8dfb72d77b3fbc05d2d07c2b22cdfc079ad2f519bb";
+  sha512.run = "00cb724f7783d4f6d088f38bd60c816afe8c117b338bf3ae320e4b8118416f025b535989a48262d13d210087560ae01d850f2562f3d75db38210fcb6c012ab38";
+  sha512.doc = "618e957df349847fd4828b07ad44e9a8247bcaba893704379471afbf9348c310da92fde003bbbe963b3249ba532982483ad7eb53950a5f39b27f9c17058f7bd0";
+  sha512.source = "bd2a2411ad9e5d418f33b3c758bcc7f572aff8be2a8b757c247bf099d246f4b658602cdda97e12de0e784259e13b3e4840b5789baf35606ebfc3baf2629bea10";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.3.0";
@@ -24883,17 +25433,17 @@ lastpackage = {
   version = "0.1";
 };
 lastpage = {
-  revision = 66465;
+  revision = 68557;
   stripPrefix = 0;
-  sha512.run = "481f889f29cd7111d4696ba5a5d7547bf76270bc269a55f039d6c14ac43ec5168f8876288c22aa1282d74db32c39f52250aed23b904a1a6244af0e4061df8a9d";
-  sha512.doc = "86282d58c1d12cb32a73005bc17eaeb2c92bc378981a9a0225bae3e9689324aa0f3b705aae774eab1b1a7ed262965a241f336ef58a69bf395bc8d09fffa4cbc0";
-  sha512.source = "82cd6613a3d12677d8303983a42cb55dbead822c6b001d7c2a76effb59a2ef5c9bd9898652eee0aea9213d2ef16739bfed520329c356974800c4893863f15569";
+  sha512.run = "058f7b1e73340b5290beb22054c1bc0b97cd64a3051e90a4359ac7916ba033ce0817e6a1139a8b6b301bc0f68176bd882e8bdc7a7b59a719f0d090dc7cd76242";
+  sha512.doc = "e72576d702e2e76242c18d645351568f4adaa468b5946fca30c9ca7b9d2c36a703ad91df3b898089499c0127aeeef79e904652f35ab6bf98f5126ec6c387baa2";
+  sha512.source = "3b0f6326e815812644493e1a0ff422520e9e555f87f93d1c3f31a3b4a1250254ff0f4161e36785cdefb09833c9a3ae93e005cb4d5a4c3157372f79e00e23a779";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0a";
+  version = "2.0e";
 };
 latex = {
-  revision = 65161;
+  revision = 68720;
   stripPrefix = 0;
   deps = [
     "latex-fonts"
@@ -24901,35 +25451,35 @@ latex = {
     "luatex"
     "pdftex"
   ];
-  sha512.run = "de95ba089738862d57b1139a21da57a8263cbe9ff81a7ab43608ce23fde57b4630057a95c99ecb7be712bc864e0c07a56429019d7aa9f63c01f47a995d5d567d";
-  sha512.doc = "68ecd2a5c85afe7b39402db416bb7ad0f8e5662c77d77c0839a470f3f70da65377560fbcb5a6952e997da70868533f29a4b7c65d3f7dd63db13aa95ee7159b23";
-  sha512.source = "59d3d31147fc8a31c6348c2a5f371cd4dc69d2367f9ced0c62150c5d14ead49b4e195c328ad4791638e61b93f69143c0c93bbed5551b31e4de1284a4aa7b6d73";
+  sha512.run = "5db84e105289993a7b03358f17af52568fc826c677368aec4c9326c1ca974961de01833b038aae6b95101a05dbd60f6714756d866e1a144c30199a0bd661e30c";
+  sha512.doc = "53f76796c526b4357b48df1443baedf5af5304da87b21ed2ee6619184c9daec33c8fd7a059f92c0dc037c1b19c3bedf804e907c8031385b1f62d199c7af67e2b";
+  sha512.source = "c6c5244599aa46ee18f66dfbb59e59411625cdb75333bd84a461f3c03b3f4d0400e3d6100b1f511107d779f0adc7dc1ae50952c1315ed587b95432dd3b659a0c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2022-11-01_PL1";
+  version = "2023-06-01_PL1";
 };
 latex-amsmath-dev = {
-  revision = 64899;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "54d16b5357800dfdeed39ea71e5c98bbe8ff88c4f01bf9781be181d47854110bd5e9f50a70b512963e4034d5b984e5ab898f61412b3d5b183c3799a908512e64";
-  sha512.doc = "e1d3a8c5f15962c3727dab5d9cf6aff999e817e56ec950b3a49adc762318a895cbfe411e27795957831b18f8b19ade00b40ea9c72e0e112ed41540556eb179f0";
-  sha512.source = "2d1cb38cf290f4fbcf7cd32f2befbb399a4f92a89396ce312f4274f05ceb72b702c0908b1f7877fcc346e4c78499af1028edbb6723b57d3ca4a31ea30d68fb76";
+  sha512.run = "e36a09409559a415c14fcd5e5aa8afdf268ac8b099814a1eb6fec88aeaef17ed2bfc1649b1859d8f5d4c90b25af520028c184a01866e9cc25bfd5ad7e945f84a";
+  sha512.doc = "609a298efbf504274793777b78af7db57b3e161ca8a49abb2cf9b095162a93c2eb0b796f24183d512f4ad30375401a56c6e238b1c18e61038b51bdf3513542a2";
+  sha512.source = "abd63e1e75b661b4301e90ec60015073e42f2686f2e639e2c264047c3d6f071c10cb933049baeea3b49734ffa0596253be65644d8ad54253443e8ba42d09d30a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-05-01_pre-release_0";
+  version = "2024-06-01_pre-release_0";
 };
 latex-base-dev = {
-  revision = 66516;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "894c02aa5d251588d11d4598bce8a824b443e3f00ea6a894f8df0810c2cf2becc06cfa823cd18a0fc9f508415e852e0e7b5558d7738ae33bffd9592980ffaa95";
-  sha512.doc = "9602fb4c57701bf649796964675a7835de5525b876e9e2dfe76a8db9e09bc5dc239380c1bee4e80a514f02b1a0172d13dd8474c54ecf8b855924b6b65555b0cd";
-  sha512.source = "ab535b52c57dc9bedaacf5b4dc54e31e4338f87f31e855f28a6161407cd381507dd8c1638a4aa850cdf67e5bac746ad77f7b119243e07d06a95da95d4bd31204";
+  sha512.run = "88a5f4610e396128575a96bc20091a0bc66295aab4febe52a46e89e8bc1b4396ab33dda9bb3b94a643645b82c676e6e1fcf37544435ff2852af0417f97f24f52";
+  sha512.doc = "10214331abeb528bc4e594f9141c99c21cde74729652a7d4a3bce71e401493904377bbf49c1778e35461689f0b2eba9e59c9b52ea484c8ac1bf79413963124a1";
+  sha512.source = "c601183a89eb0d5fcacd7f40bcc867d668067228fcdc17ff5dd5dce57623a6ad21c51d0f5be8b5e99003e4eb683ed4cee33a201fee52c88f1f2a4d873d901197";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-06-01_pre-release_2";
+  version = "2024-06-01_pre-release_0";
 };
 latex-bin = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "atbegshi"
     "atveryend"
@@ -24985,12 +25535,12 @@ latex-bin = {
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex" "dehyph" "hyph-utf8" "latexconfig" ];
     }
   ];
-  sha512.run = "91b6749a7fc520500812c203a1acb0701e7984e5e309eaf0c4815bc7ea0b507f3eeaaae3a6ad715ee53f018b8e38c695c4ff9567f26222cd2c52ba24e1a03c1f";
-  sha512.doc = "30f9001ed8236f01555f8a21ff8286ea409d75583876f8ba795e1a819dea14cb3f2b3dff31e0258cf5deb75ae2fd9201e33260ef1f32c2ce53fb86bfa4e59f83";
+  sha512.run = "4067db41ccc58892a4683c2ce5e15784e9aeebea88a9d9302dffc36fedf48f51c469bb1e99035ebafc58aa0a8a442c12b06457898a71e492ce778e58122a6a62";
+  sha512.doc = "763c7e3df586a275b2a756b591c96ae98ca1a2b5f0c694e9b502d55e7c4a0ad1d40b15ff4987e2be6a06f2f11afe99a4f7fcace22c45877dc54741383a55df25";
   hasManpages = true;
 };
 latex-bin-dev = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "atbegshi"
     "atveryend"
@@ -25048,8 +25598,8 @@ latex-bin-dev = {
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex-base-dev" "latex-firstaid-dev" "dehyph" "hyph-utf8" "latexconfig" "pdftex" ];
     }
   ];
-  sha512.run = "dade40731ce41c6a0304cb7472255f2d6c8b1fed45b619282aa747b3ebbdfd707da18947f06c8896d72605b324ffa58c3c7195bd90629531ef1fb54a91f1310c";
-  sha512.doc = "7434698038dd90f10c51743e238cfcf0d85da2067d458f399e557b855c7ae6fd4e013ef4272e710eb9695d3e4f8757acae95c41a9e704a393202aafc11218754";
+  sha512.run = "56988a74dc1969af32a87890a930eae5d1c41cc7d78d84d5293836c139885e1bca3103304d0083583e0a9d9ad1ebd76b11f86df67887de6ebec7b36137755075";
+  sha512.doc = "2166531c752eb0295b643f0e20f518011d2c3063a9a5de5e7e913b2cdf8efcb382a9460ef95a711420e9a9f49fc2ac77a538361c4cdc7d730af5acb43f15f2ab";
   hasManpages = true;
 };
 latex-bin-dev.binfiles = [
@@ -25071,11 +25621,19 @@ latex-brochure = {
   sha512.doc = "f057b86b61ee1f50430cdb83a56c27896e052047bbc93c4f09884b7d76f16f73cb1b570341faa2b8c771c0d42bb4d6450b8715c921fe866a57727eb4ffdd329a";
   license = [ "lppl13c" ];
 };
+latex-context-ppchtex = {
+  revision = 66687;
+  stripPrefix = 0;
+  sha512.run = "6ab0e6d04cbf49cc78ed8f45d65837055d73f55ceea9014e5178bb30f7a322137856d187b7e0808f08df48408b57635537bd8dbbb1157d1508728aa2bf7e1190";
+  sha512.doc = "130b525dbf4172306b9bf6b74defccbaa17ab1871d044ce693ba2c0ebf568adce98eacc6cebae94bca425c7b8cb7bd2860747768a03380018a9abd33175786c9";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 latex-course = {
-  revision = 25505;
+  revision = 68681;
   stripPrefix = 0;
-  sha512.run = "9af9e8a2ff7663ba89538a93e45e27098451be4ccb9380b0deb002a9a42613467184b5a4d38ff8222c7ec5e3c722128222976aade12000c447ff7f8ab42c0656";
-  sha512.doc = "772ecca6e71a9af7c31b9c5fd48cce88a7dd880a98b0885e9e5084247f64049234a8d123fe985e247ae706f1d0da1f58bae9e62082defe1acf9345bc252b03b7";
+  sha512.run = "533e270cadcee8dd7510368c596272d9e877c753f76246f11d8b3db6a3eed96319284c15a872d1fcbdb0557c7a267eae4beb9cd2d618f98759456357fc2b6087";
+  sha512.doc = "56f0cdd7a50b396657d60d3d10586e0472e18f3b66005df08746fd93cd481742bec1f1e820248185f9b25d6b58251dd8a4715231272324a5208e25335ede85e9";
   license = [ "gpl1Only" ];
   version = "2";
 };
@@ -25087,14 +25645,14 @@ latex-doc-ptr = {
   license = [ "publicDomain" ];
 };
 latex-firstaid-dev = {
-  revision = 65181;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "f9305a21c399fac15258a607d12b889ca860eba3673b8b4d91a6470a078f6b23288588dd6d22e9255629060696702d2d22163d6669cede8c83762b286ad22cf8";
-  sha512.doc = "fe6a3cc24a4aebca09d4c20336016847a177b352d9ad402bc675f0bb67231dafd38f6208e003f6ce39bc7bb451e600c5f1457cc3723bb1f4d7bc7aedaa751ed4";
-  sha512.source = "b7a1c866724208e2f702e9e7678876e8607e9063686b2cbb81b5bc97bfc84584207156cbf8c0b0470b5f8c2eb6227d8474c17ca52a582ad6e957ca20c3d18b8d";
+  sha512.run = "837b36861d1c5c42107ebfca9de78df1e4426b2466c001532ff3717743babecb8f574c5b431cc821f27a8cf20e88fa7e6dda5633fa8fac28084007183621ac08";
+  sha512.doc = "2f0676b179ec977da7d91135d2e9330bc37a67eba038754998445c49523d1630c34360bb857c108ab47a185a409d3924039d7b03f3b420d74c52fc98606ff408";
+  sha512.source = "c783d78612a76b55f49828ccd3f719ad94ab3a2a3d8b936e2049322c0c5fa773b8db76bc1a8d471d443bf3bc0d7897df7db628866287b64ee281764ae258f839";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0w";
+  version = "1.1b";
 };
 latex-fonts = {
   revision = 28888;
@@ -25132,36 +25690,36 @@ latex-graphics-companion = {
   license = [ "lppl13c" ];
 };
 latex-graphics-dev = {
-  revision = 64899;
+  revision = 68730;
   stripPrefix = 0;
   deps = [
     "graphics-cfg"
   ];
-  sha512.run = "33e2d6ed2e3076219a0438b8d8461110e7edf3a9b0534455d2fc43837a3766d12bdc8d912414bf88bdbd9b10a54a5b8b2045ff3a3cef42ed7cdc49a2d8664d5a";
-  sha512.doc = "ab0be817107e89a4d87c8e5ce68d20ec06eba0ae37ccf79d2dae1e916fc9ae8e2b1c7f7d9701daeffa5bfb931a881d63cfd188393e075c943d91fccf3eb1753c";
-  sha512.source = "cb5f6a80b7178dfd1074235d5e1c7a3a2830d4c7eb037cf9e5d51a2770ed85140be7648e288cd5d67f64955212b29d8dc37fe359c0b7a27fc065cdecdc198de7";
+  sha512.run = "a6357498f8bb7b6e47dc78f22163955e6f207df84a5270bec98d003ff7c0c31d82a13f3ca8e6d1242721bbeee6d5c8bc4e6bf744708fda9a3e5e9ebe30eaf9bb";
+  sha512.doc = "0edf4d8f6b4d48df6e5f46ea5836a30f7608701a0470fdb713333b4e17c0348bbbde8df2e9dbfafb8bae924eb70c34e351aabe4a0e460821790adfa0ee52e384";
+  sha512.source = "f2d2b4e1c67d5159c14426df49065edd0605a1db88ee0c2d72d582edab070c6f8f11bb517f969893761c0c22935df69e5b9dc6d981e0f6136326277e1e2be927";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-05-01_pre-release_0";
+  version = "2024-06-01_pre-release_0";
 };
 latex-lab = {
-  revision = 64892;
+  revision = 68720;
   stripPrefix = 0;
-  sha512.run = "90c94e15ff9131c03891c3671ffe77c3c87fbb2cf28437a4e7e9e2eb366cd74dba85e04fa0ed7d7d25b9ec39d60397a6e6a31b9a5c05e9d8fa1a6a8775a7f4cd";
-  sha512.doc = "efa0da9d1f8744283802966defb8e79d2830a390c13eb310f4b9e67cdb18f1f46c05df0f2ffe5093d2ae1d6a4d3ad869437d4913e121b1d2435c3618aa6833bf";
-  sha512.source = "a1f8b5699ca88f7ca9f0576ce1a1f4b5404cea616361dd2e73cfbce60f09a9d2bbfb365c293adec116a768ca27b36e99b49a0f9a6cd86b817cb1b3b58d308e19";
+  sha512.run = "ede4176b7ca60193acd644f572db5d1611a6940027f7641ca755634401b19e20eca65915d57e6a0859e465e818d6854ca98dc16106782bee0f817d776c056a10";
+  sha512.doc = "eda6ca871645fd6fe60424329e4c4d8d9817039d9cc30bd6f710c30675a3e8f0b7f7523b081b871e9e5abbf62a0ce0e22854aa443684818771ce2022f4887e7e";
+  sha512.source = "acc092bf6cc685cf8c9d5a0cd5af47022c3936ff0e509a3743ae22ab888daffd0c1b7b657c5a1e1019232c4047e89626963ec1784b406ad16d3dd3f10f6e19b7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 latex-lab-dev = {
-  revision = 66516;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "1832e440ed5b6d6f1dd2a9e143095b68062593bd15ace928d9dd74f2e0aae90cc285c4313651dafcfa21d4a897cc2784f0eaf1e43d82bed2c6d28ccd863fe609";
-  sha512.doc = "e08b6311af8aded0f6e3f2bd6ab13459057692adf17351166aee16b88490a70e970bf22b981700a0b1952e46c0c8028fb622ba0575fa9d872f5d74f10764d8f6";
-  sha512.source = "551dfbb6613ce4f268948ec7e432bca20d4e4cc2ba5c50f4c10e4c3192d5f9837b26a05268b559b593b6141a41529b014a2d545965dd71adce5fc1cd5f758ee5";
+  sha512.run = "59718166fdb95ce7a0323aa201477775d469f091eb47866b81449bff506e6523cdeef0609f9b0a68ff0150e1f08010f1bc00b447e4f7a30b254ee5db0b7494f5";
+  sha512.doc = "42de975fc56df75072e120baffc5a70f4525d80c82ad1e3de60e23527443d8ecc90b0219b42e1c52abad0318c19b27792f46b83e22cf471e5a49ffec2f8e61b1";
+  sha512.source = "5eee782feb451b2b454d08272df09c94184fc3f7f58564eb11fb7e927f4b9a23d3bc0daca31914f9c96b53ff55642458f35a4851f0373a699abfdb168be93bba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-06-01_pre-release_2";
+  version = "2024-06-01_pre-release_0";
 };
 latex-make = {
   revision = 60874;
@@ -25212,14 +25770,14 @@ latex-refsheet = {
   version = "1.2";
 };
 latex-tools-dev = {
-  revision = 64899;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "04be02d57a30975443b1f56512a066775d4f9531c63f4466e728e6575e7edad0677c5bf7f492c5b9dd2938359b392789845e0df6d4e69d53da465dad7d6783ff";
-  sha512.doc = "f784daabae6e1986c0c79115e7600849af75061a314e3410d7521b1e8ea5920d1e382a15c9b18bb6f7d5a585b40a4a835f59e8a1fa6ad62f5f16a5fb6e037e42";
-  sha512.source = "4f2a940c3cd04762ffac656929c1b01a74feb4a4edbc8387ad2cb673aa2af5e8ce1b3f804c7f46053cc2e38416ee5cd8739e59eb19b8af9796b68651e1f08665";
+  sha512.run = "b7ac20a167585e18b7f249612223508380b04e162f10123e6a1fcde1df07fa72bee42bd46cc4cb20043552f981455a4036357b7c5f4c41b2dfa9cdfb8f4dd5d3";
+  sha512.doc = "2711c79b5ca59c7f399b0645f4b3d4620b3cfec3b76b3f26882d42c50ae9bedb46fc59a9483c067e8a667a4e089be42fe8e87daa708ee19e8ae0e945038f1f23";
+  sha512.source = "adea89208290f95ed0b970027c0eb70b6f7300fd4e171a18f88e6c174e0f184ee880a2cb04f8697b2ac55df45484787289a792578933857fb6d70864c0ae57f9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-05-01_pre-release_0";
+  version = "2024-06-01_pre-release_0";
 };
 latex-uni8 = {
   revision = 49729;
@@ -25239,12 +25797,12 @@ latex-veryshortguide = {
   version = "0.7";
 };
 latex-via-exemplos = {
-  revision = 63374;
+  revision = 68627;
   stripPrefix = 0;
-  sha512.run = "e10e8c0ddc02b4c99a382d7839118c454b4b3ecd931a880e2c8d4cd69999349dc2088a221976acc91f78d7ddef9bc1ec92d345eb26a499b46ad676c2401faf5d";
-  sha512.doc = "6065f5e9997d39f38fa3759ad4ed19c42914019b582aeb9aa6baa359eead9ff3ff5c6fcb690702337fe4ed7a4dad87d0b7a04d96e5f54a647efa8829b807b004";
+  sha512.run = "d98f99d1da5b8192cfd824829ec31f09f3178b0682885e5f497203c6f3f73bedc0a4f0a766ccde2f4f8a0e68b231f4d1213b3586fd1093588f3a9312716f072d";
+  sha512.doc = "605dba889bfa1ad23b2990b2f0f40db42947b718cd272d8f61243818d40ad9a552fb61f87ff4e3844e580d3acaaa9842c2484c62c5c5dfb4450755db3fb02758";
   license = [ "gpl2Plus" ];
-  version = "0.5.8";
+  version = "0.5.10";
 };
 latex-web-companion = {
   revision = 29349;
@@ -25258,6 +25816,7 @@ latex2e-help-texinfo = {
   stripPrefix = 0;
   sha512.run = "34b91b19e1b71b1df6d0f57dda4d6976a93b16afac259656c9d4e331b0c23a9b0550563c1a10dd7a95640e3740b3b15597c1023f6c2721bf2a64800466b9cd09";
   sha512.doc = "d4584d9259f3c1867e7445d4a219e4decc5ba3b305e20d1e780180a47fbad8df4d55552726d8288e78c8388823a2b652b81080c8139b00f4ea3ca10e5789375b";
+  hasInfo = true;
   license = [ "free" ];
 };
 latex2e-help-texinfo-fr = {
@@ -25265,6 +25824,7 @@ latex2e-help-texinfo-fr = {
   stripPrefix = 0;
   sha512.run = "96366ea420532f56ae076da48f5402c2ee78ca27fae8180795d6cd18aae118a8c7060208ff43ab64526addcdce9e4d90790583842b20c751f37865cf616e04e4";
   sha512.doc = "52f6aea9ac2393a73d7dc7ce8ad4d6f08e0a224397199d5def97412502026717e8cb966552368899c50718a1049b1ad4610d2d23150a45bee55cc2c776003db7";
+  hasInfo = true;
   license = [ "publicDomain" ];
 };
 latex2e-help-texinfo-spanish = {
@@ -25272,6 +25832,7 @@ latex2e-help-texinfo-spanish = {
   stripPrefix = 0;
   sha512.run = "870c8f3af54ac42df5f4958669cf730cd16084c985f0b377c5aba9d526b8f7be14b367791d2c0a1f1a715739390ab63777ff2a92e7f9aad09897c8bbecff495e";
   sha512.doc = "4c751a7305e089dab61bf991436ab1e612cfca0d17e416e21d659c04ef32eeb2d14dbeb09d63649a2b79f842766a218c43ae2c6fbeeba5549f039f991049a79d";
+  hasInfo = true;
   license = [ "free" ];
 };
 latex2man = {
@@ -25279,6 +25840,7 @@ latex2man = {
   sha512.run = "2617f6e8059f30c0098ea896cff69f585ea2ddbd3bbbd8066e7296dd833d3a246b8fefc0af71a92abf7e2051c754c0e3e6098175a4b181780563416bc9146b95";
   sha512.doc = "390666cc56ad70342c9a24ca593fe65b3760674a882ed8bba383d193f2578285727a085f823afc03fa0dbc9966612caf9a29222fd2a9f39214f01aa268acdc50";
   hasManpages = true;
+  hasInfo = true;
   hasRunfiles = true;
   license = [ "lppl1" ];
   version = "1.29";
@@ -25300,6 +25862,16 @@ latex2nemeth = {
 latex2nemeth.binfiles = [
   "latex2nemeth"
 ];
+latex2pydata = {
+  revision = 68919;
+  stripPrefix = 0;
+  sha512.run = "7da5e33f287bac42a378bf33073ec6a982dff7000097fdb865844299efeb9e7a1647ae49bd3332b036755dd4da6be34fbb197c8148d2c2af5c60b7580d0420d1";
+  sha512.doc = "8d78f4bfe6ddd1742baaa792842ab9ada5cdf4e1eeb3fb3496780e3a31120406d56be4be7cbbade5815f72cab57b76a5218e3bd86ef4593d1fc75fa2196e7212";
+  sha512.source = "fe7111c44158c400af7d0feda67e2bc8a1cc313ab8bca7c101ed75e57ca1a00fe434232ad4c5b78a19fad388d8a8cfa0af6cd53c7f84b809209d7bf955f8e05c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 latex4musicians = {
   revision = 49759;
   stripPrefix = 0;
@@ -25309,12 +25881,12 @@ latex4musicians = {
   version = "1.0.1";
 };
 latex4wp = {
-  revision = 35999;
+  revision = 68096;
   stripPrefix = 0;
-  sha512.run = "64ce122ac380c4f2c06d3afe2cf1aa2af2dd6d29fc451ced9df05206c97dc0343e6867d770d9b4e1c0425ea41ef89cb2d0a003d43cddf82ea19a7b33d383b7ca";
-  sha512.doc = "e8f22deb966044c87e7414d828ae3d8bfabfda40bdebb4b26b712692020c785ad8688595cced27ea5993c8b8f34f7fbe0cc86180d2ff8bfcc44cc009fd52e936";
+  sha512.run = "0111de0987679fe40b14a4ad0dfa098fef36acf15e099f932e75121c26bdadc2e493c77b1d5b4208e662f2e5893955cfad639bf018d48aa5e7a7c77e5d009c6c";
+  sha512.doc = "eae8e0b5e4fe28311508b09b4b8b03ac31469e32772427c5d016bf43d48e458fea06f9dcf9ed696e1eaaea7bfd6b0ef4661d8b84c2bdedec44ca35c782079bf9";
   license = [ "fdl13Only" ];
-  version = "1.0.10";
+  version = "1.2";
 };
 latex4wp-it = {
   revision = 36000;
@@ -25385,9 +25957,9 @@ latexcolors = {
   version = "0.1a";
 };
 latexconfig = {
-  revision = 53525;
+  revision = 68923;
   stripPrefix = 0;
-  sha512.run = "2d98dafa5c2b90321ca8600171ba22cc7eff73a23d6d88073c477bcb84de37369ddf682163b7a9dc26ce77fb2b1c174a4f810b66a34b29646ad988a9965d9bb6";
+  sha512.run = "22e233cad5742691da573249b3f9cd4ea0c6ccf4e31a757837d710ca863e0cccd089106e523e40fb541255f3795d963273ccdf70211f19ff3caecb30d7fefcbe";
   hasRunfiles = true;
 };
 latexcourse-rug = {
@@ -25399,14 +25971,14 @@ latexcourse-rug = {
   version = "1.1";
 };
 latexdemo = {
-  revision = 55265;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "c93e3d39dd042ddbb32661b3972d153ea3905726fd0961a4162223fee274cea0c95f0978233c4619e00a043189e9d2f2c285767e33890e30ed118f099ef9a5ae";
-  sha512.doc = "442a42c51eab80a28152a53f62b792108002e912dbb0e9ff6afd41237cdf2e954c57c46b0ddc382c0ff0877ddf9747e22cb7c7ac5fabb79080cdd657a1c1422a";
-  sha512.source = "2bfdb3740b0118a362e890257a4f38271d6ac24a4b8712edb5a646eeb8ee14787d913d7d8a171ab9a849667899cad3b2089a9eec2fc7c21bfa21e91d900c9527";
+  sha512.run = "e8444a7362e06fe225e9033fb4fd69a5dbdae2e6b18ff50b860e327890cedb5ccc92a2aa977d5349346dcbc0da91644729d292e08cd9651e096362df43f1b5fa";
+  sha512.doc = "b704b4f266b2106d6a48dd5fca3af644ffb750c7a183d0ceb31db06c98802faff451d4a224289203174f086c7ac46bb83b5296115fc2bb0241b213ebf631115f";
+  sha512.source = "cd9ccedf50931754ebd4f3a9cdf5df651be802fd31622a7efa945d41e3d2d4325827dc12983f17761caec0458a02d69eabb717c9ee0a80973b4f055d8bc1b7e3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1";
+  version = "0.2";
 };
 latexdiff = {
   revision = 64980;
@@ -25453,24 +26025,24 @@ latexgit = {
   license = [ "gpl3" ];
 };
 latexindent = {
-  revision = 65940;
-  sha512.run = "67b0909afd4abb1f44a83af8d6b907ea63ea2ea4ffed4f5a92935a0612d255c819338f1accf656a9127f41c6c55f7669262e70c7c81f7b954b60d504308c8167";
-  sha512.doc = "989e20858583d043d6cc050ce05028ec16bd7295fe9b126a2cfe780f20bd361d154cb24056484a70ad719305fff0ff3852e482347cbeb8434f2ee3d4d57be762";
+  revision = 69269;
+  sha512.run = "32b0e8cf8433c6c5df601268b9be7d752322fab5fa120e1ee9b8335ba5ab5d48d874bad26756fba2b9da19ce3ce582824af7a859ec1e7f57a8b2e3ea66c6d631";
+  sha512.doc = "f843748868107e46e97840d2ef8699d3234760cceb467730370484459a254db7c36869ed0eaeda66e95791d7bb20d576ffbea39e72da44036cbed0dc86799742";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "3.20.3";
+  version = "3.23.5";
 };
 latexindent.binfiles = [
   "latexindent"
 ];
 latexmk = {
-  revision = 65485;
-  sha512.run = "c00227344e815dd558173662022045e2d6d2bf626235aa2b12e637da5ecfe069b4bf74d243eda7d33d0fb9d7c98e67fc33b2a6735d87bae17f22f5e81b1f2710";
-  sha512.doc = "4daa3f455c7396aaff4c7ad0322787621fb91f247cf8da95dd65aebc4d09f114ef226b65c701807b6f4d66777026be2d65ff10745d96832658139f33b315069b";
+  revision = 69373;
+  sha512.run = "04cb04d6d286f317c7a9e3a7b2c38e1cb9b89e9570d59082173dda7eed8283f49166691113409c5197d5d8da7f319dde9248a445dbefdde97cb1b940a3dbfb9a";
+  sha512.doc = "0d57a68fdea7492a0776e7efaa4269ef45050a52ab40a596381e8d73ff978d9e25459675fe3aac6efba536197f7682a86eb8435c1250957f40a0ac8ac3e9b007";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "4.79";
+  version = "4.82a";
 };
 latexmk.binfiles = [
   "latexmk"
@@ -25485,9 +26057,9 @@ latexmp = {
   version = "1.2.1";
 };
 latexpand = {
-  revision = 66229;
-  sha512.run = "60b6e87b06229abb8e88f4a94a99146b20b2613ddcf74d81d7991fb7fa30f15ae0011d66b191c77d329cf28ded682be9542e37bedf7771f47a884685dc1238a3";
-  sha512.doc = "1f028cec23d8dbdeb098b7025c38159da5a883fd03712a7ebb85bf794744442cacfcf6452bb171a47aeb2fce82f5e4b5837d99413ee515e565b37440338f3747";
+  revision = 66226;
+  sha512.run = "e5b63c9aa31f3b5885b1a61503998ce949021b448199538ac385d3fe687156ce6669cd3610a7c3387592d968b0707f7122f35fd50402616470e34bb49f341bf4";
+  sha512.doc = "c06bbb57bc006aebb644fc4a8edc1f89e10617c67bb77193bd2f4dc3eb7b04b55fb1f239d7d6979f9b385134f3b1e584d9f10521efe704292b7e64865f78d156";
   hasRunfiles = true;
   license = [ "bsd3" ];
   version = "1.7.2";
@@ -25635,13 +26207,13 @@ leaflet = {
   version = "2.1a";
 };
 lebhart = {
-  revision = 65475;
+  revision = 68376;
   stripPrefix = 0;
   deps = [
     "colorist"
   ];
-  sha512.run = "9633bac627299b169929f63a2ce5f4e2595bbf58afbc3b6a4bf4bc2ee605242caa8825f0a22ed91b26ba38cd3ba76da527282bc0a8c30a2ffb41bf2ba10589d6";
-  sha512.doc = "5d99e3c77bc95606cc92443d68e119cca9cc6fddd5c0c6bafaa3bf6bb7a647fdadca3ce363847804fef6da247344ca8037f28227dcaa7cccd45368018eeff09e";
+  sha512.run = "6537a527caa6b82b1cdcec7150d90cbd7bab93adf1b9ab96f59c4772118d17d21c969ccff449c67905a2ffabf616ac1783c62ffe25208d52779544e84c5352c8";
+  sha512.doc = "eec7a0d7e647797829023fb6d0fc55e8d35ff986a0e614b4522deaf632799053b3580e8888bb77974205f9e566cc14f04d8b60af3238c5ef65f59e0599d079a4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -25720,14 +26292,14 @@ lengthconvert = {
   version = "1.0a";
 };
 letgut = {
-  revision = 65548;
+  revision = 67192;
   stripPrefix = 0;
-  sha512.run = "848b1c2df001f47239ddb87286baaad56e81b9069d9496bcb6ab7cbedf362f2bfe04dfbc313db4b7bcf4d4b9095a5dc591a0455bba7d815a4b8d58b7308d4277";
-  sha512.doc = "c5ee6f66c2fbc13c85a239f74713b2e9aa7bb0b0d7bfc7c65f118ff5f5dc3561dfe4c1907f1e51bca11eb747491af8639559e1cb0dcf49730371a746813843c1";
-  sha512.source = "a64b94d669315e968fdcdcd43a71d0c3f85767d2c83d121a3997c113f114a867ebc5cc5bbb406234b5d63c21c294030cd48491a3199c1a992cb0ad2cbea17dd3";
+  sha512.run = "0dcc57dd2e77f28a2df931e99186dc3ba4327073b222f8948632051f4e6d45383c8ef6de64443dc9855e6c9ec49f72fc0594a236445bdd135c50ec3aadee20ea";
+  sha512.doc = "e7fe29f8a7027e84cff04c0a70f077044ec07cad59873e33e6407a88f793c35fbd767a2a3aa43103a8bbca8d851ab9ba07576e8f318902fc0dda411540a312a3";
+  sha512.source = "c0d9c7145d89796d95cab9049a34efb634c0963867cbd60aad85e2f7df2b1f7ad356389c362dff239dd6ef8c7297ca5a232ab5364a4eac0c75aa8c6b92744d32";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.9.6";
+  version = "0.9.7";
 };
 letltxmacro = {
   revision = 53022;
@@ -25765,14 +26337,14 @@ lettre = {
   version = "3.002";
 };
 lettrine = {
-  revision = 64511;
+  revision = 67923;
   stripPrefix = 0;
-  sha512.run = "a0e2e8b47998ea8cb75f42a8b5b91ac9d44130846e772b6d345e857b2fbf132185047de7886ab772c57a791865887b173287d387b5ff7f5e515ea5c37813c16d";
-  sha512.doc = "4b1a85198e653f366dfcee1caecb80d620584dfb5cd19f7b4fe98e8c3a0b07cb1bcea8762fb37e7e4eeb32bdfe658a348d9f30c602d6491afec77a7c9ff12ad3";
-  sha512.source = "dda2d295fcf87d46c794f84ac1b1c03c95ee5f324d951a6179b7cdb8af5c1c54d676bbc8ed0ef9dbad0ec8ccc45953094f1a0522935d6e671ec4e2e4f28f0eae";
+  sha512.run = "a87d35b6e4259d6177b30b1e8b99fa03ee76e4bf7c2ab281dd5064ca663b60f0932b66bd388fba64f1bb394e295692dcf43b570cf716c1f14265494dd70a6298";
+  sha512.doc = "af6034d748fac6e88c6494b17382435fa865fadd833fb87cf84f2ba4983d0b5e466e9dcbdefae165f521303edfb2f2dd9602a661cf79c74684b046a50dee4506";
+  sha512.source = "932416c613f72b7c979393749d89c5ed57541eae31829b221707d10cf2f14c2b7d44824dc34d13bd15211a58a72a44a7e6b1d3550977508e7b89180226f91e75";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.30";
+  version = "2.52";
 };
 levy = {
   revision = 21750;
@@ -25877,7 +26449,7 @@ lhelp = {
   version = "2.0";
 };
 libertine = {
-  revision = 64359;
+  revision = 68981;
   stripPrefix = 0;
   deps = [
     "fontaxes"
@@ -25885,8 +26457,8 @@ libertine = {
     "mweights"
     "xkeyval"
   ];
-  sha512.run = "7b95b6612f5b46298cddf459184f11752a4b050110bd1d0271e43e364aa5da58c9e27d3b72119b76e863a19ab0987ea408d749ecf18ff40da1ab8a585e31c7cf";
-  sha512.doc = "c33beec53a939a5b9f672e0c5a7aea7a3b3047e4f1f1e68b7d4d64cd03a7f73da2bbce2a4c56199f71519d4c364a3e0ccddf8f93f24dc9eb1fd3896fd035ec77";
+  sha512.run = "5c1dfc8bac01acd0e6e0d3412c08ee8672f01ebe1c7e22f36f313541139bea13d8967e53f5959a04b31d08c0ba88334b30c3e909eef310567b07ead39edafd3f";
+  sha512.doc = "54963a7cf440750aba83feb1a55d1de26ea6995716049d22d3f0ff742364db4c4ddc366d2937d022a3a8ed9951a114367a6ae1bef74c0a655b47007d38c2422f";
   hasRunfiles = true;
   license = [ "gpl1Only" "ofl" "lppl13c" ];
   version = "5.3.0";
@@ -25919,30 +26491,30 @@ libertinus-fonts = {
   version = "7.040";
 };
 libertinus-otf = {
-  revision = 60023;
+  revision = 68333;
   stripPrefix = 0;
-  sha512.run = "1aee669aaa55ff11c2de760f65597542736b64a4ae52b8d73aa967c92a178ae7013ce06e701d9a3bf3de0e5987abec4d29401480dd4bb845a64c0047ddf66c84";
-  sha512.doc = "6c21d100b5ef1bbb8e892c0a0da0cabfe11404b7e1e4606ec04b25bd0a0d22547b1e80f1398573f62a34b4e951cda01466d0d8828cd10e78e8ed008aafecb416";
+  sha512.run = "74e8f653e1bfd28b11932b0a5e524e823dbc1759566a3a6fd3d74b854f40df7a78b5dd3845e2b8e217fe9608cdb116d1216a3139e21d4498bccf62b8d8e42742";
+  sha512.doc = "e708bc00e33f6cbdb1b21b1f62e968896f373301b8a3662fa32016c30bf913831d14258b9e1ceef3da39fc468dfabe0f9e4ff6f8b0e4357fe15bcd80c7e859bc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.29";
+  version = "0.32";
 };
 libertinus-type1 = {
-  revision = 64958;
+  revision = 67450;
   stripPrefix = 0;
-  sha512.run = "7133d2b3572861d7d3ab20063aa7330aec926ab1586d6616bef18cb8078ed66cdafd205993c20b459421f5b5ac8ac7e4e059beb5216b028564154ce3b3acf00a";
-  sha512.doc = "c01f69729235bdda491ef66f1bcbf5fe39a1edebe0c817ec35ae9aa4f393338b24cfee27823b90fbc1994a32b5e7ddb5a097a9fbfb35b3412346a84028c908c7";
+  sha512.run = "6c84de57b1778ec35d9f56b00e577f9f8c1293132cedba43e657f4425e9bf01ab4243fe6ffb872aeb99b446019539a640d29c88cf29cc86d649d2a00f77952f7";
+  sha512.doc = "c656af53b98735bec8c63c3e56160da943379f4b908f553a27cd1c82111b201eb15c1f1eb1b6ff89fee281c27ea36d6fffc5592b75722cd561c8770ef2d3f6a6";
   hasRunfiles = true;
   license = [ "gpl2" "ofl" "lppl13c" ];
 };
 libertinust1math = {
-  revision = 61751;
+  revision = 69062;
   stripPrefix = 0;
-  sha512.run = "444d23e7bff1a6c1b3c368730a589a033c211f9fafb1032b3852e55ade7cde260f1662ab7266291136919558d9c2995986655f0302c38a677afd4dd2f74d5376";
-  sha512.doc = "d3bbc0ef7e507affc60a6a76c4f33e42b42f5b9742098b5e967d6581f79d9fd68231cb7f67ff97b7d5cd8a47a023885306439125419375537412024d5bbd9f88";
+  sha512.run = "9a44af1c4f96453aa69c83658c9474838efcf1020c9301d12577a403371d2b3127fefb57baa0bd5fa5ef737e842abd4f9c368761ee38f6285aeb5a2dd88ad1af";
+  sha512.doc = "14c87d5e0d19d818152bf1a5dd7533eb651d5b477f3e42d42277fc4040a263114fc2006000af25884c7dfc64de0936d950fcacdf7fc55e4d09c2d756400c34f3";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "2.0.2";
+  version = "2.0.3";
 };
 libgreek = {
   revision = 65004;
@@ -26024,9 +26596,9 @@ liftarm = {
   version = "2.0";
 };
 light-latex-make = {
-  revision = 66474;
-  sha512.run = "e069afa8933cf7389014409342159462d2f04fed07cb9857bbaa828ae7752e89a2c21bf9814cee4d0a7763045986761f41cd92fd0bdf1b697815a37212832a16";
-  sha512.doc = "53b2edb93b66c7addbbb4c8bb98ad7a9da4ca38ad33ccd8d5df38281bcb86ab6ea16aeb3babc3d0d18f8e355d5c678caf82f7bf3eaebd927a669e04274e4d5ab";
+  revision = 66473;
+  sha512.run = "1ede05b31d3b7acdd0f38b19e83b4258f05ddb184343dd36a46f142adca9f4081631d687411a1370be880dba5e3c6ad3f1c21108232e8b8f4fd03fdc1f3ad60e";
+  sha512.doc = "f5bb10465cf3dd983f59b101f6c631e202ce655282319c773cd0d83c0a9a8a3b9cee7790ef1f803b0c68215b553a2668d861a51dd9ec35b2dfe4b07ef0cf3a08";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
@@ -26039,13 +26611,13 @@ light-latex-make.binfiles = [
   "llmk"
 ];
 ligtype = {
-  revision = 63577;
+  revision = 67601;
   stripPrefix = 0;
-  sha512.run = "d28a77d7cdf47f3def3218507d384168766a2a497326560cda325303dad8dce90a5d823486fe0cbad8d254890332a30470349a113a955acf97d1cd780ecffff4";
-  sha512.doc = "96c466142a9cb4c983650404ff8c803c4e8218862607ab2da95f3dd2bee2fb42dcb6a5dcf4c0f69924296ad468f3b2d0ac2ea7d7b3779721e3fc95ac4fb0317f";
+  sha512.run = "f75a730290acd024eff3ebad6965fbea0e3388c98e0b6f325183758a7771de4b165810e7cfe05c43b12fb0cfcf71c51665c082bab82e44772ad0e0fb4b21c0ba";
+  sha512.doc = "dee12f5e8abdff666582edde442085e8c937b39fcc5ad37759f0cfb683cdeafb63afce7a051573db307d2c416eca46bd9bf626f0cc3cd44bc6e1379c428d2e09";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1b";
+  version = "0.3";
 };
 lilyglyphs = {
   revision = 56473;
@@ -26094,13 +26666,13 @@ lineara = {
   license = [ "lppl13c" ];
 };
 linebreaker = {
-  revision = 66465;
+  revision = 66639;
   stripPrefix = 0;
-  sha512.run = "013d648a48d9e970ac1514c8c3443be99d55ea252bbd817955bdbd800a4e9cb92cd44d8b8ece0564c43c9f20b0f7766d06f16f6a30ca6516c6efc89be0df4767";
-  sha512.doc = "c839ddc727b1397c6cc07171a01c6877f6a5da526095149239abd314317178ebd8d4ff9f35a7418177d80338bcc149800b1e68d2e552763a0f0781d67dd91733";
+  sha512.run = "282c1687acd1843f43d281804ef4860967c069b38c415cb015c0694ddc9d78e03a5f3456a8331d3aec341d856474fe95a2f4fd92b786c2834d65cfaaf4b9198b";
+  sha512.doc = "d39b7d5ec0712e3e26ef76f9e1177f6de5413dce21b143e791d79c8980be640c785448fdc8fffe48fa5ebdd9d2d594518b73e8db21cb16cb99a8d9377ce8f9ba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1b";
+  version = "0.1c";
 };
 linegoal = {
   revision = 21523;
@@ -26113,13 +26685,13 @@ linegoal = {
   version = "2.9";
 };
 lineno = {
-  revision = 65586;
+  revision = 67171;
   stripPrefix = 0;
-  sha512.run = "c1a1ed8480634176c2b375550ddac8d50581d3d3bbd93c98ac9ede07b6289937462d99d35b59cad9bd11f64f14fbefd10043027443c7a8d8e65d370e9bd44dbc";
-  sha512.doc = "9bd671d949d10e3b5170ac3b2afaa9cd42639ccbe152e34a1717d881a200da290c63a7edf7832f88cbd53be700fb7e668582002e1da9f0bf934cfd5991887629";
+  sha512.run = "7171da9917c0218a0c55c43126ecfe07b9e55e9633b673c89ae18f08897bb1634cc8412cc3051ebf6640afc228e246f1e5549ddea45261a6ddee01d158f3b9e6";
+  sha512.doc = "ab4aacda9d0f4a9a2aefdf37b23067ad27eaf40500fd92f7a4c619f9c012a40ac0c69fae32c425d6c12d2b89e6d6c2ad9585fd75b2af8447c9f7d333473add73";
   hasRunfiles = true;
   license = [ "lppl13a" ];
-  version = "5.1";
+  version = "5.3";
 };
 ling-macros = {
   revision = 42268;
@@ -26205,11 +26777,11 @@ listing = {
   version = "1.2";
 };
 listings = {
-  revision = 66233;
+  revision = 68476;
   stripPrefix = 0;
-  sha512.run = "47e219c8499ce2928125319d53e996ff51bc3c7ff2356f631fcaca5e3329914309b929aeb11cf222a9024b82a9348f187f4a8119c7d8c5688d85b147dc4ce2ce";
-  sha512.doc = "1b0fde220877fe45313ea5083d986223006226a63a23c2463643eb7f5b66b8df6f66d8fc54d4990eb7fcf87babddc62af7bd21ea3d57e73cdf171742c127ae8c";
-  sha512.source = "0bd38d23ecb65ced94f18360c96323916b86ce9b503fe547dc7b490dbd37379bb1744b2f1b56288cd39a1513fdc264d7bdd33862e1a29be747b825e7fd77d7df";
+  sha512.run = "7bea53ea00e877b33586378c32236f2269f6dad6169101f7164293617bf9d5ca43745e2a549a993a899b4ddc45254b3b032e112576c57b7ea7653a2e743fdb4b";
+  sha512.doc = "d62e73a7df88b7e07c53367e07a6867e26145ad1f4fbed0f8cd0836c10e234695c9b3d97eadd9700547e33f3ecd793367be7dd97ca4d46bb0cdfbd07490c61f4";
+  sha512.source = "1a89476029706617cfab1319a65e6e8353455ac63fef8155e2e347c34c2b60ca6f2b264113a2c4ced52c0872a66efe8d4f53b67274d7a94f2a1b51de7cf198f4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.9";
@@ -26237,14 +26809,14 @@ listingsutf8 = {
   version = "1.5";
 };
 listlbls = {
-  revision = 34893;
+  revision = 67215;
   stripPrefix = 0;
-  sha512.run = "b5c2e7e168b07aa288c911dbf5c1fa8b56d2a73d38babf0140b77bbf783334f2da42b2bfa8d951e166f7184345cea26a908d12ff4a07ef89b85a7d7772d645e1";
-  sha512.doc = "225837c7a5c80b5a01739c20011f4b4c76b0cdeaf26e3f8f44fcafee3e439a104c6eb1a47660a788b96a3cd63f3e19d1384ecada059380773850c7a4109d3269";
-  sha512.source = "3b35fa88f640d4f2a13f0cc888a7ab7bb09052ab080454d398f0edc27caa11728152e24bf5184d54aeb1bc86e599aa8a4bbfff6a6efd790e11277f99da2f27e6";
+  sha512.run = "bb0391bd671c306bb34abc336f74e203141fb0b2ae131dc36820e24716ddb5b7a1bfe9650baa5ba4cb4078e6f9d097a9a464aba1022b36f76c3257e25e583979";
+  sha512.doc = "773bb3996ee16ca65ef8a91e42e6d1641d42ae50de7fbe4b8324ad9e70d326d0fbca85e245d48bfea137a65f33ffc6e81add6208d239992012ac1851ca12d4a8";
+  sha512.source = "441fa4a8ac0e618a997078368794800f57e25545134533b81121718bcec912c1c367b193bf7cb3756102ffad4f75497e63c9cef611319aa478fee955c9cea780";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.03";
+  version = "1.04";
 };
 listliketab = {
   revision = 15878;
@@ -26256,10 +26828,10 @@ listliketab = {
   license = [ "lppl13c" ];
 };
 listofitems = {
-  revision = 51923;
+  revision = 66655;
   stripPrefix = 0;
-  sha512.run = "9cdbbac3442d2b6cf45659a77dbbf7c1db2252af3c656d277f8c9c1f8cfd98879efb7e6a9957481cd6e892d8f3df1c8ef46c7992b45c6c461dfe936018600917";
-  sha512.doc = "e7c3df40b9657dab386eaf54f08018e3d390a1de96a47c5c4f63759c11aa38b243301287940131297ad107e4a63fddad5bd9ca5982b211febda7bf5a6a8d40de";
+  sha512.run = "f108d1a5c1330afae1c6a3cfa12fb3d345bcde5617245a9ca736ddac9427b4375f926d11f706d91d87f8b5b55f6f0257922e2068712e969c55b6e5b7436043b9";
+  sha512.doc = "b9264957510f892b5aeacd299df184e93881083e3256754c2f89c4f76adad5abf9f23ba4e56b013ea7e98158f8437797a6ce9d5287e5b76199aa4bc0b8cca188";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.63";
@@ -26274,11 +26846,29 @@ listofsymbols = {
   license = [ "lppl13c" ];
   version = "0.2";
 };
+litesolution = {
+  revision = 69115;
+  stripPrefix = 0;
+  sha512.run = "5a1ed66916daa7babfd009615584bd6065895848283f46d8f95d2fad69bffd6bfd59c8acb991ef7357100a63e7798c44aca3725ce0e89650adac13ea9e21428d";
+  sha512.doc = "aa750b1a4fd7040b946275239d5ce49848ea031188c1703161de300dddd6f502c31ee7f7a4655b26253b76054e6b487ddd56a9157684010d3b006900e94d6374";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2a";
+};
+litetable = {
+  revision = 68782;
+  stripPrefix = 0;
+  sha512.run = "2cd3dc7c4025bd9fc36ae8c47d54ff8db1d237c754234ecc13ccbe8d6456c7035a2e99961ad161be4c9da3fe2aa03f9e0e714ea2174c64d2e152af1e036df055";
+  sha512.doc = "249729d269cd9d9cead6ec7bef4731549d18cb3b01bd60197bf0d7374042d70e73767d3273bd149fd0e96534494be9ace640586375797f4b907b67d76019e11d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.1a";
+};
 lithuanian = {
-  revision = 66465;
+  revision = 66461;
   stripPrefix = 0;
-  sha512.run = "86fd543339a902b21d2ec045aa3c0844aca91c14223b03b5cbfe7d612f40dafdd275941ffcfd37d77df5e83abeb36af0a64f6f78de4c3b3fb21129d76a9230ee";
-  sha512.doc = "d26f2732a5da9c320ce359de1b9263969b4ba8b2fa155e01014d12348b916c16e38e6ac0a94ade037a6756e07c0cd03b17686d7073b4dfcac1e9befeac43c1b2";
+  sha512.run = "c2cd1b54daf74e78e6087159fa827ece77f2dc835eda81e03fce861581e812536292f3f0b70b8bb77107c0a4032d12006e870303156a3f3c7cb653020ed9b97c";
+  sha512.doc = "ae7a5e3bea2bd62a0cdbbfbde7e0d9e06554fa4b3bb825b45febed42556fa101fd2e6c611ad9fc1cc87ed5c92540977780fde47ae78a89dd37b70f89c94b5e8d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -26302,13 +26892,13 @@ lkproof = {
   version = "3.1";
 };
 llncs = {
-  revision = 64299;
+  revision = 68731;
   stripPrefix = 0;
-  sha512.run = "76371faeebdde62b5444dadd7c08b5fd6fcfbc9fb57dfb5a29ad63760bcd692115e206458adfd13e2f16ac24713e128e7905194ecca369568b662c78aa6cea48";
-  sha512.doc = "63b67674403e67e7f019fdfa09f3859bd1a6da5cdb93bf68321a441c9fda1db026ff64e0a3a15dad1f7b27b4fe8f7f4a086eccff88a282133d825dcdd6d11d25";
+  sha512.run = "11a2d47630302815578f0ced6483e1bc680bbc7030f17239d5c896de64ebe67a55626a73a88ed2044b7e2c2414ba8cb6ecdb2fe921493817acaef52634ec90cf";
+  sha512.doc = "a73bba73deb5af86726323f9065bcd31406e3091d5a1fcf77b5ef0ee7a7843a6df729fe31f7642e30ba9a9e9acd2782491607ec3d7d67679507f4b124a9a888b";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "2.22";
+  version = "2.23";
 };
 llncsconf = {
   revision = 63136;
@@ -26320,19 +26910,19 @@ llncsconf = {
   version = "1.2.0";
 };
 lm = {
-  revision = 61719;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "07448def04c2dc6805d7077b7a65b4e353c99d22d802c56ef7e147ce6a209e9b2303752b5d56763ccd44b9cccf700207e48c246b141e63deb4d1895347d6d307";
-  sha512.doc = "d628f4ad7288eb378df86b4593738c0f755ec6a08a762b38d7fda95b2cee163acd81fdebec7bba693380bcf3d2b2510281f349fa17ac3da1fbe9ec40106a728e";
+  sha512.run = "9e05642ab07ebe05c13d5fa98f3212527aa66a9d049f8eade506cbd9f0652315363a01ae20a9df873055e5283bba7574d51251c7dd86e56ebc37055b92379421";
+  sha512.doc = "d15569c1f55553b068b8d3a73efdbdb74137d02fdda5db5d57f29203dcd92dea7746b73a3f30293b2932f046e60697ea015b83d2587cde2783300fa41967c5b0";
   hasRunfiles = true;
   license = [ "gfl" ];
   version = "2.005";
 };
 lm-math = {
-  revision = 36915;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "f2424f917e13aa9805f6738ceed376d6063713dd4c58a5953b5456da4ba81eaba3f0f97963ecf36ead4f68b1311c4c9e30f064002ab8bbf0f5ed3a67db3ead4a";
-  sha512.doc = "262a99ab29fd22976334eabaed77d3326e87b63014d9e640ef8ea31b14382b273a6435f3059aa235c50f9f829ec28adf754763e17a945265495e9a54e7ee53fa";
+  sha512.run = "2fad475b347824d564525de51ed5bd1cc7ab2fc27fd826a00e86ebabd7d85afce2f7a4c85d9620c9b66d14ea0c813a269a13843a0b27eb7d0ca3e294114aad26";
+  sha512.doc = "fb1800349628229dd522d4dffa182ffd2bc9411803f5b349c88f4046d81117d050a3b681e3021a514a6ada5bc49b648b8dda8b553f9294f6d4fc317db0cd5990";
   hasRunfiles = true;
   license = [ "gfl" ];
   version = "1.959";
@@ -26348,14 +26938,14 @@ lmake = {
   version = "1.0";
 };
 lni = {
-  revision = 58061;
+  revision = 69361;
   stripPrefix = 0;
-  sha512.run = "5b9de3838172a042473eb03ccc26cfa701c027c33db9c943d4efaa00b22854c67b17e43d20ae8fcb2960444e817c05860a67aea50ed7047cd7a4f90b059f59c3";
-  sha512.doc = "87ad80c4a70772177ddc7cfe9b90c0fcfe3d7bdfd583cde52837b8fcfc85aa1fd21fa11ea562fa7169adc7ae954185696c4fa8bf655916e149f57a95bae4627e";
-  sha512.source = "be7bf7271556755196f8921c0d261f308dfc20e0df81261015c4001c53b537948d1328ee33a856c13e22dce7ac6056904f2b2989073f95ea5d61d226ac7977f0";
+  sha512.run = "5b091deac5f045af63d4351abfe70e28343ee46fa9e9c62d2cec409b0453b1c391a07abb743be24c8d01f8e5063964574ee684beb7b91126da55fc8e0663a831";
+  sha512.doc = "da89225db988132af56a8f6be0330e5ea761d1a8da1237c966c3b30f91c776e7e2c118e8aacc843c23f58d3f514c5e0cc6c2d06a689c886be90f8d309215095a";
+  sha512.source = "e02d92d0878fe98ce533ad9fcf058325c7d82f9548cc3211d34ba0d9d83e515c41cc77f588455d589b50ebc41358ecafe0c84e501ac60a402f8d548a1fe87671";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.7";
+  version = "1.8.1";
 };
 lobster2 = {
   revision = 64442;
@@ -26429,6 +27019,15 @@ logix = {
   license = [ "ofl" "lppl13c" ];
   version = "1.13";
 };
+logoetalab = {
+  revision = 68916;
+  stripPrefix = 0;
+  sha512.run = "1b3f01a1acc23b17e30185b3bf2b4e965d047bffc7d87649a40e52e4fc9de36518e82335055c66f221cf10b7c6a1cfdf9f51641f5ea945aa0f7d7efd76780fac";
+  sha512.doc = "93e17e5c624aa8a6f826294fc33de8a66731020696525821f4e14a5bfe0f3033cb6ae21abef41d408e627a6ca8d6e12ddfc7aa30d02152e6aadef3fb88fe92ce";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-20" ];
+  version = "0.1.1";
+};
 logpap = {
   revision = 15878;
   stripPrefix = 0;
@@ -26452,10 +27051,11 @@ logreq = {
   version = "1.0";
 };
 lollipop = {
-  revision = 45678;
+  revision = 67930;
   deps = [
     "cm"
     "hyphen-base"
+    "tex"
   ];
   formats = [
     {
@@ -26465,8 +27065,8 @@ lollipop = {
       fmttriggers = [ "cm" "hyphen-base" ];
     }
   ];
-  sha512.run = "81557b83acfa4ad42dfa6fb1a65ea42bc33885da444ee23bc3c67a899df7b3ac2c19a1607305b5ec10b503980365c5d29ac3598339fc186a05417ea5bca60a78";
-  sha512.doc = "206dee2be733e3ac04b5b259862b60fb3641fc44ea182da601ca54a010ff8e42f254dd01c03be7bcdd2a6258110c567a596ee82b4eb74d04ca8ed70e50cd6a86";
+  sha512.run = "8449ee38e28bca1974e9a144f7ae1ade40cf4ddb9da2cf35779712202c372a29d2c1bf394122452e217c08cba8d89cd76ee4e019a0b356fd9274069f8a63d8ed";
+  sha512.doc = "d8f9791b32ace40f0e936733cc5bc9d5954e7f0b013c0eb81e1b212a00635e674639dc4ce70858dffc1d8b0a15e6fb7ddfc7460f9196a832918252060e43db3f";
   hasRunfiles = true;
   license = [ "gpl3" ];
   version = "1.07";
@@ -26475,13 +27075,13 @@ lollipop.binfiles = [
   "lollipop"
 ];
 longdivision = {
-  revision = 59979;
+  revision = 68609;
   stripPrefix = 0;
-  sha512.run = "d489df0f5ad27cd8755d8387ac4b5ec0f0091e9d27611a7f4810e145dbafdd95cc4c14f6cbdd9843e1e4251fb0d31cd3332657c50d1fac4d17eeed1183aa8aa5";
-  sha512.doc = "dd45e2dd888c7bafe5311cb8a541c0eb7c31661da9d69223f69852b022092501f936d9823395c5b7fc7f914233ad4cea32b2803730f976e687bc7a9bc7c74069";
+  sha512.run = "2f1f1e6a6b93266a1c6e1c3fbc33e4f9719b6ed06390d2e277e811f429f0b71c3e3133e2e406b837c109672b725bab29534a8e9c9b380128cba6901d5082c53b";
+  sha512.doc = "8314b4fd0802dc541d640a706b0bdc3b10f909365372ad9432c49e533f95103643c1171038b7f346b9f92688d27338e81fd5c803070d99f10a61adf690ee6389";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2.1";
+  version = "1.2.2";
 };
 longfbox = {
   revision = 39028;
@@ -26593,12 +27193,12 @@ lshort-bulgarian = {
   license = [ "publicDomain" ];
 };
 lshort-chinese = {
-  revision = 61100;
+  revision = 67025;
   stripPrefix = 0;
-  sha512.run = "5e87a1c613e57157c77a9401cda424ba0544b1cfd1611e0f763b837ebd172947365a04f8734b2e7d41f84df9ca28500034b3b8f96dbc4d2f8bee59c1f0813938";
-  sha512.doc = "ea00f428f8e93067a876de16cc7f8fe09f46398a209f4ec7664f83f605e674558703f05cb4ebb655a29affb3af26615731a284894d37778a5f7fad531fe2bad1";
+  sha512.run = "6d6ac34f79c3d5447c1bbd7f2c87071a92867bd770fd023bc4d6fb48500d27f1b1a8706a727b0d0a7b47eaa9a639c6b5a691b7d21a5e178eb79131cb4bd75b6c";
+  sha512.doc = "c220f086c2e0c9bd52ba3ee1eddd2afcb0aaed1c4fc4b9ebf854ce57b4720df7ab3c5475f3164cf740b3020c14c5682e1798e43c8ad9e39eba596a24b04644d3";
   license = [ "fdl13Only" ];
-  version = "6.03";
+  version = "6.04";
 };
 lshort-czech = {
   revision = 55643;
@@ -26724,10 +27324,10 @@ lshort-slovak = {
   license = [ "lppl13c" ];
 };
 lshort-slovenian = {
-  revision = 55643;
+  revision = 68204;
   stripPrefix = 0;
-  sha512.run = "689ca4286149002f840e2ae82d7d9c8eaadb3471db16d935ef82c37e25560200ecd2fb95bb6fba61a1deb1fe481549073893df59cdd37ff9aab3c55679028492";
-  sha512.doc = "13cafc10d15f89945f020743c10d2bc44b226cfc9c7217be32b8c2affed12602cf024295c75a929478beb3fe763eacdcd47bf80615826472b85cb4db7454ee8f";
+  sha512.run = "b053e42404063ed3275363c361ec85de69dd92281070f0c88afc860cf2ac07b3fef1a98598ceff52308e36c9f2b5e6c406df591481533b80fb0258ae20f32ca4";
+  sha512.doc = "851951cd5822f257ecd23d73901d833ba6067d3860002a4dd4449f23d5e7a50fa97ed579f5cbab8bc9494801055ef8f23f6f3249d9f6843a28f7da1b4f15409b";
   license = [ "gpl1Only" ];
   version = "4.20";
 };
@@ -26819,14 +27419,14 @@ lt3luabridge = {
   version = "2.0.2";
 };
 lt3rawobjects = {
-  revision = 65230;
+  revision = 66619;
   stripPrefix = 0;
-  sha512.run = "633da20bc0242a755041721c3e1672160cf41d924ff33ddb511debeb5c1961c0a83a07d2c7571305a7aeab4f623ff2047c8d0587a2f1b94ee2c7820d2c3116c9";
-  sha512.doc = "f84e47dae753654366955666f855087ed43d2efbf9b159dadb581c84eadac1f21422c593bf1fb428f47f176fc248c0e75f86d72c998253a7ffd14713536115dd";
-  sha512.source = "1412f86829fa26064343fb4c8ece1b29033c16db564621f2fef854077b00dd590873ffeeb002f419dfee7a815de8b63a39c256a2f9822b80b1f013dc29454ced";
+  sha512.run = "05b70d22b56925542bd3f2ce832b1ed71759cf41f8ccce3d892c5bc6e17fb8ebfe8843a82d0aab6b6e88f38e84819b25bd18344683d182fdcfebcf81a47d27fd";
+  sha512.doc = "3aacb576ebf0233692b81daa231ae8a93b392d07a261011e41dd4eac34e295f288f9fe7ca1abc208534393bec1e290362b32ce0906d4c97fe56a598c49e6f135";
+  sha512.source = "2e09660f1a59fce87af33d5fd80a59a83ba856233db4032bec88ba8b6f5a8a6306de7416289c51043f8a947dc2481ed90cfecae095425144b865d7a1095cde92";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "2.2";
+  version = "2.3";
 };
 ltablex = {
   revision = 34923;
@@ -26857,14 +27457,14 @@ ltb2bib = {
   version = "0.01";
 };
 ltxcmds = {
-  revision = 56421;
+  revision = 69032;
   stripPrefix = 0;
-  sha512.run = "052303cd90b960cc5a9bf89c8938af95d8959ba6bdc603b4d53b68666b443b620417c9ec4ac65867b04eae8cb0a88940f905eac78d2c3718ce7a40ea249c9f94";
-  sha512.doc = "d82f046eee3892b5a241f78b44910c801b14583cf7f9a693f861ab04d9b05e0cd7639d8f85eaf46f95d2d325688fd1ba3c76421c6ceec5969046db497b0d698f";
-  sha512.source = "55f04ec6375c0b38b9e9d78fb658378c0e35c9d72127495e824376b1d54155138c65f6bfa804f7795b3a4514fbf1c5a7505e7500f51decb9b4d7c65b47d2909b";
+  sha512.run = "9d9a9835f4547200b160b42c07e918fb8b2cdf9eba91c30647c6fb1c74cb6f9ba60ab40bed63514ecbf334d527148b31fb1ec90af60075d19e28d10d675ded68";
+  sha512.doc = "21be07f4f98531621f90b7ed23c06fa4b39fafa12a83c45784b83b5f9728817657b5c2ac2c09e4988ce0c6df0918a7c93d29d7ab89159cca5ce5fc9e0eb017dd";
+  sha512.source = "becad978f8b2303a44057f165cdc6d22ddec03e58a26a0d6350bfbaf6d681ba43b105b65492c5be2382ee1e4f814129f86abc2ce376d2d42ddb0fdbdd2671d01";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.25";
+  version = "1.26";
 };
 ltxdockit = {
   revision = 21869;
@@ -26969,15 +27569,33 @@ lua-physical = {
   license = [ "mit" ];
   version = "1.0.5";
 };
+lua-placeholders = {
+  revision = 69404;
+  stripPrefix = 0;
+  sha512.run = "11d13babb26aefb2782ed7e84444ba645bc808a3283bc0e927cea84db95e9b06895df23a4ad830e2c4a401426a151a7acdf8eac43faa3ba69dbe434349d7867f";
+  sha512.doc = "88b9e069384f0c86ec3f86c21c985c37d199a9dc1962bb8d829b28a34a8ce7cfbc46ab57358070ed2ae71fc9d9c92b2090a69ff0c48053dba54586274caf7737";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.0";
+};
+lua-tinyyaml = {
+  revision = 66776;
+  stripPrefix = 0;
+  sha512.run = "3144093c160dd1bbfcef7c0d56a3ff2a6354ed2c5ad30a4201706dea66fb8cb19b4be71087c078c4e36d163e6a785827c378303bfd700c086a7ea6b9d7eb2135";
+  sha512.doc = "1b0932800ff6fbad87c2a87e68e433d46de5a0c2543c8fb0c7b7b6f60749db98d9863ad4debdcd508bf1a613d32c8a8fa5d7e23f177517e4f7735f2c3b63c616";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "0.4.3";
+};
 lua-typo = {
-  revision = 66516;
+  revision = 69403;
   stripPrefix = 0;
-  sha512.run = "8303e8b0134b1155dc08b3f9f717721326cca56595f6a5aa354400019b808d9b7fae9acd1307849174ee5513e152dee8e25ec9668b2ad2fdfbecace2a07bff90";
-  sha512.doc = "9d3acf9e93d2e114663fafd0b4ddcfe5a8d43c2bdbfc0a220e31ebfbbefcd2333ab56d75f8ade6adc7d2e8680db3e518d3e09f6f4352b4d722e609511f696957";
-  sha512.source = "02b6e83f7f445a06b7d6b91e59fdd5d388b8014875ebe0d4ea55adfee985b571cd61bc8711fc8d8f0763009c3a5d4ce445f86b595542725b18e50b6916add88f";
+  sha512.run = "177b89a930ed061d18e25bafc230b402976e25ebc88d09a0a42c70b5848fdf5b7964fa69160c3456a02f207dce39363c9fbf603c928cd50b373be6ba8a2c8ab3";
+  sha512.doc = "60a9e3560c35583377d4629ee4885ad5e8bf52773927c9d3e2b06a2385196303df704bbcc6245a2e0fc93c396b4a6252309180af270d9bd13fada543c9f3b7b1";
+  sha512.source = "65eac5cf5c4af2eebbc7d6412cf6ba17a4de37c6c47caf7667e047edc6697a0e93f9f3a334f3ace081127654b6337ebbe5db767d1de2eb48a275c22c0617ca08";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.65";
+  version = "0.86";
 };
 lua-uca = {
   revision = 61023;
@@ -27048,22 +27666,22 @@ luabibentry = {
   version = "0.1a";
 };
 luabidi = {
-  revision = 54512;
+  revision = 68432;
   stripPrefix = 0;
-  sha512.run = "917d0d96748f2b70d368a2719bf6fdfaada3d24e2e60c97b6d412ba2cdd991a920d86a94d19136e075605095c19331e1dd37c3a059a9e8f772479ff5ab53550d";
-  sha512.doc = "92345c9f8e50eefccba39f294841a7eaff7d0328ef445106dd436ff10a994a8a9ec027c9400f8b4b1f873ba1fbd92565e21b1cf2c73d40d3468ce27ca7ae128d";
+  sha512.run = "10a304c8844ad7b8f5e1832d59e678599f503c1eda38e1a1e29438abf6304fc44d8d4235e1308d661fa0879494c1779b7110853305b645ff1d2d35cf575bf07f";
+  sha512.doc = "8276f91aa767b9c066bf6271f57a929aa21c7ff19a49db5db2e4eb68bae7613a13473cc23b7f5e60232148b46ff33bb86366320d730ba67918e2b009e5f22463";
   hasRunfiles = true;
   license = [ "lppl13c" "mit" ];
-  version = "0.5";
+  version = "0.6";
 };
 luacas = {
-  revision = 65042;
+  revision = 67247;
   stripPrefix = 0;
-  sha512.run = "1d7a3ba1e7fa0085893569e8f4ee5c175376edb7c3575f6892d969a4b64bf566c50d3b86088df6bcc7e8bae9c8ae91889f19a28e3112cfa57cc7919fb85e95d2";
-  sha512.doc = "82e2392a227366661a09fc54c5657efe12d0bb5d9bc8ed5209b013b7d2825f5c3516df4c77d864c9cb05574a2380612215d9ec2b70b4e0df7c44b307922657cf";
+  sha512.run = "21a488b33ef09db0e0fc2c479564cb15f1f2afb4c790ed8e64baa9b10ec1ad3a36486261218959f8c7951bc06d234f0516bed5d31201adc8d573c7490658764b";
+  sha512.doc = "45f583d602c6afd13cd32d4049d4305d23ff8b47866a9d95b873e7533d3a46d2e357afda82819dedd450e95e3300aa34a4abfece9e0b90c22d6b2c3dc8cdc701";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.1";
+  version = "1.0.2";
 };
 luacensor = {
   revision = 62167;
@@ -27085,50 +27703,50 @@ luacode = {
   version = "1.2a";
 };
 luacolor = {
-  revision = 57829;
+  revision = 67987;
   stripPrefix = 0;
-  sha512.run = "39252eb36291bf6023e8ab24e7f4cbca10caa9d89204e8e80a5962b08e66c6ba5b588e98d17f9b13be3a52fb5c392499ebb73ded2e43a4ce7ccad4cf30a24302";
-  sha512.doc = "4aeb524631531e6d18decde7b01acae4aaaee8f80392da87a2e7fadec9d353749b2d1dc65573ce2f184c24494ba340589fb83203ffcd49271e05dcbb79a1fd19";
-  sha512.source = "93d7f9ac094612760c7cbaa1b591dee5f31f8278f462808a484311e2ba6dd6a20671e7431e7f22985a7f77e23436eefe02484026820d4b125a7a1b4b9d6becbc";
+  sha512.run = "142376345f25de68236e56fd334d8f24af90f510abc0d2314049bb03142df76988cd5451e22cf98df4443348f7686bbf9c269e311d5036cf8ae621200ae585ba";
+  sha512.doc = "d6654c3ac1ca1c18cc60cea463cc3b4b4ed902ba6c29521883079123b9906f089ed25e2268e7a1f92800d9b1158225b50c0b019ea28c68b846e73bcb350dee6a";
+  sha512.source = "8b29907f0e0d865704e5de710ac2dd37607330d66a4282ff1f4673306be40ce366a0c2eccdf4dd25c3592e804cd6fa1e2a35044c494c4a3c73e64bd0c264d102";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.17";
+  version = "1.18";
 };
 luacomplex = {
-  revision = 65833;
+  revision = 68883;
   stripPrefix = 0;
-  sha512.run = "621f7f8955c309b31f19a94cfff7632591f5b67b60cdeb1ddccb1076855a49c0e9030fd7abcb21cb7c3c474d3d418e8f08e6d1d4a74fa18f96307bdf8ab96094";
-  sha512.doc = "abcc97af487f24e2fa0636a3bfb069419eb29071e2060c7712c22c5a4dafc97b082e72b27f3e390a74564d1950b1f7158bee90151399ec6c5175513a9c9eb706";
+  sha512.run = "dcbb87d1c5776f20aeebf0748d348ab748e98fdc95427404f252f55fd1df9dc607aace2f6b4bfa086016eec7c4bae295979773d3a70d20a9e32da47974911949";
+  sha512.doc = "a892f4360b52ab22dcb282c5bd6e538af83836d40e7467453ad345e2d272363efdef83b29b76864dbccaba1ad3589f2a3a47d20415842f727212d3923191b052";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.4";
 };
 luafindfont = {
-  revision = 64936;
-  sha512.run = "a73bfe0aa1b6a907224cc98f2d5f6344249f79010ad5552c66286eb7c103d5c69851a452cb6eebf39ebd5b6e8e64062efb125bea1c6586ef5117f994a97244bd";
-  sha512.doc = "e7196d9a2e69b5a6d5582d7ddc00ac480b16228b424cb9d568ef1ff6fbef48e5926776d5f22fa0eb5c4b09b6b29a283416206f64cf324356b35d66228bbbd3ea";
+  revision = 67468;
+  sha512.run = "0d02fd925b33616d3f23df0609ea6fc1595b830cff8a712f6f93414cf80b51b2b1dde2b29e71084aad89377084b606ee7eeebcc2b5e8342b74fab23d8c97aa82";
+  sha512.doc = "fd16f72bba665cffaad3102d6573117300c7df4ea7b4a3104be3de7c26c9f127fccdb54e373cf47220df2652fd405c6dd3f956d2278ec9339e70ea390333af75";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.11";
+  version = "0.13";
 };
 luafindfont.binfiles = [
   "luafindfont"
 ];
 luagcd = {
-  revision = 65396;
+  revision = 68893;
   stripPrefix = 0;
-  sha512.run = "16252382a588687de53735fc215e4a4b6a0036818af5a07ad1df8acb2fa63534079528082c3bf3da57c093ef994a2ee7e8d61224347ede8c5f01697b0de62e30";
-  sha512.doc = "42a5d3732c3aba5e3bb2e80274aaeb33ac99e52b9a65ce4918a8dadc6972f2818a4acfa495d271c4deb64121e57c721481ea92a7b91062a7bc28ef8cdb9b7acb";
+  sha512.run = "d9b770680bc147b45c3bcd984f58335d4e4d53f97ffecf85eb1c017a1c61ef6ddc06ae3230740769e199dcf674aeb92b5ebc10cb29863bcc4f67caaf9a41d15d";
+  sha512.doc = "98905c9e829d1d96a44b25236a1181d5b96b75ca8a05293b185b9f372067cbf35d3db2d0e3343aacfdf840981bcd2af19e089b4a1ca7ae79a7a52b70c6828862";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.1";
 };
 luahbtex = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "cm"
     "etex"
@@ -27149,13 +27767,22 @@ luahbtex = {
       fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" "luatex" ];
     }
   ];
-  sha512.run = "daafa6e417e7c366dde221488b91708f8c1302cf6db849b91a82bd74619f0b91e16430680aabeb27e43d1469262c9f799cd0bd6547635ac6ad54ef8e2dae5703";
-  sha512.doc = "5d2915af80990896181a70c24dd3c51748fbaa6f3f9b96b67b1b40bc8ab36d39293e8f76c0f3dabdaffb252423eec61375b6f5aa859a1310236f7d39d6f2fcf3";
+  sha512.run = "30b1fcd361cff27688c65ecffbcffc65053696200abfccd543a14253b53a35de2af53b37f7ed1580510a8c63293d2d002cf4d9fd2d44f86678e2ecb09f02e4b8";
+  sha512.doc = "3016c12de8386af715932819701a6da1b106c504a7d13ba9bb5a04999737709f474b50c08311c1d4c23b5532ba7c1546cb0585e5375babbcd2091adf52d05664";
   hasManpages = true;
 };
 luahbtex.binfiles = [
   "luahbtex"
 ];
+luahttp = {
+  revision = 67348;
+  stripPrefix = 0;
+  sha512.run = "ec1ce2020efcfa3288c70d79756fd221a2cbcfc873b4f7f77d23bb18ce16764873c30a6d24a36dfd86af5ffbd8563c0c9e863cbeb78b8487725fac7f6c153bc9";
+  sha512.doc = "cd4f2a818a31b8f9df2dd83590d8cbcb01cb6b06309a7a001711f990250d31232680ef2f10b252704eab611cc20c78cca51331db00f17eabad40ea88a8d2860c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.1";
+};
 luahyphenrules = {
   revision = 56200;
   stripPrefix = 0;
@@ -27194,16 +27821,8 @@ luainputenc = {
   license = [ "publicDomain" ];
   version = "0.973";
 };
-luaintro = {
-  revision = 35490;
-  stripPrefix = 0;
-  sha512.run = "2585639b6a7b93019f8fe4dd353332dabbbfb5663b84b1c92df397e940392a1b3bb2ddcec203bbb1b0f4244ac26b62f9745fdf50cb7512f96e5c12af8c08335b";
-  sha512.doc = "47de79cdc637810757b7879956cf758a77cde95e77060ce74829b438d13b58e23cbc8e9b328d0850b44fd8de8da90fa9fda206ff0e206918f1bccdf5d71d2c38";
-  license = [ "lppl13c" ];
-  version = "0.03";
-};
 luajittex = {
-  revision = 62774;
+  revision = 66186;
   deps = [
     "cm"
     "etex"
@@ -27231,8 +27850,8 @@ luajittex = {
       fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" "luatex" ];
     }
   ];
-  sha512.run = "f7503044bf237ca6d6e33a3a067bba0d73dfecfee7e77b5ebd4f3d6417dd24f7aa263cb08e7ffb86708574ecda31d5c7d89b42d2ad2179119393b99129f8077d";
-  sha512.doc = "3924029e274913999cf54e2f3a4d3ef85dbfbb4ee93a629b8eeb77c796557c3086eb447fa74d2d7a6f33a17f433f38ceb033f7e1633e240bbb135b4239b588f7";
+  sha512.run = "21313a5786f2bea08ce55db3a7beedabaf66f3331bd0eac1f8f3d7b926f68e103b14b1a5beaa271c37b60fc56735cc180e424f91db62f6e740530a65495d8e82";
+  sha512.doc = "7637835fae934f4fb1aea954270281a986733d0e0592204346edc290f2cd7d5200ee2fa0d9e15a27be8221c3c990a8c3d4654e314f96441a65c197d3bd259129";
   hasManpages = true;
 };
 luajittex.binfiles = [
@@ -27250,14 +27869,6 @@ luakeys = {
   license = [ "lppl13c" ];
   version = "0.13.0";
 };
-lualatex-doc = {
-  revision = 30473;
-  stripPrefix = 0;
-  sha512.run = "a1d98422b13a26aa844213df2929629889ed6bfe3fa16c27f6376f00f038a50dd32c5128a27ecdd872d3fce8372fb93ec603c0c92edb8692325f1e76fca685d1";
-  sha512.doc = "0756a0183d0b7b302f24cd16a8957915a69a3db3fe4a8a4fc301e246a0563f9fe81ce2af667b7bcfa45717b605be163cc5fd4c170d8584028f2ee7b2120390c6";
-  sha512.source = "a18a7644b50ad608dbb2bbfc15f2672fe7b9a48505c3224dcb46aa97b2d57b5a007c928dd5b76518c8963970bb1b8b56bed8e5c374ba5cb18a9521528dfdd58f";
-  license = [ "fdl13Only" ];
-};
 lualatex-doc-de = {
   revision = 30474;
   stripPrefix = 0;
@@ -27281,33 +27892,33 @@ lualatex-math = {
   version = "1.12";
 };
 lualatex-truncate = {
-  revision = 48469;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "f4de38427798b565aacdb127152cd7ac8a42b441c555f742f5bf90480f7cdf8e182745a5882a9c8e0645c529d27647a056f26b7493dadb13216972794e617341";
-  sha512.doc = "704b34da4b8ab787c53f2af21fd17a29d6c8e1d42024de2ff0e65d434a502b47022fa2a506e149b67ee5cb542f2f4835babda315b1dded598f63dca353aa78b1";
-  sha512.source = "bffd59b8b5a7d02f40f4ff2f4d028aa98ae26b3d9d9cb432f531211fbcf65d18814653fed07b68e4d34f65d514f7aacfe6bd5aea956a12f7fac2e088841ca02d";
+  sha512.run = "e896a6e065b5dcc49c24f8492f640f5ebc06c4f1ac8bbb57e8f76768ec20b14a016f2f801a5c5c855d03f72808b5844011aef7ac377a38a388cd843120b4edc7";
+  sha512.doc = "242cabec009e94adb1582874f959b10871531b433679c2f66ba9f82af02150d78b8acb8b486a182c5e41f2d0b7fee9a7294ab2d8977c9a6f0c021fde8678a4a8";
+  sha512.source = "fbe5c95820b8f94773f8f7e33b554e05a5d8ab2178472a6a6c27a24e08dc7dceb3bc1483999b3b13db389b46ba6f5be1532927adfd1623f0ec003da2a96e5793";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1";
 };
 lualibs = {
-  revision = 64615;
+  revision = 67994;
   stripPrefix = 0;
-  sha512.run = "4c58257198d93adf140d83adc043da409e84195ec37123c9738930702efade88c85faa83173591f1862bb5db0ec3da6bd70bc01479d605365a9fc200ecbc204c";
-  sha512.doc = "274eae19e558c1c6b0516154a4848353746b7329bd18599c6d801ad60f8849c1275418744942baf7e25a8d6360d21fce37a931c777aa2df9bd34a8887cedd15b";
-  sha512.source = "b0c4f3ebfa83c976d96452a0d33f903344ccc8df1f2c7a5237fe05f8d8b99ed44f737707e24c1847b520a8c93989308214c6f06e211e2893b7b96c841b1c8ab4";
+  sha512.run = "4387311fb78a29d63959114e401a2b97a8743a50c76a22163e0d14f15cd7b51a50f4be7a19232b32fa4152eac71c73fbeebcb8e38fee3bfc997aaea37bef78bf";
+  sha512.doc = "a4c878209934b2b044688dc77b4b467ae4e106adfb5f728f398d7adaa279ba612883ae22f30e667a79a22d633a507b689525356ff24daf12c50bc84dfa798ca5";
+  sha512.source = "98fb3af23ec41561f0ffb12461ec2977472f4182b49a37c0365c16bc3d52ce61c382e6ca172ef92638cc0496d5e3073e4c96b13acf390e783f1bf46d34226d2d";
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "2.75";
+  version = "2.76";
 };
 lualinalg = {
-  revision = 65834;
+  revision = 68918;
   stripPrefix = 0;
-  sha512.run = "18ff75c7153af357e5913b01cd4d9ba8fd5e4225fb503f63dea5d9d8af6b0f13189371d04dc8ced3bfa91d9e25af479391e13ea3f1f4cf30485f51536867cc17";
-  sha512.doc = "eb07f1a76292facef0a93d4d407da76e18c4638ef5a51f44fa71dc7a7e3ee3e368f82bb780b67820547457ec3eaae1b6327c166705966a65f71395cfad4958ef";
+  sha512.run = "91c466d51adeee70e9504deb30a623c41d4fd6b461e76f4a6dba2529ffb3e879ac9bd706845b00354418d6a600b3c774029000b3495ebb4711b152e274b87d0a";
+  sha512.doc = "21d4a285713b962e17ae2f83be803abb77813bb6fceb085787fba35f2a1956b88cb199e057c1f49d15ded68c3fa186a5af0dc5bb1ba99db07dc557c3a2da1a44";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.9";
 };
 luamathalign = {
   revision = 63226;
@@ -27320,13 +27931,13 @@ luamathalign = {
   version = "0.3";
 };
 luamaths = {
-  revision = 65400;
+  revision = 68883;
   stripPrefix = 0;
-  sha512.run = "825e0a28dbf1dbc09aa430b25fbac824de2bc2af14ed9d23970e3b1b8178548c11c9822b5c45b1035250e147a5cd1d0288f825f270bbf377c8f6e786c51f8b0d";
-  sha512.doc = "effa366dd57fd545b4f18112ba6798e1320fecb09fb6300873a9b48c318ebe7c07d5af8b5a14ddf6926d24c0ba0a1caded6c0c368113a159c5d73633464796d6";
+  sha512.run = "1c5a53bd44f062a4531bf4099c0dc1e76a47f5475901bac7f1fccea0005f9704df257044b76063d51158beb0d66d18e41ed6a4873388f0e531b1ff21ee1042e7";
+  sha512.doc = "0846e5ece550ec73aa65b07993faab7151efb100f6e5cbba8a4e73b595b012f031435ecae7d1100690395bc973fc82b617a0463bd3388e38081ad32b8d16d78c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.6";
 };
 luamesh = {
   revision = 63875;
@@ -27338,23 +27949,32 @@ luamesh = {
   version = "0.7";
 };
 luamodulartables = {
-  revision = 65485;
+  revision = 68893;
   stripPrefix = 0;
-  sha512.run = "017f903e35bd6800a89dcb086ac592c30e0bb48078ba50dc4822f8ee949d1995523a6c02eed77ab98beef7c0d08368a252d2c6a629fb27f035c8cd8d4a749b2b";
-  sha512.doc = "380eaa526a3144823b0cd438b13094376ecbb009f11c7e6e90303005b71889b30a1d2e08fb85218913f530ec163b01fb193e4866f6133c16de3501299db86544";
+  sha512.run = "0b390717c538a8c44cc7e8214908149c3705d5cb453d7776015eed27638ed0c0d16ea0b5be5abf2b6bec6e410b849f35796f574923303ebc883c75f7221f7634";
+  sha512.doc = "dba85f4e58f7a7d8f1f81d0051a0305cdf51e7bd1ad4220cebed513871c6a3d816d9a6048cdce352f48527da2b04700b94210eedce5104af289dd0508fc72f63";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.1";
 };
 luamplib = {
-  revision = 61587;
+  revision = 69069;
   stripPrefix = 0;
-  sha512.run = "daa0a03eca57570f485d2b7decf564eb9f6614a5799d93b798310c20ecb2f055b6dd469c87fbafc1722cb931dc387eada416bb83d609d76a9cfc8c482298edc8";
-  sha512.doc = "13b6b7322faf3fda798049bada6d1737f30cb2ce7841ea858ac798fa3f63818ae6661a4e050e4dca336dab37ba9292fa19446a9e1d07a86509c0856793716975";
-  sha512.source = "097a263699067a731409704d7de358c85f4509bfc6426dccd2b193b85430413c441a2c5dc011da613e1e673e6670f7d7ed847e59c58c74d6caae66b7b3c2a29d";
+  sha512.run = "8e6238c9fb806ced90d5c4e88aa84e4ad1ad39631296a90bd6656b600b1ac4f34d4e09789fb2bdbe92946ccda22668003c78b03497b3717402d5163d9de5e734";
+  sha512.doc = "e2dc6fd89743860159a529ae81c284c6965c4cf9eb3376bebe9d4027148e2726c7be24a42ddce36a43e55e76f7646f90da1f124fcfcbc22cf6a36324eda78aa8";
+  sha512.source = "51eb46b66368bc894ec1848fc357b859a68e56a88b700e5a7bc37b8baf1a2b379ea877e39f6b8024c8ca8037f62c6c06281c8213f49eb724b1c82dbf2bc46067";
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "2.23.0";
+  version = "2.25.2";
+};
+luanumint = {
+  revision = 68918;
+  stripPrefix = 0;
+  sha512.run = "f34fdf0308fe4c9aa36d59e11862958ee1824761e5aa8ee62e6df81b335ec8dacb203a64ce5e26395ab612583126093dcddbc42dbeb927c90bd3bec73c1b5485";
+  sha512.doc = "e8718322381688bc306871de22d585ad50128f45d25ec6864034a42cc661e78c510dbfffee46ab5a6da0e3018f1cf3d35974d9e4cf27e4208e9a8186aa03e656";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
 };
 luaoptions = {
   revision = 64870;
@@ -27366,23 +27986,23 @@ luaoptions = {
   version = "0.8";
 };
 luaotfload = {
-  revision = 64616;
+  revision = 68143;
   deps = [
     "lm"
     "lua-alt-getopt"
     "lua-uni-algos"
     "lualibs"
   ];
-  sha512.run = "70f27796fdfe61e0337239a2962052eb2896478358fca0f271287db06a1d2de2f83cd7394d0ec6c281e9a5779ec396e2993f53b8b045ed7a09cb17f100a4a477";
-  sha512.doc = "9e1c223ec2589f32640aefd2692d031b8ba324da30a814eea98768443eeb76d92d2700c320e6f96006e54635d31a655cae0a27c76931e7640748889ead4fbfb4";
+  sha512.run = "7781db14c45e5e2d5cba50e91e9eb356260e4cf1e55f45b6f584164f1be0a4b31818be7fe3e08cb51e8ed43fde49c0a3ddcecb860848f8bf02096a60e45a58f6";
+  sha512.doc = "a929c941695de38ee029d60564346581153bf233db5ea873dbd8f84d1922df2621e7d9a5aad3ad6423392798c5007342f0a886249eb85d3c598b06bf8e271348";
   hasManpages = true;
-  sha512.source = "3ed04272b887f434bfe2dd166974889318597e22c57109647946f2b255efca2fb6d1ecc1f02485a1bf387e77956c64a9f42c4af237b29f9fc7a38400d8cfbef1";
+  sha512.source = "62c77656a4ab2bb93e8403ebe197418914644d99384f74bd8b78c75c255537bfd947a32aafe3f92e576b0e2596eac3308e2d837b41604ad1725e145882916799";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "gpl2" ];
-  version = "3.23";
+  version = "3.26";
 };
 luaotfload.binfiles = [
   "luaotfload-tool"
@@ -27399,6 +28019,15 @@ luapackageloader = {
   license = [ "lppl13c" ];
   version = "0.2";
 };
+luaplot = {
+  revision = 68918;
+  stripPrefix = 0;
+  sha512.run = "99bb803fa2eb46b33e2f3d7bfb1b307dd268df91d392f8fe7bce5e45db65fb8b1de66d8d62f0bb2912fbb5521a73ea60b6627fee3fad23262fb92485a7858c80";
+  sha512.doc = "b34d3b67d1603fbb940856d9da2eb4ee57afd87923c2a1c4541d5d9325cfd597bb47b2ecdc829b2ce4eb3bfb35eb9b968e0cdba2cb9d557d12ccbca959506f53";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.5";
+};
 luaprogtable = {
   revision = 56113;
   stripPrefix = 0;
@@ -27409,13 +28038,13 @@ luaprogtable = {
   version = "1.0";
 };
 luapstricks = {
-  revision = 65900;
+  revision = 67207;
   stripPrefix = 0;
-  sha512.run = "aa7611f76648e31c5fa9a62edd005303d00a30568ca9c67aa4b6ce08b4ea36ee72fa29782ac805bfa51182514388c14b80a70031e99c747af408dfeaa170c298";
-  sha512.doc = "370f3bf3b7940cbf15b76c000e95b1e8d72d6339b8139333a4dfba64c8b78332d461c17969b3147956ea3677cc7cc61a13e850b4bb4f7917215fb23d31eedbd9";
+  sha512.run = "742b75749754c3370c64c50bc8138474f0181b4777875227cccf749851aa0d42cb490cddbd72a9624b931fe99f02e2727fea4e54d36b1d46cb084c666dca445e";
+  sha512.doc = "634cd9587c4fd9c6fc558bf9369b191e0901b58d75d871815592f3e6959bb103d32026cd9ed48ce448a497833c30916d39b92cbb85c6544b41b7341277dc6820";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8";
+  version = "0.10";
 };
 luaquotes = {
   revision = 65652;
@@ -27427,22 +28056,22 @@ luaquotes = {
   version = "1.4.0";
 };
 luarandom = {
-  revision = 49419;
+  revision = 68847;
   stripPrefix = 0;
-  sha512.run = "54019dd968b2cf3b6ab9a3777e609789c04a0d369b1ae938df152ded3bf54607140fe6265b81ca2a75f458e9b8144000f0bf2e9d77fb00aa923f7ce9569c423f";
-  sha512.doc = "f7fa30cd6668674cfee8116bdacd3c457fe6e1a3ef4a1c0da603db2fbaae77d187bfc5b4867aea0410a906238769d7138672b89b51eccc9fc4d110a079784092";
+  sha512.run = "1b5f4f420fe5acd552e7ff34459184319337a586b19f3b53111940fa648b09924f03ce7ce4da7463cbc894e65ef87647ada660922ab252b560dfe99295255097";
+  sha512.doc = "4be8b8d72bdd6d4eb33999d662e06a60c8971d5a990b649e37c990dcc6f708856ee61a59ad1dddb6c083eab09e809ddfb65a1730a8e76bb6aadb1a240c809a26";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.01";
+  version = "0.02";
 };
 luaset = {
-  revision = 65376;
+  revision = 68883;
   stripPrefix = 0;
-  sha512.run = "5c228ea6854943859d389f3de4386834544c0bf67b62d36078d599d69af286f14263f0feec48eace283e9374caf89bfd67adfc3a98fc1cfbb87d618cc9ddb62b";
-  sha512.doc = "0bbe3457ecf5c872052fa215e4505840a80e026a02baf07ed0394b044784c0c37c00afdcd0fa25f610986f465276c160a9a892a45092e5065818011137c70d89";
+  sha512.run = "97617f8c763ec968750949f5050ae8682b179caf6433ca036c820017c4ef73aad3f96a1f8071be490c029db25afc6b85c45310ffbddcf3c8ed7b4b5547cc6e58";
+  sha512.doc = "546beb759fe4f6e6a6a9814eb46935a3d1245bc2a48878c8391738e92e79c7df2148e564b2eff0cdc60281b6f071d8fad2edbf171d7c1130b1068aad11aa5a19";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.1";
 };
 luasseq = {
   revision = 65511;
@@ -27454,7 +28083,7 @@ luasseq = {
   license = [ "lppl13c" ];
 };
 luatex = {
-  revision = 65866;
+  revision = 69182;
   deps = [
     "cm"
     "etex"
@@ -27481,8 +28110,8 @@ luatex = {
       fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" ];
     }
   ];
-  sha512.run = "3bac06a5349e13d48ffebee9e78e271d8ea64d0e1b55df018ee1fab2533fbde3d9e9f99b64c3dbd3026c24b61bf6b867684489a73202cfdeb620558522c53b7f";
-  sha512.doc = "ed7298a561425d7e5776ac6555716b2b57f0d16584a871de94c5c341f0d8023bbb341b2deb78dc313e9aaff18659b49f24c41063a5719a43b67e5b074fc0d3b5";
+  sha512.run = "5ddb75ca2e358bea261363cc19d39a37a9e467f9cbf4f8006f036a96fea61cb00f86c4000c09d7dd07f71f9b9a01ec165ddefb862aa84f0bc3da6a387ca1f42b";
+  sha512.doc = "36a5dfb6b7ca09adad807d2fa74df854363107eb3fb514977e3ed8c69eeb1181a19a55a49eb8c001a3532601c0a222a3ae9d130827caa19864df03705af7271c";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2Plus" ];
@@ -27517,26 +28146,26 @@ luatexbase = {
   version = "1.3";
 };
 luatexja = {
-  revision = 65790;
+  revision = 69245;
   stripPrefix = 0;
   deps = [
     "luatexbase"
   ];
-  sha512.run = "aefbb04f83fcb47060bf540343d48adbad8c06fcadf23a75efa2a0d41149b75ab4dc0eaaba9ee910e6eadbebbf33beec47d751f8c188c4ecbb5adb149e80607e";
-  sha512.doc = "b4dee5a78aa3bc50989bd0ec78eb5cc281104023bc972303a9cdfc3a936e640eb4f1673c033289143fca77faa0fcff06e91097087a21a5ceac49fc6b2125a28d";
-  sha512.source = "3d912d72ae0f9aba3b6cefe21ef74ff8934c6954bd2b5ccee96c66a6038b5b336927d567fcf4fef1594660e6facb8cda739499fff2d187a270b15698c49c036e";
+  sha512.run = "359e6852a954aaf5a0aa99881dab189e6d878e5ee4083487d93315652cfb5cbbd010d6dcc74c946ea231073122604f35966744f9e7870dcd1321277fe93074b9";
+  sha512.doc = "d41556bac7106df19d9fb64c4093b9151e90ad237a72bb38d941d4fe1604c834800a7edc8d2bbeb7c82662c24fb2b2e1d8cd69a86ff76b2843daad90ac8f55ce";
+  sha512.source = "41f17265aa58ceb2bdd9b13e95f73552185654f459498337d34631e1fff3fd51f3fcdc06a2d426b466f0e21dcdc3fb81d1e4f031214b2e4c93582d04984aa66c";
   hasRunfiles = true;
   license = [ "bsd3" ];
-  version = "20230211.0";
+  version = "20231230.0";
 };
 luatexko = {
-  revision = 64893;
+  revision = 68243;
   stripPrefix = 0;
-  sha512.run = "1d1d9b828dfa55a6460bc71ee6b61cc434d8df0e0749878e84c2939c2bcccadaccd3f6b9c2146eae10bbad495da2375093084e60c9b5277c0b8542b4588b3f8c";
-  sha512.doc = "a516a7fa5536e3de9b6fcd54c2e9c28a078849bb0ea6d1344d54cf27131a9c82f96559ea031043715a6b54f04d49d5bf42da80c5c44beeddf1a3a5f6e3902e42";
+  sha512.run = "7815d0d6caada77e5d72c410a299de6349a81f635cf9f2ae5b61a73e5619808b8997de70a35a0a6e8cfa1250d413645a9f90f398582e061c92138dbca97d4117";
+  sha512.doc = "cd1d68f9fa8d5bc5491f4a58f465ea8ddc4a0c500f7c24c2034c75f33ad31d869d2d63d836ea6699b02b04b69406290e7f98eef1294ce8be0f9358f9b207c9ad";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.5";
+  version = "3.6";
 };
 luatextra = {
   revision = 20747;
@@ -27559,22 +28188,22 @@ luatodonotes = {
   version = "0.5";
 };
 luatruthtable = {
-  revision = 64508;
+  revision = 68893;
   stripPrefix = 0;
-  sha512.run = "250c01ceab5b63b60fa468e7bdf03e69cd902e0c13ed0b5a426685cf6f370d30d31881f23184c1cac8e75b380f0211357e7febc2de1e490bb2ec1ef1e5dd05dc";
-  sha512.doc = "4c93afcdb76b38ef2e4bb9bc39e4cf5c9d30d3a98b8cbcc8e6259d6587cc8ae2ad489c170a3dacf49f026ff3e90f522e2e7ebc86c5d05eb783bfb35e6d8c75c4";
+  sha512.run = "3f239ac9d477c456881921140345415d2bc9f0db00c9180bdfac2120c86669f2a52fe8dc92752535b2dacbbab626e51ef614da7fc10a93ad90a2322dd1821343";
+  sha512.doc = "5e17243dfe5343e211991a9e7b73d8b2d454042bea5cd15fe5bdf257344b4953d9a3e3ed9c2bfa66263c32c53a93be233715f2d524bf78c682a57b67332744fa";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.3";
 };
 luavlna = {
-  revision = 64142;
+  revision = 67442;
   stripPrefix = 0;
-  sha512.run = "58c16981ec1515c74a2ffd7632f16d0fb28b9fe32e6e954b49be602c721110e3537a66059b149a4d5c9b652ee717ee1c736ea03d2e4df3803c1b6c4465c50bf1";
-  sha512.doc = "a8d808e891ee8eb4958061912d0cd7b8c89da3d352ae984b08c92f56ae1222209132e8612172392787bc27e2e62a8a487e48fe1c728c545d8afef5fb7f23747e";
+  sha512.run = "012bdbcca4062a2f551b28dbbd781c885fbb557f5c1258157db01fff7141c8380341f53a9e58c3f844c022af64a748299efb703de5e37f05acaa0d385b8ab8ed";
+  sha512.doc = "a785d65816ff637c4c08f6a0ce95e5a65c4121885f6af32b3e68574845adc10886685451cf3fb68cff05b4ab29c792b3c02f793d912e86ace55f2602af6d63e6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1j";
+  version = "0.1l";
 };
 luaxml = {
   revision = 60709;
@@ -27586,24 +28215,24 @@ luaxml = {
   version = "0.1q";
 };
 lutabulartools = {
-  revision = 65153;
+  revision = 67714;
   stripPrefix = 0;
-  sha512.run = "fdc4a042872d42e1b951a2732982f5c9c5b1014a322f23a4d68fb3b5aa6c647dd881b779f37566d10c48154c3d570697efdf336fe3da09b2a3a776911edfda51";
-  sha512.doc = "7a2aa7272072c26a7063934cc2015eeaa002f1bb1ceae4f3ceb99ca10d6e67be816de6492a84b6185f9b61e3ed5e06c00b9319e9a75ae20cc455d9732856bc38";
+  sha512.run = "eeb781b572beed01f5a787a4d0351289c90751ff49a289952a150e3aa013b10f4b0f69fea546709ce9c6ee077a08a551ac9e03d192c1064205eb2af6e907be1d";
+  sha512.doc = "9595cf869f480951f9d0d142abb05548e4f71d8af6d62c4ff0626ad9d9019d63b91333bfc8ba1f6948c9075d62fb7b7956658079fd17ea5e86f920eb7c6ed49b";
   hasRunfiles = true;
   license = [ "mit" ];
 };
 lwarp = {
-  revision = 66260;
-  sha512.run = "c0ce55fc1250ea08b05369c4eefc5d79e8f71cdf7a33cb8923622fbbb63730ef0f59031759aab58e0f9acc98c49e274a14a962653ac33ad2dac81f44fbe4e9f3";
-  sha512.doc = "4e25b1cd6286c5ad70153993a0660db10e43bdae2099a66544fda73a6820404351352df5ba6889634d3b000257408cdc15945130a496a58ed52260734308cd57";
-  sha512.source = "756b877b4bd41fea4f11dbb8951ec232ca6b97a3ed5ff197467ab38150cac04c788dfc5b390506d611fc47e749cb78c03fb3db73e191f380b2eed1cc00534426";
+  revision = 69384;
+  sha512.run = "c1c5bfa2f3131daa3c5c39e162e4eec6a1b640b5ce5f122d44cec5a1e732c97ffec2b0376766750a2c6367ef821acf3418323888d01121645cf7e5051a6d643a";
+  sha512.doc = "20796dd6f885a966391b45e0db71d2c065afb89f87e92074de72fd7db6c02741bec9281f6c2db4ce6b5564d66f74361a30dd1d0dba6352747d41a4d161895410";
+  sha512.source = "50266206d154e4490fc43258518d1848024a83d8fc9237758dce1d2ab2737d82d6f398daf2b04c8cd091b5f38f6e4a8f0bb7bbfaa3f60ad5a1be6b4fc18624c5";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.911";
+  version = "0.914";
 };
 lwarp.binfiles = [
   "lwarpmk"
@@ -27627,13 +28256,13 @@ ly1 = {
   license = [ "lppl13c" ];
 };
 lyluatex = {
-  revision = 66280;
+  revision = 66880;
   stripPrefix = 0;
-  sha512.run = "98ed2a64f3cbf78688094917fc455220c9e75c45e17694271babbea79f2aff3b6c5b6cc5d1a645d6b48b64db049ec2b7b25ecddee1fa861beeda3590aca9b2a4";
-  sha512.doc = "7a16e8e6ed2d4c8912f7dc93de1abdb8a0357d2c698414d42a44185872d818593c6c0ef32dd7be766ca9720c5377248c7d617898091add90f01534427009aeb7";
+  sha512.run = "8d8491e9760f7464cc420b2b457f61c6f9e8e08b7de11dd9194f39330bb193b534f5ae3ea981317e4b2bce536149ca002f532f98bba5e0d8cfee5450c6b9b171";
+  sha512.doc = "96d99f944aed67d9e59714deaba08a5b41cd8d63f7c8a38151b2d7952817d5096517d1c643246dac8bb3616efa9c44180264794b90175aecef9362d32a83bf3b";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.1.3";
+  version = "1.1.5";
 };
 m-tx = {
   revision = 64182;
@@ -27757,12 +28386,12 @@ mailmerge = {
   version = "1.0";
 };
 make4ht = {
-  revision = 66131;
+  revision = 66130;
   deps = [
     "tex4ht"
   ];
-  sha512.run = "c6da836e4cd40bb987d2e15b3cbcc2a650284fc0bbc0c5220ac9b5e03b3ba9177986e013b68e401a951cb7982cd0a359d3ae2819c1ff516b4c6e88dacfe728c9";
-  sha512.doc = "9a802d3a26656f066457d07118bea52c0859d77bd02c6599e572538c54461f577d6ceed5845ef339811bbbf36560c69528cc76b29550e209f021163a2f57c639";
+  sha512.run = "9eddfced4137652653744256bd4ef342a1b5462a2bbe1852c7fc264b08646b0757d24ae2d12711c66905f810a8f0749ae7f6d7f32983d3aa96fad63e9e104a00";
+  sha512.doc = "2552e84307b92538639481b64690b2d4853f03e795b11daa61f88a1a15896f24982dcd563c181497a287744eabc5a4c3e18a2a705bbfcd9099383b1858a02081";
   hasRunfiles = true;
   scriptExts = [
     "lua"
@@ -27918,14 +28547,14 @@ makeshape = {
   version = "2.1";
 };
 mandi = {
-  revision = 61764;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "9bac7973ac229756b5263ee0e8a8a4381bf64400a1ee58b0abafa6765e1cea6dae0b660243e1dfa87a8072f1caf1851c11c88db81dae1b231ec6def9f965991a";
-  sha512.doc = "4debcb2b892563755cd0779db9c1784f7feba4d0e35118cdb00569bc4eaddf23423f1236f0cf28adb1c399e220b5f348ef898b0e7f1c59e031891056b9148fdb";
-  sha512.source = "1cf1912cd6db652bd927378970a1740153906f0c14e92da47a428c564c04f66f3496be8f639fcf3f0f0caab48fff0909ae72dd81085f2bd8a92d5ae08fce07a0";
+  sha512.run = "dca65d864b92b561058a5fd8e703ad2faf4c1201231efc0168992cf469d0919ed1aa45d42fb2744bdd11247d85d9582c25862495f77ba835eeb3663911e86d41";
+  sha512.doc = "c88d265e450e87a59fcb23a7a3a94ea979dedf12b58c7f0b6b2ad78e43f43d86b7bef2e59b89a3724ff02957a62ab92daf80df278eb8f8533ee359aeff580426";
+  sha512.source = "e7f588b777fe28c8c1768f13bac4e09fa9b5747a0ab97cf350cf8b0ff61cfe0826df19bf2a8da03e6d23f8cdecd1335897197272fd899703ce158bfb473a8fb5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1.0";
+  version = "3.2.1";
 };
 manfnt = {
   revision = 54684;
@@ -28010,24 +28639,23 @@ marginfix = {
   version = "1.2";
 };
 marginnote = {
-  revision = 48383;
+  revision = 68204;
   stripPrefix = 0;
-  sha512.run = "db05524c613df90a75c6545dbd19bccb955d0b3c2c0312686e21ed42e4802d47105726b0e092d178bf484f1585331bf71c604c2d9f039065872e218357d0d07e";
-  sha512.doc = "a9d6a3d7f8de332a5f77d086d552caaf91e5ab4a71288548d6d7ac3318cde208d948a668ac554d2a8f510f984dc9943bcfd0e07a70a2ee00c9bdadd3e148f550";
-  sha512.source = "fccae0e44e24059f6ff2cb61b2d52d69ece44287b4183733b37b157ff700f6f251d86d4344c3a10c1417155d6e16ff4105a77ce01a2468e5ba160ca79e25b064";
+  sha512.run = "6643a77d01d59bc371d301e738b59957bd63cfa0fc98a554f853d1599392ceb5e88663651563445633df704bbc3ef74510ebd6150c44911314225259982f114b";
+  sha512.doc = "18882e317048606324338ff765cd11e972c3dedcdbfe2407a3f9643b3efe6a7d173561726d4221618ac510a447cec7b1aa13a46ca45a091ac76e601c55c551e7";
+  sha512.source = "edcdc3acba09440dd7d1594a1813fd205447c672e0bb73e3b968ac6e211365c488d3ce0287b7df5e198a75e12d3301248e39674be831387cdd06636e97d76138";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4b";
 };
 markdown = {
-  revision = 66261;
+  revision = 66954;
   stripPrefix = 0;
-  sha512.run = "dd4d0a36ee144a419aca266003376a252bbc1f2fe9d1128db54478ebfa6f126f6f9b46032f914f7d9373774561da6c40b1d4bc301aa2944ce56adfaa3616d088";
-  sha512.doc = "655631fe5856d385434492fccfe9656a90c63d77fe9d0497fe6272fa513170df211a3b14c6d3b51e18374407f6f38635afac860d49cfe81a6e85a4f5c888c6e3";
-  sha512.source = "435d0cddf335654746b1b4e95d972fc559c072ff23609c6e6e9c34423226985578d42b22a1daea2181643f23ec8e7797947106116d27b3c78317098e103742fd";
+  sha512.run = "b638546ded5356e9f271cfc28055f6ecc307e72178097dd54c0cd81bf3208058507d902bec0555185b9548cfcf7fddd7d5906d959644d9aa8945b20b8c816dd9";
+  sha512.doc = "7ed883ce22b404fae91e6e946b7786f64ee28e14b624f46b4aca9af1cbd3969d674f0c82cfdd1161c7df5a34d60ed8627c4428e13d317035079bdea0e7f7cf0c";
+  sha512.source = "986ce93ea94fe9afdce6555b90e88231261f2263cff2be734edee32b5c1ac005967e40ce323cc629d16616f9370f4958491f4fe7b0641ab024dabab0cfe4ed0b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.21.0-0-gee15b88";
+  version = "2.23.0-0-g0b22f91";
 };
 marvosym = {
   revision = 29349;
@@ -28069,12 +28697,13 @@ matc3mem = {
   version = "1.1";
 };
 match_parens = {
-  revision = 36270;
-  sha512.run = "1e03e279e977af436a8f5d5c3d30f046f46f1a31a0fd3de6d8ab458a64f0634b5f3ef8a338954971a898a1c68128f60c6eabd7ca231df9f3ca8ed12e55967dad";
-  sha512.doc = "60428bc16f65fe820e267852c9d85a5f862c6800ac9c2aae0915a48819da381b2a311fdd3d08096d4aab7311ef86c1c89fabff3d88caf419dacbef515f4dd39a";
+  revision = 66681;
+  sha512.run = "ed3286292a5480d73db2d3e231663c37eac6a17a50d4bc37131bb5d5627d445560c1bd47a3ea05dd4d9439ad97c275a05542c5664ea0460e2c596eda75aa56ac";
+  sha512.doc = "8ff55ae4caaa0ec44f2c44c21d08e977467e6a1a1471f0d361c428a2fd552907a3bff6a88a4f7fa40f3fac7f5ee0a62b2471d5966430b533ef5dac554d919a99";
+  hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
-  version = "1.43";
+  version = "1.44";
 };
 match_parens.binfiles = [
   "match_parens"
@@ -28115,14 +28744,14 @@ mathalpha = {
   version = "1.143";
 };
 mathastext = {
-  revision = 64930;
+  revision = 69237;
   stripPrefix = 0;
-  sha512.run = "28288f54a92726e0b5d741fbc78c1e6f87d9892b28bef5c2aa7285762bd265048c801f55e8590b18de43be82fd353f23d18e55a8d9491ed446c058373f736bda";
-  sha512.doc = "758c42dfbc5950d37804e9c5cf1f6b6cadf1c838c1687a7cc4f9a0e0193e75f6630e0568767953a45f73bc04b22332ab62adff9f4262f106e9a341cba6207dd6";
-  sha512.source = "b184975082833620ce3af3aed8fbfbfd616648753abb0a82dbc602a1077455a024ab916daface8eddf54f9dc1d1ce7727a8959ec7990305ca48f7864915fca94";
+  sha512.run = "057e16f2b729c1e6fd6857da04ae30b2d2bb42bf185cfba01dfd2753303e6d2668e5c48362799ecff40318bf709c348818f0529f6f8971f9cf6f66cb1960f03f";
+  sha512.doc = "632a36650d095b8a9f49ecfac9fbfb896ee29f18e81adece341026291fa945e361ea2f4678bde9b31166f2d7b0d7224c8be856184871e85b31d5e7613f950785";
+  sha512.source = "7c9499486765d4b59320a67e057d3550e46d1434a730ba06d288b869468203e89b9b73b7c96b4904def75e6193fc4e0f79e814e9cd3acfd088c6da9b6dd4b856";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3y";
+  version = "1.3zb";
 };
 mathcommand = {
   revision = 59512;
@@ -28193,14 +28822,14 @@ mathfixs = {
   version = "1.01";
 };
 mathfont = {
-  revision = 65205;
+  revision = 68241;
   stripPrefix = 0;
-  sha512.run = "92f3ab48fb76f9cc09d0de10cc485783fcaef69cbc8dc8932fa1d006ca946a3b2ad0a3d6ad404e8cc66ae920632810832825ec11ea9c6e77263d86a904d78634";
-  sha512.doc = "6b769ddb7b70ddfcc5dc8ce8b87617a08a6cc3e76b05f9cbb468d4dff9046cf81c258601bb81d3b2253e88e29315de24787d4ad7262ac996a80efdfa2544d07e";
-  sha512.source = "762ac9d2686c3dad154dd5ef0725635739203d2ba99315bd7f04c429e2d5f9bbcbb42e21e76e1c4aef7c8e5b83587089ec232a0d5e903d1c54faa4ef5185f4f1";
+  sha512.run = "9ebe3acb43ebd09a537b99eee5047d2abf28a019017ebb434684864104892093e4451ff3ecd0393c4f56d4f94efb16cdefaa58b073b517e7dd01adc04f5f9a69";
+  sha512.doc = "304bdf738ca94eb7c5ae708ecf0400cce1af9c09f05056b3718bc0ea5352e1d06a2a1cc3c037c8569bb26d33268e14ab660e627da0d9df075af1b36f6bf718bf";
+  sha512.source = "771062f0f60be1c0d3a300ce74ca9ca00a56b6042e3980da47590116c08f39c8b4f0bdb756e41654481615fa1896f53963abd0c322817c57cb78247505abde9b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2a";
+  version = "2.3";
 };
 mathlig = {
   revision = 54244;
@@ -28365,12 +28994,12 @@ mcexam = {
   version = "0.5";
 };
 mcf2graph = {
-  revision = 65666;
+  revision = 69281;
   stripPrefix = 0;
-  sha512.run = "35567c70e718f97974419280f8e68e4226203f1100e450896198ca7cdc8e6b006a1b428f44c2379bfafeb8fcd884845b1dd7c2e54b2a3f9317af054ed7902b06";
-  sha512.doc = "1b8a718afe98fd358cf4fd74acd7e2a1bedd8852adb80efca97e3dac598a5fb6deaa977ba19c137ba086ecef9a50af1408d7bd16924c8137f76909cabc1efb7b";
+  sha512.run = "b399097f1b7805603d156a450530ad33cca0d8ce28c2a977db584b2a0b2722bab87d6122a7ce27fc7066e24f4c24a5e832d66e1e90abfc88dfc388b6b4ad8f38";
+  sha512.doc = "8169812299146fa937a323bb573201c04ff6a42e1b090bb87fe24d213fbf8b1f21f0ecf40ecae157b26e15f56c00fddad9e09c9ec2e7fd901f92341214615488";
   license = [ "mit" ];
-  version = "4.92";
+  version = "5.10";
 };
 mcite = {
   revision = 18173;
@@ -28512,14 +29141,14 @@ memexsupp = {
   version = "0.1";
 };
 memoir = {
-  revision = 65040;
+  revision = 68004;
   stripPrefix = 0;
-  sha512.run = "925a0aa087b4cbe6e0f3815a067a65bc551bd4a1adcc19ade2e4293c3d7e9d6957684feb5140aab1d6f93c7a815a68f3256f86764fe4e57b4428f02df88d6ac1";
-  sha512.doc = "5b80fe697420ebceaf793e80aaa3e8779c8408ae3b0aacd63552e6d23ba8f8b132e670821efd1c2244f3a8792899f59e8b85941ad5b9981780cbe4a6d17942a3";
-  sha512.source = "7b2eefb8c2d148acf89e2e63bb055550f39ac9eb9aa8d99b803b2aac58756d6e11c0cdc9e30e3bdf8246ce1790cbf5da63223c99cb8f94f1ac8dbf3f91d7bcae";
+  sha512.run = "b55265c3beb272c274514931d18107d5ff50691cf442df5e21ce229c8ba88f44a5a3e56cf85ff9d89d2df705878367a31739ab0da3a9bf486b9e5a54e6cfab15";
+  sha512.doc = "4660576ef6f6ba7cda1b3d7591fd6ea768d94861b15965107e80b9231070e6581b0428a4bf11956ec07d3ccd55a3cdd6ddd5630a72e082aec4fc896576833a48";
+  sha512.source = "d817a6ec1253a686d1dc77c529565fac3ed1134932290ced8615d82f8505f29bc11ea352781268c4a729fd4aff2f744708890cf264f68c8828a2f2c6e034fe78";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.7.19";
+  version = "3.8.1";
 };
 memoirchapterstyles = {
   revision = 59766;
@@ -28529,6 +29158,25 @@ memoirchapterstyles = {
   license = [ "lppl13c" ];
   version = "1.7e";
 };
+memoize = {
+  revision = 69285;
+  sha512.run = "1464aad053b69b821e1c99c72a6e448a231a554c1f04d31550fe29401698705fca9c97149435655269d3128885601d4917c7954be2990905360cde1de73db477";
+  sha512.doc = "d210344a90649cdd67b118aca5096db266fede551b7170de088eec4a40b765b9a66b890824092329f76969ebab71dfe6faa3a55ba46bd8b5af9d092cf4fb4aa1";
+  hasManpages = true;
+  sha512.source = "68ac9d4a8af74c5d4922da8d8f2c89518bf855d8d578d0df1d9fd798f242c0a339a0e76d10b913a178c0c4195ffbd2e1aab7d3927ba4ea6133fb5e45ce4f9eef";
+  hasRunfiles = true;
+  scriptExts = [
+    "py"
+  ];
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
+memoize.binfiles = [
+  "memoize-clean.pl"
+  "memoize-clean.py"
+  "memoize-extract.pl"
+  "memoize-extract.py"
+];
 memory = {
   revision = 30452;
   stripPrefix = 0;
@@ -28623,17 +29271,17 @@ merriweather = {
   license = [ "ofl" "lppl13c" ];
 };
 messagepassing = {
-  revision = 63116;
+  revision = 69123;
   stripPrefix = 0;
-  sha512.run = "31586e42be48650fd7b7057a4cdb54b7f6851c35e450cfb436dbf12d23617821c5c6e2f66a8abf2e181521c55d64fb9ad93cb195cf0d01559d6405ccc34af26d";
-  sha512.doc = "ac1b2ce7ca296eec4768d191547af66e3233d3ed34e68e746e870a894757df1de82b3bed6ed510fd0dbc8e5e9194e2ee024860112408b8e6b29e2bf230209a57";
-  sha512.source = "7931c0b26a779915f94531bb0b3af6fb31b35cc2401e3dc539b673e15bcc21131d88102b3b6f77d8a27d70eabc897a6fbf99dcffe8adc02f6a82673c0c29a69a";
+  sha512.run = "8a2243bb9b788a4dbb1caf14368fdd4df3919d9d407b65f2d4f49af16a341a030bd9114f86078623760dc3ee5db060060c58c6f675f4e8bdbc3c1c7c9b7a1d3e";
+  sha512.doc = "c26c14eccc615a306b8ebe1a5c80a09249d5ba8668a34e2f7141b034df70634a277ad94078f2f50e51e53c514340571f9cb766232c3e2dc0ef5dc28336ec4e4d";
+  sha512.source = "6ed92b15d4f17613ba540069b4d5f4bae5b7ce2850594377ecebeed76b92c61f672da8f95628d46db87dc9b44ef7dc9c8561736bcc9500d1951f523dd43d7378";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.2";
 };
 metafont = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "kpathsea"
     "modes"
@@ -28646,8 +29294,8 @@ metafont = {
       fmttriggers = [ "modes" ];
     }
   ];
-  sha512.run = "4e287680b7b14497133165a45ed668dd326e587a305475d90f4b545aa1973a0e6001fef2e3a9afa5fd2f343497d109f4670fcc0f4c0263b20624dbbad1f21bd3";
-  sha512.doc = "07e574fce34949b71ea0b156c394db80bdd9c9a3018afbdadf786fa431674b6fd0c2f79e8f9a72c872b17b2dbedb755c0ce3def552740a99e63d65e28fc3d2b0";
+  sha512.run = "2ba715c32631b3ce24aba65e7e1df90a7beabc52b855f5e81cd383f94399e439a344f8a8a21f38648d34d546ca8f1890a74922836557cae5cd05ac945013d71e";
+  sha512.doc = "48b1def32bfba5ab1123712fe41d69f979e33a77456801c21f030de8a39b37fcae179db44a517d7b194d7e6e6eb93d770e179ca49db9014cd433c86ef91b07d0";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -28685,14 +29333,14 @@ metalogo = {
   version = "0.12";
 };
 metalogox = {
-  revision = 65448;
+  revision = 69401;
   stripPrefix = 0;
-  sha512.run = "14de5e149673db96124b7c3542ccfa253a193e6ea00320665ca6cd024fb055d9bc5e6de770f63d5f7123a85ecb604eaa76e6637f7450b08ce4835fa7a097bb6b";
-  sha512.doc = "0ade0e0562ec5deb0e30e442c3909c27a18a78a9bf6fbe21589cd4d8a615be0c59f27bcab76f6cec6d897c26522c2e5442a9684eeebcfd5ec45a790ba8011165";
-  sha512.source = "6b4de632d4ee28b93f92c270da26badb00eacc425761a3a0a3ee0c296af44f0d152f04f2ed5521729725e1a223d20943a4a7a2d73e1c03e31fe316b5ddfefc11";
+  sha512.run = "4b91892cccf068c85d774b9d545c07c004a7c6badf89114b5d8cc5818090fb7fa87b3dfd6a7d1162c22939f633bdfb318a670092f70540910d257ccfb6a39a09";
+  sha512.doc = "6da27bf652e239ac7d307a0e5bfd01183ddacdfad38fe1b97d4cf6c084daf9bc43f54cda651b92a5c6693c16f9f6c2a61f821f64c5d1362f8db3f6a808ae722d";
+  sha512.source = "1887d1004349bd5b586f7d02bba1e2668e6d0534317e59c12915af847d478dd5022f5dc91f952032582feea48c0e01034dbf34c949ea08c699056e0c5d500fc0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.01";
+  version = "1.02";
 };
 metanorma = {
   revision = 55010;
@@ -28722,12 +29370,12 @@ metaplot = {
   version = "0.91";
 };
 metapost = {
-  revision = 62387;
+  revision = 66815;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "d807a22bd0f3358d1986a477834c19b2fce636e4ea96f52f745220a165726505849ac4a1048bd4be49cf9e42e098a55df2a4c9b4d267dddbe2fb093ba3029d6d";
-  sha512.doc = "384730c3f784bb026bb29ee69dc95d179c53636c405e1a037477269e9a3a95d8c296729d7bb54037ca4a76e5ef00eff4876c4538203e400db8c4f0850c48b259";
+  sha512.run = "fb50b9d45a36cbe11d07fe2d0a1307bf257132e195825a2007894d5accb33ae1d10e0ca6d6a27405e79d3c439fca4dc1df00f21814eb530ac3707ca516bb9a0a";
+  sha512.doc = "6b10e2a6183e6c7b9515ebfa0186b13d48bd87fb25cb69b010ac82b885fbb1f88f31340f7161e34f61cfa7478d50ebad6e82eddb14d8c746ef1bd4c480fe4b58";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lgpl2" ];
@@ -28819,6 +29467,16 @@ metrix = {
   license = [ "lppl13c" ];
   version = "1.5";
 };
+metsymb = {
+  revision = 68175;
+  stripPrefix = 0;
+  sha512.run = "02864640550428b4869f0682d5571f463d21089f85e4e03336890cd7d37d08b9ec89b9bdc7b09b0f3ff5ea8bd612acfc2974655439fdcc5b617846d5f3d1c2a4";
+  sha512.doc = "a3afc302c345de9e00f89f6e0781d4763d4ca5461f498e2cedcd0ee0494483db9cf7cd0ceb68823e7b1806caebc85a22751d5d4ce3b8041968036c8b2514e5d7";
+  sha512.source = "29ccd5eb8915077ca09b568c7fd1924d61243266dc2fdfebba00691bb35a0dd908f2311caee865a044a78a9e485f78a4b91065c8d17f08b13420bdcf1b64a05f";
+  hasRunfiles = true;
+  license = [ "bsd3" ];
+  version = "1.2.0";
+};
 mex = {
   revision = 58661;
   deps = [
@@ -28873,6 +29531,7 @@ mf2pt1 = {
   revision = 61217;
   sha512.run = "ca93a3ae439f9cd8029720bd1d90fbe75a403e7ab4ebcbe1ba1e5a7a28aa9269197f90a4aee849fea59d734d5dc38f04eedc140ff1be64fd805a10ab5510a2f5";
   sha512.doc = "6c10831fdcc48d25645be675fbf5da29da945bd79032c60e73e04a39d61c287a64e7b884381ac0b08e48f5dc9b6dec27efea874f6e13d6e4a5e3f32c22fa3ce2";
+  hasInfo = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.7";
@@ -28976,9 +29635,9 @@ mftinc = {
   version = "1.0a";
 };
 mfware = {
-  revision = 62387;
-  sha512.run = "4ed72f1fdd64298b0ae67af00c3ba64bc6ee0a4851ab09c674adf5824972ef183d2913f5bda7d0756be403cbb14817e67913274e350bed81201fbf7af5b2ec97";
-  sha512.doc = "a4715a988208eb7ae2b252fa9e6d9e7dcd55cf86cd66d55d42d13cfe9acbfea8dee03ce0312944ed5075f7b6a48aaa25a7134831b7798c60af13cfc648955951";
+  revision = 66186;
+  sha512.run = "f14b1f8876f8a4f2ba8954459c2a3739e0537d800fc1fde11aaaaa61400c18b9419edd3c7884ecac499da3efbd5219244c06ccab1efe17674b5458b464abd3ea";
+  sha512.doc = "ec469dc655be20598ae40cdccd8360252cb216039cfcdfaab5f45d0276fee272a463f19db7f98f6d35b3e6930098536fe8eb4a453161646aa0ed33dd3f8773db";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "publicDomain" ];
@@ -29047,11 +29706,11 @@ miama = {
   version = "1.1";
 };
 microtype = {
-  revision = 66590;
+  revision = 66587;
   stripPrefix = 0;
-  sha512.run = "2190b285430f6bd8d69dda7098938cb55cc797014d6db63796109a6f3782a6eee16bcee06e8e9e40888803fc963d2f978e750d6c24dc4c10e938a1a0a43fc449";
-  sha512.doc = "375e41bd0e78ff145996e08f9d3470cd730aa81aa9c8fdfbbf78ab230401a17ad423d11bea35a4fbc7cb8d09eab81d75c57681c72ffe8894b14fe69763fdb8d2";
-  sha512.source = "b126076793ffa4aa6e935a623937709180b24d6b42843107bb42f56caee3ef525dbf8d714561f521bae8809809e180f8428f6782162962d0e2bf0246c787488e";
+  sha512.run = "c80e6bb2c13432ecae2be22622e3bbfe82342ca138f61870cb8f3c2d7ec93f431bee5ae0a9619d4ad6a842b0752ecb73131452d6ac5c5fba7732ad4d5c979fa6";
+  sha512.doc = "6f7eb5d18fc2864c0bff52f7af82b3284766cef64d2ba8f4aa9f2f6d26af3e47e3be9d486f29e646e92ca597cc1129dacb5d1c03dbe155503ae046e4badbecf7";
+  sha512.source = "77d5f0e22a97ac0291e891df206618460a2672fc36c79a91db2b5212092d65acb0e1cbe0ecf82e0a31704baef207a48f817b5fa65abc4d6e6c031acdd85ed602";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.1a";
@@ -29101,13 +29760,13 @@ milog = {
   version = "1.0";
 };
 milsymb = {
-  revision = 54361;
+  revision = 66697;
   stripPrefix = 0;
-  sha512.run = "51dbdca0783519a3f7cd5ce78cd3c8e0b36c79d24781015a71e1c26a3d9a98e549f50d6d8c6044be0fd32642a3cf91e4a80009dc237b6eb5dcb1c4ac055d0732";
-  sha512.doc = "cad4940b3bd462401ddd31b7125924e4b25b02d46dc360e7e4f3f027ec9bd905ea7c1a1cbb26f7a40a247aaa45e0b685d8fb4aa4caf01fed6d0a0c9c1c032471";
+  sha512.run = "fdd01cd6a9a5b27ceb741ba689a82f1e695132d78b59c818fcf2e3ce63526109173b978246b1b556e355237ce456b6f632effd555c27b3096ecc1cd5f5bd22ed";
+  sha512.doc = "7baa8152b3968047e66990eeeb94b601a0667a7db598a4403930328f6fa18595c46979772b8b496dd7b076e99e19969d22c8a3f4f19d3b82f01bd84bfa920db7";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
-  version = "1.02";
+  version = "1.03";
 };
 mindflow = {
   revision = 65236;
@@ -29149,13 +29808,13 @@ minifp = {
   version = "0.96";
 };
 minim = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "7d32f1c11023c9ed7d45e5364fab3a104e689343d67687a232dc8d74b3a1cb4da38fc794debb463b6c2136a6cd125077b22c624f3f1de5118cf6159fede98080";
-  sha512.doc = "368f8950497e3ee5509a977c3958d1d1ecb29bb4f6250a0d723714b2524616ab57c1005359ed418850ad5fec3507afed0454a44e22e4776b085e36ab054c9ba5";
+  sha512.run = "ec7106c1cba50c73a9b2384fea848fb76a07f8a693ca0affd10cf7b9710e871cecdf2001be45453f76f572dcaa869b613b0ee07d7cf2ac2e38cfa662171904aa";
+  sha512.doc = "fbab9a3a46b1a569f48de82e8311d0775829750341bbca8d747de135a71c808d930149c86560fac29f5713cad2f11fcffaeedf15083439ac25ffc1fd2e78126a";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.4";
 };
 minim-hatching = {
   revision = 62395;
@@ -29167,49 +29826,49 @@ minim-hatching = {
   version = "2022-1.1";
 };
 minim-math = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "e3591e9a4009c0e30df7c413b67b62af4360e02dc4ebd1cc88f962a636fe48777bec5da664717c60ff3466250545ec98ac59af4760813e824e1f2247a11504fd";
-  sha512.doc = "dda1e6c916ec4d239a3d3eb8ac026b693f8fc023181a441848b7dfe187cf38300ad5ad8ff28ecb510a3ff0b8015bd632744f5be9d72d78241a0696e11af2f07b";
+  sha512.run = "b733b6fb53b450bcb4afd2265f65e64b6087d08d385a746ea78720efedc4d1aa14bf6fba21fcfdbef7a331d1c657674caace33f9a213d34d0b56604a4d0067ff";
+  sha512.doc = "d3754968215fdee2a31db13934c22a06998f93a11b80ba46e30231176e1583a8df86dcc8ed91b582a8b6f1427d9bf121f0f43cf297edb3e4a79250b9d703cb76";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.4";
 };
 minim-mp = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "4281f14c632bbc9e628291473818a05c68bee90bec08e43d04de2379f4813588112aa96c1fa39a8aa75c84459c5a2d7b1eac68d0f629c7b55628cbed6c682b1d";
-  sha512.doc = "2cf551a6c59c9ed36b9ca4b22a057efeff5adaaf0b162d83c51ea043cd0ceda02cdf5e5becc526904ce897376679e863e8f66a80221ee860e97733ec39bea4a5";
+  sha512.run = "117b829b8c037674b896f88d224795bcb4fbc0871dfaccd2dc56d9167549e88a1dc8e3808ddf773efd392a924569b3cd5fe3ab9468ba068dae76ca632a99ef88";
+  sha512.doc = "977a6f61e9e149caed9a61f7595cd3b488e0d536cfc7d00d4c4ad5a6b4f2bce003fda88309cee6a13d9f1781bcc7035fb3fee04bd2adedf9fb31f0572680f9b9";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.4";
 };
 minim-pdf = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "8406724dff3fe85dd8dd982ef20063582ca883f4571953e99511e1fea5db7930e7e3012052a0c3201e37c31be2282d7977d3ae38d8a6c71c6391f71605cd25c4";
-  sha512.doc = "e733e10099d2e040a571e0ae9fecb35d56661984403f7fadbd6ea0ef1e000d742a45e9eda96ca913d416c5c0e400e3d0fa723301fcdf9ce17d8ce9e95fb51ad5";
+  sha512.run = "959a7e6faef8a4f22c0a8822e73178430721d0aef57fb9c5f5e5bd588e8bd5588eec31a3ea1b0d4a851afcd0ae393cb4917f976e5698b1614cc407428a9c9998";
+  sha512.doc = "1768a50f0cbe45a980579042021670533932da3b832d2cb619638311ac7866a3d39cfc9dca862c842464be47799eb98835584e86c8b04f820247481ad86ab5ee";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.4";
 };
 minim-xmp = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "bc70e2e2fd329896e48954d6035f93a0b8ec029487372313fd8d3517cbddf21135f329489bd179cd68c97bcf4a4eb8fc9be5ef4a95b8644df8ec7dc09784b44d";
-  sha512.doc = "2eb847e45880e23d4412fdbbb8908510ff2f72dbba6cb37b5448dad57c078560e3deebc775b0e8dfef6114f179ad81875ddeec8dd02f59a938ae478f439061d6";
+  sha512.run = "4df50df08721b8c6cbc2314a36f08776766164c57fffa387d4804afae2fc1f35deb386f2c01e81da8a18b535c7103b7e07ffc51b37d4c621d8c5ac5248f4d960";
+  sha512.doc = "a6c524225e0e9c5ffe620950474ea7f0f16780d555e354a14885d81066228d350a14399a78cda455677fd116e752f3637e73ff3e9aa342ff4036363805d736cf";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.3";
 };
 minimalist = {
-  revision = 66447;
+  revision = 68552;
   stripPrefix = 0;
   deps = [
     "projlib"
   ];
-  sha512.run = "421b6bcf329e94900e278e4db931d96744bc843b6b0088369753a9e34800162d28560fb293004aedb4f1e4af703b63540f1d84cf9999a6fd6a3fe2ba1e9bc15d";
-  sha512.doc = "77d097fbf3e0dcd4c078dde948e60d7a6fe10040fb4b2cd0ba6190ed4b7f971d509dcc29ee55d4d13aa493f9d9f0a53667430235790830301b7cebaaf0ccefb3";
+  sha512.run = "ea2e03654429ff56c274ecd4af620ad97734a2bdeb4dd63f13834a3d01f1d2c86b55d46005bb3181bf5305d5705a34aaf4c84cb7fdd46d90e27939912e3bacc7";
+  sha512.doc = "57f20e5e8fe46c61f181b52ac87c55d2e6e3b928308b347167e7973ee1068a7cf1cc6b8db048ec6ba5f983d1c8b0aaf4ecd405749938607e812ab7c11580fcf8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -29250,12 +29909,11 @@ minorrevision = {
   version = "1.1";
 };
 minted = {
-  revision = 65252;
+  revision = 69163;
   stripPrefix = 0;
   deps = [
     "catchfile"
     "etoolbox"
-    "fancyvrb"
     "float"
     "framed"
     "fvextra"
@@ -29263,18 +29921,18 @@ minted = {
     "ifplatform"
     "kvoptions"
     "lineno"
+    "newfloat"
     "pdftexcmds"
     "tools"
-    "upquote"
     "xcolor"
     "xstring"
   ];
-  sha512.run = "faf543c7f48371cca2a4af7d1e4e1e9b16c13673908417ec982d773dac561ab9e467f79bed230f5c0e359fc82c5cfff1f83e18cb6261279943d1e5a2f117ea2f";
-  sha512.doc = "41640837e53d5b9cdce55a8f29707fe4f654da19813efbc1770df39b8f00aabdf600032dd504a8cebe23b4ef91e226014a94e031c52d0458f0684c5a53bd276a";
-  sha512.source = "384af78dba5447f7169804597afba5b42f8860cabe691e2490d90248ed798880d11471e8cad7ede8a4b1dbaf7b9684dea05ae54719c7637b8f5b6d953fd0ba98";
+  sha512.run = "d9bf72028b4aeb2febd7e2ee8f44297f047b5eab76fca8265a56dbcde4d921946bce15af5a89bc110b8ba25d234925172822e045670cd9795f13e38cd0e90f18";
+  sha512.doc = "6ddf64e40d3d28ca2bedd8a8a9789f1839c63a96f5aee3f71155722876f8ddf0634c2022ae4c02e1e9336a76dc8477994654d20e9d5949f2054017fcd09a9146";
+  sha512.source = "2cab20988a7fae52fdeacfca9e0f30fb1d471ea1a93f7f76c6812f9c6d15e5c4949aac1a904341be30387ea1030c67100cb696a861b114bdf8b7d348c9d1a808";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "2.7";
+  license = [ "lppl13c" "bsd3" ];
+  version = "2.9";
 };
 mintspirit = {
   revision = 64461;
@@ -29295,14 +29953,14 @@ minutes = {
   version = "1.8f";
 };
 mismath = {
-  revision = 66400;
+  revision = 69169;
   stripPrefix = 0;
-  sha512.run = "0f6ffc40645b440526eb5376cb1933dc174d0605b18fbcb97d73160d927d4fcdc69777a88ac306a313f0f89246b37db4a830bff13c52d48ceceb06a6f160bea6";
-  sha512.doc = "3d258a890bca6cab25f8014e743ffe304a4570cdc3cee7b64ee0f3ae34c991d71466a5e9a61d8c9506cc45f43863aa44014ccab6ddd772bf3f2c5aa5ab17cf27";
-  sha512.source = "df100ef82fa338df877721e2a5e91da5159b16f46020c4c74e375183052c44f4a971c91850c4c8d022a4681cdb27c90a198c11bff18baf32da5b394356843f95";
+  sha512.run = "0c85c7301c3409a56b99163c0269810daf36894c261c0eb62a78d333760e10375f0daade5e06090b3571d424b4b504f4ce14b61063a6518e5aa8f355aaa559ac";
+  sha512.doc = "e5693af9be3fe8496b213ff988c851388e1b7f28942ad1734d527c70f905d82d2110f55f3da9425af2a15584196bd83888021b4e6817c6b7717adda5a47ea545";
+  sha512.source = "b2bfb0bc801dd99a54366f71f28971019717d351a3020de5afca1eb4c2ae7f0e6825d343735a860db460f3c345970992eb19491ab486a66aaebe26f9cba9633e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.7";
+  version = "2.9";
 };
 missaali = {
   revision = 61719;
@@ -29313,6 +29971,15 @@ missaali = {
   license = [ "ofl" "lppl13c" ];
   version = "2.0";
 };
+mitthesis = {
+  revision = 68732;
+  stripPrefix = 0;
+  sha512.run = "7f7fb74329217ceaba1cb55e8dc6d52216327991f397b01b7603d8a797ad214bb0f62c51e237a14e388ba5110d558716436218a511647336115b9653c61fa801";
+  sha512.doc = "315fe938373d4fca5cb740067855cf38b52c00b49926baf2a61613ed5353bb81e4b156bc43ee3c67dd8414d5cb9f9fc1b36a215d67b04e57ce4ad4967456a021";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "1.11";
+};
 mkgrkindex = {
   revision = 26313;
   sha512.run = "bbb0b306f30b4fe898f5d5bfdcb1eaa4d2d88a95cfa1ea0da51957aad1de028928562c930180f6c0a7d66b5cdfd804d52afbd229e7ca43173477a229cefff192";
@@ -29366,15 +30033,24 @@ mla-paper = {
   license = [ "lppl13c" ];
 };
 mlacls = {
-  revision = 60508;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "44bb40283c118c638c3cd1b6b7595b6922225ff99dbce4b35c5579377c983c860e275bb7ddd76ce666d1907f59ec6e3dde78491764d4712addd3e5441b4832ec";
-  sha512.doc = "926a815427e1f66fc67357e962a7ccef39de82b082e045041b8c44d9ea444005b176ae7251b39763e03ebfc7babff0313f4b3f450e76cea5c4e21efc2171be96";
-  sha512.source = "884fc51a22c9e3fc996516c49e250bb08b4d5f5f7c19ff6830b45640d62578d3328b4d5179f750eec2d8086eebe96284d7347f223778674e9250625c36d1dc6a";
+  sha512.run = "7d0ccccd52f39b97f5448674dd961dd230b93799f71871bab7d5cce5b77e60788029795436765b6678b4b9e89f9f370ace2a43c99a9c185c216335e7ddaaf5b3";
+  sha512.doc = "c4ed81865684aaa5d15679ce667d41604a2f9d7431b06a258ec2d8f5f0f22aeacea5f944e39faca856cc84139b730d33f407147deb07f7ac5da70fb82341153f";
+  sha512.source = "c8a602a2ab7dbe1c0ecef7a1d4288eea10b0d8e5bfc15319d31c2f417a6ea2190576c986088b8da8aaff317ffaa0f0f41d0025e8e16a02503f2d96a91835382d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
 };
+mlawriter = {
+  revision = 67558;
+  stripPrefix = 0;
+  sha512.run = "67e9de777a464cf7ecdff6c821ff31d73f31f5f69cc5e6800d740ed6df296b5fc3a584b34e60be025f91b96a609e392198b67d386b60fd24deefb11746ecd439";
+  sha512.doc = "7d05bea21e44c771cf86e94b03ff2960419fa99e44adb1e7cc9a2398eb0647d0a177ffb9e2b8bbc74775946e2b438c51b8dacdea916311c967a02c34dfd1a2fe";
+  hasRunfiles = true;
+  license = [ "cc0" ];
+  version = "1.1.0";
+};
 mleftright = {
   revision = 53021;
   stripPrefix = 0;
@@ -29482,13 +30158,13 @@ mnotes = {
   version = "0.9";
 };
 mnras = {
-  revision = 55729;
+  revision = 68878;
   stripPrefix = 0;
-  sha512.run = "dc964c48272c36f81e1370ac3df6fb3b4e873294f69a565ba240a7c61a5f78fa6b493beae8e78c1ed469c4f34c325af3e53739f1aab5a68e9af356fe6945fdbc";
-  sha512.doc = "5a6f55ad7e0cdf270856a5efdb6891e2da00d813b2a4279e323dca188d3b3ee43f89ed3fc44452583d45ad83b7c63cf2470371c7975aa068d2595740d31163cb";
+  sha512.run = "cb8e7cdcef07bead94509ab42af1e3d6a966b7266b75473f5a6107d2fe7f3f4c2f732c9544072def55d923883b5ad495a166cb128bf67e10211919be9f4fdda3";
+  sha512.doc = "be0eaacc684772a599ef62a782d73b41e0e9963cc9ab0624805cac56af8b8f8dc529405588c687a018ffe888b643902ddfbd0f833cb7cb67a3053bd5c34e373e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1";
+  version = "3.2";
 };
 mnsymbol = {
   revision = 18651;
@@ -29501,10 +30177,10 @@ mnsymbol = {
   version = "1.4";
 };
 modeles-factures-belges-assocs = {
-  revision = 50010;
+  revision = 67840;
   stripPrefix = 0;
-  sha512.run = "870cd893fbb3bd36d9af8a35487fb47f9afeee75c6093fe3fe9167c4db4f0365499e0fd87b4b3debb0212076d1248902014fa374df3fca79108965bf0c3bb07b";
-  sha512.doc = "f879904a96322990beafd7e444040b11fb9d69e93d73df5e5a159d70fd8e033d9a137e1bb4c54e4bbc4f8e5b04151336bed77aab0b46fcbeb531b346855df920";
+  sha512.run = "0b0e546eef6640b70dbb07bbe6401983fd0547357dad47a854b4c87119727d79f5ef54789394ebd5923474d2ad95e59a55d9340cf84811b5f2d5a94e406e8c7f";
+  sha512.doc = "0bee390919ce8ce6082c2373f639db7de1029d0830d4cf9f1c807ef044e0ba27c8f0e4dd37677df63c03b64ad00b27825cd703973776377f844324846a908edd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0.1";
@@ -29550,13 +30226,13 @@ moderntimeline = {
   version = "0.11";
 };
 modes = {
-  revision = 61719;
+  revision = 69113;
   stripPrefix = 0;
-  sha512.run = "86931543910145093d3141fd40512ef6c1a99901a757d178d8ba592761c25638383f9511f4937af657c414642341c05ad6278d871e5d397117e03cf86706a9ac";
-  sha512.doc = "4ba301dce255d22c23cd732e6c1b1e887a96918d594a06f8386563b0ca46fce015c0cdf17aecb2fb13211360a7db24843ec99664b048a53ed0ac76a1a4188c76";
+  sha512.run = "71e00fa0f1c3cdf01a6d49567df15b5a9119005ea63a2411680afdd0b423fe0f66a13f01579a379883969cbaee5535a4d338a9659196d4c95404b2cccc321cee";
+  sha512.doc = "32135a28343fdf1de2ff2cc25ae78920729c34f777ae6b147ff85f80953eb7610bad5e1a8919d6d873ad45fcc9b51cc9152e9e2fc566d47a57f7df4e6f63f5b6";
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "4.2";
+  version = "4.3";
 };
 modiagram = {
   revision = 56886;
@@ -29706,11 +30382,11 @@ moreverb = {
   version = "2.3a";
 };
 morewrites = {
-  revision = 49531;
+  revision = 69306;
   stripPrefix = 0;
-  sha512.run = "fb1f515fa834c422f628464467411a51c8c9a99f353ab297ca0ac0b63d65a7f2e05ec3e6a649fa35260a6bedb91dedda594654e83e94a28baa62764a38d9ca8c";
-  sha512.doc = "9f4bad59ec0f024d24956481d2f70baa56748c9deb000979490c001cd671dd07fc3712eca1917713775d6b879169050786b22a76e2ce1d8d57a99cd76487d167";
-  sha512.source = "21a6606687ac53e218408cc5790c1b93c9db3cef7b1f17fbfe574ee2f1a1c48e5c21a00d7b4f44f6fc1b98bd77af032be97c1cf48571bc439ee20fa6367d3bf1";
+  sha512.run = "9618e04c51865b275ab262d0e95806a7fbbffb4f6063b87644f3111760c591be6b3f8684fe72b5fdf0ea3dd6e034f88d5fef0f9c378e31bf44617727a76b98d5";
+  sha512.doc = "389828d2a8fdbd9f9b5f20f3c71654f4d23e9d23e5af8d98904b35bb8d8d939f4641bf74d43e3035ff73310f0324f21a47d56cf6065af1d04d96f34418ba1157";
+  sha512.source = "2794f2571cc3158f92453a229d088f24002ba893758f521da13b1229c67de24573752c07f03a894605704dfa19a73791903055582fc1729814a350c09b0735fa";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -29723,6 +30399,15 @@ morisawa = {
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
+movement-arrows = {
+  revision = 67270;
+  stripPrefix = 0;
+  sha512.run = "42adce39a6f06212f5d6c3c235ad79772064d8b0588e3f79b34ba7f3a8530e08857e5a1612051ce6c58e419b0ea4f1a6012b19d8e37ae20ccb1a20c11f9894d8";
+  sha512.doc = "d1f1856297ccfbcd42d05524d633857ce548fe5b5c5fc84d76239a2cd62989015ea62f2fdcb509e918e47cc176002fc5467c7d721942f674eb4cb405dbec1be7";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.0";
+};
 movie15 = {
   revision = 26473;
   stripPrefix = 0;
@@ -29767,6 +30452,15 @@ mpattern = {
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
+mpchess = {
+  revision = 67704;
+  stripPrefix = 0;
+  sha512.run = "b65838b9b3177b069a2e8e4141fdb9ae68ac1dc9378c9fe7534fd23556d93ace29ba1ed9deaeb53fd54d709b77ecd98d9d0fc79dfc8e77b8eec899d4a332bc3f";
+  sha512.doc = "c859e9f5df0d24bd1eb59dfd39dc97cd1ba6e713b33e37d17128388928071e2da8f41180da333fea34ee6215585208de193a381205fd866142f341e1856485d2";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl2Plus" ];
+  version = "0.7";
+};
 mpcolornames = {
   revision = 23252;
   stripPrefix = 0;
@@ -29814,8 +30508,9 @@ mpostinl = {
   version = "1.5";
 };
 mptopdf = {
-  revision = 65471;
+  revision = 69363;
   deps = [
+    "pdftex"
     "plain"
   ];
   formats = [
@@ -29826,8 +30521,8 @@ mptopdf = {
       fmttriggers = [ "plain" ];
     }
   ];
-  sha512.run = "1d488a0254f5fc2197d3e8e66de4b0c38abefd477cedac511098612e7200ba90f9d81715273e5e24b731638b91d69ec4b86f0ef1b65ebbd115e9d09c6f2772ab";
-  sha512.doc = "ad89851e9f944f18ce1226d6c753a14aad0abe9012b4fc97d5328005e2f758a351db1ddd5ea590694396cab8852b6f77adc5ac77bf1de5277ab224d9470e513e";
+  sha512.run = "680851a49d124cf0e2ff0c7626dbb5c5e48358ab08c94906cfe019fa2066dd3b47c763c7985a101d44ef6a6bfab3b3f72c88bbc1ad0eca0258b8f6467ffc0ede";
+  sha512.doc = "46b4dbe5a903601078da34238dc449ad932dbc44fdbb6df33b53554fbbe8d47307ba99e971ab197e468a8689d731f989c02097ca2b8ab07c575ec05e2866e81a";
   hasManpages = true;
   hasRunfiles = true;
 };
@@ -29835,13 +30530,13 @@ mptopdf.binfiles = [
   "mptopdf"
 ];
 mptrees = {
-  revision = 60929;
+  revision = 66952;
   stripPrefix = 0;
-  sha512.run = "8eb172f4051125fbe7d812520455e3a37888508754abe8abd539e84a1105575c32c2dbc850dc562a2dfab34811614e527cfa089c9de738b6ac7211f923c61929";
-  sha512.doc = "2e7c3837ce93b67bd1604451792cc54842bec27b3ebb6c56b2a9b9d702c3fa999ecb3a2836076c39adb30dabf833a507974e9dfaf19c9166bbcd3428487cf0a8";
+  sha512.run = "a3579aac7bff11c77416bf19447a429a3f56695bfc105f1218ae8f7d531adf0333ed73ff1fe93bab8af2ef590d6157ffa3c363bc306d3e81eb0d78766aa7871a";
+  sha512.doc = "cbf0e2660c7e98697d2441ae8a40d69e9855ad1eeb1acb3b6e140557caae3d0f09619aa24a0c0f5b2c44e133cc7595ebdd6e7ee4e8809f92ecd759f0a12fdcaa";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "21.11";
+  version = "23.04";
 };
 ms = {
   revision = 57473;
@@ -29853,10 +30548,10 @@ ms = {
   license = [ "lppl13c" ];
 };
 msc = {
-  revision = 63291;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "7693c105f3a896e842796c0119fbcc692a1d495f394de5e2cbb9df7164b4735723504980e1ca53b76aa152a2b779c06f535542143512882f411eea40814a9d5d";
-  sha512.doc = "9f8b33812702f2d9307e7f1a20c091f05da4c03220abbe8d15f3e2a3ad9871fd0806fe45f29557a71953da3c57a3f0a08d21e93570a99542b9d3ea605398e63b";
+  sha512.run = "103ff1fd368f97920f5403691ccb5fafb34c6a291db5d76a83d56f64d1ec452386cb844dfea7462fcec573d86b05fb183034ae8968d7127f4bf425aebac1f087";
+  sha512.doc = "e336c0969d2f39c06baab3f7573109e11f76acf47767f0653996ea772bc5fc4ac801154c5fa0df2eeaf999699aa0d61c1e7d223b44248fba72dccc8bc1b86663";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.00";
@@ -29880,13 +30575,13 @@ mslapa = {
   license = [ "free" ];
 };
 msu-thesis = {
-  revision = 65462;
+  revision = 68480;
   stripPrefix = 0;
-  sha512.run = "918bfbcc2bec35581fc50bdd6e7ef10e5b8fd3f47d9eec896b5a0d18aaf5a953da0e46b20d0d19e03fd2a979a950e34f6956af85b19db2a6de74d1f9d91575d4";
-  sha512.doc = "a58f8c2103da08dbd04ee8310ae349d88fbe86a7126a0dc6bdcf44d2c91c7bb2aa453ea3830d737fb21c99de888453d83e24ba108a8f0fc17f2ec5aaede1d7ea";
+  sha512.run = "a25f539ee6eb50450a603b25d6639918118a8882df16fdbe71dee49f09045480b80514994079f291120d6f3132753a90cfe3a7eb5e366a6c8b15b6674735fa85";
+  sha512.doc = "da32f1f22664d0bf05561a4d99977b942c95167a2e325928fc05714bf59a9f8aaec302f278685d0fae90b8511d246a156936101f6a12fe76a31d7aaef5dd762b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.0b";
+  version = "4.1h";
 };
 mtgreek = {
   revision = 17967;
@@ -29919,14 +30614,14 @@ mugsthesis = {
   version = "1.1";
 };
 muling = {
-  revision = 61719;
+  revision = 66741;
   stripPrefix = 0;
-  sha512.run = "2f6521255e8e0ac777130f0e108ccacb5a81f74264e6d7b830514e292f9733ec47dac9e3a618143fd9dee224ca60ebcf85a74d4c14104cb21e65d2b4d4c59908";
-  sha512.doc = "8ef724f07c630e1fe6511d0b8846f4729084fab1ece44489b0fa4cb40dc506cb2f666bc84b9a020103bfb98206d3c3f44ac78203a86d160f1b4e7f55e2f2f77d";
-  sha512.source = "9aa6c144a54359d48e9eb7f0425e88f7e790ecb2c6342ee86b92d43608b3ee595f1f2b17c3e2ec66f2f19e921004ba5068c8fa45fef598c0cda51336d608f89b";
+  sha512.run = "5a955e229ffe00e276c4ee4590473ba9d137d668c63294735ecefb031f2a01b310723dd2a5cf37b4c9613793df39146d08c01e2109ca37fe1d9136903cd6aaa2";
+  sha512.doc = "9eea5504062340098751c51d99433f91e95bfe74b93f584e08d3c6d1ae516f6d8a18e8495d10a90a4c5f751f44854758a3a8779d56ae158397f35419218aa01d";
+  sha512.source = "fd0a41543e4d20ece031b9d2143a6f4196010141dac7c3525d7dfdea17e93ce1c6602e78c00d4d310a9ceadce2d9042140b8b53deaa95d665b3fc043042505ad";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "0.3";
+  license = [ "gpl3Plus" "fdl13Only" ];
+  version = "0.5";
 };
 multenum = {
   revision = 21775;
@@ -30102,10 +30797,10 @@ musical = {
   version = "3.1";
 };
 musicography = {
-  revision = 66119;
+  revision = 68220;
   stripPrefix = 0;
-  sha512.run = "16a582cb9c03444e7acac7bbe851d2e070b8d474cbfbd71a2cc79a9cc937311100b341e39f0b1cd99fe983e88cab002c78e265e8150fb0434f98c326b76ed7b4";
-  sha512.doc = "e3ef9d669eafbe00b62931062b32617ea22070c5738fd31e24e3378c1e1ed6e76cf8497ef5384ffc1b8d8eb42b005abc21e6b3d8f9a12943936631654b551151";
+  sha512.run = "310c10402a269d7bf44a811b841be8a8058ef8eefdfa4440fa64ac27983fe1212134e4a616b3979ffa4f63c8ee86a7ccc5568d49c195dc1683b326a501cd83fe";
+  sha512.doc = "52dc06ba9b0394c0ea66fc02094174b45733002a3a492784b1e67670614caf57a162d5ab74cd51bbe6d884fbf0f04458d6eeafa2faf637ccfde4fbbfa435cb7f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -30128,17 +30823,17 @@ musixguit = {
   version = "1.2.2";
 };
 musixtex = {
-  revision = 65519;
-  sha512.run = "85ff6dae443655c320990517debd59c2d3b3cf79ae795fd27836704af1ead716da34521e254a201ee8cad90ba0b5d1c559157567adf3e7142aa5446e91af0147";
-  sha512.doc = "cae619ff0b16f557537ce3d28fd8df938d9297aeb37ed47713934e3a6ee41e4d8007e4e798b03221df6e958db93e2a765b9854576381eaacc924433e4efaa362";
+  revision = 68484;
+  sha512.run = "37701c422b8994231a3ca707c3d8eedbdffd4df89e6258f93c6f9778bd2b37d1c0ee9e94c75f81c5d5fe015b085cc3eff35fee6ec96a5fe28577403802b54373";
+  sha512.doc = "211c386eb30cdaaf24264cde5eb0e07e23a2ad66335d783e64ca08c58e3f04b9cdd954713d3426252e74f63f38399afa42571d44d9f95734d54004b14548104c";
   hasManpages = true;
-  sha512.source = "e81c23471fa26ef887aa5e16eefd562c5f133619557e734c7b36de2dcb9b1746c04263e7f3c300ccd90e85cdbfb4146496448a31909403631510645d28e39608";
+  sha512.source = "f5997350c5131164aac7fd785181e22a6e9912762b455cf04fe4371e67faee9ffa25969171bacef14684b6066053c2d8bab5f5d6b467966855614a6af13e8dc8";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "gpl2Plus" ];
-  version = "1.36";
+  version = "1.37";
 };
 musixtex-fonts = {
   revision = 65517;
@@ -30298,19 +30993,19 @@ nag = {
   version = "0.7";
 };
 naive-ebnf = {
-  revision = 66029;
+  revision = 67892;
   stripPrefix = 0;
   deps = [
     "filecontentsdef"
     "l3kernel"
     "pgfopts"
   ];
-  sha512.run = "cfa82893728524f15e26758cfd25b42cce7499ad48fb5362899cbcd8717e57e3f8a18d680d5f4493b66e9de910b3c16b251ba23a11401b83da03f88a8d15940b";
-  sha512.doc = "42abbbe4b5746b2ad4ad3b49ea6bfaa35741702735078d48759e8da95ed207318fbe5d1e12fec46b0d6b934c63b43a094a733f34e70dd27405937da9b0f96b9d";
-  sha512.source = "fa1601c7f9a79371b757342cb8bbca14f29de401f3944e3c7d393cd120413bc2fa38296220d5cb56cf6f63797dc4f8374b2c5396df33b6503bf801e17be423b0";
+  sha512.run = "52780f4292abba6d621638637f8c3d11a3a39d4e26c3e7a10e077f4369624ed0f1fead7aa781d9d0017b000618bf08ade1bddb78e9d773c3abd9c6124ba00068";
+  sha512.doc = "f2abf68012f902440e17235fd49c55c4776d79c3e7db46d18e203b47160a427545201170c6644a18d33874a90c6770d83fae576da68befde87da17606ed577e6";
+  sha512.source = "a149e3c6ca7f22ed9b9d7a03c0d5bb941af809b6145967bfbc63ff96aec966eeb5e657cc0bc099c7727af6c2ebffaeb6f45474104c2c7c1462295ea115ad0d87";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.0.5";
+  version = "0.0.15";
 };
 nameauth = {
   revision = 65738;
@@ -30550,13 +31245,13 @@ newcommand = {
   version = "2.0";
 };
 newcomputermodern = {
-  revision = 66338;
+  revision = 69379;
   stripPrefix = 0;
-  sha512.run = "e5e31361c266052bf765ee41371b548f6c85a857e0cd10f2cac2ea00e90c1e47da745f3dd2efdaa8614dbc4e09b65e4b174e82141eb27385c166ee67d1e52aab";
-  sha512.doc = "065b5d4344015754875b31b55b3ed2b1c6c891a38a5db40390a2136af390285d0b422c9843959501d7e1c68b9d76ae21792ebba11edebee4c2b69b2cc209c5b6";
+  sha512.run = "140226a635763be7a407910980664b38323dc3634980452fe9eb4395194e7bdc0144715f13d79b9f108630aebd393073135328c98fa34310e3b8d4150e2a5fea";
+  sha512.doc = "dd8cc0f43cd3a1d19a6666ce39d0d4024f8ce1ea8c51c0809878f8b886b286558d78f91cfe962b7cfa0e83c8abdde5912c4913c9c67be5d2b5ae81c274803fde";
   hasRunfiles = true;
   license = [ "gfl" ];
-  version = "4.4";
+  version = "5.1";
 };
 newenviron = {
   revision = 29331;
@@ -30578,14 +31273,14 @@ newfile = {
   version = "1.0c";
 };
 newfloat = {
-  revision = 52906;
+  revision = 68434;
   stripPrefix = 0;
-  sha512.run = "2cd4d1e5097bd6b9abd25621fe64590e67f8933a5292f83277dd546cb949c6193af04e16a72e61c3023293f6471ed41e9b46c23dd4c6c19428c7875cf0279aa8";
-  sha512.doc = "4a9b942a072ac5da1e92f6ecd63ff16cda41195403794c8a111140d4d6af43947875828d497f7824bdcfd41ca03ece22469ed5e0fbec0cdd84c56471678cd469";
-  sha512.source = "311c22bfb91719a8358f5feb89f3ada35de942703009cb47d5489b2800f9eb149a285cd6ac99186f94cf8d82ec6b9f582dc9922cde9afe515c10e483044f0d98";
+  sha512.run = "6b7ec618044ee10c16722460fccf4e3b71092ed5fc902b0aff431c7407d50e97bc27a2e9bf4c561df50da7d605a3a1ea95c20f47727111e7077e338f0c0e483e";
+  sha512.doc = "e3faedb4cdb78304c738a4437fa503f7870c81c13eb82652ebf5a5ccb2befa1180683a5704b16891715c60445eac214cf8e6fb01f1d9675954d45e1a7535d659";
+  sha512.source = "150ef59ef64c4378dda85cf5472947575bf78ede8c080ebc9f2ad37ef8928c1d59c50c5772cf48683330bce60ce633e2295493c7bd65b658e3538628cbbbfd37";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1l";
+  version = "1.2";
 };
 newlfm = {
   revision = 15878;
@@ -30598,23 +31293,24 @@ newlfm = {
   version = "9.4";
 };
 newpax = {
-  revision = 64415;
+  revision = 68762;
   stripPrefix = 0;
-  sha512.run = "0a7cd4311e9e77517e320d1ce1d3a8747e1f13a00a0fe98c72dd394047d56fe7cac81bb4a5562ff057d9052dae85201e8d783e21a3d55425580ec713e303ece9";
-  sha512.doc = "1f0148baddf2d0c65456cfd5b1c8204f23574b7a3bc8d394f68cc63e0b397dd8517466f90a5fa5dbf3079c787a6955df44a52b330b67153a771b05543dc34d92";
-  sha512.source = "2469863c13b6b2db2d8f03929d52b7d92527e8194e91a90234ab10c588ecc0926155ac65ee297859fdc2cc96022ee4d34da675e2fa094181f77c0edf33830029";
+  sha512.run = "88888718c7ddd02cd3fa3286ee63d7d527d836f0df15250d9ddde12be475275bd7517f4a0562f30d738d4a007d61c4a417a7f03c8fb628b3fc981e7a6f643ba0";
+  sha512.doc = "7edcf5fc73e0b28d92b8f11f42e47bec9a6b2327cc23a146fcc65143a30aba16d839579d94de7001b5937fcb241e977d9933e44fd5947da06907dbe4c327e70c";
+  sha512.source = "00ebef49ba9b5bd4ddc4c6889d0d9479fe8d1921f94170c51a2c5583f4d59f2bf533db3348e2b595758f377d4e6c504ec6b9c582c5fcc8c4468d782e68416bc9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.53";
+  version = "0.55";
 };
 newpx = {
-  revision = 61806;
+  revision = 69380;
   stripPrefix = 0;
-  sha512.run = "19a2ae1d832d48a082d3cc693914ff93475a3d4526347fa49dd35a7afa56c65f98ff54ca49f9f1674732922e36bc6e66d8b368e0bc924270af9b4ffe04347cfa";
-  sha512.doc = "ed38d727e5d8af16730df66860fbf2dc0701d9ef850fd2d77dbeaaebb38e826fd435f9a78e3771f7498c2fdce25efaf59909340e330da84ae831b880ee7393b3";
+  sha512.run = "46edf929749a4104f4fc141453930e4475a3ac298396ccf50250a6c4091ad58b19887883172cdcf5f5b67acb28f084529ef3c344ab3fff38ebfd53cb79334532";
+  sha512.doc = "39c54fe8bd66f529cdb89b1ef92bd6bb323d393d7e85307441d8f0310b2cfc2cc59d49c0b8560c8dee3da23af13240d619de1eb1c6525750caad3ec148fd7d40";
+  sha512.source = "bd679fa72822162ff3cdc14c67d8be7a3d91ad18e6222ec90dab7fa7878d8e593cc1f884ae3ccdab8bb52d437f351baf39afe30e320b4e2e998c51ee729cbde3";
   hasRunfiles = true;
-  license = [ "lppl13c" "ofl" ];
-  version = "1.505";
+  license = [ "lppl13c" "gfl" ];
+  version = "1.535";
 };
 newsletr = {
   revision = 15878;
@@ -30635,25 +31331,25 @@ newspaper = {
   version = "1.0";
 };
 newtx = {
-  revision = 62369;
+  revision = 69381;
   stripPrefix = 0;
   deps = [
     "kastrup"
   ];
-  sha512.run = "07c63e655ebb6381bb7eaa4f0f1a35054894ee6db55992cb8fadc04a2dc62470767a12661a8cc697c8d15df40861835463ff7a0bad449f9fb86b59093642b89c";
-  sha512.doc = "e615ce1c1a9478358af27885cd9c0b8d7ad152a3fb437ab705bf682d5849bd705a248de2d879ea9b4de0833984c15b0ad59c4da7da88c9e12d21fff9e4fd9efa";
+  sha512.run = "116c8192b67b93a6dcac6fd296141b5b5bba89b41c94cb15ee5644ef9c9b3647dfcb9703a002c9433b8badbbd117cad8fd0565090ae7ee097cb65d7e06b0ae60";
+  sha512.doc = "6ac40ed19b45a5a99fb854469605242cc1efa098563a9653bbebe994e79767b465d182f0bef6a03961756fa8670677deb033a8d6ad747e54cf04c62634fd0388";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.71";
+  version = "1.737";
 };
 newtxsf = {
-  revision = 59227;
+  revision = 67051;
   stripPrefix = 0;
-  sha512.run = "c7665696fe28a62a2dda826b706bcefb0d468b575232c1e04a69c58a843631e631098b4feb7b93fe8bf1c443e376fa8d8dcdb17346dd188d89b9fa525dcac33e";
-  sha512.doc = "98ca9aead749cf70e54acc6414d82d027160ba9d730747a38d0e55479dd4439d198cfd4093e22636e9eca58aaafba6818bb3d3583e41f4a46e0f44b1e10cc424";
+  sha512.run = "a85dbbbba3bcd0bb4732d327c5b70acd89ef59d6d22495cf4a4fadc3751af04f27b09dfc77613fa32ed3270417d31cc876e5d72b6868b9a7454302c961dc96f8";
+  sha512.doc = "d09946c13c3ae08339933fd965a1740eaa660413067878e44ed5bb8a249dd23c76acdfa01101a8ffa11eeae3f277a40394023c0d40142908498a1be0d95abbc6";
   hasRunfiles = true;
-  license = [ "ofl" ];
-  version = "1.054";
+  license = [ "ofl" "lppl13c" ];
+  version = "1.055";
 };
 newtxtt = {
   revision = 54512;
@@ -30731,22 +31427,22 @@ niceframe = {
   version = "1.1c";
 };
 niceframe-type1 = {
-  revision = 44671;
+  revision = 68091;
   stripPrefix = 0;
-  sha512.run = "c99757f9907622958267f042f0ee0aec8dc6317839fba05309116f9151e476e37f24dde00e6de59fb0204beb9383eae039c0fabb089d6349d6f6031e8df196f0";
-  sha512.doc = "5ab28cf7091ba993d7b4ac9f5caf2d563c60e63a3ce8975bae105f460e2dadbc963efd17b7ec5ddeeb8a35bea1b05a007590d3f6f9d5cf5dba0495e5b0ee8ad8";
+  sha512.run = "b43c19a164d9d6eeadd11072f07d29d00763863724a5b5168ef8640b2411fa4c02c4955e769b23a39e06db8d02d168ac7b2a987e1ab8a9dbe4c19063b8f4bbac";
+  sha512.doc = "9f30b52e177fd2fe5bb3ef1f23a16b29a80f049cf33d8ade3dbfb187663e4a8872a18bef0fec1531cabe610839ba21b118623db244b52ab16418a7ad4dfb3d67";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 nicematrix = {
-  revision = 66465;
+  revision = 69275;
   stripPrefix = 0;
-  sha512.run = "a0dfc9243c15cf42af0b74d6a83f48e427d0f0897732857071b62e1f267d534cc5be434ca4f0cebd5fafdc0db4646e0c63fe01ab2f0944a0619f663d5a3f8bc2";
-  sha512.doc = "a2a78ef8fa041da42e049a7f0044e385c6df994655e47d9821331ceaa48e6737770c9745dde9da64a23fc5f70571e0c49b71db2882590155281a7e6d3fb6019a";
-  sha512.source = "8a0a945961d6691733e60255a431fc5e3aebc0c0ddb49f1b2d76c226ab719ced77c48c47ff3c93e3866aa0847beeaf98dce56453f6cee4c3eea087b9902f39d2";
+  sha512.run = "12bfe8ede8cb01f61a5437a3d91cfa225540699d67327ab40df051967f75e7af7ff34aaf6ed63c5067d7318c491581b39c41430f9d40d0f383f85090e2769c31";
+  sha512.doc = "71d57a75b4c5e58a3bf15879c4eed9b24bef9065b73e93d482ffff35160d06fd8d2ca723b0d9f784e572878a21efbbee34ef9277c94e283b7f69826aa5985128";
+  sha512.source = "7515731fd6794b3f154cc2937e8ca147a8f147fa2fcdba1bc15aab56dd436374eb405b6784fdfddd6183ec4264691c26fd0e4266365e96eefadf90893fedd3e8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.16";
+  version = "6.26c";
 };
 nicetext = {
   revision = 38914;
@@ -30835,14 +31531,14 @@ njustthesis = {
   version = "0.0.1";
 };
 njuthesis = {
-  revision = 65546;
+  revision = 69051;
   stripPrefix = 0;
-  sha512.run = "169c4f42c03104b2edcb20abcfff38fa8160c3d5058149c43d9773d52375c0152d3d99271ad49f2aebe995fabe30238407463e76e7b1d399482bb43b600ff0e6";
-  sha512.doc = "c68890f2269c0e353cfec67cf822285b365875dccfac9664877ccde0c084860f6888f3657a7780ae775b564784f55c25e95e1deebd23f29f00df3eb2dc9d438e";
-  sha512.source = "ca35eddab7239b1cc1ec60ee42a497dcdbc68451eab8dfa83965bcd4cfdb223e84f0b47bffd560781e2115a0217c52b9ebfe746f1d3357857dc88f83aefb1d2f";
+  sha512.run = "da5a4d00161d7904d58d745df89dcb1270eab27c291866300fb5a7293db2a078777c9fd234a3972d75d5d6208acda160921a603b45d72f4c235dfa09f2421038";
+  sha512.doc = "12f094efb1a86dc3ced366f3f5a2cc7ef5042ed109e30c3d4130f7de9b514a437029eceae67786e7af1159c0ecee1ea1298efca7a02eb8d9c85253c0acdb43ac";
+  sha512.source = "078e7e50803f934601b30042b871cca6a0bee5d66fcc1275c227aca20cbf5e098bee5ef95b728a2d4b6fc0f7e5a27e0042b385c07d8b4e6f8df71ceec0c67f47";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.2";
+  version = "1.3.2";
 };
 njuvisual = {
   revision = 65261;
@@ -30874,13 +31570,13 @@ nl-interval = {
   version = "1.0";
 };
 nlctdoc = {
-  revision = 64708;
+  revision = 68448;
   stripPrefix = 0;
-  sha512.run = "5bc67c3ce81a7a3dd49d0b54019c261f6ab874cd6aa68d135a4deb935417f724d57b6cec08bab3e2575876d3d74ce661fc5a23da61f2f82ab29bc6653754d514";
-  sha512.doc = "007b51b5d7d2edab1e773265ab41649f0ea22c259b607d53441991a79fd7c066746004dc95a8ef6bb8b2de9b7e5754dbb2fc96cb2a4dfccd213b6fa34e39ddca";
+  sha512.run = "ef7f443bab4a6608b506ff65bd885965c23607aa5a93a721a021e741eb85a757de021eec7b8b247c9b5a41cad3f3f06a90ce44c143bfbe6ab79ec253eba06264";
+  sha512.doc = "e887bbbc705456c084c26b1bd02677a185e7c7ac615b9711821233e6ee3a62de91c4cfdd3bbc353b0775b9fb99dc42e3447d7ef51492f4abf0c519ff1af42af6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.08";
+  version = "1.10";
 };
 nmbib = {
   revision = 37984;
@@ -30922,14 +31618,14 @@ noconflict = {
   version = "1.0";
 };
 nodetree = {
-  revision = 65298;
+  revision = 68244;
   stripPrefix = 0;
-  sha512.run = "27e55a80726d0d2dc3767e59c520ef4dce465605abe8e2ed3062a6eac485e5db30945da9c5c5b3d2199c1df3bfa0faa6f92c8adae91c51b70512f8590b1594be";
-  sha512.doc = "6c4b80986f62d974cc0458679643fe2721d2db439ae0cb94b737546ddd558e2a5ba3746abac697519b326b5df28ab8d5af43fa0db49720feb3d07bfa6daf4878";
-  sha512.source = "311c88f5e5da3f3b0a539a8e2ddefb4b7442ab3f0d560eecd04353098c273bd24ce2852fd3dd232195fd48c3f3e7049ad66e40fe2b4c7c858b7bef1f64e90a1e";
+  sha512.run = "8c451fff46fda636b2b1284d8751e070bc47526d7dc94acceddd49e8eea3f951526c1680f330042e51f61752795b4c8ebaa490cd93a736747e1bc554126bf7f0";
+  sha512.doc = "3e69dd9f6ef63f3ca1ed8c071510a5b6946037d9ed76449fd14c16ce0892ca50031ec594f6bca7423d3669270b4e2821311a53b852f906ecbd22035dbf9c2858";
+  sha512.source = "ded67b13d69785d978a4662fc62cf0c76b63bb931b94ca2407b9b8021857cb1d6609b466ab9f552d11765f7b612386e9fdf0fec02e2a77a5cef459ecc4324b35";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2.1";
+  version = "2.3.0";
 };
 noindentafter = {
   revision = 59195;
@@ -30980,6 +31676,14 @@ nomentbl = {
   license = [ "lppl13c" ];
   version = "0.4";
 };
+non-decimal-units = {
+  revision = 68504;
+  stripPrefix = 0;
+  sha512.run = "5ccc76f7aaca5aefe92e14a686a6847a1df8b00afd04fa96d11dff75951f729920f5564244ed06b74b67e2a81532111fc54adc719a59d6a9d1ac4d6fbeaae9d2";
+  sha512.doc = "e200b68474a0202d8018d943382bd76830f411b95373fd6e43715b343ed0214f08b529b1bec92a4b4fa4c8a1ff8accac8994ca7e342e7edcc5ead511b2769e21";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+};
 nonfloat = {
   revision = 17598;
   stripPrefix = 0;
@@ -31029,14 +31733,23 @@ normalcolor = {
   version = "r11";
 };
 nostarch = {
-  revision = 15878;
+  revision = 67683;
   stripPrefix = 0;
-  sha512.run = "45992ab970abe997f3b01c9dae5e15303db81878b085f45fea4ba07209160ff0307550e9ecca9b67e0d01712831b6541def54382170d43db4dd547f2969f9fb9";
-  sha512.doc = "94efe6a2b41a47b559b4b7c9e04dda1f32d0c6f5da79b51d994fda1af58b4e1cc7e808f9465f7874be6b67231383c38543fb3e98706c32da32d73a4ae07da9fe";
-  sha512.source = "1d46d17f9f43981c89bffdc5e2167342e6168423068b4d02c180fa18fc4243ece749ebab18c5b47be0184e76034378a7ee6ea09aca3c782184f389c6639df38f";
+  sha512.run = "3646dcc196a2b0fc4389d8c7ddbce263126ec88f33749e7b290bdd5ef1800cc8142c35fd87635c7df2b0768c3be03a25bf4e3b84162119c859f278d70bfd4fa4";
+  sha512.doc = "279cacf2c378e30468748f3e92ae30d3085fa93bc38b43e7a2b423d06de056fbb2135f9aa5d243fadf504c60628b1048dbfa4f8c9e60fee2f844247f093bd7b4";
+  sha512.source = "1fde1f24f5d0f009025f1391b360ebb1e4eeda6fc571c6e41bfbd4620b7dfbe739e60b660fc034f3d2f0e1e5a101b1e8c5c8f187e5a3f38c9734f35dd6742bbc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "2.4";
+};
+notebeamer = {
+  revision = 68871;
+  stripPrefix = 0;
+  sha512.run = "87870abd8c42303024df10a6339f6973e83e61fbbffd8851526683ad672810929b1e2f2fb2c9ade58a155b063fa39932122c6e21c652df1a4f7ad60f64c5ab7f";
+  sha512.doc = "d9b9bdeff61fac3e6bea8aea4611cd46cc08362cc104bb30e4a67638ddb9d45c91059606d016be559c4926b0450bbef3962eb75d6d6c1fc14f262ef3acac2510";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.3a";
 };
 notes = {
   revision = 42428;
@@ -31110,22 +31823,22 @@ notoccite = {
   license = [ "publicDomain" ];
 };
 notomath = {
-  revision = 58726;
+  revision = 68014;
   stripPrefix = 0;
-  sha512.run = "87ea63d518f58926be25b144f1a76442873e991207feca20d32d5615c2a52cbc9df9547c081d220603cfe26e4e02f565de60d510d63dcd8179b2249ae2f764a9";
-  sha512.doc = "fcbcf7df38116022d439d6eb3b98e7e8979d934011bff5d7241e2490e83f4ae19168a4aff1cf4aa887c7aee90ecd82980679d21e53fd8780f5aa13c3b2681857";
+  sha512.run = "908ef695e1eeeeee1bbff53956b1d890fc9327cf985602877abc26aa787bbb7a09c18d592c2f5b2d1840aa91e0c1c0b071b8af0d576c5110eba5f62cc1f3184e";
+  sha512.doc = "708eab7029720af202b7af3d45becbdcd8c8fe6def7327b70f3c67bdbbe6c17c53c1e42912f4dedde1f805f7d7009a75e7d8279f7e3a6faf091ca6990cd4f5ca";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "1.02";
+  version = "1.03";
 };
 novel = {
-  revision = 65848;
+  revision = 68807;
   stripPrefix = 0;
-  sha512.run = "1b35a599c2328edcba93e37dbb30e19c3e2211688a5c3525cf7da350113955bc421cb33239679f08cf9ab55a4858fed68ef5ca2731de3cdb1fb4d32adb975ef8";
-  sha512.doc = "5ee87a76cb3de38b44c707799d3d72405b3602a98026e96664eb08bffc30641e45d9802355a91a6fc8a4bd8aa0319597d111efd9968094bdd3718472bbd3be28";
+  sha512.run = "2debc0cd636e6d0fce34f841e46e25fb3fade7e601a43d6ccddacbdb475079e5cb07e83efb47c941cdda243bfa89da2b9215971d9012850c4cf0c780f8b0db6c";
+  sha512.doc = "851436d9fe782e654da5bfc8ed7f55cb63c3dfb2911fd4b0a01e9ef1e6d92044b1c44c471d99046c28e35d68010120c2cbc2101b379a9cc0584e0f18cf7e1644";
   hasRunfiles = true;
   license = [ "lppl13c" "ofl" ];
-  version = "1.80";
+  version = "1.83";
 };
 nowidow = {
   revision = 24066;
@@ -31146,14 +31859,6 @@ nox = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
-npp-for-context = {
-  revision = 51389;
-  stripPrefix = 0;
-  sha512.run = "6d5da8b6e2f2bb6b514d43e8b72157a81285b6c15cbe74891a94f21a09a313813ebcf9e3a0a12847875f13d5599436ada4e5febb694c0a480931dd62a23035c6";
-  sha512.doc = "b3bddb0b9254ef9755628097ccb24ccbe86c25d3cba7a120c5d55da98a19061b716df1590a39323f57a8a698c5aafb5ecbe8b27d6505f2ba4acdf1ccdbcf82cd";
-  license = [ "noinfo" ];
-  version = "0.98";
-};
 nrc = {
   revision = 29027;
   stripPrefix = 0;
@@ -31238,31 +31943,31 @@ numberpt = {
   version = "1.0";
 };
 numerica = {
-  revision = 61283;
+  revision = 68021;
   stripPrefix = 0;
-  sha512.run = "9fec18e27d78b81ced365ebbe20ea49aca99c4aadd7b21cc630cede843ef3c191824556ebdb9988c125603760a68e56b8f9b4d0f37d662178af29e9f8182c0a5";
-  sha512.doc = "76b65febc8b91f2e4c18dc1b93e3eeb33d70caccbab60f3d34b3eb36e253b4d2a1d97213220d40d662c1e53bee2f2845784793214724c65b4dc19af288b9f49c";
+  sha512.run = "56dea9cc66c348affa62820c78bd92b793f6ca18c4581bdec25e4579ebea16bef934e1243fb18f35bb3ac62e1499dcf441099932c05f016f5edc32fe85a564b7";
+  sha512.doc = "321c27897e1d1fd615cd8e1d122cc6c0271e5dbe72c7179ad2dcd0e06c6084bfb1e0a6a244b55cc41bbd8658f5ff9fbcc0962e950564a3fe3fbd7d179f0317f6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.0";
+  version = "3.0.0";
 };
 numerica-plus = {
-  revision = 61289;
+  revision = 68019;
   stripPrefix = 0;
-  sha512.run = "821e5f200b50097f245802fe7fc272a609988e5c8cee98c07ec1bd562d79bea17b8688cb5886febbd596904498aecee5794845deb83ef25a36c60afcbe8026c8";
-  sha512.doc = "f680560ebe7777ccc0e9f04dd209eee90c478c3d5bae3b32f829ab889997c31d9c5f9efe3a57450304aafcebfff09edb02481a596315e7f233b47fe328c6f3c8";
+  sha512.run = "803e50eefdeedbfdf610f4084eb8574246a3f0c56e647a1105df410254fe7d965faadb397690aa8df08e488c5462af2404293f7deae6f8ae5810bb34488f29fb";
+  sha512.doc = "aa8be0b87a737a956c5f69b84a9760ed76de6d0c4a6c27bbdf0a08e9d3cafef977c4a0c22f7d2ec088c278e8333cf85e7d84a8054ce8a7fcacac6cb8a0e2a5e8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.0";
+  version = "3.0.0";
 };
 numerica-tables = {
-  revision = 61288;
+  revision = 68193;
   stripPrefix = 0;
-  sha512.run = "d06b2e85dcba39b2dff338f02ead71149330a711570d4c14ea4c2ca1f6c95d1bd8465967cfdb0e57b0a4b2b8cafff4f56ff585a1b2b2272f225e44958cbd316b";
-  sha512.doc = "9585b95c14bfde30d5de6acf47c0f23328c1b986c075b6842f5a6878eb15761c59843806c649bd548faa90cc46ba93d7ecc021ca699f5eeb8644a3d314e5d737";
+  sha512.run = "1244ae95394a7e28ff9281d1eb4f81de88a7e83e7dc880ad6c185591b2aeb3fb826113f83881811e19385aad5dceecb79d99fcab53f6d313b63b31235228643a";
+  sha512.doc = "f926645cf5f512dc655e46f6fdeb54b5c12050d66e9408690e0980843a291d2056a51915a44f2fbef6564f85344eea46ecbbf1859d79443952e989e6b8ad5e07";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.0";
+  version = "3.1.0";
 };
 numericplots = {
   revision = 31729;
@@ -31318,14 +32023,14 @@ nunito = {
   version = "0.0.1";
 };
 nwafuthesis = {
-  revision = 63438;
+  revision = 66895;
   stripPrefix = 0;
-  sha512.run = "fb446200dd57be37bca4e526506124bcfe3c35c3af452cbe542bf3f5e7c56f3108d5482131641a9bb8b379c4aa713152fdc13ee9f1aedb6a97c545328c0f04a1";
-  sha512.doc = "009615c925755952d8a26a8d51f6d8d066b644a9168e241b339a137e56365bb17452016c8befe3fa3dbdccf6ae68daea3f29b99ae8d8c8e50e8028570620da2f";
-  sha512.source = "d2544ff7f20410b3f84459776d5f5b29c0b0b88e3cd9a1da6f3280f6e536996ca04c15cfb831c859b2c7a95d9bc8c93ca45b4a5fd3967d9c5b4d49969b9e7c06";
+  sha512.run = "f3bbd684f063f59ea0fc53df99ac0e84f3106651d6ce5cd48d58cbcc7cfc205a9330db5d4c7988a213563d6fb215a1c6d90c240396894ded1b7ccef0ea4253c8";
+  sha512.doc = "4a5395c215dd135488bec466dd4fb210402bdca2e54deb727264b02bd621bdf16ea60b4c16c86497b016f30f2dc5c291d0d432bbd99beea84d59533d29c2557d";
+  sha512.source = "d6188d94c3c35c2fc63efbbc37263a3f0c584974de022978671701e8e0d25d26b11e3dc92edb594ffadab231e754745b35498f09d9f95e00a114f09f790d103f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.15";
+  version = "1.25";
 };
 nwejm = {
   revision = 64462;
@@ -31338,7 +32043,7 @@ nwejm = {
   version = "1.0.5";
 };
 oberdiek = {
-  revision = 65521;
+  revision = 69038;
   stripPrefix = 0;
   deps = [
     "auxhook"
@@ -31349,9 +32054,9 @@ oberdiek = {
     "kvoptions"
     "pdftexcmds"
   ];
-  sha512.run = "a07473833a8eb833fa1b149ae6f913219c48ad9ecf9671196774d9b0ea7ac06ef110e3ca18a2a53d7a875ca803aff6e07cf435ef1e6d2020a353df97c0cb7046";
-  sha512.doc = "73a422dd8009d191a24790f5f68b9ae2a5046f3e42e3c360faabb3f7c7581afdf9bf2b20da8609e8d3513135ee1de98329cd4fb1713fce23c5a03fac28c976b9";
-  sha512.source = "ef0eeceef6d0f4d1cc804350fae483d464678397e9832e3bb17214dcff3f789bd930af2e9784bac89a53a39a107a76f88682a93a6323f4dfc18fdcbd1df98f8e";
+  sha512.run = "d8c75685ac77c9b8f3259952cead1d5d46dc7bc556044daeecccbe1229da7566c0a31dda776356a6bddd0b710b8e8e3e84612c3ea9e9691bb486e154d9e121be";
+  sha512.doc = "728d95ced0404da11e4dffbde075eb02803a09d5c89fc34b6ffe78e47c78837c105a85827adaf8974d2edc84ddf1e7eb0ff20846a2712d152011b2198bcbf18d";
+  sha512.source = "726481c21c3bda68ab4050c8dca78cfef2a9e7fdd6f8ee21540fc1dcd629383e21db06588cfd836915a58e4c8da7fa7762f4e65bb01da8d0ba94e874c1d04742";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -31435,10 +32140,10 @@ ocr-latex = {
   license = [ "gpl1Only" ];
 };
 octave = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "bd2876b39a108a398c0b449f4cfe67e52709a4c51be6e9506244e82323735274a748d5e40e6c6f109143e64b0b260d1a2eed350d5ad6db0d09e9d53a307fe285";
-  sha512.doc = "9ba7181b2c8d21f6c478600f702de184ae0fdb7f624fd6501f57fcded9164ee57ab1fb653ee533bae55e552e0a56ff232e1606372cddf26f8f904b7d9e9fd190";
+  sha512.run = "03db52eae29898d00b407af64fbc8aca35cd5c6165c3f7c890dce1f8218df65c3df447801d8c68d29af67f62de3057feff203de7486f192d9e7e6a59d4f28e02";
+  sha512.doc = "13cf74923401dfd58978c2365e27aa394aecf01849543cb6f65a52b3344902c546599c350927950f63e3faf1b81667e9329b9c18aca6cbb87327046f0d695988";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -31453,13 +32158,13 @@ octavo = {
   version = "1.2";
 };
 odsfile = {
-  revision = 65268;
+  revision = 68204;
   stripPrefix = 0;
-  sha512.run = "a7c6acb170dc5ad3e592972685f20c425de4a3751749722c72c90b93a7db47321e0b55a0136f27954c43449c2d9bc55077bcc87f92a8c423b6f1592bbcf7e027";
-  sha512.doc = "660ee30c7f9a0987e39e6a02dd1be48af9c90853b99b4f50b5beb262b3995c5ea1c37da90ee61252a62b9292e6f42cf92a74b8d02ee594b500b70dcd5bb164aa";
+  sha512.run = "0c663510fd84f116cb2cf12c41a59faec219b774fddec215ade16b9299db1e445e46deb565c4b0acad18ad2b0ac3c5f54c9b8d7b2ea3fa3bfd43cf86716969dc";
+  sha512.doc = "e76be0163772f0bb905cfc4987dd2d1083decc706e521647217b7ecb09214c29bb1118867bbe8d20bd2aabb1648bbfb3ac12ba072c38ab7242d3b1a86df5f6ba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.7";
+  version = "0.8";
 };
 ofs = {
   revision = 16991;
@@ -31505,13 +32210,13 @@ oldlatin = {
   version = "1.00";
 };
 oldstandard = {
-  revision = 64464;
+  revision = 69185;
   stripPrefix = 0;
-  sha512.run = "0ebe36c3284f888448a07bc3cdb14717e73ab41e808b9ef6451065fa0c7fc6827746362a6a5453265d4b5a1108fe27d95d41cc51e20eae4bd625087b14dbac41";
-  sha512.doc = "b685cc4cd397ec413b5ce8aaed4f0a9aa1b1f213a1d57747233a8914fd868fd1d7fa50a199379430ec214106b5ab35bc1c86ef9d53d4628e2810a412c98d99f0";
+  sha512.run = "4c82d222ba84192cd6ed43e368938f31c0d481400f7c643defed74c5c39d38400515a69d4a6c76ad14d41cf64ed263e14e78ed7431f53d8c64fd9dc1c20e7bf6";
+  sha512.doc = "c2e55b9f48d145e4a7f7e976ea9cf46d1d7563bf56624aa5fdb1fb78f54f8386dc4eb7520d981be239e77823f96336e8a753bb623d286a3eed24308c6f59e5d8";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" "gpl1Only" ];
-  version = "2.6";
+  version = "2.7a";
 };
 oldstyle = {
   revision = 15878;
@@ -31541,9 +32246,9 @@ omega = {
   license = [ "gpl1Only" ];
 };
 omegaware = {
-  revision = 62517;
-  sha512.run = "08c491924b039476930473310611a6d2c0b5af7d0f2253a28558081cca254e6aa080727dc90456b4a011732353ca027569d7b8d8ab3ecdfb011ccc9f80e9ba68";
-  sha512.doc = "6d8331109f114612d637234164e9d3d8ade9e23bba200c1ef8bbd585ff4c3e9d7f58df3ddd021990ab26a5024001fd94f7fdb3e1e329e4f91dac069fc1f6ba32";
+  revision = 66186;
+  sha512.run = "9978e66b66e988d49f3dea44b947585e5ec4fd61f204ee06a56a9d32df721c1bd66ab32a05c3d36ca92e740aaec2b478261f3eaf8c48c0cb30fbf9bbb410d804";
+  sha512.doc = "e3312826fc6f2bb7fb8f116f7d73f4f113e2b4fda8acdce29668ffc324bdc90f26dfe21becccea36e53f22707067c19116fa2942fb4165aed3d7c28da88992ce";
   hasManpages = true;
   license = [ "gpl1Only" ];
 };
@@ -31563,14 +32268,14 @@ omegaware.binfiles = [
   "wovf2ovp"
 ];
 onedown = {
-  revision = 59010;
+  revision = 69067;
   stripPrefix = 0;
-  sha512.run = "67110331d1df4b6f454ab23e6af1fa9904689e9a90f3a62652fd81db9fc990aeb527fdf7d4c5bb04064ddc93181f45334a06214c8acf9930497994e2ad0e8002";
-  sha512.doc = "06f00f302cb363411756ba0dd17d9a431aa4736bca2c61b2237b466e12a4fe8bd8cf9494ad5626766ca2112ce629aa8fb8409fc19c2ff3f83e4aee088390031c";
-  sha512.source = "d7b3eb5dd5192af22735acf5af450ad0d714dddd434d66bff3a40151953ae1098cf8c27dc620f167bed2c3fbba13f86f62724312161bc321b71fb4f14d605fc1";
+  sha512.run = "bc62aac04466286d07ffaf65b31c4d7ecdc6f4194f99192700774a213ca52861b0296c3f9864c187a83926696ad3a3a139ae7c00be2167b970159a7605fb4570";
+  sha512.doc = "4fedacde595f96c2bd8babf38d4aae73b3bd9f73572547ed5b93e98c16dec50e89651c42aa4d90046464c765aa2f4d5f32d8aeb6ec5de2bb30f6599e53314e81";
+  sha512.source = "aaa8de7cb8444749e1e7671406229d222c36b35f2bb676208c22ce8708a4e1cdc791ae99abad9b55fd877cf97573006c41c5aa2fabc573df589d059924f64626";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.6";
+  version = "1.7";
 };
 onlyamsmath = {
   revision = 42927;
@@ -31591,6 +32296,15 @@ onrannual = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+opbible = {
+  revision = 68465;
+  stripPrefix = 0;
+  sha512.run = "8a4fe7d1241a1f1f431a666f0d6fecaf330cccfe19c2047d2e244b06838310dd106d2ff8dcd029301cbdbb0f2627e46a4f4c37b9a81104eb695d62f78d835ccd";
+  sha512.doc = "691b79162654071d39ebfa448203bec2c7dfec8091e781f44d7a48d4c16b884459bbdc4230626999349c6822b17ac5f6f4aba1a8dbd6c7e2a1d6127132faa2e9";
+  hasRunfiles = true;
+  license = [ "gpl1Only" ];
+  version = "0.31";
+};
 opcit = {
   revision = 15878;
   stripPrefix = 0;
@@ -31602,10 +32316,10 @@ opcit = {
   version = "1.1";
 };
 opencolor = {
-  revision = 66372;
+  revision = 66363;
   stripPrefix = 0;
-  sha512.run = "dd2765b31c111fb3c254e372c2ec59b65ea578859ae9b51a0da2c69950436d170173c66ba7bd2c51ae00c4b6afdba8fc35f48639485610bd358bea30d5efd4f4";
-  sha512.doc = "fc563574c13ba82dc3e39d137da510037b568b755d67b7046121e342c47d90e4519301dcbe6e8e52e6188854cac432e54d3bd4adf04ce6f3c2ee142bd1dc073a";
+  sha512.run = "b6b9368a3167db0f71fdd4cf9c369f43be2934060b79bbb2b477d8a247456a7f69932bb92bf8bb8c1e1b5e7721383079947fc40e1a5d7bc6f84a2e3fe9e02646";
+  sha512.doc = "ff198447e40d71f447688b5fb28385d9fe34265e520496f7d77acf7947569dbd6cc7a98802bb353648dc50979c4be889cef1417f2d15f98bc3ebf95e4a843963";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.0.1";
@@ -31638,7 +32352,7 @@ opteng = {
   version = "1.0";
 };
 optex = {
-  revision = 66516;
+  revision = 68873;
   deps = [
     "amsfonts"
     "cm"
@@ -31659,12 +32373,12 @@ optex = {
       fmttriggers = [ "amsfonts" "cm" "ec" "hyphen-base" "lm" "rsfs" "unicode-data" ];
     }
   ];
-  sha512.run = "6bf9c1fa24209cc10b624d630010c18225a7034e9f146f557b5ae7e522260094767a4e81c1b8b4d9b01a3acf560a4fd8991796b386e01483e6908b7357efaa6f";
-  sha512.doc = "31dc2e58e6aa17460f2cd26001fd94e0e11b0b9522a3d0c182ca9048909c0262d97f6fc25baa74af6ff82bda8798d9df49374bfba1787852186c5c7b8d2a3a68";
+  sha512.run = "65cc4c05b41cf41a1346bf567f4c14183f11d5a6c14ed6ff79e301ae54523eb8a90eea8f94173b9817ac45c14d5e0f5748be252db6a247a5627b129949f4604e";
+  sha512.doc = "38d20d669bf1d8ce18f50e1824550e5333ead4cf8773aa074e31fa331878cbb7bfed1cf7dcd29e598698dd5fc9855197cf5e2b970b2549c2b79c6d78eeebefe0";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "1.11";
+  version = "1.13";
 };
 optex.binfiles = [
   "optex"
@@ -31709,14 +32423,14 @@ options = {
   version = "1.0";
 };
 orcidlink = {
-  revision = 59560;
+  revision = 69253;
   stripPrefix = 0;
-  sha512.run = "ba51e034e90800c402b559fd636acc38a96f0913c552e506e26457d5c690299c7860bf9a1fc911eb2d4e734c90f775e814b8bac52a492ad7743a47f3e89efc5f";
-  sha512.doc = "c20f8e77d3c5866f414f0dcc47d84fa3328492a003a81be1ac3aa69f9ebc2bfff7198be5656192ba7bc4330ca7b773c6d319ec389bd0ad9821ebd6159b7d0b97";
-  sha512.source = "485492dfc8256d97fd747196bb142eb178283eee98aed5edea689543075fe0992e9c25fa522c9fadd48c9b631ffb31c8600c82be598678b03e78c4e5643b8cb2";
+  sha512.run = "fc1b4a63ce470c910737593ac877b58dec0e77de2a258fe7943b156a31c5f224389f5be5cecfc9d3098cac690a627cea41993d7c47b4510762b3e5c04f63db2a";
+  sha512.doc = "ddbea7f5c36f26e329c8e58c4d8ab3ba6aa2371a564505bf1a1a80a2f89dacfaeba706ac99940da6a742df262a25acce0f7b812817cc4db99793ad11e06cf6cc";
+  sha512.source = "93e268f12d314647f19ab92910eddcc68811e4db66a6c57bae504525469e24e3e30752cdfadb44d36ea866719765c76d89ac8011e0e50f4ce6f930c476c2e4c8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.4";
+  version = "1.0.5";
 };
 ordinalpt = {
   revision = 15878;
@@ -31754,6 +32468,16 @@ oscola = {
   license = [ "lppl13c" ];
   version = "1.7";
 };
+oststud = {
+  revision = 67217;
+  stripPrefix = 0;
+  sha512.run = "9ffd86c1fddc4667f6d02a9ad91ce0a3e562147dbb8453c474ad5595a77df8ae77a4defca5f6fdec2ea837e37ab23128be1b00d4ec15f20cb0bbc2e591fdf0e6";
+  sha512.doc = "700021abdba0ba3484a0f11600564ffd372bd998f889da1cfa26ff505395844b958468675eae6465af4010e417a56df45c2226d6543d1bb6f2331099e08d9ac6";
+  sha512.source = "5a35d201ffaa677d464e0dd8f2f5a474099505d341ead2e00970be39523199a2e3ddec73da19e7ec329a53cdedad495640dd1385fd6e5d005dca9a5027ee8f90";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+  version = "0.4";
+};
 oswald = {
   revision = 60784;
   stripPrefix = 0;
@@ -31763,10 +32487,10 @@ oswald = {
   license = [ "ofl" "lppl13c" ];
 };
 ot-tableau = {
-  revision = 59318;
+  revision = 67813;
   stripPrefix = 0;
-  sha512.run = "0a9c219d69f6eec4d9fbf8937e0cdde60b34cf38ce154332147ccc172b0ce90932ee08c7a85a68d4e5163461352745a5c0abdc6b8bdc187be5fce5b121f45c75";
-  sha512.doc = "8345d881600cf9f4d73cd2a23d12ff32f11a4d3a66b61262b0eae7dd3bc9039e20b187a6a9e45e9b15729015fb76b0e4e3e76c011e47688df09f4a848e508c4c";
+  sha512.run = "57ee595a08f2a30174215056300ed4f8ca496976ef7d0f80627b32d45bff7af85e8a33d8d37decd61883ab3cc61f74ce411687c260d2a427c96014d3defe9758";
+  sha512.doc = "45bcff2db460c23e543434ec46b8a168498ccf1fc1ac977f72f3022ac7ec02a874eda98a3bb6814edd22d86915b354fac5105efd1bcdb8eb979837edcada699b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -31821,13 +32545,13 @@ outerhbox = {
   version = "1.2";
 };
 outilsgeomtikz = {
-  revision = 66465;
+  revision = 69124;
   stripPrefix = 0;
-  sha512.run = "b85975fa408dbb46dc8117fb21ab7362b2015f528a01a98a70297eb84420b717811f49f58270a6bc1fb87e744c30350332b3e1cd3284296addb0de8c3884b001";
-  sha512.doc = "39b97b238d339513a2644b2d2720d67cec5ae017b5020a9fcce50e4289fcbb7c4144a8a2d8509869e67869ee2fa3da89ad4927a576d110cfc4e71c14236278cc";
+  sha512.run = "ff64c7a149bd0d890896936c1f5c818cc6f9c34a50b6f0312134dd47819b45df36a769ddd5b4db903c441217062bbbd44da086fd0bfd863ba8bbbbf6f96a764b";
+  sha512.doc = "0cebb1b166aa5b6628eb9aa88788beec5da60d7b25b9d110465ed25b130bbba2636209e151a9633171bc016e0953b5f27780ffa02ca4bb2f0dadc902e998141e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.1";
+  version = "0.1.5";
 };
 outline = {
   revision = 18360;
@@ -31893,14 +32617,14 @@ overlock = {
   license = [ "ofl" ];
 };
 overpic = {
-  revision = 53889;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "f6946c04fb1bd17f8708698671c17037688198996cbfac9b358169d1cfbaed9835b1b05b7779f3b4545c3b7de1d0ccd5148757b3cf125983ab0cdb8d895c5e69";
-  sha512.doc = "39a93d00bc5646095c1e104927655e61a6fc337ceca8c336cfd40c39a63c02b18a440ca4c9557537d3ddb991e0ba4aac9f9ea821c7cce3f447359fd9f0203dd3";
-  sha512.source = "9cc367d8b54a2c01d694602cfb8b0d0ff9e9d2117fd1e20a34ac80b9a1007f44b670eb17a55af7b073385ab4ec9511e76cca508ec108e22ec6f5891c0d32477e";
+  sha512.run = "6663af049c657a947c3894157eb21c38f8f240250894ee1c8e34e3ae7cfaec294670dcb053d36fbb7749c383b8e9645d25f583670401c7cacc232eb64996dcd1";
+  sha512.doc = "005e2aabb66cb7904544463274add08f9680a38cb608c9d8976e4c8cae114658278d2fb3dae55af989c21825dc9d71b4a28202eb68566ab462d1a4bda76ad54c";
+  sha512.source = "3d0e1d66a6ae6835eaa1e5342a448895d6cc6ca5b0f9a300113b2c43d276ec9e1785c41700895f4fcfa19d4fd3098e476dbdd320eccab3c2facc855a85f63870";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "2.1";
 };
 pacioli = {
   revision = 24947;
@@ -31931,14 +32655,14 @@ padcount = {
   version = "1.0";
 };
 pagecolor = {
-  revision = 65843;
+  revision = 66885;
   stripPrefix = 0;
-  sha512.run = "126ed61dfaed5f680d4055c6a19c4a1842f7b5d49e09e280f2dfa36886211881ea1b94197f20268aea6f0d4a3237366eb8b6eaf22e46934b59c4462ffbccc264";
-  sha512.doc = "963f381fb9968d613c5a1ef805342111c423dfbbb7700761085eada847aa526170342c7751e5f20d5784fdb4361b1e4631f875843dd7559fa435372a74987bf2";
-  sha512.source = "f693f0b418ecc9a7bd70e33f5ec497d4cf91cb5baa1f6aed92e11b94bd05185bad6c5362d1c3fb227aa7f533e7c69db082eab9ed7f59d49115e56400f11cf97f";
+  sha512.run = "7cd71dac6790eaf48afb107310961bbe37f04199b70316009f6e62c064c23f0bc7e4601765fdc03c98b1a39c35f9f53a7b83023e5f29ec0a273d7130b13802e2";
+  sha512.doc = "ff3cad39418f1a6a1b4e31788d79eb83d33cf7d04fcc8f5ad4703b60db1a581ab2de158f0b4d24d42c13fd2ddd6c85ad4eb3f9f4db09927ee2c97eb7d4e4a063";
+  sha512.source = "4fa8f8d617bf8cb1d8a2399ddc88ee37778f1a7de904385351fdad3c4267c1d27e8b6157a206ee0b434991da0a508c42afd71fcc4cea81477e44849c15f81384";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2b";
+  version = "1.2c";
 };
 pagecont = {
   revision = 15878;
@@ -31961,13 +32685,13 @@ pagegrid = {
   version = "1.6";
 };
 pagelayout = {
-  revision = 66399;
-  sha512.run = "062652a39fb6aed7efcc700f4a47a94d2d7307be4c79a700ddbd7a40247eb3dfb0373611469a6e624f8d24e355dca539ad822d7b41d81cad6475ceaba06ab2c1";
-  sha512.doc = "4f2d2790ea9ac43457b07b510eb95d91c5f17b36cf65953ae4de4fd0f483fdf7dcfe9f76c4e186ba3d55fe48c396d220a5a6e05b3306444dc16ed0339ce70abe";
+  revision = 69188;
+  sha512.run = "0eeb34fae976625ba534e1f1a5165d56cc04a91827d8951e1c8cd125703bc35b455033522fabf2d62d024e4ff8242cf6301a513898907aa54f05ce43a684cd35";
+  sha512.doc = "efb086ad732d35c6415c4bba8770c658fd5486573c42f310c56d3de667f9bc3527297a348fdfac2593965ef6ba5e65f56f6e2c19b8163edd68d9ffb5f40a17e8";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.4";
+  version = "1.0.5";
 };
 pagelayout.binfiles = [
   "pagelayoutapi"
@@ -32039,15 +32763,24 @@ palette = {
   version = "1.1.0";
 };
 pangram = {
-  revision = 66305;
+  revision = 66300;
   stripPrefix = 0;
-  sha512.run = "6416585df4c53b96d43098c5cd1b7652ebd671f0e23bdd0a3a35f4adabc74fdceb5612c9268072bcd825eb612d9b6e9d160b9fc20f66c56733b273ed72297fc7";
-  sha512.doc = "2f9e562cfd2acfc429216e481af0527665d244d011a548ded1c92d08d20fa8c42fa62020dccf67c5af3b3dc1f6ca79b5f856d5ee13afcc19935096dc0dec4d18";
-  sha512.source = "f4612d1f8f58dd8cff8143ce59f4976038d075b771860ea8b11210933862413f2f48977c02ca89f56e168ff64448cf414a0442fdd9c10a4507059eb2d8b94022";
+  sha512.run = "1a74fb3bb7d1a4c9dfdb594bcbfef7b716affa55bbc7010fed6937708f9ca0d9f644c2d56a557737b56c1b8386de90a4b4df699aa50631c1e94f1e4e3c9d3465";
+  sha512.doc = "eb031dfabc359fecf7316cfac1d799f8377b38d2e86922a52e2409214f9dc251d1ec5c5ea439ce2830ed21ac9a02925f442e0930f845b849b7ef662c30a70955";
+  sha512.source = "8d5a945567245da7bdf69db5cdaa72d693054828d948700210e8a71c3f1178e7c690c7fb912275cbb1b3700f812482aaac896875ebbfcc33d3b9531f37b6cf89";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.0c";
 };
+panneauxroute = {
+  revision = 67951;
+  stripPrefix = 0;
+  sha512.run = "d904edbcc40640e89e3399a5e00310174bc9317a1ac87da86ad15dfb2ec24757b21cc9ec1d9e562547b6637bc63fb1d58bc5373d4b84f4b53c0194c001a2ae59";
+  sha512.doc = "b0fc8b96588dbe692eebec332da0cd3fbea74090b566a9afddad30b6028d3592e95f729d7d8f6f198c14e2cbe63e821715ddd2678bd4a58865c5a159d8d8ce4b";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-sa-30" ];
+  version = "0.1.0";
+};
 paper = {
   revision = 34521;
   stripPrefix = 0;
@@ -32068,14 +32801,14 @@ papercdcase = {
   license = [ "lppl13c" ];
 };
 papermas = {
-  revision = 23667;
+  revision = 66835;
   stripPrefix = 0;
-  sha512.run = "b5ef2975638a8eb48e7aa9fee72024eaf5695ee3133a35a4326461de03e04b750ac90e0874de232176435e0855807aaa074e6555f3368fee55fcaf61e6abb552";
-  sha512.doc = "2d0a43fd05efe6c96a7852f35c560b77b9461e005432f972a9896184831fb81f72946956f3aefd115ca0f5fbbf684ab615d50a7ab98a5e09a190b72a08e56793";
-  sha512.source = "2db3f6acb382f73ac6d220a4ec378026673ab16d54cb02a93926d30eeb8d5377d5329869cdfb3563915bb93253d64a3741a3498e197958e93929e8651f33cb02";
+  sha512.run = "a9c2fed35bcabf0e3feb98fede1f66f0c60dbe6a40b50c3818cf88821712ae4ef789fb5a080113f31cca4851767e4b607c623454f06a8dfbe1542bc3897dd7ea";
+  sha512.doc = "2837d42a830f3a4517b7a0bddd9271264643198be3b1d805e471a62c9c87df81944a088b448829c26e05868cbb5f6a12480a6faa9a8c5d3f56e0c52c38c8cb75";
+  sha512.source = "b64f9a1940169e858a51f94eb03ab1843398deeee001fd63bc97ca0a24d385d8f8d6b65a4195fcfe52fe76493c78506a7e68c1e32be1d669b16087a741122ee4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0h";
+  version = "1.1a";
 };
 papertex = {
   revision = 19230;
@@ -32087,6 +32820,15 @@ papertex = {
   license = [ "lppl13c" ];
   version = "1.2b";
 };
+papiergurvan = {
+  revision = 68239;
+  stripPrefix = 0;
+  sha512.run = "0f79f739273caf08126817ac44fa0c02bef9fc2e2bdad32eee12d1e377bca14618b426bc71f4f9cf734a5e63c319ac019de2c7959d25a0e31f594aedf1ec6d98";
+  sha512.doc = "c9b4f46772ca50c8ca89d7d3d35719d8b2a7dd7ffc9d09a39569500047640404d1d3937ebbd4b3380a4e13cf56fc2f722d444f71afe464df332a69dfcc6049e0";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.0";
+};
 paracol = {
   revision = 49560;
   stripPrefix = 0;
@@ -32125,10 +32867,10 @@ parallel = {
   license = [ "lppl13c" ];
 };
 paratype = {
-  revision = 32859;
+  revision = 68624;
   stripPrefix = 0;
-  sha512.run = "f7c3089b516e40d9d5534a1d25ba104623f37c3d2b77b6545b07034114644025873c0317f4a0bd5b54c6471853f5e4c7847176b42a6bdae29a6efea555fd7ae7";
-  sha512.doc = "5d11fcd66eb57909bdc56416f53c060cd248731cea02bbeee232d10cbcd2e10753a66ad7347212337b6b110e94a82970f98b1486ce21a6ce61fffa50135a6b6f";
+  sha512.run = "b6f50e5c3063357e04e94a9454cc34b17e522c54effe14696d3d81e6de1f4732953b608c0c0d13965dde5c9c95e125d967afc888ecc9396001c1deb89e9b70ef";
+  sha512.doc = "ba91b90030c703dc35a77b9a51a23d90e5cd6f0a6490f74e151023248b05a6a0ea5bcf188e3c8e69611b9b7d5f72b4569538a9da02193ca737e94e744c83c107";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -32179,6 +32921,24 @@ parselines = {
   license = [ "lppl13c" ];
   version = "1.4";
 };
+parsimatn = {
+  revision = 69090;
+  stripPrefix = 0;
+  sha512.run = "73bb90c41be56b880b11114110a69cc206640ad97a2193a9557447ca8c901bba3485a971e31b6888b671b938a24d8bc880b532b5638a4a726fbe7978b1417bc7";
+  sha512.doc = "c2e6b53ae9e2c8c949ea843654eb9d1545907a539af43f0b6f1728d78f7b0fed3ed1f92b8650aef85c0cb34e9cc91ab9ab8e1e7e4c406f9a9bf0f02ade10c243";
+  hasRunfiles = true;
+  license = [ "ofl" ];
+  version = "2.1a";
+};
+parsinevis = {
+  revision = 68395;
+  stripPrefix = 0;
+  sha512.run = "bb783a5c4d45e32cf5298d5407b3fcc98d64cb0f5c66a5f45a564acd3fc90faa6006d5d649597fb293aff746cef1be3d1304a7ec223e1fa604f7eed4fd705746";
+  sha512.doc = "4509dd23bf7baeee99ced80e0b1d225dc2d616c992f44e5ed5fca7a75bd71dbb97081ca04b96477d26897f6481c929f469bc2483fb0483485406a90962ffd6a4";
+  hasRunfiles = true;
+  license = [ "ofl" ];
+  version = "2.1";
+};
 parskip = {
   revision = 58358;
   stripPrefix = 0;
@@ -32217,13 +32977,13 @@ pas-cv = {
   version = "2.01";
 };
 pas-tableur = {
-  revision = 39542;
+  revision = 66860;
   stripPrefix = 0;
-  sha512.run = "61fc474406d55ce0fa4b2edfb41f4ac9b2585e448c2b2b76452a29f2a03eec9ea1658cca2fec4fd0f1b8576919698a6d3ceeed650b773783af47685f33c969fa";
-  sha512.doc = "a498726006eb5b3c7352a776c47e215fedfa7005d529fbdf071946ec736818e6836591670c7342e84d2886718d2faeb44824256f2aca744bf97d157e00f71174";
+  sha512.run = "3457ffc6633ecd2eddccd0070a1ea5458d5126c1a42684991229c7eb8ec7e64db31fd809623b930cf4bb39c928cea2bd6ee2eb5ade840ba9ad36cc28b8d307b7";
+  sha512.doc = "495b121c5860a96603a060e925173a7d197d0d22e13ab26857de5f7453f061847620b44b95c6494dc8e1f8108e58d987cec5728507cda2b61e40173c1b6d6a95";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.01";
+  version = "2.05";
 };
 pascaltriangle = {
   revision = 61774;
@@ -32259,12 +33019,12 @@ patchcmd = {
   version = "1.05";
 };
 patgen = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "e4b04bdc28d75de619307567716d2c29b41286a82cdafd6eca45df36baf67588cee94c4c320abadee4e3103fac8b33ba9367114875e56f198665388fc93e341d";
-  sha512.doc = "dcf16fddb0085e8a8984047ff9e500c8b7fdd7d6b24b4f6154f464e05fe137b807c13d910881fda96e617cf80780ed1e75ccfe0fda2477b1d9b95990baf5f279";
+  sha512.run = "f37ecebfd74a30b2f4fcba5db893b31e7672f2d91d2be7f003bf625512dd54be056a23165ba8b1f5ed2165595405220df20dbd711e63a3be9901424aaf1fb0de";
+  sha512.doc = "c7bf5af0965cb675a82ee13c6ec467f88395438d07d59379f4850a36c783cfd6661d6fa6493e67bf39e78be615e3148cda9452003b5e9f5d5ceb1fbd305d4ee6";
   hasManpages = true;
   license = [ "publicDomain" ];
   version = "2.4";
@@ -32333,28 +33093,28 @@ pb-diagram = {
   version = "5.0";
 };
 pbalance = {
-  revision = 64002;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "15d9a54d38158e1c3b48dc9d420b081efd011fc282775e68e83f758be4c3d1c40efdcca57f4ab29a9d206b09457afec0ca7bb0580e4bd337e0814a04d814b423";
-  sha512.doc = "1e0f25b42dc5928269cbb2aa56ebb7b1bf4cc58ffac0c36db6bc8ada8c7cd09641a95b4daf5f248a9156cb3d95d3c3ef48a5410f1eef6437ce4878e0113c6aac";
-  sha512.source = "6489e6563c2f1265b841027b38720ccf55d2a9acd601e03a1173c2c6fe8de57bf1c7778239472d7265529a7c51bfe3f21c5dfd19f863b9b80ace3f6b68d211a1";
+  sha512.run = "3b9579669a9bf79892e433eb5ad7203254fa99615398e9ec58d1438d4b57fb94a5fc0dd14867b6ac18a874af3c4faa1d072a9009086b125a18ed21de144fd40c";
+  sha512.doc = "d02220c268923d141faa2a4249d50c8fc9f119e1703475f1ba979903a79df79b6ce48b70e113c0193a9b953f935446486e7d926ff52ac1eaf5f2c193638f9a87";
+  sha512.source = "141d99a8fcb9ba830c6df2b74fdb00dc8aa22781c6da19785c9b6b04ad7717b8f8e04315d5f9ec7ba2939f469d6728fa845c1ba9e6da1bf3cc0a8aeac0291fa8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.4.0";
 };
 pbibtex-base = {
-  revision = 61914;
+  revision = 66085;
   stripPrefix = 0;
-  sha512.run = "dcef21019daca2ec8a2a649f58f3e648cc580c6d46fdb1c7a315fd66fe6e9075dfac8d12dfe901be0487272419cb10257007b8e34a0a6d11d93f6b5f67b5f988";
-  sha512.doc = "897d18ba8ed56a44541dab0d07c0f1fff059e08ae02165b1205e439bb3b0b61484a2008a8a463690f9fbc628fbd462d271643957715a32a712e35cb9dda3bfd4";
+  sha512.run = "6be03a9f18741e16104d620effc7c0669e12ccde1aaa7d4332ada2fee95ceb1a6b30db4df41386995367b565b437174c0d4cae6e330c8181ee47095fb9bd5a5d";
+  sha512.doc = "69a7e564464d8b1c31474ca37b5e9fadeb4c2d4f4d25dad5f884317b226c6b7f8f467cd1809e1330cb64fe2006f1ab397cf4f163e469a14fb8de5b778dc70c08";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
 pbibtex-manual = {
-  revision = 62913;
+  revision = 66181;
   stripPrefix = 0;
-  sha512.run = "afee2e70ddbf92910e08425ac6caec1ed8ed55ed8e1e4d183bdf15072de18516193c97af05af316b567ddc81aa78fdc1e8d1e376adf6913edd961205e05b7330";
-  sha512.doc = "318cfa9e0540149de336e021b2ea928bd68b1ef633f58a5dacd85cc51e62f835c46b27160ed2cb444f68b82c3e859eb464064213013ed57e43fdf3f6e2863ecb";
+  sha512.run = "ca4690e0ce37561dcb877d17310f498b5b528cf6892beb075b4ed87f1a4432957c2ac56ad29f66da1452794c587f2d9343fdf7715c670ac7c3f7880f620f698e";
+  sha512.doc = "152ac93c6e1bf07d90434581a8891f293527d4ff93f7d439e7e15c99d53b0cf43872c9f8a6935fe314614b9c3fe3cbe7bb3dfdbba486dc7248fffc60742f37a0";
   license = [ "bsd3" ];
 };
 pbox = {
@@ -32396,6 +33156,15 @@ pdf14 = {
   license = [ "lppl13c" ];
   version = "0.1";
 };
+pdfannotations = {
+  revision = 68958;
+  stripPrefix = 0;
+  sha512.run = "22bf69647c957f3235fe1be6d90cb75e66188722e3308f80724dcccd9766a470fad09d0b6510fdf7d7e012d595726b5053ca727ca813a2771cd601f8761c97e6";
+  sha512.doc = "900b6383a998afb3593c6e588220341f73d3a03ea81e3bd4f71369b889ebf722dc921da4607342f7e35fa22e62b6f11a22af1c3e8d64acfad9ebc13ff1c5e66d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "3.1";
+};
 pdfarticle = {
   revision = 51127;
   stripPrefix = 0;
@@ -32466,12 +33235,12 @@ pdfcprot = {
   version = "1.7a";
 };
 pdfcrop = {
-  revision = 55435;
-  sha512.run = "ba611ee2a516fb031a7f3c93f563b2aaa2e50d4ef95433a5d83ee46191c2a6001fdd4ef25f33166c0e3f9791e85c200e452684974d54d34e8d651a7254f6652c";
-  sha512.doc = "786fe00793f62e09f225ca0decdd53ad3b2ce03a133a2ae4ba20db9d40352863dc6a8728e005aecfcaec06072e8a0ef454d1f7fbe90bfc5997cfc65c6ab97170";
+  revision = 66862;
+  sha512.run = "d2f33ad228c2cadc78cc8f16bae747ff1aaf98094a5dbf16462bdac0957f14aa32636b3ee0e16603e7e3caacfbd0d76526502911cacab29dc0a3d85c46a36e44";
+  sha512.doc = "0e3eb0d735d146c98bd9a34170afdfe73fc987b4d4a7102fa220e4d6e7bbdc185cd0d3bc219ffb7fa14c6fc1a971225ed24335e4ec9fd2ab9d3923dfb2f15137";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.40";
+  version = "1.42";
 };
 pdfcrop.binfiles = [
   "pdfcrop"
@@ -32497,13 +33266,13 @@ pdfextra = {
   version = "0.3";
 };
 pdfjam = {
-  revision = 56991;
-  sha512.run = "1b1084859a811861e60e27186d67d267d3740152331f50fdbe67ce7226a76b4db24d79b674e6511d2f3de9a711da3369c565d781614f5d0c1a8021bc1ac18827";
-  sha512.doc = "a29c09a2e843188135265aaec690e09cd08fe29076a0378b308ec0e48aa7936ba0edfa7d6ad3ac808ec334bb5c2793a32d8ef625f4ad9b3fea40d4db567cae56";
+  revision = 68597;
+  sha512.run = "ce5f86bc1091795bd749d79b348d5f2e5e9e012925222552c9b9431100d1608a20356fb6379c15cfcbc76096e65b2fac6725ecaa485952a28408191db2c46652";
+  sha512.doc = "c72b039c93eb3ae542351117de5d52eaec2bb7a191092ff8547947b11e9d1a6a921010d211a1366f71846121576cd6ac105d3002f95ebd3fd4aaa8106855ba5e";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2Plus" ];
-  version = "3.03";
+  version = "3.10";
 };
 pdfjam.binfiles = [
   "pdfjam"
@@ -32530,14 +33299,14 @@ pdflscape = {
   version = "0.13";
 };
 pdfmanagement-testphase = {
-  revision = 66534;
+  revision = 69078;
   stripPrefix = 0;
-  sha512.run = "917ec60e918fcf8f23fe44eec39d9f31e8edecf2421b3b2c4c4e015691d13d568a33b4290d0db6318362c51bd67cd64b329c3f6c8a755c35609a02b908d15be0";
-  sha512.doc = "b4359b695dbc834aebf827b91b8042f9cd57a3f1ae67459e2ad1dce882fcfb1d9042a781f24faaa13bdd7bf1547cfe693cfa422960fc1ce90d09138de2e11da4";
-  sha512.source = "08783e1c58f595dc5efc13ba4660de5dce1660615ca51b3e5404daaf99f2fa17c5c2e34cfc4d9954a320358bc770eb005a6d9127132a4e0add5ed189dce49e7e";
+  sha512.run = "f0065e66e3d94a483ca1e3dc3c7a1f78a1f2f8b038b45781e1f7011939e65814737c60cd606d291f153bbc633ddb15fa7f2b53414f857bf9ce5791a211f0bc07";
+  sha512.doc = "5b83c8d73ab6a81d1f32a35c762cf13b7b8c0efabde94735a3c45716ee470abb3d370f8d329e8785685f777ac812774d5b16de3d53991489d83e219b264b665e";
+  sha512.source = "cded0f375bdf26cbf999fb435c6b3eb9084f6d481087e64d9b50ad9e5414ddcc87a1a495b9a75326a65437021da41ec011647e2ba2a4f72d40e618b2519e23ff";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.95x";
+  version = "0.96d";
 };
 pdfmarginpar = {
   revision = 23492;
@@ -32549,13 +33318,13 @@ pdfmarginpar = {
   version = "0.92";
 };
 pdfmsym = {
-  revision = 65324;
+  revision = 66618;
   stripPrefix = 0;
-  sha512.run = "b0cbce8135522af3d0cb1087c2ec4522f58f1afc70a27d957d9d54d1da5890cc89a6593504f5b4b2ae4c4431d0d914b8ed59bd04938e0efbf16fef5af7ff96ec";
-  sha512.doc = "31135f5ce4e37916e1bf5ab31864953c0b1988a437d767cfbb52925a8cc38195e1d46f7f45fa0c62a07d87df31f6ccdf2d584df7f5082f1061be998a1e9d16b2";
+  sha512.run = "f424a0fcaaf484f919b1e6646c63eff6550711e23cf938886b9cdbcef8719defd1d23efe949916cdf27dda54a87a8eb5448d4c9e8234ffc043dd295937ea5365";
+  sha512.doc = "a40e39c7ce6e5d93339aeb6a1ffbb23dbecd11656b6c698362157c0fb46477dc4506d6b40269b3e9f10cf8fc0b2c982049d4e732b92c0a3401a0a40614b631e7";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.1.0";
+  version = "1.1.1";
 };
 pdfoverlay = {
   revision = 64210;
@@ -32593,20 +33362,20 @@ pdfpages = {
   version = "0.5x";
 };
 pdfpc = {
-  revision = 63866;
+  revision = 68610;
   stripPrefix = 0;
-  sha512.run = "059558ba3c3ce0ec378960b3801fc9830397a15078b7976fdf34fa5ea62969d74f0e05237d88600d01629343e7400e5a67ef6dc49cadc7dc6191dc273d198ed6";
-  sha512.doc = "c029ce76687144f7351438f3ac34a7ecfe042923c389983aded1a80b8c5e7ae1c1b408c49adc4b543610e2190bd02f32e36c376b7a987dfdd298e98a10cfcb81";
+  sha512.run = "f94232b95cefe880b963755f18d71e4d4c00eec6a095a3ada786bba4036c8ac1bbf92377fdc64d6a4fa1fd8a3eb2f308a5edd451646f8d552dc1c29f7e93dbeb";
+  sha512.doc = "762933c4c5864e8f94a0719f4c26e5b1e576e11353553875df690fe9f2546c08dcd2f35e7ae46fda6960781fa2223d874acfb5c0c8f6a7f1732e2ca227001f46";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "0.7.0";
+  version = "0.7.1";
 };
 pdfpc-movie = {
-  revision = 48245;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "131ebad8b05395d0ca812fe50a103847393e4b00bc5574109ae3644b6500c58b86c48e33aab548c2404bd08ec6b893b9461d76f957111c7e653fec8473b8e63a";
-  sha512.doc = "fef635a0d0a48a6cb35fe8c3e0b17342b84bbeacd1604e01e9fa1217ee92aef4fd073c1db5aa72161082c6dbb273f1a2fc55a2bb057cf3fd12796de8844df614";
-  sha512.source = "e4080ab714b791e2204b8215b70a0b979b9810c5c69c69234f6aefd4b02bf182245b0e599040f56b4814c6486ae6b7f715d3bb597c03475c38f4d5bc624777fe";
+  sha512.run = "55d8f438a458048893cf6cdb56969b84c5e0d195346a0d79f4e097a6ea336623133c42efedd1416e294d474f44bd01c9fd5efa6e38d44fc49194fc5de9a965bd";
+  sha512.doc = "96eb1120fadb2fa47cea38fb9fac189d8e142f9fdfaca5f6c46b5b0fabf603f7fbfa013715d589b25ef928bd69ffd273afcfd5d1fa0d8a30f2f8dc6c50c20cd9";
+  sha512.source = "891864cdee43d1c4da7ab9cefd3ba751ec7f574811ea09f680fc704475fada67c3b2fef727abc254b83269bb169f8d8f2269e5d938b9ffebe624cf9c31e5cf93";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -32621,6 +33390,16 @@ pdfprivacy = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+pdfrender = {
+  revision = 69058;
+  stripPrefix = 0;
+  sha512.run = "507450ada31750d833e46a74ab38570bab964c4d36224482d0aa14b2f846a10c34c21735cbf7c4a8bd7f6c10dab5932830ceeef8198b98f72a716aed27a0714f";
+  sha512.doc = "447336df8ed6b0f026e9b99a5a45481fb04da0dfe009e091727d99ef536c5e073ca90bb9e4268104146908f5bd6588dbb8d294cceb0acb3f46763e0f835b6803";
+  sha512.source = "83e6d5dcb7aabd6bc3e84d273687b91326209dd78b8c91acb256e5c42566a4e441e526de9b64fd8d5310a6f393ee7e66c6f561f87721959fe2cc9e41aca02fc1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.8";
+};
 pdfreview = {
   revision = 50100;
   stripPrefix = 0;
@@ -32656,7 +33435,7 @@ pdfsync = {
   license = [ "lppl13c" ];
 };
 pdftex = {
-  revision = 65808;
+  revision = 66243;
   deps = [
     "cm"
     "dehyph"
@@ -32691,8 +33470,8 @@ pdftex = {
       fmttriggers = [ "cm" "dehyph" "etex" "hyph-utf8" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" ];
     }
   ];
-  sha512.run = "a7b4d8672355fc3edaa1fa0b31ea4009c7dfe33d779c82dd5c2182c1b136f745c9b3fae6089b14458f0ac5d5491f0070c9232eca0fbdc27320ccd87d2f34f50f";
-  sha512.doc = "021dcbddbe4759731e9411be407a5e2f0c66b04fe22fc5331420f0dad295d3d28109352a962f6d83966ee7b7236bc1bb5aa2455074c19e032f01af415437efb9";
+  sha512.run = "c0158cb19918ea2bba57cc68e32af1d2c4ef50ba45bf05e0c8b7e64057daee19843ff77633e4dd0ad660df39983c46f755c691f85d4aa2000086c02d48498d0e";
+  sha512.doc = "d059f01596573efacc4ca80333b07236f860375f49b82d0cd3ab6b3f441f379163a37c820e713a2d96a8f69b821b3dbd68f360c5b5f005dccac54575df4b5d4e";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -32725,9 +33504,9 @@ pdftexcmds = {
   version = "0.33";
 };
 pdftosrc = {
-  revision = 62387;
-  sha512.run = "c86b7123c88bc5c50a8ca4c6e435eccf04cb5d2e2d2b2a25922dfd69cc2eac3eb09c0bfef8fe0444a49f13035cc6a475de54e2b4ced603841f466b2c07568434";
-  sha512.doc = "347ff9fe5424657b152afe0cc15ded0b2a81911934c3adac249c75f32f21ab72970bd285ae29447b7189d4df0399ff0dc3d084dba42896d17c5fbbc33cebf7e6";
+  revision = 66186;
+  sha512.run = "8cb175ce464b0ec0bf74c39ddcf381daf9e27635098e775d929f5cdc60858d39cdbac1a4302446f9368a274ce4c3afda9636d882ef4097d2272d22e190d8d272";
+  sha512.doc = "01598180f8eff2913eeebf5bc3d5f3aba32029286fc6e0c072aa8c0f4dabaf0c6e71ae7451ba9a7b65b4d0075a7f0a3baf345b02c5826eab64d74e39eb82798e";
   hasManpages = true;
 };
 pdftosrc.binfiles = [
@@ -32752,10 +33531,10 @@ pdftricks2 = {
   version = "1.01";
 };
 pdfwin = {
-  revision = 54074;
+  revision = 68667;
   stripPrefix = 0;
-  sha512.run = "13981a137ab920fe72e1f79ae3bb14bd9e37cd4eb4dbb66095926e54eddfd28903b403a896a013ac40fcac80736c566e983e34fb9b7a54d0759148ce33af14aa";
-  sha512.doc = "2b8d546b5591773cb9ec3ee407d7390b81e8ec1a6232b626ddbf9bb2cdbbc8c9c00e08ae4772a4b67cb38e96ec2be3db981eb163d412738e5e7bf94e5196637d";
+  sha512.run = "1064e81793884565568f6bde33072dc007c9b9a07c010be602111ea4429ccb803c18a3af13c85bc1367279624266063756bc59c72e6190e70090eadc8857b8b1";
+  sha512.doc = "5055cfb0e2cf0e1cc105a43fb82c05e133863cd22278792de5aa931afd84afe7cc3b35566a399dba97645da4495d16e47d723155991ecf1bb3e13a892f230787";
   hasRunfiles = true;
 };
 pdfx = {
@@ -32803,22 +33582,20 @@ pedigree-perl.binfiles = [
   "pedigree"
 ];
 penlight = {
-  revision = 64811;
+  revision = 67716;
   stripPrefix = 0;
-  sha512.run = "eed3971fed0d6217064302b136a8262160e3b37ebdb7faf3fb30a0828806c806a5df1d6c4e8833b2552abb21ec8061ba95ce1b688666964dceffc3697b7e2624";
-  sha512.doc = "cec8a8295e8001ec349f551b5b4d32c8bda1beddf7b22eaa9de6bde6740b49997c5c5eb12b685eab633f293b7d96bb781cd256da689268ddc70479d6fa7c5f63";
+  sha512.run = "7765a7beaf9d2f99f383c6723fb7ddf3968f656a433bd519631b539e7c599e4ea26546585c1be6732a42e1632fc11b980ee9316de6cfb765332790f81d548aff";
+  sha512.doc = "30307bc7774c3768227da33c31c6296e8d470f1f835f792248ed4ff40e261ea682fd967987396808fcd36e7e0a74c3da2bb947de7eab7af5783e3790857b081e";
   hasRunfiles = true;
   license = [ "mit" ];
 };
-penrose = {
-  revision = 57508;
+penlightplus = {
+  revision = 69070;
   stripPrefix = 0;
-  sha512.run = "b8572b376e006126dfb925758e907f3993c7eb0a157a57a6a36c99103f3ed7ac58ae406f6888b7303fcea4c43b67e50162af0235d7d923e79c497c60403a3e2a";
-  sha512.doc = "a02fb2976c23ec8dc51ecc70fb6e702f62ff6c8e14de437e2bb3a478a432034e1a87f92266930e5c56931e4db8d2bb0bb8ab1c464ee4c8ccd15cea0df8624e61";
-  sha512.source = "d40b7a787431ac7ad6af14de17bdf749ec5743f3a95226f084bbf3bdf4ad720b43b597dc432c9831d871f030eee049e08e8bad9d2efae63e9d588db31ae15178";
+  sha512.run = "b4aee13d9fc3a01d434ea76ed04b2ae6871dcd7f2a1953ebe36a89153ad1759a2c66a622ee161ec7bfc0f79f235a54f6a2f8c232ad62cc2150ea872b2e4b79ce";
+  sha512.doc = "1a9da1ba0e893846d45eeb3cb6ea803f154986aa9c8f419695cfb4c24448a0c9ef603d14925e44731ca0fe00fda5528d80b30f428b81bf97a9cfee90755c78b0";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "1.4";
+  license = [ "mit" ];
 };
 perception = {
   revision = 48861;
@@ -32829,10 +33606,10 @@ perception = {
   license = [ "lppl13c" ];
 };
 perfectcut = {
-  revision = 54080;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "edf0b4dc69d24b4515b0285dd4f4c7a89dae239eea2cad7cd194e9625dcc7e306c295ae67869d1e58d64e0f68d8c39779e0cd90a4c4f5a4e769be73037cef75f";
-  sha512.doc = "84443432cdd05634c4f75ce3b912bbb2f1681237cfcf3c34ae070fb07e0342b7a5a0abf7dc4d26994bb7506ad3d6b5bd008d4a2cc738b418cbb9b397ecb1d2ba";
+  sha512.run = "5c3963a08f1041e78f871084531187214f3735b15409cbdcb4491046feba1fbe44887b23f450d40eb3a697a49e0ecace584b96cb10a7f959e28afc642259b5e2";
+  sha512.doc = "4a978f726c8b5a69006f293b8428978a1a6185df27f2d26a0be06309fc55ec3b8cd6117cbb4ee732f6c2d0ddcfe8ad66d86f7f838ee2e386931e41c0ab043e2c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.3";
@@ -32888,16 +33665,16 @@ petri-nets.binfiles = [
   "pn2pdf"
 ];
 pfarrei = {
-  revision = 31934;
-  sha512.run = "f6046dc96672b60ed272dd6fe23a4a51032f039d3aeaff3f8b5e2407c99fe1f43c568a03564a7c20212a97bbfa4ecbd0dcb7f5f44593e1485c8e5d9197467a6c";
-  sha512.doc = "d50ff4603d51eb72d1d12e7f5b1440fa3d7abb1ab74fdf441d7e4a474df91247a1ccad504a14438bc0c3c6354c8f8674f180b5d9d826ff09a8749db3cf0d08c4";
-  sha512.source = "1e4008782161066066fc4cb1b029a36f6a18eb0d5d52f11a2a70d04d4778de6ed1a80ea1fef5d8cc86c2e13b8cbcb1cf8ce43e58ff4431b16ca23c3fdafb9884";
+  revision = 68950;
+  sha512.run = "2022347ebca4dcb71e1dda7d8ac906733a664b98d14660e48b16e6592ae229641b8c7bd10602d89b3b01535d2851f9504e3329a9f82f4adb5a4c68dcd69c6ce6";
+  sha512.doc = "4e5eb99b0e0409395954170339a744d18f8d0f8ee389ad1bacc684a037cc8b2b6121850a7674ec9b699596bcfa8e9e36521d13571bcad0db271cd1f9fa619488";
+  sha512.source = "65d865d2e79ff7476a3629fd3ffaed09b3edc8fea9224fd7126cce0203bfa6f5ecb5caee6727bd6d01196666f138786ca409f3530a577efae4fccd405cbd845b";
   hasRunfiles = true;
   scriptExts = [
     "tlu"
   ];
   license = [ "lppl13c" ];
-  version = "r36";
+  version = "r37";
 };
 pfarrei.binfiles = [
   "a5toa4"
@@ -32949,13 +33726,13 @@ pgf-interference = {
   version = "0.1";
 };
 pgf-periodictable = {
-  revision = 66035;
+  revision = 67250;
   stripPrefix = 0;
-  sha512.run = "10457ba244a86028ce10e39ae6e04ef560b9fb1a90d67222a212d292812407c33d38dced4123e37cbdb28ab38c576e0ae95a6fcaa000edfd70013b9fc005f60f";
-  sha512.doc = "72559f777704db3b4188dfa74b74e00dad12dbc90dff4843cb56c2f73cea4acb35a87692682f7acf83302d0f7ebd1e86289c084ce2ce939efb0bb388e7e68165";
+  sha512.run = "90e347be204b06b55941110e968b02f36d849a667a0bfea81552ecb31baa6197139912adf8bccc6b212b57b77be3857088c35f412049ba6fb6dd205049312c3d";
+  sha512.doc = "e13515d4ca7af997ce26f25dca80325cbf0c94f9e5c6a7dcbd51d0b5fb2900d73e37b73762db61269c0c2408ae8483bc767da680aaa88c79c011ecd811766cb7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.0";
+  version = "2.0.1";
 };
 pgf-pie = {
   revision = 63603;
@@ -32981,13 +33758,13 @@ pgf-soroban = {
   version = "1.1";
 };
 pgf-spectra = {
-  revision = 66034;
+  revision = 66961;
   stripPrefix = 0;
-  sha512.run = "77417ac12e5f167a8da17ecf89faf05e0a62350f1ddbe98bd646beefa0789082949bf52da226e2ecc6d8f3a0a98c879e19bf981c314d0201f21613ac7cae8049";
-  sha512.doc = "aec16a4bc139e5b4167a4d9fd13c87848100ca09c7b6e2835c3641f46c4f383dd4de11504bda82d27657770fabc74887a0ca56c22231f4c85d51000a679e517a";
+  sha512.run = "723fcfd1b6827cf224fbbba91bbe4b65e8ea6b09cfc5eae2645144d2f64bdc0004f4f6184f2a310f7208650870041f12c4eb73e4d34c88fee5513d041ba88586";
+  sha512.doc = "81e418c2539e9df982025478d552b947dc040a5fb3ac8250636e874e77c97c83d215df6b2e9208f660b8a928eb1dd0e059fae357aef1b71b6e959a37affac2d6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2.0";
+  version = "3.0.1";
 };
 pgf-umlcd = {
   revision = 63386;
@@ -33028,6 +33805,15 @@ pgfgantt = {
   license = [ "lppl13c" ];
   version = "5.0";
 };
+pgfkeysearch = {
+  revision = 69385;
+  stripPrefix = 0;
+  sha512.run = "c90dd895a9c4d3ba737f6dca0a618af781ef712f7254f80c4f6bf222db80c8e7f010e9e2b2a0fd4a125154586d1b1532881f1e29dacc677c416dc8b5857acd51";
+  sha512.doc = "8ba4bc32f3a0393ec32e387110a725d10ec67793867ff7efbe8bc6047a6fe7c2e19970f091f96e2cc4d756809301864c48ce550f46240e22aaed885d7ebb57d1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
+};
 pgfkeyx = {
   revision = 26093;
   stripPrefix = 0;
@@ -33089,10 +33875,10 @@ pgfornament = {
   version = "1.2";
 };
 pgfornament-han = {
-  revision = 54191;
+  revision = 68704;
   stripPrefix = 0;
-  sha512.run = "7db1999c8f76addc56ad84aea76617fb61d3407bf28256379526058eca3dbc2f69442c6d0214d31832e31048fb1b8419125dd3441fe039a832d573346b15809a";
-  sha512.doc = "68e6720389bebb23edbd5387a3e0b3c9162b8cd0ebdf96825bece939b983033408d01b4739ed034cb9e0d3fefc21c87049f6ace1abc42826757ee6bc7a86da9f";
+  sha512.run = "7337b577e10f2a6306badaa45ca57614ac0da6b3c12ca5c9c3978f1358fa88a352cd092452ef3b6e86d01ccd05f1cfae663f914956b74d184c08a21d2e484e01";
+  sha512.doc = "7b9138088db1581571508ccb550b1b128ce0b574dcb2a903f5311b9a6e63e9d9c6e56eca0e46ffb5224f5685c5b047a57e5e7d292e7d6de6a9bfb06ee568d9b6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -33274,13 +34060,42 @@ photo = {
   license = [ "lppl13c" ];
 };
 photobook = {
-  revision = 66554;
+  revision = 68313;
   stripPrefix = 0;
-  sha512.run = "b923c2f7fc85ff5a24d55a697b67a536ce688cd2ecc9e2c50c8f6492f9c233faacd59b3d5dc2362ad6ae4c9714a7ed6a6d8fc2d3f24e6558420f59b342e93b59";
-  sha512.doc = "50f9159efdd002da22ec5c969193997213b6226b710ac86e7836d58b2b874cbd87ed5ef2429f2a7d7ab1f88700ce86e81dfd64c903979aefe4e7b88142bf6166";
+  deps = [
+    "adjustbox"
+    "atbegshi"
+    "changepage"
+    "colorspace"
+    "environ"
+    "eso-pic"
+    "etoolbox"
+    "fancyhdr"
+    "fancyvrb"
+    "flowfram"
+    "geometry"
+    "graphics"
+    "hyperref"
+    "iftex"
+    "kvoptions"
+    "listofitems"
+    "mdframed"
+    "numprint"
+    "pagecolor"
+    "pdfcomment"
+    "pdfpages"
+    "pgf"
+    "textpos"
+    "xargs"
+    "xcolor"
+    "xint"
+    "xkeyval"
+  ];
+  sha512.run = "1ceac5c208ff577c3072b96bd3c98e03a75126c25c5bdb8a88c3a253623b2f089d4bff17bcc7cc14d522461df2f95a44ba784ff8108a6b2d284127d20b75d4d1";
+  sha512.doc = "fc29b76cded75fdc20eceb668cc0bda2346bc5e11c5df2d860e90999e48b73a3e44c985048174cc54f42aca2dec3d195b765ffae923a1eb78b1d7da180e6a966";
   hasRunfiles = true;
   license = [ "bsd3" ];
-  version = "0.1.10";
+  version = "0.1.29";
 };
 physconst = {
   revision = 58727;
@@ -33302,13 +34117,14 @@ physics = {
   version = "1.3";
 };
 physics2 = {
-  revision = 66119;
+  revision = 69369;
   stripPrefix = 0;
-  sha512.run = "bd5630f6003229600f47ac8c5a03a1481707b7293a358327307e8dba582155953e0f29a58b8a4aee53eb403be9b98f09d0cb0a653ec63603b2c694d9e83d050c";
-  sha512.doc = "05179baef4d5f238fcf817007c7acdf9be9b8701283eaf7207fc7626fde9982841bb668f5faf18560ea500e39f7a7fa2cce09653572bf854ac16f79f2cf5a999";
+  sha512.run = "1a598dac27ac5e1fa163493c307e48ff2e8c31d9c1c51a676a1b05bfde7af2a558fce4bf410a2c70837d128121331d6aaa393c6e7a84d8b98f9e271184e78a50";
+  sha512.doc = "0627e9882b0ff31f2d6db46a9437c536c29aff39a1a1929784fe4bb16dde1a18aad351819d36a7578bc71664a4313c918623a87cbfaa36738b19ee9a9f4769c0";
+  sha512.source = "3709f7455ffe7d21a1e5f04f08fb36edf1fdf9664c32aa942856248527fbb735dc6664b971bb2de961ac5fa1f8dee14a2ad06b39903e6ca83e639a18b71b01da";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.1";
+  version = "1.0.1";
 };
 physunits = {
   revision = 58728;
@@ -33434,14 +34250,14 @@ pitex = {
   license = [ "lppl13c" ];
 };
 piton = {
-  revision = 65835;
+  revision = 69320;
   stripPrefix = 0;
-  sha512.run = "431d6967b4825b4e36b2251d59571f57ef3f20d231c4f215d67ba34ac5a105de25c8f2044b4f7a5bd774a906bca4d98bc77b76e3b678b80c57aee4d1c6d705b3";
-  sha512.doc = "ef3dfcdcfb807135535f52859c6fff5bc46e78e979c07290b96c50fa1f1ffd3fea1a17a619c23f4aeb1fc4d0b21313d841b323799ea050b38b9bb1575d974c62";
-  sha512.source = "137f87044f7625fd7db4c4fd43957f929ada766248d262c883c111592e00e63f613201c0641a50917bb663adb6c976af7e91f10193cb9cd985eedf5f27d9f52a";
+  sha512.run = "95028768d96516ebd9b44abd790d47694716edc795bafed8ec8ddc54626792b0590295e87ee8d06740b50d42b2e4a00c326cc8ce737ff31b2f0d42130f8a57c5";
+  sha512.doc = "11825345e1017add9674e543d146dd151fb3d9dbcc228ec0660392a12e0baa7ec08f224d7024f059ca125f26e744e083369fb972c308173e17908b0d48ce2aa1";
+  sha512.source = "f29cdafeb5efbe3a0d927a68183687aaa6ac6f932a24d362af32827377de566f69c8721329546d07c1a1127da587b25fa3b649ffed0579056e88bf9e987bb7c6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "2.3";
 };
 pittetd = {
   revision = 15878;
@@ -33454,22 +34270,22 @@ pittetd = {
   version = "1.618";
 };
 pixelart = {
-  revision = 66119;
+  revision = 66012;
   stripPrefix = 0;
-  sha512.run = "c8a6d0d595040564878cd8ed633c9cc807667bb5da63b38002595dd20f6eb9134930f3cbf6382eef3cd5c760c9357ee6d1020fcd8ed3e2f268ee3d7e85eba847";
-  sha512.doc = "700cbfd670ffb02230b8b1b595efe8e7233fec8a721be6b957130ef64acfdc60a2d61b8333a8b99bd3c77d643a72872f851bd2b69e5c76b416b1b2a39df24544";
+  sha512.run = "0643246fbed81ac008f675b9cff8d3194f8eed02937816c41887ad84268850cab50e5c6a7c8df5148f04cbb43c6ab80d5fa4d960d541b42f505f95f554fa0602";
+  sha512.doc = "2823d82ac741954d19afcdf74a1b2071591a904183877ee54e8eb9a4dc2d63716f05bd1886691e87d36010fffb929e9d31aee05ec707a929a5fc74c01ed6077d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0.2";
 };
 pixelarttikz = {
-  revision = 65649;
+  revision = 68520;
   stripPrefix = 0;
-  sha512.run = "a22bc217cbb20081d44684180f40da9883a17f133f8214ef141ba25924657f51517189d567c08f71e76b6cd3704eae4050d4757479925f23a9e5b5a8faa90ff2";
-  sha512.doc = "2a3e6ed9f865fb75a3ae7089e00e3e8cfb4ab5ad20eca21f697022af5342f292505de24814b6137a31d6aa05f204618cb94f1628d8bd51e64530d898b6cba5a0";
+  sha512.run = "c3aff99cc3027fc32f191f6a3329b397d23a11267e9fb89cec0bc5ceac875144375b3b16cdab42b471f16153cb75b21cb25cf38a74eb22c9ec0990f062245827";
+  sha512.doc = "e06e2dd718c81822b0701390d8df193ce68d491138e75e929ea0c75881466b4e190cc52cbb58d69e2f3619b1f2ee4ce8489ceff9a35170256d02057cab6b9483";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.0";
+  version = "0.1.2";
 };
 pkfix = {
   revision = 26032;
@@ -33590,13 +34406,13 @@ plantslabels = {
   version = "1.0";
 };
 plantuml = {
-  revision = 55214;
+  revision = 67097;
   stripPrefix = 0;
-  sha512.run = "30e49185f2916a0ac1234199e80fc4c776eabb69e7cea9f8132e7c32c074dd2a24cb100b1f6f2f80b314cef9e7099f881605ee3fe19ee180f2c6c856e33c73d9";
-  sha512.doc = "bd04f4ee1ebde123f718b147b407f65d0549171fcb3cd9c07381871a23034520563b02edc1675aa3a6a975da6d811674d653c5527b6ba99309f479ecad136cbc";
+  sha512.run = "97af8222b28309bd5d8ce5d083ab54bbf550b6327d463de8b481cf4a5f62c0c82b33718b5c95301204bfe8e4858039a0811f491d97c02079d723e66c3549c90b";
+  sha512.doc = "b76c635cd30ad2638619b1ded721d468eec92033206cda03cbb638b14be082de1360efd2048f2cb1ac787a4c9232416cd18a82ad7b261ec785468ffdc003b86c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3.1";
+  version = "0.3.2";
 };
 plari = {
   revision = 15878;
@@ -33617,7 +34433,7 @@ plates = {
   version = "0.1";
 };
 platex = {
-  revision = 66199;
+  revision = 67315;
   deps = [
     "atbegshi"
     "atveryend"
@@ -33637,35 +34453,36 @@ platex = {
     "ptex-fonts"
     "tex-ini-files"
     "unicode-data"
+    "uptex"
   ];
   formats = [
     {
       name = "platex";
-      engine = "eptex";
+      engine = "euptex";
       options = "*platex.ini";
       patterns = [ "language.dat" ];
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "ptex-fonts" "latex" ];
     }
     {
       name = "platex-dev";
-      engine = "eptex";
+      engine = "euptex";
       options = "*platex.ini";
       patterns = [ "language.dat" ];
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "ptex-fonts" "l3kernel" "latex-base-dev" "latex-firstaid-dev" ];
     }
   ];
-  sha512.run = "f5fbb5629bd73cdd7eb69917526528b10c905f603ff2a5c2cf77445f7250777e34d3a374e6f26ff4fd8fa2a362033cd6bfa11493501cd8120c47a351bc611f51";
-  sha512.doc = "2b3751cff2502ddb862774f58919ac98f9a233f02ceba6f2756de3659ac4555831d4af03276798cab9b02ad0152f4a9f0c313ad3ad9af58f429ea54d23fd131f";
+  sha512.run = "4a2682c51dc82e078ad14b30545dccd95f600ab02d5d05fb5c44c214221a3947562432783b43ea505b5199f37a1175a792c709282999f77b17b532d2a61c6e54";
+  sha512.doc = "faf91bdbc3e0d2ba0b13a914d54fbc4ce47e27c1225e5412b78c1217b2e3f6c22886a9f6f85b06e5e3f38a8b0c7a9aaadb4606721799749ae6ef5018f7bb08bc";
   hasManpages = true;
-  sha512.source = "e78fad3ef13b2289e88b0844528c0ecd25f1052e2aa443f79a7b25aa72a7645ad576a20e4dcd16412abf68fbf50cb5f4763dc18410813371d9b984afadea9fc6";
+  sha512.source = "a1ba3fe817e5f4aa23c2c4c9b7397cdda6ecc889ee244a05fd7eeda59fba1baa02fd29820107c887982983b2115631f1aac7d19ae281f88779b3e99253b12036";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
 platex-tools = {
-  revision = 66200;
+  revision = 66185;
   stripPrefix = 0;
-  sha512.run = "4fa016b2ce5143df289c770740ef7e9e36afe68711fdb6380eb92e093c0731a994cdfc4e7e199d529865c14adbda5854ef11487d8d60023d4c6f87fdaaf80a0e";
-  sha512.doc = "cba939ea44e75600efdcbf0e9254d0e76c36e69f4dbc1944e5fa048ac967fe99a08fb5a68f1a806f8666e04d1d5fef5bae72c84f3379b3e17522d81eaeeba881";
+  sha512.run = "87646f8cd885b75c3e7dc0edebc32675afe2d02f87c37ebf6abda7b68256f002440fd1a94f3f13dffbd8a7b694f3813d4115621f931b9a3a9d73491bda7c4296";
+  sha512.doc = "cf04b2c5d4df6d68bfdc3b0a3a8dc0f988cb0549252b3a6ccba58df685c41a9312197a63c97c3ff63c1ec15177a43d1e8064fd449054eed3df968fe213703552";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -33699,6 +34516,15 @@ play = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+playcards = {
+  revision = 67342;
+  stripPrefix = 0;
+  sha512.run = "3c7b076044328ceed3005de84d628d6d926f93c1d759982c2e37c8831093aa12c0dbff71f8b8bfdbd171dc545f313729c7c11086a3e529858086896bb64899f2";
+  sha512.doc = "396118759c2f02c709ede5e6b4be042d2348cc38ce4783fd9f612a6bca887f9237f86662b8ce84a78a6abbedc8e2ce9e2c61be2f2c818e262c693149b7125019";
+  hasRunfiles = true;
+  license = [ "lgpl3" ];
+  version = "0.2.1";
+};
 playfair = {
   revision = 64857;
   stripPrefix = 0;
@@ -33708,21 +34534,21 @@ playfair = {
   license = [ "ofl" "lppl13c" ];
 };
 plex = {
-  revision = 64496;
+  revision = 69154;
   stripPrefix = 0;
-  sha512.run = "1363c53067f463ebb702151b61898489d4061db40013af82d9da9660cfc0a9c5d1d12ba9cfa15f43417427bce2bc47cbafc26e76a9d8b85098096ae156d3d97c";
-  sha512.doc = "eade0bcaf39a3043aa11c20a86ceb90eb88abf22eb8005c81b9bb688d4f8a93f6ee6f37bd073e69ad6f7989def618a016cd583199d75db0776bc19e81d23099e";
+  sha512.run = "4180d4b5ff2d6843ac375a52bc3c63570638cc29f7d3bbda476dee962998293ce4b201817e056d5e87c20bd8280336b65bc689a8e1580ab8aa6f24164002732c";
+  sha512.doc = "175abcc07f213d5837070171b7fc483aec2c26b80f530ca7ad7a6f571de028c833e32d71a4c465fbfbb803afcba934e68df560944b8b54b20827d31cd21fa9f0";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
 plex-otf = {
-  revision = 47562;
+  revision = 68238;
   stripPrefix = 0;
-  sha512.run = "07e49e5dcbef60efd3e3050259f10b75bfbb83128412a1e60a31c2f17983ec73d055e5f6e117ec2673f9f0e5db716471fefb312be50cc4475761aa6ad895e9da";
-  sha512.doc = "4af950e1a3a384a1c738c6fa1bad629010ee2718840094500976b6883c2e3120cd070631463f90610c60877c0dea771c9c7e4f8f8c091aaf1f29b15b8400de96";
+  sha512.run = "1dadbb3073ccdf40e496f89cdbd31af8ef37e810178eeb7aee49e9c1abdef42f28e58bf12988a59b9aee95384de842cae8a827e8ad8968c7ef37e8442e596d21";
+  sha512.doc = "226ddb9c201dabf158e0e9a5480995539d20d14ef34f5ea9498f9fe5966a1f7eaed00e1bac62fe17eeb710d0d3f68f9397fa568ee1a91076552130661dd6e3f7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.07a";
+  version = "0.08a";
 };
 plimsoll = {
   revision = 56605;
@@ -33791,6 +34617,15 @@ pmboxdraw = {
   license = [ "lppl13c" ];
   version = "1.4";
 };
+pmdraw = {
+  revision = 69366;
+  stripPrefix = 0;
+  sha512.run = "ab2b72364f2833ec7362d7284bfc10033e72c3f20c1b4f6ff7a89a8368bebd5aea2120c5cb82c27bf924fc1342030d83e61a8b4b0343aacadd09247890495325";
+  sha512.doc = "60a9292a2705281b8f32a2789b34e0dbc46cd8d475d7c946e00e8f0951b5cdd5a29cc145e0cc270ed87b52a23f819552081fd78f99fcd529aea57027d4d71b23";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
+};
 pmgraph = {
   revision = 15878;
   stripPrefix = 0;
@@ -33801,18 +34636,18 @@ pmgraph = {
   version = "1.0";
 };
 pmhanguljamo = {
-  revision = 66376;
+  revision = 66361;
   stripPrefix = 0;
-  sha512.run = "953d62ddec3948d6904b9a5fc9d37207fbf9a67a44c243fef164ff60660bb5539a5e110b436510cf7ea74ef5ca1a2e07797cc14667af0bd598e5f2f4a96f8bd4";
-  sha512.doc = "2447a1cfb7b8c1ded0db1965d342162d8a13aca6df8f0827c33475abe97ce3cc80e921ac5857f49d960fe83500f5c323bf6f8241dc089d4e35daa7155bb99079";
+  sha512.run = "099517421e9590597157121de5d53eccaae0784969288762ebd8e35a31eb12ce6d5466f890204bbb69d0d9c805c314b6a475653a1cb26ef270672683e2625a24";
+  sha512.doc = "12f324ea6c852b134868f4365a53c2f434adac235d01efdbdad0d5df138587acb28fa7324e10f5fc996c44f43289322bdbaf764107cea4e66d7f999b71807384";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0.2";
 };
 pmx = {
-  revision = 66119;
-  sha512.run = "90a0d9a2782885f90c361fe99a5c20e761eabde7b79140f8c8cca25bb6e731a8bf16988328166aeddc80c37a45cf9d6ff71e177f85338dab6953276462625346";
-  sha512.doc = "15600a9b81fdc4e7be4581cc035b6b75bc08d6858003d092382637304393946e1b38d8d693e4b62f86707b29c37a1dc9ad0665ae69f16cc8ee672bd2f537f650";
+  revision = 65926;
+  sha512.run = "433287732fbb2cb47886c6c78c923d5b6a1b5c1e71e3990084cde9bb288a282fff7fb9134a5165e0fc0908b8e60547e23cb900bc82b99717133d7600fa17dc31";
+  sha512.doc = "dedba4570b68a8628442716dc3a9b1699e5f531aef2737e4b3f47862a91ba69bda91d6fe6692914d2bd7b8fe3188a83fdfce8bdd219ab7c4f238a9c6ec273ffb";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2" ];
@@ -33866,11 +34701,11 @@ poetry = {
   version = "2.2";
 };
 poetrytex = {
-  revision = 39921;
+  revision = 68353;
   stripPrefix = 0;
-  sha512.run = "9de77dc676f78ce6e18ae62f621126ffc2d78ceb9cb5612f8c129f0c0d123043c554a8996a68d2bf6c730a157f5cdda4101f8446e0e773671258ffb55d6fe93d";
-  sha512.doc = "e9bc2551a92df86e5b76448b2de7af423b8f96ea6a62b1e243f76588478172a7ffe035ed904fb8eb3c5be031e1451c997a68de3187933c3a7273510710577f25";
-  sha512.source = "4dbeac34f7a74a3a3610f8fa3d3b614ba9ed95384863d2edc40c4685bf7d514803a6d50ff8f27459a7ed993de97f835663ee84247fb0942ba9ff43779e2faeb4";
+  sha512.run = "f56937e0c18fcc1db0872ed27d3ab9497e42186552f5eb26015f7c28f1d38091544212767de088e8d94f6d1e15a5ab973bb1b4960f8d4633964ad9aa295e3b87";
+  sha512.doc = "3db45607b5d95695c3f54ab924912c39ed3c06d956374039656d2a2d3c25d1261541124d7a89ba05cf935ddc4b36b7cbf4c907d02a6b774748ae96d032b30d4b";
+  sha512.source = "8c43393c86bbd430b0e98695dcecf110a08c5f35f152c56aaf8fce946467803810ca87a3b81fea10302b5dd079d817e4874440c069fb466a2773a7c086af40d1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.0.1";
@@ -33907,16 +34742,16 @@ polski = {
   version = "1.3.6";
 };
 poltawski = {
-  revision = 20075;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "bbdf230da2f81b48951eb90016745d68b73890f8c34ed2d336212ba33c7662a5bee1ba005d6e44c4370c81d22928e1013fb39e45db2de16fd05543310bb07d17";
-  sha512.doc = "1ebe7bbd99a3316b6c4fd702770c6f14a32de653909099a86433bd847a63b2eb231cba4f74dfaf1155c54a9393ae1bdf25710fdfc25199d09b75a265392ba51b";
+  sha512.run = "620708dd3f1d2d8b2601377486631c2bdc779d06d2016e1c9ab5869afe00cb88dcb1ebd055b6859ad3e3dd25200c1079b723613283f048c7cd7354977b66b8b9";
+  sha512.doc = "51067d3e930f9cae71d5cdf11d6ac83738e23539c020c93e6f4d8b460e63b04e77caaa41927ed8658056d96ff4fdcfc087e591be991e10c7e95a6b58d56ee368";
   hasRunfiles = true;
   license = [ "gfl" ];
   version = "1.101";
 };
 polyglossia = {
-  revision = 65792;
+  revision = 69093;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -33926,12 +34761,21 @@ polyglossia = {
     "makecmds"
     "xkeyval"
   ];
-  sha512.run = "c6d044ae7de7893de975d7bfc36c7f793c22cc91436c614d817f6328017223e303581ca3d870b0c6698979924437370729542c3e03be059eb90956d25eb7102b";
-  sha512.doc = "430c57ca35547c4b90abac56e46451ea9a86e95eeb0dc9a5a312d441088d07c54606369e47d69ff163884a95f371902050e6880b4a2a037d2b75a3700536eac2";
-  sha512.source = "41fc852cd9f1ac77b4bd0aa4bd57a9b55ad9b96111fd81dd1fa743a56679a6c4e8ceaf34cbc16dcf84a5636499d35923318cc1ac37e66f4ad6594c4c13d257c9";
+  sha512.run = "615880e38a7faa377698fe79ad6fffd16eeff067b95a6b70e459cfa68c530499e84e3bd040735f12a29349641f2f1ca2af270bb6ec884426b628bb7ebe491133";
+  sha512.doc = "8faec17cb9a8b3c30728a8b527794b1b58c9e8d26670e53433ecdaddaa341fdf8fa8f599e4cd5452ac854abf0f7b8d4216ea72af0148087e10460757af3602d5";
+  sha512.source = "73734000d3720ebdd98c31973e89b35636d3eecd3ffd7a5ecf5ab2650182f33da8dabcbca138b63e1f6472c003e36ebd9c8962921ee7c1825d5daea44f8f47d9";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" "cc0" ];
-  version = "1.60";
+  version = "1.66";
+};
+polyhedra = {
+  revision = 68770;
+  stripPrefix = 0;
+  sha512.run = "26169961ab8e21114a4c44470da03fa510822b495f36afaad745c0324d45d5bd64e4e5587b7601fbb97156ba02ff18a2c253e175296f15f2fb3915f7bc15e060";
+  sha512.doc = "6a083101ebef3810467cfe377a820ff178e752c62655462153c661222da3c75034a1735a4a39d76e963fc6773441df423444d40e040f39d73dccb5adc6fbc34b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.3";
 };
 polynom = {
   revision = 44832;
@@ -33999,15 +34843,24 @@ poster-mac = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+postit = {
+  revision = 67344;
+  stripPrefix = 0;
+  sha512.run = "cb825667ddd1379b07870c388915abf36efa1249036795d3cd5ed7f41a87c046c00c7e292e542dad6a8b3b3090f327c5cff5e173220d49cc829f0fe206676aae";
+  sha512.doc = "2754e847a190afa3ac22166365a0ea12557d939fe4d2f06dc0c34a518da82dfbf7ab33c8ab1ddea5d3d95dae13c013f238abcabcf6444d956393fe61b00f4a6d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.3";
+};
 postnotes = {
-  revision = 66027;
+  revision = 69102;
   stripPrefix = 0;
-  sha512.run = "2a70e5ae0142e9741c7163374478b75ce18dbb9fc637122defe4fbffeb288e78804c16ed86a02328d8c44807a35af46bca6955dd5307421bbec9bfe5be963760";
-  sha512.doc = "8efde23d1358c10b508ee8ce544a6d41d690803469d7159a6db16c1702b82352ebe62291d50298231bdbc848ffb60c5544ea367c1d9be083806ef097e50b24ac";
-  sha512.source = "1d4ba4872e3b2cb7583cc2f718b8d459e82716b63f986208421a869c3daf2d722925b1be716b7232f0b30e097bdeeea9e8dd2cf49643242149f54cfb135fcc82";
+  sha512.run = "a2b8a54ad8062e550af61a6f51d816d11891976525aeedc5267923665ea63967a388bde67dd2ad537b2c4d8fc3ffc738f05064d2fd26b0fbf7328eb806dfc0c0";
+  sha512.doc = "28537fd0437da707dfaa5dde2fdc92d11d4de5bdf99e8fc7655cc60533d8ed5bd5b9e1d680f0269b2d60e498fee577a3b069957c6a5ba41fc55dfc1631297853";
+  sha512.source = "b3050fd301f1a332622912a082dfffbb8ec4d172d4e7a808491f84b2ce7e494d16756a5ac7412cc5d1590d6a0f1ea5ec5a20bb7abb61b051e9f4a5179351d39d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2.3";
+  version = "0.2.8";
 };
 powerdot = {
   revision = 59272;
@@ -34048,7 +34901,7 @@ ppr-prv = {
   version = "0.13c";
 };
 ppt-slides = {
-  revision = 65194;
+  revision = 68764;
   stripPrefix = 0;
   deps = [
     "crumbs"
@@ -34064,12 +34917,12 @@ ppt-slides = {
     "varwidth"
     "xcolor"
   ];
-  sha512.run = "8741def8d57db17bef3490c881a615340290283860e9978e105b7ba0768b5fbf02023722109dd2f6860e9fa8d44fe7cf742eb2a97ae08d1199a6dea9f73503f2";
-  sha512.doc = "6528e50797dae2dd928d11f78bdcb3368177412823657baccba10c194bebce97384ed55d10c5307c13aa06883a156abd57a944acc26f9237a138df22b5a33658";
-  sha512.source = "42dd3fdc96d1ffbf39deba0e2e292392a9aa6a2b266d7787448b93996f12c966abff0b643281fec8b336a395b283e2e88fafb365f616455e3393645cd7c3a55c";
+  sha512.run = "6b4748adc7f9823f7ff3dce2a73c4535085974a9f7cda33b53a934acd3399e310a85dbdf367102f71c310b8678119d3396f71f36e3e26063569a85af0c77595c";
+  sha512.doc = "e258319f37ef32ce20ec72e055755ce1782e2133a98fdfaeee6402c404df02e1c60ef9fbdaff39306da947534b6bd79fd16c2b82d4a635325ad8c94858b4cbea";
+  sha512.source = "a5f1384b3d4fd1e33e924b2bc51498c509772136bac0c03abab8125ab5ef0720f5583ffb9236ce9a044bb87127e0f42ae6668c4fd2b0b98f07e32ded13ce619b";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.2.1";
+  version = "0.3.0";
 };
 pracjourn = {
   revision = 61719;
@@ -34158,28 +35011,28 @@ prettyref = {
   version = "3.0";
 };
 prettytok = {
-  revision = 63842;
+  revision = 66884;
   stripPrefix = 0;
   deps = [
     "filecontentsdef"
     "l3kernel"
     "precattl"
   ];
-  sha512.run = "8b9f5e9fec9d50b9f688115e00ad6fde21adfb9cef69e020fb297abcfe489cc6fde08d2ad4b72ea5f6b8e0b7499a97c798e8c0bd306d298427fcd19b6365c300";
-  sha512.doc = "8dc2afdc9920817b13050bdb6d92164e9322a18fd1d7a7adc7a1655c8dd68181b00faef22c09f9bce45be0744e179c978ba40c6f841e3c2cdba1c88225f7486f";
+  sha512.run = "d08eacff02fadea3aeaabecd957c4e32881de942a3199bad1bf9e8fd80639ace3d819f9a7ef875c77fbc95eb8e79281ee7bd93ed0f113f9058aad592c70422c2";
+  sha512.doc = "c0fbd26422e6399ccc4aed70e3e8dba976447161d008d440728fee07443caf35845c28acd86af860e9782a171e3e48a6e1e9a92c6ca44d8d7433c561408831f7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.0.1";
+  version = "0.2.0";
 };
 preview = {
-  revision = 62130;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "02c4864a68cf7208e87fb0a4f25ccfe2092e198541551c3db11b75b0fd0b49188ebf9217554020f07154313418febb942e04c92b78d84c6f53b88c12d5a162ff";
-  sha512.doc = "a722fda1fbc3c4319edefb65a30ccde72711a65c19e6fbe7300ba2dcb47b72f12aa436c593f1dc97f9fda1a1fd4d359b4d56928877a9cb80b324ff046d0cd9e3";
-  sha512.source = "d22c78058df91b03af32bb3f3c6584f492cffe6762a06a854811a3d2b3cfb1dae000252f483e78a40830d5bd808184b76b86c7e100c365c420f24496464ab53d";
+  sha512.run = "6dd19a259a74447d597edce7e810aa90e01617d60533da9a381ae1929ded559e95509d9b7f0d62b83c08d3622225aeebb9772d6bd47b1c0155b9d1c68e48939b";
+  sha512.doc = "1c0e5e64a10372093ffbb4027a8edb6d7e42d1fc55d37ff695b7c19062a1403c00058fe0471eb56e9bb912e6cfdc13d3e46687dbd55f1efa58095d73f28b059f";
+  sha512.source = "01fee5b5367e15dfd4d9ea156b66455efa8c86c39ff49041c8fc9636ff79eae24e0c764673a75ce5050be81e9ac8ca3ad6fa2ad50fa7953f6a51292f1605b24f";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "13.1";
+  version = "13.2";
 };
 prftree = {
   revision = 54080;
@@ -34191,13 +35044,13 @@ prftree = {
   version = "1.6";
 };
 principia = {
-  revision = 58927;
+  revision = 66625;
   stripPrefix = 0;
-  sha512.run = "d56a9031a7bc81fa62f99bac5ca88b12570720a51823566cb61845c7c0b73232c9a8d94d453585be72b2c2fb5565c7bb257a7d0533fc17e956b976977dec3b56";
-  sha512.doc = "c5325b70a14725c9cb0d2368b0b6018375c91ea5be663731d4c016d945aef001f277fbdc0938f3c457e7328f64187bf70d79bfb37a1631f742b14d53a6ac4682";
+  sha512.run = "ef88cb4dd25ec8cd3d50a7f152698e771c8b5f1fa18adad21d55bcd3a8088a38b09eb19873c6a3d1883101d27f318bc092c9c1219a2be76bbc07bfd2eee9711b";
+  sha512.doc = "8dbf4e19a3c688278c52299731ca24fef83d08886a179f15cbc58038fe92d5ddd6e57bce1451a0af686593f98adf9ed3f52ef0b20cd68f65df52b8b6a2576dc3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "2.0";
 };
 printlen = {
   revision = 19847;
@@ -34254,13 +35107,13 @@ productbox = {
   version = "1.1";
 };
 profcollege = {
-  revision = 66371;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "cef2b7c2e971f3a5d8424e447c4eec6c7fda96ab2483c832922b7094e98a0c4f899d11e4c1b9c2c02be5114107fd6ab803459e6062fa728d57784f1d7492a82b";
-  sha512.doc = "c99b666e80fa5220b982dc490f7396a630b2038fee9c0edecaaf36686fa6cc7f3bdd38ef187af3862e1e7a68a8daf9732375da69a2a7b3737bd7c53ae509c729";
+  sha512.run = "eb75b12f184b7e3f5ecf333a376b8d59ddbea8a0cba86c9b553074686c354394f10de5b3187b85fd43f458495dbf72c9f0cce7c98d5824c33f485605dd064e7f";
+  sha512.doc = "3976a1a95c47db9bf270f7730b8abd98d82356fdea0897e797d71a8b688c83a7ee122ddb59cc6f34b05d603d3611169bc5afb45c32a4568262b8f0c299b73965";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.99-z-f";
+  version = "0.99-z-y";
 };
 proflabo = {
   revision = 63147;
@@ -34272,13 +35125,31 @@ proflabo = {
   version = "1.0";
 };
 proflycee = {
-  revision = 65977;
+  revision = 69386;
+  stripPrefix = 0;
+  sha512.run = "66d28a0ee9a4aa7b29fc31cfedb7dc95906cc82970a9a78fc5fd3cd95558721ffc01ac58cf74c2b761fe47779aee5349e05e64e3b0d71cf1ce76dff813724bff";
+  sha512.doc = "ea3821c1b94f71cd691cb78c46b78f4d607b489cdf1be6432caf7346505a008f887e0c9e895242adc23bcade67f9187a6b3cefb241322682141adc354db53f03";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "3.01e";
+};
+profmaquette = {
+  revision = 69287;
+  stripPrefix = 0;
+  sha512.run = "9fcb9729d28a2f41341f3b4f807d7207e33ab9bed43e44676dfa884ac9cf943fa84fb363a5453611c828e1b0b0f0bd795972b52ec736ef5213deebb7fbe42028";
+  sha512.doc = "7888eeeee9882c049977e96a9dfa65e50d90014e9c442b36cccc08fc95d392c78b25feb3bfaa1844a282b5bbe24bf6a4df1fd1d3d0bf477d28fd16ead0b61065";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.85";
+};
+profsio = {
+  revision = 69125;
   stripPrefix = 0;
-  sha512.run = "362f7d87e5e29d06ba4e08e31fa27dc125051c712d4afdae1a50f101af5d7b0c277d79b503724ed89e66ce499d6540b7af81c33ad9d008859b8185b040e4042b";
-  sha512.doc = "8127d993f10c8be4b12822f7fb337564a0a02d7f4008d492c4dd59e7f22518877987f767ab06b3fdeff32e24da15befbe465e6e8d018b9daff3e5e2f77bf9ab0";
+  sha512.run = "01f1aa3951194f5bdedf6c3c44445b1f628a6abd633fcfdc5dcf01f8777ec50b28367a4deb0c303b41983881c255ab21e3916dbe03c1c926f7f2df6be119fdb2";
+  sha512.doc = "f6c650c6d4977df846a62a697fc1b4e82ac541b68db55ec15a0370be2f7b06e8e45e0c8abb81d5573d4ac2dc868cf63b5b19b65de7025afd4f5f69a6cf516b99";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.5.3";
+  version = "0.1.9";
 };
 program = {
   revision = 44214;
@@ -34308,14 +35179,14 @@ progressbar = {
   version = "1.0b-4";
 };
 projlib = {
-  revision = 65475;
+  revision = 68784;
   stripPrefix = 0;
   deps = [
     "create-theorem"
   ];
-  sha512.run = "6daf672c982bbcaf73fc726aa6d3a475c3b0673f22d6f30156daf1235b9d2798d7359134347f1349a557586f8ce592c421bd536766aa7246b2eb07c04e102339";
-  sha512.doc = "7be28ac70142ba767138164c98240da1a9e37b864b01ad3c4f71ee3adf1148e5059e5bf4cc87456baa2109160de9ac698657a749a1859ef5a1333101637fc1ee";
-  sha512.source = "20228363e654a1329cc5579094fa4967534e7a07d7b385763531b90b2f436e688667880bf962025110a0b693c2957585d3cdd8ee98344ea3b26ba791d572d73c";
+  sha512.run = "0966ec8d951d6b060e901624e6137a60e1dfa6cba8599102bf7aa16f4caca5ebf4c234f6abd0a71cf8e54f6a3573151c406f5ee5d541c78517c64aba853bcdcd";
+  sha512.doc = "89edeb895c63c96ab12d27498c92c29194a4edb11f92292b072738fed7eaa766ed86382c0ba26eaf9038d7ad405628cf5fd21ff67ab3405883eafe1529899182";
+  sha512.source = "5320ae1610e4c0372bcce855f633c43ed64e928bd770b013ac656dea33c77bdd93ad75e578b71f66996973f365032e9ff20c05589ade56e02e88b244578965a8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -34339,13 +35210,13 @@ proofread = {
   version = "1.04";
 };
 prooftrees = {
-  revision = 52221;
+  revision = 67399;
   stripPrefix = 0;
-  sha512.run = "f455c85a30ca4882829e0d2b74f202b129333962843a799c575f080de9b67c1c543db10f012198655760bbe894eae2149eeba1322de3392bac0eaa9a89fe00df";
-  sha512.doc = "ff1ec0f5f9112e7fd09fee4e3ffba06bd281c4578a055e831c64a8edbec234bd69c6e920745fe6e4fbcbb12b27189465d4fc41c9dae4f1ff80d5096ef9dc3cee";
+  sha512.run = "ee4feb832296a512e180b4d38e5989a87d6884c3c84ea2b224754201e42fe2fb6c4f68461a0cf3d3cda10b263c88c6da9e082572093f53ce2e8c62473d4707a5";
+  sha512.doc = "67cbbd3068410bf152d54c2f25821b5672c33b68e76fc7ebe02f0df160cc658b20e072379035f090beb34a7d4d5ca21809965bd8e44a554e5ae65039a12f4850";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.7_svn_8641";
+  version = "0.8_svn_9582";
 };
 properties = {
   revision = 15878;
@@ -34423,9 +35294,9 @@ ps2eps.binfiles = [
   "ps2eps"
 ];
 ps2pk = {
-  revision = 52851;
-  sha512.run = "4b3ead8d2708a182d0c158dd8ae5077fb2f4a94c7f6fff52a66d6479d4c05de3d742e4c960ab79b63084435bef491866c38e01d77c41ae3d630c7a32450d0a11";
-  sha512.doc = "c5b22a86807378fd7d6d83e8802780567a2473e87875bee4c827a48ff470911855bc4a1db4f439fbda1baf71f714086b96e6e78ee059590fb6ebb45c58abca4f";
+  revision = 66186;
+  sha512.run = "764e6dc186bc0e9c1b5ee0a3c5a256e9d42d81645477bba49c59baafec55bc9af63124f77227ca5b6516bf3fa2bdb8d201af813cff09ac9da4574e70351922ce";
+  sha512.doc = "032c5ab3442cf668d6b40851bdf710b4e4b9eca701bf04c87359c579a5fce52bedea15ee5dc9e4c5967fcc0e3b84805450987b73c204e0df4708b65a7cf74c13";
   hasManpages = true;
   license = [ "free" ];
 };
@@ -34445,13 +35316,13 @@ psbao = {
   version = "1.0";
 };
 pseudo = {
-  revision = 65690;
+  revision = 66638;
   stripPrefix = 0;
-  sha512.run = "553146a32653fe020c708b3b3a05285f3be5e8b9ff97e6c6e1593986438bb5e7ed4c094f3bea4c2774ad3897a44cd5b4a7e6a864e7423da351400058db64ef62";
-  sha512.doc = "c32b1f5de9d13099b4eeb2dc9b3036e7199ed5ddbd90010de0846f077373bd90fc6ddbe188d00bfd6a7b8f4f421907281a7152c8a09a8a8c03b820f95e9247e8";
+  sha512.run = "223e02f58f4b1cb137241a273cc6aec3c2923ea49bc74fcc220df449d01e6b3009ac6303a99a5d368ab3cee62d6542707feddeee30f527c2be1ad8771244ca85";
+  sha512.doc = "573b023b0d9604ecc98b774f77016fcb971c7c5dd508fd272169ad5d3da9f5273d78c07801257cad5c1461de2ee425f036afdbc827ae343e9ae151a63c86db73";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.2.2";
+  version = "1.2.3";
 };
 pseudocode = {
   revision = 54080;
@@ -34508,10 +35379,10 @@ psizzl = {
   version = "0.35";
 };
 pslatex = {
-  revision = 57434;
+  revision = 67469;
   stripPrefix = 0;
-  sha512.run = "64dc0f10f3aaa78a4d611d21601e5fb3f27c7c97bcf04f5dd3192f5253660edc862481f3b1bcb8b18b6cc07a6064e78953c31470bf36bc70103f2a83374483c4";
-  sha512.source = "086805aaf0b61b8e3e561627388ea1af67ef8dba3a0b5808ef3d9719652e76abf4353345ca2096e31fb33c9c960b01b4972754f29532a25e91ad59dc6c1d6cae";
+  sha512.run = "b08cbb8ed7a4b89b9018b5b31bbaaf8ae9c520ffbf47b54d239b30ca67a26e138206c1f2f9951f8cc5da49357c0eca9a3df9eda4f02119355cf2be0a85c3a825";
+  sha512.source = "9943941967009a9d3cac0841318c6a31818f7496ded89fe6cf4d6ee8718913d0145497443762d55e4f80a1fee496b5170ff4b6c13266f04e6ce4c5bc2bdb5728";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.3";
@@ -34560,13 +35431,13 @@ pst-3d = {
   version = "1.10";
 };
 pst-3dplot = {
-  revision = 61615;
+  revision = 68727;
   stripPrefix = 0;
-  sha512.run = "bd23d297253501185e817e0b5f8f13705434568d73be8f4e1c8adfcd3b6c55438a72997601b6696af91cb6733d2330ff810a0678e19f79203bc979c49c5cf722";
-  sha512.doc = "544b0fc05fe259d49861e71718e090a45dd0de233e90d2ab248ce2ed427f1113891fc58062126763295651e540fc306f0bf9b4fd516069b205cf063060a03c3a";
+  sha512.run = "1fefbd8b34e49b7cf6bc35bb761ed9aa49d062d81f280936b86b58f123cf6023e038308f066a2f9e62c2fbd4181d3dad781525f289a9f5e58acefcdd344fd69e";
+  sha512.doc = "7e15351efd6190ff52e10287a7797a6ef0944561e381793290fbb56f6f2f174447343d10c9cfbfd0f61a62755ea0b3eb7adf52dfacf1b0b7ef2ec159f393b4f0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.07a";
+  version = "2.09";
 };
 pst-abspos = {
   revision = 15878;
@@ -34774,13 +35645,13 @@ pst-eps = {
   version = "1.0";
 };
 pst-eucl = {
-  revision = 56474;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "a076efb338fbdff19719156e32cfdbf74500de253ee358dbf64207b762333ff2d3d167cea84ef4ba906d247d96adab9705091c5dc7003400097356b1f54f9305";
-  sha512.doc = "24df2d92c6879f20f4515196d5390fd9b0d97476b662a8e7302664be5afd08a3127dece9a530df5cb972feff6552321749b38a682a58d7924393304ea1c75a9f";
+  sha512.run = "9310a2ce965b8cf9b03aff8c505515cbe386e12fc5973a4d8f26bcf2541a856605c8f14849baf649b1d1c24219dd4fec6ea5375ea43e8ff533171dde4e7d5ea7";
+  sha512.doc = "1054740975d1be6100ca269221925af22fd1760a5f88ad942be398a889f59209da79e31c53c702a02fe639d218d80820c3f1d1033349c283e9fb6e05c7e7643e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.75";
+  version = "1.77";
 };
 pst-eucl-translation-bg = {
   revision = 19296;
@@ -34864,13 +35735,13 @@ pst-fun = {
   version = "0.04";
 };
 pst-func = {
-  revision = 60933;
+  revision = 66845;
   stripPrefix = 0;
-  sha512.run = "f33d9c983c7b79fb6d8f1a8e473afda6f2a4b23e133ab004f2fe4633e4f8fc3fe885034b409f90842c4a4cb81c86527edef445e1408a57d78aef1a006225e85c";
-  sha512.doc = "7d0ce738ecdb79eb4c630a5bd51ebc47d92f6ace9b35ee60928520c51c96254ff1f554ff08d8d8addfdac2b28b3d7dc3f90afb73838abacb3f1d8af0fcdf37ec";
+  sha512.run = "28c50cbd77b2400cd262b8156c01c2adf655da279a33703502d79590174824b0470a788db1a04c7439c63d1870eefa19a559f6f76c0c80c076cfb259eb920970";
+  sha512.doc = "b25be44e2e42b35ac48730aeb2d705082b99d5bead17119e1c5e353790f25aabd294043f753291265dd102ad7d8448c1592e5fa486fda317c1e8bd03aa1a3ca4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.99";
+  version = "1.02";
 };
 pst-gantt = {
   revision = 35832;
@@ -34928,13 +35799,13 @@ pst-graphicx = {
   version = "0.02";
 };
 pst-hsb = {
-  revision = 61322;
+  revision = 66739;
   stripPrefix = 0;
-  sha512.run = "0deee202545f52b65b4fda752da7d43608118f33c9d3f520963b27229e9ec7b6d0161dc490b9ee6e356887b152f5ecb86640bc335d902070b1bda3744d9fb5db";
-  sha512.doc = "924a7a4a1aff03e308d5c8342f9c370669c8dec48a75c782beb887f2a05123369d5365ea86e2d2274f3dd930160d7935356cd5e9b4a6f8793bc83007cf48f841";
+  sha512.run = "d3eef4f4672b938b84d1fafbf22889f9d7116af9a0574a95bfe2a7225d4a7185abcfb862ba7309fca924993f9665f2086a35edde97306c4b2311cf18f1763929";
+  sha512.doc = "a2664b558f51c43ead6c078f0895f4a6c5c55045b8485e7f564bac10279b997fe082279e3cf2c35a7f47f78fd826ecc5a65daff112dc8659768c3b6275b7c854";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.02";
+  version = "0.03";
 };
 pst-infixplot = {
   revision = 15878;
@@ -34974,13 +35845,13 @@ pst-knot = {
   version = "0.2";
 };
 pst-labo = {
-  revision = 39077;
+  revision = 67147;
   stripPrefix = 0;
-  sha512.run = "a8bc971be59f1072657d9cf9d26056ba800023858df1d060ccc7e31d2c533337520e9583de00085842dfafe84a590e0c90706ac00bc98da282a5454fac76aade";
-  sha512.doc = "1b35f244a45fd18eeba484f925292358b5582f0ba18a9c6622afc67ed287e74d0c1c876ff78c19de0e9b53f55c86f30f47a6d179e0142e79aad5c5799e497ba5";
+  sha512.run = "d04fe4359a34f466d306265919bb13483d5105d6c77c8e297f1f964fc8224b6923773c4d3a0c58f8dd9b809deddb4dfd4f99f205f09de6a9e64a2398b17b7ae8";
+  sha512.doc = "98d55a590607e78c55402af375fd25dbe1d44bb4793d5dd3327311f9e9457e8b6073cebfa3dc993560d5144426e8195ec450b030a8897c84c8b711afa28a3f91";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.04";
+  version = "2.06";
 };
 pst-layout = {
   revision = 29803;
@@ -35039,13 +35910,13 @@ pst-marble = {
   version = "1.6";
 };
 pst-math = {
-  revision = 64732;
+  revision = 67535;
   stripPrefix = 0;
-  sha512.run = "b87863c646f8057baf3fc07868c09349b8803a01008782ab814a2f2eb126d6e574844be4733b06c3f16fad286aee3081b13a17bfbbef9cd019c836d2c9a5e4df";
-  sha512.doc = "c5b26a73075910edc8232df349ee76a8264ab533e4259146224cebda4d6709867f7edcafab115ac3fae977c9d11b38821b4b085a2ab5529ae585c1daf8b738d6";
+  sha512.run = "12bd81bed4fc5de91cd4db49cb97a9911848c347a9a9325cb61637368bda4e0f35f9c5c348bd385d46907b61aa06682ae1a9d70616d4c5c81659550064d4cc0c";
+  sha512.doc = "1b07b3086fa3e1d12f255632ceddf5b30c219472763cc43c0649b669a6014bb76e3a0fe7c182d0ea24c54fee8d2efe8399867321992e20f7f418d28198661bd2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.66";
+  version = "0.67";
 };
 pst-mirror = {
   revision = 60506;
@@ -35085,13 +35956,13 @@ pst-ob3d = {
   version = "0.22";
 };
 pst-ode = {
-  revision = 65096;
+  revision = 69296;
   stripPrefix = 0;
-  sha512.run = "dfed4dd1a61650be4aa3158bd33f8175690e951b6410a1a1be8c46426cc7812a59cd16e5d1fdfaede81ed3aa11c08c9d9e9fd9b2d420a643c769efe12b9bd2ab";
-  sha512.doc = "0e699eda64688a3d071aa889c75e52658759a2c34bc35257fc1126a93b594c7cd463f127a4a2ba77823bfa45ecf44f4daa4439439856ea24431ffacb8be8956e";
+  sha512.run = "1474e118f16c644c7d63ec89a42ea598443cdeed56e965fb85bc75adea4a8d5572a49f07417786682844523d30438a0a2798e9e5635879891f039453e53c4264";
+  sha512.doc = "f46dfac052060fbe8f41d74a59e85c3f7b0d0d25bf2b65209e7bb53d6478947fcd4a2af9b5e68bbe585afe94fa53ccd80aa80f2e1e21b68210d38fbd114b217b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.18";
+  version = "0.19";
 };
 pst-optexp = {
   revision = 62977;
@@ -35104,22 +35975,22 @@ pst-optexp = {
   version = "6.1";
 };
 pst-optic = {
-  revision = 62977;
+  revision = 67052;
   stripPrefix = 0;
-  sha512.run = "98a926fc0ffc8a2e2ff6c2a29ccea1ca08b1ad90237b44727e4344b1d86a356cb9ecdf252ec65455e0097c101487085304295d750ac40bfe6ad8bc1081e3bbde";
-  sha512.doc = "86ee25200efdb67a9c791594277a25e262f78ee0fcfbbc434d292cf61445e3d41b5ee1271fda9d69d756bd4ef70992195ee0e7b37023ee131c69ff7f9a46b980";
+  sha512.run = "132b3eb936678d51a4581efc14998c794047959f89789ed22098326912d00eaa0e39396608d3c1aa78f1fe8bccb21ba2ab454bd2b3744ba252c24f164c58e23c";
+  sha512.doc = "a7169c870dbcb336025aec5d475afa9691ee524b35ef3404f2e3244c4e4c0f08def16a8eb458eed1a8ebce27c969ec80004904484615588fdbb401b863052efb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.02";
+  version = "1.02a";
 };
 pst-osci = {
-  revision = 15878;
+  revision = 68781;
   stripPrefix = 0;
-  sha512.run = "d36d987ca50c50c0840660070dd7eefd4ff49f4e86b1a6f33bb9e549a1468f4992a7eff6de56307e5d5bf4e8063534cf4f658df8e98571a1d86fde3555a67e08";
-  sha512.doc = "80d99115c7c3fdcafef8f4be99b3066799cb40571e219158abb48de0ba405a0c977d0158c20e2b550895d1e63580bc7366338fbbbe7add2c3a89abf618583ecc";
+  sha512.run = "c888d41f7e14cf311b359fd37aa0557fc9fc639b76dd5db782099f6d307c4e5e3214df2a670fcdd3625818e461c34ccc0e50ba617714e58aced1c71b484b63d8";
+  sha512.doc = "5abb2eb53cb6cf1492c9bfad164ef8ed1088e6b6cbe1f0af6bf0ec10b34de3c5b17163e2bcfa52bf0b4394f3945887ed0e532fdc6a8497189325d10db50f4577";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.82";
+  version = "2.82b";
 };
 pst-ovl = {
   revision = 54963;
@@ -35283,13 +36154,13 @@ pst-solarsystem = {
   version = "0.13";
 };
 pst-solides3d = {
-  revision = 61719;
+  revision = 68786;
   stripPrefix = 0;
-  sha512.run = "b70a15acf3f8ec551f8c10d9441101950c7d6b2e886ebcbd9584ada67141d3068b66339e2df9cbad85db9b3950f4463cc3d9ff92a4f93241c37b591b5b5ecc6b";
-  sha512.doc = "15a7bac7f5aaf751c4b450e07c1b7222bc569ce9e9b7359cc53019f9295561b85addc3ac0cf16c791a21b88c6cfae720a54603ac1da2055f0c99296238b02fd9";
+  sha512.run = "fef032b9aa9a87711e2c09e0a7213a2c3e70451e64060ba9fad81beeeababdc622ec46107f077ad2869a8ba9420fd81e3e9df96ba60f98530fb3238d4bec45ee";
+  sha512.doc = "3bbdf115c8cb4e0dec4deebb1bf8af6317eb0deafa19054404f992f79361a913b26e1523a31105b7fe0addcfef438a016d6b5c5780da564fc108a58f449ee86b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.34a";
+  version = "4.35a";
 };
 pst-soroban = {
   revision = 15878;
@@ -35311,10 +36182,10 @@ pst-spectra = {
   version = "0.91";
 };
 pst-spinner = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "0081d28bdd4ac90ee3070f2b07d08a4a547d3a82351c33dd6ba8379d6bad252224f40f6e718727a1b284eaa08b4fda252751d9f923bd10a46223b459b7f02f28";
-  sha512.doc = "612acff35b8953827125590da90f31bd5ef0a6a81f14ba0976ce7180b6a24e42e27077b5d0a4ec6737217b8891f399b37536123baebd5c04df2da05310a5102f";
+  sha512.run = "ec6925c95e398426089234227b29a2129a58097d1536b0f1569c4a0e6b4d7deeb0eaf7d9d5ede851c93cff49da05772b6113ad7ba0cbb34b854e3b2261bdc41b";
+  sha512.doc = "1cb4907c6b5feb39c947361176edeeb4da560935d53b3b56507642142f3dd61d98caff293c0d686bb33383c706f1cd865dc3644379564310b141c3f0204cdb57";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.02";
@@ -35461,22 +36332,22 @@ pstool = {
   version = "1.5e";
 };
 pstricks = {
-  revision = 65346;
+  revision = 68767;
   stripPrefix = 0;
-  sha512.run = "aad3d0a383c8b815324a3f07c02a6c747d026a2b107ce4e24be6dc868dc884e0202239ea19fc4ecca786000ae61169422095217d42b826466f0e3886c58cc2b9";
-  sha512.doc = "c996a3e2d4c088c3ae6332855882f461a931969e9f88ad64bf656d2b11ad10bf06e5076d381f316f95de1d40d68e437ae8cd1fc450b1e387ee39c54e0d7feb4e";
+  sha512.run = "606b1b487d523253c71d814289ccef2fe9c91c091f7b588fc842b2121da3ec592387774565b3e998c44bbf0ef17df0dd2207f632ceb8bb04df8f8b203603c4d4";
+  sha512.doc = "5df5f84afd8793de4201738a032df4c95ec017c67fe19966d908221e3ff69e77589f051232d1fa8fce7f15fe5702ec3abb6080f4676c2a31671543933ed32ed9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.18";
+  version = "3.19b";
 };
 pstricks-add = {
-  revision = 65067;
+  revision = 66887;
   stripPrefix = 0;
-  sha512.run = "89a2e5c037dcaab7b14bb673cece21220f66865e75eeae5f2dcd0ccc48d69b26e906d97e07fef4a0fb1908906d47c75394b06a1b378787e1c3d02eb7df11a1da";
-  sha512.doc = "1021ece59cb0cc41c0ee9620c84a2de8aa5dffe7e8ff7f3adc286054f880dbadec70b888c7e23152c318e5013e581e0c34a68581ec1eff8508397730a5fc8886";
+  sha512.run = "073ce9b5f97c4432d87f51a3b239c758e2840ec894847c334dcd206433e6c0a45575ed2214c00bd013f9ddc0945a696a8eb45b2efc62d8425d1c9607da658850";
+  sha512.doc = "552fcc2f0d448bd1d7f643a5c9f2521f72fd61a653363eab3bf6f31bae306a9c6694ca8d64ad5a5997adea9b92978aa366ece8bd7966c9d129942f8f487b99f3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.93";
+  version = "3.94";
 };
 pstricks_calcnotes = {
   revision = 34363;
@@ -35515,7 +36386,7 @@ psutils.binfiles = [
   "pstops"
 ];
 ptex = {
-  revision = 62464;
+  revision = 66186;
   deps = [
     "cm"
     "etex"
@@ -35535,13 +36406,13 @@ ptex = {
     }
     {
       name = "ptex";
-      engine = "ptex";
+      engine = "eptex";
       options = "ptex.ini";
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "ptex-base" "ptex-fonts" ];
     }
   ];
-  sha512.run = "6e2e40d86740a24550cb4f55630db81bdc777daf87533cb23b4fe041439d00e10cbb7b5fab92e33828c87945e710ea3579d76a8e0fdae0b8ba069b5eb33968c3";
-  sha512.doc = "96aed9e990d013c7f5310a5ec86a1f7465d0de8503009669a5e10ccf4d3ed8767bf1408cfb04cfa8876e02640bc4a3b07249c331cc6190e391cb4a5b8aeafa35";
+  sha512.run = "dca32af2c2742207b380c909190204049e29eb9c824f534c39757e3544e305a9395c9fd6ff76d855f1e7fc67e0999bfd863640fc2d2f45dc44bdaa7df543568f";
+  sha512.doc = "160902b1b32b9725f4c7cabd06dfb612fbbeef31845df108efd50917d85ef619ba62d03760852d31a21a23e2bdcb5035292b317982d7fede260a696041bb2293";
   hasManpages = true;
   license = [ "bsd3" ];
 };
@@ -35554,11 +36425,11 @@ ptex-base = {
   license = [ "bsd3" ];
 };
 ptex-fontmaps = {
-  revision = 59711;
+  revision = 65953;
   postactionScript = "tlpkg/tlpostcode/ptex-fontmaps-tlpost.pl";
-  sha512.run = "16afa97812d830b2b98f657f67ef690da420afe63ccf6f002131101f3ce9a03ff6e5170db1b316e9db521e4cdf89c7aedf26c57be162bf1c5b48fa4226e5e029";
-  sha512.doc = "affd6dde30276fa680a0d99d0a51650ee95260535dff717801d61ccb8165c5526047e46ad6478367a439e9a84721500128062b8cb6a1f33a25a65fadae4547f1";
-  sha512.source = "eb450119b3897f9e8374d29a3a9512819a05263d5829c81d56dc00dd35995133d1a3cfcadc59ce2aea52ac8b5bc195d27446f159356e63b433e235d1098e93b5";
+  sha512.run = "b864c185b5718dfa76e0d4385654ca8e319ab0cbb59911defbec8d6198879265d064087df233d9020f3abc4bebe0742530f40b2ae6e584dbb4f5b6ed7ff28d07";
+  sha512.doc = "4b21fe546634aad338630520bf68fce2a83f8e6fade99d170ef87a92c8308dd289ed130bf67bfc88419f8752454ab04730bfaa68de90535984590ce8435d87b5";
+  sha512.source = "028304d777bfd5155baf89fcd4003bec43e5a7f3009aa9250cfd13277d085cbe52cf49511cf664efa0c886b1681475b0c25eaa65624bf0b77d4ab4403ebb457a";
   hasRunfiles = true;
   hasTlpkg = true;
   license = [ "publicDomain" "gpl3" ];
@@ -35579,10 +36450,10 @@ ptex-fonts = {
   license = [ "bsd3" ];
 };
 ptex-manual = {
-  revision = 62915;
+  revision = 68147;
   stripPrefix = 0;
-  sha512.run = "3748c0c1ac982aeb2f8210d877b20fe9a6c42582d21fb7e43b9c254e787f22259a90ef1d398e498ede493dd3663be521b42d47cdfe0c5fbae3f43ad5be16e446";
-  sha512.doc = "f84a8a047c4387ee45214b6bc98cf2710cdd3497e5a6066fed518b754fa4dbcbe1602cdedaa0f48638f37801f7f7801ad40f288a2e5b8e03cb36848d3992a7d7";
+  sha512.run = "ffad7c7c67e7c6c92ec7b814cba8ca8cd7fc9935d5b6c7f685ee83b97cca56ac410ee2c15f8d86f4bbf443508f2e2224603c9abc64e734451ee94ce968425d62";
+  sha512.doc = "dc2643c258a98410d9a456e16794d70bf6de6e1a40b8db2bcf7fb40e20953bbe482cb26cf3e65b0caa19806e915cfdd3787ddcbf69108e2af0d83e03d3b0104b";
   license = [ "bsd3" ];
 };
 ptex.binfiles = [
@@ -35599,10 +36470,10 @@ ptex.binfiles = [
   "r-pmpost"
 ];
 ptex2pdf = {
-  revision = 64072;
+  revision = 65953;
   postactionScript = "tlpkg/tlpostcode/ptex2pdf-tlpost.pl";
-  sha512.run = "1893a49eb389914d7a9247dece7f67d9d6af05efca77801130726d6422b1a0150b56f29d3f133f433d70989f6ffcc2b44d209cd044c84ee0833c2f77b87f3e46";
-  sha512.doc = "f193b44004b487d93f025b34b72a17cbaf4111b1a6e1ceb4ac1b69c6c07aa4dce46cde510cbd01fb71fb08c06f7bbb415a4a8051de5861f1f586b756060f386f";
+  sha512.run = "6a4246d9fbc7cc6f37319d338df8320769cd4b1f0247186beea117b8bf228263f3a330146cf251a9e8e8c7232eb894ce6dad9eda840dd4a154f2502eae4c0f57";
+  sha512.doc = "5635ead2dfa20ce9b616073272452de5c68c55104d88b2362b87cafe4762608d681b0c370169bff78466520d14f9055e509efdaa4ecdb083c3c3111ad829978c";
   hasRunfiles = true;
   hasTlpkg = true;
   scriptExts = [
@@ -35623,6 +36494,16 @@ ptext = {
   license = [ "lppl12" ];
   version = "1.1";
 };
+ptlatexcommands = {
+  revision = 67125;
+  stripPrefix = 0;
+  sha512.run = "2a2924af70b0ed8d76f6062482a500371d67d5a3bc0b87382d76626b34da9c1acdf9c123ebfdab2e5e79041b10d0e327e9cd732781e5fa1620247bdf02dc21fb";
+  sha512.doc = "5b9fc92a4cb3597c0c95936d5fb6ad475ca4f9896f8165a0e391e591bb3fc9ea75ae79c14ee62197200d69d577df8025e6017960beafe6bef0bda90a6a615118";
+  sha512.source = "47c0d8ffd0f352a39f54ce32696fa67d25dd438de8fede88bfc5542409cf5576c953b40180b5ee1f469067e2ae5ea8543a68c84246ef9ffdc3c51c14866be690";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "0.1";
+};
 ptolemaicastronomy = {
   revision = 50810;
   stripPrefix = 0;
@@ -35690,31 +36571,31 @@ puyotikz = {
   version = "1.0.1";
 };
 pwebmac = {
-  revision = 63731;
+  revision = 69027;
   stripPrefix = 0;
-  sha512.run = "ab1351295df1586617b6efc850475c8bbde08ff935ef0a3f72f54402e3d16fc7aa01e80aab5a39330c4bfd9f6003f08a7e804c1caf6a21f4edd94cd1182e1d72";
-  sha512.doc = "844a684b9e9d3eb148acce41d7385150f57ed22d802a04dcbad57f7d23cb8a08f6da556c9b3d8e1bff9525728249e64766c8e0af143ba05d59316da289676e3e";
+  sha512.run = "aed495ad3c056a34f63416e570db395125719e9a9cb05c5043bd4f0d58713c28ee548c931a5c18d316d0a2a39c81671788f87b422f01148cf9ecdb52ab2a87d2";
+  sha512.doc = "0312806d06b3db91d2e0bf3df2c1f3dc8620c1f6b59e4e968232631edac217e99bccede5d9cf133f52409d8a664f69dfa072ab5d205f67fabafa0ee74db90d20";
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "4.8.1";
+  version = "4.11";
 };
 pxbase = {
-  revision = 66198;
+  revision = 66187;
   stripPrefix = 0;
-  sha512.run = "0c4d3dc297e78c373e9bb5cf6e5161b1607b693c924b77c05ca362e7791f2fe92fb50774121d85717adceb42732e877ac88c2200ab1b2b97deaf07f2ba54a3c2";
-  sha512.doc = "24e8d7be5a6799b712cfcb752082229929806805ec4005e2c05506bca77a4309b046a38ecca5b5115e248de2418e5c9a368aa894c4a8ae7bc36e8b9ae6b921d5";
+  sha512.run = "34fef6f30f53ea2c67394f931168025f7dae7f6e12904b862ef821040a15eb3eac0949ebfab7b1b3dfae8e9944fdb85b99294fc6214df0ce8c1b82eac2702ed2";
+  sha512.doc = "4e1fd7e88d8e17dbc4f65a7dab0f3c4bbcccf3b24b55085fafc9f393cd99a653ec2c4fa41ca85760436a1c7c6121848c57912ff649c302db6966a5c907dc0209";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.4";
 };
 pxchfon = {
-  revision = 66073;
+  revision = 68103;
   stripPrefix = 0;
-  sha512.run = "79d73304aae1071088110c5b22dafa6c8b0a4dc7f64758152846c37f4df89695432106ee7f07bf6c342ecfb4ff89e8ae67cd3178625aeccdab9f52fe83a3c999";
-  sha512.doc = "50d2573e8502fa4e492793d163027252d597bca376f36b12f7bc9411331187544efabf4e30a1ea77fc0e4f1efdfc83f06fe8b663441d84f9360a4da501187214";
+  sha512.run = "c79d32b99873e5262d3497846af0fe8c327d574ac61030241a8a1d95e4439794439cd3fb75cdcae51206e76bd4218a6778717492c036ab71aecd8e67a0040990";
+  sha512.doc = "1f50dcd95cf37669330d426238d398d5bfb2503e4db06287f7a361ef87136547d1020bf1d35fcd9504ea5017dc9ec0a0cb8f9298e4d178ec4c7cd426d91f1d6f";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.9a";
+  version = "2.0";
 };
 pxcjkcat = {
   revision = 63967;
@@ -35744,10 +36625,10 @@ pxgreeks = {
   version = "1.0";
 };
 pxjahyper = {
-  revision = 66285;
+  revision = 66272;
   stripPrefix = 0;
-  sha512.run = "3ac06bfc5be7914356d10e53574c23b417ac1792b75f0d8d2bea9542046d0eba66b505db5bb0136c79b21419e61fc18d0f128c29441e40e764608dde3835cbab";
-  sha512.doc = "e367cba02ff9debabba58923e1b706b9ba2ef7b06416f7e39473ee64b253cb08c1bc60949e505ba416c7d1de85c6de481d9ade102e9c33a59bcebaa68967159b";
+  sha512.run = "f6e62e0dd4a5da2e9c702fc09c311a0661d58668c4999eaf5209792d3c88001b9e7d80cc1a9c259ec5e2668a7139a4fe90dac2b23ea756f238a387a6c7e66772";
+  sha512.doc = "f08af33a25f837e86dcd6dcd0f96d9f7bb2570eeae9011201468fdc9bac50bb8ea72d4f069753bb0c93aa9d61952cebfbbe936f65220167e4648cb206b901aae";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.3";
@@ -35771,21 +36652,21 @@ pxpgfmark = {
   version = "0.2";
 };
 pxpic = {
-  revision = 65803;
+  revision = 67955;
   stripPrefix = 0;
-  sha512.run = "549dcda0e4667fba7d7ab6d34a46fc890f1c9c7ec168b015e8ce07d2cd6531880433dd657dd46ce63fea534d87f9597be365813446d9ea524fcfff61f139d6a0";
-  sha512.doc = "4bb203443bfd227a7cb1d2aa2ae43dd69e3c52c7a81bb9a94fdb6ed41cc93d95016c33801bba28324a02b8533395f0affd90c9dbf07054def888c26a3aaf3425";
-  sha512.source = "7a68bfc2fb2e2dff88d0515c050c32ec4fa13745efd9bad20a216a9425bda688a31a881b955e2cf94eac1fadcc54dd6df0d7968c90acdebad4101a871d3cf40b";
+  sha512.run = "4eade52198c6ed8a9e04380cab15098435b2e158f8662d32c88599e02e49a2f7f6257bbd6fab8d3c660e61ff679aefb38d29b4787fcef0a3510776a21707526a";
+  sha512.doc = "28151cfd56136ef07c9402fb8f4e0da4a2694164a38e7eaeb5045845731b0b204813b9c0f2b07f9998619feea24effd049cb42a0057841a6a3b3bd998dbc0124";
+  sha512.source = "f5281b971ee70e963cb308a1906bfe8ef96939005f8b5972680db8565c1d0c9697d674426b0833064a07dbb086163c621d764125b3432af3d960a3e466b250b5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "1.5";
 };
 pxrubrica = {
-  revision = 66307;
+  revision = 66298;
   stripPrefix = 0;
-  sha512.run = "f274e1bd151de3159a415287e6a97b5f3035119b799a45ae782377c44e73010b69f6e7f1e491149f4a884041bf8696c767cd8779731afd8cc1fce62ccce1fc9f";
-  sha512.doc = "91cd5efc54e6c8dd3327a16e722386ac12d66e695f2ccdcb951b77199bb64b081645831c3db6d0c9192348302b0fd8ad63fefeef6ba6ecdd7f1547a38ab28b29";
-  sha512.source = "0b14787df1d93639d4d07d1edc9d0b2c73119af858b59ce816a17646f5295d96d7716d288996eb685e3ed5ba457e185d520426f3bb88b7d34a64404dc10eba74";
+  sha512.run = "0ffdde0f17b1bcb90a858d6dd6ca204eea552b49e91cdc797e6364e8b59cca4808a293154426f9c3f52dd2bdc27e93c091bbddbe6c15862fec144b9e4cd6ea9e";
+  sha512.doc = "e2a217a5029857d66882fb5a626e7846a2cd282b9cb2f5a65e6a61919bc7ce23a16294bfc27e9b189a8aee6bcc95cab24a94a6dca221f63d650f38c5e5fce28b";
+  sha512.source = "f513b8bcc4e89323b199fd4c793a9405a94206e9498f3c298fd81a7fb07cc46a6e624e71d30b8a7951bb7b081be3ae8c621b992a0c290e0334c834d83244fed7";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.3e";
@@ -35809,13 +36690,13 @@ pxtxalfa = {
   version = "2";
 };
 pxufont = {
-  revision = 64072;
+  revision = 67573;
   stripPrefix = 0;
-  sha512.run = "3c302158a0d2dd59d8268284dd3df3352ec2fd4bf102d7cad59276dd991fcf190ff7d54646185758ba19f2f38f61d23ab4c44e329c6f4b56651dd3929bd99008";
-  sha512.doc = "63f824dbc203379179c57b948c7ff948bc0abb29f0f5c1c8e7d0e575302316b668a72cc9ca848e29687833a9c8b3510eaccf47bf27a3136bd978c8a94928643e";
+  sha512.run = "370d82da425014bc4464415b4f0fe6fa1cb3375979734731ea829942ead4289e1ac6fc47c1b5c42185c97b9013da2e779c90c10454ea2e4b6e5d65540ce4179a";
+  sha512.doc = "551f14e0603c0ebd59c1c250a1f9e894683f69d22de748ee6cca05ee78c75899aec8671fdc784ebc5219163068dad7a98cf94c831d81091892a72e7777bba5dd";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.6";
+  version = "0.7";
 };
 pygmentex = {
   revision = 64131;
@@ -35832,13 +36713,13 @@ pygmentex.binfiles = [
   "pygmentex"
 ];
 pyluatex = {
-  revision = 65855;
+  revision = 69372;
   stripPrefix = 0;
-  sha512.run = "be9b33158b87cbd95d2fd4eb15bf834f1c828bd58e4f6b8ae58f64de1495b83ae79315311789aaae3266b9f171c4d5ba156adca28735eb9f628b86f45f2f330e";
-  sha512.doc = "86623a834885fa548a6aa84f6e471134c4200ed4cb2b915f6aa7540b38bd91b2daef85c9b8a60a92b63e23b20ea8ed47cdf0cfe3b0e7f30c369024bffe59d959";
+  sha512.run = "7d400d0cd1af26732effc31e2b7a7e0cb501d712230805204362bb5fc456d379258ca2075f4c902dd6d4bb6004ba154d47ebd6cbbc5febae8d07c113987b1a60";
+  sha512.doc = "3dea8e36fffdc92dd5dc68279e61d0d1bfa374373ada7236b1717b5df7c5cd1baaf2fe8fdfa02c5f64fb8ddbab209055cb707a72ca839e63ea00ffb480f6613f";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" ];
-  version = "0.6.1";
+  version = "0.6.3";
 };
 python = {
   revision = 60162;
@@ -35858,7 +36739,7 @@ pythonhighlight = {
   license = [ "free" ];
 };
 pythonimmediate = {
-  revision = 66465;
+  revision = 66461;
   stripPrefix = 0;
   deps = [
     "currfile"
@@ -35866,8 +36747,8 @@ pythonimmediate = {
     "precattl"
     "saveenv"
   ];
-  sha512.run = "f9e984788484a7fbc839a31c2d410d3f0c91408a67079f0c9557506e31e61e9359de25ca00b27d1c1cf875a8a618c0d3e4ad966d8520c061ad3db6fb1c78dcbb";
-  sha512.doc = "5b7dc7087a01317029d27c9d8ca8eb5e517a8021b837b990d5cf44031ffadd461855694ee4fe419e7a715c5a62a0abd8410bf1e4730ec5403fcae9e2a32e28c3";
+  sha512.run = "a6497acbf8b291e3f9c19a788d853725c9bb0283f4d8da67ccbd3b61302abf8a0d46f16eab2711e3767cbcdb79659d8ee35639d206ede7b578d2dbfb33a78ca0";
+  sha512.doc = "f12e6449f307c0229907085ba6d164a4f2f9ed861a9485e5af5d3a76a6dfcf08e7a38c56452e0ed0fc490d0a90bad151b3ac7e8fecbeb716f683e928a0cbb8ea";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.4.0";
@@ -35888,6 +36769,17 @@ pythontex.binfiles = [
   "depythontex"
   "pythontex"
 ];
+q-and-a = {
+  revision = 69164;
+  stripPrefix = 0;
+  deps = [
+    "einfart"
+  ];
+  sha512.run = "6a2ba84da635b700df2a39d69240b62749454d245ad6bb7e7ee8d87f8125f82575fa7c9e2ce4fb2b51bc0af2749135c5ba3bbfde443344ef950f6ce61a79b678";
+  sha512.doc = "885a499e877514022277317c5f4d4fef22e5a0593b9a69cea2021e2326b4f57662daf55977da5078ac45f0146a76a0cc644498ae6c2c9dc49d5e5c8a39565037";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 qcircuit = {
   revision = 48400;
   stripPrefix = 0;
@@ -35923,14 +36815,14 @@ qpxqtx = {
   hasRunfiles = true;
 };
 qrbill = {
-  revision = 66304;
+  revision = 67724;
   stripPrefix = 0;
-  sha512.run = "384aedf221e5a2ada24487f85968f209636c8026939844ea41c7ca2616c4b621430b1cd5c726715c652510471700c1092730634529794f746b55bc7989d257eb";
-  sha512.doc = "a60485e65749fca433eb95fd99bdf96e92bd297c9d5fac7339d9ba6a7bc82d15e1f18f1cc154beb70e04c7e4a02c962b33d7b7d1d42154aaa5f782c526c08d39";
-  sha512.source = "6f14d0d4f0976b3b1977baf3bc383718b41fda5682ddecebaba2f5ef6dbcea758046ccc1517cc8909d2e51c9af55a0ece5e0b55b6ae40f3e14d9f2fc869cc92e";
+  sha512.run = "61a65a020fb5cf012cc08d6d852481ce8712c214fa7cc446ecd0d5a68221f29ecfa710e81889cc92d3f3895105f153ca5fd54b798261ec095a5f06ccc75cc4e8";
+  sha512.doc = "e348c90fb8ee446551fa2747763ad611344279ce00e0b8fc3772f1ca0b9bea674d1d759fc26b8955261d853b264d9e598862f0bf80561f23b4d3eb038a45f248";
+  sha512.source = "0466344e7d7fb00449bad39b5c42b259a8fec4d8472bee7fbca7acb702777f7b30f0a9469e97b3b6d03ba851b13a66cfbb5d87898881ea35089976c0a7258798";
   hasRunfiles = true;
   license = [ "lppl13c" "bsd3" ];
-  version = "2.00";
+  version = "2.01";
 };
 qrcode = {
   revision = 36065;
@@ -35988,13 +36880,13 @@ qualitype = {
   license = [ "ofl" "gpl2Plus" ];
 };
 quantikz = {
-  revision = 54911;
+  revision = 67206;
   stripPrefix = 0;
-  sha512.run = "e31e50dc3f854f7e2914214efa945e881ecd7ef17eb9a5b8017d911b0ea7bb8f57029a956aea9afecce551c289f08d5c9faed5f9b785d26f25cfd52f64a2ec6f";
-  sha512.doc = "aba9b0f6466f62bd806b5c02671d42d344c18a353f292c3193053908ef948801b0883bf9a47c51ff12b0059a2dc6040028bda01fe51f113ad576f0e8c90c95c6";
+  sha512.run = "af7a59b5fa4111199351b3ee6a14ecbcd6f6e86041a7f516c97f0cd4349a2d96935f138969e0029e4f5f8b8650b7efcef9554bd631c1231d371ec323d7b41024";
+  sha512.doc = "a5efd5af9c89a13afd29a06215becf7544e9643697759695f8be2ea39bd62f99748369591cdc619c18b2bba9f0a0529ea6ba0a7be1d9b4ea1c9a8a8042ff4426";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "0.9.6";
+  version = "1.0.1";
 };
 quantumarticle = {
   revision = 65242;
@@ -36013,6 +36905,15 @@ quattrocento = {
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
+quickreaction = {
+  revision = 66867;
+  stripPrefix = 0;
+  sha512.run = "9915f2032b336f50f784dddf14f69df6bf59ea0c1df668adbd36cbddf98df601605ec6a245e3fc2011742f6349c830add2ffadd49e4389c088bd15bf5bbe7a7d";
+  sha512.doc = "c71b5b5a52e12a50cb52632225e9c70acb40ad4796b4b8a922d810e8d5d34da532e3f2b0b708a7a896756f18edc2c39376eef4748e80ebde5869ec44e6af0765";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.02.01";
+};
 quicktype = {
   revision = 42183;
   stripPrefix = 0;
@@ -36022,6 +36923,15 @@ quicktype = {
   license = [ "lppl13c" ];
   version = "0.1";
 };
+quiver = {
+  revision = 67779;
+  stripPrefix = 0;
+  sha512.run = "b7eda520bdfeebff570458d36e22b1779bd16c14070192072987c7f1131efa33c6f1e7ff8c16f73c338fbfe6ef80e656c2ef061ad9ee15885b7f5e8f1195ffc0";
+  sha512.doc = "42bff285adfadd6655941b0221b2cf0d9a457a638997591220b564040acb94b4c57bb9dfccf90679c81e301618e8e4b5ea19c1dad9fb478dbabe1c2dbe4da991";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "1.3.0";
+};
 quiz2socrative = {
   revision = 52276;
   stripPrefix = 0;
@@ -36031,6 +36941,15 @@ quiz2socrative = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+quizztex = {
+  revision = 68823;
+  stripPrefix = 0;
+  sha512.run = "dbf234ba1d366bdd2a1be442c4bb670efe34d67584386ab1dadfa8afa2ff8551ff03ed9c441f6dc480bfed36ea79082048aa6f0e182f4b9bb5dbce7782c81391";
+  sha512.doc = "5c9242df37a22ebdc33d834acd95f760681eebf32516857d6b7ef866ebd00060017ec058c7a628239aa65cfbe62d0335ec00d786d4f9558ec754687b161ea017";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.2";
+};
 quotchap = {
   revision = 56926;
   stripPrefix = 0;
@@ -36062,22 +36981,22 @@ quotmark = {
   version = "1.0";
 };
 quran = {
-  revision = 57601;
+  revision = 67791;
   stripPrefix = 0;
-  sha512.run = "6df94a192fe113d39dd1a8e3223f7261caeca26243c1a229d7fb2aa4a34e976e23865b7c680cf9ef768ae182a418da64d8a52a757fa4d9f242a4e34aa3048a6a";
-  sha512.doc = "e8343ba6708d1268082192dfb0bbab200aa5a45da958d772dd18af21d466d069558755ef9d738a680537e7efbb1276c6c52125de0eec7222f4fe2089bd500d67";
+  sha512.run = "d725825669bce286e05ba5a6a4034f2a485434d40cd32d7f9cad42c1bc7e74001a0a0d1784b5af73c1075166835042406c42839bdd6fca40cbb06b349cc685d4";
+  sha512.doc = "1d706f0ed780efb7529eec16dc9e76182c584113f6d5bc58521de023611401963636e6370c8e06082548da191c4523c7017c59f164d1cf5b234fe7fbd4522689";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.81";
+  version = "2.2";
 };
 quran-bn = {
-  revision = 57602;
+  revision = 68345;
   stripPrefix = 0;
-  sha512.run = "1630d336c3be2cd93a338f572f96d35b4ea40862fa6dc3549a8e2b5bcc3b83e663592c9af362fc06a964e1206c0b27d43fda99ee1cd1af5d00f53ed45b52c0e9";
-  sha512.doc = "871baeb8f1af5e622d587144095a57fe20cd74a5fc95831581aae2f327163bdeadccc84686a4892e85e038b5a3611139bdbe001fbc870341d83bc30d478b3929";
+  sha512.run = "24694bd309d78e2c0315d60027502a93f3beedc436e3b5dbdb3491d9320ff4e2439914a3d3b84c70644ccab3858d184d948a006b13e622af5cb6c1211cf6f5d9";
+  sha512.doc = "d82f949a61f668b6577527d8ee329cd7e23fa7d584eb1c7258be3afe819d6bcf249d9db9778b6da4f57cc1f239d0340cc8b64855eb25d5825d47cf1e298dfb80";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1";
+  version = "0.2";
 };
 quran-de = {
   revision = 54191;
@@ -36088,14 +37007,32 @@ quran-de = {
   license = [ "lppl13c" ];
   version = "0.2";
 };
+quran-en = {
+  revision = 68790;
+  stripPrefix = 0;
+  sha512.run = "75ed9751d6d9517970ca0cf842eca390a172ae24eb12be04a2b97ee1d2673446064489bf594a172677cd785c05ca31587db8b3f64f8d8a1080ce0be0bf191356";
+  sha512.doc = "7e5999f4378a32dca0b47ebe63a1fbaa331110d638f1b2d3308964a1a61d4036967aa1712e1c07bb0d3bfaa2106abca72302df06a811b1412d5029fd94588d2b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
+quran-id = {
+  revision = 68747;
+  stripPrefix = 0;
+  sha512.run = "88328a074b74b6197079c9fbe92170989a1c4ba139e2a84ae96f803ca5805000e11024861e9f033fcba5f346b6bcf38a59231b6849fb4af586eab33795efe7f7";
+  sha512.doc = "42d6c03ff54e65e94196ea0b66e77921dc6bfed3f45605835fd6721aae3b97ebb69acb2362bf0fb6158348fedafb8d543f32602358f3466ecfd89cb56650a074";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 quran-ur = {
-  revision = 57597;
+  revision = 68314;
   stripPrefix = 0;
-  sha512.run = "217d3bdf7ae9391dd300ab0ef390dab34d83675be41c6049897914c24abacbde29d57a68e6321058d91cc63a1b5143bba3b15c7bccc8d55f50cc3efa0e3d4016";
-  sha512.doc = "9be2743ee3d4e0cec70731f5ad5bc71c574ad122aff7b30ec50635a5c4d1c87801b324f048e141e2208bc59af5995b9ff166c7eaa06306817629600348f55cbe";
+  sha512.run = "af8d0d7c10d3b9dea55cb4339982196d5dc33204fb9ff368591e50f48b8fd5ea741207466f158a4ce7da1125cadb5240bda38cd4bc5093966fb42f7de77beed0";
+  sha512.doc = "17d660971e942478baabe2e98eec7da096c37b13f9da24a8e8e4139d0dffccb280b0a464a0fe76f47ff39f899e8ae0d9a582a01be927ff8529e14c097b81090d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.21";
+  version = "0.22";
 };
 qyxf-book = {
   revision = 56319;
@@ -36116,14 +37053,14 @@ r_und_s = {
   version = "1.3i";
 };
 ragged2e = {
-  revision = 66153;
+  revision = 67441;
   stripPrefix = 0;
-  sha512.run = "df8a7a358d8529123ce5c4baaa0f2a49d39a7a1846c5cbfbd96a3f13e56baf27a84a7fde148cf58dd2ae0b353994b53188aae747e3fe41d565d19daa1e779d80";
-  sha512.doc = "0520c2eafc27a21639ea1d8ea11871ff609e43804d6ecd1acb43fae9a214aece0c1cee8aa30b42ca110898cdb2ebecb133e1b6fd704b1fb336d892e6b7006a8d";
-  sha512.source = "08550854e8aa13a0e29f2733965e730af339591d94942941d986f6b70ebad74b13b6885fae2d1809dd9397f11be352d6eceb3b127ec323df81cad4febe5e2a07";
+  sha512.run = "363d952daecbd0c4d57e7d2aa5bd28e32bd04efd1b26f5ab65c4874fc65948fb4258eb430560bb8d294406cf314778047b0027a45c21cf99f77119519878e368";
+  sha512.doc = "be65fa8afee57fb8044ad9ec3ae1ee05ebaf0d8b40388f9876de7c25f6bc6b3a78221b393442e1c3bfe69450eb3c98b276b569540ea8a154a5297560f8a972c4";
+  sha512.source = "56482d060b48c8433214b352efc1b2d6499aeb97a689fffd7e2ae5175f92033714aeb61250f79eb847ed3dc63db8e873ae8efab2aa8dd6d8824902a4c00517e2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.4";
+  version = "3.6";
 };
 raleway = {
   revision = 42629;
@@ -36191,13 +37128,13 @@ randtext = {
   license = [ "lppl13c" ];
 };
 rank-2-roots = {
-  revision = 61719;
+  revision = 68161;
   stripPrefix = 0;
-  sha512.run = "5124c4185eab09ff6e855409bb9d8b235fa3c304864886eb7d96fb2bc3487214eb388e27b4a3cc25f6d3b12bc9b77a073e2404792d2b0654e243a540c5fa00e7";
-  sha512.doc = "b19096334754f7d02b0a16d936c885e9ada82adaf1ed4011df815bcd703b4e79dec62d133fa3b32cf9663e2ef69081a95ae647504d8b6eb0f27f86909980506a";
+  sha512.run = "c15a31fc178dbce9a776c8409d0df18e4ac05e2786aef486bd9a932c64ee6482ca15d6ca10eea70b98f9444f01d292a5e1032fb924cbd1add8e8bdae7a1bfe8e";
+  sha512.doc = "b5b2bfdea68db76c4d52d45613cdd45d91e684f24739024c53a2e6efee83660c2534cc88d4aaad5b1e2c203cebf2244ccc4331935142661090b95e29aa4e9240";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.2";
 };
 rbt-mathnotes = {
   revision = 61193;
@@ -36248,13 +37185,13 @@ rcsinfo = {
   version = "1.11";
 };
 readablecv = {
-  revision = 61719;
+  revision = 67986;
   stripPrefix = 0;
-  sha512.run = "ca024cf78918406ca68a750832bf4046b22ca36cbd8ad7784cc2cc9aef6440de43c7d5c38aea95d738ec1f67685f02e1fd37440dc90d76046ee663cc475a187f";
-  sha512.doc = "c7b793994b11ae49bc93c8b39c0e257c24c54ebf19026db125ff1ae236f9b8443290b31443baff3a587fff073259621b001a75b0bb4f8f4e4963245f7c739019";
+  sha512.run = "bfbc2764d56277d9a215d4366f812e53361faabd136ae86ae8152ab763742f51d27e9b61bf4a1d42fe2f14a90d5d3d0cf6cb513b3c6f5990ad34abeb26c22d44";
+  sha512.doc = "6a337934b2f52cc8543ac0bee5dd52d2deff2e3fbf192977937c8331134227d816c846845923ead87615ddc117b44fb141239024e766e17e1896cfa1c4afbb05";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0";
+  version = "4.0";
 };
 readarray = {
   revision = 60540;
@@ -36276,14 +37213,14 @@ realboxes = {
   version = "0.2";
 };
 realhats = {
-  revision = 63595;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "4ea4abe044eff67e97bd4d93da93dabeeb23a22f4383577b5e2c4fa849ead43aad4cf9e31e99f6b5a2b57ddde41c09648f6d146fb31483049c43e37d01f0e1dc";
-  sha512.doc = "9b80b31974a9004f4bf1e93be33cb0765f0dda42cf1dba13b1d6c965811d7e91f25fbd1ff026fa46f1c2f7bee652f84ab19855add50513586b01b710fe7d67dc";
-  sha512.source = "cfffc12867350233426a195b25880bf4b209b8c9320f2ab836457c366e40e94b5503260e548251465f5c58bcb7243d377a4487d4ef3aad6123cec0d7fe1baa2b";
+  sha512.run = "9cd41126ccfdffe1322e0b49af113b65761a34fd8bffb96390f7c50d78739be06605fa2e16347a226bb7fba47bb832b1bfd19c8d836dd557fb41ae5dd0281d5c";
+  sha512.doc = "94fa596ae22d6c4f75276b30e5fa0f0d03d575f01ef2d6e6a18454bce3c0328a8dd7b804d586af57363ca1c5eaf3c57a4d021fa37327920f123e7b8b2ab55df6";
+  sha512.source = "87f5274eff261f29b387b8b171a1ea031e5373b282950c60517c66163c1f6b75cbe4bdd52731249b22348386fa3565952852efd5143c80edb8e6e070b0e77f5a";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "6.0";
+  version = "7.1";
 };
 realscripts = {
   revision = 56594;
@@ -36342,13 +37279,13 @@ recipecard = {
   version = "2.0";
 };
 recorder-fingering = {
-  revision = 66026;
+  revision = 68595;
   stripPrefix = 0;
-  sha512.run = "da0c6485ec331faf0468d46bd4dc10214b63df89e281c059db8c3f7ac213ae6cfd1b7227c6286035c69c7748ef26efcb4163d85274c1773e5e1a6b86a3d2a4e5";
-  sha512.doc = "400b107b54474a973f2a0c7efb9e97940d5c8e76b26ba29985e72e9362cd8aa892694c1742acd19d0e7ce44c737c6537165e331f80af38c6200fbb4143459fc8";
+  sha512.run = "1a97324ac1264d293a05207a667255e5711cc13b6acc02acd5a170d776d357dae9158491bd0adf96a11e17fbdde1d24809940d323f417f31c5b73c55c7758031";
+  sha512.doc = "ce1782952b53171c686d0f76d9f48a127e6c6bd6c1c2b0eccb00fb8968f31c809118f6bcce0503a61997907feb7d677ad23692c68427bf8666124bb0b040585c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1b";
+  version = "1.3b";
 };
 rectopma = {
   revision = 19980;
@@ -36455,24 +37392,24 @@ register = {
   version = "2.0";
 };
 regstats = {
-  revision = 25050;
+  revision = 66795;
   stripPrefix = 0;
-  sha512.run = "95e68cf4ea4cbb34801a7412ef1ce87fd75d017681e43ccb86e56ff47494aaf95e3cdccb4f0c2ea6a276d99960df881857d9a138368fa6cd37d7f38554ad84dc";
-  sha512.doc = "1883f17190f3b24414dc8ef7f874cb50d682b5dcdf45f8bf95fd15b3347996de37a7839b727da4cdc9e39869ee1def31ed1b2be02e48bc68a81c0d2f8aef8be2";
-  sha512.source = "4e7392bd85860ae971fcd06025f5753d7f2c815cb216d6a53eba1504c4f9de7fee9826807149826ee69c6776f17a0f0f537ffe7ad1be04597ce221d5cd8f7ff4";
+  sha512.run = "4eaec929726cc9bce1481d4edd4222468c05aa30272b24e26b0c9737154316430ef91203531fbb94e3432fe06042de22d30a6253c1eaef6f1c9287b4f0049460";
+  sha512.doc = "8c9f9156e513a4f29c7d362146056fd69f7eabac72e2747c1c93821c9ed69753630da257e1a250b415074c21c1793e4f5c57ea4022338b104871379717da37c3";
+  sha512.source = "0a2b173393405c825dec83d5151b1cadd31a1e5b9b20210b7e46982836807a2e7e9c294cb3c184af2464334d43f9a5792f7ebd6c868ccba3f0b7879d34d747b7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0h";
+  version = "1.1a";
 };
 reledmac = {
-  revision = 63105;
+  revision = 68411;
   stripPrefix = 0;
-  sha512.run = "c7cabb0818baf51eafc4f4864019479925f2b1861435cb85f6a1d03a1ba542c565a25927a582dacf04508deb005ef40dd286126ae85cc918e7881d5aa589b0a6";
-  sha512.doc = "3cd4033ba53567e443c8b5f2b48ff11e63bcf21dd2c618c00e8cdc00004ba5806947e96cdc1c6f1125ca7eb28a505f18901311c3ae168f34abd1e4e7aa7bb96c";
-  sha512.source = "96f3ca08dd9b0323b270a40dfcb63fff3b74a0c7c3dabb076c2a588b4041cb7052e4c84d2d4f04ab02f511e43db85dc39bbbd41faba78cf2553696fee9665553";
+  sha512.run = "ab02eaf561927fa1840d59a49e8f87572133fe5762fb2b8e97b5a3fa80a9489bbc33ff9d12433481a6088739cba562d6a66fe9e70b5e74e7b9caecb96bd1fb3b";
+  sha512.doc = "5ac0734dfc14a25f4b171d73cdd643a60d106e11eb4d128c6da146ffd47527212b84fb5c2674028ce0c18b5aeb9375d56f2d5a9ebac654660d672e7983405179";
+  sha512.source = "ab0af4aae5b31147ea29dcd5eb4412f139bffa023600723780f37b7729967f1d5b94290e39080b9a550b3dc967dade97fa94adb14d20742ddece3c4cf3c0c8ad";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.39.1";
+  version = "2.40.0";
 };
 relenc = {
   revision = 22050;
@@ -36511,13 +37448,13 @@ repeatindex = {
   version = "0.01";
 };
 repere = {
-  revision = 65769;
+  revision = 66998;
   stripPrefix = 0;
-  sha512.run = "75b3b8cf2ce499f7443626afc30615c790d0edebffaa604fa38d05970ec84957e57eba4d2cb1b16b53aa9d162ee922ae38e7271848313f2771c27f4cd5ae9a7e";
-  sha512.doc = "04ad845cf7a32a6f242612caf9b53230220c73c7854f46db0b3c35ee2533f6a0a6115a931d73a76e5c33f119216b3b75632454bf7b07992e3f38b4f2419726f1";
+  sha512.run = "502e1948f22a70003eb5ff4b6eed2790e28cd5acdadcaabcf1f0be699026fbb1cb7144bbb15f230a25f85abf00dc1de075ec44fcc6fa10e26550f85b50a272d2";
+  sha512.doc = "c16864711c87f2632cfa56ba06968ed967874ca25139360476f6fa2bb7bd89b900ff8a98c4514b4664e5d623c9d29437e375284bfd0073b2cdda0eae13e896ca";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "23.02";
+  version = "23.05.b";
 };
 repltext = {
   revision = 56433;
@@ -36563,10 +37500,10 @@ resmes = {
   version = "1.0";
 };
 resolsysteme = {
-  revision = 66193;
+  revision = 66192;
   stripPrefix = 0;
-  sha512.run = "db1db4e2eb14033272fa247149398a99dd1821f4da602752c1fb91afd240d9103fa68b224daeff6f82183c0bfe5fce951412b7ab5355914ba8cd26abd3812fc7";
-  sha512.doc = "976dd0a21378474a919fd6212275046a4d9e056f16e0ca99c516de15eeae65fb538abaadc8e1ea89dbc9192435e1b063c2de8b473e47e0c22e35395d73f84650";
+  sha512.run = "b4d196ea41fd5f4c9d78df932516a8f1bcb2a8862a4b367a8a288678213fe7a7d6fa8f4ee531982dec11bf04576cc5836bf47368f282cd939464ea6df748eccb";
+  sha512.doc = "3fe3d927326acf296c5cafed3c7ab5902ba7c8c943e6bab280b1e0f0a997f90c3e2676522f3dc7dae0436845b4caeb2c58804280d546dd4e6223bd1984659aa2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.1.5";
@@ -36581,6 +37518,15 @@ resphilosophica = {
   license = [ "lppl13c" ];
   version = "1.35";
 };
+responsive = {
+  revision = 69147;
+  stripPrefix = 0;
+  sha512.run = "13fd41361d1770d9fc58f1834adb312bde154800e5b1b6c39cb7c0b50dc5623ae3970d5d6fd179c706bcc6d92512f1af88b9dfd78440d47a9e330bff568d5ef4";
+  sha512.doc = "840556a6a8ccce54850efce732e63e58078e12740c39c8b81ed47c470d39fdb8a9cd27dca9abb5380fe2d9afdc41c801d2beab4717933bd4ac110c26491ea082";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 rest-api = {
   revision = 57068;
   stripPrefix = 0;
@@ -36638,14 +37584,14 @@ revquantum = {
   version = "0.11";
 };
 revtex = {
-  revision = 56591;
+  revision = 67271;
   stripPrefix = 0;
-  sha512.run = "3ae6c843dea5ff9f91512a1b713aa2dd05f76d7116d2af3f005506864062a9d1e27888c33fc12aab96d5c566e9e7dcec0f91189f957bb4d2aa69953d6b10c316";
-  sha512.doc = "9110bca4c358d5364acddc8a04d95df821249bc93a9e811a4d94b703b6daf124962fcec404354bbecc32557ddb7ce67993a6dba7ebad514672dd586995cb23c0";
-  sha512.source = "88121fba6636f753b96ee19beea708d642c20292204e30e0be85dbf0e0af8e2e87386fe6596841e8c89861d2b4e6247913bf26fac35b1eeb33ebc0469e1be5bf";
+  sha512.run = "3c0c008929457a405cabd699a6bdbb0c4ad2afde1c7155b163c52e9564f15718bddec782abfb6336e55c77ba1d0d0d88a1da39420ed1116f21efc1e4c93d4751";
+  sha512.doc = "de2053c650920b4e83183883b4fb15f25abde4210eb0c0a81adde4838c76db8e755a2afc74c8f3cafc0819d57b762e701380687e589ffc785cf6439d120c1474";
+  sha512.source = "270c74b7f50c5c8ef4eb2f27dd72e5029d6d48083baa9b477506e1559fd6684aa9ff95f371c8a40fc1535455a89e13e625b1cd7c129ff18ff3101457794f34b9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.2e";
+  version = "4.2f";
 };
 revtex4 = {
   revision = 56589;
@@ -36686,6 +37632,15 @@ ribbonproofs = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+rit-fonts = {
+  revision = 67659;
+  stripPrefix = 0;
+  sha512.run = "6f9be849a018d8714d30dec2d9d745c745c48ded444601bf64136580999614b514ab23468a440e8811ffcd114d0968606bac269cc3bf27feb9a5cbe51a68810d";
+  sha512.doc = "bcf029e75ed4d8fc403d8868bd8e01df2ca6c292766750ecd0e7c32ee6ac2e3a48527e321475c8f56ff7f38541aadbbfd8461fa59ec1ab911891bc73fcae1ec2";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+  version = "0.9";
+};
 rjlparshap = {
   revision = 15878;
   stripPrefix = 0;
@@ -36741,6 +37696,15 @@ roboto = {
   hasRunfiles = true;
   license = [ "asl20" "ofl" "lppl13c" ];
 };
+robust-externalize = {
+  revision = 68842;
+  stripPrefix = 0;
+  sha512.run = "b210a9adbfa6bc7d0063e624a30abb885eb49a7e7dd3e215f97784e5da4c79886fe4d19aa012395894098833c18209c117e913b14091fd2f3eb8904a356fd792";
+  sha512.doc = "e1732e10a355b4f54d870420acfa3bbeb6256b0a7c0136f5cfde829ff02885422b175c2834b229bf22a4b4a28a1c8e80932af2b0a826b1658d0d8ec58de909bf";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "2.2";
+};
 robustcommand = {
   revision = 15878;
   stripPrefix = 0;
@@ -36824,6 +37788,16 @@ romannum = {
   license = [ "lppl13c" ];
   version = "1.0b";
 };
+rorlink = {
+  revision = 67461;
+  stripPrefix = 0;
+  sha512.run = "6dcdc3e26fa093346bb60d2346af7de4cae4ebaed024fa21de1f28cc462b956bb21e946e189804a69420ed26fee38b3a3f8d45cb5a04d16c2859f4f0e0caf8ae";
+  sha512.doc = "cc711052ab363104748b944b0f9d32e6328e2613a100871a53a2b9464e4e4d16b6cbfa4c42bbbd5cd093bfac1518e605af4b43205fec40641a0e2465b50f7728";
+  sha512.source = "105222e02016315b5cd5367e2a739db1c977f403e7cbc3172be8a2528e140197472785a7de48be8e252fa702941963ba2b4dbc75ce52929bea0d4b02b5b9399a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
 rosario = {
   revision = 51688;
   stripPrefix = 0;
@@ -36853,6 +37827,15 @@ rotpages = {
   license = [ "lppl13c" ];
   version = "3.0";
 };
+rouequestions = {
+  revision = 67670;
+  stripPrefix = 0;
+  sha512.run = "7eaa938339d1e59241b85cbbec4238be4fe2aaf4dbb3544c6d1511723c62b96dc5fe38c4fae062dd2d61760739caf0df3652b710546a6725d072969df8e68b0b";
+  sha512.doc = "16ea492fabb90e0a649d5ff8e13b358a4ff7a612df34cd60a7023a1572337d237b87bdd5deadd206513562cfc1a3b27e834c49fbd5204277d38dfcf3a1e4e586";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.0.3";
+};
 roundbox = {
   revision = 29675;
   stripPrefix = 0;
@@ -36985,14 +37968,28 @@ rulercompass = {
   version = "1";
 };
 runcode = {
-  revision = 65588;
+  revision = 68223;
   stripPrefix = 0;
-  sha512.run = "a16f61affff0ab5d58df300b638d62fa0e48a8537ddfead3d7e76113e54f31c0f0c8424ef183233d109be014701ba57b78618ec131b5bd3c526b10645e1f35f3";
-  sha512.doc = "b48827b01c986fa1e11469a36f9426255f45699e11002d2826002d1745915a3e36a9919f901ca1a6b9d7a04a86aacbfbcf934732dfdce8ad20771b1b027b3e55";
+  sha512.run = "5f5952e07a5762b3f37de7d97aca5187d8133e6443fa41ed56802a9f852bc9e4d31023430e9969e836d0150e2862d67f0753abbec683d112f3752422259187c1";
+  sha512.doc = "cf2ac28ebca780c9951d42b38806844c55455638502708e6e79a2d9aced7478a797bb89af409364fe193d195b177fc8389a1021e4f553e2c211c6c38d5e6e9d9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.8";
+  version = "2.2";
 };
+runtexshebang = {
+  revision = 68882;
+  sha512.run = "8e681e06b29e235d76b21370614c22ba57cf69debff19869f3589ac5a1342f368621083a17b7a1ddc1ddee37478bdb9b81f4050bb9a2f7d28a7d753909238233";
+  sha512.doc = "4f2754641930105b1bd70a0a116e724e019c1930ec49e27c3ae895c35b7840c54082285cb6241554915234c16a59dbcea9ee07c509d09d5315ff6f04e0137168";
+  hasRunfiles = true;
+  scriptExts = [
+    "lua"
+  ];
+  license = [ "mit" ];
+  version = "0.5";
+};
+runtexshebang.binfiles = [
+  "runtexshebang"
+];
 russ = {
   revision = 25209;
   stripPrefix = 0;
@@ -37077,13 +38074,13 @@ sageep = {
   version = "1.0";
 };
 sanitize-umlaut = {
-  revision = 63770;
+  revision = 67126;
   stripPrefix = 0;
-  sha512.run = "7521037e7dc35836b347e3e2387cefdc8acca4504dd9fd24c1efa9857039dd2314cdef0c2281506bc2d4e03dde4e994bec938851be0e9ebc9231990965199010";
-  sha512.doc = "a3a559be38b04dba0f9478ebf1cc7c437f457368ed4dedf16bc42038c95053cdac9d1dd0061c1eb30e8c88235d348ea9edf375aef30088e45635323e835c3e55";
+  sha512.run = "2f9514b9424a72762c9b4bfbe2bceca10dfe4e75a42e9fe2e26d6808d14fa2aab62a03f26becec8e80b00c658d4452e95c3b84bf692d64cc287693b2542ec3b5";
+  sha512.doc = "2de8f2935de490e127f19b50f10698ad323e823ae4bcb7b357b6cfe084c9f6a48d2314889a54974a4b58275667da4eac89cebfac5c25e570c0172ecf9ca44af5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2.1";
+  version = "1.3.0";
 };
 sankey = {
   revision = 61874;
@@ -37131,10 +38128,10 @@ sansmathaccent = {
   license = [ "lppl13c" ];
 };
 sansmathfonts = {
-  revision = 64661;
+  revision = 68777;
   stripPrefix = 0;
-  sha512.run = "1ef587f14a0b5d51dabacfc1717b84d221bbc3bfeca002cd58ed9c239838d888036fb26f404b5bf5d7a7fb82f70b0f5663ef06ce92059b32a67b1e0c31331e7f";
-  sha512.doc = "de240522929a1b2942e3108c03a5523e42b0bdfd4365afabad98a22dcd73784070ba26d3a4ceb821749bd557b19b220f2785687f52ad47a502f8f67f05409839";
+  sha512.run = "d31d37820883b0fa2a97dc878d11b6866554839acbae8c56fc10fb164fcfc2af5590d0d562512aa313ca950c32aecb4d4b89ea4113326446a75006b34a2f677c";
+  sha512.doc = "5972253d34cb39cb0151050b4e9dab45dea50901a84f736ee8a25beb5ad647a112462ed5b3d46c61ff20a3a20852000c64736c88df9ed59defa2da5bf54b5638";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -37271,13 +38268,13 @@ schedule = {
   version = "1.20";
 };
 schemabloc = {
-  revision = 58212;
+  revision = 68445;
   stripPrefix = 0;
-  sha512.run = "8a6f093a5c6874c77d22a9e96e36593f00e382ac0679ddf33cfc62df912e82cea4bbf697286b7fd77d25dfd5b19cb37baf95fc1f8092bcd348a4da88a4501cb4";
-  sha512.doc = "fb70879aee58fc01d5b30903f2e65b49789d011d18987471a8cbd5e46d9b57cd01b813e5a90b686819e1c1e912cb37b2c9487518705d4f1bfb58b1e950502dea";
+  sha512.run = "7a99b1fee9c4436371f5228e969786518f55aa65dad3cc540be912d6123efbb5a25634d337bcc9a3f626d37f3408b08999378bdc9d32e1e1db2549499b59b1cb";
+  sha512.doc = "eca5a57f53615a486b21fbc2a0870c5816decb97a1c6bb004d5a6f6faa89f1cd8c7a8a51135904d2ab53076b6ac239f3192c976b54672d45d1eeaed353d07055";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "1.9";
 };
 schemata = {
   revision = 58020;
@@ -37635,32 +38632,32 @@ scholax = {
   version = "1.033";
 };
 schooldocs = {
-  revision = 65650;
+  revision = 69238;
   stripPrefix = 0;
-  sha512.run = "1ae2af9d9f3a281f9d180bf75534f29990c9060322d65200344250651f71c43a1b854c6dd32f6a8c9c2d2e7238c44f76fd03d814d731d8c3faebd91160a6e0a9";
-  sha512.doc = "253c22c65ef87537866c2162cf9a455123b90456e6581ddd1a5edafcd5ec2a52502c0d57f9626dc8ab0bb8781d41cfe806481c3a5fa8d387797aaf7240de5ba8";
-  sha512.source = "09f1ef0dd304c229a7c5c6ce4cf841ccb50700b9af31381f4a4bbf32c8d8579d3cf2f4dc9397044428d1b4eff318541045c7698061d5c49997705e2988982957";
+  sha512.run = "4d6a2c03a588b8b16c73b464ec8d5daab5acd199048d029b4d0ac1c2416e61d4628dc51bbeca1b8957844355bda4d92946f769a2494c2e3fc8522d4fba451f12";
+  sha512.doc = "8bcc4cdfd18544f81cd1859b9b307a66b163fca639a0e058214096a6c11fbb0649f4b66f1e7186c7d4ab4db635d2687fe60d5c9338f173eac85b83eacafe2d88";
+  sha512.source = "81574268cd8e860e4559d4228335d87053726070e9ed05822cc87234c2a08430c6db752e9138b06b9d6633f22126ae588a3103e7873784b770a31f8d59aa458a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.4";
 };
 schule = {
-  revision = 60210;
+  revision = 68483;
   stripPrefix = 0;
-  sha512.run = "01d62151d01b00dedaf63af9a2adcb91f293372064c43cdc0353f207923f471a45958f60cc9c16bdbaf4b78bad65f4ebfa7b8e2b851f307eccba60f9171e9207";
-  sha512.doc = "a626078e2c8a268663bcd0148dc8c7d382a7e6e29e2f14ef0e34d75a1f460702c09042625378bfec482d8055e34b6661f137982e328c8cb21ddd29a0e9a69cf9";
+  sha512.run = "6fd063de94d68e80b5e3d2e9699330453f82f43ccd059770e4d73097c1172ec0733012317aeba7bc5e55ed322936c20f97c6f53e9d7aed21a29e07151ec54d7d";
+  sha512.doc = "6763529c688e540d937af7548a7e0b9003e5df74d643c3870a016bba105782435146d5771d4d8b69cfec90ece084c245a1825c5f3ae4a5429ad0626b07a9e4cc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8.3";
+  version = "0.9.0";
 };
 schulmathematik = {
-  revision = 64108;
+  revision = 69244;
   stripPrefix = 0;
-  sha512.run = "be532723f39a637b3f78163e849f8eb481a2137f1c11536efca63ab3b4aa9d3a723395805b6881965ea2e5e0e7e40fd4731325149a900074409919b8d11d41fa";
-  sha512.doc = "f5088c8623ed263d017d4dd6432abbf8a271d58b096b8bc205a69b6ce44e03d2714bd53df74cd1f1406bba55d2d1d28f96e702dd15def17678575fc0a44e0bf4";
+  sha512.run = "3258429a336a133334b5f170178b72e39fb3e63ca053a8b541136cc89e88caa991afa86439acffdd99f25a12b7b430d9ef45cdfa7c4ec6545fd1af2efba857c5";
+  sha512.doc = "82ed02e73e3db3e2055725a4d5e11dc8f370ac4787e30987320ec52deefb8de75eecdfd2adda5e76d77cfd8bb1e749b4d0e6d6a75ae2f6ffb3201f193cdd5f86";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "1.6";
 };
 schulschriften = {
   revision = 59388;
@@ -37692,13 +38689,13 @@ scientific-thesis-cover = {
   version = "4.0.2";
 };
 scikgtex = {
-  revision = 65256;
+  revision = 66764;
   stripPrefix = 0;
-  sha512.run = "5374ed0713db77cd6f84ef8709e0dc73ed411d8679cf7292015d0e0533d577fe7009c08e6d17f10a9c2422c67e56b1b547f46868d570c7ace6910fa7738179a0";
-  sha512.doc = "960bbe9295e14c7ba1a9ed53d6df468c2dfafe3b84a0ada506e7fd26335b79880bb8e592463375490d2141fa62fb41aedd79aa3c85bcf0187d4ad2ef2be3ea71";
+  sha512.run = "32433b1c031747037fa329d8b8048563cb53af867bebde85bd5fb95abbdfbd67434595d5fbe682f1247c23535d75929f341668fba9a02221b4864728a5f3cee3";
+  sha512.doc = "217da3550e3752fe239831790294d158dd68d16545e5c9ef3e047bedcbe82acee7e34d4216ef843363979e269e03180f20ec9e83b033b44f28acabb67ee26f74";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.1.1";
+  version = "2.2.0";
 };
 sciposter = {
   revision = 15878;
@@ -37730,13 +38727,13 @@ scontents = {
   version = "2.0";
 };
 scrabble = {
-  revision = 65507;
+  revision = 69024;
   stripPrefix = 0;
-  sha512.run = "df992081a34554d1e26ec6eb227f2ac5beddb7fd88a4a8377aebdfebd9fd200d053c4e43db96450f20a7c23cac11d235f1acde3e4dc40a3c30b83ad2914eae5b";
-  sha512.doc = "c61edf946eef82a7cde0af391eaca776784870be6a235e9752821f565b187a2a286ce1c7d7a7d5bc902550597e2a0906f25581bd8295b7dc5a546cf7bd8ee73b";
+  sha512.run = "f4401768ca1b9f1ca4a84a61e07379b9ed98f679e0fb4c3231b3daba495dfabb2d2e980b76088cf28bf03e2776e1e39133709b9d4b9b374292e1a4eed56b3b19";
+  sha512.doc = "ca5b37469ba336683ed77872cdbdfcee2379eb32c840cadf79d54b1e18eac69ec1918e8279f1207710125fbbd871b149bf556ecd36b11836a7a0defd941ba8d0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.3";
+  version = "0.1.4";
 };
 scrambledenvs = {
   revision = 60615;
@@ -37749,10 +38746,10 @@ scrambledenvs = {
   version = "1.1.0";
 };
 scratch = {
-  revision = 50073;
+  revision = 66655;
   stripPrefix = 0;
-  sha512.run = "fcee832dbad22e76387bbd10f7ea8e3127a6fac45ea1b42feb183506cd5c89c258cafb052d75e4d14b431a57e638fc84fc751bbb8fa700420197a0d2e33ead48";
-  sha512.doc = "af7057f28ac0539a555db5774d3d29e01ba10fa78744712a5d76f95229c45022f682c321a551cb5070ab3e370b2d9e861c0b04b73365e828fe665b3f8aeb7730";
+  sha512.run = "bee431e5f45ef9f5dca39b7ed439dbf141141e4b0f40642c0fdec1650dae9f0e50353e21b58307e86f34e501e06083a6858c140c870752c45138ac6788080023";
+  sha512.doc = "a93b672fe46f97c1311d79de5a9304111bb75983b6151e63276a0b84a660e7b917c36b1a99a28a0b6a268b3498dab9897980aa4ca161dd4b9d59a7b2baaa3be5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.41";
@@ -37795,14 +38792,14 @@ screenplay-pkg = {
   version = "1.1";
 };
 scripture = {
-  revision = 65493;
+  revision = 69232;
   stripPrefix = 0;
-  sha512.run = "3def680960181d2204bb7c99012af17cb6685a8c9145d5242408b82e9f30a84e0b922dd89cd26c36c0a08e820b09c5ee886cb0ec928c83cd68d4221519d011d7";
-  sha512.doc = "f4b54666759f4fb691632ff501f9eef1619624ee5b8c8292be6cd1cfb5c9f02ed68cb55239c55da5e4f80e8334ec404347747427eea6622515a2933d4fe80d68";
-  sha512.source = "b74f83fcbf83baab55a37ca39165265ad94dcdcfe30db94b7684352648b55e0953464e9366a958517539c90b38bb468f3b2f187a557a8fd4a2d55bf6ea69bdd1";
+  sha512.run = "3b3e30f0c5bbc99a49c9aec873f2ad93535d8c1f3fa79f91619d30fdca347dcf1bad30485463ce875e4511ed857e358824197059732c2538bffebd97b017554d";
+  sha512.doc = "1de0de0b83915b59b54b234daf51ea77aef3bc58a80251c7b055708b7eb8d457806d2b897cd3771f6a303e8137b5f5543dc06c97be94142edf44558cc92a1277";
+  sha512.source = "555f72881eb6d76d9362598cc0e30f67cfe2dfc8747f68e5214258fb127947965e45f0bcd1eac5e173c83e7a4e25e3bb0ef6615fe31cac5f6e3f23814e7266c1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "2.0";
 };
 scrjrnl = {
   revision = 27810;
@@ -37833,11 +38830,21 @@ scrlttr2copy = {
   license = [ "lppl13c" ];
   version = "0.3a";
 };
+scrwfile = {
+  revision = 66872;
+  stripPrefix = 0;
+  sha512.run = "b4d306af1e0d3dcfa59ef14250f14125bfc4a0b9b0f3e6ab32b809f2e729cfa45e27549c8cb9c2dde2819d328c1a032eb6aae6f123f1c71efeba4c9d16611a34";
+  sha512.doc = "6aab0a6af0c3f989788673c44bb8a885ddb259f0be3f69f0a32b0bdebdc8e607b32c8f8530cb99d59b1c7739b2c33446f8b7c832384d07158c90bd347704a1a3";
+  sha512.source = "abd536d76460165077ca7dbdcd1801b018cae2d16c783e72502bcaf5ecb34562f273ca37cedb044a50e7d53fab84412bf9a5e804be064951ebf753aaa764526b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.99";
+};
 scsnowman = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "9eabbc090311210bf9d557efb9d901d9da900fa4095e37bb26be51bff6dcc73584e70f455fe5ce5183859738dac8c06cb94224d816cc23bda49862d7e233efce";
-  sha512.doc = "c2efba627208a194381f92c893093da16a3eb9cff498e3b80b5d9cc90f34f96425ce94733bc6e1326cea5932da7c136555d6a5413d2dcdbda8bcd36eaae6d562";
+  sha512.run = "2335082e981929d24b2dd327db68f101a93b0c2b9176c116d6ca9430ea45bd85c9669921980090554406a658821f3c68305250894fd710058e15ac6aa8ede1c5";
+  sha512.doc = "e883b300888ebdf62af976a94ff29a3f621a92420c26553ca16497ffb57db0d1cec7f8a38a1996e080b660ee3ae0b7245688a7732c141b0a680b864f527069f6";
   hasRunfiles = true;
   license = [ "bsd2" ];
   version = "1.3c";
@@ -37880,14 +38887,14 @@ sduthesis = {
   version = "1.2.1";
 };
 se2thesis = {
-  revision = 65645;
+  revision = 68255;
   stripPrefix = 0;
-  sha512.run = "16a351d895fd84b9d4a0aea1ab2ac51c2cb1bf6eb19a837ef2a856be79b5ffc03aebf40671332016e1c5475871eb508720703d40b9ad8035850225b07e0cf47a";
-  sha512.doc = "88745bde86537fad6895372d9ac1ae8a22df42fd152a959314c059604bbf2604f9fadf5b9f96ea8528e7800e6159f6703f4b32f65c524ca0e4257f6465203bbe";
-  sha512.source = "d6051f999ef046e52d15716d3f9a594683a9203b3c3811238f1f8f7b3b1b332499a8c6259750d3e5593abfb2fe2fac0f37f18498a5a8592b420c9c11eb07dd68";
+  sha512.run = "a9283b1b34e7d9db35dbb64641b68eab662ddfd7e468f856e466c56c7c7ace6de3efacb43b1810e97d2eb2d0c2cf89d50ac45d79a5bcc9f79b52a1011e41ad39";
+  sha512.doc = "562a8c929ae8bcacc2dbdcc4b585b26b910da3792089670f89e4300b771a06971513978a0c656e563c7189673b6067acd450a2698fcb32449a4de75715a2c270";
+  sha512.source = "8a76b7e1139ecec4b8c9a4bd670f3bb82d354eeb0cb9d94afe7f8ad3b7656921b510ecd9223443efcb2e38c5b91e621fe66b99d282bc650402977fc84e4ffc7c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1.0";
+  version = "3.2.0";
 };
 secdot = {
   revision = 20208;
@@ -37986,10 +38993,10 @@ selinput = {
   version = "1.6";
 };
 selnolig = {
-  revision = 38721;
+  revision = 68747;
   stripPrefix = 0;
-  sha512.run = "8b01d1b6f4e6f83efbfc603be7c510d3c8435559b1272f3e8beae7d0de04ac889e04d539c689abfbfb8af5ff2d04c38459320fec333a122c3b60a1a79a0b115a";
-  sha512.doc = "afc1a84aa85f3da5e5d121de0ee37f5347527985b3a9ae75abf0e51edc1d5371e831b5ffc7218d9863b8ff717554c6f469adec908f02f5d9be3bd4f6e45fc1ac";
+  sha512.run = "8dd7baa476f72549830f2571615af2374b9d74da69c16f2999708201b7404c46118e7a6046ef8dff39935d3b94373140819497508b2a8982cc928a5dbfc6eaac";
+  sha512.doc = "c36e55066eadd959f625fcb72fb89ab2ca51f3411ba9bc81c38d2ac3f18ffd792fd95c33178c0607e3958cdbd81c031193d1b6c712906a2c9cdac4178ace6ceb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.302";
@@ -38178,6 +39185,16 @@ setspace = {
   license = [ "lppl13c" ];
   version = "6.7b";
 };
+setspaceenhanced = {
+  revision = 68493;
+  stripPrefix = 0;
+  sha512.run = "594fc089440a356201122b33160a16785dcabbb2eeb1fdb2fdbbc1e53c83f0ffcbfc7b9c6be623e6a5e4ff23b933f25120ba1ecce72e73d8e32e1939a2744f8c";
+  sha512.doc = "d9356a26bed9405fb9cb45eda3769dd5360418c02fb6442cb4dd64da5e70e9785b167e8406fc772fb7ca1cfc574b23a375916d0c5dd6a1afb09668f5e6c743e0";
+  sha512.source = "5f16118ffc9b7572a18c485915a677b822c26ed0c4f885292c6779f91c0a9b6fb3d4f88dabb94798715efd880f6577349ede1936720ce2c6274c35671e2f0aa5";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.02";
+};
 seu-ml-assign = {
   revision = 62933;
   stripPrefix = 0;
@@ -38297,10 +39314,10 @@ shadowtext = {
   version = "0.3";
 };
 shapepar = {
-  revision = 30708;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "407fb09d162a3f361c7182f23b010d25bf5d0d4d645780c1c9679be422a50f7181a8184ea391505d258afda822059f0d7d60ad24321adffa05f37d56d0376605";
-  sha512.doc = "4db069b9e52935f0ef1463e40999b7f7893ae12b68f6bb07a105f83199b839e6ca3366b7367f6b38f79c4febfbf3a8c1f88115244f59a306870fa4617ade478a";
+  sha512.run = "24975c53f9b29ae8302dc4e169d7d176c4825a0033764c8a08aa610c184e79d249e849e2ac3ddbeccb3bb80a4a5e29ae1c474331de68000de1a63951079acb4d";
+  sha512.doc = "69a5f9dba1683ed0302a3dc4edede537986ea473357c0c8c454c26eeceb2c51d31d87d139bc3eed39ef1862c2a6feef0e570e9fb12bf88f15ee7f34280f7daf2";
   hasRunfiles = true;
   license = [ "free" ];
   version = "2.2";
@@ -38352,10 +39369,10 @@ short-math-guide = {
   version = "2.0";
 };
 shortmathj = {
-  revision = 54407;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "f0fe218b38efd961d1f67db265797a01ff4fc28daf0df5f23d9eb2f009961449d6dd3ae953c800af377265cf7f77f707cc35b0c413d93b232502d33b60fdc224";
-  sha512.doc = "d402e9fd56f8567a79158decc200547e4b68a171c4fa53ca2d9efc2377e9ea1aa61155f53e66de6668a4523177464638412adb4b402a8127436826fbacf24ebb";
+  sha512.run = "a8ec0460d532b657c6237d5d321852b0c8ff0807d8cf73a02e0d40bc6c86b2c776dbbc5ad694d3fe022f851f049dbba6fc11d57d5d6fdb8f168a935f9f443269";
+  sha512.doc = "a1fee222b86efa1cdd1d35aa2eeaf84df25db25b1a68d56863a370fef11ae62a6a21ed2ecf0f563d8c00c38759008d26e7c43988538bab6ad6b2a52c68c74c46";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.5.0";
@@ -38410,22 +39427,22 @@ showexpl = {
   version = "0.3s";
 };
 showhyphenation = {
-  revision = 63578;
+  revision = 67602;
   stripPrefix = 0;
-  sha512.run = "b1370cb5b483bb206248f06cb0fba3acc23abc445c655b486e174bbbe572397897d4c803f25b68e9babd6a162f1d2abd98a11909062f846cb194b8c4b4ca001b";
-  sha512.doc = "416be8f4e134eb4eb4bd5512fc50469051eb6792e929f1aa21fcd4fc9025e1be2a69c7f188e26e4522683f5b527ac468fbea08eb7963f0e3a8ff4480d44d5be0";
+  sha512.run = "0a3ca7d966edf0f4221dea2c084b428c9e248b3d223b57f3f210258918593d93518a5ebdce7d9de6b88ab040c0f2b632039e23f3339a729d1fe1391f8a51d4eb";
+  sha512.doc = "9d7263e5f285f5d29738c7ff578a0bf9256d67e56b882e41f0578bf9b594225a6e0711d9fd05bbc89a03cc0bb56b1ea8c3ccb1f4bc4f91ad40dbe55849b20c99";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1a";
+  version = "0.3";
 };
 showkerning = {
-  revision = 63708;
+  revision = 67603;
   stripPrefix = 0;
-  sha512.run = "f0a758741d71ec8ed3664527720a1dffb34bc3ef4c4583faad782d0034202d22ca0e4d6648a4a9bb82b9def441871f9305ec9d230b1e3aaca42c0154c913eb71";
-  sha512.doc = "1a85df418d58aad6e7fef73f7f6920ee68021ff83d99a9d82ab440e5a16cb8a7ac65f42a914e8533d6034f1b23a8a9996bdb0ca028b22cfd10888c54de0b9ac5";
+  sha512.run = "37a913fa403c9760fd150cac3fb88e349e8c1109f51768ee202194e72232d6e16d8dac529872dd1df7896a40a79ddb72d65c9191f72337c806de307808d80532";
+  sha512.doc = "39f8f12a70550a5864956c6145a2a19555c18ce60084b66d2b69b6a2ab8796ef2b911be39c59e736534749b42930bd055969ced8eb5cc03f1e5f2796a0d0b3e5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1";
+  version = "0.3";
 };
 showlabels = {
   revision = 63940;
@@ -38514,14 +39531,14 @@ sidenotes = {
   version = "1.00a";
 };
 sidenotesplus = {
-  revision = 63867;
+  revision = 69176;
   stripPrefix = 0;
-  sha512.run = "cca775bb5e82d63d2e475c4329f5d4a6ca72caf02f0dc3ba0ff6acc33564ef856a25dbbe4c558d2b761106ba1407967a77063f98aee937b26d50269f86b0b847";
-  sha512.doc = "62b0158838ef5f16361c2fb2b5ed8cfaf0eee42c9f3409937ec2034da0436b2a9038670ff857a1c7629687bee7f05a14793084d9a1713e8d6ace2510291be025";
-  sha512.source = "a8e72d6161e48ccfe0a0db76d9c4d98a9de655f2c5a015597ea0b54701bff280b7488b836320f2285be9469ff3bb12c3726c182fe04bdb5e2cf5dc5d1df689e8";
+  sha512.run = "d7d7be2971798a869308564095617484713471f4b1e46b5729f40871eaa3216285cb063d19a7d85a6db3f4b492c4af290c3c6d392d7a7fb78b4e7761255c0a83";
+  sha512.doc = "d712e51374969ab345d8f641e4ee860bbd72e5f4aa759b0b00cb538c768f9e790265074003715252f8e6c8a6ca56a5513b0f4c2dc0c3d55214aa80a994ff5c08";
+  sha512.source = "c87cbc1558e5985583116a4d587aba0a7f7f6a8e7103bbd5d2c146d250fbea2c5449515787080c49ed949a28071f49036bbc4fd343d4e8d063d5ddf50e42986e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.02";
+  version = "1.04";
 };
 sides = {
   revision = 15878;
@@ -38552,15 +39569,24 @@ silence = {
   version = "1.5b";
 };
 sillypage = {
-  revision = 66350;
+  revision = 66349;
   stripPrefix = 0;
-  sha512.run = "a44430b5218392825604c9370fc01bdb177b91431959f55b33e68b834803e1cbe3fcae1b72f0ce09a984709f16770358ee8a0c43d5b94cd9244aaff78f8eb6f1";
-  sha512.doc = "c0c26e10ba5d17a6e45af4e00e900bb22972e88fdc999c70762290106241e6ecc535db6ce71c654b6ad31c21d456b00fba1aee66e87450dc38e6433e4fc7fd54";
-  sha512.source = "250c32997d1917944b8e248e312bd99be090da1115644f73e04c0194e53664d5080441774a08478e412be5a6345a35520c40e1ac686f232abc9de8e398ffd92f";
+  sha512.run = "5ca2f89c924dadaa727aee6b6bf5b0a3c06fe1d841ec37cf1a6fbb7d3516cfe8f4e2823ad8f9acbdd85a333e3736985d139e44b907d3bcf793340d49a164405a";
+  sha512.doc = "fd4ed28957de74aac2f90d2aa37e5014f423738f783f837fdea9c28db0d4b9ebc65c8017fbcb596f86610f712dcd38864356838c1e8da123c2eda1be4932b936";
+  sha512.source = "460ed2ec718e74921711b29010138f5e6e544da8e91631b32144f3ee0ad377b815a3d974fdfea47ab231dbdf17d4894e6a73ea78b00ee03e8934219858ce43ee";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" "lppl13c" ];
   version = "1.6";
 };
+sim-os-menus = {
+  revision = 68843;
+  stripPrefix = 0;
+  sha512.run = "565fce3e9e13d14f7f52d3390e407b03ec680b21cef37e68439095d9e7cc813739853c9e3307dae040dcf60c6a6dc4934b0d8bac68b258af4c14aa22d8d9aadf";
+  sha512.doc = "b2392fac63c75de85b89ca7037f495155cb749b17220cdc3fb2aca368bdbd593039425bf21a0341a4160935fba94d0a9bf5fcfa6c7d686178a715aab44a28ae5";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 simple-resume-cv = {
   revision = 43057;
   stripPrefix = 0;
@@ -38578,13 +39604,13 @@ simple-thesis-dissertation = {
   license = [ "publicDomain" ];
 };
 simplebnf = {
-  revision = 65485;
+  revision = 68959;
   stripPrefix = 0;
-  sha512.run = "2f78a17109b817eba036c52e924ba66c0bb1f5f752660b968270c5decd39c1e19aef50e83617247db1b94064d46f5c774e0acbcd444c8d03ddb8f133c6a667ac";
-  sha512.doc = "7ee5f4b33fc0739a9da0bd8e3d488e1bf7e71b798b6665535d18821377b76752d5a0183b8f2d495ee0285381594a5e53aa1090676bde84c9afc2049a29bf8ca8";
+  sha512.run = "87c6838d1a31f3a617752f428fdca3ccb7af22daace3caff307760f24fcf3092cff324db6357174599985bfbbba6a8c0f31a498481da3a7790ac653043c0683e";
+  sha512.doc = "bfb6dcf8e843a42b5e7481e3ace572f55561418886cb0ed562fadd79a72eaac6c505b9a52ba37f0e3c2bfec7723a7334e81ab2dd6dbddca47ec2339f8a9b64cc";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.3.2";
+  version = "1.0.0";
 };
 simplecd = {
   revision = 29260;
@@ -38607,13 +39633,13 @@ simplecv = {
   version = "1.6a";
 };
 simpleicons = {
-  revision = 66337;
+  revision = 69396;
   stripPrefix = 0;
-  sha512.run = "70ebcd312faac3b2c9294300012ce27da51b9059ad8802179ef5b9553bcc9d6a1ef3274efb38eb6c4e07830dfad4ac923e88ad513bf4d00c5dc402aba4ee8d81";
-  sha512.doc = "b66f59fa80dfbf4c938d17de290172d9fbd9d1baaf2f02ab193564ecf7010499439ce6f0c844d95c989d6ab887e2ef07a175cfd1c187def7860ebaaec01c078e";
+  sha512.run = "f6f651493ec472e4be6286bf8a29c3fe024b883390c62debdbaf107915b0e2451c3303687a2a41dec8091318a8c6a0cbf6da1142278782189c498b73d03aecff";
+  sha512.doc = "0904648f121bc9b29f95f98b636b2edadc5fde6634a9303549d5588f5c52d2a87d6a559c8f714be7215ab3d17371105a1d60d1fb0731fcc62e34e5b8256fb64c";
   hasRunfiles = true;
   license = [ "cc-by-10" ];
-  version = "8.6.0";
+  version = "11.0.0";
 };
 simpleinvoice = {
   revision = 45673;
@@ -38624,13 +39650,13 @@ simpleinvoice = {
   license = [ "gpl3" ];
 };
 simplekv = {
-  revision = 64578;
+  revision = 68439;
   stripPrefix = 0;
-  sha512.run = "5b070b0408c002eca4bf530cc264f3d08885b5e7bfbe6531f7ce66312c01a23c78aff365c16d946786ccffa099094046edc5257f85ffb7cdbccc42137f2b8420";
-  sha512.doc = "0dff9d5ec8625d9d99d9e249ac8fbfd05bf200c8c1312a57526b694919c855d528028635523e1e55757b633dce7d63727b42d35909cbbdd369bafe2c519c2b48";
+  sha512.run = "16b0136de5c1c97ff19beca9f9488768adae2ce7107310aead9f9da82230e9d9cbec62badeacf66175fbaa181d691558dc4203e848b979dcbc23f8cf9bb8e669";
+  sha512.doc = "586321e8c1597582d3be117e74ef97bfb0be59a75aae1d5bdc87b2a481b80cac350958ca77aec34148d5e54cd22a0b0b11306f445cd5abe5f1868ecb357862a3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2a";
+  version = "0.2c";
 };
 simplenodes = {
   revision = 62888;
@@ -38686,13 +39712,13 @@ simplified-latex = {
   license = [ "lppl13c" ];
 };
 simplivre = {
-  revision = 65475;
+  revision = 68376;
   stripPrefix = 0;
   deps = [
     "minimalist"
   ];
-  sha512.run = "45fd5adc80b471310cb81961199e4565d40e6302c4069a19016f46367013c587b54ae7af58bed5d2c37812d9aed9deee9b9ffde0762cd2927b96ce311598e7d0";
-  sha512.doc = "507ae125225f775b635a9762369083b5de38a7790b959d7d5c6d0f993b350bda97081e26a4377633ca1a609e1ae2759f34598714de32e31dba17b6c7f54a7f9b";
+  sha512.run = "f9891f271cce6c795fc78719d71724dc1d07ff21d6877740745dea401be1e67801ab92bf4de2d3a379fb2e63084d902fcf4a9fe38aef40052d30e84e8b8a6b66";
+  sha512.doc = "d958c2e1e75bc22256a2db8fcfa2e4d5375b072b493a18c701cc44d4b3bd9a8e4e43291135ca21febb244a83ed865d7d855feb9979091d771150633170865bae";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -38736,18 +39762,18 @@ siunits = {
   version = "1.36";
 };
 siunitx = {
-  revision = 66370;
+  revision = 68844;
   stripPrefix = 0;
   deps = [
     "l3kernel"
     "l3packages"
   ];
-  sha512.run = "6c063dd7eaf851733aeb69d82ab38b1f1f894bdf5c206e62233887c4ed62e699b7a349358ec39e1287842bfc7f7509e51bf8bf5b5b9fd7f1071eea9493677416";
-  sha512.doc = "d52b75a7cc431b479e80a4ebe90daab5697550035f3932a0f0e2b5a6ce503fb031778fb9e893dc57157b678f37c39a8729057156e292fa4135f28b7941329551";
-  sha512.source = "cab618b0b5e8f380f440fc5b4383c8bcb20e7143ab8693576eb3ba3af6c9cb65190be272154ec7038e55343f582117d9dddf5e714c1b44d0fc79202d9f5d8a8b";
+  sha512.run = "adf94a225f73f132a84a2bcd40ac1f024f81fa10eb35be7ca6a41149960f508ccb45f967371aa11ec1a129251a3272361ab270a3ba00b595627489cac789f279";
+  sha512.doc = "35fe0a78311f053e98153fb435327478cd6fca48e1c9595736d4857cbb6e8882ddb20a89fcaf95542c9076c7a89cd8ad0c042e0faf0a8a7dc3a4dccc8131fa98";
+  sha512.source = "1abddd04b462232b62d9f53a1dec4f9815862fe208680e7b62aff00c6ce4649494eedfda81051e7d842d64ebec35043e7a38321212af22e3bf70cf9649bc107d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.2";
+  version = "3.3.9";
 };
 skak = {
   revision = 61719;
@@ -38964,14 +39990,14 @@ songbook = {
   version = "4.5";
 };
 songproj = {
-  revision = 64966;
+  revision = 66704;
   stripPrefix = 0;
-  sha512.run = "404dae04055402b3ba312fac9cd115465ec73dda4d7b7a2550afc088a12465c4a55893a107a85c185286335fa4a9963c38febdc7511bd33548db29ba079e8e73";
-  sha512.doc = "99c4b6bbd9d76ceebe91d3631121a6c1197143e23f6cf771d29ada608bb208173e1656276453ba781a81481ed86c382ca9bdae0db4f424c152ca15b3225bcebe";
-  sha512.source = "005835a9319c80acb3575d644675f1311c0a78918612e1151904f6b715c23fa333c1a67e8f566d7bcb01dce212884454120a52abd0ad15049ade3dbf9e5cf810";
+  sha512.run = "7c6341931e78dd362cd67062518f7f6d1725c239f20f65a7e345fed03787381af08b18102f671be4913ed53aeeb669f3744330d2eb2681878939a813ade2f1ad";
+  sha512.doc = "1d219f70c51484b321b6c3b8fb63a81aaa311cecf5abdba6b5cc2662d528ce5fe78a400d81dd3dbfa0e3616a65bf124e3eb78ae94e57e1a87dbce83ba32b3b64";
+  sha512.source = "ff8238a64adefe5fb2e2ff8b7541fce489c0759dbbfb5fa517458e404e6a7184b77782cc9ce30f2063a958e212b1d133c7c4a3b82518e7347b2cfdb930bd6cfa";
   hasRunfiles = true;
   license = [ "bsd3" ];
-  version = "1.0.1";
+  version = "1.2.0";
 };
 songs = {
   revision = 51494;
@@ -39001,14 +40027,14 @@ soton = {
   version = "0.1";
 };
 soul = {
-  revision = 65906;
+  revision = 67365;
   stripPrefix = 0;
-  sha512.run = "cde236f51709569bdbeafc16b3a49d20e78659d268faaf8dfa059443dd2d432328cac46ef88c8e8dfff74b6fa9d2ec1342d7fa18a13ba183091e5f39a03a0a24";
-  sha512.doc = "da5b11bf84185337572672a04589505363add2a17395c27eb40f63677ff60f146a4765ab31e1acb011e7d0667fb0b4b969127558000207b7fb6c86552a9f0ac2";
-  sha512.source = "b12b43abac05834ceaf6c3caeddd72393625acb6932b088dd48d15561e3599ab20adaf0251d0711c1f00bd0992cee976a1c9a3bcfc0eebaced5b12b8774064a9";
+  sha512.run = "233f1178521296d5cccc7db50c98425995b8708c97d750a5c24f698bd0de2e54ed5c57f9641f402bb8a42721e348355e6f7e9092b4056999b032d001c8203aba";
+  sha512.doc = "c734b198050f5fda61e0477e7cadbb6f6f9257a0fa41babed664621d7b64c4971412d831b350879a5405976d4e35a11caa0519fb67f308bcd622f0c72f431b4e";
+  sha512.source = "6a50fd644f99214a71f96994d52fdfd5f353a584ad73dca3b66829ee6094976eee8d4fec3f691149f634f27423ef5490bd4c1b781fb743bcf228e4b1e52e5d33";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0";
+  version = "3.1";
 };
 soulpos = {
   revision = 60772;
@@ -39061,23 +40087,23 @@ sourceserifpro = {
   version = "1.4";
 };
 spacekern = {
-  revision = 63552;
+  revision = 67604;
   stripPrefix = 0;
-  sha512.run = "99e74e5cdc59eeb4a5d3718af573db1b53f1e22b3c554cb70ccbce25599133c10b4d8979e6ab7fedb7a1af5700046b027618e5bcf1e56e37b1e63006b9b37ca3";
-  sha512.doc = "7aa1a221d863d31e520c2bc2379c2befc4ca99b091793ce183e2478077d447d1ca47d4d7b29c819780faf2197049fb37e7711b21ec5aad3fee2733538e9233d5";
+  sha512.run = "005bf533b88e602779cb71c0ab7720492e5302f6c9321ef8d68cbcba8f4f9a0c7839c5408ff6c2a5f72c18c5bb5c8a7d41a5500aeecd29ba898c209c83dea6ea";
+  sha512.doc = "8c24513b5f81d1f2df44a707a5e2ee6baf66af594507a545ff0c5e0fb90412b6c03831d73cb473dd32168a6f55f110fa699f941da0626aa0b3ce35bbbf1d9e26";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1a";
+  version = "0.3";
 };
 spacingtricks = {
-  revision = 66398;
+  revision = 69048;
   stripPrefix = 0;
-  sha512.run = "d0b102faaacde58444da330086d97d4fafcef02b3a6c59282e4fab3072152035e3ca02fcd41fa6cd3cce22c77b8e2c9de8c29e108efd7acceb3c3979d60ea352";
-  sha512.doc = "d132b15c31916efe44bd5b21ad4f8bade3e9bb2fe59a7920d37c7f49f11d025d81618f9a947adb77d652e319ab646bba3c1672f1fcc1a824a9d51486e5b300e2";
-  sha512.source = "6a46c1240ea71f5f6e104f14bfa79183e67ad162757667538b3ea981869e9ec10ce8c4c6a179b667ba3a389345805b540fb607bad3ce839463e3cb4bff9ea74e";
+  sha512.run = "df9b7518565ee8f619aaedc82384497dfbad69911c66dd68f306010cee603ab307c3af89cc3f9901585de03e1796da3d8b96380e454ab0d3d24171187e39872a";
+  sha512.doc = "76ebfa44b0f992db86452e5ca6bff7b4b5285e743de595f6963afca7eb0e80f287a1eb71b2f287edd33acbc7a9f24fe1876ac6f62d2812da2f1fd89c9650f814";
+  sha512.source = "1f22a7811c34d834cae307a149fd993d87232c6e1ad6d9c22c79f005b6ba06a84daa5878caf189b44b8afd39a9ce41005973168b7198f04223becc2c0e90ff6a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.6";
+  version = "1.8";
 };
 spalign = {
   revision = 42225;
@@ -39117,13 +40143,13 @@ spath3 = {
   version = "2.7";
 };
 spbmark = {
-  revision = 64706;
+  revision = 69350;
   stripPrefix = 0;
-  sha512.run = "7981e8bb14b2599f1ab53ea58fe1d29570fc902726993b7d2403626222726f974c1080ab73d1b6f55ac255323d9ef147d28efad039f722af56f9aaead57ee2d3";
-  sha512.doc = "aad5d9d1c80104a53ffce390174d0f1b55c715df8f5bfe3eb28e2a2f8613d03f5dded36b3d851fed7546b023d1167668ca8b49b932dcc66e81a47492a3b5fa24";
+  sha512.run = "66ad2072225527c3ed64073ba5d33533a429b211794cf6cfb2c2623063629b4ad2869decea96237cda6c678dd35f46c6a63c61ee900a6a03c11e77130f911113";
+  sha512.doc = "128962629c38e6dda2752eb003c1039cac0e3ea01ae9ffef3b784d4f28c364fd275c1169dd812293ce5bd68a4c6aee422a23a63e9ac5b3da4ea5388e3ca44bf5";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "1.42";
+  version = "1.43";
 };
 spectral = {
   revision = 64528;
@@ -39248,13 +40274,13 @@ spotcolor = {
   version = "1.2";
 };
 spreadtab = {
-  revision = 50147;
+  revision = 68256;
   stripPrefix = 0;
-  sha512.run = "e662188fc94f3f31031238a9b20ce617b01adb65dfcb5ba00cc0f90555a151957747e9b24803436d0815528d945e3a65684ebffc04dc5de2552989c81bc80846";
-  sha512.doc = "e7e1184c6d5013a5f991325e1f47b509b90f32022530281263bd5b1c0d9c9082a872f9b6ece3198ccdca555e1187546762c8fb4fcec9a75f72894f6fb49825c4";
+  sha512.run = "f808d82cde55b9b8fbe0cafe9f2e67acb19547e85f8d48965ecc6c8ea70302b9ebcf4097330707780fddaf1d9b2a2a12512fe4026a0d660c5a376fbcffdb6f19";
+  sha512.doc = "a2b57066ab198d88be6736572276593cb2b31a9c6392f74c68358d39a8c88077266b2138730225b6ef54245a6f084aa73dad5bbd31a77fdd8b60f53f7342e25f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.52";
 };
 spverbatim = {
   revision = 15878;
@@ -39316,13 +40342,13 @@ srcredact.binfiles = [
   "srcredact"
 ];
 srdp-mathematik = {
-  revision = 65293;
+  revision = 69288;
   stripPrefix = 0;
-  sha512.run = "6735976156214b80e55e17f6100b8961c2851c6caeb339dfe86c9d68865f243718cb5e4a74e4f7592fb8902b843cf917e93233d43032f2b69a17402d5e5c5613";
-  sha512.doc = "a2fcd471120ca30a329c20793cc86a1ae8de33b7a1507b3204921d5d0e8620ed9e9d546db9d4b98194122cd2ff35f3d9e8d448b2493849a1cda8351d86ee1604";
+  sha512.run = "168efb5c07ead0dc00c318928d717b2840e162517486ce1351412d7cf5f5cb8807d8016799510c6db48210fe517485fc344eec8f3edafa587cc55d1e6e60a005";
+  sha512.doc = "318b530ec453df35135ea57a514574f71c83fca3f63c85e36405ed20f84a2438951325d9a30bb9c5abf2dbfcb5b2829811720b7031a68b2ecf9d19170e4ec235";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.11.0";
+  version = "1.12.2";
 };
 sseq = {
   revision = 31585;
@@ -39408,6 +40434,15 @@ starfont = {
   license = [ "publicDomain" ];
   version = "1.2";
 };
+starray = {
+  revision = 69002;
+  stripPrefix = 0;
+  sha512.run = "4ab397ef4f6d8383efca60429971dc48ac6b0001604f0a53540c7f030a567606f0cb8d401569ebbd2727e83ee3a94f5e62680aaff3877a4225326988ac651451";
+  sha512.doc = "9db6912c1149b57a56c8e916525caf122b3d37346642886a12309463b0dbeda45ff719c300dd09460da51518c8a91a99b0e4aa3c80e188f09e167c1bddf31b9a";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl1Only" ];
+  version = "1.5";
+};
 startex = {
   revision = 35718;
   stripPrefix = 0;
@@ -39437,11 +40472,11 @@ statex2 = {
   version = "2.1";
 };
 statistics = {
-  revision = 52212;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "b0f2c288a57cc64c72bd2b862cd6c40b62e7404c4733b25af64b43d008b277417bc72a4398734e5620e6d2b9f97b401c1d54ee69b0a1ad5947ecba798ecfe0b2";
-  sha512.doc = "9d3f7b94c6d144b89c1c947645e4e071933b402e350ef6405d533bdb0a6aed650b215a135976410fbd3a68ceb0fdaf6c877f2d7435680f8c70f3a2209c0808bc";
-  sha512.source = "a0ea1a189cda9472bf87996d4c191ab84ea824f3034a66d8e23982a1824aa78221fa368b3c8bd696ce58b65280599617c5ccfe4ef97fab8227148e90cc7f3e4e";
+  sha512.run = "dc3e9516f7bec533adae533d73583871101f26a42a96e6e0afc99f57b2d11797c1850113630b128ead90997fcbacca1bdfc17ed70d4854756cb3a14fa4133d99";
+  sha512.doc = "239231ce3eb6e75450e4eabd722a6fe2149e7825236c2d028a0923ad53ac4bfc2296a5d4d8f80b70bc24276f77f9b6b79f2e33debc03106b5915cacceb4d7040";
+  sha512.source = "a35c628209828b5c595dbab9596a3e25255dd1d61986c8108125e45bbbef7806b9204791d59ee23ced7c486f0a39271b15f0bb6914f06cca379ee6072f31cf97";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "2.2";
@@ -39516,15 +40551,25 @@ steinmetz = {
   version = "1.0";
 };
 stellenbosch = {
-  revision = 36696;
+  revision = 68039;
   stripPrefix = 0;
-  sha512.run = "44b6b8149d4a5aa34ce4bc2e9e66b9bd3a1381b17ffea213b5d0f3afe5b71a62a3b85b4feb6caee4711119fbe27d46b3fcbad2a892e662ee9aac184336677d0a";
-  sha512.doc = "6af215b7af75e04bf24ecf9f83c6e4b5a12013a84435e65872d4d84dadfc2231d341153b05f069d9ca927370a686b6642f4654c9924521f5d93d0d1772f48059";
-  sha512.source = "a4df0b0c1adc1477be9a8a0d2ee3c03c152e3a2a9c9bff5337accace9562a0b117f2ddd09ecf29bfef99ab3bf0a4a394f8780ef57fb693d98fc269cad2f940d0";
+  sha512.run = "8e368dbba7713051fd9a834223848a2dbce700d9ea8cfa2ccd04a3f2e88cb15d5ab1d881d4107dedc72bfe4e6876e5b7bfbd019cbf5d9d7fa152f4e6343b5aba";
+  sha512.doc = "0996a6932b4a6953cac70299ee655349f6b7723b416e3fef10934de92844de2dc4da42dc5d3c3a3939edb0cca087c2fd28b0d222641197593e9697891891da20";
+  sha512.source = "c1b4c3ac30f5f923a3b0893f4921fed69d99a0fd07f6de7cc728c7e95a2250c1544a5f60ec8331ca912dd5204f273c147492559ce08f6233fd509076db116d0d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "11a";
 };
+stellenbosch-2 = {
+  revision = 68183;
+  stripPrefix = 0;
+  sha512.run = "ff82ad0faba3b5742d1f31d22820cb4998e88630067dbfbdaa7bc01fe4927fc0d8f10afa1713551759048a9166bc6d86cf52561f72bb743197b7e5fbf911cecf";
+  sha512.doc = "9314fac0288fcd9e0e6040b3fe3276d52848693d33dba16af0b2e6f4bb79a2ea3258dd29e5b62bd90b25d8a02e9cf160833750b0aa99b8d09acefb6c8727bad6";
+  sha512.source = "bceed8029e35a4491999fa92d6fd046862895e4214f83fff06fad39cd82105d8c494d78d6a449c374ad678aaf727284e6367ab9136e106dc4266afbf1f01b367";
+  hasRunfiles = true;
+  license = [ "cc-by-40" ];
+  version = "2.0";
+};
 step = {
   revision = 57307;
   stripPrefix = 0;
@@ -39544,14 +40589,14 @@ stepgreek = {
   version = "3.0b1";
 };
 stex = {
-  revision = 64383;
+  revision = 68569;
   stripPrefix = 0;
-  sha512.run = "e3e1c32f1d74dbf72793b6187e4b94ebdbb8d9e7f11e4b2d3e41e4803ba6b3dbd9d71c69c757ffc85cd4eb1c5a340c111a4e23f83bfb0fcf6574ee7dc0e51d07";
-  sha512.doc = "c5356065843fd7bb9367c52119b61d9b86aa10c8f099969d0e5efa31f2a709df680c43b41e6266922f2835175ddbf2a719b2fd94f55bfa7af139969d5840c270";
-  sha512.source = "fe3a69ce18eb50a24972bff6695e7b1297defa1c99d53b05ba5a04abf249e44bea4a7ab8b191ebd3f02f71891eb97c88e8ef685363f4677471a38c282fad6566";
+  sha512.run = "dd17faf11269dc6dc5e6068bb956a36b2af86775e296b15110d0c9b6e1e8b8410b936deb690c7a89d604c012b5643849e8abd317ca67cd872469f863511deeb4";
+  sha512.doc = "0a8571fab8eaefb365c52cdcca251f2582d4581f6243e678db90c2c05789cf55ae077ba3216a9318a1bacc172b259ec444b35d8de1622435d4a02b5611d141c9";
+  sha512.source = "6efe24e0933790ad7c3477e9c1d25c37b585ed0e18ca937326102783362691d92b51486885a3d08c1581110a2e4e9f7182f706ae4896c70f69472e01ef1ddea2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.0";
+  version = "3.4.0";
 };
 stickstoo = {
   revision = 60793;
@@ -39638,6 +40683,16 @@ stricttex = {
   license = [ "lppl13c" ];
   version = "0.2beta";
 };
+string-diagrams = {
+  revision = 67363;
+  stripPrefix = 0;
+  sha512.run = "9f05bf09bb74ab07ecf1a4e6aa1bb16db06961b1caf87c73f48fe33e8174081c38eab30b0249e219a936499a533d441b092e642c88a996193900fb0000708c35";
+  sha512.doc = "3c692dbd5835abd3bb87cdc8b3abbfdcc63d233cd3275d92d5073772979349c759c391f254bab3f670d65ebb55b50b4d7024b748b538349428033971beb09bbc";
+  sha512.source = "632a1fa22b3bef38b708169aecf1b9c3b9bdcf4cd07843a2b12893a996a98d41d397e3614e242d6021a385dde4e563aaa011e38400c216e76bf221548996d2cb";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.2.1";
+};
 stringenc = {
   revision = 52982;
   stripPrefix = 0;
@@ -39659,13 +40714,13 @@ stringstrings = {
   version = "1.24";
 };
 structmech = {
-  revision = 58985;
+  revision = 66724;
   stripPrefix = 0;
-  sha512.run = "4b4bfc5962b57792e34f22f19f8127a048ffc4428eccded53452b165d11d798866f4dfb477dc87f3be52e074ffef9e13e496894bb14e4ad1876b09852efc7f69";
-  sha512.doc = "48623a95193f3613d16b82a0df650b1bfcbf62bb1fc7f2fbe2b878199eae01d89a5ca9d151931ae16eceeb1d47dd835086f3eb46b0b3bd36133835e797eee4a6";
+  sha512.run = "a92eadf53e3bad0a1e54246b75b10c99d84dc509ea31cc9fb30ed5541e3d757afcb60aab7fbb7515be335a2caa2f29d7fc211b561f073e25a8a1cdbcf90d2d5f";
+  sha512.doc = "e3ee8640eb6650f1cd18bc111d0e4f9b6e3a8cc8ac480bc05ae8251b0e620223aedbf59a54e16953edfd4faad8b05c78a51d5756f7b8660c612b5eaa32defeca";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "1.1";
+  version = "1.2";
 };
 struktex = {
   revision = 47931;
@@ -39688,10 +40743,10 @@ sttools = {
   version = "3.0";
 };
 stubs = {
-  revision = 19440;
+  revision = 69128;
   stripPrefix = 0;
-  sha512.run = "13d9fbb0eb8fed9b92f1307db189e9f65df92470d0ed21a0c84dea2f53ebd1b4d665919372476b737184df4f9faab0a982e681a0f9cb5a99e40b5f80194d448e";
-  sha512.doc = "a427047460a92a436b21c23c112bc4ed8608a9916b613530e5ee5cc56bc833a18c6336943ccba475b7854269680eb7d685bdf2f0641478e46cc4e8fd9a6e8260";
+  sha512.run = "fb8276d461883c289329a74f1ba3bba5e64acaf199f7739b013f32a4fd84ab5e2d94d73482a3b70c64e156ff9332b3c81bcfa74854edcf6cc3fd6ac89df595ac";
+  sha512.doc = "b2822ecb49ccd9c707cf731490c628a75b278848dcec31283c782ba72a12da8e8b7282ddabe38939e5b0c01afdd222be6991618d4cf1b73a2e06b875fab4f82d";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
   version = "0.1.1";
@@ -39835,15 +40890,6 @@ substances = {
   license = [ "lppl13c" ];
   version = "0.2a";
 };
-substitutefont = {
-  revision = 32066;
-  stripPrefix = 0;
-  sha512.run = "d060c12b1283ebcf314d6f9f6efd2ed94151ae7030a3d6e424478b2e2cd05753260837f1b9c5003735e27a7eba0313f29263e9a8a8892264bec131bbe07ef9d1";
-  sha512.doc = "ce241b95d029651d2de4464880f7f59e4909939697537cf5257bc2e132a476147263c8e9253ddd1fd35fd62dba73cf4d0d06d41bde26b11776b83c456adb0fb4";
-  hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "0.1.4";
-};
 substr = {
   revision = 16117;
   stripPrefix = 0;
@@ -39872,11 +40918,11 @@ subtext = {
   version = "1.1";
 };
 sudoku = {
-  revision = 15878;
+  revision = 67189;
   stripPrefix = 0;
-  sha512.run = "a5a9ed2ec9a5eb2cfe973094c6bfca609923ee14ec51916051985bcb2533d1f6670776877252f50a2f16fb54e3318adb15fde907182da215d1db81327fee313b";
-  sha512.doc = "7e1fc099e6f84e0e22f6e479bfc611ebb8668fd1391c07f877abf4455579248b99108c9b6224da3a0abec4e0853ac8ba8f817e80832629a1d3b624b16394c29f";
-  sha512.source = "05e89ce1f640ed336d8d7447681517b6fb827fed72e8245998c0b11f7f767b8f20e9688f3740223213fed0e860c9304748a11fe94b1a8244697c79a0db54d441";
+  sha512.run = "0cd82916142b881bc4ea7fb9885de56d3ee724fee637eab5f1bc6bdc6891360680132cb2c3d52028cc0ea9670efdaa4666d59a853ac3f850f2642954962de22a";
+  sha512.doc = "6b44d22aa120727f8a7a55adac7bf71eb1eb57ea1f33d597f06923bbb50d88c088d431f463951c3db27c2c1d68024b44992e47c83eddce98ffbda054cf98a4e1";
+  sha512.source = "eda0ed193fba97a2f0ee2d435d62110acbc054ca486a580fcf0a79f3c094d6e83b4a5732fffaf237978abd566794ca6f3be56f70a34a4cac05c867e9213cf1dc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -39892,14 +40938,14 @@ sudokubundle = {
   version = "1.0a";
 };
 suftesi = {
-  revision = 60991;
+  revision = 68204;
   stripPrefix = 0;
-  sha512.run = "12f9eed31e58856352c2625daf0ffe51d8df084a4ee255c8a19c17d1debee06873127136a49cfacfa3941e25546811216eb943e17717052ba369a3f34811687b";
-  sha512.doc = "01fd5a4e862960a219619a57adfb7b34ee71fd953f79178e6c77f6c27b404d9c11eecc7d302c9a8a23b4f746220acc9ee1a465e1b921dfeb3a9119d45b96b8fa";
-  sha512.source = "d0a66c2920a9f7e0ad2a54b47015b89e7792b8f0fa39011414ac80a58a826d038b29e5d0170803be3f00c61347dbf287c9608c59f1354895bf94a24a08d506f8";
+  sha512.run = "627d002ed932ed3f55382b50e4f19c2e98284602bf3095f352f1ad3120f2586b7ebf12653279a98c794e34b97829bf30bea4fbcd06c4657c94cec96be233b3b7";
+  sha512.doc = "af2b5317858ab9d19723c668fc6af548fb4bac805cca26e7dac31872e54c35c768c228763681db34722f2a1c4222e2f1fa45e5263b183ddd51e848e643b7f47b";
+  sha512.source = "298a0a6a4d627d662c4a8ca6dc7312238dd36dd546c768fc16402fa6f630a224884d8223c30b69abd4f28ae7a19d02870b01ca71608ff37dc548ec3d5f854c95";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.0";
+  version = "3.2.1";
 };
 sugconf = {
   revision = 58752;
@@ -39910,13 +40956,13 @@ sugconf = {
   license = [ "lppl13c" ];
 };
 superiors = {
-  revision = 51909;
+  revision = 69387;
   stripPrefix = 0;
-  sha512.run = "783d14d75daa63d108fcf870004a46680c643699ccc7256906a06fc7ca4482ebcee14f120209bd488d5c2890a3c8c33d132a0eb23d4b93d04deb05eca6bd0970";
-  sha512.doc = "f96d441d9dbd470023c1ecfe3912336f696dea7dcaf7b3c052aabf9c702869cd0ea27a28ffbd34294149c98d5bc23fe004871faafdfc1eb72fcc4fe2e2591d82";
+  sha512.run = "50c352d7ee3b267ff3c25f93d5ad9d32a80f0f09cb8e802f6426e9d415ebfd8a54d3d07425c2908c75f328309e4d21173feb768c63e931658d151274ef6f953e";
+  sha512.doc = "da35e722be66689020ec2052f4e096502ad63121fcb3a55ffdb724d1b557122a401e7bfa8c4c0ea2c6881b0138bd155b1e5baa7886c2e0c7d1b693e56c9e7dc6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.06";
+  version = "2.0";
 };
 supertabular = {
   revision = 53658;
@@ -40089,6 +41135,15 @@ symbol = {
   hasRunfiles = true;
   license = [ "gpl1Only" ];
 };
+sympycalc = {
+  revision = 67087;
+  stripPrefix = 0;
+  sha512.run = "98c46fc7727bbb8fdda4038f56482d5fbf1c88e3e869b5865f45392dfbeb5be545f754e6ba109b55e66c96d6cf733ac97b472edbd38e3c21c2f937ac9136f19f";
+  sha512.doc = "52d163772f25442b32a5ac240d15ab2d606e4907c79682cd37ff45389beb41fc2eaefec9b85d0736e3490d0f4cd1d60a42091cf24aba1ede8aded1cf7a786a0a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 sympytexpackage = {
   revision = 57090;
   stripPrefix = 0;
@@ -40100,9 +41155,9 @@ sympytexpackage = {
   version = "0.3";
 };
 synctex = {
-  revision = 54074;
-  sha512.run = "1cc1900df90ceebc6865ce7c4a4befc86d1aa5aeb0f19808526a6cb369d7bd2ecf3c4789817da937e84fdf1fa3c921660e64e3e8a8e215d4f6dd97b2371743c5";
-  sha512.doc = "37b7f0e3b86494715763c0d230a076aeec1f41ad658432099871d26b933cd8d0e8e831064cbe462a31a30260004c6dfe9b6b4d555d281d909615910470a2b1ef";
+  revision = 66203;
+  sha512.run = "cbe1f8c6d64619f742003c01566d55b675724f5d03681ad53dc1f58ff7314af88000ba25ea74e4fcfb07ece6160be6976ac8e69a9a1b524f223f5b80f350deb0";
+  sha512.doc = "14e1f266182ee0be47a7b3841435f79594cdeb959245e6226520e81248691beeaa73f365c1112ef3bb4eacf4ca77e55265bd0d13c190858144bdc3064fa88a59";
   hasManpages = true;
 };
 synctex.binfiles = [
@@ -40155,10 +41210,10 @@ synttree = {
   version = "1.4.2";
 };
 systeme = {
-  revision = 55015;
+  revision = 66655;
   stripPrefix = 0;
-  sha512.run = "5ddd525564a009104ef2f345b6513c08423868a91105381c66372176f41875fba24f0d27ceb648daee113514bb22a3e68d5134fce82394f3e7159af68cb81703";
-  sha512.doc = "9a3fe5864af37878b861220ebdb6613635dcfd563a0149ebeaf0c725af608d8f24f5d2e799b19546f82299dd38e2a4695b6b08d056fad1ec2f8a134326915325";
+  sha512.run = "ed93847bd9d5b9158026e364d98f7102e4040d19f8fe198565b8e6a9573ba1796a89b69f76dae76c40acd9ac96392aa75d2ccc006f8419b699f8f4c7b35c737a";
+  sha512.doc = "97bc9240c34251e6b3cf0fe53fb5c5914e0bfc2cf852ca70aaa72213ac9e5ac7d55738f63e73aa8ebc4e320a3874b3ec84c3a0465b188c2fa263648306faeaee";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.34";
@@ -40250,16 +41305,6 @@ tableof = {
   license = [ "lppl13c" ];
   version = "1.4c";
 };
-tablestyles = {
-  revision = 66465;
-  stripPrefix = 0;
-  sha512.run = "bd486860c47dab832ee90a863fae09c0aa2eff5b2a8ebc77ffdc5299f8b163bf83aa427d82023ba3c67ed82efb86db386b55d4f745681626b0c0816ee5dc6d53";
-  sha512.doc = "53555f5ff0c1634d763b3e1867f67f3f4ee9dbdb4e813c5e01682ff6256b435a0b3706ab1869531932bc42c523007cb8afd96be380741c640c2d585af890ae78";
-  sha512.source = "a0da15a75d9b5ad4bde561092f677553150302feca788f4d5496448f79de198ce631950cc57a32453272a2dfb7555cb1da421ea959c77c82610bb1aac52efc26";
-  hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "0.1";
-};
 tablists = {
   revision = 15878;
   stripPrefix = 0;
@@ -40289,14 +41334,14 @@ tabls = {
   version = "3.5";
 };
 tablvar = {
-  revision = 51543;
+  revision = 69212;
   stripPrefix = 0;
-  sha512.run = "c0401c0ce273b59da6877f231b06f3e4da572a6531fb6c587e29a00bb0f53edcabc725453c2ad1dbe6ba0458721a7e4b04182fcaaeed46208a760a5dff9651d9";
-  sha512.doc = "3bb104a3f50375d2e96f908126268bd3bcb3e371fdd339ed7bdad9dbbf714480b89a4a11625a2b537e09f214eccdabf6c0faee84dec4591f0627783481eff20a";
-  sha512.source = "cfa218cf1dee3830f72af6996b1a5666d65a8729f65a8a652744bed84204122a65d514f539c2d50537c3529fdb9555ad5c5a2698f4459e11976e4b9640c8cfa9";
+  sha512.run = "0ecb62b92529825d893d5ae686aa7d66576da1915ff760ae80466e9c76c2951f1300e72b3bf039a61997ebfaa9f72a8c56fa58f53c65d0a75bbac71d830dfcbe";
+  sha512.doc = "7cfea26a1abda9aa3642c5d48c763184fc0f7a18b77fb72b8083c7271847b6d7ce3bad33fca96f082abd171f5f013eafbed51bd84b3ec046d82be13c11043f2a";
+  sha512.source = "871139aa0cecc116ef7e3bfe6cfd048cb804ccb108c18b6fd71bafdc02bfbce56d297b111ddff348e92f44fbe1a69e06a5be3693386f02766475004d78e54d06";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "2.0";
 };
 tabriz-thesis = {
   revision = 51729;
@@ -40375,10 +41420,10 @@ tabularew = {
   version = "0.1";
 };
 tabularray = {
-  revision = 66281;
+  revision = 66276;
   stripPrefix = 0;
-  sha512.run = "3f2b122a8688288946e9fb891f6b4e6166bd7544d9761414da1429e2ca3c84ab7f2488d4aaf3680d77bc6e1a43401305235b825fd4b92ad00c92575cab51511e";
-  sha512.doc = "7425c669a3cecd77a2795f730797b2dd14a27673326219a7c03bdbbdaf89ee08a69b179ad13787b98ed1b31a29c0d36a4d0ecfcf9ef75462bfceb806a71c80db";
+  sha512.run = "49171a748b9fa046d874bfb2aa44d2696120fae78c55314853090163228d6484507c281f65c7ddb1ba952b22c14d91e3904e779116adea69166322b91188b980";
+  sha512.doc = "98d37bdd677cac76657848d0ef5f638f77c44017c6320bb4122696672dfbfd459afc3c2ef44431da7340d9831c319998f88390300ce2f53a355239203390a448";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2023A";
@@ -40422,14 +41467,14 @@ tagpair = {
   version = "1.1";
 };
 tagpdf = {
-  revision = 66465;
+  revision = 69165;
   stripPrefix = 0;
-  sha512.run = "4444749d11674a8ca4f74ebb26c721bceb7f11e8e01dddd3be109dea403957e95aa436ae4034764db7b85cb2905f2f458c55a7d264c895f47a38c85af88be4c7";
-  sha512.doc = "2b17fa52385be61794a2b382a91312fdc101c498f49080d0073b4d3060278068fd9dc24fd94c9aaa174d880bb985d94977bad3746810c898022cd78003c430f9";
-  sha512.source = "ed535ad10d7cca507f4cdaf8ee63eae4f6a7b86bcd6f92ff71a2b611125e2145bdee0fe7b0d42020895964780b990aaacdfa60a2a58f1a5516ef7860d560a95c";
+  sha512.run = "56d464d44796cea4f20d94a3f58275f2d4d470e3f851a14c0a63da738e8865a1276a7a06ca77c00a2c9eef0b082c1327be7645a96066265a6d412b5ae950bf43";
+  sha512.doc = "ceaa96192541cd2a17c996737dbad46272c5b76e9af6176ccf4c6b8f1baecf2d04636cbf8dab0563943dcbe5cc72bc36b1d8d3438f1b35a5d239bc3da81f03ea";
+  sha512.source = "202a66085866eb4c989278ee9a1cb9143c0d0bfaef6f2bb810736ec86d649287242b15303b128f80643074f94213f7b04de46895b324cbe13c9bfe1027ed687f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.98e";
+  version = "0.98r";
 };
 talk = {
   revision = 42428;
@@ -40467,11 +41512,21 @@ tamethebeast = {
   license = [ "lppl13c" ];
   version = "1.4";
 };
+tangocolors = {
+  revision = 66733;
+  stripPrefix = 0;
+  sha512.run = "f33e7b7bf60f7e10f6b58e24a53c374ffe84a48a44bd6e0259dd741c91f94e61f71c6e6689e204017eff1b0050aba4e6eb5715b3978ec633ab0fb41317b1c835";
+  sha512.doc = "051a1f028e4e77eb78a11dda00fa950f9405a4703dfde7fa61318482ece12ba16e16ed0dd035532cd272cf3d66efe03d212f44c03ffa342db76ead6de1a5a2ef";
+  sha512.source = "d88a247cec1928a8178d189b812175df0a6f861f829fac382c952c0e1d6a5cd3ddcf4216e88a50676c831b1940d3593dc1e441bc45b827591039a13a31f27aa9";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl1Only" ];
+  version = "0.3";
+};
 tangramtikz = {
-  revision = 66201;
+  revision = 66183;
   stripPrefix = 0;
-  sha512.run = "45a176bcc950088be660fd9d2a591c4cf116686374000ef703fd1b303f678fca3fb74e109951f2de57077de4045d2936858e46eb98ebb3dc179badb22a9d3bf0";
-  sha512.doc = "cf7902c8d6628499b56cccb73ab16276d00d99d92aad84f53e0ad51dfe3c6bc31fba329ca64ecce0a9ee1b64ba24d86bdf643e412ee6052035aa7d4a1fd6950c";
+  sha512.run = "81446f01dd97ef332003f8cce4becb670fe3fa284e540c0dcefd6627b03efcc87874d12c7c7e399947a269cd4fd66deff2064cd1ba64cd34d6cac2b4c587e802";
+  sha512.doc = "45435423e7b0a7d7aaf9db5cdbc682b9f62721b7fb333c64cd76a773fd67bb7faebe1bb11a6424c15a495f2c2269a78698a7846f2e8902c16023f2af91c9be9f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.1.5";
@@ -40514,13 +41569,13 @@ tcldoc = {
   version = "2.40";
 };
 tcolorbox = {
-  revision = 65800;
+  revision = 69370;
   stripPrefix = 0;
-  sha512.run = "d5e985b0a8f9e7756579b92268a3b9a5a5ce0169b1b8608996c3dbc4264dcf23f17256789cce7db712cde014cdb9a024e649fd3ac6ac53ef4d6131599d49fb55";
-  sha512.doc = "96cc807a6130a741b861a738639e24dbb31e7194065e2e62b2ebf17bbaf2de0a38b7b9feaca948e9e36eb9bc6736d963aa1db33f82187759cab384f31966c924";
+  sha512.run = "f62323c290e39f10555df66bfe43a3a199f99fd5ee81c13e450cab4736c805a21cd3d85ae710ccbccbcc552d5e0370245600a5e58e605d6b3d35a3fefa2a6fe0";
+  sha512.doc = "7f4f312fee029753decd7456a6e2d8bc829484282f93d245e73a3ae706f7c948091694c05bd2b4f18982b4ed11662ec1868ef0dfd7bab3f35c15a1c1d486f41e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.0.1";
+  version = "6.2.0";
 };
 tdclock = {
   revision = 33043;
@@ -40536,6 +41591,7 @@ tds = {
   stripPrefix = 0;
   sha512.run = "b03911aa9711eb5eeed77c026c4bbcf952da80322b855ac631e78c07a48ad2ff1a4afdd6e25a00257d1b70e054645f07f65c98fe74f6b1389be46625f5eb8487";
   sha512.doc = "f4078e3b1693fedcbe139b67c50824845644a2b1e57dd27f9e46e44504d8fe8ac0ca706590e9149c06e71794a188b20777bfd6bf1afe85f16c806ba4f9b99cd8";
+  hasInfo = true;
   license = [ "free" ];
   version = "1.1";
 };
@@ -40592,13 +41648,14 @@ templates-sommer = {
   license = [ "lppl13c" ];
 };
 templatetools = {
-  revision = 34495;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "16abbf8e5c8972961d112cba712f927be24fca191467677bf27d76ba30c2eba8cd237842b003b9cf45247a122294d517b14a4bf5b4938eedaf3055ffdd22c05a";
-  sha512.doc = "54d696f510cc75384703f750a8c532eb2a0d46e02821fd9126daac52ed1b39859882d475758cc1ff7fd6257211e49ee0fc5c06dbb2e13e83d4584523064cf19f";
-  sha512.source = "685e379f557b683adcf198fb0a6f962b1da431e004470d5fc53c8815f4e7048e73d6851ae1792d78fa322f8efc5375d40c8f3c79404a8feb4a229df2fadf154f";
+  sha512.run = "696727231a51c33d10ca7c18690d2f960cd01a72b4e928c581e2a7ed26770bf5ea18bdfbdfd56372fc7289b59323025ea7d30f208e991e1c6c89a659a240597a";
+  sha512.doc = "55c03f8cf8313aed72c9434eb26b0623e55a5644a22914ed82c64c07834258f0d2f9f7c083b22677be854f69bcc6d980e45158caa4a530df517083c1c590089e";
+  sha512.source = "a14dec17daec4f731aac48a155fcd306528ba106518db1b07fa1b77d9a90fef82746a4b173f1ec072ac73023469bea88d70f3b3cd106b3557ce426fbd05062e6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
+  version = "0.2";
 };
 tempora = {
   revision = 39596;
@@ -40629,14 +41686,14 @@ tensind = {
   version = "1.1";
 };
 tensor = {
-  revision = 15878;
+  revision = 67667;
   stripPrefix = 0;
-  sha512.run = "8f048f9c72eb693bf9e75e6ebda2901eb6b6add654b1f89651d54eb9416559c2455436f5e825160bfce220c790e00aa3a6f95a4557b3fdc880bade768dd36c05";
-  sha512.doc = "d9ec6b7b49d028a5a405f16c8cdb54873d92d3a0968b7df38aad44da607c8ea8cdcac45cce63b0bd2258a2a89787e2388b2375189636b93bf643055c0b9f86fd";
-  sha512.source = "fb246320405988579412cb8afc3f0f0951bd6ca09974c3f38c83979ff195e16e43c1852bca5097e8e4b07039230d3c019117234d4bb77eb75e70bedbc796ab3a";
+  sha512.run = "4e19620df8703906c539541afca09ef871e1cf6a20315b246ebf758c5a0ff5f2095c51d312b19f818e89c9714a79a32fbee708d4ecd0a0b0257546b0d940ed1a";
+  sha512.doc = "f60b5bdde9a29bf6a13ee94833b0d1fdaa1e7958d01a6a42b20a995263f398f7fbd761150b71f66490ece636ad2aa2c69a8ac9447a0000265ac480396822db2d";
+  sha512.source = "4a90f092c167a905cf72abf029bce706cbbcefd4dd73ffe791a132f22268a5c0322c246877a387739bbb15697555fb021e6132538b5ab9b188a9fa9135b9859a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1";
+  version = "2.2";
 };
 termcal = {
   revision = 22514;
@@ -40726,17 +41783,17 @@ tetragonos = {
   version = "1";
 };
 teubner = {
-  revision = 64600;
+  revision = 68074;
   stripPrefix = 0;
-  sha512.run = "d6e7eb1affbc544b04b279a2f0047863eebbfcd758ca69b470e7ed0b45128ac6935509240b7bc86674f9f83da445993c854d72ee9e1197ae80bc93a5b6e5f72c";
-  sha512.doc = "cb573c57d090d21b77ccbf90c4da3b64fe532d55b011356d4ec1b396545646e9d176aa4f21ac4e22604a3513eaf974cc627f7836afeae0ba3b6c21cf36fa0fd7";
-  sha512.source = "f84c0b7e3bd1630d022d578374cecd9212915c2a42e493cb25986295d6cefb0cf80be47dfad9a2cf47541fa1592497be89048972f6e791bff14477da21a43b22";
+  sha512.run = "c5f03b824d75099a38f8d203722d0edc4136392ff282489f6473a83dc178f536eb972ede3bd9371f47f39dfc2dbda6b4db78d282642889b4036dbbdb8e49a473";
+  sha512.doc = "f1d7123e4438f781f6f4f7448119c7dc968be54888c027f8a7c95e5c70f06adcb58d127de21679bc125355f85f82ec94d2537cb0467f7c285427fba6b8f50775";
+  sha512.source = "a44d484cc8de4f280f35648c93bc1c3673fff20a3477098d58342cb579b443f4a417f528e7b80787bf13fa8feddb05dc2cb5d7c261d812a5473236d00fac59bd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.7.3";
+  version = "5.8.3";
 };
 tex = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "cm"
     "hyphen-base"
@@ -40752,8 +41809,8 @@ tex = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "7d177346a2df7e7dbd2fce3635a8860c0deee30271beeba585091f8027c796678a3dc9cda2952a073c9ca02e26cd656a3bdcabe4661c23e81af350a987d7e4aa";
-  sha512.doc = "e545796c64bbce0680d12b9d77ca64b008c369f90639ad9c3e7b7b219ceb85fcf24fa7eccaff65639bb9fe7159c2b2dd124866acd2ad78d860ff4e872a341d23";
+  sha512.run = "028cf62dc7bd7f62acdd005c1121b4fcd55f9130db61d3bfd782cdae22e2e51581cd66a43a827ce76f6e4fed09f2050ee81c13594f6df64817c3a48ca3d1d088";
+  sha512.doc = "69e9a2068eb63d7a503be0aa3d94cc270485370be0342d5adf6fac714743a90b705622b8cfbd7e62e52c15f9a663fc3101d11a116c1af9c4f9f3f5c5d3dbfc77";
   hasManpages = true;
   license = [ "knuth" ];
   version = "3.141592653";
@@ -40775,11 +41832,11 @@ tex-font-errors-cheatsheet = {
   version = "0.1";
 };
 tex-gyre = {
-  revision = 48058;
+  revision = 68624;
   stripPrefix = 0;
-  sha512.run = "7e8ab25cd563e2be7f333f5f4232a7d64e9cd8ef2b5b898ad5e33af96d455f3bb0214184650dde76770cb95f3bfc6b10f35286e0263e52a6f43affa289920327";
-  sha512.doc = "ebfea3bfa958175078b78ee0f2ea36a4de289b967f8fc900268dce7b3d356d2faae9d9a1123c48a06e3ec78b05863626fa97cb3e249d1b87c036fe00c194ceec";
-  sha512.source = "68a06261fed419e106e8f6958a38bb0f5b78c3ee10b8b68365b3bf9925360cf726c4715954590f0b0b86faadfe636f50bce0ebf4b3b00162ffb4df54a2adc803";
+  sha512.run = "5422f349d15233e6f49576fe3a65f8afb5cae6a3c51e5ad7cb56617d7d064e9cf574f233f789c029c04bbfc24e5948c115b2d33569e881373d68615ac709153f";
+  sha512.doc = "db2bcc8da6d3bfb6f2165c1fb127b2b4a7471e41a0cebb851ce5465a18740d34948ce8292b4f6bd359621166602cf62a978bb179346dbd1dcfada49cc7972686";
+  sha512.source = "e958408e6e64a54b25fa89b38de181c96fffb9eb8762959209799c39cead7a5525f220b7b3cd278e35cb9e3e49c1c85d565d518ffacb0695b0c3c09ede935266";
   hasRunfiles = true;
   license = [ "gfl" ];
   version = "2.501";
@@ -40794,10 +41851,10 @@ tex-gyre-math = {
   license = [ "gfl" ];
 };
 tex-ini-files = {
-  revision = 40533;
+  revision = 68920;
   stripPrefix = 0;
-  sha512.run = "c053ad3aaa49224f26999112b3f5f28eb6ba34cd130cb54ab5ce67971632d41a8470c361e4471f9d75831d230737a0197186b05c25a9b401286bb4d5525b12a2";
-  sha512.doc = "c44315e35793a1e77b621af53061c25605fbc5ffce2f07fe52bc5e58f4db0e9252cdb1935c14d8dc632bf1b84c18f3ec18506c5415831ad230c7a314f4f7b670";
+  sha512.run = "58f8b1dd44be6ea67dfaaa67a4f7c6d27d222ccc7c7898c31ade4f23ae39a9a5aace902f05ff48bb3f6d63eae38f9db93b75c4d2efeacd394230694eebc33fa3";
+  sha512.doc = "9caf187a5589e49f946a7fc5ad332073dd2a90d82f71587a57ee9d62e365321fbf14e69e3e3448d85302cf5418a2eb7d94a114f95c575867b52579f6c35d5e48";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -40821,12 +41878,12 @@ tex-locale = {
   version = "1.0";
 };
 tex-nutshell = {
-  revision = 63336;
+  revision = 67213;
   stripPrefix = 0;
-  sha512.run = "4eb68fe292ca246efb1398ecae471831147834928338f6f964febcae5ef2833270a5e39d22aa803ab770d3ab21db3d60d4010912ebc79399f029c45ecbeac9fc";
-  sha512.doc = "cf610ee44e4b4e8a8cfa94aa9cdfe622d12fc7949f62c567e833f5f5affb42a99ef1a0f296fd1f1bccd2594d864f9bf965d89df642dee45346810363e6ccf4c4";
+  sha512.run = "cb8d343a8b070c6350cc922c74d5dc08ea9f6bc92397e5325591913f5b7ff01704b0c5009a8c8083a47baef64190b6640c51a91216af54b8505654d3105f34b7";
+  sha512.doc = "50cf98a9ba348f6814274cdd195a2ff9129474e61e858932f8e8c256f8108f622a088b0bed586c25e199737fbe3aaaa11441d6ebaf29fb0974ca822d662b79e0";
   license = [ "publicDomain" ];
-  version = "0.8";
+  version = "0.9";
 };
 tex-overview = {
   revision = 41403;
@@ -40853,47 +41910,47 @@ tex-refs = {
   version = "0.4.8";
 };
 tex-virtual-academy-pl = {
-  revision = 34177;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "b9358f50caf39d274c1684d4514fef0439e015588431883955f7aec63d35f7176ed61671f72cda7ae28125b2a977f25ae66b028b21017f106d8f78bbfc7df109";
-  sha512.doc = "aa73261fb0ffdbb7cdbf85df354490a72bd95e4d98e4a497e98666e6f5533a7f05a7132533db044ba993d86e03fc21825bc6fa7f262e5a0bcdb6de8114d38eee";
+  sha512.run = "23005895f708b07162b2b251be125b70dfa8ef6add8ef7c5dbab2c5a2e211f65fce8432cbf3ee324a9b72c2296d5dfffaaf5a52d77425e4d6fc3c042397d6bec";
+  sha512.doc = "fd22d5a6c34e5ab7859bbb515d54e822eb5167853abba3e25d5137df1bc34f0bad9892c16f7ed5dfded8b90651551e1ed84a00d561c561ba18f50fa04e7bc7af";
   license = [ "fdl13Only" ];
 };
 tex-vpat = {
-  revision = 63560;
+  revision = 66758;
   stripPrefix = 0;
-  sha512.run = "c215b5745c023c9c79694c61d6ac961356fa921b671e774e3adbd75f0445682255570c7e269cc425bd8745304f1df4acc543bc22bd12ab61a594c3f34ca55628";
-  sha512.doc = "87a5870f9b313548e8a8f8f2ec757bb287d0d9bafd1461067ab3d767874c7dd7b482d19557b48f43790b644506b7f1106a68bebf1eb7980479fd5133fadfbf6d";
+  sha512.run = "918054527c2d325ac0c1bdd621014fa4c79d7c6cf4ec8b5ac5d81dee84b9159fab0cc0047ea35eeb2de4460952126b3bdcd03395c29379e9df517ed7243206f0";
+  sha512.doc = "f16ad935930ab663bb2e5b486c4fe53b3bd9e883c660d97893c4aa86bfe22f7ffed77dc66d88060f7eabb1daadd2dc77742c1d9604ea94d26594aba340693f35";
   license = [ "cc-by-30" ];
-  version = "2.1_June_2022";
+  version = "2.3";
 };
 tex.binfiles = [
   "initex"
   "tex"
 ];
 tex4ebook = {
-  revision = 66333;
+  revision = 66621;
   deps = [
     "make4ht"
     "tex4ht"
   ];
-  sha512.run = "5ed55a074d557cc433780b838fa0a53a3bd8428a192ddc1bfd71c306a110041663ceb0d6931b580e150ebd7f5f07145796ebd12bfd7d1c986e7feb74803dc104";
-  sha512.doc = "964824dc432799c57af3d69dae35b35e1f327dd57d245a6c392d434033bc627d8c93682c1bbbb1b099f71acde25c10f7cca2d3b72cca02e3f9c8d94de0dff807";
+  sha512.run = "b0dd7eee40daae5cd87b39c8d52ee99569992dfb3f9d438cb43f2050f347f33653b5932c6b159b3d24382971aae5f631f9e8ac8e2e3219130ed346d5e466c0d1";
+  sha512.doc = "72d0e9550cdc8cd0f5469e44a9ddcbcd10c8141f68479ebb9b8f8af3e2233695df05acbb875b80de0330fc29d774b7d3f3c9fc1f249c04e60944ae9642326a54";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.3i";
+  version = "0.3j";
 };
 tex4ebook.binfiles = [
   "tex4ebook"
 ];
 tex4ht = {
-  revision = 66531;
-  sha512.run = "44ed16da1e774edb33b68c478ba8fa70eb33b03094c87cfd2c17068786c93bf4c083e85046158aef30353824d1458f0c5646ee71446f22ed991145827fad5f4a";
-  sha512.doc = "7c831eccdb5d303b756799bb28fa962593eec8a12e5ee1c763b7c614bab29d27fc507ebd86637e920581a4dd3a89d9e7acdb0aba2798b24048b9b0bacdcd1dd7";
-  sha512.source = "777422dea0615764a824f70ec7a85d4fbc824c25587935bfdf514420c2e0c61243dee2a84861b2290cec1fb444f64bd9754ce6334fb47c9ab3142d8e083fed75";
+  revision = 69412;
+  sha512.run = "59848f9a4accb16164f2af9c7c26ae4a28af826116ac85f68fd1d9a399b979cff18e0d15ad85cbcdec5a955a01da1f46fc7ea6c817a216cc8aaf0df88c5b9ef6";
+  sha512.doc = "6756a4022af3e42e47e090638e114a2d4c4a50bcfef7473bb8ebac3a9d2adea6153b7596144f65955cf02a697c0df47a631877118cdfe8b25a00ffcd5b1737de";
+  sha512.source = "c1c3746084f4eb88f6aab21c20168e9a520f4757eeec5d6742e905d81aff44d5b2b0265efcad2066fab8669a59186a05d634bbe87f28b44f6e58cf3a0fac52ae";
   hasRunfiles = true;
   scriptExts = [
     "jar"
@@ -40903,7 +41960,6 @@ tex4ht = {
 };
 tex4ht.binfiles = [
   "ht"
-  "htcontext"
   "htlatex"
   "htmex"
   "httex"
@@ -40940,11 +41996,22 @@ texapi = {
   license = [ "lppl13c" ];
   version = "1.04";
 };
+texblend = {
+  revision = 68961;
+  sha512.run = "fc2026a5b2487af785957873f20fb91045262df7df2a2a71777da76727c054cae19b1e005d30b2616469cc009f680973091a7ce6d291d2ff29b3bcc8a47fc12f";
+  sha512.doc = "936b56f3823567252297cc3a659d951b501a5f60b2d43f6d8b19fe803ce651d67363d026bd97d0aded3320148dc230ff81e8961cbfbdb5c9a822da94070bb945";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
+texblend.binfiles = [
+  "texblend"
+];
 texbytopic = {
-  revision = 15878;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "d6d7373a50b85b4dcf30f9d6cd1f3ec3a4cbbe72f53158387b99ab5cae5372d1c7a7954d03a0ee06b9af6df9784cd9a06f73658a6286a737674f5046883a9ab6";
-  sha512.doc = "29b3ea490b6c67a4c1d6dd2b744978536e3b847beda3a901873db7723c7c21ae4063b800d30d2d009e77a0e6fb199a3fb0d16d1f7f8d9a09722cfd7702c73c67";
+  sha512.run = "d2418ef6b672e82c08b2f7b7f0089a9dea1f514db584662351135b511912faab828956fc252cd854fd2bb1243bc0e1af428e294eb92935cb63b38e73078858d9";
+  sha512.doc = "787b12bc92a17a00fd8278138d0e36d94be377fc23401c4bd677c372dc1d19b4b88c12395366b8ba5d766fbd7bc364588986d7528572510a43ba48ee0330b787";
   license = [ "fdl13Only" ];
 };
 texcount = {
@@ -41015,12 +42082,12 @@ texdirflatten.binfiles = [
   "texdirflatten"
 ];
 texdoc = {
-  revision = 66228;
+  revision = 66227;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "3d10ce6a38e3b676bc7495714962b527e2c78d5844b184eade200ad55cf07b44945203019315f1d6e2ef825c8093f0fc60abdf67efd641ce3777c32f0680c10f";
-  sha512.doc = "85e16d57fd1f89364caf38a714756a31c4a89dfdc0313e11641593df2227a7a17df861ef34d109a5737ce463ca1016653635499186d9f99a1e75d9225e2c66d2";
+  sha512.run = "02e7d23e20983f96d05725eb91a4f8bed6bdad0051e9f3c152f945e22255c70e7c0b2d93eeca1fdbbc2ca550a7a15d46540ecbb383575b03a4da9bfcea4e42aa";
+  sha512.doc = "80ddcd5d32e02ac87ebba175b3f2e253ca02daf70e38ec5a6db1a0e595349ad33d6b7cf7e95f8af7de621600a58b952927edde04319adec13fa139fa0b634970";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
@@ -41052,18 +42119,35 @@ texdraw = {
   stripPrefix = 0;
   sha512.run = "f4d160e494b1579743a83b2a0926df9e8dd69fdaa79d3f4f97e0ed5f4ece31ab380ff6994a1c9015e0af9b842bdfb9b066442ca4b3018df6659922af9f746b0b";
   sha512.doc = "e177209a937fa1d9d683eb805e9e8929612b4b1ff750955d38ca681b657662712a59609990f77021063a223ce61a92fdd567eee91376ef4b67fd3a322db09463";
+  hasInfo = true;
   hasRunfiles = true;
   license = [ "cc-by-40" ];
   version = "v2r3";
 };
+texfindpkg = {
+  revision = 67027;
+  sha512.run = "a6fee1faade94bc462dd4fd0e567b7716d0dd057e0c973b9a498949e701bd054fa4fce1cb8717f1d052ab03ef9b894e2f222e2e9a70957215f7266bcbef15f57";
+  sha512.doc = "452df8270ee53864594cef99a7ce0fbb6b325547de0ebcecbecb4463646706fa9e726fd433f31c4f6c44d2bb915431aecd7150921043e50f6b3a2ac5e51eeb70";
+  hasManpages = true;
+  sha512.source = "d784abf4241ccd65c8c910c16171b30d686a53933043d8f6ecf787866e5508d4e89866c90fe2627ae4b536ed7647006f6ce257c8b47676adb77221d08b6ef690";
+  hasRunfiles = true;
+  scriptExts = [
+    "lua"
+  ];
+  license = [ "gpl3" ];
+  version = "2023E";
+};
+texfindpkg.binfiles = [
+  "texfindpkg"
+];
 texfot = {
-  revision = 65545;
-  sha512.run = "e7553ab1e2368f1ee54cebe94ef1cc6675a6dd6f76f1bb94b1d79a742ddbbfb30215c97b7aa08165ec0e94b4468491d6cbbe6e1d8d77c24e37f3ec46104cc12f";
-  sha512.doc = "07cbd86a5f4731257804a8a62fab247a5a091fbdb51b5f618b42200c06ac8293e809ba19fc98f844dbfe6321e733aae5671b5a8318892608687a454cac15bd10";
+  revision = 68110;
+  sha512.run = "0886ab706ce0f18b0eab304afa1d570fd55b57bc02c8b3b1aacde77c73ee260f688bd395b2e362cb998cc1aa9a2d1e228b118f5234eb9c40ce867a97d86f4ac9";
+  sha512.doc = "d652523552ad401598c68227b3e0e11c84261a3a243afc731f54892fc971c8f22e74bb58b6eb45ac15f70c8789e5a4a9c4dfca81a3dc304762ab97c8bc74e3c4";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "1.48";
+  version = "1.50";
 };
 texfot.binfiles = [
   "texfot"
@@ -41085,18 +42169,18 @@ texilikecover = {
   version = "0.1";
 };
 texinfo = {
-  revision = 66356;
+  revision = 68342;
   stripPrefix = 0;
-  sha512.run = "1cc62bafc6e086aa722d74e0b92496568fbd68216fe57eec98d0f2c2d6cf32b6b05f26e2ea59aa345f4df2c0a7477d19719e2d7772d2fbb773428eadaac1a55b";
+  sha512.run = "5f79869d29a21aa2d5acd22c2c3abbf12b00afba2564dc9ea779c8f4caf5f44999ce27635d6ea01b9d7e441388e63f1f31238e47a3a68a436bbfe39254920722";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
   version = "6.8";
 };
 texlive-common = {
-  revision = 63925;
+  revision = 68510;
   stripPrefix = 0;
-  sha512.run = "a59058e22c04f2500af75ed28fd2772a323b50960e5624a5018e81f0b7950ae1fd0200aa499aee58c582bf8f6ddfaefeac0bb3edffa62e034e8e1984a7aaf267";
-  sha512.doc = "963c02e99f683c1f59133eec0f450b1854b885d64c0ae5c9b8c05b697ea72634fa3ae5512abfe852723df404201852c00980d77fdf0a9df1806cd8da3a73d086";
+  sha512.run = "1d56101ace5038cd3b8d36c90e026a1c26363535fffbe1ffab64dfbd01408e7cdfb66045e11b13e22491f238e2d3a7015fdeb9bf75fa56f581d2ca5da8f1a01a";
+  sha512.doc = "c9832e8249440656334db12b6ee54b467fdebe1194b6adbb8d28ee375250bc6458e8c1b48b5684eab0ff2f0b55db4f4ab6e77679df447a01070a15c1243e5d83";
 };
 texlive-cz = {
   revision = 62854;
@@ -41105,28 +42189,29 @@ texlive-cz = {
   sha512.doc = "ff1124b30be77782b5c5a1b80ae69c852a5a9e81446c0574007bc28910ea6202662514a34a85858c577bb528f9fbcc11f798614d11914876151d5aeadb3fcd7d";
 };
 texlive-de = {
-  revision = 62234;
+  revision = 67108;
   stripPrefix = 0;
-  sha512.run = "fdf5524ad57cf898b8ee574dd21d982fe9fb6d0c2d9324f78cb38e9c654bb66e322f0bb79d026c3b7e63b404e203d2ce6cf74d848a38ab80ff37707079375996";
-  sha512.doc = "050d284c195d95d53e0070499be687ffe7497082a894676a6221111959fd50a008c6286b58e020043475f262510d5323ec327e4b20808c9adfd9116ea98497bb";
+  sha512.run = "521ce2f9dce3fb329de464ee847c077d449885869e964648e8f89d920231a68bf0d3562e5b54b3cf36716dc3d85b4f0d0591e06843796f216670f963c7191324";
+  sha512.doc = "30eeabe60126b3cc7fb8bd400613a9a5cd0484ea73a8fd0e4c3ec7edee5e985c64c8073cf2b121446b9ea1b60ee54609687c168a75198408a30cb221d4a0ffc1";
 };
 texlive-en = {
-  revision = 65770;
+  revision = 67184;
   stripPrefix = 0;
-  sha512.run = "f790f2a94e67573635afb5b4c2d375bede61eb3afe271169078fe905d326119234363ee896ecc93a9892d26e0a394fc350edbda810e218b0b06cc30681fd9cf0";
-  sha512.doc = "48ffb3b9053250f4425992c57869c6153601e9dfaa4931ac4ff3c12df44b148dce08496acbae495fd5f9fe37e11044a3fc0669c713515d2cc99506fd6be59859";
+  sha512.run = "d77184250d7014dc65e74baec435fe42e784f80349df81782e8e1f7681cd14e3cc99313d61d72c010e5ffb33a0de06890c359e7b582e94662f253f8ed29cb7eb";
+  sha512.doc = "9da87903b5ebfb7ae0ea257ecb77654fe53d93b86fa73d8089b5b2adf46183862e6c67d3b93d6e112f750cbb4af6d6b034f35a1628adac413b61857a91dd962d";
+  hasInfo = true;
 };
 texlive-es = {
-  revision = 65640;
+  revision = 66059;
   stripPrefix = 0;
-  sha512.run = "53d96d2f8b0d831f125add3101790b3af28e475244800fc7df204e3710d31910ab497400a67561aa424ebc51aafc3f75ac9b15d651ecd4bda56a5d24710909e1";
-  sha512.doc = "afb6460747b08f6da09efbf2fa368e5fa0bc58c7f759a7c776fdea8ce66fb6821649ae222c1af9ac5ce5cdadd5d13e7d34f1b572d2efd160fa19dc2aec7b1e95";
+  sha512.run = "d055fbb5a4cee9d207f60ee27033534917a0e91dd2e37791290737bd2727b47ccbb3199c0e18f4a564f15e5dbed3599203a7b3611558a26f784713714262311c";
+  sha512.doc = "f124848f80289190abadca35a259d60781b5ae75771687ee44e863ddaace61227217a7c1ba888a85afd28583f1eadd4c91b03e224f5cb1b4516772243ac0fe63";
 };
 texlive-fr = {
-  revision = 63071;
+  revision = 66571;
   stripPrefix = 0;
-  sha512.run = "511ab7cc07e7a05e503da17d9cc69db1e7f16a8fd5f1f353001b585cdf26bc89f6e6d29b0ae66679125c947f1b6885456cd38cb869a8fcf8e3328ff99b79e4fc";
-  sha512.doc = "c2d32206505a7db1f6b59a7efdb55421e87510ee74e378d00281e0aa25cb7fd68a82b3e589d2a3890c0c1dbeda1442fc7ae8af8d6b3ab90236d3c1d316c048c0";
+  sha512.run = "2b5f6f94f9e9b3af2a18de94b85615bd09cab31d9e3f01b9ac78df5d22fae6ff84d300cc39aa92d1dac02d858c69e86d9d3dbda422574a4c3ce4652b08990090";
+  sha512.doc = "5463c1ecd592e7d304325276f950964cb52cedeab20084137deb0f4b7de1b17b536e4b030cd0e961191d61912f9c4db27f16e6e196104c84ad16ff7b545a7e9b";
 };
 texlive-it = {
   revision = 58653;
@@ -41135,21 +42220,21 @@ texlive-it = {
   sha512.doc = "0c0d3585bb2c12476751bc5dafb5ea5e10dcaf5149b98e823e607d7a99e5bd9dfd698d73950ecb1efe353435ba2f88be2c45e18c6cde2245df90cebfdbad4417";
 };
 texlive-ja = {
-  revision = 62817;
+  revision = 66482;
   stripPrefix = 0;
-  sha512.run = "8c397b5959ea9d2e1d525cfc83305e6da434ab81ede0e7669d6aa4c648dda5233d4081b891f388c303be46edbf88c01d6eafb506f32333786188f1c2af8dce88";
-  sha512.doc = "e355ea9074d4b96a352867ccd51e4d83a9e67a8917621c66f88acf32d295a30125824007d5c07efe0352d489ef8a12265337ff7448f179f36640add38c2616fa";
+  sha512.run = "92f3767daa4e88bcbcff86aee215bac0ea945645a626e9612e033ad12513e41d15ce8074c22cd39b0fbff9d951608bee799dbefa431c31ca9e8f4681f15242fd";
+  sha512.doc = "464442dd7f1e77598e7bdbb6884453f5a4a2f57d5d8b028d0126e5bed50b3c19f9fefe13b602ad1aff3334e45e8082f2a1328f884ade2ea92ba4b054a41c4b5a";
 };
 texlive-msg-translations = {
-  revision = 65889;
-  sha512.run = "03c0445d0cb0bb3722a691fd94b93c7fe9d046dbf5945ecadcce17a2333878ffc542f0b7f263ae09bd0537a68c1a59d6c04b873ce8cdc6c8b57f7ded5b6681f9";
+  revision = 69346;
+  sha512.run = "b7d8293947eafc561873918f658e372feafadc7de9ff8b2b5c65bade32b40bf99c1172fbb9737cd8e5d2c057dde88e392561db36c093518f49249198646f7148";
   hasTlpkg = true;
 };
 texlive-pl = {
-  revision = 62841;
+  revision = 66576;
   stripPrefix = 0;
-  sha512.run = "d658992603b9d43b92cea9f625393be33e286144ee994dcf5f000bd079e0ac41252ff2f89af6dc3a3fc78103df3e2cd65763888fa935411970f61d0c3a54837c";
-  sha512.doc = "cfbc35a8124967e66966c757b119a73171055ccb7040536dc15bfe109ea275345a5d6c95a2d667bd64f5c997537b28bc5524d9f94c3a642d96f1be23caaf30c2";
+  sha512.run = "b43de2e6d5fe66c53370a4c43ab1a66cb08f353944f58756debc40d6651cb5df11824d1eb4ec79890b449ed611b8674c0773a4e477ad4abf30f162906c1f75ec";
+  sha512.doc = "09319f848fe28ca344367f70c826380b3927aa26df7eeb195f6eb176d4951ded181cc47c772f401e1e7936de5fb3a9be3339c69f5bb4e8a5f9785f7313e6baa8";
 };
 texlive-ru = {
   revision = 58426;
@@ -41158,12 +42243,12 @@ texlive-ru = {
   sha512.doc = "40e8b29f29ed61addc2b9e7ce4b73d12bf2e59f1c50c65e59e9c8cac5e6c3ef264ce2071b0d54e15f5029c101a51d0efcda0144e113aaedc714eb1300aa9635d";
 };
 texlive-scripts = {
-  revision = 66570;
+  revision = 69407;
   deps = [
     "texlive.infra"
   ];
-  sha512.run = "3dbb2007ae7b80862265d6196f77a9d796f02f6914871f4dad094f8419040fe7064daf6ecf5dd611b5764dd4148d034a97d82aa22671199e8a3dc79373859c67";
-  sha512.doc = "6976ba00c8ee50664aaa1f762231f297f01548a94d6a632b386845e7fa43b20b63342d58874e87869a73a9c23bba358f762f5cc3814690f870c6216679471a89";
+  sha512.run = "e3a8fe45541ba71128fc9e269ff7f0a3d45b2789df2d689e741fc87eab51b2c8021ac7e0899fead8d1bc043538d16589663932c32507b704fddb095c028cdb18";
+  sha512.doc = "c0d2c8280df1f6ff0f6f6d850c95a82aa7284d5e637cdb69518e419fbad3404cdae38ec58a8e7b452d0be48ee107b05e9b5ba84cfaa5fc81774d132c3b184083";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -41227,9 +42312,9 @@ texlive-zh-cn = {
   sha512.doc = "534c505455c5f9c73803c140a340df2882a97516e15f52c5b65695b7c626404336a0e4f6190155b5bda1b9a86d7f4d44ac294bccec791ec6701e56d13c00d71d";
 };
 "texlive.infra" = {
-  revision = 63645;
-  sha512.run = "cbc7e70f3b4d451a51f06ed640b37ce28b8ea32f0dad75b32e54856e1051934d32125f2428b074a69503fb24c943c5eded58d77168d606891ea8209bbf852c65";
-  sha512.doc = "37f37bfd17988a8897312581efcf05aff76af6fd2c30867c65e0a4445ddc1f7fb90bb86984999d5fc942159bccf5c2a188e5b552702405405c902c97ae4828ff";
+  revision = 68903;
+  sha512.run = "077dd2060eb3a1132bb392615a36684b42108781e25610bfce2c9d22d743f8abf01f8c79c2b09a8d2a2c1edbbc0a33eec51ab1b0ff07480c0d4ee510e8680966";
+  sha512.doc = "2674fca1b6f494d21ea2e7993e4da75b821ca9c2b02eca47d3eb0d4512a985e2cd7900d6bc19c1af93ba59857cfa82bd3ee61200794522ec755348c067817e74";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -41283,13 +42368,13 @@ texlogos = {
   version = "1.3.1";
 };
 texlogsieve = {
-  revision = 64301;
-  sha512.run = "8017144da38d3e7b011b1620b4165e62159cb2975a418b350bf8a5d87e8d519166fb87b916a96ef6ec203df12834e72a31e21c41a84e113e8ebe620bd5eb8860";
-  sha512.doc = "7a744ba4bdbcda04c1adf53c07acb5d20799268f31aebf2234203251ac56a96ad6cd0574d1c25c983eec0d7191dcb49bc9f11dbb2aa6aedccf31c7499400fd9f";
+  revision = 69072;
+  sha512.run = "22822a9ea14652674238224914fd84d9ea09ba1a19fd8eca288fad52c35b0c7e0a0003730b1214e9f358d068eeda191a92dbb2cf2e14bf29297b61177af1a1b4";
+  sha512.doc = "507ed977b9c272c789fabe42b48b60722c09f0548c4f857d9f3207651b05ac593a6e2b94a53f66527591cc3bc15b61a3849a540db3923d196f135dd7cce11836";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "1.3.1";
+  version = "1.4.0";
 };
 texlogsieve.binfiles = [
   "texlogsieve"
@@ -41350,10 +42435,10 @@ texosquery.binfiles = [
   "texosquery-jre8"
 ];
 texplate = {
-  revision = 61719;
-  sha512.run = "5b19c1f2d5bdaacb1c842e78b1980ecb3f4fc548873e6a36fc9c5a70c3e3649b812819cc0d3bf68622acf31ac6c687cc4ba657ce2a4682bd13faba4070b0a1d7";
-  sha512.doc = "e28f0f3476e710fcec772206138a2f423ea6f9df903bfd4c4a278453f217752b7f4ffd7e68f10821ee36a9251a14e6226887ed5aa7a5fb53e5deb7a1685a04e8";
-  sha512.source = "658467f513fc37799df279d636f5927477c51cf0adfbff2ea1597bc8bbd4d9edc3f5f22e2f09d9049a6015a6825bde043ae10e8b55ef78ba8dbbfb04604de0b5";
+  revision = 67201;
+  sha512.run = "44f2e0008d1b8629bfd15267e3add7490c9a21e28d7b29edc5e37ca51e60bfbc8b25035cbacb57bea5df762ff9783ccfdfe6d9244bced55961509c7ad97046ec";
+  sha512.doc = "bfcbb319719b9f8d4473c50afcd435eaa1cfb906f6107dd7e859bf40a30b452dc135ea1ce0a733c297112647fbc76d6bef16b9474a65d85e6d93e5df96acc549";
+  sha512.source = "e11a6716016b40525f3ecb4906dc1b54650177f28e7759499928ce78af410ea9a159fa3703cf2098aae227b6bc126cb4be35f8637ef6e15c7df94fb8ce4145bd";
   hasRunfiles = true;
   scriptExts = [
     "jar"
@@ -41386,21 +42471,22 @@ texproposal = {
   version = "1.4";
 };
 texshade = {
-  revision = 64242;
+  revision = 69371;
   stripPrefix = 0;
-  sha512.run = "47ee4ea722ac6063c6927f0b896bd17e25df1aa75d6eabc2877ad628ec224bd9d2c8af1e6964b763d13dfea99ea3bd08007b1a9d9f43ef19da5c53e34e4b7a6e";
-  sha512.doc = "a9e2130ae217816a4b8d653c32ae14beaab0ed35fac5e1a43c10d6453b2774a3449008b118f1f97d8c88d48c3708c5d96edfd5698e9a09046311919191fc240f";
-  sha512.source = "2559fac03618b74230b00b4d2229199e6bc92256547024884cb6aa4fa2ddd8f361281b372c1054e10375c82960d0d53742ab333348e63ef3f92008031e907246";
+  sha512.run = "28ec64b312161f1157511d4a4dcccb3378bd054ed6abe75830b2eb98b30c5afb2ccd1bc88b0ee0fb049a3610e97b4408b8e66675094a74abe1bde8abe5d1a1e4";
+  sha512.doc = "e06fcb1e6d743561ecc1b6a1a14e252fa5a7eceb2bb0ceb27409dd52c62ec5a1397cdbde7bf61e62b143af2fe6787a49ad3b6b9117f8418e409e54b26deb2a25";
+  sha512.source = "23bc248ea1ee572c6ac13fcf9697810ad6881530a44adf9a16927801b0a951c3fe012295ac2816c85f203fcadfb35f04460510ea7fbe2fd758b05098a4f06dee";
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "1.26a";
+  version = "1.28";
 };
 texsis = {
-  revision = 45678;
+  revision = 67930;
   deps = [
     "cm"
     "hyphen-base"
     "knuth-lib"
+    "pdftex"
     "plain"
     "tex"
   ];
@@ -41412,8 +42498,8 @@ texsis = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "7309726b33eadf8290e596aab50bb1af95600a067338b352c1ac092643a8c6d4142180d0146abbbb828a38fb08fdd9ae03da6572e6c221afcd151a51430a423e";
-  sha512.doc = "2a4979a10514ccd589b331ff34a677a4e22adbeea73d6112c9a14392b3ee75a8cdb292b008b160792b3d00b812834afa7e0211db860c41f1beb69bbc900fdb90";
+  sha512.run = "79a39678c4b458877737b63fdfc820adf192b4a3c68eb02b9727ed42c16c002ad6ac7d12fa6e45a768eb58d394ba3610ccee4d39de8b73350a39b958665ae779";
+  sha512.doc = "30b47b165484654c1956a1862a1207c219bfae9790f3daa1443bf97bc5e5fd5aeee734b3561c433061987077e84a8feff7eb886ae6d914122eb218bfd0fa57a3";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -41432,23 +42518,23 @@ texsurgery = {
   version = "0.6.0";
 };
 textcase = {
-  revision = 63868;
+  revision = 67755;
   stripPrefix = 0;
-  sha512.run = "0086fd3c6601f03d730f195915f1ac9902bb2e8555690395719da58643a6a2f9f5ca28d05f79941d8afccf517564301336e017341da6a9ceb19755db8e17db65";
-  sha512.doc = "e2a9c7cb58109336c889ee7f87a3926cc885453c0c0472f70ca5a303cb203dc46f5c1330fe90282b0f9f790b02ca139931a944cfd9016c65aa8c8075460b4a1b";
-  sha512.source = "e2f98025e4dab32916318403ff3e31f308bd2e867b94c011a70bbbb09d5728047018cfc146722c6b837949e3e878136f8d39d89fc515b692ab6560388540ea32";
+  sha512.run = "1a4a29b33270f5100109f42f4caf529d3203a6bd1a934a06fba6ed3ed082f0bbdeecfeb7ff158182c88ca7d724422c83be2d170bba78738cb7417fecb13f65da";
+  sha512.doc = "c8b42e576dc6458441703344724bb1ee8f441e79da8d59b1ccb0b6280de878ae65ac48e628f3230ee2094ee285a58636a6e37c29e4458d5f164c36cf4ec93d6c";
+  sha512.source = "1e7e5e16c982ae65aab5cdb4c83e770336dc38833f6027de701114da45c0b45a1ef21dd3096de3933401a13222438a533397661d5654acb991c0ef5d6a8c29ee";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.03";
+  version = "1.04";
 };
 textcsc = {
-  revision = 64935;
+  revision = 67193;
   stripPrefix = 0;
-  sha512.run = "461d0e22efb4a80e1e76b6d209cb0247724d9cf9471875f612d4a664875a2055da58151ab6a0a763b7d73dbdf47c63bcb9f7c3e648e1bf074dc4758a7b01b071";
-  sha512.doc = "d10191e310550a7d4f83bbbaa9413be0448d38349839b8cff46f4fc3cd1c76c0b20ef002d01a5e78919fc019f33a8069fb6fd1c53ef32c81d12d65806c55439f";
+  sha512.run = "99429871433a809febd561793ae53253812792f7ff20f154cd9c01ae3df95c19b1927e677b686b7ef19c6e66cebe2047136810ad287a67ad524d905c6ccb20a0";
+  sha512.doc = "a8b38f3c369c5603d1a696672fd8a2c7a49e1d60c011fd5d2158cb9daf37fb4ecd691d859376c55086f894a9a2769a1b8a78d6b63ea4243a27b02bb2247bfdd0";
   hasRunfiles = true;
   license = [ "lppl13c" "cc-by-sa-30" ];
-  version = "1.0.1";
+  version = "1.2.0";
 };
 textfit = {
   revision = 20591;
@@ -41523,11 +42609,11 @@ textpos = {
   version = "1.10.1";
 };
 textualicomma = {
-  revision = 48474;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "044ef3451267bcb74d3e4162d19915b1b7f2fac337af6faae7d3dcd630bc9be8484fa155a3579ad5245ce1f07578d8faada2e6a67830edb09b332714a95f2e9e";
-  sha512.doc = "6e6c380eb0169878a34d3d40fea47bc57885c7ea378ffd2d2a7e9bf26826dd922f67a02e74d6c78801cecb87b18de3ab52b7600623de39c53954ed568c57eadf";
-  sha512.source = "69f6594a039c9b367e48430927298768f816ba31a7bcc41036111963c5e9059dfbde6b771ab7dcbfddb6e40dc49b2daa1d1ae04625a31ae44b8ba340c42d3f58";
+  sha512.run = "9437756da9639dc29fad64ea7bec0b2fd4ce783065ca00fb522ece24c33b99fb2f51f82564cb382f5f39ada825353f007d14a36ce5d9d5b1cc4015b71b8cd314";
+  sha512.doc = "a1382aa53f3df15c57e391420e7f4164a3fcbc8e765cb53a87814a4fbff7e354268f8ff7e6bfb1113f269fa426aac480fb22c330f234d58492fc4f8960fa2960";
+  sha512.source = "1a42e7e80fa555dbc81c7f133c6be0ed265756f826d701c3bee5dfb7b1e2a8c94c2bcafe6421d89ae82aed2c5e1a367d6d06df7d12941325c0d0148372a9091e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1";
@@ -41543,9 +42629,9 @@ texvc = {
   version = "1.1";
 };
 texware = {
-  revision = 62387;
-  sha512.run = "fd6b433f0774441ad8cda525f45a7ec18076b69f9c666c6b4ab13190f9140b288a2d4b838dbb8065e260d77fd2220f10b37f349805ad266a4b6b5c3041f5f5b7";
-  sha512.doc = "1699ff3feb1b0023938ccbe77856311efc40ab90d7288fe611a040e76c04f5ac38ba4cf75ca9e0d3638a017287e6abe4971a1ec450f6b74d90aea0b59909c4a8";
+  revision = 66186;
+  sha512.run = "532cf8cfb19ea5c8ed0fe6939fba0ddfaed58989a588acef18ef38c587d8485295e9d438487fd2225a0f68c12d0dd8c6263d597c2e94cbdc96ed074ddd296729";
+  sha512.doc = "c4be0bdc3490a0bee08d6a99907f7abe1145ae8f8f89dd8665cf6a8738d07c7a537c0d7e767b56a6eed3a00ea169729b4d78208aab2aa883c9fb422e4dde3383";
   hasManpages = true;
   license = [ "publicDomain" ];
 };
@@ -41554,9 +42640,9 @@ texware.binfiles = [
   "pooltype"
 ];
 texworks = {
-  revision = 54074;
-  sha512.run = "4867a2f6ca333fc42d774154179f438970d392857b0f631f58211b7174c4b56c7fe9c43cac534cac1828d3edf18069fa781d4760ca472a99b5abfe4c7a6f72c9";
-  sha512.doc = "554afc96a17b407e415d85138e4074b6f1f82ab8e918db6e4d2e2dfa44e67b0d10ac1b548ceffeadc245de28b564cc4c4c431ec9d9c92241d1f500477fc72a64";
+  revision = 65952;
+  sha512.run = "2d0f90699f7ee4fa6dfa9eca4a62c8deadd9ee8303e17603bd32d0b2cd41875e76d1cb28879139dd62e534575f1dc8e71d6ec401a65ecc333f5b4bb636ea5a67";
+  sha512.doc = "767bca3619a0f645f23b029e1d8b84fd7333bfff5df073026423e83681abb2c3e60a50f843aeecf95aaa54b29018f145a7b655e2dccae0465626e84ca00d1b99";
 };
 tfrupee = {
   revision = 20770;
@@ -41628,6 +42714,15 @@ theatre = {
   license = [ "lppl12" ];
   version = "0.1";
 };
+thematicpuzzle = {
+  revision = 69356;
+  stripPrefix = 0;
+  sha512.run = "3dc42fb8b0d1b5aa3f68af6efa29a683e4a2d7b14f9e8b79aa56cecb15356cd8a9ad6487267b2ca978363ed7e8b5988f3efbfb2136774e8c5d9be25ef65f0bd9";
+  sha512.doc = "cc3aad57de0a8f2ed5bcd46d391820a2d8d316d7fd75d5d4abb8a6532fcf05d6643aad83570413dae441d14956747265e7137b05fe5512423d8fb3c1fdff5f89";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 theoremref = {
   revision = 54512;
   stripPrefix = 0;
@@ -41637,14 +42732,14 @@ theoremref = {
   license = [ "lppl13c" "gpl2" ];
 };
 thermodynamics = {
-  revision = 63188;
+  revision = 69086;
   stripPrefix = 0;
-  sha512.run = "eaff530ff327020bc067435669a84f0614fc09a9a7027451b5407a80466c488105ffa4eaf40caf8e0ff7d6beb715ee1064190e371479e319a5da6f827e21713c";
-  sha512.doc = "48100b4af357710e037426983f3ee7c7961980d284cf53fc50194de7d7e81d6ab9d2ceedd47b2521571fa1ef63c263fd828a6229246116c54f8955967641c360";
-  sha512.source = "c940d93724b127128f1824047daf5b22f17e0316f1ee0f1e0e73ffd79796cdd3588a52eb8a470fcaa8611015e7728d5da37862e888cb58904eedcc7700d8e1a1";
+  sha512.run = "0bae277827251a42a366ce85aee49d762e08025b96472f8102a54b7a9f1e74622bfa0064aeaa6dfee5248ef84977fd47389fc91049c057caf75c33930ade37ba";
+  sha512.doc = "3e2ae382e61ec8734e6cffe6c4d5efbe853a3c6748e1d8e75c2e4fa0ed6e7ada7f8a79424f49c43a753bcf6ce867b84ee353c553ba412c0386d58d2d4f5f437f";
+  sha512.source = "0ddadff5d744ca8f45bab8f471685e9afdcb494e60aa6ba0c32c8a75bce536adc6544c097e95da02457059b5bb96ed37508217577caf16c963af6e07651ae721";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.00";
+  version = "2.01";
 };
 thesis-ekf = {
   revision = 60228;
@@ -41703,14 +42798,14 @@ thmbox = {
   license = [ "lppl13c" ];
 };
 thmtools = {
-  revision = 65863;
+  revision = 67018;
   stripPrefix = 0;
-  sha512.run = "371801b9ab63eb0ce401bbb56e9b2b52cebf927e7d433d10e94c60c3649187b88957cbe05f2c9995d9bf687a6e6708f8a26f02596dbdd2759107ca61171bcd6b";
-  sha512.doc = "753143eda92a887d6217f2dd3b727e78ff7441b109e8fc99eb0a672674a4ce0e3d7a1efd10f3252c2a14ebc87a37687511589e0f91cd4bd79a8298edfc7ad299";
-  sha512.source = "1114b1aee91c98ec2fa19858cc108ec264e717b525cc86a19e985abf74eb29123c0f7d3f9a0e5bbee9984c062adeb1de95344c579e3675d6181d125b7db69bf7";
+  sha512.run = "7d150df3f868339c6bcccb2e881105d9eba11bab8cbbbf42d5a696a7496cfbb87f0ca848e5cf7a63239e563a75515b15d4acc4a72046ca9539c4597e077333be";
+  sha512.doc = "939567cab1c401d0946de706105d23add703e991bf36dc58f4e1d40fa35b5b30b37a9e32bc2d252f247da1f1db654bf3aad460dd1882389c00a8e11106270840";
+  sha512.source = "a086c028394cff2fcb5c011d2a69627ce2f9651694b8e1596ece652111e88d43c1f1e358ae4c1201ddb0166180d6dec9eb14ebec8a05469636061c224c6f39e9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "75";
+  version = "76";
 };
 threadcol = {
   revision = 28754;
@@ -41819,14 +42914,14 @@ thumby = {
   version = "0.1";
 };
 thuthesis = {
-  revision = 64628;
+  revision = 67127;
   stripPrefix = 0;
-  sha512.run = "1e3874a1b6e2e7f465244d1a7249b233ecb2d85f72a52719c6986a9a7a744563094c552718483f1508bd6cd67ca602b821f0e071427db790b43af92e6d369efe";
-  sha512.doc = "20936d1dc56b506b66f3ec35d91654637a9468a777c9830afaae97e07cd98e7df16f83ea806f2651cd374939e9cd8af57d96e0c1b5d92700d8d034be26f6ab24";
-  sha512.source = "0b6939673f935662e9337cd43349eeb575c50003b104569d119bccb58c242e6e7c134e8b6ac5b4cc08508cf948ee6001af9b675ec633a6df085acc19eab26222";
+  sha512.run = "8a70b2f51275494437fde3ef83e0f0d901b7164cf9e330d19e00ebe79bb9b4215a6cb3e7137970eb528904e35ba7bee3329f32b9fee64181f57dd09883582207";
+  sha512.doc = "fabb0e47004a0fd21f06f442d0b7eb5384242e879af7b7303a7c354d7226213df082d3c38ce24cc571d667fa2b4d978741fda5518871d727ed491a60f1f1637a";
+  sha512.source = "3f78020ca5563319ed78c851f781e1a40f16dd234207bdb2e6ddc38cff5f622ab7891c37bf7a187d927e81d9bed96686547d081156700654c23e410964894ab9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "7.3.1";
+  version = "7.4.0";
 };
 ticket = {
   revision = 42280;
@@ -41847,21 +42942,21 @@ ticollege = {
   version = "1.0";
 };
 tidyres = {
-  revision = 65789;
+  revision = 67738;
   stripPrefix = 0;
-  sha512.run = "092cc495292263e9e87eb3253d918466ab80b1d9187361a73c01bae0131848488876145747753dbf6129db129bda881968200102e16fcae5456d48f3524ccbda";
-  sha512.doc = "94a5c27d8ef9abac35f97f230964e305b24ac50ea5f30491db828f5675ad3128a8b75b423573f6c9f6d273f14b2d244b364997c5d75cf6e19772b0c995af22ed";
+  sha512.run = "6ae766645bb046c18c0ecaab4d567ed3b66800696a37e28cbc0100dd50db7d89e03b5f2bfb8073a1d819f552f81ff8ecb692889ab7e2cf28210474663d4943e4";
+  sha512.doc = "53b927e92aae7d598eef4de6035b8165665a7ed06f37a9457ff16b92eca2c075045f528c62b179923f03d790f163741f5a900b505a50baa8b299d6fb2513bd68";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "1.0.0";
+  version = "2.0.0";
 };
 tie = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "96cab708d9faec3f451302c6141655b79524d3497d9bded141235a2fcfbb27bb2d65fd096e559cc01b01f4ab28b97f5851ba9e202c313240ef1af07c4676085f";
-  sha512.doc = "519a15cde0a8b52250bdf61926ce44ea9267ff9f75f57f3ee9b390ce1aa6f7bc2a6bc2f30222d41a7606721ed28cbbd44348cb44229fba1c7126196291667917";
+  sha512.run = "ca58ca773fd1e4e786f12e1acf9b0e39afe1709c73cc7a0da4331576933c1a4aafd9eed3a0181bcb20b6087d409c73f78fc2a77d96bb75d183996593b8aadadc";
+  sha512.doc = "66e92b91bcf9b6c44d8d2af141d4980a2b0e0ee3a9dcab778eae118debe4ce4459c933cde6a5cb8cf07af8b5d5d001bc1bcafa2776ae64121ba6308a7b19b3cf";
   hasManpages = true;
   license = [ "free" ];
   version = "2.4";
@@ -41941,13 +43036,13 @@ tikz-dimline = {
   version = "1.0";
 };
 tikz-ext = {
-  revision = 64920;
+  revision = 66737;
   stripPrefix = 0;
-  sha512.run = "bdbb8a58a00c7d72abb5e469b578e8ba982e5b04e9e63881bb7e6b17e631874646c123444619e24e1c1ec713bd0ad996bc11a4940e47ae2b159092441b072389";
-  sha512.doc = "faffce06a891b5c8ce09168dbd7c9502ef76c37f2006072e5f7e488c5221c38d80f482a85e7c03f476810840118b86d25c32f8f29a2dfc530e7dfd8126f6814f";
+  sha512.run = "83094598e986b8225ba72ca5a151b8d7b475b3fe41199209e816ef9e7d7b3609e693a321a219968d38d78aafb5fe1ac6058e6860379687077abe4921497d7cb5";
+  sha512.doc = "ca2e8a322e3f3a63084d2c0b79d3491fdbdd1b6b363e66d721e691ebb73241e96ac7f4ec352588f46a49ee1b16b4ea214d145692f194f67b5ce23d12701e1eb0";
   hasRunfiles = true;
   license = [ "fdl13Only" "lppl13c" ];
-  version = "0.4.2";
+  version = "0.5.1";
 };
 tikz-feynhand = {
   revision = 51915;
@@ -42062,6 +43157,15 @@ tikz-network = {
   license = [ "gpl3Plus" ];
   version = "1.1";
 };
+tikz-nfold = {
+  revision = 67718;
+  stripPrefix = 0;
+  sha512.run = "d227be41f651a45240b3cb79f1aebea5015a06eb75c0a5aa69823731c69cad02c2f8b621de3d10d3b2a334781693f39c47f1b5b560c58ee9c5e7278258bebe5c";
+  sha512.doc = "a6684f61e230a4de3cd1e4b0da5ce17aff301cd80c434b7c9375d1e4abf3d3b6f3295979153f957b1499894e59d1fbca23e639ee76db6ff6d719df425d1da56b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 tikz-opm = {
   revision = 32769;
   stripPrefix = 0;
@@ -42080,6 +43184,15 @@ tikz-optics = {
   license = [ "lppl13c" ];
   version = "0.2.3";
 };
+tikz-osci = {
+  revision = 68636;
+  stripPrefix = 0;
+  sha512.run = "93711a01365e992d47306bd379ebc8f72296554288c855dc1f678232e5030894a9241d195cf949133da45ac8df2de1b55244629999f0c311b55d51a2083c4693";
+  sha512.doc = "356d60c65bde0d61207df028447409827888a420300a4b27867561494917e4a45db8e6a6dbe291fd19797d64d912089bacda9fd18ff405a28ff2d6512b3b43db";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.4.0";
+};
 tikz-page = {
   revision = 42039;
   stripPrefix = 0;
@@ -42174,6 +43287,24 @@ tikz-truchet = {
   hasRunfiles = true;
   license = [ "mit" ];
 };
+tikz2d-fr = {
+  revision = 67239;
+  stripPrefix = 0;
+  sha512.run = "87cf1fd8343df4c6960e4bc004da9154f98146b57a723022e5a81db506805ebdd60db1edafc03d9d787f151cb333c1d141c5407023493bba316b8b41bc245537";
+  sha512.doc = "4951babe22ffa5985e3533970b88a8a92f626e18b34e8f7f11051db21accd2977a926fd7e668ecd018324fa62c8b539fe52c279f8ceddd5a037b76dcf03f399c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
+tikz3d-fr = {
+  revision = 67774;
+  stripPrefix = 0;
+  sha512.run = "6b60280f60ee690ade367eaa10a033cb9bb8452c5b5f6413b7ca4918d521638be357e6af6f760844046c15d1171f55b71f5210946ff4a6c6453a7fc332288b85";
+  sha512.doc = "599bcf41c7de51c44c943d984bae860748324faf7981f754b44bf8125499822df505cebe2670229fd7429d5b6b0809f7c88649ad8996f8d2cac604b58c9e9522";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.2";
+};
 tikzbricks = {
   revision = 63952;
   stripPrefix = 0;
@@ -42192,23 +43323,32 @@ tikzcodeblocks = {
   license = [ "lppl13c" ];
   version = "0.13";
 };
+tikzdotncross = {
+  revision = 69382;
+  stripPrefix = 0;
+  sha512.run = "d99ba25a95558629b611e7ae2e845c9b87cc8766f468be6160115a8b26cc648e83351cf233f946f47889773907023c061faae7744e140129930db481b460889d";
+  sha512.doc = "c481b80b675bb9cef760157b7b9ea7c790dc42c75624687231b603b39f3bb9835f642e50cabf4a046df67e3698032b644cdd1495d6a9932acfa3532a66b3b031";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl3Plus" ];
+  version = "1.1";
+};
 tikzducks = {
-  revision = 55713;
+  revision = 66773;
   stripPrefix = 0;
-  sha512.run = "2cbde264e8621c4d7d7caa9da127139ed56d819760ccde59f9b8c098c77746414cfb8119ceaeca3e2da0f361f3fcd0d9dab1898fd240c2a2c15a64021e8b86fd";
-  sha512.doc = "73dcd9d393c852673f43e97da67a1c60330cf4e95b4fadc92a634628150fd228037dc024ed2e939441abf20f8bb761241798ded814fca5b9300b5dbe4a1f1171";
+  sha512.run = "73675b3ee47740e0c54c352a9cf3349b563cd22756a33aa1f56b6282a9cb4b2da3b851705e7574d5591190bf2392f8900a477d8f93b9102d831c01b2a8650dea";
+  sha512.doc = "23fa53a7ee87b26dde5f9832c8b0b23466baaaed4be3ac361659828af6d611ee742b92531ee977fa0341ee5c3058a8ff77cf6ec1a7c3076f6ae4145328320164";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "1.6";
 };
 tikzfill = {
-  revision = 63947;
+  revision = 67847;
   stripPrefix = 0;
-  sha512.run = "f0c83eb9352dc6dd0aaf5e25ce340a5c586dfe600a620a0ff5b976f976361c35a68a71f78f675ce5f9fa61a1bc7a79f16a5813115e6f8b010fe18b0308d77ab1";
-  sha512.doc = "d1877f3e9035c27e750050367badfb4e0127706d0064c30ccf619673bdf403707e9509780a85bc6478a17b08d7bd7c84b302d863860941b85fdfcee7a7262c7c";
+  sha512.run = "4864d0859490cd07e123e1160a35fb7817c3ffcc1f409a8c61285823f655357473e0dc7ab92434b5b552cbfca3e88d9181e57cf944d2422467b466cbdcd743a0";
+  sha512.doc = "f08d351db50d0ac3d6362c223e30b97b9a734a8b19fc426d5592a17692380667172ee6793064b8c2787ee9e1eaa1a38b70a821f53a2e0dc26316ba81f0549aa2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.0";
+  version = "1.0.1";
 };
 tikzinclude = {
   revision = 28715;
@@ -42276,10 +43416,10 @@ tikzpagenodes = {
   version = "1.1";
 };
 tikzpeople = {
-  revision = 43978;
+  revision = 67840;
   stripPrefix = 0;
-  sha512.run = "9a7cdc232e91fc0d6e5fcc67ea8c39dd2a4b482ccb6ccfd82332151117ef5121ef49bebcd2e0266492c88b57c146eaa578d2136a23f8781f3fc5f5d07f527db7";
-  sha512.doc = "f561978adbe443659ec0890a8a38e9c9506f311d49d11fe952eacf579db0619946f86c0c6929a215fe7a98f5f02a782d1bc528359f195e09e1f388460dc0d55c";
+  sha512.run = "18621315d7bcec4bcca281b3c3410e281404fd29b0a5d2f4ad799aacb71a1c9d389db8bf1c9fc91b8cc279ec801f0cf8e31c826ded92d8476ce4ce5831754390";
+  sha512.doc = "8b8ad4cbfc03663afa6064d4a81ea9c256b8c08522e455c5660c649fb9f1de7859f368d5252b348e0521d62fa3a446b6ef9ad2d1490f7afed8f5423a99b46d3c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.4";
@@ -42295,13 +43435,13 @@ tikzpfeile = {
   version = "1.0";
 };
 tikzpingus = {
-  revision = 64199;
+  revision = 68310;
   stripPrefix = 0;
-  sha512.run = "76955d19c6c492d07878fba272bf39572c322b5b261acf1f9bdb54cbd90130f9c09e80651270a20f7b7a2d08e20e89e11a5a5a19ef9af55cd233d3917a29b434";
-  sha512.doc = "aad57b68e88499b8303cd3709c5b44322da793c085d584713fc6ead1278b0d07e2b89d7b8d53bd79eef5efe2aff2a98b6aed4b29ddd3c6704c2f6e3a4b8929d7";
+  sha512.run = "78041352e86e68eb99f875a1c8bf7d4a50c527a4b405e4c93e9da6ecd716bbb0c5fad053fff80229723b4550345077371a52132258cb9d251c319f743767cb7f";
+  sha512.doc = "1748e17af7b3190e19a0c446e78f5b40b6a135633850d610179f33927650c8cd92babca86e4fd10408586d1fd81814cbb54985ab0fadfbfd05219b033e4323c6";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "1.0";
+  version = "1.1";
 };
 tikzposter = {
   revision = 32732;
@@ -42313,6 +43453,24 @@ tikzposter = {
   license = [ "lppl12" ];
   version = "2.0";
 };
+tikzquads = {
+  revision = 69409;
+  stripPrefix = 0;
+  sha512.run = "104bdb76221a25a50644dd8c9a655d5adc4e6019a11c470fe24637a51bb91ac6fb718a4949bf940199aa47f43186f874aee59e5405db45a6497e45f84e69fd9b";
+  sha512.doc = "5657179ce49163299bc91f3730dc3fcf77972597502f43822330199a20bc244649e6437a6bfb1c4e98bdbd02e30beee58b950dc73e8269b318801135025c6f1c";
+  hasRunfiles = true;
+  license = [ "lppl13c" "free" ];
+  version = "1.0";
+};
+tikzquests = {
+  revision = 69388;
+  stripPrefix = 0;
+  sha512.run = "616098fcc9f7867458edd525fc71d83786080b1f4ead9a007083d8347add52499b2fdf2c969213e06d43ffc59e9eb4d17bd7872404f1481138229c4f15c1aec9";
+  sha512.doc = "433c1202106723c397b383edc37ecff762ce7910b4adf2e70a5ea2d2c823cac2f96147227eeffc71bcc2658b18ce875c780f91d8997f40ab823ab09eb1d84354";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl3Plus" ];
+  version = "1.1";
+};
 tikzscale = {
   revision = 30637;
   stripPrefix = 0;
@@ -42346,13 +43504,13 @@ tikztosvg.binfiles = [
   "tikztosvg"
 ];
 tikzviolinplots = {
-  revision = 65687;
+  revision = 66659;
   stripPrefix = 0;
-  sha512.run = "f77d790c2f2c7df0d60f181430d06e731186d87de12b941c9e3db3e75a94844737d1ea2e7af676c4be7af752abc16e25ed2ffa8afcca67e7b61ad7d57c7378f8";
-  sha512.doc = "686ccad0fe4a07003eb0c73a18a7858c2489a203abab33fe4a51b285a6f887be01893c1c6247c773432371fa70fd4517acb1900d98105006351fe0840126dba8";
+  sha512.run = "00fde57102ed13eafb247859de00c62829ce60de361794afb9103e501033140baf9b474fa147b7282727f7294a0b337897985460526f573532d90117d5f8e552";
+  sha512.doc = "5c7cd0990935fb05fa418ace90299532e3dea64e74789dafdff6aa9306e417a3fb170a2b5068045fe5069a08c4ccd97bf4c98ebf5f2102a2c9ca2564090ee52e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.7.1";
+  version = "0.7.2";
 };
 tile-graphic = {
   revision = 55325;
@@ -42363,6 +43521,16 @@ tile-graphic = {
   hasRunfiles = true;
   license = [ "lppl12" ];
 };
+tilings = {
+  revision = 67292;
+  stripPrefix = 0;
+  sha512.run = "f0164d69df56b1b981aec352326eacdf0f79366852bba6eb010a3842c338c678f1f38d3a5b1043ac4ff681595cc4a14a127a40b383f7d5388d9c52776352ac13";
+  sha512.doc = "13ac6a6e02a39420f0ed5e74d3f242561de4cd1e410fd6845e82b893c63d2becbf21064a676be29eed0c4b38251a78da55f43164eb2acccfb9f8d94fc72d6462";
+  sha512.source = "d6ff1a0f7453df40b7873a5b64a6d449990a3f8459901a3aaa41a5977fa0049a6203bf1cc4802b3d7383d6c68b55abed99c13ff5c5e7ffef4dcfae0e36ed43d9";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.0";
+};
 timbreicmc = {
   revision = 49740;
   stripPrefix = 0;
@@ -42396,10 +43564,10 @@ timing-diagrams = {
   license = [ "lppl13c" ];
 };
 tinos = {
-  revision = 64504;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "4aa3fe0b958c38be33dc639343a14f6a6eb7f2ebe96d99c73a5294859bfb8d8b8e8f7b9e0a2fb10f7a5403a62d0422a180d798f4de40bdc2db883c683afbc4e8";
-  sha512.doc = "68e7832d1774fd05eff79d2fb578c2d70a8f471f74f0772e81fd351fef493c22d37edcf8c1bca9c25a81830f88261ddc33d102f056f78ca0cceec51db98bed33";
+  sha512.run = "0212c5d1d87d1c73c66926a7bf06b2b62a0be51b3a03daec2086a15a4facd80e175ba3f4e23f486e181fb6d3910b77f7d26c28a8f76a9802b5112b010efccc2a";
+  sha512.doc = "e7f6fa5253e729b602c1bde603e568d5cdcb953e2a4f1e478c52959d25f58f7678cd107466d7a99b459af70250076c5f16224e4ee549998356c1b1957aaa60cd";
   hasRunfiles = true;
   license = [ "asl20" "lppl13c" ];
 };
@@ -42489,13 +43657,13 @@ titleref = {
   version = "3.1";
 };
 titlesec = {
-  revision = 59845;
+  revision = 68677;
   stripPrefix = 0;
-  sha512.run = "50af3f379bedf55c3c53809dfa5dfa8fa4ed072e232dde83f4a257b12d7b4bf06f041eb6891b95fd0efdf9420a5d252cb9688c28b91161036eee7f45516a8b86";
-  sha512.doc = "04ca9fb221b3c0c83ef5c3728b9a40eb46a4899b83837c90017c5436468c02740dfb861abb42e9987dabf63858730f4accbf060c67ee8954ed7481f334443798";
+  sha512.run = "b738823380d594dcef104e3b7fa05d9df233385ddbadf6fc6bb45e8346311f5f58f5f605dcb4b6541f88b57a27b73236eb77a1d128430c6ede675625e2ec051a";
+  sha512.doc = "b29c7b4dbeaee946e404166a4b1f4848ecffc4cc238534cf0c7248b1964146893125a9f5f8f87d6c2ea21c1e61304454bf7eb57d95842397363b88d438636363";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.14";
+  version = "2.16";
 };
 titling = {
   revision = 15878;
@@ -42508,10 +43676,10 @@ titling = {
   version = "2.1d";
 };
 tkz-base = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "d2829abda926573af15d318274f8d495479d251a1b93947325bcce9d07e80ae7a42e89c450a67e7205ef392349041bb1e3a7119045e7b4941fbc3a23420e11a3";
-  sha512.doc = "06fa91e06ebf9a244af61d2c02eaaa3a8db072e7485f5bb06ae1be980402eeae9d492c8d52ee5a3a37f6248e38136c393445eadec1693e93fd36d69d93007c35";
+  sha512.run = "1bcee5c2d6ce967369dbd6fc7c55a69793410c2d1a4de6c66c79071a360c3a0889c014eaab27ac73c771424c0d0655cabe62f9e2514dc13de418c336ea09ef80";
+  sha512.doc = "3c2f7a584b1580c4fe15a5945b45a912960bff6c25ad637be8a43ee82b752949e1228008179d7a311b6961b1d0d4aa08fc44daa02696d2fdcc51777512db80c7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "4.2c";
@@ -42525,22 +43693,41 @@ tkz-berge = {
   license = [ "lppl13c" ];
   version = "2.0";
 };
+tkz-bernoulli = {
+  revision = 68780;
+  stripPrefix = 0;
+  sha512.run = "0824d03ce5cca5be08cd648ac3629094eb4607681601b5d75a56069df687054b5e88c3645367c0728de8f7cf43971b32286eff4b18dd094c620ce37e6c957880";
+  sha512.doc = "ea1d787fc049cf42605d6adf107892aa4afdcceb32c874382453836d30b956e1599e2b9286a0e64b823d55005bf8ae2e81259d881b69172f6af5db4e01aab581";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.3";
+};
 tkz-doc = {
-  revision = 66119;
+  revision = 68665;
   stripPrefix = 0;
-  sha512.run = "4acfe795b7f75417520795676596dabd9fb423b2a369e4150946cdeb6e0a9dfb1cb440a5cb5b7a9551ec6fd80dd1d900811ba571ac227abf0c1334de39c1e043";
-  sha512.doc = "c88b01d19f5ed2a24ebb56c1e7530f046fc0bc429cf792b2a8cf64984473acc2d574c5956ec6f0e1ccb534957b2b7f83c872b67c6001acf570b9ead3cc13f77e";
+  sha512.run = "ba4c220f4a53089f8e6cde73cbdd7e1b8eb68f4828217dd5dbd3360086bb946fbfc30a993c678bb8c6e4987579016f610875fb2edc796fd19968c3940a0f4402";
+  sha512.doc = "f4e798620ecafd750332e5ae7b3491eebc72c02ecad00e9a67247ed0eba56a537d8ea139bafa6bd9bb1c908dbcf0e13491d2c208805cce1f18db438e8da38a71";
+  hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.45c";
 };
+tkz-elements = {
+  revision = 69213;
+  stripPrefix = 0;
+  sha512.run = "66380dcbb489c8afd4f916024baf3008975543424a391e0449f261f9fdb66118f9dd4bc8ad988a4f48ed2a770daca48fdb98243456025d545736e61e2b42aed3";
+  sha512.doc = "4f6630df37eb9192cd2b9d0f0b4f687762e39b83ac6b4249e86defe945093ead57dcad5414a0ae1edceca75eef7f8be706b3b626dd4557b2377354d8717bea1b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.72c";
+};
 tkz-euclide = {
-  revision = 65724;
+  revision = 68747;
   stripPrefix = 0;
-  sha512.run = "1abfcf9212823d7b739822a91a62bda260b6aa0d0293c6f67978796ef25e45c218743a1743388e2ae33ac7c7b9215ba9ac9cfcd7295a9a697f078842149f66bf";
-  sha512.doc = "75b121c2634200e580339ee2266d6b6931c34d4217dfdbb146ecbdca8a4625c95348df8d4cdcfbdc69cc838cc0763e50a080f0945d714a42e8a8bf2caaf1976e";
+  sha512.run = "14e39eb45f188f8563b8c49b16cceffe62117ac3cb17d484d1722122b6f3ca927b35ed0dc15cf0650d877f584eaf05f6473dcd8ca83f4766f5d421a07eced464";
+  sha512.doc = "ba09b1cbb47c65ab74119c7e52fc4d08c3174ddfebe0cae6c3b0ad9954d40e78bb57a219acb12584cc67616d51d70212de284a4f30286ecdfc3bd70c4ef9bf8b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.02c";
+  version = "5.04c";
 };
 tkz-fct = {
   revision = 61949;
@@ -42570,10 +43757,10 @@ tkz-orm = {
   version = "0.1.4";
 };
 tkz-tab = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "f2471d8fa3864bbae6cf39abc2ea289af637f3f4d5307d718c0e26d8a66de8edcdbc0d4fc5a21e3fefe2be453f4b30333f64dc0b21a13c52782aebc7a8b40164";
-  sha512.doc = "8e574876591d2648aa90d39ed78d4f5b122593ae5fb18ef5437650a582e8c04ae39f8ae81d85b09d7e5840a171ba6884c4eab2ee539049a92258d5887d08299d";
+  sha512.run = "cfd37929060d7213d2294708a38a0ba9df8847b0539ae105ec99b4171083877714dbb19ba2ad5d89bd3ad474573f51e263f42b8bf9866cf010e30bf481f75861";
+  sha512.doc = "6356829dfaa331e2e0af9edd044168e07bb8608c28ff386001cd06288da0a1517f7b1dc4bea31e1b06d0715620a4bac80a138bc1228a3ab15f88fa706a9c4b18";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.12c";
@@ -42634,16 +43821,16 @@ tlmgr-intro-zh-cn = {
   license = [ "gpl3Plus" ];
 };
 tlmgrbasics = {
-  revision = 60588;
+  revision = 68999;
   stripPrefix = 0;
-  sha512.run = "5b20d1fb4c6493f0da80f529832c3f45d70ee37bf970ffa1fa3ee56d7ba344b5e22b71c304eecc21d5b0040280d66382057891b39a3541c9ca08bce0ee779277";
-  sha512.doc = "1af96e3a29ad685781c0ba03583f3091f2c6e1c0225456beda207f9f212f75c93c03c76f1b5ac401fbdc2e6cf9a6077193d6f59a37dc791e63d7c505ce5c47aa";
+  sha512.run = "53f7cc8c2a39ea21a8c5eeb57ae7f99759b364ff7f1b41e2f4599d464ce17920746b8a8e182a044faf0621fa3dc842e14cbe93652d351d9fe8e1fde8a7682daa";
+  sha512.doc = "ee69a90ccf9b83396b0d9fdd5f030e673d00b2c372334378ad450089b40b93de8b596ed5bc8a459253689316a7219080b88248c1f65a475980ec270a6c84c8ea";
   license = [ "gpl2Plus" ];
 };
 tlshell = {
-  revision = 62795;
-  sha512.run = "285fffbc63ac1b87b1ad143d043ace7ed1f52f48c4e03a9fc78c9ff6adeb2062af0ce9b5245b77349528ca18c0fe6ee8ad44b794adb24ae62f00e4a18501d7c7";
-  sha512.doc = "73962fa94f7ca3a78b6149a44b72c39096fb54263660ccb6c0bcc024023dfef665c5132b9cb78953c92ec8b7d161581294e32b0ab26c9e0e2e9eadc16aa9ff72";
+  revision = 66771;
+  sha512.run = "b514f1c41c464300eeff261dc46004963e9ae6133dee084c39d8d7354510f37c3ebd8481daa377e057b48cf805ca87e7f247abe103c3a6404294b4b308361b69";
+  sha512.doc = "a4e686c57454adbbead87afc078720e294bd865dc5f77905e0f8e183efe83fcd2f0057336aac17ba6bc91eccf785bf1b3b47959359fc3ea49069bceae3d21d6f";
   hasRunfiles = true;
   hasTlpkg = true;
   scriptExts = [
@@ -42678,14 +43865,14 @@ tocbibind = {
   version = "1.5k";
 };
 tocdata = {
-  revision = 65451;
+  revision = 69402;
   stripPrefix = 0;
-  sha512.run = "7a8cc901e669e552cb3ece2f60add154c15443cd875eede2c54b90e89ef9c97149aea4e9b9134ba1606aa5ce7ef24941f4850023222e7d0d97f59e8d7f583da3";
-  sha512.doc = "6ee4234813c1d4730fd0e8041b1182b9e570ea986a33dec32a786a6fb88fe2cd99b31163dabb154202d1831fea372ac4fa76d0774f322300930f88edcfd12ab5";
-  sha512.source = "9408c8f9f951b4bb39f00a51ea73e5c5f5bc379837ccb9794e64a72bbc3ced295b50fda2a082af1aee69f53c6d2a0550dbf55a1cb8171a8d5bb399eed35871b0";
+  sha512.run = "17bc7e29a5f4d03374b19254c0967634de212ee47e0f00be9c3a8dd9a9a7694a8cf14b9da318e8337a5be00f420810ee27a115c7deb8f97e1a02ba98fd3b654a";
+  sha512.doc = "816da5a5017dc7372d40a29b45f0279629553e8399e62ce3da4871e9597017e00c8a4c39928462d5d5f168963d930247081f483e9685028cbfabae9f74098541";
+  sha512.source = "9d8767d2fc97ce25cd6c540abe83a1b1eba920f16cef02c9451bae34168812456d8b52a38ac7bc88d484b2a02d2cea774f9def03eb3e82bdd9411df0b4421670";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.05";
+  version = "2.06";
 };
 tocloft = {
   revision = 53364;
@@ -42718,7 +43905,7 @@ todo = {
   version = "2.142";
 };
 todonotes = {
-  revision = 65699;
+  revision = 69319;
   stripPrefix = 0;
   deps = [
     "pgf"
@@ -42726,12 +43913,12 @@ todonotes = {
     "xcolor"
     "xkeyval"
   ];
-  sha512.run = "c3430bf32562d19a9a9fcfacf5f61d10bdaa7cc00d6fc271338b9a962bb16ad372290c401da9b8428dc0528ba185f38d94e1a07cf096f34b3d835b4474729252";
-  sha512.doc = "030972617d7a381c497ea074fb817e3f8d5ec4831579ee5ae632331a139a288a4d124ff2a98b563b78dbf79ad088773def2aa15a81435569a8f512682b358141";
-  sha512.source = "d63d3d5aaf3751fd7ed2a8c9f09fc10ff34753896ea8f3301acabfd038e84d06fd436e2665a2428beda20c77d385202df184fc39e7cf7eba5364d6d588abe1c7";
+  sha512.run = "6dbe5b58d44d900b7beceaf265fc0ab227e3f4a56a1f8c1ff4f186df0657a3fe0f674bd60411516e54d90627ec41ffa38d4bcda7f5dcc69632892ac2f0caf96b";
+  sha512.doc = "e5a8937624df00f9aa487d43a449c7ff6181219c4dca0ee559b0a10c6fcdf83eec55f9afec7d43721bde0f60c0e8e3eeba55d85627be3af5d20fb9ea45592c30";
+  sha512.source = "2ed0f6f85b777e49fb17df84ec97a7b4bb01000de19a578d28f5bdea038a13f360598f3e53b66d20a1584d483297e55df9b1be91ed016cadcc1e8eb9c00179ec";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.6";
+  version = "1.1.7";
 };
 tokcycle = {
   revision = 60320;
@@ -42771,13 +43958,14 @@ toolbox = {
   version = "5.1";
 };
 tools = {
-  revision = 64892;
+  revision = 68941;
   stripPrefix = 0;
-  sha512.run = "f82eb761a74b85924fa51fee338e3c911545e4f96ef2ee78a236f5c10d6d566184b40bf46d2924650cc57ab4e3df94cff1e78ea1d196bd280dd2191b4ead01c5";
-  sha512.doc = "c47db012171f64b2b8554a00397b7fe0b5d262510fecd3171ef1525eb2f1a2113c24b85458e3762d6f908a0617414bcb07eb5cbc14108c8be84c6b5f90ed3ea9";
-  sha512.source = "952c2fa3d0fdd06d784c9b577cb311d7910b807b8a8126915844baf582d2c7eaea6a984db7648d9d66ad104fe47ed96f88a80bc5a6c1b9d1e6dec07ae3a0abe6";
+  sha512.run = "6da3f34edda1c3839737f6ce0db95a899af8c47fe9901a502dbc6a6c95ae9fbe317c7365d6cebe3a20bdce8af0e37b803480f8489de57ccc6daac8a758a5c9d9";
+  sha512.doc = "614a64b6d5f25c4fd691d629f70f1fc0f614aa4ac1a1a5a6e06f6ab0edcc0a8e8cd14c2cce498aa75ef3320e493c7ef69cd6ac858505519e10b8414b9cbb13ca";
+  sha512.source = "2bd6ea620d71ae1e5fab48f5b361560e290a2633668b03a36259228b0cf8f9eb5acecee705c66052dab306288c1defd46a366548f7aa66cf04e802bc40122caf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
+  version = "2023-11-01c";
 };
 topfloat = {
   revision = 19084;
@@ -42817,11 +44005,11 @@ toptesi = {
   version = "6.4.06";
 };
 totalcount = {
-  revision = 56214;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "77d12ae2b41ccc54e88338c47cd8071bcbbb130901cd383a8ab976147c510c52c437e722939882aad859d1bc58f52b7a698033a695ce10551f86874dcd58d425";
-  sha512.doc = "1be9ee133e33a859d9dfc91102dfc4511211eee462a0eb9ab2b5610a342d949cff0a883656afa8a1ff0c0d7088a94391c2f5c60894644f3985b9e916ef9df221";
-  sha512.source = "bb5d5a15c2ce9cf51fc777808ecf0e551a10b1b709786d45cc25276eb787b44a54ebb217c122b170d01f72a393bf5343173d3d94e5e46194e758141e436c2f1f";
+  sha512.run = "71523dddd67c44f4ef53c14833d4ea3f70603cc76f0495e5533e68eec99b1006796796b39deb40f6b36dd9ed03102ad859a7032bc6dd65137fd19c23c4027a07";
+  sha512.doc = "2fb61446efe5fb3ca8c80099d19ecb7a281ea2ebfa756778e4bba8060e9331fd1b712b7b77c66ddbd3a5b60451d6007130803b6138f1eba466a5f210c1d3322d";
+  sha512.source = "be9fc65fdcc7999279b5e4c5b495fd7fbab4606fe9f6dc96a5683ef0af41ac8f4fd8c3f5d2470224304a1bc974a6a9b40a7c017049507a7b6ad8db15d2dd2724";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0a";
@@ -43089,6 +44277,15 @@ trivfloat = {
   license = [ "lppl13c" ];
   version = "1.3b";
 };
+trivialpursuit = {
+  revision = 68971;
+  stripPrefix = 0;
+  sha512.run = "62cc07c80aab3b4c35bbc5ec96d97204241b0e83248147b2875382657ccfe035567455bf8c689798b4c0dfe6bb8688da2ef9d4a89388521817dd09454867202d";
+  sha512.doc = "59474350e6626440d5a5e4f5782135182c6c5e497a3fa6436264a6774ecf498f719b7469a69539766c5e0b10a13ad659e00bc5fec854d0e961032ea7ed13af71";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 trsym = {
   revision = 18732;
   stripPrefix = 0;
@@ -43109,13 +44306,13 @@ truncate = {
   version = "3.6";
 };
 truthtable = {
-  revision = 60717;
+  revision = 68300;
   stripPrefix = 0;
-  sha512.run = "3ab6a30d6c964a810cb27cc13b314fd9b8b881427a8a1e8dc047038669e9480bbd258ce5380eab648d07669b948feafb420a16e3d599f227c3e7422e4173020b";
-  sha512.doc = "3333d8ac206900fdbb4aef6777a5ad840a9d9b0b43c62871b24683c41d58b78b36b97062fc9fc4d84e71a7f6728d0fa6320bd38e1f7de4aa660bc6e7b79156c5";
+  sha512.run = "1f8ddc2aa2c8672c876794eae7266f8a4a02382ed61eb00af972a2adc732fdcba89a7a7579f07d755eb4ab742018240ea69fa214ff0393b53b9c77ba0179b0bc";
+  sha512.doc = "462a23fecb4c1f4a793200aa45d42bd325fad9abf9ea6481fd2c9d3f3993de657cbb7651c7ac1f4aca6d97626c751bc6d66285b8b3e9c06bdd216fbb5dfb9033";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.0.2";
+  version = "0.1.0";
 };
 tsemlines = {
   revision = 23440;
@@ -43135,9 +44332,9 @@ tsvtemplate = {
   version = "2022-1.0";
 };
 ttfutils = {
-  revision = 62517;
-  sha512.run = "63686a2f8b014fca1c40ef36d9a95b443addd7b99e8151115ec99a8117188643970d9a8889983ad84f50d4d70cf7a4716947c3cc5b07fd55ff0ef53a97a273a2";
-  sha512.doc = "7a6417bdd98ca495914f7cd3c61162e9cc505aa700060a3de9098610d27d4b5a812fe333d9c8ecab6316d8c4b51d1e63d78327ff3fb7bf9d51344bd5fd030814";
+  revision = 66186;
+  sha512.run = "2e4eba2acd3b97297d2629ad93fdac4587afdfff30584ff77f69574efde4172ce60b904100c70d168016e8cb5c6407f4b4ef5ed7b3c83f942b7477af2f101be7";
+  sha512.doc = "bac6812f37f1d53184a4944e91b06c4ecd6a03d96d78956781c4b01c38ec3b65b74032704d98a4951f8dd5ad84ff54d82891c12e7db99ac58e687e535758decc";
   hasManpages = true;
   hasRunfiles = true;
 };
@@ -43158,13 +44355,13 @@ tucv = {
   version = "1.0";
 };
 tuda-ci = {
-  revision = 65254;
+  revision = 69351;
   stripPrefix = 0;
-  sha512.run = "7fc5ac0e12ee84e996bfbef010ffaeac2fa84ba3a29c121ca9ac835373577c2849555a38cb42e22f4829538be855ea2d2dcd3ec8f4d6201ce53fb7fe32f76d9b";
-  sha512.doc = "115a723003e094601698093217fbb2ed0b710d44667e6dba694f5510bcbdc441deac5cf909b3862e5b163d50349f17ca7571704c43d01838e9ffa2686b781a5a";
+  sha512.run = "d5a2887147c21caa4c3fa2d8f421a7e759998faa36ab2933b40f7ff43768677f982f5b730c593245c55d09dabdff7bfbc51e5765af897821c525c5510d513bba";
+  sha512.doc = "c4a61e1ed259abea0d77fff546ba79eec85d0b5ec63422c8181ba5cae806b4180103361d3ed0eec3035279a13fe6e45166f6832a5de5a801e3b1564fba27be92";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.29";
+  version = "3.36";
 };
 tudscr = {
   revision = 64085;
@@ -43211,23 +44408,23 @@ tufte-latex = {
   version = "3.5.2";
 };
 tugboat = {
-  revision = 66516;
+  revision = 68694;
   stripPrefix = 0;
-  sha512.run = "be0b4af6a00b52f62d513188cbf8e8bc090a9caca2410fc713b2a4b244f078b82a09cba477adde391e988b53de3c8a66f75f3131d9c4e0395ce98dcfe4322b90";
-  sha512.doc = "bc5e7086372d752978d47f66cb486d27f531116c38b7b08c926aa314325d7abb8905cfae50d487a5acd822f4e7601b4258ba8c3d500a1e7530e3befd1ae89dbd";
-  sha512.source = "5aa5fe0d70603c337ae0395191f13354a8d932b10a763bf8d0909321a2fad6a26bf3775823feda74e0198c27496ad90fb9998201055bbef9ff1ecfa8d5dec155";
+  sha512.run = "23c3ba2e45560d22a55c4eea733fbfc55466503631eb02c61527f0a73a595790ffe8c8143df2327af61ad8c23848309065fa69abcf181f584f64d03f437228de";
+  sha512.doc = "d0482d7fe4ea30d21f43a9266c8ab4b85da66fbfabcf405ba8aee229c0081b623f1cb5862fd7e057d4080439275aa08212079bfed06f992553c4b0dec3a96798";
+  sha512.source = "fec6b9556d9a945a3e9ccf73d0d043d099883d4c5c01c0d4a06e50b7900414c37fc62ec586e43526ee4c9e711c558b1601dc46248f2a97180bb75ebd79decbd1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.29";
+  version = "2.31";
 };
 tugboat-plain = {
-  revision = 63386;
+  revision = 68695;
   stripPrefix = 0;
-  sha512.run = "e3c5542cb31b446e5361a298cb47c94b45b73dba8e0d6dfb0d967a6f01b7eb599230eb9cc15606ae338920819be72ad94749bcacfcdeebe1aa6663762221aa0a";
-  sha512.doc = "ba4f7c26c08f49819df2103c9980108e2a662faa486aeb42d2b60739b385671757f1a0c242b9d18eff92af3c65b8f2f8c03ce1b70d1820f7676a57616b64ec2c";
+  sha512.run = "e30aecd365721f9c986b70eedd022bde17ffcf348452d650144792bed0854f18547d837d0b3731cd0810d5f6f32f10778b1adf3b29eb07a8ed4d0765dd88cf61";
+  sha512.doc = "c49683e2cef04b15c39dd275f950d602be8ecbc2e6fd644634a60100257f2367a623d06086558a69c469fb3597fd32e0a2ccee4ce9e90791daa8f8e67e1122f3";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "1.27";
+  version = "1.29";
 };
 tui = {
   revision = 27253;
@@ -43284,6 +44481,15 @@ turnthepage = {
   license = [ "lppl13c" ];
   version = "1.3a";
 };
+tutodoc = {
+  revision = 69343;
+  stripPrefix = 0;
+  sha512.run = "acd6fc6114ab1c25259485514b54d848b75cb5f45dc05cdb8324a91b127031c0db8c84c445b0e1b429dc1a5ca0a6a394987465363265c0f830ea60e72c6ab7de";
+  sha512.doc = "8f58c8eaa4db17315d69088b9cb446b90504fe62395fcb07495742695f2c8e8215ab76596d4d98cad3c432f3e6079a2ec3088074345d0ace4d309db3163ce405";
+  hasRunfiles = true;
+  license = [ "gpl3" ];
+  version = "1.1.0";
+};
 twemoji-colr = {
   revision = 64854;
   stripPrefix = 0;
@@ -43397,12 +44603,15 @@ typehtml = {
   license = [ "lppl13c" ];
 };
 typeoutfileinfo = {
-  revision = 29349;
-  sha512.run = "b30d2618c8cdbf69fcb8a5444922185a52b934448b5d28ba143948cf80ed17cb402d73d1162194df3d2992a52ca9e6faca79000644eef968c4eba892c415b6bd";
-  sha512.doc = "143c4ad9cb3890b6350069d5d045f74c0bb0cfbe50e7d051c50c82011b56e651d483c1422d7d553a8d1d1784ae726a1ca1aead023fc3ccb1da4f0d59d47f7920";
+  revision = 67526;
+  deps = [
+    "fileinfo"
+  ];
+  sha512.run = "6f448ade3e08de1512064cdefbc1811f97f0a32141dc6123788bbd1147fe3d5c3f8709f6316c0268529017e611cf455d1488a8565a128c4c45d1de0ee9311ede";
+  sha512.doc = "d8c8e568d87a0107789db201875f2116df08a2c3dc9bf235951d5b675a8b1d01ab8b2170301581f18cfed4fec98e8d63fe127999f0273c9c59da163e72debeb8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.31";
+  version = "0.32";
 };
 typeoutfileinfo.binfiles = [
   "typeoutfileinfo"
@@ -43472,14 +44681,14 @@ uafthesis = {
   version = "12.12";
 };
 uantwerpendocs = {
-  revision = 64165;
+  revision = 66819;
   stripPrefix = 0;
-  sha512.run = "af84032bd824c25b3246fe9dd92c5f059e91d1a631132c80a266516350a965aaf374c0a623e4cf9bfa20e65e9fe6d40a8450e5f872c515e95a6cd06b69f16ea3";
-  sha512.doc = "80afab05d2b18e1def918d712fafdde62d18d9ee2645fb49a7ebacffd204edce19fe0deccfc4d09dbb576b2456c180184e1b7e576c9f2af0fffff476c6e69a10";
-  sha512.source = "44083b34902ddff336673b4c5ce17938b0f3de645c847b9be64e46fba8be8783debba81250a451ed9aabf204ed448b58317d25b2bbcd83d2a7e83a172a0c6507";
+  sha512.run = "88163f9a28d8027e1e223e551f1fb053751f849822727fde7e595423e6f10c67e2d389f515aeaec77a68a48d7b20600cf9cf3ae7adb02e72f45e4d6df48c2049";
+  sha512.doc = "68dfb896b3b189ac38362a8826fb925c8e1af493029d04bf584a1a6e57c8e501689fad7b63c96fbec69d2aeb69965ff1cc7b544bf35161a6d90c4a54bc486438";
+  sha512.source = "9efadf4bc9c217dbad28b57845ef9bc18bdae2e5b48887d1c6c3763a3867083138eaa0a693de0c407fb798e150b0737041789bef915216fd124351c1ee6b3b99";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.4";
+  version = "4.5";
 };
 uassign = {
   revision = 38459;
@@ -43491,10 +44700,10 @@ uassign = {
   version = "1.01";
 };
 ucalgmthesis = {
-  revision = 52527;
+  revision = 66602;
   stripPrefix = 0;
-  sha512.run = "79fe22cc61ca71e472b2ecd173230b518f97b66fd411430b57dc341394961999b0cb4dc7e122d6abc828e5ecc5e15f60e0b0ce785131cbf4942a49ddb8b5190d";
-  sha512.doc = "458ad22537a6152ff782725328e98b68f1fe68ebcb2764ae1598bca8b659c8e67ffcb0c889890c7254dba84301ea3a066a5e92bac814027f62ce6910cb5f5b9b";
+  sha512.run = "b836c6cd59559d6858b6ae98e04c8ac9734f8c9df34c103e6076911db5db6430d0b253c29414a63073216f2ec8e02ffafd69ea97750fa886859b9da1ca2cc07f";
+  sha512.doc = "acd371ab0e495a664d37f5da31cfaa9d31edda71b2542afe9b4ece6e4845da19e16d4b84d64b0418b49696d080fc019e521874527ecc0aa8559f2c2341c80cec";
   hasRunfiles = true;
   license = [ "mit" ];
 };
@@ -43536,15 +44745,25 @@ ucharclasses = {
   license = [ "publicDomain" ];
   version = "2.6";
 };
+ucph-revy = {
+  revision = 68224;
+  stripPrefix = 0;
+  sha512.run = "9b8cd59c35a8e94b04de4490fcf3637b75a4f858383d0d8ca263346f08d10a7ae8dfa2bbf0d5800329e1a90c40110a7767d6af6d2b24b4f94854a78bcc77aa15";
+  sha512.doc = "18319c8a2137d7d2642dab7f9569b6073ab3ae1657c51c840a16821297539ad38fc283efdc98349bacacfbaf6f674b4c4a3d56317757af74de89511747f852ed";
+  sha512.source = "1da208bbfe27b5b1ff7aaab0e808ecf65709913ac1636596261e6421237c5584eb4028accd27d9efee18045fb3be1176044cea3b0dbb083927dad55543a8de7a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 ucs = {
-  revision = 64114;
+  revision = 68759;
   stripPrefix = 0;
-  sha512.run = "440156f8c6d1f43524225c99adc58b63f383e2d28dd2a79af0d881545d96debf3f3eadaa0682c5f3de12cabee109912ae699c5d3f9d5e48bc4a43b14b210288e";
-  sha512.doc = "23eb57ebc1bf27d6406d883caf8ab060d4d4c7e8caeb982781f7cdd719d50aed316a2c72f01934a8f0e16a6ccf6df62598038743a026ac1f46f4be731b020c2f";
-  sha512.source = "0431c552de865e50fcbcf19d147a99c125fef807a0e462c31a9a1055afde3ea4894cb29658d473257ffe9ba5d8ef692d37b0021514f49c218417d531160f24d0";
+  sha512.run = "9adaa0a3fef64436b56d3e4e1c504b74c18dd795db15d193df0e0ced419490ab462cc61850d3bea6cde7928ddcd85cb872130d1dc9776aaf3bcd8f12cf144832";
+  sha512.doc = "95dede76d97d0dce6cdaeb0acd128e89c2e98383e633925b40433c0d4e0e342fc3df94603f17370fb56b88c40effb99eacc4310e4de4231232a2be6892adbe87";
+  sha512.source = "e2f0406d59b69bac26363cabe90364aa61513e3c20da1fb414ca683e830cdbc79410fbf9f9b36e60d467c989d03e942efa2b9905dcb2339bfae9267e49cbd00b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3";
+  version = "2.4";
 };
 ucsmonograph = {
   revision = 52698;
@@ -43566,14 +44785,14 @@ ucthesis = {
   version = "3.2";
 };
 udes-genie-these = {
-  revision = 65039;
+  revision = 68141;
   stripPrefix = 0;
-  sha512.run = "bdf71b8e6bbb678e7cdb99a58ab76b9dd2dfebe21764dc19429c9ffd51101c0a633ee3b39099d4bc00f4658f8462844804df53cef01598f92360a1dbd00c6aa8";
-  sha512.doc = "b4f1ffe3a5be0bf1da45235d17c95fe60c1f48e9c80989f527ee987b5bd2edbfa825b676c281feade4bfccb1cfdd706fad438b2124fadf62856815273c330c4c";
-  sha512.source = "04e7e7593831e2d93be682dd8e20f3245281f8fedf04ab2eb4a7771a5d2a4e277358deaa48981bba6478bc2dc6ed25ce14f9a627dbd9002ef4f43ef41bbba336";
+  sha512.run = "01422998b27a84f3b892114fe468bd57ecfe37dfda68ff84f2cb95fc9ba589d74fa4874bb35419403269685c74607e647d98b1b443d8739c5b4c3335820f690b";
+  sha512.doc = "c962a955f1d618232196eab7c87b301dbf725f8ab08156ed98d4819ba3be5a6873b81dd7deae65c0a36eced5e42be6415b78b06c5fe945b4d4492e98487bb91b";
+  sha512.source = "77a91a01bc6e61de8d08048cd4d04ba6e6f2b2c082e14ea4100728bec3229f096089069188a523d3d213c3bc00d27065fb5949b622869fe419226705e357d802";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0.1";
+  version = "3.1.0";
 };
 udesoftec = {
   revision = 57866;
@@ -43604,13 +44823,13 @@ uestcthesis = {
   version = "1.1.0";
 };
 ufrgscca = {
-  revision = 65661;
+  revision = 69042;
   stripPrefix = 0;
-  sha512.run = "a3e59608e4db63d9329dea8d1bd3dc7f934752abab97fb3d2eb717de2d039c2df5c5564b35e3311497b97c42621ddb988a323bf18718b71e6a42eece28f5f6cc";
-  sha512.doc = "b02e19ce8e275537a8aa59d8f5f66fb467b2aefde325279f0e05c0c19d5f6cf51089cc76f2c0b6bf8990ab4584a27393eb086bb738b305f96dac5c4a54a0130f";
+  sha512.run = "ae9f69feebcd487305cbd94661af5262d32e98f6d65dbfa8b5a2760b93fcd482aca13b7193cdb93d3f518b8e3e3ebe31275af53d34e38d4b944ee36588d2cebe";
+  sha512.doc = "71dc771856ad8f31a8a69845128ae0bcc9fb7c21252e728d7f8914f2040d5550c397da8a5e7d5c2cfcc5c8a7f65328dc5ded3036f4dc786d4802ab61c1c2063c";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl1Only" ];
-  version = "1.0.8";
+  version = "2.3";
 };
 uhc = {
   revision = 16791;
@@ -43660,13 +44879,13 @@ uiucthesis = {
   version = "2.25";
 };
 ukbill = {
-  revision = 65485;
+  revision = 69362;
   stripPrefix = 0;
-  sha512.run = "54b8ce31488903e75012baf77c7fbcf3bce777794123c3274e4eae890606991ae5de875acde85def4c3757ed54f78beb6ad1d3b331704371cd0ff5198dd91ccd";
-  sha512.doc = "7ff4421360231f084977382b06677a3e103db4123fc001f7c63e16ed5e40289630312e331c5628ec8a714b9cf5ad53207dfbe2b363bb9fb3e1610d007c1ca800";
+  sha512.run = "45a1b6be9d4dbe7a9cf47ff7cf07cd280069203eb9e3a5297e699e84bdffaf845c92a32136ba7e2f61db613a32dec6d37af3eed1a8dd52fdc652af207ef16d23";
+  sha512.doc = "ad3076413ae87035b82d913c3772642aef429c7cc0efd7718f3838a5c7dae52e3954d0566c23c57f2f25d51ee9904dc8dc78b3d8a70bbe6554ce0c74d8703862";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.2";
+  version = "1.2.1";
 };
 ukrhyph = {
   revision = 21081;
@@ -43781,10 +45000,10 @@ unam-thesis = {
   version = "0.5";
 };
 unamth-template = {
-  revision = 33625;
+  revision = 68681;
   stripPrefix = 0;
-  sha512.run = "b8d1d3bf42c11c967d9e3889e52e2c9a45aa3e0bf4ac6b6e5a72d69e1bccc2b254954a6828a66ec794dc7126f54d26ba48e3c11efb913d04e50f4867d348d3b1";
-  sha512.doc = "eed527d21e7d8669e0a02fd5e880e9172dcc2ca8a1e499b079d1d8f3935b7e84a4c84763b0204bb3b90a9df493bbbba6ee90fefcde6b4975c1360ae119264f61";
+  sha512.run = "c6b6d86dacb71575a7f76e33eac081f630b81815e3501ff5ba5a5e056d5bab76c709b19b8843adca39330fb644cc49e70c8687b5a66d0dc636caa74af6c3bf5e";
+  sha512.doc = "e7e17ba71d47769db4766628d334ed66980d7f133ec0bf2bf21d7a00e92d661dfa624def736891c5d70f11755215bff47b8cc9ffaded3baebbaf52e0365227e4";
   license = [ "gpl3" ];
   version = "2.0";
 };
@@ -43798,13 +45017,13 @@ unamthesis = {
   version = "2.1";
 };
 unbtex = {
-  revision = 64634;
+  revision = 69307;
   stripPrefix = 0;
-  sha512.run = "156376638cfaeb2b73d576d83ec48aecb12083981e7916db7ea9cea19edbd1f62c1a4e7b15c60c35930737f317b47b321a551625a083481e12c5da11f50b7774";
-  sha512.doc = "6e8ff704903c4c397a9fa36fdd8272166482430cd519e6b538692da29af54cc2f2e8f9cd283278a394b578c782323ca3d902a01d24c6fc713206c7d70ee54fde";
+  sha512.run = "dcc212b6a524f9634a686a78f2ec6d3cf357afe966378adc6010be11597912015f5b22388656068476b4de0f24e7fdfeab78003f43570890028654a937be0af0";
+  sha512.doc = "84df2e08d77cad569a4256b615e739996580acf12c7e3c62a0789ee553a84ac0dedf983a77e7d2b96e26b9dd96c0c43940c1c0644babd945770c74f54e4a9923";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.4.4";
 };
 undergradmath = {
   revision = 57286;
@@ -43867,14 +45086,14 @@ unfonts-extra = {
   license = [ "gpl2" ];
 };
 uni-titlepage = {
-  revision = 64306;
+  revision = 68917;
   stripPrefix = 0;
-  sha512.run = "b1d374a39e3a46bad0ae1e9f0c47ac0853edb388d9026175340172484f6abc15babbe852e1656986160dff7262c8275b48ff042c3a4c014821117d2787ab6cda";
-  sha512.doc = "6aace438f49fc5e2414e6ed4f452302116d439d18ad6b6de11a1919f98e25e7892315db832031f44418f62a89537913ed73b10f8333b7d7c872d8bbc18dfe9aa";
-  sha512.source = "d5b84ea0f7013f419d3d3ba696b55b083eb06faf3adba6ece76a38649b9456ff7c9fda0a7ee5c3e3885f16732199c9dedd88dbfa89b3f443edd20a0f6cb92dfb";
+  sha512.run = "980f748d37b5b4a3118b1f34db2957b71cdb7551595cf7673e64d75b70688e882b90bd83132ad43bfdbbbb2bfa2752fc2028f3164fb9ee5e9565b84740b303eb";
+  sha512.doc = "1198414d70aac8b31e23c73bd167586be5bf2f2745ad492fe516381a1e202e9e0720a389fc8c12eec2a21747f7e5c85fd754243b09dd5a008b2dcfa9a7257e57";
+  sha512.source = "3eb42ea4fc401d4a55362f66c96db5295fb6ee66cfd840786ea5aa640c9f2b92bb5718f614d832d7e84427af20334be407ab59e155d135212a00769bbbd50038";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1a";
+  version = "1.2";
 };
 uni-wtal-ger = {
   revision = 31541;
@@ -43895,10 +45114,10 @@ uni-wtal-lin = {
   version = "0.2";
 };
 unicode-alphabets = {
-  revision = 66230;
+  revision = 66225;
   stripPrefix = 0;
-  sha512.run = "fb211aa65464c8dba87864ab440e28ad5ec862a9172102447f865da4aa5d1cc814a2389c9a0a8ead45f44162df9f7e03551fa5f5c6a4ef58cde60c58cd996a6e";
-  sha512.doc = "99dedd786aeb570a3d62d52e5655c7577904ba9404682b5a575398bfe89bf6cb41e751a0272d73437984b21919bd6eedd0f33aec271ecfd76151709975673851";
+  sha512.run = "5a4b043778811bfec1ecc847ee191dc64b3f99ae0adb8fda2b16fdfddabf195133d53acf295fb18dd70460e1c1d200d3e6889815edabcdd0bca9d007d7a309f1";
+  sha512.doc = "ded2197bb621622c7f9947ce736814a6acb63ce86bd866792a8fe8e1f22a8131ee12c785a81c764ab707e5bf1b2c99df73c1214ff71159e3c9fdd34ee7aef7cb";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
 };
@@ -43912,37 +45131,50 @@ unicode-bidi = {
   version = "0.01";
 };
 unicode-data = {
-  revision = 64423;
+  revision = 68311;
   stripPrefix = 0;
-  sha512.run = "64309fd507c7705b2ad0b78ef3b5c17c2891ffce3d9de34d4fe8380a61f80542dead54984293caec516f815de69b2d89e0bee930d979a87af6a187693e2c87b5";
-  sha512.doc = "1219c454df7b3645b97a5fe6621c9666b3784297f26e0ff63696ddf7835f326b4a189a6a890b2416f12f29fd4b40de295c042a8d9b326cb7e22152b7b8f6ab79";
+  sha512.run = "9e74ad2fd167a913e004aa77c705f0f8b3ab3d8e717384ee150db076660bda4e2651bea97292ef9e747d4e2519d9ffaa113947dd5241f830c3e4d653ee061d71";
+  sha512.doc = "a8e147ba4d30bf80e1c1bdfba67bb3a0ff9f765c5d41734aca1708adb58c5c357a17401383faab827477fc837ac1dbbdcb55ee0b3146acc737c094d6984709d4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.16";
+  version = "1.17";
 };
 unicode-math = {
-  revision = 61719;
+  revision = 67919;
   stripPrefix = 0;
   deps = [
     "fontspec"
     "lm-math"
   ];
-  sha512.run = "05dd4b08e8e766c2c8e719a12aa5a28259bc429fb1f1d05850e865ef258ab5e1372a785a2787098ea50bb31c852727ba8269ca656ce55ee0a7355fe4fd7344cc";
-  sha512.doc = "c8d05fe09c6ed76f29978eff8b7688d8989865f6517f06a58acb899603265e499db5d962895b5b3a0b6bf8d235f29da88f76a3b7b35778953878d02f2910b524";
-  sha512.source = "b1f21cf06c5ece08e75575cb2e23f7e9815c0670cdb2af0026c1037556e646e81c2103740bcb14e95375cf88b3a665afa3b24a4fd6c33f416c36f588649de79f";
+  sha512.run = "181168b0560a67c98fc9df214f0bd37bd1314b2400622d2aa3eac6659db42aabd24ab724845190cba46fd9d53b7b1440c016a0c6fab49561c3d795fefc41550f";
+  sha512.doc = "deffa8e0656c9e543e61228e4cba9a9cb31e137f6517e552f8b6243d14273b580b69e617c0473eb57a884972abfd07cd8cd9b4b836ffa1858aa1bf433375e954";
+  sha512.source = "c221366b66e3f83910aca83dd8bd97591cca5e4a22244af77c87c2a8e161294ac7f3e89d2bd7cdbfd8236df93e60ee99c9e8e9fa2c20060938b96d93f1664ebe";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8q";
+  version = "0.8r";
+};
+unicode-math-input = {
+  revision = 67089;
+  stripPrefix = 0;
+  deps = [
+    "iftex"
+    "l3packages"
+  ];
+  sha512.run = "94b91d68c4745c1773ba5d3888b2f16f8ea353d3b8041af4fb842e17b4f82c982ff7a0cb92bd59764268e550b3599c8963a2d13cc32b495f855a131879d2ae5e";
+  sha512.doc = "a93a8517f460bee1b10a9a9619f5232f41015d0695425da1dd447880b422273135bc2a287e3f988ddcec82c1b77c2d2d1848a3fae82f2ec6115f655ca667b873";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.0.0";
 };
 unicodefonttable = {
-  revision = 65009;
+  revision = 67066;
   stripPrefix = 0;
-  sha512.run = "9f876d1cb307627ec5b06d94fc4dd3c6bc2ddaf4850f4edb2cc81a133bbdd7eb09c0e553aab1aef57b551a84773379509899f628d77317087763f4a8f507596d";
-  sha512.doc = "894fca56085ae53abd8b0f782b42ec075e0320e39a9c8590bbeb04cd36a3a9d8abf03c0e2d6d1250a96c734ccece9cdb0df76e5d6acb390a444a02a77c777ca8";
-  sha512.source = "83fabd401ad7a6228368e1f8bee1e6bb3be56732cd1b614a0f1344a9a47595a60018c4051196e4149c831668d877e593a8a19ae996905013788b3f1f56b6f83f";
+  sha512.run = "aa387053dd18c6927256690dba7e5c47a586466624f4dd36aef20b5cfbd9e1c5190ac4c5e45b5fc7325fbdb9db1fe30c42b4b9bdeeebcc6ad404d27ea36d1b37";
+  sha512.doc = "8cbfcedf459f9fdd970658ab7a462c1389e1502425816804c44bba79a4be05fbc2a6feb6769a0c693e208f2ee0ff0765c29dd7eac9afe7a5a11d1e43d636910d";
+  sha512.source = "189a69754a90457b5e99a099e65a4e62c4dc613597de7d4fc3818609a301f6da056fd88e6a6cabe4df8c1e18c0441a35dfb87d24ce9142f7fdb5e639d89c8ac8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0g";
+  version = "1.0h";
 };
 unifith = {
   revision = 60698;
@@ -43953,6 +45185,15 @@ unifith = {
   license = [ "lppl13c" ];
   version = "1.6";
 };
+unifront = {
+  revision = 67054;
+  stripPrefix = 0;
+  sha512.run = "da1d02f97f5893d6f51b833e9919979e489ebef273922a01d0f5d48ed86ba9c401c11d5641da82f55be782dd215537159bc2c689309d3a4f730b93f2b739e74d";
+  sha512.doc = "f66a3062ccf5d1bbe11e88cabcf7bf907487993cd83bcdc9bbed927a9f0c7fe06d9975ae5006441b7b71969c436a0faa0fc8808af35ba0d381d1dbecbfe921ae";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 unigrazpub = {
   revision = 64797;
   stripPrefix = 0;
@@ -43964,10 +45205,10 @@ unigrazpub = {
   version = "1.00";
 };
 unimath-plain-xetex = {
-  revision = 66397;
+  revision = 66394;
   stripPrefix = 0;
-  sha512.run = "2e44ecbcb30cdfc77e4d69b6416f556305700da50c459f17794020ae413d8bdbaaadc367bc4f1c39e4776d2cd2ce6663a699627102471ef5be5da17f10d839ad";
-  sha512.doc = "c30fbd082f8bd6bbc7e3fbdef8d20eecb73a0a3ae55aa48f8bcec635d84f90827f4a8f3be027d2c810b030bca067af66758f5bdcbec2229a3f4421822c8713ed";
+  sha512.run = "cca8482cad022f39faf3b0b0cdf20a7d209acf5041642bac0103a3dbd1dc832a61a17c442845752317515764ab3beefd6dfcabda8c3d03cdcb8471fdd3bff4fd";
+  sha512.doc = "a9138d1b80d8d5db0f00682f213518df3a40e19b3e6f36a01e62ab020efbb9c468da282393cc43a515a39dd9ffb399801607e3ac59800dd7fef73f3007b137f5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.2b";
@@ -44066,13 +45307,13 @@ universalis = {
   license = [ "gpl2Plus" "lppl13c" ];
 };
 univie-ling = {
-  revision = 65651;
+  revision = 66728;
   stripPrefix = 0;
-  sha512.run = "179200352c593096ac82a3711b01d622b1ae06b0756f14861e1280aa6e59b5d2dbe5a834e6bdb5601f212a57aa2bf37309044acee88380264b53d0c65bd21269";
-  sha512.doc = "aeeb0a42e787c6d00843f89d4d26af6c410f6167e10c6f132fdd7e859c8dec25f94407870e2e917a7dc7b9ec175e15fc190ad5892d602b248f4be50b1d833a82";
+  sha512.run = "5ba91b2cdb6001a42426b77284aa68b82575997ffe1c5c62afedffd6a74710dc0e4af25df1cb4025a8ffc619376333b318a8be828490d45c7b55126e4c7848eb";
+  sha512.doc = "bd576c575776ae2467f146f2cb344c97db797babce5c06a7785449010187a6ce8217b082ae84e0d045b543a4f3ba204f207d8c4ee61b7115f2b484ed4f237e6e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3";
+  version = "2.4";
 };
 unizgklasa = {
   revision = 51647;
@@ -44084,20 +45325,20 @@ unizgklasa = {
   version = "1.0";
 };
 unravel = {
-  revision = 59175;
+  revision = 69308;
   stripPrefix = 0;
-  sha512.run = "26ff88b32e91fd872dc0286001b58a7084b38e5497125793ccb90e60e58ad19a78b780162d505aa0be9bf07e9656bc60414a55a0d6419e8d9b33d8c0e8e53d9e";
-  sha512.doc = "206f3d794ba1323f9a6fd8fbed98190e376a91e5babc94aec236c46be783b0b01d80fe45394a1e73e2e29c5b19279d28430b9350e1f216369c4be707ebf6dd7c";
-  sha512.source = "ad9ebde05f2194043d75d25faa249f786e154312b4c3d6688ce766cba4092ee157a405ef1eec5654b1b6852b5bf2f994c77ddd78d284c573a07539403bc69e92";
+  sha512.run = "36afdd36eac84c2421e745b4f21dd1f00e357769df37482fbdd697b7dc27904234e89dfe7c3c61313307522c7c06264290c4e805651024390af7700379f71ae4";
+  sha512.doc = "05f27d954122d3225e43412518e3c76be1c9ff4a93f9d27c06dd57bb2f42974608960f931ebf1e8f82dfc717c51f82bcff4b34a480aaa5d0fa90504d6c7a4130";
+  sha512.source = "25047c5229041ed87e062c277603be51687b1b29296a83c87f514a6630bc89f42979059251de8f8c1cd1b01c95f0dda23926097fafa1e6863a98c46e0edce874";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3a";
+  version = "0.3c";
 };
 unswcover = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "f7e41b1d8728e081d6864b0a902d7229ebe0f826a602003549f8140dfd9a4e110dca4f3f2e74b8843441a67931fc7b0a3da927ac26e483a77cf1ae7ae1fb43b8";
-  sha512.doc = "32e0db18af54bf09defda012f0b43e97d8ee93fb2ed4184dcf7f8ade14bad31fb17dbd3b22d5696e0ef76165b59bac9a37dee7cbab846b28339156b081c65f58";
+  sha512.run = "4080e5cb6621c3f265245540b22ae026e9c29c37739f7ae955a90ec107199bd2b52b9e2301330a630f535c05004ef762cf058b70ea5d44f65844790156379322";
+  sha512.doc = "e3b10ddf23708fa8ea68a8d5d11152812a1832f4c8d87e03a697b81f69b94167d1ac8c70824d7434fdd022f4dc10bd823fa3c177a4f0a282cd60ec166ced6420";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -44148,8 +45389,17 @@ upca = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+updatemarks = {
+  revision = 68163;
+  stripPrefix = 0;
+  sha512.run = "9718a99c7a6775d80f485839d71933c788fc18c8b4d9caa78c9ebcc159f02ae53a87ba1479fdf231938220eaad9006b817eb0c72c9016599f61008e314f72b39";
+  sha512.doc = "76e504743dc8b68bb7749952fe63b7ac4a0b32f36a3c4b85b5391bfaeef1c9d4045f681e2a7b50786da1a7807126277ccc61657bc4dc2caa9893d858ba71b4e4";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.2b";
+};
 uplatex = {
-  revision = 65305;
+  revision = 66186;
   deps = [
     "atbegshi"
     "atveryend"
@@ -44187,10 +45437,10 @@ uplatex = {
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "uptex-fonts" "platex" "l3kernel" "latex-base-dev" "latex-firstaid-dev" ];
     }
   ];
-  sha512.run = "aa49098049ae86a286ccd14a3a25060104ade1ecfa1f31d44c36398dc1d9130e78ee2f3dfbda067c5cda54275a5ace7fdfa66ff8a4e30ab2cfef32c52d4c8781";
-  sha512.doc = "373eaf7028b4528b1e7d1be399d0bc05b477fdb8a429f845d0bc7d767bbc7ff6a991174c8eff0e346a5b4c0a3dbee24b633df97656dcc1a1c5e5f80487f73a64";
+  sha512.run = "920d770f36992085250b38bf8d58c59fab7ac8d121ad171612b99ec7f91369f9f31c24ba5e5402552e2fe073a3913b529fd013be1a70eb37913a9731caf69895";
+  sha512.doc = "8024c2dfa393ddadffd5c35a27542d3f27a030464306087ffc28d65c2e0c704e56143f4f449f1d59ca1f19f007389256a4a23c2f2405855a5aeeeb11bd4b3802";
   hasManpages = true;
-  sha512.source = "bcc1d990342f27296c842a0cc1e35e1f456e7d70f44ac3db691939675ee787f48e87ce03e0a0625d69524c7e47e0893ff2b1eb678a9b74a63bb3d644cb8bb172";
+  sha512.source = "7fe21c87bcdcfc7ba7221a51c59eafd17a767aff04a1f267682167962f2a75a34e12af5b035319b6e413ef1037533f2bc07e7b7d21cda63355ef4185844d51e4";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -44198,6 +45448,17 @@ uplatex.binfiles = [
   "uplatex"
   "uplatex-dev"
 ];
+upmendex = {
+  revision = 66381;
+  sha512.run = "947d733e5b96ee6a621e9686357b8c3f8638c0bc482f4efaac87a72117160f81ad7aa0d34088e61e67982b345b56ec478ef3b6a49865ffb3d5512a7bf18d2b8e";
+  sha512.doc = "ec4d1670ff84680fcab88e29ca5f4306f44450ccca9cba06282ad34bd026f74b46d166724a06a313957ca8d798b0c296e848bb248ad416597a99afb16b4b5a0c";
+  hasManpages = true;
+  license = [ "bsd3" ];
+  version = "1.07";
+};
+upmendex.binfiles = [
+  "upmendex"
+];
 upmethodology = {
   revision = 64613;
   stripPrefix = 0;
@@ -44227,7 +45488,7 @@ upquote = {
   version = "1.3";
 };
 uptex = {
-  revision = 62464;
+  revision = 66381;
   deps = [
     "cm"
     "etex"
@@ -44248,29 +45509,29 @@ uptex = {
     }
     {
       name = "uptex";
-      engine = "uptex";
+      engine = "euptex";
       options = "uptex.ini";
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "uptex-base" "uptex-fonts" ];
     }
   ];
-  sha512.run = "9255b1ec06d2b1e214dda666b5f37df20ce98095a3726e2e114082cd0ebb13f9f4e0d46b8cfd28da528a6ab68896fd62a0593e02b5072e6c3196937b098bd626";
-  sha512.doc = "2a9d880635afb3c848893c371d3aca7796e6aafb11949047a21e9f0df73d06b69d3cc84cfe28438f0424722b41b795be913e79cc01b16dacd5370ec5d1e9ac5b";
+  sha512.run = "fea7d0156a1f8b8a66fc061d454c1318fe98e6c1a3c618fd9e31fda4246c7a55684df6e01b986d0c296a7a9458c3489af0e4bb2142341a95e5279da97668b4a1";
+  sha512.doc = "edd326824f93b2e893ac9bc7b6f498178427477138c2e068a3cffddfef5ac658cfad2671454caa6c222bf165a2d4a16964fa67eed86c01342d119053f31a3fa3";
   hasManpages = true;
   license = [ "free" ];
 };
 uptex-base = {
-  revision = 65802;
+  revision = 68298;
   stripPrefix = 0;
-  sha512.run = "30a8e0cb5eb3721e4bd5b8e3f04ca40a1aa9eaec442b77c9d8c06d2cfac01d63a1f44a785e93f1ad7b0af45008a112e6cac070406d78494f7970dc85db096977";
-  sha512.doc = "87b22290d4cad4fdc34a7315930535a4b3dfd92725ff76407fb1e679c70443cb5ef2273f37e5d7e4674142f9d482e1c2284dea976c7246eff9233a2e3b4c5fea";
+  sha512.run = "793b51b536fe43860fa096d590bb64cc079f089effaead0d97262d1476442fb6212d30fba092a207797fd6508bfa24c3c3ab448ce4d531700fd8cfb08e4e8c24";
+  sha512.doc = "93332d9861526dba5c338bd14a20cb7e6e95aa6666417aa92dfa99200ea735d8ee0b61d8da1eb09c758b9b179f613c51a725abc997275905b3a832580302df51";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
 uptex-fonts = {
-  revision = 65657;
+  revision = 68297;
   stripPrefix = 0;
-  sha512.run = "c5afc2563064da4f84ce962ab09966a4907bef73d776fa8c2851b7fff7de2bdcf0616c88dc75310e41c163ec9ce03fa737d87ae65cce41116f63a89be07c9033";
-  sha512.doc = "7ed628337cba71518e3319c7c427f0eb6f825a3173d29ce217d48e8d49e5ddae41ac2aff43da9563f326341b650ef05e4c1f779b76e2203aec5b282cb4e30309";
+  sha512.run = "1802a5ff347ee4b9eabb93e4da5881a19b9861e3144009839d7779f61bf362dfa5be2a37b42b64041af7083ac756aaf788ad9a69cb4ba97887b21e78f6a794bf";
+  sha512.doc = "5cfc4bbb9ba533d38bc52e5274c0cc42bca2a2cf6c3ddb623eb4f48c9a49275b2a6959311935fd3e1ca32ce775da6bf0c531542a49c31039c438000d1d15c8ab";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -44280,7 +45541,6 @@ uptex.binfiles = [
   "upbibtex"
   "updvitomp"
   "updvitype"
-  "upmendex"
   "upmpost"
   "uppltotf"
   "uptex"
@@ -44436,13 +45696,13 @@ utopia = {
   license = [ "free" ];
 };
 uvaletter = {
-  revision = 66335;
+  revision = 66712;
   stripPrefix = 0;
-  sha512.run = "81cdfd20ebfca553098a9b7cee7fe726bd3bc77ee61624d199a094e7876155a9ef9e9284e543c1adffd092e9618babab5ae896b2f56d8e2864808b5dca0776fe";
-  sha512.doc = "c07988a7466c3dc96c51412ffca508bbacf392824ae87002e618a9b1de0a79497e11bb6c604a9e73762bcf5be8ffafafeb49c09655c4ae9f35a58deb0db6669a";
+  sha512.run = "df759bb1a8acc3a770d9c4f2753c7968ec2a4bcdb2f8d68cd97e25e36a1a72e4ff5d16da3ce69059679eecb10d5de56464297159c7d3b0b8e16684b5cb97108d";
+  sha512.doc = "d5e076da3feb4904b0af7b6be1db59c2454784f5d9679f6f6cbde3cabde6b70b075d83126313f5938dd9d153344986a6e8b574e540b39c4fba82d513e2d61b61";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.1.0";
+  version = "1.1.1";
 };
 uwa-colours = {
   revision = 60443;
@@ -44599,13 +45859,22 @@ vdmlisting = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+vectorlogos = {
+  revision = 69010;
+  stripPrefix = 0;
+  sha512.run = "cf9232e47bd3deacea13e858f4b85b45000d09f1df7fdc09bd84ed2f30de669b5d79d048a97d9aed05ccbe4ab65977becdae35b1bcbb2bb5efd2c874d7d71d22";
+  sha512.doc = "21725294c097268bf0403c9cd7cfca5a8e9541cd6829ab65c561ed4ce6e111943000e0bae54aac328262524bd19ba75e90979660948631103b4a97e4ca63930e";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-30" "cc-by-40" "free" ];
+  version = "0.1.2";
+};
 velthuis = {
-  revision = 55475;
+  revision = 66186;
   deps = [
     "xetex-devanagari"
   ];
-  sha512.run = "451023c09755f3aa884128a6ddd5e70a6820724de66f8923deea812a8e28c337676de95aa98a06a96013502fa24e9855b24977603c675820b1d5a0a056fe4cab";
-  sha512.doc = "e17270b0e427e3ff02b1d43e578815ec37c0046a20ceb898a357041f9184044162077d9fc64f66d955d774637a8d2ec59d31b624dd743113c972d0854075df10";
+  sha512.run = "b7901813517790a92a921b1202c39a058d53a4159634cae79960ec7ce2da08acb757b307b5066ab1251e4b460234fd9dd98c2e404c05fc6384c656472302e3ec";
+  sha512.doc = "06a9330410b55052759e18efa8720ef65f0f3dc8a2f15d3c0a0c8f70edaf8de65eeef8ec10a9a376b4b285b1c8f619278f68e9a2bd7ba1622da72b6ff488f8f7";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -44652,13 +45921,13 @@ verbasef = {
   version = "1.1";
 };
 verbatimbox = {
-  revision = 33197;
+  revision = 67865;
   stripPrefix = 0;
-  sha512.run = "dc686ec1e86c877a6f1467f4935f2337aedfaec32bdf867985ef05405569572c72d3593e75580c72a7bb3ee698798813094eabf738b3157194517839fbe47de5";
-  sha512.doc = "9f8fa05294b68fb0994f01e36b468d341b76aa97bde983c7eab781c92c8bfd898033235a328a1fa858dee457f515d6640f780b330600418f2a7eb0fb45f0ef3f";
+  sha512.run = "a2520d96ed713f3e82135395c7437f1bdce04f539ca924feb1468af6a9afb9a2707edba554f073175bf01d279576d7f3b96cd8a69ff7cd6b82f6fd9dde537f3e";
+  sha512.doc = "c9c4a8a720a9dd1381a128480312ee416e6332d7bb4cd6f59c3f3c13f2c4ba5e9445f5659ff4b64cb40059fb117ce79b27b62c07b70a81ad7e3fe987f7dbbc41";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.13";
+  version = "3.2";
 };
 verbatimcopy = {
   revision = 15878;
@@ -44698,14 +45967,24 @@ verifica = {
   version = "1.3";
 };
 verifiche = {
-  revision = 64425;
+  revision = 68023;
   stripPrefix = 0;
-  sha512.run = "f37ab28892be08ae312c66c9b70b6392f401b61dd25527f10931e02db82879a1a7c26ca060652cdbfe48522abd760bdb80b1d9ac535e59871c0aa7575ef24277";
-  sha512.doc = "4767f56a36f7ef86ffa8f02934c460bb56543698090f7f411e529a44b99819d350f2012af18fd647886551a00f066bbcd252851f30b319e041546145edce71b3";
-  sha512.source = "5e6c88b4f73463df19ca48b189f2334035b82a7a32cdb73831377d525d9db373b1dcdd7bee5e96ba0a12a4f1bb211f7208f87571505269c60f346284ef19e45b";
+  sha512.run = "7a2804f2a963bff59bf4f566595c6b89adf8534ad7511542643f752eed2183ab3dc377ff70eed60a48b615a9f159a73d352ab2e138f7d589e9163a8328fa673a";
+  sha512.doc = "79c13fb6dff619f75b78433b628b4a75c171baa8859ae8e58444f1c57316abbda24cdfda4172a0b639b136366c4e6d6fc5ad5199b4cf86c89214e82dabde4cf2";
+  sha512.source = "7cacc48cfd6a9fb94f94a7950e3dea065b37dff2dfee6cfda29950e2baedb0ab2c4736f186facb3b23e37e406d505d4128ef6b24421ff0ccfecd89c1b7ee08ab";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.0";
+  version = "7.0";
+};
+verifycommand = {
+  revision = 69389;
+  stripPrefix = 0;
+  sha512.run = "c977f40e851a47dbb329e96df9ac528aa9a2419bbcf34470af1110751365e219aefb36c6d630022b8d57949ea904e12dbb560329c526b3e35bd101c1032e38ff";
+  sha512.doc = "69431fb242574e7ee11200904483eaa1a52f5c621d5c7c6511649a80c71d06a5527dfaefb90a74929b81b0cb2559ac136e1f6fe7321689a296a040f6362e35f2";
+  sha512.source = "8ef472771c5719e2473702f1a871ceb3512bcf557427e31a5c508701a72e813e6390fee4758f5cd059e27040c55fc5e9a9e094911d82c10d57351d26f851efae";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.00";
 };
 verse = {
   revision = 34017;
@@ -44736,14 +46015,14 @@ versions = {
   version = "0.55";
 };
 versonotes = {
-  revision = 55777;
+  revision = 69249;
   stripPrefix = 0;
-  sha512.run = "adda8d14021b5dd1fabad9348b0a9c1e6a1c0c77030afdf304a014883e19600e07ba64b4224319470b418d2822ccc08413dde791801f3f21da34b0d08c21cde2";
-  sha512.doc = "bb2dcb4163ca05501a73b45f2dad0d8e410525805612ce6fd1033fa4773c6e1213edbcc51e541b66545becef2a160c8b403ed6a54c882421ef11293fe222b639";
-  sha512.source = "ba566ae4827fc08f2403657f869ac3581c1f00daf70b4859775d0fe1c550212d98a4f78e3ecb0d74a5c298ef054b22c9ebd0bde410ccd241d6b863caa364d6fe";
+  sha512.run = "c430ad5138ec17c4a5a12bb42149bf260b582f2a8b3c9fcb15356c3ed87073b68063df1ce8d821c456c0ed0e154137a2e3ed54b83b49a859a08dc1134dc6b559";
+  sha512.doc = "3e4047566d0eb6ade7e78dc0ace0f540b56a6bcb157f613f6af0f7fe5c8ff9e47e526d68ec11b94f9e7ef3bce8fbbd26fc8c3ea115b2d1454e750ce7e15641ff";
+  sha512.source = "f986404efc03af8b3a58f07aefdcc678e0f4b37ce25f8772e145e08bacb1ebf330361d56bbe5710611d09b01d31b82e9c736c1a7419a0dc56f0fce3a5c797136";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.4";
+  version = "0.5";
 };
 vertbars = {
   revision = 49429;
@@ -44781,10 +46060,10 @@ visualfaq = {
   license = [ "lppl13c" ];
 };
 visualfaq-fr = {
-  revision = 61420;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "ed7bcfc871d3ff533d954a74bd0212a72349fe0317258edfae79941e7f7cfd47e13de24acfbf524bccddcc66f6e75e9491b25339d26d513cf8170853e1e7ebd4";
-  sha512.doc = "2cc2f861a505f4a705ebb03481c00ba6ecf394041e0fcd2a12bc3c96d2a3ae875fd3ac3e236c03c15e2646228945c036647031a0d95377a2373cf9086e5ec888";
+  sha512.run = "06a9f22c86f54883ce55b23ba81315e53afed4f7ed2b77d13a8958bc18e5a96cae849a327126843865b6ecd55d7153cf261ab784625b9a848e7dc661df95fbb8";
+  sha512.doc = "8d18a3712c42eb7921d6e0e7d29ac96c4718386643bf967b3c428fe5846830dbaca382822ae3d23523dda2e4c7d5f0d96c137412c2302f5e634471d83fdc4547";
   license = [ "lppl13c" ];
 };
 visualpstricks = {
@@ -44804,9 +46083,9 @@ visualtikz = {
   version = "0.65";
 };
 vlna = {
-  revision = 54074;
-  sha512.run = "ce37751f6cbd088e8faffb0c2ddb6d8bec9c0d1f0fa3a4ab0a3e5f2517e6f54fb6903f441cf72398284801c9b9f00d684d6a6555e2588ae72679050734fff8c9";
-  sha512.doc = "f46c2e29da8f4edbe544d41b05ac3ba13cb5e3c09d299ce5ccb85207703c99569df94640c651a1afbcafcaf4669bb73157945f8dfc1d2b43ce5c0c7970c35544";
+  revision = 66186;
+  sha512.run = "6c66717442bca3306e23f5d546e17929240ce9626a562b9e56512446998996d38f83f78fbb39e46bde0b9faf0db7eb0c0218c79e1d66711d6cd3c64a8778edec";
+  sha512.doc = "921d76535cbe7e940617355c74b82acfc61edb840db8ed9cae1aaf987fe6b83245505048c7c550d59829b204f139ae1cfd44601435e2fff2b0d5230b45a27b77";
   hasManpages = true;
 };
 vlna.binfiles = [
@@ -44925,23 +46204,23 @@ wallpaper = {
   version = "1.10";
 };
 wargame = {
-  revision = 64797;
+  revision = 66713;
   stripPrefix = 0;
-  sha512.run = "b06a6c8099942833cf1df089a6f2dbbfa8416a6f3bf74ea5d5411c098f1256261eb9101f95d1a61937552fe5141ed7462e774e1ed9876b2c03330a92162b4c21";
-  sha512.doc = "c75c95bc543167b74466eab3b0f9a030165bca914757a5c281ea44a4cf32d1eafa61f2e6d53e811d81dbdac36942f923fc8fd82e77e718b230cfa1a430bf77c3";
-  sha512.source = "16e6ef9e59d0469a037a14833e234ed46cf3e693d5f3468bde9519585f2e0ca659aa66717f5a07f506ceb3540079396fc397e75508ecf06470b20dfb39a970e4";
+  sha512.run = "fa9965a291573796cefa9c64d7c76894b29460287224699f6dfe708f218b293ab5c5daad19b70e949d1efff0db4f76cfe90606ae93fa508015114607338d8f66";
+  sha512.doc = "260474bd6f44ad52b56fb7ed2ef4e0de95ef455f12cc09e8fa6c70cacd7d0853d34fa5ac8fed34912241c9aaa38f079119683b1b5fd90e82d635238d20a940ab";
+  sha512.source = "17bb297856b2c483ff5d44851a2c59f445f35137f1d535330eaad161a0470df64e17634d945fb344f61f4aeadbe3068957d41dcf561c2997017f422f47cfa5d4";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
-  version = "0.3.2";
+  version = "0.5";
 };
 warning = {
-  revision = 22028;
+  revision = 66616;
   stripPrefix = 0;
-  sha512.run = "de3d9ef9a6dda4022fa8f04a0be509d3e9e583a539a3590cd30527f108ff739e0c1dbf8c5945e0a72902b14c2616e26d41a05f23957e9466c788fd228ac6b082";
-  sha512.doc = "04c8ecdd39f2e0b3aec8cf6d9235acc7e10c8e182bbb2a7b30a46cf9ce7c08fb0fea21956356b3dad500a5a58c7a2b63e9471b2e8fe626b17492f721f527ce72";
+  sha512.run = "443a02ce9aa004379aac94091c4f3014042cf2826d12bcffaa92f24ebd3a023ef314d05aec00947db74175e03e432fb80b7060b51c4fc310d14c15ac86606abe";
+  sha512.doc = "561c4aa05df7143f68067d22b337f1754482c40eb851356f70887dab86b3944116f2e7d9f3a83e4439c7b0f6d6db0ca61371ee049758173c35b70468bd0166af";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.01";
+  version = "0.10";
 };
 warpcol = {
   revision = 15878;
@@ -44994,12 +46273,12 @@ wasysym = {
   version = "2.4";
 };
 web = {
-  revision = 62517;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "edac6079f0de1904e008c2a5fd7ee697f32c5324e3b9a7a4d8997b97ef214bfa1a787c84ecd4bcccd38e88c58b9729b4c5684ab58bbfcc97ce159dc5c2b5b312";
-  sha512.doc = "50ae800de53cecfa6f656ba41d35d7c486e4cfe4b2ed42dd26dc60ecaa9a0b80c178dead765a7076fcc6141e8a2158e9b0854ceecc2cbf7b2e85c23cf22a7da3";
+  sha512.run = "cc8b2b6525ef1ee49162dc157e8d735225f5fc3bee54e56ac01ad47f85f639e4c43b4409e949d68804e650e243da0a8a6d098ca7c37587f14c810112cc82abee";
+  sha512.doc = "ed04fce861ae2adda602a2a50d560cc9a5863ab1668dd9512baa96b6c37acd8334e4800bc4ca853c0b1f58bd3a643abc82a96f31de9d4980806ad0572ea2a92a";
   hasManpages = true;
   license = [ "knuth" ];
   version = "4.5";
@@ -45031,13 +46310,13 @@ webquiz.binfiles = [
   "webquiz"
 ];
 wheelchart = {
-  revision = 64373;
+  revision = 69040;
   stripPrefix = 0;
-  sha512.run = "5119fac9b5b6b6c65771184da8dac9c0f27c4c115aa874eefc2d322e864595e9ec4a70dc782334bbfaa9eba30ebb1e079f914453c330d46f898241c34e9e9e54";
-  sha512.doc = "a24f915836ee36150625a4cb297f80b66c6f4ad3231043300d438e0d522942322602fb39b3026faa58d1ddb48097af54ca71b729c8ccba15d0cc4ba9ce505b21";
+  sha512.run = "17660fd6ff9cf02bf01b95b505128aac52005b4ff59fcc1b28c64e9870aaed03f8652555cc2c323453441c83e696a0c5bc281281a1baee8c6ede1e9a11dc376d";
+  sha512.doc = "6ad02cbf669800f8a9d81cfd3ed3abcfc5b8a2df6040d3eb6ab0dc1ffb01875230be13959adb1ea7dde805d4ffb6bd9767de1b275479636f245e1140be07b16e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "2.0";
 };
 widetable = {
   revision = 53409;
@@ -45050,14 +46329,14 @@ widetable = {
   version = "2.1";
 };
 widows-and-orphans = {
-  revision = 66534;
+  revision = 66753;
   stripPrefix = 0;
-  sha512.run = "df6534b55c029166cbbf91dae1b19b083093ad5c694b8a9dbe50c724fafb7f9ada320b298882ef3faf6069d9218d0ac70f6a0b0ef95a62f707232107efa2840c";
-  sha512.doc = "6a415e3068a378cb94f9b2f07866e2e515248691628ea838c7be8b43285b7832a49fd1842bb9b6767c27ab62f694b76998396cc51079da46584a2fe17c1cb6cc";
-  sha512.source = "bc1ab6f2c3bb52b25e9e1a39b0f59341710ef02e1a20e456d09a53230f3a312e7eea64998481c6063dabe97cc91cd5c97c51ba907fde9818046acfd2fd1cd30d";
+  sha512.run = "0861e1449011f6032d847c5bbf8d06fe7b8f6d320dcb0f2281ca558dcb8ef1eec561ecaf622f957e6a0c673223b3aef8cbac4663930931d945f18137d19f4e45";
+  sha512.doc = "6105b7306ddfcd91080bdb682702dec2a4d1b094e1b8c9bd0a28bfd185bbc9a0bc4252180101b2674e702d645fba31420d12cddad2ff3db6703f6e83042b8a4c";
+  sha512.source = "4eb52ec1f9f78daf90f62b7f88ed96506069fbcb22c9bd33aa853142ea2282dfc4b5ff87d6280ad82ee3d9342d4c5737e91cd7a83416dd1de6b26f2e89062b2b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0e";
+  version = "1.0f";
 };
 williams = {
   revision = 15878;
@@ -45077,10 +46356,10 @@ willowtreebook = {
   version = "1.03";
 };
 windycity = {
-  revision = 61223;
+  revision = 67011;
   stripPrefix = 0;
-  sha512.run = "718ef4ce03405443de94581e45f8866053ce4b5d6b7c6e4576c4664d42adcf50570240fc8181f795f59733b94c648e15cc98ef92e4ae59843093663511829c4d";
-  sha512.doc = "58107956e367dc318cc23320818c43f3fa91b75f69bc186b107687293f52c1c0cffb04912959e1a5c8d8abe3bb848c69da38ec621266e7a94b378a11d4c759e2";
+  sha512.run = "f83fe1f694d3fd448484961bb23c7c220ccb5b0f8982198660b5770140c8e9120fcd1f095492555f00533039039d11b3d2695189f40b716b17b2c2acf2e7c553";
+  sha512.doc = "eff7b0bd0603d563d077842e77fff4b9a104d008724d3e81f58cb26ebb77f8e61811f5a74d9cf2d5d62f3351ca692d5028cea9629ac1a9e8dc6263637c1cb616";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -45094,14 +46373,14 @@ withargs = {
   version = "0.3.1";
 };
 witharrows = {
-  revision = 65841;
+  revision = 68047;
   stripPrefix = 0;
-  sha512.run = "ec6cc4905751b7ec8fdee871ad72851241db23552e59bb0e66e931d849c6ba3d99d78b93a13aa96359588439b78534065a90f786bddaba5d243cd400438be710";
-  sha512.doc = "3ea2242ad99d728dba6d5171ff2277686f6f5402900fe80a6e84c3b6e3847d5070f31f68482e0f2de09b10401d07c2db60892bdf8bf4ebc450daf2b21203edf2";
-  sha512.source = "511f6ec6a396298e004b7943040adf71d8b1b8974bbc8650e6921c064d38375e7c01a978a851ac52fc5ee93834e9c5db0ced7f468cd03126e16e90267a497d40";
+  sha512.run = "1ac6ec240be73608724793040cd9f716b61a7a197e30b1334ba81c3791d7714c0af36c509e9928d0dc4a11bf8cab5c0be373a7ded90f0c661e9547b553b57f62";
+  sha512.doc = "6b8993d636328e90dfc6ff622fe8536bc795a1cfd32372b6268dec38910435d19a8b85569e5fd7568387059ca9def471cfe6e92fc9ebdbf5ddcc65c789c5edfa";
+  sha512.source = "e1e031bc4a1b6bce4eeeaa14f0d0201a5578c3d0492a55d29aa40141bf4519a942c839f569b8d3b72a013da17f95fbd0e6edcdff3d5f971771f0534a36cb645a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.8a";
+  version = "2.8b";
 };
 wnri = {
   revision = 22459;
@@ -45121,6 +46400,15 @@ wnri-latex = {
   license = [ "gpl2" ];
   version = "1.0b";
 };
+wordcloud = {
+  revision = 68209;
+  stripPrefix = 0;
+  sha512.run = "7e4f6adb72d2a7b3cf740f338e63669304ac33d90f7fa09327cb3e6ee882105c92786656d5af742de0d28717cf45f4fe0900ef0c48faf1ddbe57af322959c8d7";
+  sha512.doc = "fbf28ca6311850020c73dbb1a6a60bf5f31387a2def4b01f348674e678a3626cfdb23e2826a30db8ce021a5fadfcc26027584278110781a99ee26337c4b1f642";
+  hasRunfiles = true;
+  license = [ "lppl13c" "fdl13Only" ];
+  version = "0.2";
+};
 wordcount = {
   revision = 46165;
   sha512.run = "3c26b3bcb4c3edce8cf9d6628cf6b89103aa1ae454b07c1e963ca90693c18fb851772a52082a23efbefb51235005e558fd553afc891a472eb39cd430c97f861a";
@@ -45132,6 +46420,15 @@ wordcount = {
 wordcount.binfiles = [
   "wordcount"
 ];
+wordle = {
+  revision = 68170;
+  stripPrefix = 0;
+  sha512.run = "fe32704e323185cdc9fcbd3e87bf02c4c0870af501de731ea1b05056cc7e57861042b111a3307597969351960bb99086f99f8577b70e8e6b31cfbc9cf8825157";
+  sha512.doc = "38f168ddfdab5e786a4ad5b42f726e7895178e949c04f75ffd2f14fb42d77bf6e8afe22df5b87fecf8490be61aa3edde0dafaa91191f459e4378878aa575e8c8";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 wordlike = {
   revision = 15878;
   stripPrefix = 0;
@@ -45152,10 +46449,10 @@ worksheet = {
   version = "1.1";
 };
 worldflags = {
-  revision = 59171;
+  revision = 68827;
   stripPrefix = 0;
-  sha512.run = "128274fc2cdf34b956987c85c4bd00e25673879a3c701965db5ee7d240916df79133843991ea69e0924fe15a3f88140e8bb1754880bbdb1d9eae157ade92c260";
-  sha512.doc = "8cab4b4abf08a0253a3ffd1682be2de6fd5a32adc48c4e195b76899074d3fa415ad77ce347a17afaa812040de59a3d0947e35c6f3872c98edca0fd218fa79f20";
+  sha512.run = "662c7b2cafb1764a42a94707f350ffe0e4060120071d715c3c1cebd21b2c64f2ca0896ac3c9c1e629b2fe4b057bf0b890805747a668b6a8c04d501a4ac1ca1fd";
+  sha512.doc = "16948753f069aa0e9f0e19efe9072c35eddf4bd20e32e6a47321a93bd3117f2206d44d3a76bee1581f7d4dd7e392d2bf1a4fd0ebb83d0d7b6cf207e69a42c7ac";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -45169,14 +46466,14 @@ wrapfig = {
   version = "3.6";
 };
 wrapfig2 = {
-  revision = 66119;
+  revision = 68164;
   stripPrefix = 0;
-  sha512.run = "af17223ee8582f8dcd3b30a91db66aa4ea590f2b0d588750cf751925f055c5c06c101806578f0f9c775b22b666c72fd9e8189f0f56461c0e2a57a6eb387eca52";
-  sha512.doc = "5fbcff625c8ab40a21b88c1f3e4c4b692a6b99e2d3e932b0094fddfdc0650a0bc6b30f25a069db005c93b6a8fea09ec8198be3505b0cd576ece361d3e1220b4d";
-  sha512.source = "70341613c62346a66aed788284c7388ed34f052dba648fae70ade8fa1901bb95781b6ac365f281212b0b7a226fa3b177488bf7b9ef9d3747319dea20c084800c";
+  sha512.run = "b2fa531e9a8deca8741af501073e7c05739ccd889433fa8355bcb4dca34a3efb9b6690306d884a040ba1dd076ce5c99e3db5e7fd76f30e951eea0ea3ad00629e";
+  sha512.doc = "cb3e0264c487b53f093f90ded250705bddb70a68557bd7cc03d66baf8731481b8e94055dec140bf7a510a62293eb4774ad4c95f472dd3248289f246a87804d11";
+  sha512.source = "05066fda5a68577758be7ffe4743a10600093983e469d05ab85e8ce1ed8fbc5554bc01f35d361aaba374645e0b143cb92aa33f527b7539a10b34a09b2659d2ac";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.1.1";
+  version = "6.2.1";
 };
 wrapstuff = {
   revision = 64058;
@@ -45189,13 +46486,13 @@ wrapstuff = {
   version = "0.3";
 };
 writeongrid = {
-  revision = 65700;
+  revision = 68863;
   stripPrefix = 0;
-  sha512.run = "b65d0b5159fdf6c9f84318770c765507b832d70e9646eb85456f3917988ba0b8d67add019a993f7ac6e58276a06dff263155b0d2759de5bb04ee4982f2c14187";
-  sha512.doc = "d5ffefb363efb6736112a99db98a27aa4e7fd0ccc6168a0fe6413443d7854ae9e157e660973fc9deec074362e8faff4285f28bc89cad1d19c7e8d9a02814bc92";
+  sha512.run = "5e97c246141838a342192743411ce0d3cdad4924433540cf5d1faff7f2650388eaed5f045c60ea5bc69ed4108aa23863f38d812ae4702af1d04000d96d112dd1";
+  sha512.doc = "2f4c29ce5949d3f10b8a8971cd62c34a473038f211bd1cb947baf675d9320fa7d4b61931a83675acf6f00534656d827fcda4a5fcfa51b69052c8f82a7625d62d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.2";
+  version = "0.1.5";
 };
 wsemclassic = {
   revision = 31532;
@@ -45216,13 +46513,13 @@ wsuipa = {
   license = [ "free" ];
 };
 wtref = {
-  revision = 55558;
+  revision = 69214;
   stripPrefix = 0;
-  sha512.run = "1c946778722ba4e7014b98447d1c2c5472b34d916a4aada1ad1098ab05d67a1466fb181f19bacde5fe18a0b28a055a87b626893d6c49346fb665b4595910401c";
-  sha512.doc = "b1ebac65ff228e7a6221240ce90d83121d726959d95f2271eb3c6597c7740a376da62371fedf2c0bd068e660950167d4b09cf22c01fd78c337c10402eda63bd1";
+  sha512.run = "abdaf96d5c4cc919fcaa5343d25243266f86dc079cf701d71f047b01874baabf20a0c7972a6aa863c7f9eb9a003eb5a516714d57fd453574e7a2c8ee2e500e7e";
+  sha512.doc = "f248f448bcd110c59d5dc19c67d4192a20d4f334c6f17562d34db0dd4ecbd7c6414ece9ed4e55aaf2ea42a0e5373fc5f25e8eaaae16b468687bf5c2d2e88b908";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.4.0";
+  version = "1.0.0";
 };
 xargs = {
   revision = 15878;
@@ -45253,22 +46550,22 @@ xbmks = {
   license = [ "lppl12" ];
 };
 xcharter = {
-  revision = 63057;
+  revision = 67742;
   stripPrefix = 0;
-  sha512.run = "e3b6de6f9ab168b90b2351a43066e144c87efcd648c8e39975870040662bed9f5a2d033d23c28eed2b446af24abfb893ac550a52870ce5dbcc41d9b26aca4d52";
-  sha512.doc = "3a2e88d313293b073d0eff63dcb6984c9eda7eb5813aff6267615ac2f49dd9b47b977e196c1769353cfb44b1b8c07c3e02146eaafa99eac416b049598fa89e60";
+  sha512.run = "9e71217c7df0e41de44aa8cfe09b36955910ccca4337d878b0f18f4352f52d14b9dc1cafae01e9b06ed1a094282bb73b25e5328ccbf60e6070b57262e106018f";
+  sha512.doc = "04b1aa9efceb7b87551ffb6743605861ebe695118376940fa84e8c3a8b0ff7c073d86850713f8df98381c674fff210bd2f4dddfd82de4f152945207ec4c44354";
   hasRunfiles = true;
   license = [ "free" "lppl13c" ];
-  version = "1.24";
+  version = "1.25";
 };
 xcharter-math = {
-  revision = 65686;
+  revision = 68992;
   stripPrefix = 0;
-  sha512.run = "099096013f0e6875e879e5f0c5a646df374c718199e0a8394d0d1db215e2e65aea7b484818ecdf1be72064d8460fabcf46918b5326516c3b887b62ccfd7bcfbb";
-  sha512.doc = "c6b64e8ebe5d0aa41aea6e5cfdabb2cd62eeb924e8de0b4b2b29dca4f8a4970e643b3c81fcbdda52df3a4cc1220413430cadde6caece7db3f6312fd65814b3d7";
+  sha512.run = "82830e9740200cddb622b30b4c91112462a2c429e501f354f54abaffcf8f64186cbff3bce25b889508c6c28732ca2c0a2ded06a876260903163d02d1260354fa";
+  sha512.doc = "c1bd25aa3d1aa195ad97f1228dffc73889d06ac45391ed725696372c7184672f6a14b1f1dc2f4410866a6cc0119219817f50bd78c602846f067f935f18c538ab";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.36";
+  version = "0.60";
 };
 xcite = {
   revision = 53486;
@@ -45300,14 +46597,14 @@ xcntperchap = {
   version = "0.5";
 };
 xcolor = {
-  revision = 63563;
+  revision = 68864;
   stripPrefix = 0;
-  sha512.run = "936241be2d7eebec5cb7e1edf54a9522a14d58d8a4d2b339b912b08054fafa33e2cc158360aed9fe1db88db23d68b17e989ad70b90d0fbb04131676ad981e3c8";
-  sha512.doc = "9129fa37573a55ebd878e6c5b52ee3a449375e55dd0a87bc85620b12ae9fbbdfadb92e65e5cf3f8e3e7fbd5512107b55d017f8df8db317c50c0f0248dab4399a";
-  sha512.source = "4e3f5af10fe8797073f78e7b0d8b7e89e43427209834c4211fd36d0b3594975c13577a806f090e8153c12e00896c6c5d34ce2be8c1aeb123568b0b5c08b89880";
+  sha512.run = "6b7d38d631f89f4c4ffa9f447a16cef6169c3e4798c5c65339fe48f9318291373a49ef9da8143c453fc5fd9ee853bad53b5477b248ad5f99763df9ea28638c78";
+  sha512.doc = "1dc8355913a62657a2b50d45a6fdfbabc8a0dbb835ec5912fced934350b21619e8081b9e9a4774ba48ec3c51572c7f95f52efe92c85344dd81da0bcc81e73809";
+  sha512.source = "98fdb68955160820347af83f7f44ac97c3a61b9732af2a17980155c103b6d6ed9037504ba99aeeda5608fea84f82ac871dbb55d9de334943a74aa617caaa70fc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.14";
+  version = "3.01";
 };
 xcolor-material = {
   revision = 42289;
@@ -45379,14 +46676,14 @@ xduthesis = {
   version = "1.00";
 };
 xduts = {
-  revision = 66475;
+  revision = 66661;
   stripPrefix = 0;
-  sha512.run = "9d658106d7967f25be235aca3421d20d601b3d8c642a1449df714ce2ed22953f78bdd43158628ce51793428b5d6c38f75beacf20e06d2f076b2c6a2393280831";
-  sha512.doc = "9d4d2bf5936a686053015f62a77de81948ff391f498c9a36d0ccda0da49722aaadc07c4b58f92d1ce16de3e197a8763fc345f543edde65c7dd2b53cb68408dc4";
-  sha512.source = "c52367e3fc873b50a8c919f1492392f731d9770f8474319e8e5aace94a7c96a7d84036722b3580ed323fcb7f450a1280c3d1ba448a30f71fd0a0fa056384fb5a";
+  sha512.run = "8c2b0b04ff619c18961014213db4a509af10d46cdd5177706021675eda7d408be01a3f9c9aeb18556b59535dd9cf8de7d9147c36c57350ee3fe8e02e61f416d5";
+  sha512.doc = "7e89d160b992eba61328618ea463014c52f861eb1b952f05aec2860878c226d0354470522468ef79c710486c0ced8bfe76eee296035a752178fafcd380f957a4";
+  sha512.source = "3227078ea75cbc6d23aae9086f51bf86b2d7fc42d237767ed90f915a6d2255f6e2f816c49d77caa1d85fe0f623d99d3e76dd458db699b458df5c28f3fc5fc092";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.1.2.0";
+  version = "6.1.4.2";
 };
 xdvi = {
   revision = 62387;
@@ -45515,14 +46812,14 @@ xellipsis = {
   version = "2.0";
 };
 xepersian = {
-  revision = 64872;
+  revision = 68117;
   stripPrefix = 0;
-  sha512.run = "bb9f3e4df9421818ce1e77d72c790c33f0eb11452eba38e48dfc13c7313bccd63cc11b1c3d1aa383f1ca778bfd3f9545eb20d899c980522a255b334a7545d2cd";
-  sha512.doc = "3d0b3f8234b01ddcaaa7d808aae2eb48f40a4af15ec87523297b5afa971478eb143338e407a1e7764449bda920ea7bcff0f0894f1e875524b2e44c3b3bb568b5";
-  sha512.source = "3924d7f779150aae6d0b2a4a2e246f2867142358e21146fcea10e0a82a598511aeca8f30089329a1328a4c8cb6d5c396516c544ce85f6607f734ba9d7759044a";
+  sha512.run = "aba7b248b1ed6fc557e51c267d3da21a3f3473cb0b0d997ef7d899b3ec518a099a173a163c53aaa7ff29e13aa2f1dbebb65775af828c85fcb9e4e91476d6e1ca";
+  sha512.doc = "dc2f7a06a6122baf9f2284412edf4231eba88f6968f86eb06e47a3e3f3cac14f833ccdb8f69e95b17a05cdc9c3244c361e8d581b6ca65a715a82662ae722fd35";
+  sha512.source = "6cc50aa2d511d744499620b010066916913aedb63ed871f93ab8cdb45380da206dee76c4d8ceaf01be5df971e0437ffd8b469a3ae793810043515a966fdb40a7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "24.8";
+  version = "25.0";
 };
 xepersian-hm = {
   revision = 56272;
@@ -45554,7 +46851,7 @@ xespotcolor = {
   version = "2.1";
 };
 xetex = {
-  revision = 62387;
+  revision = 66203;
   deps = [
     "atbegshi"
     "atveryend"
@@ -45593,8 +46890,8 @@ xetex = {
     }
   ];
   postactionScript = "tlpkg/tlpostcode/xetex.pl";
-  sha512.run = "e9f0aebda0a7fb36e2cbce4dd49e965335438c4ebf2d41eb8e19eabe29617239dd67e7e3433a8c75fd40f072a2c6753a7d0762afd34fca4130929e51888aaabf";
-  sha512.doc = "31f03ee1ae00bc7883109ab7b7374feedc384d86b491873e90797658eae12299dd60b95edc1c86f1faa61a0b7a952cca23993e991863b37e49c27afd6c21c034";
+  sha512.run = "fddc7a48405d5ae56b09fab5f180372972fc7fdd10eb19ec8e2b0f6e1e3bc54d2f92512a6954238c21fbdd75425923dcdf115bf16fe35ab3a850363c41ac99e0";
+  sha512.doc = "7fda9e0a2e7f4dcd6a1813cf8fe280f7193aa88a77cbc5891b892112950e5d5e7690328e267805c8b9a24dc735e7991065ee3664b1278fa334f83ddf06aee236";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -45666,10 +46963,10 @@ xetexko = {
   version = "4.2";
 };
 xetexref = {
-  revision = 65972;
+  revision = 68072;
   stripPrefix = 0;
-  sha512.run = "4cf111fbf6a7df52e8131dc5c0fe4f868e8fed89d8b54f05b426d9860b5c1666d6dc7e2239b58022f2d5cb9a271d5f953ddaf9b54e64d510a12d7749e6ce2156";
-  sha512.doc = "e73a28268e351a736b7baf132a1028ab9c44fc0ad5d7dd2ad3a65f830318a47bc2118d415f7e24b38fcef50bd967dcdfcee5a1b9c5dde40ad81cbdf9747a285a";
+  sha512.run = "a26a066a25162d3f3484158b6a5d3e3f44727ab5b7e3d3d9a4457fd80e92522f09d61015a4a3b0fea4dc63987ef773c8850b6afe8a50fa5ac2ed58cca51a4ded";
+  sha512.doc = "d0f2de750f04ce63aeecdf00a5f0628978c78afaa753f8dd2b41a819c76bb0531bee8906d4eb2014075cf4d0202b6c1fb41a9093120614478045fcb0820a70a9";
   license = [ "lppl13c" ];
 };
 xevlna = {
@@ -45682,16 +46979,16 @@ xevlna = {
   version = "1.1";
 };
 xfakebold = {
-  revision = 55654;
+  revision = 68929;
   stripPrefix = 0;
   deps = [
     "iftex"
   ];
-  sha512.run = "99c735bd449c96b3444a8b50032c9962601a04beeeeb6b0fcb759ee0cc53e4510dc8d077a3cad7b99c968bb9d60bbd37f2f0c7d56ffb5fc667301423bfd32bdb";
-  sha512.doc = "bb6f1bda41427f4c144402095a79aafe70d6b534b6d0462d951a2c58fabb0bc8dd9edfdabf526bba243b2c79aeacee728741dca778e25019ae909856b164a316";
+  sha512.run = "96d7c43d4aa975f5e948038f07c765397dfa240b41daee453064e8c7abd90a1a52cb8af02715de51b6e56aaacc4f8e6f72e40c562371541ac94c00e2f5b6aa2b";
+  sha512.doc = "11b63158d7e780d390a1d4cb4d046108fa34212431d41dec582404047a8fa272e625898d4f1181fd8728bba789962b63b5462a9ea5556fb896b68ad2eab3c038";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.08";
+  version = "0.10";
 };
 xfor = {
   revision = 15878;
@@ -45704,14 +47001,14 @@ xfor = {
   version = "1.05";
 };
 xgreek = {
-  revision = 64300;
+  revision = 69268;
   stripPrefix = 0;
-  sha512.run = "96b0afffce870b5c3cdda072a23d20810db89607fba64172cb329fb10a598693d870132f26ad1c04e0b394bc1181f9dca0c966c70d07e8c17b3e3ada5e2eeec6";
-  sha512.doc = "f4543d8a1603dca2b8f4dd9db97a8d887ba0b8f772284ac81e772b30e641f0900abff116441ead7c571ba7f60ed6999f694596d0e8e4763a3d1ed62f07a056d9";
-  sha512.source = "cb9546b39edb451166ef0e931a0b4ebd571fff9a4e337e0f11d7a2e58ea92e4c82aaeb8b981a88576f9e83c7114c8233763552f3e1bc1c4a7231087b1feffbc1";
+  sha512.run = "bada8aee28edd971542cd5091b702fd494cd710d32112e16f0ee7778868efd0ce558a5ca6d7f4f291dc7edea7f89adef584f4714bea656e9a76674808d3fd765";
+  sha512.doc = "e30af632317678f8e082980120ec328ebdf094ae816f17708387bd23b580431161503e99177ca78a5f2545fbe59b26968d208e8e273ca76f7f7f45fa31200e56";
+  sha512.source = "100836bb5b1bc2191a5c1f446e1b30f9f166719988fd62e5a72102180987db10b043a45f737da04e86f52bd8524fe2ba236454545d6d90105749df572df5775e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.0";
+  version = "3.3.0";
 };
 xhfill = {
   revision = 22575;
@@ -45746,23 +47043,23 @@ xii-lat = {
   license = [ "lppl13c" ];
 };
 xindex = {
-  revision = 65597;
-  sha512.run = "c88e7d602c741db871ab6ec5895fee5455b954c4487d57be812b172369c5d973a8fad4b9fdcb60179562d04ba4105ecfc1228ae7d414a7d90df9a9723306de07";
-  sha512.doc = "3d36e5f8811c6df621717a7077bb49bec137a5bbc3c6593078644811d915c720d41c2e1a6e5be6e3af95ddc64879582061f7aba6113e2b3a1ee5d7b3f63064d0";
+  revision = 67771;
+  sha512.run = "bf812f7ea5f981969b1963f470a0006c4afd937ab27f6b40f7897dc2b6ddd1a0ae60f347b8ed13483ec4fd9feccff257a79dd7b8a2720be1d49a40fe2b325fc6";
+  sha512.doc = "ec93cf3bb639326dc6905be018481da8438ebc5558e4c161419910e1a4427f6f7bb7bbf35ac779ea6769b6c009f9b6bf657b78c7c42bf7100725e8cc6252c975";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.47";
+  version = "0.55";
 };
 xindex.binfiles = [
   "xindex"
 ];
 xindy = {
-  revision = 59894;
-  sha512.run = "0abfc9c3d4f4418fa63845df092e074762f215b334f76016814988f5243bbb184768256792779c65f277fa6a48c41d762c33be6c5cf25ba292efcf9f0554abf8";
-  sha512.doc = "3fed723b6115fd7e05b84c010ded501fcd8440af72353b2b7ccb6df39082515b5de33951821c8546b65ba2462695971695caf2ce88fed67c9bd766db9d13e859";
+  revision = 65958;
+  sha512.run = "9b7fe97c14e3cf30d1e6743c2d7b4460e8bca901ba3ee216001f1518ff4d834fb3d9b67085825a6e152c6acde544c41cf16d56e609016caab89a594305a21599";
+  sha512.doc = "d0dacd7cfa169b03b7fa9d0b351133582577c3908323f501d7bca7b0165159b72c34f62abfd73b97065baef8cf179b292e654759f3b3e324112623539e5acfd6";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -45822,13 +47119,22 @@ xits = {
   version = "1.302";
 };
 xkcdcolors = {
-  revision = 54512;
+  revision = 67895;
   stripPrefix = 0;
-  sha512.run = "4c7057d785c565e043daef78f4ddbb5dc307a3caa690044c803059034ef42fc1a14f61c93115b8060c330f480397040ab19b44636e167739a016175af61c2806";
-  sha512.doc = "ff112f54943d9f6f0e55cd0ef2a9b0cff1e088ea386c7853bfde9cf091b4ab762b38486c565da39fe5f0e63811c2d2b5661dbc5d98b740ffcc08982462214795";
+  sha512.run = "3a2c40713d8e826c1bc09589e56ae6cf661a73cd32bd8903f80f51d71fb79ef34c0be9395ce2f3915fd1ec1385e970945eb00ed0f9f598294363742fe13f4d8b";
+  sha512.doc = "85b7b920d701a6e6752ed78ddf718ef99b7c6684441012feb5bdf2937d3a16ca8a89033e2a5eb723888a52a913cedd320a42c2b902696f876437e9f912a05aa9";
   hasRunfiles = true;
   license = [ "lppl13c" "cc0" ];
-  version = "1.0.1";
+  version = "1.0.2";
+};
+xkeymask = {
+  revision = 69223;
+  stripPrefix = 0;
+  sha512.run = "1502216d5f8b5b2f15317f7dd9faabd11e06232a093a74a64a7114b5f2307e7e96065810129713c679d4aa4d2e622c6a1af8dfb31719b447e9d8fc1e8026e027";
+  sha512.doc = "812473ff009eceec4cdf23cfd89dec769566f2027e528745273061047b4abb3b5b62426492f30755090c664f61e33b675d333cb0e9002869339a4636e6fb260c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
 };
 xkeyval = {
   revision = 63616;
@@ -45932,10 +47238,9 @@ xmltex.binfiles = [
   "xmltex"
 ];
 xmltexconfig = {
-  revision = 45845;
+  revision = 68933;
   stripPrefix = 0;
-  sha512.run = "2620dde42acffee6561f406527794cc62d87c1104135da846b7cd3c7f4109c4d1986d562ea612f2b5246e1863eff86795c4789075f8475d45de00763cfb539fc";
-  hasRunfiles = true;
+  sha512.run = "a377856b79abb94771b54ed19e6f5ef02ebf80374ac868be2905dc23f36d821c79ea9a99077233edd5e125278e6d8bd44c40de50dfd56e389cb46c76348d51e4";
 };
 xmpincl = {
   revision = 60593;
@@ -45986,9 +47291,9 @@ xpatch = {
   version = "0.3";
 };
 xpdfopen = {
-  revision = 53998;
-  sha512.run = "fe873bb22b94a26720e37671e283e0085619c2129a4568399544ac0df1e5c443a9476590ca7ef76a21409589eb2416a14165b8a48a6182f3773a3009cb7c1a47";
-  sha512.doc = "bb4be8fe1b4590e74a7573baa1d699895fb62f6b30b05c9c81655001c75ffb43a6d7f92deca337072690ce3297d4ab06f1aca389524c5d5d500a9fce4abd8404";
+  revision = 65952;
+  sha512.run = "927b6a17422a3573efef6767f4835492df27764bc7fe729ed2697665d5fca697fe1a76e141ff30d5cb483bb4ef8e2021ecf2476c5bdf83ebc5dc6e7778b70765";
+  sha512.doc = "b4f332054a5fe85c9404a05673b373ac2b1275b79a1f0b57061cda614350df230dba60ed3be590e0688840334a113ce5c64847c1dc4e6ebae6cc29524c1f6bd5";
   hasManpages = true;
   license = [ "publicDomain" ];
   version = "0.86";
@@ -46028,11 +47333,11 @@ xpicture = {
   version = "1.2a";
 };
 xpinyin = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "082ee68b118f20d74c442427a0a6e25dd1c5e0571dcf4ee1bf9eab214b0a4773075dc9cf43f2e0a4b02299800fe5362c8fcf09c059ca0b52bc9d0d5651b7d141";
-  sha512.doc = "70966d857aeda92fb727119d064e99f8c7c68f538619cafa5e00fac06b66ad4d9a05d827f31b6ba97ad7034eaa296e6f4b92064501b8ec5251c5189c30206548";
-  sha512.source = "3f6d646d90b058cf6415195885ef9622a0d3ec598215117ea5a01adf49301efac5d3baf4c717f8362b77922e1b884d3bfee10ae5bacf1327bb8705de49c03dbb";
+  sha512.run = "3b7eda4c75b90284138c1277657c8f4a3c2c9a3374a2d6f80969e78805ab8f0c03bf09e5aceaaaec689582dbe30a82b704e41ce08305a0b4b869a84d4d07678e";
+  sha512.doc = "f233ca01195f0f3e236414c02cefbb8da1adc24d6ea94fa56e98ab8772f48456e4bf469f6def555a01c29f8a258c352186d7bf7054db2bbe3843ed937784a440";
+  sha512.source = "f4775152d7879b352f6193af3036258ca984a195abe6de3c03baa41325a7b1fce3900facc2f3ea8fd2deafd3740128161ccfbb2a37eb88fae196a20136f68dd9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.1";
@@ -46047,14 +47352,14 @@ xprintlen = {
   version = "1.0";
 };
 xpunctuate = {
-  revision = 26641;
+  revision = 67918;
   stripPrefix = 0;
-  sha512.run = "4b69969632691a529ff0127f21a5974a509a29c047a33cdfc53d1bdef1aacee7d6ee8eeda5d185759b60b2e4dfcd0dc59948a8156767e2a7ced0256aac0697d4";
-  sha512.doc = "04a839972105943ad72b848adb44584b647a3e52842c0956489ce82496d005ce35f4b8c8e6be1337b5f65616036b58e9543e7f4796075f9828aa9220015e441f";
-  sha512.source = "02b04679b0d5ec75f2972f786293250e0115378fee96845249a221be1cbfdce9d03897f877b82950a5c80d117d4693aaa60c06d7effff9c50e63db8a6e1e49d6";
+  sha512.run = "a90da49b111181c61512777e4cbccfc63710b19513309bc2a04fad0285691095c812e7b8feaa0427cd5e837bf644458229b78c2bec530b01bd772fcdb18a2bca";
+  sha512.doc = "8a7c873e8fd809fea44c136ef5b810f6e5d6213f48806cffb5018645d2a0252fb45b0de029c1f070963d4a584983c88e8c2c7661f1dd2f7cd4407c902ea13880";
+  sha512.source = "5e871cab9151f51e1b05f0266d42f872a3eaa27a0a801e517219e400f7be808463038461fe45d1d748c05085dc605545e5b2c83250413138f19649d5af84cca2";
   hasRunfiles = true;
-  license = [ "lppl12" ];
-  version = "1.0";
+  license = [ "lppl13c" ];
+  version = "2.0";
 };
 xq = {
   revision = 35211;
@@ -46095,13 +47400,13 @@ xskak = {
   version = "1.5";
 };
 xstring = {
-  revision = 65551;
+  revision = 68015;
   stripPrefix = 0;
-  sha512.run = "d747f0eabed48e6d3053b02bca43df476dbaa7f705a1b60c8b9e3e518ecd61af8449122b6a230f2af41966ca0c14c16e7e46b95e124c4dffd898ca4299af7a17";
-  sha512.doc = "a3ad8bc25db266e50fff99ef28def0ad2b68b7c31d382f256b49f90d5fc300800166cd10e255679535bafc2b6196df4ec94df1ab7d82ac42473b51d2226f11ac";
+  sha512.run = "a7373745f3ea8f75b73cd3af280743db902a683f16a9820c214b8b5a92c72314323173a966b5356d78cba667978f677f42ea10b54e98b08dec29202ba8e67b39";
+  sha512.doc = "c9ee24a7661c7dcf4f7cd1b657269951baced39e6d40f5a6656d491120c9fd90034d9a4a226d0f714909e7a03fbc474f6f7a355d4138ba87906d950e1156c884";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.85";
+  version = "1.86";
 };
 xtab = {
   revision = 23347;
@@ -46227,10 +47532,10 @@ yaletter = {
   version = "1.1";
 };
 yamlvars = {
-  revision = 64949;
+  revision = 69071;
   stripPrefix = 0;
-  sha512.run = "aaa024a9796daeed1546700c253805ee3d503acaf88ebef7e277981aa56f96ec4008792fbf2ec4fa2118154b2b96771cd65782e348a4e12452945234eeed3f78";
-  sha512.doc = "fa1349e1024619f0e7536c14681c306b96a76961086f42ab293acc2d1ab44dcbf78b83281406f13ff3c9083c0a3b62a30780696350923d8c3199551a362e14ab";
+  sha512.run = "07d8c9983e631b3e4c97ccc1a7bdd20486e55a59eb6049388823db24149635bd59b94d98f2259de5ef0dc163a9f44e4e01148a42c3f676c65fa802d310f6a0c3";
+  sha512.doc = "686e2be82054f40c93dfcfbda35d2fa45fe0c28d0b85af30c5ec9c9a8c125a6789fb7185d08da9859bf714f6f5e4dc4057890ee4782fbea446aec923e0adfa6e";
   hasRunfiles = true;
   license = [ "mit" ];
 };
@@ -46243,11 +47548,11 @@ yannisgr = {
   license = [ "gpl2" ];
 };
 yathesis = {
-  revision = 66159;
+  revision = 66146;
   stripPrefix = 0;
-  sha512.run = "fab5b280fe45504c54cd599d5b4e1e99936d3373ded66f4b63d781866271b79f56179668b4bd4c2dc6daf5754ae732737e946da763cb1e7018cd5908a70b3efb";
-  sha512.doc = "70bdd373a8816ec6eed800cc233a407d6cb668382ea05efc1df3f604a9ba266dd8799086e7ed33df80ba4e876cd4c86fe52df1de31cd99a0b88aedfdb54315f1";
-  sha512.source = "0d2c339bec5d3c4d3e2e7bea9a3735e4a5e697df35690ab54333181bf2157706d3989ca590dbd7fff0f104c4776bf80f13c976e0c7e4515de2111aae60f1ca34";
+  sha512.run = "a14b12050bd99d7fdf4cbad2962b35976ec86e80944f8aca2bdfedec64d703c74081d107bff1704132e73df47002426c39d22a655acdd7c0d98857ed9191cf86";
+  sha512.doc = "6a1877cbca94a367afa8c6129bf8c6264e2c7203764fa451137113470d7899a40b195db8327ad84249b9f9c8d41698dd0c7a7b6b2754b8205e3bf8e8b533f545";
+  sha512.source = "753983fa303512e3a505f43ec14a626f42e20702f90c52bcb522378c9f2c6b0d0ce5b7888b4c1ca923812a79d1335573fe9d95493dc4d844dac2b757d67b4a25";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0.11";
@@ -46271,7 +47576,7 @@ yazd-thesis = {
   version = "0.3";
 };
 yb-book = {
-  revision = 64586;
+  revision = 67188;
   stripPrefix = 0;
   deps = [
     "anyfontsize"
@@ -46305,12 +47610,12 @@ yb-book = {
     "xkeyval"
     "zref"
   ];
-  sha512.run = "dea52e5aee243d84ad52bb5eb61957e05b500ea9caf36360fd587d0a38ebb602f2821e040e3acf41e8318c0ce491f3bdcb5a477ef65be7b41ec2fe12df680542";
-  sha512.doc = "ecb2ed5bf434f96aacd7422bc815cdc8b69c307475f8f71b8b8b5bc2aad916d1db1394eeaf3b7ddd54e3bf7dc059574c821f2d44f9247103153fb5ef3f40f02d";
-  sha512.source = "20080fd53bc9c749632236d710972bac2db0ab0a7c3cd4a1b39fdc1226a2279332dca41856647b6132f033f381de798b8dc522ba3199e747ea15e5ca571d71c8";
+  sha512.run = "e50c3b75107bcd7cf72a6d4ef86353e8953860a3b4ffc044280fa57b0f290d1ec161e31aed3f91f8827bf038e4f60ed1a6eefb557f0401ed67042209750059d0";
+  sha512.doc = "19e220fa4214b2ca9c95fef77c12805d1f9f4916e8463fce561170e7ba103587a47a38f1710dd6e1147cf50c23f6e5e9524582f127ad0dc237a409970f4922aa";
+  sha512.source = "3a7817bf209e938f9a75e928c16de30b59537cc049ca1b67e3bdf9c116337c78fe0a40b346a0f7189ea04c7af3755e0428af2140db7eaa83dce026a6042dc489";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.2.0";
+  version = "0.3.0";
 };
 ycbook = {
   revision = 46201;
@@ -46343,12 +47648,12 @@ ydoc = {
   version = "0.7alpha";
 };
 yet-another-guide-latex2e = {
-  revision = 65714;
+  revision = 68564;
   stripPrefix = 0;
-  sha512.run = "ed532ed8d95cc68793956533f91e331d71618d7d9371d8d7996e1bab06cabc636e2d130e1af2e17ca86ffe4072ed2a8477b33e96451d94c926bfded1c0f592ca";
-  sha512.doc = "cb9817e571faab5dde69dc2e7adbac59cb6437f33444a289e9dc61d4f4db10958e0206e8a369d873667963cfa754f176bb0b9767a12632950cf5e9a4327805d9";
+  sha512.run = "7a2d19b71006352ff9cf69cb68243153e99e4cda2a3fef37daf6ab180e7a7625b8119b972785a331188faf7ee6f03d724a760c5c3456e85cf32ce704b3edd7cc";
+  sha512.doc = "8ab0ebad6b627dc1a5d90477d48868715830c6558e9091d3782284e9766f22f9764170a3e89d55c8437dbca2c8eab446a1be0336baf43b3ddcaf67e125ea2f64";
   license = [ "fdl13Only" ];
-  version = "1.1";
+  version = "1.2";
 };
 yfonts = {
   revision = 50755;
@@ -46428,13 +47733,13 @@ yplan.binfiles = [
   "yplan"
 ];
 yquant = {
-  revision = 65944;
+  revision = 68997;
   stripPrefix = 0;
-  sha512.run = "af6e025317de8d354ea6a5f901c56c8966d43d95c0d85902a9c77afae6282d3c54dccf35723cccfa4a825782afa648465e51f0dc6f971488863c328f6f4d8883";
-  sha512.doc = "105f593830056c3d15ffd01a8a812964430c876c9be5a3135240bda323dbd77c4d0345b3924fea693a5566eec3fb7dd010e7301a7b7fbd36ea7f041422c4f246";
+  sha512.run = "2d9dbde5bbc12186a054624f4dfc30ab9cde606440e5568de12f9bcbc0f0c7f872141a2f1745e2f9729884e59e8c36ffddb77ae5b813cf837ea7e2ebea7d7109";
+  sha512.doc = "bd0f9428c7a0930b6d714ba69f0020217021283021b9492bb71c2077fb70e86f3a49694251f88e91605604bda7049ce1f06bf1ecc1b668c63e080d1bcb087fd6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.7.3";
+  version = "0.7.5";
 };
 ytableau = {
   revision = 59580;
@@ -46470,14 +47775,14 @@ zbmath-review-template = {
   version = "2.1";
 };
 zebra-goodies = {
-  revision = 51554;
+  revision = 66630;
   stripPrefix = 0;
-  sha512.run = "c6ba09e174207ed9f28053bd82ae46551910358e74ad7afd74b406a93d4720f5b11b1921497c3c464c80b55d8fd4e4adbfb115f3ed9a9bcdf68ebf96bda06434";
-  sha512.doc = "48652f89e032526de7c37ad57ff5719d75dd50e5a00ec48a4d94c314bb159d76061ce9c9cf8519bfc8d546e274f8ab1344751d798abac422562efe6026df1872";
-  sha512.source = "2f2cebe6593b55cdbe03bec6215f74a4520a3a0f5198316e749eafd9adab2f9b4a7fef99dcd831cccffb0d758e2755bf7a97c21df8b7f1b770b4e5359d69bc7e";
+  sha512.run = "c740469e5a27355fbe8c781d30434724b8c77216e88c674854dd71e73e38ba78aeeef251a25e756c4046230eccdf334abf6d5f378bad559691a29955cb0eb16c";
+  sha512.doc = "c4bdfba7e426c95599c4fe2cff06ada80345490f433eb636260ed5ce322c1c21c0b5de0c4709be415b6b98668b7c514610375f2bdf9831248be0095e1ff28dc2";
+  sha512.source = "ec961bcc2d7181450184bdddbe0f0c1d5100bd6fe2294722dda239d8979f6c8d126fd4f52cce371db8227aedb1e1da14eaf1457ed12e65d33ccce6f23148ad8f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8.0";
+  version = "0.8.1";
 };
 zed-csp = {
   revision = 17258;
@@ -46535,11 +47840,11 @@ zhmetrics-uptex = {
   version = "1.0";
 };
 zhnumber = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "083b60752816db5b85f2a1080bdda2829d373c8eaf89ec7fd12d64b238b11280a6f4ded36142f2e6a08a72977c23907fba17d99d25bd9826d42f6c041c4b2081";
-  sha512.doc = "fcfee3e37ce20ebaa52e3615f4db18ba6d243691b3bc90eadb78376c40b2e9394472e208b7e145cc967e3c7b9b69061016a43c5da20cf326c6f03c29ef1d5446";
-  sha512.source = "215d46d0728316abdc173e933006ab6cda39024f968739c3f2451e3a59442091a9082a0c5a4bb7c3a09dc3175d87dd2f86599b8804479c98bf3d549a4a0e9f5f";
+  sha512.run = "080460cafa9f1b382d5843e7863eefb36a26abcdf8ef97d9a23fe4e68d1bf85e0e6a38c7201d1dbaf2d25acc7b846d757fab9f9b850d992a576b6df67929cb55";
+  sha512.doc = "c8f6b76b72f7b7bc19f2e6fe64191b86c4b73fa7559d3299945359a7d2205e3685c4eee98283f361207192fc35de0a7ae9064e118e20f96f832d18eacf93bf70";
+  sha512.source = "7a79592cda187221d2832db12e45923a03f110de7ae358304048a52d2e170853421cad0a50211c0894b700c98301cf949f1def35acacc7cf2d23789ff23ca4ea";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.0";
@@ -46589,48 +47894,48 @@ zootaxa-bst = {
   version = "1.0";
 };
 zref = {
-  revision = 62977;
+  revision = 68278;
   stripPrefix = 0;
-  sha512.run = "4516c2b785e26dac293dd028c314bdaf75d195c454cd2acd54aeaf6a298b0494031a86926abc670d27bed1ce8622a9607ea71d2b4d268bacdff26b8937c67dfa";
-  sha512.doc = "f65ebb760d1cac9dbc1c6ed4e48a9015c2cd2c5cbeb28e4776802ea84ac6b08c5302eb2126619e93f5bdf7ca76b4b8cdfad3ee9369aea364f680c1deda7bf396";
-  sha512.source = "c4d4fa3cd9921f0c60361c7aafd000998c8bf7f04ccdd39406d51258b006851cce26e1acc6fa4ca91369764b012020b60ac73bd8b540a2212cce236f1335b9c3";
+  sha512.run = "1c21d99dc4f1627520914ed3620606c724f22754662797b93c4161aaf3e36d5a42a586ae7e4b227cdf67d55c88d3979635e78661d7029f1a5967c503a9f9dde5";
+  sha512.doc = "24cf22b54cb13e1458266f4962ba589fa9385f3b8d58493747824d815c372cfa6fa8a8a24d0310264b299ce43148ca001b5c6b73961d1504e1ab6e8a4ac246c0";
+  sha512.source = "251cc99a193371ca0e11d1690ce6ce545cdf077a483f81d2d5ac5c3495b24c25f383ba6b73e9607578adb0940441247ac4027c7719d2ada0c1b77f7876f9767a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.34";
+  version = "2.35";
 };
 zref-check = {
-  revision = 63845;
+  revision = 68846;
   stripPrefix = 0;
-  sha512.run = "108b5484c84aa27fe41c416a68a0a01a7990624697acbbe324776630b46d17aedc987cb2dcb5bbab7d8cd95c129ed8da451984dffe319fd8fed4363f376b617e";
-  sha512.doc = "ca2dad2ff43c842de9a1cb63d7c8ded3b722113c39023774cd4744b17080e1993b886eb170e49c39ff641f04cf020bf0b8a0aec5f36e1d649d01d28414107700";
-  sha512.source = "c814c786a2a298cdf0ceac279a9718e26c406035a187acb9e08be1dab9749bdb725c4fc3276749569632e0478220031d8441970afe70959bcfb53ee8823b5d8c";
+  sha512.run = "98aeb6007f1f599a2bda644c60c9929ca27c9045d73af3d54298837eb842e7976a2f9067182ce38c77ff197e2fe36a53207d2aa39adaa9deeb4e118bd034b0e5";
+  sha512.doc = "d050bb4a6c68a80eafe3eb7f99c61407424385743785014600404397e6fa322becaf3a28157f59951a2406fdfb66968f3cba9de4e388282ea0c84e3f33d4fc8d";
+  sha512.source = "a84246193d390c55dd66d65b64eae79e52099e7f7c75b8ef03d595d466d57643832f95ff23ecdc2dd0cc31b7c5cc64db361bd5ece7949e544936739b2c70e1bb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3.2";
+  version = "0.3.5";
 };
 zref-clever = {
-  revision = 66024;
+  revision = 68846;
   stripPrefix = 0;
-  sha512.run = "4773b3467f6e0874d581941293e771ed8e21746be75bf9d1dc470ec1c8a553ca21d0a507d834a7b7c34dcead4d69ee542b8cbf84186fc14a6347e3f54582efe9";
-  sha512.doc = "438e5e4362a69c83a9e0757a65db76bd301047ab5f5c67ffc983f91d575d1de16b629fe1c81be75af1621d9696b6492126f4663bd531bb785b04ae96af38b9c6";
-  sha512.source = "303c0f18e8510d5ea48017c36ec84e700582406689d418941b072c5135c9ee97fbeaf6709a6c71b104c2e93bda730be23640e97e9a1c6c6b56a9bc393731b08e";
+  sha512.run = "d7a32fde3ee94e304f854f690756ad9d15a9287c1dd38e1707a1f33e2bd30ac23147a439990ba7e9f7bc0b2c5b37b5d475bb64f2ab89bb15752bfc0e2f9ad3ac";
+  sha512.doc = "c18e86417db71ece26e6a29e0598e521d17a79c26f5ebd92dbd78c427142bb992df9ff39c0a5867dd296093036615bc319aa9dc970faa0ae0d4ed479452e1b89";
+  sha512.source = "3ff30e4c2ee570c5c142542110699ec17b123078c5d01ed9de2781404026b120856d38d4cb05160bd90ea56063e220e09dd46158d938a70416488797855a1fe3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3.6";
+  version = "0.4.3";
 };
 zref-vario = {
-  revision = 65453;
+  revision = 68846;
   stripPrefix = 0;
   deps = [
     "tools"
     "zref-clever"
   ];
-  sha512.run = "c3b2965bae0c8354e60cdd8de29cbb45dde04180d4c7955376f1889622d1eac35365fb14cfd79615c5bd98909039c4d4e8bb02bf6225bc6f40a8a95d40137a90";
-  sha512.doc = "1b10b548c3c1455520c2d190330ca996e0799fadf2aab6f9da59aaee62434dac35101021749834f05a9a40618185b430b3071d6951ee2784572014fc885acf92";
-  sha512.source = "fd6a63914cc36ae400da73572c8b7c77991808f6e1e2d5a23527719f087174c881dd7e60357a94eae46a59aa83e7dac34fcf5dde062bcfaa70cbc12a345bdbfe";
+  sha512.run = "c159620be1d7d853641d4b42108ec0b2e36b6f4b0c604680469b52cf4c0557196263293d4692906d1d42c1d0ab9a666b59d462266131e42f319a5ab3a2385780";
+  sha512.doc = "b618216a0bd8d7b65fe73be05156e899917719436ef0139122fd01047b8d55faeea55ae05e259d99c464aaeb3fdd9268886b7dec9c4b6a86209da1dcf1c3a3ca";
+  sha512.source = "0569db63bf6fd492952cdee442312e818926bceba7663ce0e17f485dbe990687d97efc02649acef6dd89210aa44f9e88c86cf2667c4a487e9b78b90b10a779ce";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.7";
+  version = "0.1.10";
 };
 zwgetfdate = {
   revision = 15878;
diff --git a/pkgs/tools/typesetting/tikzit/default.nix b/pkgs/tools/typesetting/tikzit/default.nix
index 2f6d169d0cb52..44c2fed0508ac 100644
--- a/pkgs/tools/typesetting/tikzit/default.nix
+++ b/pkgs/tools/typesetting/tikzit/default.nix
@@ -29,5 +29,6 @@ mkDerivation {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.iblech maintainers.mgttlinger ];
+    mainProgram = "tikzit";
   };
 }
diff --git a/pkgs/tools/typesetting/typst-live/default.nix b/pkgs/tools/typesetting/typst-live/default.nix
index bb705c5ce96af..8968adbb5e1bc 100644
--- a/pkgs/tools/typesetting/typst-live/default.nix
+++ b/pkgs/tools/typesetting/typst-live/default.nix
@@ -9,14 +9,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "typst-live";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-8YndEqhIESC3Cbe4klQfkVqesNFeZ2g1oRd1VoVrMnE=";
+    hash = "sha256-9GhrWhT0mYU2OOeoHGd5XY7BKO/S7cKTnURXi9dF+IU=";
   };
 
-  cargoHash = "sha256-62tBefXek6W01RfdPczXBuYhrLK+wG1YQ7va7FQmAhA=";
+  cargoHash = "sha256-KGwmTXkY2nv5oWwjs5ZLz6u3bJ7YWJQPqOqJJNxKDkM=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/tools/typesetting/typst/Cargo.lock b/pkgs/tools/typesetting/typst/Cargo.lock
deleted file mode 100644
index 71fb9e8f7130a..0000000000000
--- a/pkgs/tools/typesetting/typst/Cargo.lock
+++ /dev/null
@@ -1,3729 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aes"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
-dependencies = [
- "cfg-if",
- "cipher",
- "cpufeatures",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
-dependencies = [
- "cfg-if",
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "android-tzdata"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "anstream"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
-dependencies = [
- "anstyle",
- "anstyle-parse",
- "anstyle-query",
- "anstyle-wincon",
- "colorchoice",
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
-
-[[package]]
-name = "anstyle-parse"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
-dependencies = [
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle-query"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
-dependencies = [
- "windows-sys",
-]
-
-[[package]]
-name = "anstyle-wincon"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
-dependencies = [
- "anstyle",
- "windows-sys",
-]
-
-[[package]]
-name = "arrayref"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
-
-[[package]]
-name = "arrayvec"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "az"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973"
-
-[[package]]
-name = "base64"
-version = "0.21.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
-
-[[package]]
-name = "base64ct"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
-
-[[package]]
-name = "biblatex"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc9fd60378277e44cd400ec5f35e768ce0d5a63d8d18ac7b1a9231196251dae5"
-dependencies = [
- "chrono",
- "numerals",
- "paste",
- "strum",
- "unicode-normalization",
- "unscanny",
-]
-
-[[package]]
-name = "bincode"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "bit-set"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
-dependencies = [
- "bit-vec",
-]
-
-[[package]]
-name = "bit-vec"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
-
-[[package]]
-name = "bit_field"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "bitvec"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
-dependencies = [
- "funty",
- "radium",
- "tap",
- "wyz",
-]
-
-[[package]]
-name = "block-buffer"
-version = "0.10.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
-
-[[package]]
-name = "bytemuck"
-version = "1.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "bzip2"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
-dependencies = [
- "bzip2-sys",
- "libc",
-]
-
-[[package]]
-name = "bzip2-sys"
-version = "0.1.11+1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "jobserver",
- "libc",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "chinese-number"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9cec9efb10b00914876c7e7b1fdaec572b888443b4046cd11ba91eb8c5a1ccb"
-dependencies = [
- "chinese-variant",
- "enum-ordinalize",
- "num-bigint",
- "num-traits",
-]
-
-[[package]]
-name = "chinese-variant"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aeea139b89efab957972956e5d3e4efb66a6c261f726abf6911040cc8ef700f7"
-
-[[package]]
-name = "chrono"
-version = "0.4.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877"
-dependencies = [
- "android-tzdata",
- "iana-time-zone",
- "num-traits",
- "windows-targets",
-]
-
-[[package]]
-name = "ciborium"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
-dependencies = [
- "ciborium-io",
- "ciborium-ll",
- "serde",
-]
-
-[[package]]
-name = "ciborium-io"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
-
-[[package]]
-name = "ciborium-ll"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
-dependencies = [
- "ciborium-io",
- "half 1.8.2",
-]
-
-[[package]]
-name = "cipher"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
-dependencies = [
- "crypto-common",
- "inout",
-]
-
-[[package]]
-name = "clap"
-version = "4.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6"
-dependencies = [
- "clap_builder",
- "clap_derive",
-]
-
-[[package]]
-name = "clap_builder"
-version = "4.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
-dependencies = [
- "anstream",
- "anstyle",
- "clap_lex",
- "strsim",
-]
-
-[[package]]
-name = "clap_complete"
-version = "4.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4110a1e6af615a9e6d0a36f805d5c99099f8bab9b8042f5bc1fa220a4a89e36f"
-dependencies = [
- "clap",
-]
-
-[[package]]
-name = "clap_derive"
-version = "4.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 2.0.32",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
-
-[[package]]
-name = "clap_mangen"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf8e5f34d85d9e0bbe2491d100a7a7c1007bb2467b518080bfe311e8947197a9"
-dependencies = [
- "clap",
- "roff",
-]
-
-[[package]]
-name = "cobs"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
-
-[[package]]
-name = "codespan-reporting"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-dependencies = [
- "termcolor",
- "unicode-width",
-]
-
-[[package]]
-name = "color_quant"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-
-[[package]]
-name = "colorchoice"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
-
-[[package]]
-name = "comemo"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28a097f142aeb5b03af73595536cd55f5d649fca4d656379aac86b3af133cf92"
-dependencies = [
- "comemo-macros",
- "siphasher",
-]
-
-[[package]]
-name = "comemo-macros"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168cc09917f6a014a4cf6ed166d1b541a20a768c60f9cc348f25203ee8312940"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "constant_time_eq"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crunchy"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array",
- "typenum",
-]
-
-[[package]]
-name = "csv"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086"
-dependencies = [
- "csv-core",
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "csv-core"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "dashmap"
-version = "5.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
-dependencies = [
- "cfg-if",
- "hashbrown 0.14.0",
- "lock_api",
- "once_cell",
- "parking_lot_core",
-]
-
-[[package]]
-name = "data-url"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
-
-[[package]]
-name = "deranged"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
-
-[[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "block-buffer",
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "dirs"
-version = "5.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
-dependencies = [
- "libc",
- "option-ext",
- "redox_users",
- "windows-sys",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.32",
-]
-
-[[package]]
-name = "downcast-rs"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
-
-[[package]]
-name = "ecow"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d1990d053cf6edf3f030682dba3b0eb65ef01fabb2686072765d8a17d6728e8"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "either"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
-
-[[package]]
-name = "enum-ordinalize"
-version = "3.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4f76552f53cefc9a7f64987c3701b99d982f7690606fd67de1d09712fbf52f1"
-dependencies = [
- "num-bigint",
- "num-traits",
- "proc-macro2",
- "quote",
- "syn 2.0.32",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "env_proxy"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a5019be18538406a43b5419a5501461f0c8b49ea7dfda0cfc32f4e51fc44be1"
-dependencies = [
- "log",
- "url",
-]
-
-[[package]]
-name = "equivalent"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-
-[[package]]
-name = "errno"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "exr"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1e481eb11a482815d3e9d618db8c42a93207134662873809335a92327440c18"
-dependencies = [
- "bit_field",
- "flume",
- "half 2.2.1",
- "lebe",
- "miniz_oxide",
- "rayon-core",
- "smallvec",
- "zune-inflate",
-]
-
-[[package]]
-name = "fancy-regex"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
-dependencies = [
- "bit-set",
- "regex",
-]
-
-[[package]]
-name = "fastrand"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fastrand"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
-
-[[package]]
-name = "fdeflate"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
-dependencies = [
- "simd-adler32",
-]
-
-[[package]]
-name = "filetime"
-version = "0.2.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall 0.3.5",
- "windows-sys",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[package]]
-name = "float-cmp"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
-
-[[package]]
-name = "flume"
-version = "0.10.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
-dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "pin-project",
- "spin 0.9.8",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "fontdb"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af8d8cbea8f21307d7e84bca254772981296f058a1d36b461bf4d83a7499fc9e"
-dependencies = [
- "log",
- "slotmap",
- "tinyvec",
- "ttf-parser 0.19.2",
-]
-
-[[package]]
-name = "form_urlencoded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "fsevent-sys"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "funty"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
-
-[[package]]
-name = "futures-core"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-
-[[package]]
-name = "futures-sink"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
-
-[[package]]
-name = "generic-array"
-version = "0.14.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "getopts"
-version = "0.2.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
-dependencies = [
- "cfg-if",
- "js-sys",
- "libc",
- "wasi",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "gif"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
-dependencies = [
- "color_quant",
- "weezl",
-]
-
-[[package]]
-name = "half"
-version = "1.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
-
-[[package]]
-name = "half"
-version = "2.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
-dependencies = [
- "crunchy",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
-
-[[package]]
-name = "hayagriva"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "065e90e53aa502be868a307f58ca6b46e31143641e809047c689de75619d8cea"
-dependencies = [
- "biblatex",
- "chrono",
- "isolang",
- "lazy_static",
- "linked-hash-map",
- "paste",
- "regex",
- "strum",
- "thiserror",
- "unic-langid",
- "unicode-segmentation",
- "url",
- "yaml-rust",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
-
-[[package]]
-name = "hmac"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-dependencies = [
- "digest",
-]
-
-[[package]]
-name = "hypher"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "723e315d77ea8aa1aedf53ad979ff0e763cfa2a1b3403248e427ae052f403cad"
-
-[[package]]
-name = "iai"
-version = "0.1.1"
-source = "git+https://github.com/typst/iai#3f0f92736408ebce6545808b98e0cb2aea89b7dd"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "windows",
-]
-
-[[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "icu_collections"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef8302d8dfd6044d3ddb3f807a5ef3d7bbca9a574959c6d6e4dc39aa7012d0d5"
-dependencies = [
- "displaydoc",
- "serde",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locid"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3003f85dccfc0e238ff567693248c59153a46f4e6125ba4020b973cef4d1d335"
-dependencies = [
- "displaydoc",
- "litemap",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_properties"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce0e1aa26851f16c9e04412a5911c86b7f8768dac8f8d4c5f1c568a7e5d7a434"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_provider",
- "serde",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dc312a7b6148f7dfe098047ae2494d12d4034f48ade58d4f353000db376e305"
-dependencies = [
- "displaydoc",
- "icu_locid",
- "icu_provider_macros",
- "postcard",
- "serde",
- "stable_deref_trait",
- "writeable",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_adapters"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4ae1e2bd0c41728b77e7c46e9afdec5e2127d1eedacc684724667d50c126bd3"
-dependencies = [
- "icu_locid",
- "icu_provider",
- "tinystr",
- "yoke",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_blob"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd364c9a01f791a4bc04a74cf2a1d01d9f6926a40fd5ae1c28004e1e70d8338b"
-dependencies = [
- "icu_provider",
- "postcard",
- "serde",
- "writeable",
- "yoke",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_macros"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b728b9421e93eff1d9f8681101b78fa745e0748c95c655c83f337044a7e10"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "icu_segmenter"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3300a7b6bf187be98a57264ad094f11f2e062c2e8263132af010ff522ee5495"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locid",
- "icu_provider",
- "num-traits",
- "serde",
- "utf8_iter",
- "zerovec",
-]
-
-[[package]]
-name = "idna"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "if_chain"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
-
-[[package]]
-name = "image"
-version = "0.24.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "exr",
- "gif",
- "jpeg-decoder",
- "num-rational",
- "num-traits",
- "png",
- "qoi",
- "tiff",
-]
-
-[[package]]
-name = "imagesize"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
-
-[[package]]
-name = "include_dir"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e"
-dependencies = [
- "include_dir_macros",
-]
-
-[[package]]
-name = "include_dir_macros"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
-dependencies = [
- "equivalent",
- "hashbrown 0.14.0",
- "rayon",
- "serde",
-]
-
-[[package]]
-name = "indexmap-nostd"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590"
-
-[[package]]
-name = "inferno"
-version = "0.11.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027"
-dependencies = [
- "ahash",
- "clap",
- "crossbeam-channel",
- "crossbeam-utils",
- "dashmap",
- "env_logger",
- "indexmap 2.0.0",
- "is-terminal",
- "itoa",
- "log",
- "num-format",
- "once_cell",
- "quick-xml 0.26.0",
- "rgb",
- "str_stack",
-]
-
-[[package]]
-name = "inotify"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
-dependencies = [
- "bitflags 1.3.2",
- "inotify-sys",
- "libc",
-]
-
-[[package]]
-name = "inotify-sys"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "inout"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "is-docker"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi",
- "rustix",
- "windows-sys",
-]
-
-[[package]]
-name = "is-wsl"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
-dependencies = [
- "is-docker",
- "once_cell",
-]
-
-[[package]]
-name = "isolang"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f80f221db1bc708b71128757b9396727c04de86968081e18e89b0575e03be071"
-dependencies = [
- "phf",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "jobserver"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "jpeg-decoder"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
-dependencies = [
- "rayon",
-]
-
-[[package]]
-name = "js-sys"
-version = "0.3.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "kqueue"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
-dependencies = [
- "kqueue-sys",
- "libc",
-]
-
-[[package]]
-name = "kqueue-sys"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
-dependencies = [
- "bitflags 1.3.2",
- "libc",
-]
-
-[[package]]
-name = "kurbo"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b"
-dependencies = [
- "arrayvec",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "lebe"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
-
-[[package]]
-name = "libc"
-version = "0.2.148"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
-
-[[package]]
-name = "libdeflate-sys"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "012437ac39c1e7d7ba12af3aceceb5c93149779aa17c2b1c483f33954957ddc8"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "libdeflater"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58b30f982ddb14aae2a24a7ed7b3d512d687c2483493f95de7a6d167942a19c3"
-dependencies = [
- "libdeflate-sys",
-]
-
-[[package]]
-name = "libm"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
-
-[[package]]
-name = "line-wrap"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
-dependencies = [
- "safemem",
-]
-
-[[package]]
-name = "linked-hash-map"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
-
-[[package]]
-name = "lipsum"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c5e9ef2d2ad6fe67a59ace27c203c8d3a71d195532ee82e3bbe0d5f9a9ca541"
-dependencies = [
- "rand",
- "rand_chacha",
-]
-
-[[package]]
-name = "litemap"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a04a5b2b6f54acba899926491d0a6c59d98012938ca2ab5befb281c034e8f94"
-
-[[package]]
-name = "lock_api"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
-
-[[package]]
-name = "lzma-sys"
-version = "0.1.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "memchr"
-version = "2.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
-
-[[package]]
-name = "memmap2"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-dependencies = [
- "adler",
- "simd-adler32",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
-dependencies = [
- "libc",
- "log",
- "wasi",
- "windows-sys",
-]
-
-[[package]]
-name = "nanorand"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "notify"
-version = "6.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
-dependencies = [
- "bitflags 2.4.0",
- "crossbeam-channel",
- "filetime",
- "fsevent-sys",
- "inotify",
- "kqueue",
- "libc",
- "log",
- "mio",
- "walkdir",
- "windows-sys",
-]
-
-[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-format"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3"
-dependencies = [
- "arrayvec",
- "itoa",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
-dependencies = [
- "autocfg",
- "libm",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "numerals"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e25be21376a772d15f97ae789845340a9651d3c4246ff5ebb6a2b35f9c37bd31"
-
-[[package]]
-name = "oklab"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "467e40ada50d13bab19019e3707862b5076ca15841f31ee1474c40397c1b9f11"
-dependencies = [
- "rgb",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
-name = "open"
-version = "5.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfabf1927dce4d6fdf563d63328a0a506101ced3ec780ca2135747336c98cef8"
-dependencies = [
- "is-wsl",
- "libc",
- "pathdiff",
-]
-
-[[package]]
-name = "option-ext"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
-
-[[package]]
-name = "overload"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
-
-[[package]]
-name = "oxipng"
-version = "8.0.0"
-source = "git+https://github.com/typst/oxipng?rev=b8ec65b#b8ec65b3ca42dde33c85149b6e402e891527f802"
-dependencies = [
- "bitvec",
- "crossbeam-channel",
- "filetime",
- "indexmap 2.0.0",
- "libdeflater",
- "log",
- "rayon",
- "rgb",
- "rustc-hash",
- "rustc_version",
- "zopfli",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall 0.3.5",
- "smallvec",
- "windows-targets",
-]
-
-[[package]]
-name = "password-hash"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
-dependencies = [
- "base64ct",
- "rand_core",
- "subtle",
-]
-
-[[package]]
-name = "paste"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
-
-[[package]]
-name = "pathdiff"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
-
-[[package]]
-name = "pbkdf2"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
-dependencies = [
- "digest",
- "hmac",
- "password-hash",
- "sha2",
-]
-
-[[package]]
-name = "pdf-writer"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d77bc47c8968aa63f86a7e6693e270a6cbd1e3b784c364f1711a0ddecc71447"
-dependencies = [
- "bitflags 1.3.2",
- "itoa",
- "ryu",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
-
-[[package]]
-name = "phf"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
-dependencies = [
- "phf_shared",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "pico-args"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
-
-[[package]]
-name = "pin-project"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.32",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
-
-[[package]]
-name = "pixglyph"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f67591f21f6668e63c1cd85adab066ac8a92bc7b962668dd8042197a6e4b8f8f"
-dependencies = [
- "ttf-parser 0.19.2",
-]
-
-[[package]]
-name = "pkg-config"
-version = "0.3.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
-
-[[package]]
-name = "plist"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06"
-dependencies = [
- "base64",
- "indexmap 1.9.3",
- "line-wrap",
- "quick-xml 0.29.0",
- "serde",
- "time",
-]
-
-[[package]]
-name = "png"
-version = "0.17.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide",
-]
-
-[[package]]
-name = "postcard"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d534c6e61df1c7166e636ca612d9820d486fe96ddad37f7abc671517b297488e"
-dependencies = [
- "cobs",
- "serde",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "psm"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "pulldown-cmark"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
-dependencies = [
- "bitflags 1.3.2",
- "getopts",
- "memchr",
- "unicase",
-]
-
-[[package]]
-name = "qoi"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001"
-dependencies = [
- "bytemuck",
-]
-
-[[package]]
-name = "quick-xml"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "quick-xml"
-version = "0.29.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "radium"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-
-[[package]]
-name = "rayon"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
-]
-
-[[package]]
-name = "rctree"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_users"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
-dependencies = [
- "getrandom",
- "redox_syscall 0.2.16",
- "thiserror",
-]
-
-[[package]]
-name = "regex"
-version = "1.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "resvg"
-version = "0.35.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6554f47c38eca56827eea7f285c2a3018b4e12e0e195cc105833c008be338f1"
-dependencies = [
- "gif",
- "jpeg-decoder",
- "log",
- "pico-args",
- "png",
- "rgb",
- "svgtypes",
- "tiny-skia",
- "usvg",
-]
-
-[[package]]
-name = "rgb"
-version = "0.8.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
-dependencies = [
- "bytemuck",
-]
-
-[[package]]
-name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "roff"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
-
-[[package]]
-name = "roxmltree"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8"
-dependencies = [
- "xmlparser",
-]
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
-dependencies = [
- "bitflags 2.4.0",
- "errno",
- "libc",
- "linux-raw-sys",
- "windows-sys",
-]
-
-[[package]]
-name = "rustls"
-version = "0.21.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
-dependencies = [
- "log",
- "ring",
- "rustls-webpki 0.101.5",
- "sct",
-]
-
-[[package]]
-name = "rustls-pemfile"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
-dependencies = [
- "base64",
-]
-
-[[package]]
-name = "rustls-webpki"
-version = "0.100.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "rustls-webpki"
-version = "0.101.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "rustversion"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
-
-[[package]]
-name = "rustybuzz"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "162bdf42e261bee271b3957691018634488084ef577dddeb6420a9684cab2a6a"
-dependencies = [
- "bitflags 1.3.2",
- "bytemuck",
- "smallvec",
- "ttf-parser 0.18.1",
- "unicode-bidi-mirroring",
- "unicode-ccc",
- "unicode-general-category",
- "unicode-script",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-
-[[package]]
-name = "safemem"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-
-[[package]]
-name = "same-file"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-
-[[package]]
-name = "sct"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "self-replace"
-version = "1.3.5"
-source = "git+https://github.com/typst/self-replace#2e6d5e4808bba73b713fd85cf5616b7d846143c2"
-dependencies = [
- "fastrand 1.9.0",
- "tempfile",
- "windows-sys",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-
-[[package]]
-name = "serde"
-version = "1.0.188"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.188"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.32",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.106"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cc66a619ed80bf7a0f6b17dd063a84b88f6dea1813737cf469aef1d081142c2"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_spanned"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde_yaml"
-version = "0.8.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
-dependencies = [
- "indexmap 1.9.3",
- "ryu",
- "serde",
- "yaml-rust",
-]
-
-[[package]]
-name = "serde_yaml"
-version = "0.9.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
-dependencies = [
- "indexmap 2.0.0",
- "itoa",
- "ryu",
- "serde",
- "unsafe-libyaml",
-]
-
-[[package]]
-name = "sha1"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sha2"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sharded-slab"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
-name = "simd-adler32"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
-
-[[package]]
-name = "simplecss"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "siphasher"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
-
-[[package]]
-name = "slotmap"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
-dependencies = [
- "lock_api",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "stacker"
-version = "0.1.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
-dependencies = [
- "cc",
- "cfg-if",
- "libc",
- "psm",
- "winapi",
-]
-
-[[package]]
-name = "str_stack"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb"
-
-[[package]]
-name = "strict-num"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
-dependencies = [
- "float-cmp",
-]
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "strum"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
-dependencies = [
- "strum_macros",
-]
-
-[[package]]
-name = "strum_macros"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "subsetter"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09eab8a83bff89ba2200bd4c59be45c7c787f988431b936099a5a266c957f2f9"
-
-[[package]]
-name = "subtle"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-
-[[package]]
-name = "svg2pdf"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c267ce43e1b46631a121481ae2d7dc00dda163d486f0f600be772bbe24d6037"
-dependencies = [
- "image",
- "miniz_oxide",
- "pdf-writer",
- "usvg",
-]
-
-[[package]]
-name = "svgtypes"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed4b0611e7f3277f68c0fa18e385d9e2d26923691379690039548f867cef02a7"
-dependencies = [
- "kurbo",
- "siphasher",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.12.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "unicode-xid",
-]
-
-[[package]]
-name = "syntect"
-version = "5.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
-dependencies = [
- "bincode",
- "bitflags 1.3.2",
- "fancy-regex",
- "flate2",
- "fnv",
- "once_cell",
- "plist",
- "regex-syntax",
- "serde",
- "serde_json",
- "thiserror",
- "walkdir",
- "yaml-rust",
-]
-
-[[package]]
-name = "tap"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
-
-[[package]]
-name = "tar"
-version = "0.4.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
-dependencies = [
- "filetime",
- "libc",
- "xattr",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
-dependencies = [
- "cfg-if",
- "fastrand 2.0.0",
- "redox_syscall 0.3.5",
- "rustix",
- "windows-sys",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.48"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.48"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.32",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
-dependencies = [
- "cfg-if",
- "once_cell",
-]
-
-[[package]]
-name = "tiff"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
-dependencies = [
- "flate2",
- "jpeg-decoder",
- "weezl",
-]
-
-[[package]]
-name = "time"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
-dependencies = [
- "deranged",
- "itoa",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
-
-[[package]]
-name = "time-macros"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
-dependencies = [
- "time-core",
-]
-
-[[package]]
-name = "tiny-skia"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7db11798945fa5c3e5490c794ccca7c6de86d3afdd54b4eb324109939c6f37bc"
-dependencies = [
- "arrayref",
- "arrayvec",
- "bytemuck",
- "cfg-if",
- "log",
- "png",
- "tiny-skia-path",
-]
-
-[[package]]
-name = "tiny-skia-path"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f60aa35c89ac2687ace1a2556eaaea68e8c0d47408a2e3e7f5c98a489e7281c"
-dependencies = [
- "arrayref",
- "bytemuck",
- "strict-num",
-]
-
-[[package]]
-name = "tinystr"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ac3f5b6856e931e15e07b478e98c8045239829a65f9156d4fa7e7788197a5ef"
-dependencies = [
- "displaydoc",
- "serde",
- "zerovec",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-[[package]]
-name = "toml"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c226a7bba6d859b63c92c4b4fe69c5b6b72d0cb897dbc8e6012298e6154cb56e"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit",
-]
-
-[[package]]
-name = "toml_datetime"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ff63e60a958cefbb518ae1fd6566af80d9d4be430a33f3723dfc47d1d411d95"
-dependencies = [
- "indexmap 2.0.0",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "tracing"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
-dependencies = [
- "cfg-if",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.32",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
-dependencies = [
- "once_cell",
- "valuable",
-]
-
-[[package]]
-name = "tracing-error"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"
-dependencies = [
- "tracing",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "tracing-flame"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bae117ee14789185e129aaee5d93750abe67fdc5a9a62650452bfe4e122a3a9"
-dependencies = [
- "lazy_static",
- "tracing",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "tracing-log"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
-dependencies = [
- "lazy_static",
- "log",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
-dependencies = [
- "nu-ansi-term",
- "sharded-slab",
- "smallvec",
- "thread_local",
- "tracing-core",
- "tracing-log",
-]
-
-[[package]]
-name = "ttf-parser"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633"
-
-[[package]]
-name = "ttf-parser"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
-
-[[package]]
-name = "typed-arena"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
-
-[[package]]
-name = "typenum"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-
-[[package]]
-name = "typst"
-version = "0.8.0"
-dependencies = [
- "base64",
- "bitflags 2.4.0",
- "bytemuck",
- "comemo",
- "ecow",
- "flate2",
- "fontdb",
- "if_chain",
- "image",
- "indexmap 2.0.0",
- "log",
- "miniz_oxide",
- "oklab",
- "once_cell",
- "pdf-writer",
- "pixglyph",
- "regex",
- "resvg",
- "roxmltree",
- "rustybuzz",
- "serde",
- "siphasher",
- "stacker",
- "subsetter",
- "svg2pdf",
- "time",
- "tiny-skia",
- "toml",
- "tracing",
- "ttf-parser 0.19.2",
- "typst-macros",
- "typst-syntax",
- "unicode-ident",
- "unicode-math-class",
- "unicode-properties",
- "unicode-segmentation",
- "unscanny",
- "usvg",
- "wasmi",
- "xmlparser",
- "xmlwriter",
- "xmp-writer",
-]
-
-[[package]]
-name = "typst-cli"
-version = "0.8.0"
-dependencies = [
- "chrono",
- "clap",
- "clap_complete",
- "clap_mangen",
- "codespan-reporting",
- "comemo",
- "dirs",
- "ecow",
- "env_proxy",
- "flate2",
- "inferno",
- "memmap2",
- "notify",
- "once_cell",
- "open",
- "pathdiff",
- "rustls",
- "rustls-pemfile",
- "same-file",
- "self-replace",
- "semver",
- "serde",
- "serde_json",
- "serde_yaml 0.9.25",
- "siphasher",
- "tar",
- "tempfile",
- "tracing",
- "tracing-error",
- "tracing-flame",
- "tracing-subscriber",
- "typst",
- "typst-library",
- "ureq",
- "walkdir",
- "xz2",
- "zip",
-]
-
-[[package]]
-name = "typst-docs"
-version = "0.8.0"
-dependencies = [
- "comemo",
- "ecow",
- "heck",
- "include_dir",
- "once_cell",
- "pulldown-cmark",
- "serde",
- "serde_yaml 0.9.25",
- "syntect",
- "typed-arena",
- "typst",
- "typst-library",
- "unicode_names2",
- "unscanny",
- "yaml-front-matter",
-]
-
-[[package]]
-name = "typst-library"
-version = "0.8.0"
-dependencies = [
- "az",
- "chinese-number",
- "ciborium",
- "comemo",
- "csv",
- "ecow",
- "hayagriva",
- "hypher",
- "icu_properties",
- "icu_provider",
- "icu_provider_adapters",
- "icu_provider_blob",
- "icu_segmenter",
- "kurbo",
- "lipsum",
- "log",
- "once_cell",
- "roxmltree",
- "rustybuzz",
- "serde_json",
- "serde_yaml 0.9.25",
- "smallvec",
- "syntect",
- "time",
- "toml",
- "tracing",
- "ttf-parser 0.19.2",
- "typed-arena",
- "typst",
- "unicode-bidi",
- "unicode-math-class",
- "unicode-script",
- "unicode-segmentation",
-]
-
-[[package]]
-name = "typst-macros"
-version = "0.8.0"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 2.0.32",
-]
-
-[[package]]
-name = "typst-syntax"
-version = "0.8.0"
-dependencies = [
- "comemo",
- "ecow",
- "once_cell",
- "serde",
- "tracing",
- "unicode-ident",
- "unicode-math-class",
- "unicode-segmentation",
- "unscanny",
-]
-
-[[package]]
-name = "typst-tests"
-version = "0.8.0"
-dependencies = [
- "clap",
- "comemo",
- "ecow",
- "iai",
- "once_cell",
- "oxipng",
- "rayon",
- "tiny-skia",
- "ttf-parser 0.19.2",
- "typst",
- "typst-library",
- "unscanny",
- "walkdir",
-]
-
-[[package]]
-name = "unic-langid"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f"
-dependencies = [
- "unic-langid-impl",
-]
-
-[[package]]
-name = "unic-langid-impl"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff"
-dependencies = [
- "tinystr",
-]
-
-[[package]]
-name = "unicase"
-version = "2.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-
-[[package]]
-name = "unicode-bidi-mirroring"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694"
-
-[[package]]
-name = "unicode-ccc"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1"
-
-[[package]]
-name = "unicode-general-category"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-
-[[package]]
-name = "unicode-math-class"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d246cf599d5fae3c8d56e04b20eb519adb89a8af8d0b0fbcded369aa3647d65"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-properties"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
-
-[[package]]
-name = "unicode-script"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
-
-[[package]]
-name = "unicode-vo"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
-name = "unicode_names2"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "446c96c6dd42604779487f0a981060717156648c1706aa1f464677f03c6cc059"
-
-[[package]]
-name = "unsafe-libyaml"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
-
-[[package]]
-name = "unscanny"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47"
-
-[[package]]
-name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "ureq"
-version = "2.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9"
-dependencies = [
- "base64",
- "flate2",
- "log",
- "once_cell",
- "rustls",
- "rustls-webpki 0.100.3",
- "serde",
- "serde_json",
- "url",
- "webpki-roots",
-]
-
-[[package]]
-name = "url"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
-dependencies = [
- "form_urlencoded",
- "idna",
- "percent-encoding",
-]
-
-[[package]]
-name = "usvg"
-version = "0.35.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14d09ddfb0d93bf84824c09336d32e42f80961a9d1680832eb24fdf249ce11e6"
-dependencies = [
- "base64",
- "log",
- "pico-args",
- "usvg-parser",
- "usvg-text-layout",
- "usvg-tree",
- "xmlwriter",
-]
-
-[[package]]
-name = "usvg-parser"
-version = "0.35.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d19bf93d230813599927d88557014e0908ecc3531666d47c634c6838bc8db408"
-dependencies = [
- "data-url",
- "flate2",
- "imagesize",
- "kurbo",
- "log",
- "roxmltree",
- "simplecss",
- "siphasher",
- "svgtypes",
- "usvg-tree",
-]
-
-[[package]]
-name = "usvg-text-layout"
-version = "0.35.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "035044604e89652c0a2959b8b356946997a52649ba6cade45928c2842376feb4"
-dependencies = [
- "fontdb",
- "kurbo",
- "log",
- "rustybuzz",
- "unicode-bidi",
- "unicode-script",
- "unicode-vo",
- "usvg-tree",
-]
-
-[[package]]
-name = "usvg-tree"
-version = "0.35.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7939a7e4ed21cadb5d311d6339730681c3e24c3e81d60065be80e485d3fc8b92"
-dependencies = [
- "rctree",
- "strict-num",
- "svgtypes",
- "tiny-skia-path",
-]
-
-[[package]]
-name = "utf8_iter"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a8922555b9500e3d865caed19330172cd67cbf82203f1a3311d8c305cc9f33"
-
-[[package]]
-name = "utf8parse"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
-
-[[package]]
-name = "valuable"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "walkdir"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
-dependencies = [
- "same-file",
- "winapi-util",
-]
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 2.0.32",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.32",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
-
-[[package]]
-name = "wasmi"
-version = "0.31.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f341edb80021141d4ae6468cbeefc50798716a347d4085c3811900049ea8945"
-dependencies = [
- "smallvec",
- "spin 0.9.8",
- "wasmi_arena",
- "wasmi_core",
- "wasmparser-nostd",
-]
-
-[[package]]
-name = "wasmi_arena"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468"
-
-[[package]]
-name = "wasmi_core"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a"
-dependencies = [
- "downcast-rs",
- "libm",
- "num-traits",
- "paste",
-]
-
-[[package]]
-name = "wasmparser-nostd"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724"
-dependencies = [
- "indexmap-nostd",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webpki-roots"
-version = "0.23.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338"
-dependencies = [
- "rustls-webpki 0.100.3",
-]
-
-[[package]]
-name = "weezl"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-[[package]]
-name = "winnow"
-version = "0.5.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "writeable"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60e49e42bdb1d5dc76f4cd78102f8f0714d32edfa3efb82286eb0f0b1fc0da0f"
-
-[[package]]
-name = "wyz"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
-dependencies = [
- "tap",
-]
-
-[[package]]
-name = "xattr"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "xmlparser"
-version = "0.13.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
-
-[[package]]
-name = "xmlwriter"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
-
-[[package]]
-name = "xmp-writer"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fd742bbbb930fc972b28bf66b7546dfbc7bb9a4c7924299df0ae6a5641fcadf"
-
-[[package]]
-name = "xz2"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2"
-dependencies = [
- "lzma-sys",
-]
-
-[[package]]
-name = "yaml-front-matter"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a94fb32d2b438e3fddf901fbfe9eb87b34d63853ca6c6da5d2ab7e27031e0bae"
-dependencies = [
- "serde",
- "serde_yaml 0.8.26",
-]
-
-[[package]]
-name = "yaml-rust"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
-dependencies = [
- "linked-hash-map",
-]
-
-[[package]]
-name = "yoke"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1848075a23a28f9773498ee9a0f2cf58fcbad4f8c0ccf84a210ab33c6ae495de"
-dependencies = [
- "serde",
- "stable_deref_trait",
- "yoke-derive",
- "zerofrom",
-]
-
-[[package]]
-name = "yoke-derive"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af46c169923ed7516eef0aa32b56d2651b229f57458ebe46b49ddd6efef5b7a2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
-name = "zerofrom"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df54d76c3251de27615dfcce21e636c172dafb2549cd7fd93e21c66f6ca6bea2"
-dependencies = [
- "zerofrom-derive",
-]
-
-[[package]]
-name = "zerofrom-derive"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4eae7c1f7d4b8eafce526bc0771449ddc2f250881ae31c50d22c032b5a1c499"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
-name = "zerovec"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "198f54134cd865f437820aa3b43d0ad518af4e68ee161b444cdd15d8e567c8ea"
-dependencies = [
- "serde",
- "yoke",
- "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "486558732d5dde10d0f8cb2936507c1bb21bc539d924c949baf5f36a58e51bac"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
-name = "zip"
-version = "0.6.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
-dependencies = [
- "aes",
- "byteorder",
- "bzip2",
- "constant_time_eq",
- "crc32fast",
- "crossbeam-utils",
- "flate2",
- "hmac",
- "pbkdf2",
- "sha1",
- "time",
- "zstd",
-]
-
-[[package]]
-name = "zopfli"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e0650ae6a051326d798eb099b632f1afb0d323d25ee4ec82ffb0779512084d5"
-dependencies = [
- "crc32fast",
- "log",
- "simd-adler32",
- "typed-arena",
-]
-
-[[package]]
-name = "zstd"
-version = "0.11.2+zstd.1.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
-dependencies = [
- "zstd-safe",
-]
-
-[[package]]
-name = "zstd-safe"
-version = "5.0.2+zstd.1.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
-dependencies = [
- "libc",
- "zstd-sys",
-]
-
-[[package]]
-name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "zune-inflate"
-version = "0.2.54"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02"
-dependencies = [
- "simd-adler32",
-]
diff --git a/pkgs/tools/typesetting/typst/default.nix b/pkgs/tools/typesetting/typst/default.nix
deleted file mode 100644
index 1d9e95f5025ad..0000000000000
--- a/pkgs/tools/typesetting/typst/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, installShellFiles
-, stdenv
-, darwin
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "typst";
-  version = "0.8.0";
-
-  src = fetchFromGitHub {
-    owner = "typst";
-    repo = "typst";
-    rev = "v${version}";
-    hash = "sha256-q2b/PoNwpzarJbIPzokYgZRD2/Oe/XB40C4VXdwL/NA=";
-  };
-
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "iai-0.1.1" = "sha256-EdNzCPht5chg7uF9O8CtPWR/bzSYyfYIXNdLltqdlR0=";
-      "oxipng-8.0.0" = "sha256-KIbSsQEjwJ12DxYpBTUD1g9CqJqCfSAmnFcSTiGIoio=";
-      "self-replace-1.3.5" = "sha256-N57nmLHgxhVR1CDtkgjYwpo1ypdGyVpjJY7vzuncxDc=";
-    };
-  };
-
-  nativeBuildInputs = [
-    installShellFiles
-  ];
-
-  buildInputs = lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.CoreServices
-  ];
-
-  env = {
-    GEN_ARTIFACTS = "artifacts";
-  };
-
-  postInstall = ''
-    installManPage crates/typst-cli/artifacts/*.1
-    installShellCompletion \
-      crates/typst-cli/artifacts/typst.{bash,fish} \
-      --zsh crates/typst-cli/artifacts/_typst
-  '';
-
-  meta = with lib; {
-    description = "A new markup-based typesetting system that is powerful and easy to learn";
-    homepage = "https://typst.app";
-    changelog = "https://github.com/typst/typst/releases/tag/${src.rev}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ drupol figsoda kanashimia ];
-    mainProgram = "typst";
-  };
-}
diff --git a/pkgs/tools/typesetting/typstfmt/Cargo.lock b/pkgs/tools/typesetting/typstfmt/Cargo.lock
index f5abd5a1e9ea6..ecfb8d4030f54 100644
--- a/pkgs/tools/typesetting/typstfmt/Cargo.lock
+++ b/pkgs/tools/typesetting/typstfmt/Cargo.lock
@@ -4,14 +4,26 @@ version = 3
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
 name = "bstr"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -24,9 +36,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.6.2"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"
+checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
 dependencies = [
  "memchr",
  "serde",
@@ -40,9 +52,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "comemo"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28a097f142aeb5b03af73595536cd55f5d649fca4d656379aac86b3af133cf92"
+checksum = "bf5705468fa80602ee6a5f9318306e6c428bffd53e43209a78bc05e6e667c6f4"
 dependencies = [
  "comemo-macros",
  "siphasher",
@@ -50,13 +62,25 @@ dependencies = [
 
 [[package]]
 name = "comemo-macros"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168cc09917f6a014a4cf6ed166d1b541a20a768c60f9cc348f25203ee8312940"
+checksum = "54af6ac68ada2d161fa9cc1ab52676228e340866d094d6542107e74b82acc095"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
+]
+
+[[package]]
+name = "confy"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e37668cb35145dcfaa1931a5f37fde375eeae8068b4c0d2f289da28a270b2d2c"
+dependencies = [
+ "directories",
+ "serde",
+ "thiserror",
+ "toml 0.5.11",
 ]
 
 [[package]]
@@ -72,6 +96,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "directories"
+version = "4.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
 name = "ecow"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -99,10 +143,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
-name = "fnv"
-version = "1.0.7"
+name = "getrandom"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
 
 [[package]]
 name = "globmatch"
@@ -117,28 +166,28 @@ dependencies = [
 
 [[package]]
 name = "globset"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
  "aho-corasick",
- "bstr 1.6.2",
- "fnv",
+ "bstr 1.8.0",
  "log",
- "regex",
+ "regex-automata 0.4.3",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -146,9 +195,9 @@ dependencies = [
 
 [[package]]
 name = "insta"
-version = "1.32.0"
+version = "1.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e02c584f4595792d09509a94cdb92a3cef7592b1eb2d9877ee6f527062d0ea"
+checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
 dependencies = [
  "console",
  "lazy_static",
@@ -180,9 +229,20 @@ checksum = "baff4b617f7df3d896f97fe922b64817f6cd9a756bb81d40f8883f2f66dcb401"
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall",
+]
 
 [[package]]
 name = "linked-hash-map"
@@ -198,9 +258,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "nu-ansi-term"
@@ -232,9 +292,9 @@ checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
 dependencies = [
  "unicode-ident",
 ]
@@ -249,14 +309,34 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.3.8",
+ "regex-automata 0.4.3",
  "regex-syntax",
 ]
 
@@ -268,9 +348,9 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -279,9 +359,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "same-file"
@@ -294,47 +374,47 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "sharded-slab"
-version = "0.1.4"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
 dependencies = [
  "lazy_static",
 ]
 
 [[package]]
 name = "similar"
-version = "2.2.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"
+checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
 dependencies = [
  "bstr 0.2.17",
  "unicode-segmentation",
@@ -352,21 +432,21 @@ dependencies = [
 
 [[package]]
 name = "siphasher"
-version = "0.3.11"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe"
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -374,14 +454,23 @@ dependencies = [
 ]
 
 [[package]]
-name = "syn"
-version = "2.0.37"
+name = "thiserror"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-ident",
+ "syn",
 ]
 
 [[package]]
@@ -396,6 +485,15 @@ dependencies = [
 
 [[package]]
 name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml"
 version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
@@ -408,9 +506,9 @@ dependencies = [
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
@@ -430,11 +528,10 @@ dependencies = [
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -442,20 +539,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
  "valuable",
@@ -463,20 +560,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-log"
-version = "0.1.3"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 dependencies = [
- "lazy_static",
  "log",
+ "once_cell",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "nu-ansi-term",
  "sharded-slab",
@@ -504,15 +601,16 @@ dependencies = [
 
 [[package]]
 name = "typstfmt"
-version = "0.2.5"
+version = "0.2.7"
 dependencies = [
+ "confy",
  "lexopt",
  "typstfmt_lib",
 ]
 
 [[package]]
 name = "typstfmt_lib"
-version = "0.2.5"
+version = "0.2.7"
 dependencies = [
  "globmatch",
  "insta",
@@ -520,7 +618,7 @@ dependencies = [
  "regex",
  "serde",
  "similar-asserts",
- "toml",
+ "toml 0.7.8",
  "tracing",
  "tracing-subscriber",
  "typst-syntax",
@@ -568,6 +666,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
 name = "winapi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -666,9 +770,9 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
 
 [[package]]
 name = "winnow"
-version = "0.5.15"
+version = "0.5.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94"
 dependencies = [
  "memchr",
 ]
diff --git a/pkgs/tools/typesetting/typstfmt/default.nix b/pkgs/tools/typesetting/typstfmt/default.nix
index 7f84fc1cc5e7b..2305998e94a20 100644
--- a/pkgs/tools/typesetting/typstfmt/default.nix
+++ b/pkgs/tools/typesetting/typstfmt/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "typstfmt";
-  version = "0.2.5";
+  version = "0.2.7";
 
   src = fetchFromGitHub {
     owner = "astrale-sharp";
     repo = "typstfmt";
     rev = version;
-    hash = "sha256-+iQOS+WPCWevUFurLfuC5mhuRdJ/1ZsekFoFDzZviag=";
+    hash = "sha256-LBYsTCjZ+U+lgd7Z3H1sBcWwseoHsuepPd66bWgfvhI=";
   };
 
   cargoLock = {
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/astrale-sharp/typstfmt/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda geri1701 ];
+    mainProgram = "typstfmt";
   };
 }
diff --git a/pkgs/tools/typesetting/xmlroff/default.nix b/pkgs/tools/typesetting/xmlroff/default.nix
index dd8adab9ee8a9..f1e7e2c3243fb 100644
--- a/pkgs/tools/typesetting/xmlroff/default.nix
+++ b/pkgs/tools/typesetting/xmlroff/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     homepage = "http://xmlroff.org/";
     platforms = platforms.unix;
     license = licenses.bsd3;
+    mainProgram = "xmlroff";
   };
 }
diff --git a/pkgs/tools/video/bento4/default.nix b/pkgs/tools/video/bento4/default.nix
index 5e796c82ec6b0..54e5a22cc67d5 100644
--- a/pkgs/tools/video/bento4/default.nix
+++ b/pkgs/tools/video/bento4/default.nix
@@ -3,13 +3,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "bento4";
-  version = "1.6.0-640";
+  version = "1.6.0-641";
 
   src = fetchFromGitHub {
     owner = "axiomatic-systems";
     repo = "Bento4";
     rev = "v${version}";
-    hash = "sha256-VhlFfNYw3xpAIyWqDyhgXIv3JtpFJH0BL97dFX8diRY=";
+    hash = "sha256-Qy8D3cbCVHmLAaXtiF64rL2oRurXNCtd5Dsgt0W7WdY=";
   };
 
   patches = [
diff --git a/pkgs/tools/video/blackmagic-desktop-video/default.nix b/pkgs/tools/video/blackmagic-desktop-video/default.nix
index dc6f2eff78732..435db1221eab2 100644
--- a/pkgs/tools/video/blackmagic-desktop-video/default.nix
+++ b/pkgs/tools/video/blackmagic-desktop-video/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
       SITEURL = "https://www.blackmagicdesign.com/api/register/us/download/${DOWNLOADID}";
 
       USERAGENT = builtins.concatStringsSep " " [
-        "User-Agent: Mozilla/5.0 (X11; Linux ${stdenv.targetPlatform.linuxArch})"
+        "User-Agent: Mozilla/5.0 (X11; Linux ${stdenv.hostPlatform.linuxArch})"
         "AppleWebKit/537.36 (KHTML, like Gecko)"
         "Chrome/77.0.3865.75"
         "Safari/537.36"
diff --git a/pkgs/tools/video/dvgrab/default.nix b/pkgs/tools/video/dvgrab/default.nix
index c5bb05853bf95..de5c5e906bf58 100644
--- a/pkgs/tools/video/dvgrab/default.nix
+++ b/pkgs/tools/video/dvgrab/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation {
 
     license = licenses.gpl2Plus;
     platforms = platforms.gnu ++ platforms.linux;
+    mainProgram = "dvgrab";
   };
 }
diff --git a/pkgs/tools/video/go2rtc/default.nix b/pkgs/tools/video/go2rtc/default.nix
index d3e572fae5135..8ee378d6c264f 100644
--- a/pkgs/tools/video/go2rtc/default.nix
+++ b/pkgs/tools/video/go2rtc/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "go2rtc";
-  version = "1.7.1";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "AlexxIT";
     repo = "go2rtc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-w3yn8Xn09VdbSAnOey9YFW4qf6+h1xmdgYfIcf6Q1lY=";
+    hash = "sha256-XG98CJZ9bnFfJL5DyhDon+j74cXXmxYb291PElqXXRY=";
   };
 
-  vendorHash = "sha256-VI6OODJLKrCvehM4W96Qh3PvZoIM2GlE5cgyvSaCv+8=";
+  vendorHash = "sha256-KEW3ykEZvL6y1VacDIqtHW9B2RLHlHC29aqJjkEnRqQ=";
 
   buildFlagArrays = [
     "-trimpath"
@@ -35,5 +35,6 @@ buildGoModule rec {
     changelog = "https://github.com/AlexxIT/go2rtc/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
+    mainProgram = "go2rtc";
   };
 }
diff --git a/pkgs/tools/video/gopro/default.nix b/pkgs/tools/video/gopro/default.nix
index a1991772bf105..7f234ae5247ac 100644
--- a/pkgs/tools/video/gopro/default.nix
+++ b/pkgs/tools/video/gopro/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3;
     maintainers = with maintainers; [ jonringer ];
+    mainProgram = "gopro";
   };
 }
diff --git a/pkgs/tools/video/harvid/default.nix b/pkgs/tools/video/harvid/default.nix
index 655d1ba3874ff..2860e5f22280d 100644
--- a/pkgs/tools/video/harvid/default.nix
+++ b/pkgs/tools/video/harvid/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mitchmindtree ];
+    mainProgram = "harvid";
   };
 }
diff --git a/pkgs/tools/video/lux/default.nix b/pkgs/tools/video/lux/default.nix
index 79b3eec9e5bec..fe81c15940e0c 100644
--- a/pkgs/tools/video/lux/default.nix
+++ b/pkgs/tools/video/lux/default.nix
@@ -1,33 +1,44 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, ffmpeg }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, makeWrapper
+, ffmpeg
+}:
 
 buildGoModule rec {
   pname = "lux";
-  version = "0.19.0";
+  version = "0.22.0";
+
   src = fetchFromGitHub {
     owner = "iawia002";
     repo = "lux";
     rev = "v${version}";
-    sha256 = "sha256-klm1985qBErFfYIWPjr1/n6nYr/jA9dbrDMfw4bf1tM=";
+    hash = "sha256-v74+Ykz9aro1x+9psg2LnuodKE2/pCw9knZop0etQOg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
-  vendorHash = "sha256-7wgGJYiIsVTRSuSb4a9LgYCkkayGhNMKqcIKoDxMuAM=";
+  vendorHash = "sha256-1VZFKDoSuSUmYw7g6SwB/dXnFaw7+cGHKfgT96HaI/o=";
 
-  ldflags = [ "-s" "-w" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/iawia002/lux/app.version=v${version}"
+  ];
 
   postInstall = ''
     wrapProgram $out/bin/lux \
       --prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
   '';
 
-  doCheck = false;
+  doCheck = false; # require network
 
   meta = with lib; {
     description = "Fast and simple video download library and CLI tool written in Go";
     homepage = "https://github.com/iawia002/lux";
     changelog = "https://github.com/iawia002/lux/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = [];
+    maintainers = with maintainers; [ galaxy ];
+    mainProgram = "lux";
   };
 }
diff --git a/pkgs/tools/video/mjpegtools/c++-17-fixes.patch b/pkgs/tools/video/mjpegtools/c++-17-fixes.patch
new file mode 100644
index 0000000000000..018cc7e9beabd
--- /dev/null
+++ b/pkgs/tools/video/mjpegtools/c++-17-fixes.patch
@@ -0,0 +1,44 @@
+diff -ur a/mplex/main.cpp b/mplex/main.cpp
+--- a/mplex/main.cpp	2021-09-05 02:14:13.029372000 -0400
++++ b/mplex/main.cpp	2023-09-23 08:47:07.683450627 -0400
+@@ -50,7 +50,7 @@
+ #include "multiplexor.hpp"
+ 
+ 
+-using std::auto_ptr;
++using std::unique_ptr;
+ 
+ 
+ /*************************************************************************
+@@ -138,7 +138,7 @@
+ void 
+ FileOutputStream::NextSegment( )
+ {
+-    auto_ptr<char> prev_filename_buf( new char[strlen(cur_filename)+1] );
++    unique_ptr<char> prev_filename_buf( new char[strlen(cur_filename)+1] );
+     char *prev_filename = prev_filename_buf.get();
+ 	fclose(strm);
+ 	++segment_num;
+diff -ur a/utils/fastintfns.h b/utils/fastintfns.h
+--- a/utils/fastintfns.h	2021-09-05 02:14:13.033372000 -0400
++++ b/utils/fastintfns.h	2023-09-23 08:44:40.147112973 -0400
+@@ -2,12 +2,17 @@
+  *
+  * WARNING: Assumes 2's complement arithmetic.
+  */
+-static inline int intmax( register int x, register int y )
++#ifdef __cplusplus
++#define REGISTER
++#else
++#define REGISTER register
++#endif
++static inline int intmax( REGISTER int x, REGISTER int y )
+ {
+ 	return x < y ? y : x;
+ }
+ 
+-static inline int intmin( register int x, register int y )
++static inline int intmin( REGISTER int x, REGISTER int y )
+ {
+ 	return x < y ? x : y;
+ }
diff --git a/pkgs/tools/video/mjpegtools/default.nix b/pkgs/tools/video/mjpegtools/default.nix
index 675dfc109de13..f231d6ed184da 100644
--- a/pkgs/tools/video/mjpegtools/default.nix
+++ b/pkgs/tools/video/mjpegtools/default.nix
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-sYBTbX2ZYLBeACOhl7ANyxAJKaSaq3HRnVX0obIQ9Jo=";
   };
 
+  # Clang 16 defaults to C++17. `std::auto_ptr` has been removed from C++17, and the
+  # `register` type class specifier is no longer allowed.
+  patches = [ ./c++-17-fixes.patch ];
+
   hardeningDisable = [ "format" ];
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/video/play-with-mpv/default.nix b/pkgs/tools/video/play-with-mpv/default.nix
index 9047f9062462e..16e645eb44550 100644
--- a/pkgs/tools/video/play-with-mpv/default.nix
+++ b/pkgs/tools/video/play-with-mpv/default.nix
@@ -57,5 +57,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/Thann/play-with-mpv";
     license = licenses.mit;
     maintainers = with maintainers; [ dawidsowa ];
+    mainProgram = "play-with-mpv";
   };
 }
diff --git a/pkgs/tools/video/rav1e/default.nix b/pkgs/tools/video/rav1e/default.nix
index b7ca158d2e70a..406276977c520 100644
--- a/pkgs/tools/video/rav1e/default.nix
+++ b/pkgs/tools/video/rav1e/default.nix
@@ -13,36 +13,16 @@
 , buildPackages
 }:
 
-let
-  rustTargetPlatformSpec = rust.toRustTargetSpec stdenv.hostPlatform;
-
-  # TODO: if another package starts using cargo-c (seems likely),
-  # factor this out into a makeCargoChook expression in
-  # pkgs/build-support/rust/hooks/default.nix
-  ccForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
-  cxxForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
-  ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
-  cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
-  rustBuildPlatform = rust.toRustTarget stdenv.buildPlatform;
-  rustTargetPlatform = rust.toRustTarget stdenv.hostPlatform;
-  setEnvVars = ''
-    env \
-      "CC_${rustBuildPlatform}"="${ccForBuild}" \
-      "CXX_${rustBuildPlatform}"="${cxxForBuild}" \
-      "CC_${rustTargetPlatform}"="${ccForHost}" \
-      "CXX_${rustTargetPlatform}"="${cxxForHost}" \
-  '';
-
-in rustPlatform.buildRustPackage rec {
+rustPlatform.buildRustPackage rec {
   pname = "rav1e";
-  version = "0.6.6";
+  version = "0.7.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-urYMT1sJUMBj1L/2Hi+hcYbWbi0ScSls0pm9gLj9H3o=";
+    sha256 = "sha256-Db7qb7HBAy6lniIiN07iEzURmbfNtuhmgJRv7OUagUM=";
   };
 
-  cargoHash = "sha256-qQfEpynhlIEKU1Ptq/jM1Wdtn+BVCZT1lmou2S1GL4I=";
+  cargoHash = "sha256-VyQ6n2kIJ7OjK6Xlf0T0GNsBvgESRETzKZDZzAn8ZuY=";
 
   depsBuildBuild = [ pkg-config ];
 
@@ -58,19 +38,17 @@ in rustPlatform.buildRustPackage rec {
   # Darwin uses `llvm-strip`, which results in link errors when using `-x` to strip the asm library
   # and linking it with cctools ld64.
   postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
-    substituteInPlace build.rs --replace 'cmd.arg("-x")' 'cmd.arg("-S")'
+    substituteInPlace build.rs --replace-fail '.arg("-x")' '.arg("-S")'
   '';
 
   checkType = "debug";
 
   postBuild =  ''
-    ${setEnvVars} \
-    cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${rustTargetPlatformSpec}
+    ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
   '';
 
   postInstall = ''
-    ${setEnvVars} \
-    cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${rustTargetPlatformSpec}
+    ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
   '';
 
   meta = with lib; {
@@ -85,5 +63,6 @@ in rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/xiph/rav1e/releases/tag/v${version}";
     license = licenses.bsd2;
     maintainers = [ ];
+    mainProgram = "rav1e";
   };
 }
diff --git a/pkgs/tools/video/recyclarr/default.nix b/pkgs/tools/video/recyclarr/default.nix
index f3dce87755329..6db69039205cb 100644
--- a/pkgs/tools/video/recyclarr/default.nix
+++ b/pkgs/tools/video/recyclarr/default.nix
@@ -26,10 +26,10 @@ let
     or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-4xBT4IuonAQPSPKedecNd6YjoOh6pe3nCXMXpNBWP1g=";
-    arm64-linux_hash = "sha256-4s/W1Xz0M1L6xm79AJy836OhNmW0Z4YoRsc7Qd5EwaM=";
-    x64-osx_hash = "sha256-IQgKbZrINt6K3ezS+XjUEYoDIYtngvo++RTpCk+SeSc=";
-    arm64-osx_hash = "sha256-9vHzGAH+fbn+x3lm3/UuNfd0Fv8s2MPPGSe5VnaASeg=";
+    x64-linux_hash = "sha256-Skf3wY52B6KnWS8YurAL0b5Sdkvp4YYn3IvHrAKyvK8=";
+    arm64-linux_hash = "sha256-66OCz13eLyAfEC3kYUniqq+QhsHoZNBJieXmmsLG5eM=";
+    x64-osx_hash = "sha256-6cNpfcjwgfxZRlBnZQrZLMPaXDHEXSbS3Z/qcx1Z3HA=";
+    arm64-osx_hash = "sha256-OkM+LgqXOHzyzEWH6D3czH86Sncym9FpfTFaacp2aN0=";
   }."${arch}-${os}_hash";
 
   libPath = {
@@ -40,7 +40,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "recyclarr";
-  version = "6.0.1";
+  version = "6.0.2";
 
   src = fetchurl {
     url = "https://github.com/recyclarr/recyclarr/releases/download/v${version}/recyclarr-${os}-${arch}.tar.xz";
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/recyclarr/recyclarr/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ josephst ];
+    mainProgram = "recyclarr";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/tools/video/replay-sorcery/default.nix b/pkgs/tools/video/replay-sorcery/default.nix
index 8f362c3beb96e..7323644cdefb8 100644
--- a/pkgs/tools/video/replay-sorcery/default.nix
+++ b/pkgs/tools/video/replay-sorcery/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kira-bruneau ];
     platforms = platforms.linux;
+    mainProgram = "replay-sorcery";
   };
 }
diff --git a/pkgs/tools/video/svt-av1/default.nix b/pkgs/tools/video/svt-av1/default.nix
index 40869c0f8f4e4..d40047510f405 100644
--- a/pkgs/tools/video/svt-av1/default.nix
+++ b/pkgs/tools/video/svt-av1/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "svt-av1";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchFromGitLab {
     owner = "AOMediaCodec";
     repo = "SVT-AV1";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-WKc0DNwpA9smMS3e/GDkk77FUkohwaPMgcXgji14CIw=";
+    hash = "sha256-JV65VuEPJBrADsGviBnE6EgZmbqJ4Z4qli6cAfUMmkw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/video/swfmill/default.nix b/pkgs/tools/video/swfmill/default.nix
index 28d7e0039edd2..8e6d0baf7e725 100644
--- a/pkgs/tools/video/swfmill/default.nix
+++ b/pkgs/tools/video/swfmill/default.nix
@@ -14,10 +14,14 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libxslt freetype libpng libxml2 ];
 
+  # fatal error: 'libxml/xpath.h' file not found
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libxml2.dev}/include/libxml2";
+
   meta = {
     description = "An xml2swf and swf2xml processor with import functionalities";
     homepage = "http://swfmill.org";
     license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
+    mainProgram = "swfmill";
   };
 }
diff --git a/pkgs/tools/video/vcsi/default.nix b/pkgs/tools/video/vcsi/default.nix
index ad09d57d79184..7db0fdd6962e0 100644
--- a/pkgs/tools/video/vcsi/default.nix
+++ b/pkgs/tools/video/vcsi/default.nix
@@ -1,14 +1,20 @@
-{ lib, python3Packages, fetchPypi, ffmpeg }:
+{ lib, python3Packages, fetchFromGitHub, ffmpeg }:
 
 python3Packages.buildPythonApplication rec {
   pname = "vcsi";
-  version = "7.0.13";
+  version = "7.0.16";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "01qwbb2l8gwf622zzhh0kzdzw3njvsdwmndwn01i9bn4qm5cas8r";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "amietn";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-I0o6GX/TNMfU+rQtSqReblRplXPynPF6m2zg0YokmtI=";
   };
 
+  nativeBuildInputs = [ python3Packages.poetry-core ];
+
   propagatedBuildInputs = with python3Packages; [
     numpy
     pillow
@@ -26,6 +32,7 @@ python3Packages.buildPythonApplication rec {
     description = "Create video contact sheets";
     homepage = "https://github.com/amietn/vcsi";
     license = licenses.mit;
-    maintainers = with maintainers; [ dandellion ];
+    maintainers = with maintainers; [ dandellion zopieux ];
+    mainProgram = "vcsi";
   };
 }
diff --git a/pkgs/tools/video/vncrec/default.nix b/pkgs/tools/video/vncrec/default.nix
index 02608ac16b206..3b3391284f07b 100644
--- a/pkgs/tools/video/vncrec/default.nix
+++ b/pkgs/tools/video/vncrec/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation {
     homepage = "http://ronja.twibright.com/utils/vncrec/";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2;
+    mainProgram = "vncrec";
   };
 }
diff --git a/pkgs/tools/video/wtwitch/default.nix b/pkgs/tools/video/wtwitch/default.nix
index 9b2a9a7be0319..0035e184540c3 100644
--- a/pkgs/tools/video/wtwitch/default.nix
+++ b/pkgs/tools/video/wtwitch/default.nix
@@ -67,5 +67,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ urandom ];
     platforms = platforms.all;
+    mainProgram = "wtwitch";
   };
 }
diff --git a/pkgs/tools/video/yamdi/default.nix b/pkgs/tools/video/yamdi/default.nix
index 6665637e63712..1bcfffb929036 100644
--- a/pkgs/tools/video/yamdi/default.nix
+++ b/pkgs/tools/video/yamdi/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = [ maintainers.ryanartecona ];
+    mainProgram = "yamdi";
   };
 }
diff --git a/pkgs/tools/video/yaydl/default.nix b/pkgs/tools/video/yaydl/default.nix
index ce7e4ef8eebfb..7dea97bf649e4 100644
--- a/pkgs/tools/video/yaydl/default.nix
+++ b/pkgs/tools/video/yaydl/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     description = "Yet another youtube down loader";
     license = licenses.cddl;
     maintainers = with maintainers; [];
+    mainProgram = "yaydl";
   };
 }
diff --git a/pkgs/tools/virtualization/alpine-make-vm-image/default.nix b/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
index 501298d82d943..bb9679e061db9 100644
--- a/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
+++ b/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
@@ -1,17 +1,17 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
-, apk-tools, coreutils, e2fsprogs, findutils, gnugrep, gnused, kmod, qemu-utils
+, apk-tools, coreutils, dosfstools, e2fsprogs, findutils, gnugrep, gnused, kmod, qemu-utils
 , rsync, util-linux
 }:
 
 stdenv.mkDerivation rec {
   pname = "alpine-make-vm-image";
-  version = "0.11.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "alpinelinux";
     repo = "alpine-make-vm-image";
     rev = "v${version}";
-    sha256 = "sha256-nFgzi8jotwsP5ZG13DrBo+FMNmWNSDiKIbVF6hVtYRU=";
+    sha256 = "sha256-ilXoee19Wp/tB4f/0c7vWki+dnEPYp4f/IKzkGwxdbU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram $out/bin/alpine-make-vm-image --set PATH ${lib.makeBinPath [
-      apk-tools coreutils e2fsprogs findutils gnugrep gnused kmod qemu-utils
+      apk-tools coreutils dosfstools e2fsprogs findutils gnugrep gnused kmod qemu-utils
       rsync util-linux
     ]}
   '';
@@ -29,8 +29,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/alpinelinux/alpine-make-vm-image";
     description = "Make customized Alpine Linux disk image for virtual machines";
-    maintainers = with maintainers; [ qyliss ];
     license = licenses.mit;
+    maintainers = with maintainers; [ wegank ];
     platforms = platforms.unix;
+    mainProgram = "alpine-make-vm-image";
   };
 }
diff --git a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
index fa74aa26cec39..16b43012e2600 100644
--- a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
+++ b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ Scriptkiddi ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    mainProgram = "ecs-cli";
   };
 }
diff --git a/pkgs/tools/virtualization/awsebcli/default.nix b/pkgs/tools/virtualization/awsebcli/default.nix
index 581b7ee70ec21..594b7a30b2ed4 100644
--- a/pkgs/tools/virtualization/awsebcli/default.nix
+++ b/pkgs/tools/virtualization/awsebcli/default.nix
@@ -93,5 +93,6 @@ with localPython.pkgs; buildPythonApplication rec {
     changelog = "https://github.com/aws/aws-elastic-beanstalk-cli/blob/${version}/CHANGES.rst";
     maintainers = with maintainers; [ eqyiel kirillrdy ];
     license = licenses.asl20;
+    mainProgram = "eb";
   };
 }
diff --git a/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch b/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
index 2e293321ac02a..57fcef6fe661b 100644
--- a/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
+++ b/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
@@ -1,8 +1,8 @@
 diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
-index 7b83df8d..6d04de1a 100644
+index 79e26235..bdc32c52 100644
 --- a/cloudinit/distros/__init__.py
 +++ b/cloudinit/distros/__init__.py
-@@ -75,6 +75,7 @@ OSFAMILIES = {
+@@ -91,6 +91,7 @@ OSFAMILIES = {
      ],
      "openeuler": ["openeuler"],
      "OpenCloudOS": ["OpenCloudOS", "TencentOS"],
@@ -12,7 +12,7 @@ index 7b83df8d..6d04de1a 100644
  LOG = logging.getLogger(__name__)
 diff --git a/cloudinit/distros/nixos.py b/cloudinit/distros/nixos.py
 new file mode 100644
-index 00000000..954e564b
+index 00000000..67c049b8
 --- /dev/null
 +++ b/cloudinit/distros/nixos.py
 @@ -0,0 +1,109 @@
@@ -38,11 +38,11 @@ index 00000000..954e564b
 +#    You should have received a copy of the GNU General Public License
 +#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 +
++import logging
 +import os
 +
 +from cloudinit import distros
 +from cloudinit import helpers
-+from cloudinit import log as logging
 +from cloudinit import util
 +from cloudinit import atomic_helper
 +
diff --git a/pkgs/tools/virtualization/cloud-init/default.nix b/pkgs/tools/virtualization/cloud-init/default.nix
index edf456d3094e5..6791d7bf2b619 100644
--- a/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/pkgs/tools/virtualization/cloud-init/default.nix
@@ -17,14 +17,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloud-init";
-  version = "23.3.1";
+  version = "23.4.2";
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "cloud-init";
     rev = "refs/tags/${version}";
-    hash = "sha256-3UxTqlhLZi/3/buWqDGto4cZN03uONbA8HEWQtaIRxU=";
+    hash = "sha256-Ae6xvXZR2ikriYekZbHfXG7iL0LlT7exwaaGt5odplg=";
   };
 
   patches = [
diff --git a/pkgs/tools/virtualization/cri-tools/default.nix b/pkgs/tools/virtualization/cri-tools/default.nix
index b57ce3abb1683..70991742e789d 100644
--- a/pkgs/tools/virtualization/cri-tools/default.nix
+++ b/pkgs/tools/virtualization/cri-tools/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "cri-tools";
-  version = "1.28.0";
+  version = "1.29.0";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-inw4bPeObMlwtgFLR/8+tqRKTkcViZeEFZ1MOm0HYI4=";
+    sha256 = "sha256-64vjN0tm6P+nXjrNPeTviXOQdibuH7YbQm/LjYLxatM=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/virtualization/distrobuilder/default.nix b/pkgs/tools/virtualization/distrobuilder/default.nix
index 3619d2f25a14b..da2f1a9091565 100644
--- a/pkgs/tools/virtualization/distrobuilder/default.nix
+++ b/pkgs/tools/virtualization/distrobuilder/default.nix
@@ -8,7 +8,8 @@
 , gnutar
 , squashfsTools
 , debootstrap
-, fetchpatch
+, callPackage
+, nixosTests
 }:
 
 let
@@ -22,34 +23,20 @@ let
 in
 buildGoModule rec {
   pname = "distrobuilder";
-  version = "2.1";
+  version = "3.0";
 
-  vendorHash = "sha256-yRMsf8KfpNmVUX4Rn4ZPLUPFZCT/g78MKAfgbFDPVkE=";
+  vendorHash = "sha256-pFrEkZnrcx0d3oM1klQrNHH+MiLvO4V1uFQdE0kXUqM=";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "distrobuilder";
-    rev = "distrobuilder-${version}";
-    sha256 = "sha256-t3ECLtb0tvIzTWgjmVQDFza+kcm3abTZZMSGYjvw1qQ=";
+    rev = "refs/tags/distrobuilder-${version}";
+    sha256 = "sha256-JfME9VaqaQnrhnzhSLGUy9uU+tki1hXdnwqBUD/5XH0=";
     fetchSubmodules = false;
   };
 
   buildInputs = bins;
 
-  patches = [
-    # go.mod update: needed to to include a newer lxd which contains
-    # https://github.com/canonical/lxd/commit/d83f061a21f509d42b7a334b97403d2a019a7b52
-    # which is needed to fix the build w/glibc-2.36.
-    (fetchpatch {
-      url = "https://github.com/lxc/distrobuilder/commit/5346bcc77dd7f141a36a8da851f016d0b929835e.patch";
-      sha256 = "sha256-H6cSbY0v/FThx72AvoAvUCs2VCYN/PQ0W4H82mQQ3SI=";
-    })
-    # Fixup to keep it building after go.mod update.
-    (fetchpatch {
-      url = "https://github.com/lxc/distrobuilder/commit/2c8cbfbf603e7446efce9f30812812336ccf4f2c.patch";
-      sha256 = "sha256-qqofghcHGosR2qycGb02c8rwErFyRRhsRKdQfyah8Ds=";
-    })
-  ];
 
   # tests require a local keyserver (mkg20001/nixpkgs branch distrobuilder-with-tests) but gpg is currently broken in tests
   doCheck = false;
@@ -63,11 +50,18 @@ buildGoModule rec {
     wrapProgram $out/bin/distrobuilder --prefix PATH ":" ${lib.makeBinPath bins}
   '';
 
-  meta = with lib; {
+  passthru = {
+    tests.incus = nixosTests.incus.container;
+
+    generator = callPackage ./generator.nix { inherit src version; };
+  };
+
+  meta = {
     description = "System container image builder for LXC and LXD";
     homepage = "https://github.com/lxc/distrobuilder";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ megheaiulian ];
-    platforms = platforms.linux;
+    license = lib.licenses.asl20;
+    maintainers = lib.teams.lxc.members;
+    platforms = lib.platforms.linux;
+    mainProgram = "distrobuilder";
   };
 }
diff --git a/pkgs/tools/virtualization/distrobuilder/generator.nix b/pkgs/tools/virtualization/distrobuilder/generator.nix
new file mode 100644
index 0000000000000..e514a7df2e082
--- /dev/null
+++ b/pkgs/tools/virtualization/distrobuilder/generator.nix
@@ -0,0 +1,19 @@
+{ stdenvNoCC, lib, src, version, makeWrapper, coreutils, findutils, gnugrep, systemd }:
+
+stdenvNoCC.mkDerivation {
+  name = "distrobuilder-nixos-generator";
+
+  inherit src version;
+
+  patches = [
+    ./nixos-generator.patch
+  ];
+
+  dontBuild = true;
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    install -D -m 0555 distrobuilder/lxc.generator $out/lib/systemd/system-generators/lxc
+    wrapProgram $out/lib/systemd/system-generators/lxc --prefix PATH : ${lib.makeBinPath [coreutils findutils gnugrep systemd]}:${systemd}/lib/systemd
+  '';
+}
diff --git a/pkgs/tools/virtualization/distrobuilder/nixos-generator.patch b/pkgs/tools/virtualization/distrobuilder/nixos-generator.patch
new file mode 100644
index 0000000000000..6194f33e19185
--- /dev/null
+++ b/pkgs/tools/virtualization/distrobuilder/nixos-generator.patch
@@ -0,0 +1,113 @@
+diff --git a/distrobuilder/lxc.generator b/distrobuilder/lxc.generator
+index 0ad81d1..69dbfe7 100644
+--- a/distrobuilder/lxc.generator
++++ b/distrobuilder/lxc.generator
+@@ -25,16 +25,6 @@ is_incus_vm() {
+ 	[ -e /dev/virtio-ports/org.linuxcontainers.incus ]
+ }
+ 
+-# is_in_path succeeds if the given file exists in on of the paths
+-is_in_path() {
+-	# Don't use $PATH as that may not include all relevant paths
+-	for path in /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin; do
+-		[ -e "${path}/$1" ] && return 0
+-	done
+-
+-	return 1
+-}
+-
+ ## Fix functions
+ # fix_ro_paths avoids udevd issues with /sys and /proc being writable
+ fix_ro_paths() {
+@@ -45,35 +35,6 @@ BindReadOnlyPaths=/sys /proc
+ EOF
+ }
+ 
+-# fix_nm_link_state forces the network interface to a DOWN state ahead of NetworkManager starting up
+-fix_nm_link_state() {
+-	[ -e "/sys/class/net/$1" ] || return 0
+-	ip_path=
+-	if [ -f /sbin/ip ]; then
+-		ip_path=/sbin/ip
+-	elif [ -f /bin/ip ]; then
+-		ip_path=/bin/ip
+-	else
+-		return 0
+-	fi
+-	cat <<-EOF > /run/systemd/system/network-device-down.service
+-[Unit]
+-Description=Turn off network device
+-Before=NetworkManager.service
+-Before=systemd-networkd.service
+-[Service]
+-# do not turn off if there is a default route to 169.254.0.1, i.e. the device is a routed nic
+-ExecCondition=/bin/sh -c '! /usr/bin/grep -qs 00000000.0100FEA9 /proc/net/route'
+-ExecStart=-${ip_path} link set $1 down
+-Type=oneshot
+-RemainAfterExit=true
+-[Install]
+-WantedBy=default.target
+-EOF
+-	mkdir -p /run/systemd/system/default.target.wants
+-	ln -sf /run/systemd/system/network-device-down.service /run/systemd/system/default.target.wants/network-device-down.service
+-}
+-
+ # fix_systemd_override_unit generates a unit specific override
+ fix_systemd_override_unit() {
+ 	dropin_dir="/run/systemd/${1}.d"
+@@ -112,16 +73,7 @@ fix_systemd_mask() {
+ # fix_systemd_udev_trigger overrides the systemd-udev-trigger.service to match the latest version
+ # of the file which uses "ExecStart=-" instead of "ExecStart=".
+ fix_systemd_udev_trigger() {
+-	cmd=
+-	if [ -f /usr/bin/udevadm ]; then
+-		cmd=/usr/bin/udevadm
+-	elif [ -f /sbin/udevadm ]; then
+-		cmd=/sbin/udevadm
+-	elif [ -f /bin/udevadm ]; then
+-		cmd=/bin/udevadm
+-	else
+-		return 0
+-	fi
++	cmd=udevadm
+ 
+ 	mkdir -p /run/systemd/system/systemd-udev-trigger.service.d
+ 	cat <<-EOF > /run/systemd/system/systemd-udev-trigger.service.d/zzz-lxc-override.conf
+@@ -145,24 +97,12 @@ EOF
+ }
+ 
+ ## Main logic
+-# Nothing to do in Incus VM but deployed in case it is later converted to a container
+-is_incus_vm || is_lxd_vm && exit 0
+ 
+ # Exit immediately if not an Incus/LXC container
+ is_lxc_container || exit 0
+ 
+-# Check for NetworkManager
+-nm_exists=0
+-
+-is_in_path NetworkManager && nm_exists=1
+-
+ # Determine systemd version
+-for path in /usr/lib/systemd/systemd /lib/systemd/systemd; do
+-	[ -x "${path}" ] || continue
+-
+-	systemd_version="$("${path}" --version | head -n1 | cut -d' ' -f2)"
+-	break
+-done
++systemd_version="$(systemd --version | head -n1 | cut -d' ' -f2)"
+ 
+ # Determine distro name and release
+ ID=""
+@@ -222,11 +162,6 @@ ACTION=="add|change|move", ENV{ID_NET_DRIVER}=="veth", ENV{INTERFACE}=="eth[0-9]
+ EOF
+ fi
+ 
+-# Workarounds for NetworkManager in containers
+-if [ "${nm_exists}" -eq 1 ]; then
+-	fix_nm_link_state eth0
+-fi
+-
+ # Allow masking units created by the lxc system-generator.
+ for d in /etc/systemd/system /usr/lib/systemd/system /lib/systemd/system; do
+ 	if ! [ -d "${d}" ]; then
diff --git a/pkgs/tools/virtualization/dockstarter/default.nix b/pkgs/tools/virtualization/dockstarter/default.nix
index 321722d753a3e..40c6858da6a85 100644
--- a/pkgs/tools/virtualization/dockstarter/default.nix
+++ b/pkgs/tools/virtualization/dockstarter/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "DockSTARTer helps you get started with running apps in Docker.";
+    description = "Make it quick and easy to get up and running with Docker";
     homepage = "https://dockstarter.com";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/tools/virtualization/extra-container/default.nix b/pkgs/tools/virtualization/extra-container/default.nix
index 894622d74eb0c..71ba276f4bd42 100644
--- a/pkgs/tools/virtualization/extra-container/default.nix
+++ b/pkgs/tools/virtualization/extra-container/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.erikarvstedt ];
+    mainProgram = "extra-container";
   };
 }
diff --git a/pkgs/tools/virtualization/govc/default.nix b/pkgs/tools/virtualization/govc/default.nix
index 43f8cfd2143c6..e3fd16538e4d3 100644
--- a/pkgs/tools/virtualization/govc/default.nix
+++ b/pkgs/tools/virtualization/govc/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "govc";
-  version = "0.32.0";
+  version = "0.34.2";
 
   subPackages = [ "govc" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "vmware";
     repo = "govmomi";
-    sha256 = "sha256-GnMWgN6ZxxGU/tRAPIk2cvpsBiut97iPcU9920wepxM=";
+    sha256 = "sha256-UrGHuzUZvXWZRy4VJ1HlMBs2C8MuaUYhM6dlYIoG7vE=";
   };
 
-  vendorHash = "sha256-mf9ZYZEmqB/47JLHn8N3VDr57SXbFLubXnwfXj682FA=";
+  vendorHash = "sha256-1Y2Q2Ep3aqhUCSWey+sD4m7CgVEjlPt6ri3OKV8eERU=";
 
   ldflags = [
     "-s"
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/vmware/govmomi/tree/master/govc";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ nicknovitski ];
+    mainProgram = "govc";
   };
 }
diff --git a/pkgs/tools/virtualization/guestfs-tools/default.nix b/pkgs/tools/virtualization/guestfs-tools/default.nix
index 2b7cfb79d8702..e78bd106993d2 100644
--- a/pkgs/tools/virtualization/guestfs-tools/default.nix
+++ b/pkgs/tools/virtualization/guestfs-tools/default.nix
@@ -111,7 +111,7 @@ stdenv.mkDerivation rec {
     description = "Extra tools for accessing and modifying virtual machine disk images";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     homepage = "https://libguestfs.org/";
-    maintainers = with maintainers; [ thiagokokada ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/virtualization/jumppad/default.nix b/pkgs/tools/virtualization/jumppad/default.nix
index a993fe9484d26..8879c0f4379f1 100644
--- a/pkgs/tools/virtualization/jumppad/default.nix
+++ b/pkgs/tools/virtualization/jumppad/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "jumppad";
-  version = "0.5.51";
+  version = "0.5.59";
 
   src = fetchFromGitHub {
     owner = "jumppad-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Az/rNkGwwrYZfay+KjINjIT2PNsoGDNCwZnXZTeKqM4=";
+    hash = "sha256-ObDbZ3g+BtH8JCqLIa+gR69GowZA8T9HMPuKNDgW3uA=";
   };
-  vendorHash = "sha256-onUs7ZbnzJGbs+Q+1jvqUp9y9ecOxhtcdx/fkxZntmc=";
+  vendorHash = "sha256-9DLDc6zI0BYd2AK9xwqFNJTFdKXagkdPwczLhCvud94=";
 
   ldflags = [
     "-s" "-w" "-X main.version=${version}"
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://jumppad.dev";
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "jumppad";
   };
 }
diff --git a/pkgs/tools/virtualization/kubevirt/default.nix b/pkgs/tools/virtualization/kubevirt/default.nix
index 50a240cce77c5..519ffa83e6608 100644
--- a/pkgs/tools/virtualization/kubevirt/default.nix
+++ b/pkgs/tools/virtualization/kubevirt/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "kubevirt";
-  version = "1.0.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "kubevirt";
     repo = "kubevirt";
     rev = "v${version}";
-    sha256 = "sha256-1Idfz2cMiIivroEkdRAA1x4v0BVACLoNCKSBS5o+wr4=";
+    hash = "sha256-4r85RDfndLUjpAmipe3oLFcGzD4GRfPgf7wku2unoes=";
   };
 
   vendorHash = null;
@@ -49,5 +49,6 @@ buildGoModule rec {
     homepage = "https://kubevirt.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ haslersn ];
+    mainProgram = "virtctl";
   };
 }
diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix
index e25fcb3a19bc5..a4f54ec86177b 100644
--- a/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/pkgs/tools/virtualization/linode-cli/default.nix
@@ -8,29 +8,33 @@
 , requests
 , setuptools
 , terminaltables
+, rich
+, openapi3
+, packaging
 }:
 
 let
-  sha256 = "0r5by5d6wr5zbsaj211s99qg28nr7wm8iri6jxnksx5b375dah6g";
+  hash = "sha256-J0L+FTVzYuAqTDOwpoH12lQr03UNo5dsQpd/iUKR40Q=";
   # specVersion taken from: https://www.linode.com/docs/api/openapi.yaml at `info.version`.
-  specVersion = "4.140.0";
-  specSha256 = "0ay54m4aa8bmmpjc7s66rfzqzk4w25h48b9a665y29g67ybb432g";
+  specVersion = "4.166.0";
+  specHash = "sha256-rUwKQt3y/ALZUoW3eJiiIDJYLQpUHO7Abm0h09ra02g=";
   spec = fetchurl {
     url = "https://raw.githubusercontent.com/linode/linode-api-docs/v${specVersion}/openapi.yaml";
-    sha256 = specSha256;
+    hash = specHash;
   };
 
 in
 
 buildPythonApplication rec {
   pname = "linode-cli";
-  version = "5.26.1";
+  version = "5.45.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "linode";
     repo = pname;
-    rev = version;
-    inherit sha256;
+    rev = "v${version}";
+    inherit hash;
   };
 
   patches = [
@@ -40,7 +44,7 @@ buildPythonApplication rec {
   # remove need for git history
   prePatch = ''
     substituteInPlace setup.py \
-      --replace "version=get_version()," "version='${version}',"
+      --replace "version = get_version()" "version='${version}',"
   '';
 
   propagatedBuildInputs = [
@@ -49,11 +53,15 @@ buildPythonApplication rec {
     requests
     setuptools
     terminaltables
+    rich
+    openapi3
+    packaging
   ];
 
   postConfigure = ''
     python3 -m linodecli bake ${spec} --skip-config
     cp data-3 linodecli/
+    echo "${version}" > baked_version
   '';
 
   doInstallCheck = true;
@@ -69,9 +77,10 @@ buildPythonApplication rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
+    mainProgram = "linode-cli";
     description = "The Linode Command Line Interface";
     homepage = "https://github.com/linode/linode-cli";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ryantm ];
+    maintainers = with maintainers; [ ryantm techknowlogick ];
   };
 }
diff --git a/pkgs/tools/virtualization/linode-cli/remove-update-check.patch b/pkgs/tools/virtualization/linode-cli/remove-update-check.patch
index 316d2855b1f45..f26b30edf72d0 100644
--- a/pkgs/tools/virtualization/linode-cli/remove-update-check.patch
+++ b/pkgs/tools/virtualization/linode-cli/remove-update-check.patch
@@ -1,11 +1,13 @@
---- a/linodecli/cli.py
-+++ b/linodecli/cli.py
-@@ -555,7 +555,7 @@
-         if self.debug_request:
-             self.print_response_debug_info(result)
- 
--        if not self.suppress_warnings:
-+        if False:
-             # check the major/minor version API reported against what we were built
-             # with to see if an upgrade should be available
-             api_version_higher = False
+diff --git a/linodecli/api_request.py b/linodecli/api_request.py
+index 4273aa6..3ada5c2 100644
+--- a/linodecli/api_request.py
++++ b/linodecli/api_request.py
+@@ -305,7 +305,7 @@ def _attempt_warn_old_version(ctx, result):
+                 file=sys.stderr,
+             )
+
+-    if api_version_higher:
++    if False:
+         # check to see if there is, in fact, a version to upgrade to.  If not, don't
+         # suggest an upgrade (since there's no package anyway)
+         new_version_exists = False
\ No newline at end of file
diff --git a/pkgs/tools/virtualization/linode-cli/update.sh b/pkgs/tools/virtualization/linode-cli/update.sh
index f232dd1e03b09..8bd0bfe8602ec 100755
--- a/pkgs/tools/virtualization/linode-cli/update.sh
+++ b/pkgs/tools/virtualization/linode-cli/update.sh
@@ -18,13 +18,13 @@ VERSION=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
     | grep -v -e rc -e list \
     | cut -d '"' -f4 | sort -rV | head -n 1)
 
-SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linode/linode-cli/archive/refs/tags/${VERSION}.tar.gz)
+SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linode/linode-cli/archive/refs/tags/v${VERSION}.tar.gz)
 
 setKV () {
     sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./default.nix
 }
 
 setKV specVersion ${SPEC_VERSION}
-setKV specSha256 ${SPEC_SHA256}
+setKV specHash ${SPEC_SHA256}
 setKV version ${VERSION}
-setKV sha256 ${SHA256}
+setKV hash ${SHA256}
diff --git a/pkgs/tools/virtualization/lxd-image-server/default.nix b/pkgs/tools/virtualization/lxd-image-server/default.nix
index aeb6ac336932c..43f46a8a72fcd 100644
--- a/pkgs/tools/virtualization/lxd-image-server/default.nix
+++ b/pkgs/tools/virtualization/lxd-image-server/default.nix
@@ -46,5 +46,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "lxd-image-server";
   };
 }
diff --git a/pkgs/tools/virtualization/marathonctl/default.nix b/pkgs/tools/virtualization/marathonctl/default.nix
index e8f27e00d851c..85576b4f66402 100644
--- a/pkgs/tools/virtualization/marathonctl/default.nix
+++ b/pkgs/tools/virtualization/marathonctl/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "CLI tool for Marathon";
     license = licenses.mit;
     maintainers = with maintainers; [ manveru ];
+    mainProgram = "marathonctl";
   };
 }
diff --git a/pkgs/tools/virtualization/mininet/default.nix b/pkgs/tools/virtualization/mininet/default.nix
index ccc79d36c8f62..3d7339bf56b63 100644
--- a/pkgs/tools/virtualization/mininet/default.nix
+++ b/pkgs/tools/virtualization/mininet/default.nix
@@ -1,15 +1,42 @@
 { stdenv, lib, fetchFromGitHub
+, runCommand
 , which
 , python3
 , help2man
+, makeWrapper
+, ethtool
+, inetutils
+, iperf
+, iproute2
+, nettools
+, socat
 }:
 
 let
   pyEnv = python3.withPackages(ps: [ ps.setuptools ]);
+
+  telnet = runCommand "inetutils-telnet"
+    { }
+    ''
+      mkdir -p "$out/bin"
+      ln -s "${inetutils}"/bin/telnet "$out/bin"
+    '';
+
+  generatedPath = lib.makeSearchPath "bin" [
+    iperf
+    ethtool
+    iproute2
+    socat
+    # mn errors out without a telnet binary
+    # pkgs.inetutils brings an undesired ifconfig into PATH see #43105
+    nettools
+    telnet
+  ];
+
 in
 stdenv.mkDerivation rec {
   pname = "mininet";
-  version = "2.3.0";
+  version = "2.3.1b4";
 
   outputs = [ "out" "py" ];
 
@@ -17,14 +44,14 @@ stdenv.mkDerivation rec {
     owner = "mininet";
     repo = "mininet";
     rev = version;
-    sha256 = "sha256-bCppmeB+zQMKTptnzhsXtl72XJXU3USo7cQgP1Z6SrY=";
+    hash = "sha256-Z7Vbfu0EJ4+rCpckXrt3hgxeB9N2nnyPIXgPBnpV4uw=";
   };
 
   buildFlags = [ "mnexec" ];
   makeFlags = [ "PREFIX=$(out)" ];
 
   pythonPath = [ python3.pkgs.setuptools ];
-  nativeBuildInputs = [ help2man ];
+  nativeBuildInputs = [ help2man makeWrapper python3.pkgs.wrapPython ];
 
   propagatedBuildInputs = [ python3 which ];
 
@@ -33,7 +60,18 @@ stdenv.mkDerivation rec {
   preInstall = ''
     mkdir -p $out $py
     # without --root, install fails
-    ${pyEnv.interpreter} setup.py install --root="/" --prefix=$py
+    "${pyEnv.interpreter}" setup.py install \
+      --root="/" \
+      --prefix="$py" \
+      --install-scripts="$out/bin"
+  '';
+
+  postFixup = ''
+    wrapPythonProgramsIn "$out/bin" "$py $pythonPath"
+    wrapProgram "$out/bin/mnexec" \
+      --prefix PATH : "${generatedPath}"
+    wrapProgram "$out/bin/mn" \
+      --prefix PATH : "${generatedPath}"
   '';
 
   doCheck = false;
@@ -41,11 +79,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Emulator for rapid prototyping of Software Defined Networks";
-    license = {
-      fullName = "Mininet 2.3.0 License";
-    };
+    license = licenses.bsd3;
     platforms = platforms.linux;
     homepage = "https://github.com/mininet/mininet";
     maintainers = with maintainers; [ teto ];
+    mainProgram = "mnexec";
   };
 }
diff --git a/pkgs/tools/virtualization/mkosi/default.nix b/pkgs/tools/virtualization/mkosi/default.nix
index 1c99d63741a79..12f752432e4d2 100644
--- a/pkgs/tools/virtualization/mkosi/default.nix
+++ b/pkgs/tools/virtualization/mkosi/default.nix
@@ -5,6 +5,14 @@
 , python3
 , bubblewrap
 , systemd
+, pandoc
+, kmod
+, gnutar
+, util-linux
+, cpio
+, bash
+, coreutils
+, btrfs-progs
 
   # Python packages
 , setuptools
@@ -22,20 +30,7 @@
 let
   # For systemd features used by mkosi, see
   # https://github.com/systemd/mkosi/blob/19bb5e274d9a9c23891905c4bcbb8f68955a701d/action.yaml#L64-L72
-  systemdForMkosi = (systemd.overrideAttrs (oldAttrs: {
-    patches = oldAttrs.patches ++ [
-      # Enable setting a deterministic verity seed for systemd-repart. Remove when upgrading to systemd 255.
-      (fetchpatch {
-        url = "https://github.com/systemd/systemd/commit/81e04781106e3db24e9cf63c1d5fdd8215dc3f42.patch";
-        hash = "sha256-KO3poIsvdeepPmXWQXNaJJCPpmBb4sVmO+ur4om9f5k=";
-      })
-      # Propagate SOURCE_DATE_EPOCH to mcopy. Remove when upgrading to systemd 255.
-      (fetchpatch {
-        url = "https://github.com/systemd/systemd/commit/4947de275a5553399854cc748f4f13e4ae2ba069.patch";
-        hash = "sha256-YIZZyc3f8pQO9fMAxiNhDdV8TtL4pXoh+hwHBzRWtfo=";
-      })
-    ];
-  })).override {
+  systemdForMkosi = systemd.override {
     withRepart = true;
     withBootloader = true;
     withSysusers = true;
@@ -50,14 +45,16 @@ let
 in
 buildPythonApplication rec {
   pname = "mkosi";
-  version = "18";
+  version = "20.1";
   format = "pyproject";
 
+  outputs = [ "out" "man" ];
+
   src = fetchFromGitHub {
     owner = "systemd";
     repo = "mkosi";
     rev = "v${version}";
-    hash = "sha256-bnd2P6lq1XqKed3m4hDYrR9IcdrPaJxNBL2Z6jCruV4=";
+    hash = "sha256-gkn5d9ybfrV/QYKSUyzyHAouU++NCEBDT22zFMrEZt8=";
   };
 
   # Fix ctypes finding library
@@ -74,31 +71,48 @@ buildPythonApplication rec {
   '';
 
   nativeBuildInputs = [
+    pandoc
     setuptools
     setuptools-scm
     wheel
   ];
 
-  makeWrapperArgs = [
-    "--set MKOSI_INTERPRETER ${python3pefile}/bin/python3"
-  ];
-
   propagatedBuildInputs = [
-    systemdForMkosi
+    bash
+    btrfs-progs
     bubblewrap
+    coreutils
+    cpio
+    gnutar
+    kmod
+    systemdForMkosi
+    util-linux
   ] ++ lib.optional withQemu [
     qemu
   ];
 
-  postInstall = ''
-    wrapProgram $out/bin/mkosi \
-      --prefix PYTHONPATH : "$PYTHONPATH"
+  postBuild = ''
+    ./tools/make-man-page.sh
   '';
 
   checkInputs = [
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "mkosi"
+  ];
+
+  postInstall = ''
+    mkdir -p $out/share/man/man1
+    mv mkosi/resources/mkosi.1 $out/share/man/man1/
+  '';
+
+  makeWrapperArgs = [
+    "--set MKOSI_INTERPRETER ${python3pefile}/bin/python3"
+    "--prefix PYTHONPATH : \"$PYTHONPATH\""
+  ];
+
   meta = with lib; {
     description = "Build legacy-free OS images";
     homepage = "https://github.com/systemd/mkosi";
diff --git a/pkgs/tools/virtualization/multipass/cmake_no_fetch.patch b/pkgs/tools/virtualization/multipass/cmake_no_fetch.patch
index fc1c472ef3a63..bde1792d40029 100644
--- a/pkgs/tools/virtualization/multipass/cmake_no_fetch.patch
+++ b/pkgs/tools/virtualization/multipass/cmake_no_fetch.patch
@@ -7,7 +7,7 @@ index 188ebfc6..4a34a922 100644
  
  FetchContent_Declare(gRPC
 -  GIT_REPOSITORY https://github.com/CanonicalLtd/grpc.git
--  GIT_TAG ba8e7f72
+-  GIT_TAG e3acf245
 -  GIT_SHALLOW TRUE
 -  GIT_SUBMODULES "third_party/abseil-cpp third_party/cares/cares third_party/protobuf third_party/re2 third_party/zlib"
 -  GIT_SUBMODULES_RECURSE false
diff --git a/pkgs/tools/virtualization/multipass/cmake_warning.patch b/pkgs/tools/virtualization/multipass/cmake_warning.patch
new file mode 100644
index 0000000000000..846cba0690fb1
--- /dev/null
+++ b/pkgs/tools/virtualization/multipass/cmake_warning.patch
@@ -0,0 +1,14 @@
+diff --git a/src/cert/CMakeLists.txt b/src/cert/CMakeLists.txt
+index d44a0b09..de440f24 100644
+--- a/src/cert/CMakeLists.txt
++++ b/src/cert/CMakeLists.txt
+@@ -22,7 +22,7 @@ add_library(cert STATIC
+ target_include_directories(cert PRIVATE
+   ${OPENSSL_INCLUDE_DIR})
+ 
+-foreach(flag -Wno-nested-anon-types -Wno-gnu -Wno-pedantic -Wno-ignored-qualifiers)
++foreach(flag -Wno-nested-anon-types -Wno-gnu -Wno-pedantic -Wno-ignored-qualifiers -Wno-ignored-attributes)
+   check_cxx_compiler_flag(${flag} SUPPORTED)
+   if(SUPPORTED)
+     target_compile_options(cert PRIVATE ${flag})
+
diff --git a/pkgs/tools/virtualization/multipass/default.nix b/pkgs/tools/virtualization/multipass/default.nix
index bf03b86367993..4d1bf855ad6f6 100644
--- a/pkgs/tools/virtualization/multipass/default.nix
+++ b/pkgs/tools/virtualization/multipass/default.nix
@@ -16,16 +16,16 @@
 , qemu
 , qemu-utils
 , qtbase
-, qtx11extras
+, qtwayland
+, wrapQtAppsHook
 , slang
 , stdenv
-, wrapQtAppsHook
 , xterm
 }:
 
 let
   pname = "multipass";
-  version = "1.12.1";
+  version = "1.13.0";
 
   # This is done here because a CMakeLists.txt from one of it's submodules tries
   # to modify a file, so we grab the source for the submodule here, copy it into
@@ -33,8 +33,8 @@ let
   grpc_src = fetchFromGitHub {
     owner = "CanonicalLtd";
     repo = "grpc";
-    rev = "ba8e7f72a57b9e0b25783a4d3cea58c79379f194";
-    hash = "sha256-DS1UNLCUdbipn5w4p2aVa8LgHHhdJiAfzfEdIXNO69o=";
+    rev = "e3acf245";
+    hash = "sha256-tDc2iGxIV68Yi4RL8ES4yglJNlu8yH6FlpVvZoWjoXk=";
     fetchSubmodules = true;
   };
 in
@@ -46,13 +46,20 @@ stdenv.mkDerivation
     owner = "canonical";
     repo = "multipass";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8wRho/ECWxiE6rNqjBzaqFaIdhXzOzFuCcQ4zzfSmb4=";
+    hash = "sha256-DMyIvhlkMuUyOlUw8b4312NUtpK0n8rI8nhoV6Dscyo=";
     fetchSubmodules = true;
+    leaveDotGit = true;
+    postFetch = ''
+      # Workaround for https://github.com/NixOS/nixpkgs/issues/8567
+      cd $out
+      rm -rf .git
+    '';
   };
 
   patches = [
     ./lxd_socket_path.patch
     ./cmake_no_fetch.patch
+    ./cmake_warning.patch
   ];
 
   postPatch = ''
@@ -97,7 +104,7 @@ stdenv.mkDerivation
     libxml2
     openssl
     qtbase
-    qtx11extras
+    qtwayland
   ];
 
   nativeBuildInputs = [
@@ -127,7 +134,7 @@ stdenv.mkDerivation
   };
 
   meta = with lib; {
-    description = "Ubuntu VMs on demand for any workstation.";
+    description = "Ubuntu VMs on demand for any workstation";
     homepage = "https://multipass.run";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jnsgruk ];
diff --git a/pkgs/tools/virtualization/nixos-shell/default.nix b/pkgs/tools/virtualization/nixos-shell/default.nix
index 59225a5162e38..6f7340835523f 100644
--- a/pkgs/tools/virtualization/nixos-shell/default.nix
+++ b/pkgs/tools/virtualization/nixos-shell/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
     platforms = platforms.unix;
+    mainProgram = "nixos-shell";
   };
 }
diff --git a/pkgs/tools/virtualization/onmetal-image/default.nix b/pkgs/tools/virtualization/onmetal-image/default.nix
index 7e324fc03cc35..2b535dfb6d938 100644
--- a/pkgs/tools/virtualization/onmetal-image/default.nix
+++ b/pkgs/tools/virtualization/onmetal-image/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/onmetal/onmetal-image";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "onmetal-image";
   };
 }
diff --git a/pkgs/tools/virtualization/ovftool/default.nix b/pkgs/tools/virtualization/ovftool/default.nix
index 5f501647783e8..9bdf4429ff165 100644
--- a/pkgs/tools/virtualization/ovftool/default.nix
+++ b/pkgs/tools/virtualization/ovftool/default.nix
@@ -4,7 +4,8 @@
 }:
 
 let
-  version = "4.5.0-20459872";
+  version = "4.6.2-22220919";
+  version_i686 = "4.6.0-21452615";
 
   ovftoolZipUnpackPhase = ''
     runHook preUnpack
@@ -23,15 +24,15 @@ let
     baseUrl = "https://vdc-download.vmware.com/vmwb-repository/dcr-public";
   in {
     "i686-linux" = rec {
-      filename = "VMware-ovftool-${version}-lin.i386.zip";
-      url = "${baseUrl}/b70b2ad5-861a-4c11-b081-e541586bf934/57109c63-6b80-4ced-95f2-1b7255200a36/${filename}";
-      sha256 = "11zs5dm4gmssm94s501p66l4s8v9p7prrd87cfa903mwmyp0ihnx";
+      name = "VMware-ovftool-${version_i686}-lin.i386.zip";
+      url = "${baseUrl}/7254abb2-434d-4f5d-83e2-9311ced9752e/57e666a2-874c-48fe-b1d2-4b6381f7fe97/${name}";
+      hash = "sha256-qEOr/3SW643G5ZQQNJTelZbUxB8HmxPd5uD+Gqsoxz0=";
       unpackPhase = ovftoolZipUnpackPhase;
     };
     "x86_64-linux" = rec {
-      filename = "VMware-ovftool-${version}-lin.x86_64.zip";
-      url = "${baseUrl}/f87355ff-f7a9-4532-b312-0be218a92eac/b2916af6-9f4f-4112-adac-49d1d6c81f63/${filename}";
-      sha256 = "1fkm18yfkkm92m7ccl6b4nxy5lagwwldq56b567091a5sgad38zw";
+      name = "VMware-ovftool-${version}-lin.x86_64.zip";
+      url = "${baseUrl}/8a93ce23-4f88-4ae8-b067-ae174291e98f/c609234d-59f2-4758-a113-0ec5bbe4b120/${name}";
+      hash = "sha256-3B1cUDldoTqLsbSARj2abM65nv+Ot0z/Fa35/klJXEY=";
       unpackPhase = ovftoolZipUnpackPhase;
     };
   };
@@ -44,9 +45,7 @@ let
                     ovftoolBundles.${system}
                   else
                     fetchurl {
-                      name = ovftoolSystem.filename;
-                      url = ovftoolSystem.url;
-                      sha256 = ovftoolSystem.sha256;
+                      inherit (ovftoolSystem) name url hash;
                     };
 in
 stdenv.mkDerivation rec {
@@ -55,9 +54,6 @@ stdenv.mkDerivation rec {
 
   src = ovftoolSource;
 
-  # Maintainers: try downloading a NixOS OVA and run the following to test:
-  # `./result/bin/ovftool https://channels.nixos.org/nixos-unstable/latest-nixos-x86_64-linux.ova nixos.ovf`
-  # Some dependencies are not loaded until operations actually occur!
   buildInputs = [
     glibc
     libxcrypt-legacy
@@ -149,5 +145,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ numinit wolfangaukang ];
     platforms = builtins.attrNames ovftoolSystems;
+    mainProgram = "ovftool";
   };
 }
diff --git a/pkgs/tools/virtualization/reg/default.nix b/pkgs/tools/virtualization/reg/default.nix
index 84aecc3ff671d..545b208035b3c 100644
--- a/pkgs/tools/virtualization/reg/default.nix
+++ b/pkgs/tools/virtualization/reg/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/genuinetools/reg";
     license = licenses.mit;
     maintainers = with maintainers; [ ereslibre ];
+    mainProgram = "reg";
   };
 }
diff --git a/pkgs/tools/virtualization/supermin/default.nix b/pkgs/tools/virtualization/supermin/default.nix
index b970b66a8f64b..b7600f6bb898f 100644
--- a/pkgs/tools/virtualization/supermin/default.nix
+++ b/pkgs/tools/virtualization/supermin/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ qyliss ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "supermin";
   };
 })
diff --git a/pkgs/tools/virtualization/udocker/default.nix b/pkgs/tools/virtualization/udocker/default.nix
index 4fbccf813f2f3..e13376211a895 100644
--- a/pkgs/tools/virtualization/udocker/default.nix
+++ b/pkgs/tools/virtualization/udocker/default.nix
@@ -53,6 +53,7 @@ python3Packages.buildPythonApplication rec {
     license = licenses.asl20;
     maintainers = [ maintainers.bzizou ];
     platforms = platforms.linux;
+    mainProgram = "udocker";
   };
 
 }
diff --git a/pkgs/tools/virtualization/uefi-run/default.nix b/pkgs/tools/virtualization/uefi-run/default.nix
index 9486995538ce5..9d954d9ed03d8 100644
--- a/pkgs/tools/virtualization/uefi-run/default.nix
+++ b/pkgs/tools/virtualization/uefi-run/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Richard-W/uefi-run";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "uefi-run";
   };
 }
diff --git a/pkgs/tools/virtualization/vpsfree-client/default.nix b/pkgs/tools/virtualization/vpsfree-client/default.nix
index 749f6820320bf..cffdc267e53c1 100644
--- a/pkgs/tools/virtualization/vpsfree-client/default.nix
+++ b/pkgs/tools/virtualization/vpsfree-client/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     maintainers = with maintainers; [ aither64 zimbatm ];
     license = licenses.gpl3;
     platforms = platforms.unix;
+    mainProgram = "vpsfreectl";
   };
 }
diff --git a/pkgs/tools/virtualization/xe-guest-utilities/default.nix b/pkgs/tools/virtualization/xe-guest-utilities/default.nix
index e78b36c9f84f9..e1b89a562a8f1 100644
--- a/pkgs/tools/virtualization/xe-guest-utilities/default.nix
+++ b/pkgs/tools/virtualization/xe-guest-utilities/default.nix
@@ -6,16 +6,17 @@
 
 buildGoModule rec {
   pname = "xe-guest-utilities";
-  version = "7.30.0";
+  version = "8.4.0";
 
   src = fetchFromGitHub {
     owner = "xenserver";
     repo = "xe-guest-utilities";
     rev = "v${version}";
-    hash = "sha256-gMb8QIUg8t0SiTtUzqeh4XM5hHgCXuf5KlV3OeoU0LI=";
+    hash = "sha256-LpZx+Km2qRywYK/eFLP3aCDku6K6HC4+MzEODH+8Gvs=";
   };
 
-  vendorHash = "sha256-zhpDvo8iujE426/gxJY+Pqfv99vLNKHqyMQbbXIKodY=";
+  deleteVendor = true;
+  vendorHash = "sha256-X/BI+ZhoqCGCmJfccyEBVgZc70aRTp3rL5j+rBWG5fE=";
 
   postPatch = ''
     substituteInPlace mk/xen-vcpu-hotplug.rules \
diff --git a/pkgs/tools/virtualization/xen-guest-agent/default.nix b/pkgs/tools/virtualization/xen-guest-agent/default.nix
new file mode 100644
index 0000000000000..52924b2b624f6
--- /dev/null
+++ b/pkgs/tools/virtualization/xen-guest-agent/default.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  fetchFromGitLab,
+  rustPlatform,
+  llvmPackages,
+  xen-light,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "xen-guest-agent";
+  version = "0.3.0";
+
+  src = fetchFromGitLab {
+    owner = "xen-project";
+    repo = pname;
+    rev = version;
+    hash = "sha256-Csio24ofj+p0j/R0av/28P/KCNXhmcF+r8xGJEfoHjQ=";
+  };
+
+  cargoHash = "sha256-XWDDzSu88zCIwMuvkFjCb98DzXHvW2IP9u3EbpAMIgw=";
+
+  env = {
+    LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
+    BINDGEN_EXTRA_CLANG_ARGS = "-isystem ${xen-light}/include";
+    RUSTFLAGS = "-L ${xen-light}/lib";
+  };
+
+  nativeBuildInputs = [llvmPackages.clang xen-light];
+
+  postFixup = ''
+    patchelf $out/bin/xen-guest-agent --add-rpath ${xen-light}/lib
+  '';
+
+  meta = with lib; {
+    description = "Xen agent running in Linux/BSDs (POSIX) VMs";
+    homepage = "https://gitlab.com/xen-project/xen-guest-agent";
+    license = licenses.agpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [matdibu];
+  };
+}
diff --git a/pkgs/tools/virtualization/xva-img/default.nix b/pkgs/tools/virtualization/xva-img/default.nix
index 4fe2e5bbb40ba..bb5c9d5a59929 100644
--- a/pkgs/tools/virtualization/xva-img/default.nix
+++ b/pkgs/tools/virtualization/xva-img/default.nix
@@ -16,9 +16,10 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl ];
 
   meta = {
-    maintainers = with lib.maintainers; [ lheckemann willibutz globin ];
+    maintainers = with lib.maintainers; [ lheckemann willibutz ];
     description = "Tool for converting Xen images to raw and back";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
+    mainProgram = "xva-img";
   };
 }
diff --git a/pkgs/tools/wayland/aw-watcher-window-wayland/Cargo.lock b/pkgs/tools/wayland/aw-watcher-window-wayland/Cargo.lock
new file mode 100644
index 0000000000000..b1cc23695b307
--- /dev/null
+++ b/pkgs/tools/wayland/aw-watcher-window-wayland/Cargo.lock
@@ -0,0 +1,1689 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "appdirs"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d512b3e61196d27562dcc71446a58ba8a93d3bed2a03a87f96101b9a17f1d378"
+dependencies = [
+ "ole32-sys",
+ "shell32-sys",
+ "winapi 0.2.8",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "aw-client-rust"
+version = "0.1.0"
+source = "git+https://github.com/ActivityWatch/aw-server-rust.git#bd547add68b1028f018f25727799a48acb3188a2"
+dependencies = [
+ "aw-models",
+ "chrono",
+ "gethostname 0.4.1",
+ "reqwest",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "aw-models"
+version = "0.1.0"
+source = "git+https://github.com/ActivityWatch/aw-server-rust.git#bd547add68b1028f018f25727799a48acb3188a2"
+dependencies = [
+ "chrono",
+ "log",
+ "schemars",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "aw-watcher-window-wayland"
+version = "0.1.0"
+dependencies = [
+ "appdirs",
+ "aw-client-rust",
+ "chrono",
+ "file-lock",
+ "gethostname 0.2.3",
+ "getopts",
+ "lazy_static",
+ "mio 0.6.23",
+ "serde_json",
+ "smallvec",
+ "timerfd",
+ "wayland-client",
+ "wayland-commons",
+ "wayland-scanner",
+ "wayland-sys",
+]
+
+[[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bumpalo"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+
+[[package]]
+name = "bytes"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
+dependencies = [
+ "iana-time-zone",
+ "js-sys",
+ "num-integer",
+ "num-traits",
+ "serde",
+ "time",
+ "wasm-bindgen",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "cxx"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86d3488e7665a7a483b57e25bdd90d0aeb2bc7608c8d0346acf2ad3f1caf1d62"
+dependencies = [
+ "cc",
+ "cxxbridge-flags",
+ "cxxbridge-macro",
+ "link-cplusplus",
+]
+
+[[package]]
+name = "cxx-build"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48fcaf066a053a41a81dfb14d57d99738b767febb8b735c3016e469fac5da690"
+dependencies = [
+ "cc",
+ "codespan-reporting",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "scratch",
+ "syn",
+]
+
+[[package]]
+name = "cxxbridge-flags"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2ef98b8b717a829ca5603af80e1f9e2e48013ab227b68ef37872ef84ee479bf"
+
+[[package]]
+name = "cxxbridge-macro"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "086c685979a698443656e5cf7856c95c642295a38599f12fb1ff76fb28d19892"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "downcast-rs"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "file-lock"
+version = "1.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16486239b3741480cef090b6f9924faf5dd5481022c6f266a51fab1a92971a2"
+dependencies = [
+ "gcc",
+ "libc",
+ "mktemp",
+ "nix 0.11.1",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+[[package]]
+name = "fuchsia-zircon"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+dependencies = [
+ "bitflags",
+ "fuchsia-zircon-sys",
+]
+
+[[package]]
+name = "fuchsia-zircon-sys"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+[[package]]
+name = "futures-channel"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608"
+
+[[package]]
+name = "futures-io"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531"
+
+[[package]]
+name = "futures-sink"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364"
+
+[[package]]
+name = "futures-task"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366"
+
+[[package]]
+name = "futures-util"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gcc"
+version = "0.3.55"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+
+[[package]]
+name = "gethostname"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "gethostname"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a329e22866dd78b35d2c639a4a23d7b950aeae300dfd79f4fb19f74055c2404"
+dependencies = [
+ "libc",
+ "windows",
+]
+
+[[package]]
+name = "getopts"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+
+[[package]]
+name = "hyper"
+version = "0.14.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.53"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+dependencies = [
+ "cxx",
+ "cxx-build",
+]
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"
+dependencies = [
+ "libc",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "iovec"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
+
+[[package]]
+name = "itoa"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+
+[[package]]
+name = "js-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kernel32-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+
+[[package]]
+name = "link-cplusplus"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "maybe-uninit"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "mime"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+
+[[package]]
+name = "mio"
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
+dependencies = [
+ "cfg-if 0.1.10",
+ "fuchsia-zircon",
+ "fuchsia-zircon-sys",
+ "iovec",
+ "kernel32-sys",
+ "libc",
+ "log",
+ "miow",
+ "net2",
+ "slab",
+ "winapi 0.2.8",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+dependencies = [
+ "libc",
+ "log",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "miow"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
+dependencies = [
+ "kernel32-sys",
+ "net2",
+ "winapi 0.2.8",
+ "ws2_32-sys",
+]
+
+[[package]]
+name = "mktemp"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77001ceb9eed65439f3dc2a2543f9ba1417d912686bf224a7738d0966e6dcd69"
+dependencies = [
+ "uuid",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "net2"
+version = "0.2.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631"
+dependencies = [
+ "cfg-if 0.1.10",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "nix"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "becb657d662f1cd2ef38c7ad480ec6b8cf9e96b27adb543e594f9cf0f2e6065c"
+dependencies = [
+ "bitflags",
+ "cc",
+ "cfg-if 0.1.10",
+ "libc",
+ "void",
+]
+
+[[package]]
+name = "nix"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b2e0b4f3320ed72aaedb9a5ac838690a8047c7b275da22711fddff4f8a14229"
+dependencies = [
+ "bitflags",
+ "cc",
+ "cfg-if 0.1.10",
+ "libc",
+ "void",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "ole32-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+
+[[package]]
+name = "openssl"
+version = "0.10.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "518915b97df115dd36109bfa429a48b8f737bd05508cf9588977b599648926d2"
+dependencies = [
+ "bitflags",
+ "cfg-if 1.0.0",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "666416d899cf077260dac8698d60a60b435a46d57e82acb1be3d0dad87284e5b"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.51"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.3.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
+dependencies = [
+ "libc",
+ "rand 0.4.6",
+]
+
+[[package]]
+name = "rand"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+dependencies = [
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "rdrand",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+dependencies = [
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
+[[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg",
+]
+
+[[package]]
+name = "rustc-serialize"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
+
+[[package]]
+name = "rustix"
+version = "0.36.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+
+[[package]]
+name = "schannel"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
+dependencies = [
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "schemars"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f"
+dependencies = [
+ "chrono",
+ "dyn-clone",
+ "schemars_derive",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "schemars_derive"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn",
+]
+
+[[package]]
+name = "scratch"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
+
+[[package]]
+name = "security-framework"
+version = "2.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_derive_internals"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "shell32-sys"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "0.6.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
+dependencies = [
+ "maybe-uninit",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
+dependencies = [
+ "cfg-if 1.0.0",
+ "fastrand",
+ "redox_syscall",
+ "rustix",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "time"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
+dependencies = [
+ "libc",
+ "wasi 0.10.0+wasi-snapshot-preview1",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "timerfd"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0664936efa25f2bbe03ca25b62c50f5f492abec07e59d6dcf45131014b33483f"
+dependencies = [
+ "rustix",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af"
+dependencies = [
+ "autocfg",
+ "bytes",
+ "libc",
+ "memchr",
+ "mio 0.8.6",
+ "num_cpus",
+ "pin-project-lite",
+ "socket2",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "pin-project-lite",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+[[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "uuid"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78c590b5bd79ed10aad8fb75f078a59d8db445af6c743e55c4a53227fc01c13f"
+dependencies = [
+ "rand 0.3.23",
+ "rustc-serialize",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "void"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+
+[[package]]
+name = "want"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+dependencies = [
+ "log",
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+
+[[package]]
+name = "wayland-client"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bcc929c26d59a655b0d2cd337299326acc1f6e3d4434c3ae2d6c78d32290ca4"
+dependencies = [
+ "bitflags",
+ "downcast-rs",
+ "libc",
+ "nix 0.15.0",
+ "wayland-commons",
+ "wayland-scanner",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-commons"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "539cdd0c296802332d763ff663739a7f83bdf67b3df58e99fe0215e96a495142"
+dependencies = [
+ "nix 0.15.0",
+ "smallvec",
+ "spin",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43ea5ea1a117137d72c0c197431d198d69783b5e8ca996b0583c98e10b44d426"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "xml-rs",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "537500923d50be11d95a63c4cb538145e4c82edf61296b7debc1f94a1a6514ed"
+
+[[package]]
+name = "web-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "winapi"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.43.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+
+[[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "ws2_32-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
diff --git a/pkgs/tools/wayland/aw-watcher-window-wayland/default.nix b/pkgs/tools/wayland/aw-watcher-window-wayland/default.nix
new file mode 100644
index 0000000000000..6ffaf29a77d31
--- /dev/null
+++ b/pkgs/tools/wayland/aw-watcher-window-wayland/default.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  pkg-config,
+  openssl,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "aw-watcher-window-wayland";
+  version = "6108ad3df8e157965a43566fa35cdaf144b1c51b";
+
+  src = fetchFromGitHub {
+    owner = "ActivityWatch";
+    repo = pname;
+    rev = version;
+    hash = "sha256-xl9+k6xJp5/t1QPOYfnBLyYprhhrzjzByDKkT3dtVVQ=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "aw-client-rust-0.1.0" = "sha256-9tlVesnBeTlazKE2UAq6dzivjo42DT7p7XMuWXHHlnU=";
+    };
+  };
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+  ];
+
+  meta = with lib; {
+    description = "WIP window and afk watcher for wayland ";
+    homepage = "https://github.com/ActivityWatch/aw-watcher-window-wayland";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ esau79p ];
+    mainProgram = "aw-watcher-window-wayland";
+  };
+}
diff --git a/pkgs/tools/wayland/chayang/default.nix b/pkgs/tools/wayland/chayang/default.nix
index ccfba6a0cf020..d92a729bd28e1 100644
--- a/pkgs/tools/wayland/chayang/default.nix
+++ b/pkgs/tools/wayland/chayang/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   strictDeps = true;
 
-  pkgsBuildBuild = [
+  depsBuildBuild = [
     pkg-config
   ];
 
@@ -48,5 +48,6 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     maintainers = with maintainers; [ mxkrsv ];
     platforms = platforms.linux;
+    mainProgram = "chayang";
   };
 })
diff --git a/pkgs/tools/wayland/clapboard/default.nix b/pkgs/tools/wayland/clapboard/default.nix
index 151675bf3caf0..4f14de873375e 100644
--- a/pkgs/tools/wayland/clapboard/default.nix
+++ b/pkgs/tools/wayland/clapboard/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "clapboard";
   };
 }
diff --git a/pkgs/tools/wayland/clipman/default.nix b/pkgs/tools/wayland/clipman/default.nix
index d7ff425e1a3dc..05eab08da9b6a 100644
--- a/pkgs/tools/wayland/clipman/default.nix
+++ b/pkgs/tools/wayland/clipman/default.nix
@@ -11,7 +11,7 @@ buildGoModule rec {
   version = "1.6.2";
 
   src = fetchFromGitHub {
-    owner = "yory8";
+    owner = "chmouel";
     repo = pname;
     rev = "v${version}";
     sha256 = "sha256-lahya0w1bgcTnpxANxNT2MIWu5yVUdqQl19kQzwUdAw=";
@@ -32,10 +32,11 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/yory8/clipman";
+    homepage = "https://github.com/chmouel/clipman";
     description = "A simple clipboard manager for Wayland";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
+    mainProgram = "clipman";
   };
 }
diff --git a/pkgs/tools/wayland/gnome-randr/default.nix b/pkgs/tools/wayland/gnome-randr/default.nix
index 130b29f8412da..51c460852c0af 100644
--- a/pkgs/tools/wayland/gnome-randr/default.nix
+++ b/pkgs/tools/wayland/gnome-randr/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage {
     license = licenses.mit;
     maintainers = [ maintainers.roberth ];
     platforms = platforms.linux;
+    mainProgram = "gnome-randr";
   };
 }
diff --git a/pkgs/tools/wayland/hyprland-per-window-layout/default.nix b/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
index 32dcddea6fc49..81671f46ed5b8 100644
--- a/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
+++ b/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hyprland-per-window-layout";
-  version = "2.3";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "coffebar";
     repo = pname;
     rev = version;
-    hash = "sha256-eqhGX9rjvOHh6RuWj5dqWPKlFdTnZpAcDUuJbT3Z/E8=";
+    hash = "sha256-Tci3OR7c8hEWAnFsBlSNZYt7znAxPRDhJV+1q7fw6z8=";
   };
 
-  cargoHash = "sha256-AUkBTHShtY3ZJ8pxCuW9baVuxb2QxzXxJQMgbuVTlPY=";
+  cargoHash = "sha256-lVNephJ6UfdM6dPnHs+jHG9A79qHEsrm7tcjcDralnY=";
 
   meta = with lib; {
     description = "Per window keyboard layout (language) for Hyprland wayland compositor";
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = [ maintainers.azazak123 ];
     platforms = platforms.linux;
+    mainProgram = "hyprland-per-window-layout";
   };
 }
diff --git a/pkgs/tools/wayland/kanshi/default.nix b/pkgs/tools/wayland/kanshi/default.nix
index c0884acfeadb5..6d2d1a4b1a981 100644
--- a/pkgs/tools/wayland/kanshi/default.nix
+++ b/pkgs/tools/wayland/kanshi/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kanshi";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = "kanshi";
     rev = "v${version}";
-    sha256 = "sha256-5dIBQBA3OMlmaSYswwggFuedsb3i4uy9bcTZahIS2gQ=";
+    sha256 = "sha256-vxysZWFcfYwOgFMcRuPzYpWmFOFMiwc62DqI+nTQ4MI=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/wayland/mpvpaper/default.nix b/pkgs/tools/wayland/mpvpaper/default.nix
index 51edcc0ea3a2f..91ec1e80267ff 100644
--- a/pkgs/tools/wayland/mpvpaper/default.nix
+++ b/pkgs/tools/wayland/mpvpaper/default.nix
@@ -2,7 +2,6 @@
 , lib
 , meson
 , ninja
-, wlroots
 , wayland
 , wayland-protocols
 , wayland-scanner
@@ -17,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mpvpaper";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "GhostNaN";
     repo = pname;
     rev = version;
-    sha256 = "sha256-0LjIwOY2hBUb0nziD3HLP2Ek5+8v3ntssRFD9eQgWkc=";
+    sha256 = "sha256-pJPoI47KKazVT6RfqyftZe+lPe6Kn2cllRSfq0twUpQ=";
   };
 
   strictDeps = true;
@@ -37,7 +36,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    wlroots
     wayland
     wayland-protocols
     egl-wayland
diff --git a/pkgs/tools/wayland/proycon-wayout/default.nix b/pkgs/tools/wayland/proycon-wayout/default.nix
index 265d585ce1dfb..d19ea6894546a 100644
--- a/pkgs/tools/wayland/proycon-wayout/default.nix
+++ b/pkgs/tools/wayland/proycon-wayout/default.nix
@@ -38,10 +38,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ wayland-protocols wayland cairo pango ];
 
   meta = with lib; {
-    description = "Takes text from standard input and outputs it to a desktop-widget on Wayland desktops.";
+    description = "Takes text from standard input and outputs it to a desktop-widget on Wayland desktops";
     homepage = "https://git.sr.ht/~proycon/wayout";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ wentam ];
+    mainProgram = "proycon-wayout";
   };
 }
diff --git a/pkgs/tools/wayland/shikane/default.nix b/pkgs/tools/wayland/shikane/default.nix
index 229217d0ac23f..b9cac576b5871 100644
--- a/pkgs/tools/wayland/shikane/default.nix
+++ b/pkgs/tools/wayland/shikane/default.nix
@@ -41,5 +41,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ michaelpachec0 natsukium ];
     platforms = platforms.linux;
+    mainProgram = "shikane";
   };
 }
diff --git a/pkgs/tools/wayland/slurp/default.nix b/pkgs/tools/wayland/slurp/default.nix
index 327cc7e91d1ff..e8be0deae6c27 100644
--- a/pkgs/tools/wayland/slurp/default.nix
+++ b/pkgs/tools/wayland/slurp/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "slurp";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = "slurp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-jUuY2wuN00libHDaJEmrvQAb1o989Ly3nLyKHV0jz8Q=";
+    hash = "sha256-2M8f3kN6tihwKlUCp2Qowv5xD6Ufb71AURXqwQShlXI=";
   };
 
   depsBuildBuild = [
@@ -53,6 +53,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/emersion/slurp";
     license = licenses.mit;
     mainProgram = "slurp";
-    maintainers = with maintainers; [ buffet ];
+    maintainers = with maintainers; [ buffet nickcao ];
   };
 })
diff --git a/pkgs/tools/wayland/sov/default.nix b/pkgs/tools/wayland/sov/default.nix
deleted file mode 100644
index d7415a5fa517b..0000000000000
--- a/pkgs/tools/wayland/sov/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchFromGitHub
-, meson, pkg-config, wayland-scanner, ninja
-, wayland, wayland-protocols, freetype,
-}:
-
-stdenv.mkDerivation rec {
-  pname = "sov";
-  version = "0.73";
-
-  src = fetchFromGitHub {
-    owner = "milgra";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-cjbTSvW1fCPl2wZ848XrUPU0bDQ4oXy+D8GqyBMaTwQ=";
-  };
-
-  postPatch = ''
-    substituteInPlace src/sov/main.c --replace '/usr' $out
-  '';
-
-  strictDeps = true;
-  nativeBuildInputs = [ meson pkg-config wayland-scanner ninja ];
-  buildInputs = [ wayland wayland-protocols freetype ];
-
-  meta = with lib; {
-    description = "An overlay that shows schemas for all workspaces to make navigation in sway easier.";
-    homepage = "https://github.com/milgra/sov";
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ travisdavis-ops ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/wayland/swaycwd/default.nix b/pkgs/tools/wayland/swaycwd/default.nix
deleted file mode 100644
index d53dc95dad5a7..0000000000000
--- a/pkgs/tools/wayland/swaycwd/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, nimPackages
-, fetchFromGitLab
-, enableShells ? [ "bash" "zsh" "fish" "sh" "posh" "codium" ]
-}:
-nimPackages.buildNimPackage rec{
-  pname = "swaycwd";
-  version = "0.2.1";
-
-  src = fetchFromGitLab {
-    owner = "cab404";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-R/LnojbA0vBQVivGLaoM0+M4qVJ7vjf4kggB59i896w=";
-  };
-
-  preConfigure = ''
-    {
-      echo 'let enabledShells: seq[string] = @${builtins.toJSON enableShells}'
-      echo 'export enabledShells'
-    } > src/shells.nim
-  '';
-
-  nimFlags = [ "--opt:speed" ];
-
-  meta = with lib; {
-    homepage = "https://gitlab.com/cab404/swaycwd";
-    description = "Returns cwd for shell in currently focused sway window, or home directory if cannot find shell";
-    maintainers = with maintainers; [ cab404 ];
-    platforms = platforms.linux;
-    license = licenses.gpl3Only;
-  };
-}
diff --git a/pkgs/tools/wayland/swayimg/default.nix b/pkgs/tools/wayland/swayimg/default.nix
deleted file mode 100644
index 8f483e79a4da7..0000000000000
--- a/pkgs/tools/wayland/swayimg/default.nix
+++ /dev/null
@@ -1,78 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, meson
-, ninja
-, pkg-config
-, wayland-scanner
-, wayland
-, wayland-protocols
-, json_c
-, libxkbcommon
-, fontconfig
-, giflib
-, libheif
-, libjpeg
-, libwebp
-, libtiff
-, librsvg
-, libpng
-, libjxl
-, libexif
-, bash-completion
-}:
-stdenv.mkDerivation rec {
-  pname = "swayimg";
-  version = "1.11";
-
-  src = fetchFromGitHub {
-    owner = "artemsen";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-UwIufR3EwbpNVHD1GypV3qNgiqDRllwtxAM0CZPodn0=";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "link-libwebp-1.3.1.patch";
-      url = "https://github.com/artemsen/swayimg/commit/bd3d6c838c699b876fd8c19b408c475eb47e17b6.patch";
-      hash = "sha256-2aMq/GTqyKw+CQr8o8ij4P4yNjBXYKXShQUknStUb5c=";
-    })
-  ];
-
-  strictDeps = true;
-
-  depsBuildBuild = [
-    pkg-config
-  ];
-
-  nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
-
-  buildInputs = [
-    bash-completion
-    wayland
-    wayland-protocols
-    json_c
-    libxkbcommon
-    fontconfig
-    giflib
-    libheif
-    libjpeg
-    libwebp
-    libtiff
-    librsvg
-    libpng
-    libjxl
-    libexif
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/artemsen/swayimg";
-    description = "Image viewer for Sway/Wayland";
-    changelog = "https://github.com/artemsen/swayimg/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ matthewcroughan ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/wayland/swaykbdd/default.nix b/pkgs/tools/wayland/swaykbdd/default.nix
index cb46519ac345c..c4ab6098f21b0 100644
--- a/pkgs/tools/wayland/swaykbdd/default.nix
+++ b/pkgs/tools/wayland/swaykbdd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swaykbdd";
-  version = "1.1";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "artemsen";
     repo = "swaykbdd";
     rev = "v${version}";
-    sha256 = "sha256-umYPVkkYeu6TyVkjDsVBsRZLYh8WyseCPdih85kTz6A=";
+    sha256 = "sha256-FtXmn5Lf0PhL99xGl/SHWNaE6vAMOF2Ok4xVJT2Bf/s=";
   };
 
   strictDeps = true;
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ivankovnatsky ];
     platforms = platforms.linux;
+    mainProgram = "swaykbdd";
   };
 }
diff --git a/pkgs/tools/wayland/swayr/default.nix b/pkgs/tools/wayland/swayr/default.nix
index fab220dd2b5b3..0d86bac82139b 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.27.0";
+  version = "0.27.3";
 
   src = fetchFromSourcehut {
     owner = "~tsdh";
     repo = "swayr";
     rev = "swayr-${version}";
-    sha256 = "sha256-FvlBpBBvmivrnHaKYPxmRAE+PCfTxWS+tYYAFjq8Q6I=";
+    sha256 = "sha256-3M4/uk1E5Ly9pifjoDIUEhWf1IZxwRYUC3f3qOsMyRg=";
   };
 
-  cargoHash = "sha256-Ux0Tx5+manPNUUtiCBo7FCMrBYwwUggrdpitywQ7MPk=";
+  cargoHash = "sha256-cjrt2jkcNbTabnhlu0P8mBIKbIpCE6L6BYlxi/fIwrg=";
 
   patches = [
     ./icon-paths.patch
diff --git a/pkgs/tools/wayland/swayrbar/default.nix b/pkgs/tools/wayland/swayrbar/default.nix
index 79cc1635a9cd9..f8f085f1632b6 100644
--- a/pkgs/tools/wayland/swayrbar/default.nix
+++ b/pkgs/tools/wayland/swayrbar/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swayrbar";
-  version = "0.3.6";
+  version = "0.3.7";
 
   src = fetchFromSourcehut {
     owner = "~tsdh";
     repo = "swayr";
     rev = "swayrbar-${version}";
-    sha256 = "sha256-Vv+Hw+iJAi2GnfkiYitDyH3H58tydUDa6GcWITok7Oc=";
+    sha256 = "sha256-41zlVT060Fu90N4oiZ6lWSZdJJSZjyk3GEA/u+bVNCI=";
   };
 
-  cargoHash = "sha256-5alzkHzwuymo6bXFgabYQ3LWJDib0+ESQCSIPmINViY=";
+  cargoHash = "sha256-/MUolnEdYlBTfmUB/j9vHaVpU63upeMoScjHl38cGjo=";
 
   # don't build swayr
   buildAndTestSubdir = pname;
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ sebtm ];
+    mainProgram = "swayrbar";
   };
 }
diff --git a/pkgs/tools/wayland/swaysome/default.nix b/pkgs/tools/wayland/swaysome/default.nix
index 8c4c2eef5d522..308592e450f94 100644
--- a/pkgs/tools/wayland/swaysome/default.nix
+++ b/pkgs/tools/wayland/swaysome/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swaysome";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitLab {
     owner = "hyask";
     repo = pname;
     rev = version;
-    sha256 = "sha256-KmGAp0EPnnM+hPRpUGsbt+NU2v5mcPaRUqo0pqUr1L8=";
+    sha256 = "sha256-U5W/9VL1t1/R4ADPxseBV6CMKx04I4vbp7sFmSqRZXk=";
   };
 
-  cargoHash = "sha256-9sOR99CaTyMQoGMKP2Cag6YNxmgEqNPE/kiJPziqB9U=";
+  cargoHash = "sha256-QA3EQsYgjwx8QX50yaxiJyAPDlpYYqiqLiXco1kJmw0=";
 
   meta = with lib; {
     description = "Helper to make sway behave more like awesomewm";
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ esclear ];
     platforms = platforms.linux;
+    mainProgram = "swaysome";
   };
 }
diff --git a/pkgs/tools/wayland/swww/default.nix b/pkgs/tools/wayland/swww/default.nix
index d97c8ea28df80..9973e6b2fb693 100644
--- a/pkgs/tools/wayland/swww/default.nix
+++ b/pkgs/tools/wayland/swww/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swww";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
-    owner = "Horus645";
+    owner = "LGFae";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-9c/qBmk//NpfvPYjK2QscubFneiQYBU/7PLtTvVRmTA=";
+    hash = "sha256-n7YdUmIZGu7W7cX6OvVW+wbkKjFvont4hEAhZXYDQd8=";
   };
 
-  cargoSha256 = "sha256-AE9bQtW5r1cjIsXA7YEP8TR94wBjaM7emOroVFq9ldE=";
+  cargoSha256 = "sha256-lZC71M3lbsI+itMydAp5VCz0cpSHo/FpkQFC1NlN4DU=";
 
   buildInputs = [
     lz4
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Efficient animated wallpaper daemon for wayland, controlled at runtime";
-    homepage = "https://github.com/Horus645/swww";
+    homepage = "https://github.com/LGFae/swww";
     license = licenses.gpl3;
     maintainers = with maintainers; [ mateodd25 donovanglover ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/wayland/way-displays/default.nix b/pkgs/tools/wayland/way-displays/default.nix
index bac42d39fd1ac..ffd16ac50c085 100644
--- a/pkgs/tools/wayland/way-displays/default.nix
+++ b/pkgs/tools/wayland/way-displays/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ simoneruffini ];
     platforms = platforms.linux;
+    mainProgram = "way-displays";
   };
 }
diff --git a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
index 25123ec9b2443..029e30b2645a0 100644
--- a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
+++ b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
@@ -8,17 +8,16 @@
 
 ocamlPackages.buildDunePackage rec {
   pname = "wayland-proxy-virtwl";
-  version = "unstable-2023-08-13";
+  version = "unstable-2023-12-09";
 
   src = fetchFromGitHub {
     owner = "talex5";
     repo = pname;
-    rev = "050c49a377808105b895e81e7e498f35cc151e58";
-    sha256 = "sha256-6YJv3CCED6LUSPFwYQyHUFkkvOWZGPNHVzw60b5F8+c=";
+    rev = "ec052fa0e9ae2b2926afc27e23a50b4d3072e6ac";
+    sha256 = "sha256-ZWW44hfWs0F4SwwEjx62o/JnuXSrSlq2lrRFRTuPUFE=";
   };
 
-  minimalOCamlVersion = "4.12";
-  duneVersion = "3";
+  minimalOCamlVersion = "5.0";
 
   nativeBuildInputs = [
     pkg-config
@@ -26,11 +25,11 @@ ocamlPackages.buildDunePackage rec {
 
   buildInputs = [ libdrm ] ++ (with ocamlPackages; [
     dune-configurator
+    eio_main
     ppx_cstruct
     wayland
     cmdliner
     logs
-    cstruct-lwt
     ppx_cstruct
   ]);
 
diff --git a/pkgs/tools/wayland/waylogout/default.nix b/pkgs/tools/wayland/waylogout/default.nix
index 553d1a9fd5936..6bf3b89eea409 100644
--- a/pkgs/tools/wayland/waylogout/default.nix
+++ b/pkgs/tools/wayland/waylogout/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "waylogout";
   };
 }
diff --git a/pkgs/tools/wayland/waynergy/default.nix b/pkgs/tools/wayland/waynergy/default.nix
index 646ed36985046..b72b057793f9f 100644
--- a/pkgs/tools/wayland/waynergy/default.nix
+++ b/pkgs/tools/wayland/waynergy/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/r-c-f/waynergy";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ maxhero pedrohlc ];
+    maintainers = with maintainers; [ maxhero ];
   };
 }
diff --git a/pkgs/tools/wayland/wayout/default.nix b/pkgs/tools/wayland/wayout/default.nix
index ca3a3f4191167..b548279d401ee 100644
--- a/pkgs/tools/wayland/wayout/default.nix
+++ b/pkgs/tools/wayland/wayout/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ onny ];
     platforms = platforms.linux;
+    mainProgram = "wayout";
   };
 
 }
diff --git a/pkgs/tools/wayland/wdomirror/default.nix b/pkgs/tools/wayland/wdomirror/default.nix
index 486bed320c581..8796b2036dd5d 100644
--- a/pkgs/tools/wayland/wdomirror/default.nix
+++ b/pkgs/tools/wayland/wdomirror/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jpas ];
+    mainProgram = "wdomirror";
   };
 }
diff --git a/pkgs/tools/wayland/wev/default.nix b/pkgs/tools/wayland/wev/default.nix
index 506b67d14e5b0..c4913e6f75f50 100644
--- a/pkgs/tools/wayland/wev/default.nix
+++ b/pkgs/tools/wayland/wev/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ primeos ];
     platforms = platforms.linux;
-
+    mainProgram = "wev";
   };
 }
diff --git a/pkgs/tools/wayland/wl-clip-persist/default.nix b/pkgs/tools/wayland/wl-clip-persist/default.nix
index 0828a34be840f..2cfe8cc017438 100644
--- a/pkgs/tools/wayland/wl-clip-persist/default.nix
+++ b/pkgs/tools/wayland/wl-clip-persist/default.nix
@@ -35,6 +35,6 @@ rustPlatform.buildRustPackage {
     inherit (wayland.meta) platforms;
     license = licenses.mit;
     mainProgram = "wl-clip-persist";
-    maintainers = with maintainers; [ thiagokokada ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/wayland/wl-color-picker/default.nix b/pkgs/tools/wayland/wl-color-picker/default.nix
index 9fcbc76bff28e..bb5f21ded61df 100644
--- a/pkgs/tools/wayland/wl-color-picker/default.nix
+++ b/pkgs/tools/wayland/wl-color-picker/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
     platforms = platforms.linux;
+    mainProgram = "wl-color-picker";
   };
 }
diff --git a/pkgs/tools/wayland/wl-gammactl/default.nix b/pkgs/tools/wayland/wl-gammactl/default.nix
index 3aae67b47359d..7cb8eb6e7fb6e 100644
--- a/pkgs/tools/wayland/wl-gammactl/default.nix
+++ b/pkgs/tools/wayland/wl-gammactl/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , meson, pkg-config, ninja
-, wayland, wayland-scanner, wlroots, wlr-protocols, gtk3, glib
+, wayland, wayland-scanner, wlr-protocols, gtk3, glib
 }:
 
 stdenv.mkDerivation rec {
@@ -16,13 +16,15 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   nativeBuildInputs = [ meson pkg-config ninja glib wayland-scanner ];
-  buildInputs = [ wayland wlroots gtk3 ];
+  buildInputs = [ wayland gtk3 ];
 
   postUnpack = ''
     rmdir source/wlr-protocols
     ln -s ${wlr-protocols}/share/wlr-protocols source
   '';
 
+  patches = [ ./dont-need-wlroots.diff ];
+
   postPatch = ''
     substituteInPlace meson.build --replace "git = find_program('git')" "git = 'false'"
   '';
@@ -37,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ lodi ];
+    mainProgram = "wl-gammactl";
   };
 }
diff --git a/pkgs/tools/wayland/wl-gammactl/dont-need-wlroots.diff b/pkgs/tools/wayland/wl-gammactl/dont-need-wlroots.diff
new file mode 100644
index 0000000000000..a5eeab64a7bb6
--- /dev/null
+++ b/pkgs/tools/wayland/wl-gammactl/dont-need-wlroots.diff
@@ -0,0 +1,20 @@
+diff --git a/meson.build b/meson.build
+index 5253f52..f5ff82e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -6,7 +6,6 @@ project(
+ 
+ # Define dependecies
+ dep_gtk3 = dependency('gtk+-3.0')
+-dep_wlroots = dependency('wlroots')
+ dep_wayland_client = dependency('wayland-client')
+ 
+ 
+@@ -75,7 +74,6 @@ executable(
+ 	'wl-gammactl',
+ 	sources,
+ 	dependencies : [
+-		dep_wlroots,
+ 		dep_wayland_client,
+ 		dep_gtk3
+ 	],
diff --git a/pkgs/tools/wayland/wl-mirror/default.nix b/pkgs/tools/wayland/wl-mirror/default.nix
index 0746dd5ff09b3..1e652bdcb6ae0 100644
--- a/pkgs/tools/wayland/wl-mirror/default.nix
+++ b/pkgs/tools/wayland/wl-mirror/default.nix
@@ -28,13 +28,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "wl-mirror";
-  version = "0.13.2";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "Ferdi265";
     repo = "wl-mirror";
     rev = "v${version}";
-    hash = "sha256-dmdRe4GZ1W2gD7ZF1MudBqfZIm9HyBjISa+xB54BLz4=";
+    hash = "sha256-RYI8UDJQnhWQc/3fO0n1D3gpPPkSKkdwmSdswGvJdYM=";
   };
 
   strictDeps = true;
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Ferdi265/wl-mirror";
-    description = "Mirrors an output onto a Wayland surface.";
+    description = "A simple Wayland output mirror client";
     license = licenses.gpl3;
     maintainers = with maintainers; [ synthetica twitchyliquid64 ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/wayland/wlay/default.nix b/pkgs/tools/wayland/wlay/default.nix
index 3a80e0627e37a..c2330de5f7dad 100644
--- a/pkgs/tools/wayland/wlay/default.nix
+++ b/pkgs/tools/wayland/wlay/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     inherit (wayland.meta) platforms;
+    mainProgram = "wlay";
   };
 }
diff --git a/pkgs/tools/wayland/wleave/default.nix b/pkgs/tools/wayland/wleave/default.nix
index 74d1c0b3bc58a..e90fed24f7fc5 100644
--- a/pkgs/tools/wayland/wleave/default.nix
+++ b/pkgs/tools/wayland/wleave/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wleave";
-  version = "0.3.0";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "AMNatty";
     repo = "wleave";
     rev = version;
-    hash = "sha256-qo9HnaWYsNZH1J8lAyKSwAOyvlCvIsh9maioatjtGkg=";
+    hash = "sha256-RMUwsrDvSErNbulpyJyRSB1NIsG706SCvF50t3VKuWA=";
   };
 
-  cargoHash = "sha256-6Gppf1upWoMi+gcRSeQ1txSglAaBbpOXKs2LoJhslPQ=";
+  cargoHash = "sha256-E7Lw7HIZC8j/1H+M9lfglfMkWDeaAL505qCkj+CV7Ik=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/wayland/wlprop/default.nix b/pkgs/tools/wayland/wlprop/default.nix
index 67c4918b371fb..0637d0596ca20 100644
--- a/pkgs/tools/wayland/wlprop/default.nix
+++ b/pkgs/tools/wayland/wlprop/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ sebtm ];
     platforms = platforms.linux;
+    mainProgram = "wlprop";
   };
 }
diff --git a/pkgs/tools/wayland/wlr-randr/default.nix b/pkgs/tools/wayland/wlr-randr/default.nix
index b6f69992fec09..0e51bf0093d8b 100644
--- a/pkgs/tools/wayland/wlr-randr/default.nix
+++ b/pkgs/tools/wayland/wlr-randr/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wlr-randr";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-iJSHCQbom+V0TrtEYrjMrMkdc6PoZrjhtcgebZYjQjI=";
+    hash = "sha256-Pr9XEQUtbG3Mo/QjFMoY+oJTQIAVW+aaEjYHZqJgbbg=";
   };
 
   strictDeps = true;
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
+    mainProgram = "wlr-randr";
   };
 }
diff --git a/pkgs/tools/wayland/wlr-which-key/default.nix b/pkgs/tools/wayland/wlr-which-key/default.nix
index d333f1525402f..bef65f8bc9dbc 100644
--- a/pkgs/tools/wayland/wlr-which-key/default.nix
+++ b/pkgs/tools/wayland/wlr-which-key/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ xlambein ];
     platforms = platforms.linux;
+    mainProgram = "wlr-which-key";
   };
 }
diff --git a/pkgs/tools/wayland/wlrctl/default.nix b/pkgs/tools/wayland/wlrctl/default.nix
index ebe6629f3704b..130c54731eaa3 100644
--- a/pkgs/tools/wayland/wlrctl/default.nix
+++ b/pkgs/tools/wayland/wlrctl/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ puffnfresh artturin ];
     platforms = platforms.linux;
+    mainProgram = "wlrctl";
   };
 }
diff --git a/pkgs/tools/wayland/wlsunset/default.nix b/pkgs/tools/wayland/wlsunset/default.nix
index 8dac99d93e45d..df0f52fdf79d7 100644
--- a/pkgs/tools/wayland/wlsunset/default.nix
+++ b/pkgs/tools/wayland/wlsunset/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
+    mainProgram = "wlsunset";
   };
 }
diff --git a/pkgs/tools/wayland/wluma/Cargo.lock b/pkgs/tools/wayland/wluma/Cargo.lock
index 93da6d375921f..22a0f9a329db2 100644
--- a/pkgs/tools/wayland/wluma/Cargo.lock
+++ b/pkgs/tools/wayland/wluma/Cargo.lock
@@ -21,15 +21,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "anyhow"
 version = "1.0.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -60,24 +51,24 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "bindgen"
-version = "0.56.0"
+version = "0.65.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da379dbebc0b76ef63ca68d8fc6e71c0f13e59432e0987e508c1820e6ab5239"
+checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5"
 dependencies = [
  "bitflags",
  "cexpr",
  "clang-sys",
- "clap",
- "env_logger 0.8.4",
  "lazy_static",
  "lazycell",
  "log",
  "peeking_take_while",
+ "prettyplease",
  "proc-macro2",
  "quote",
  "regex",
  "rustc-hash",
  "shlex",
+ "syn 2.0.22",
  "which",
 ]
 
@@ -107,11 +98,11 @@ checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
 
 [[package]]
 name = "cexpr"
-version = "0.4.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
 dependencies = [
- "nom 5.1.2",
+ "nom 7.1.3",
 ]
 
 [[package]]
@@ -147,21 +138,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
 name = "codespan-reporting"
 version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -242,7 +218,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "scratch",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -259,7 +235,7 @@ checksum = "39e61fda7e62115119469c7b3591fd913ecca96fb766cfd3f2e2502ab7bc87a5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -392,22 +368,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
-
-[[package]]
-name = "env_logger"
-version = "0.8.4"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
+checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
 
 [[package]]
 name = "env_logger"
@@ -633,9 +596,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.139"
+version = "0.2.141"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
 
 [[package]]
 name = "libloading"
@@ -756,6 +719,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
 name = "mio"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -769,9 +738,9 @@ dependencies = [
 
 [[package]]
 name = "mockall"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50e4a1c770583dac7ab5e2f6c139153b783a53a1bbee9729613f193e59828326"
+checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96"
 dependencies = [
  "cfg-if",
  "downcast",
@@ -784,14 +753,14 @@ dependencies = [
 
 [[package]]
 name = "mockall_derive"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "832663583d5fa284ca8810bf7015e46c9fff9622d3cf34bd1eea5003fec06dd0"
+checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb"
 dependencies = [
  "cfg-if",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -817,12 +786,12 @@ dependencies = [
 
 [[package]]
 name = "nom"
-version = "5.1.2"
+version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
 dependencies = [
  "memchr 2.5.0",
- "version_check",
+ "minimal-lexical",
 ]
 
 [[package]]
@@ -927,19 +896,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "prettyplease"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.22",
+]
+
+[[package]]
 name = "proc-macro2"
-version = "1.0.49"
+version = "1.0.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
+checksum = "fe8df9bd9fe9d1742a9e17f8129712801b428f6d4c6059d79bacea58f0b0142d"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.23"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
 dependencies = [
  "proc-macro2",
 ]
@@ -966,9 +945,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.7.1"
+version = "1.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
 dependencies = [
  "aho-corasick",
  "memchr 2.5.0",
@@ -977,9 +956,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.28"
+version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "resize-slice"
@@ -1031,7 +1010,7 @@ checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1061,9 +1040,9 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "0.1.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
 
 [[package]]
 name = "smallvec"
@@ -1082,16 +1061,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "strsim"
-version = "0.8.0"
+name = "syn"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
 
 [[package]]
 name = "syn"
-version = "1.0.107"
+version = "2.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1114,15 +1098,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8"
 
 [[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
 name = "thiserror"
 version = "1.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1139,7 +1114,7 @@ checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1196,9 +1171,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.6"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
 
 [[package]]
 name = "unicode-width"
@@ -1220,9 +1195,9 @@ checksum = "bc7ed8ba44ca06be78ea1ad2c3682a43349126c8818054231ee6f4748012aed2"
 
 [[package]]
 name = "v4l"
-version = "0.13.1"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd9946a2fda19c7a729dc72e28b9fd9c653e9b7de954ffe3aecaf51977f88762"
+checksum = "d8fbfea44a46799d62c55323f3c55d06df722fbe577851d848d328a1041c3403"
 dependencies = [
  "bitflags",
  "libc",
@@ -1231,26 +1206,14 @@ dependencies = [
 
 [[package]]
 name = "v4l-sys"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91dc47f9668a0a1a0af7ba194f2d543a68c2ef9eb61888f89565d60b34247fe"
+checksum = "16214e9b9476f0e76d117945c9c18a46a2602643c917a75b718ae2cf5395fa30"
 dependencies = [
  "bindgen",
 ]
 
 [[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
 name = "void"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1289,7 +1252,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
  "wasm-bindgen-shared",
 ]
 
@@ -1311,7 +1274,7 @@ checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -1386,11 +1349,13 @@ dependencies = [
 
 [[package]]
 name = "which"
-version = "3.1.1"
+version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
+checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
 dependencies = [
+ "either",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
@@ -1489,12 +1454,12 @@ checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
 
 [[package]]
 name = "wluma"
-version = "4.2.0"
+version = "4.3.0"
 dependencies = [
  "ash",
  "chrono",
  "ddc-hi",
- "env_logger 0.9.3",
+ "env_logger",
  "inotify",
  "itertools",
  "lazy_static",
diff --git a/pkgs/tools/wayland/wluma/default.nix b/pkgs/tools/wayland/wluma/default.nix
index e393d0aff3162..07142210c3039 100644
--- a/pkgs/tools/wayland/wluma/default.nix
+++ b/pkgs/tools/wayland/wluma/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wluma";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "maximbaz";
     repo = "wluma";
     rev = version;
-    sha256 = "sha256-6qZlwjzBPDkr2YHzDYeKQOuoozV7rpl8dojqTTzInqg=";
+    sha256 = "sha256-FaX87k8LdBhrBX4qvokSHkcNaQZ0+oSbkn9d0dK6FGo=";
   };
 
   cargoLock = {
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.isc;
     maintainers = with maintainers; [ yshym jmc-figueira ];
     platforms = platforms.linux;
+    mainProgram = "wluma";
   };
 }
diff --git a/pkgs/tools/wayland/wob/default.nix b/pkgs/tools/wayland/wob/default.nix
index 32fad72384f98..f51ae7dc76570 100644
--- a/pkgs/tools/wayland/wob/default.nix
+++ b/pkgs/tools/wayland/wob/default.nix
@@ -5,6 +5,7 @@
 , meson
 , ninja
 , pkg-config
+, cmocka
 , scdoc
 , wayland-scanner
 , wayland
@@ -14,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wob";
-  version = "0.14.2";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "francma";
     repo = pname;
     rev = version;
-    sha256 = "sha256-u4jLVLGcMTgDEgN8jW5d59m3GorJX7Z6+qKhzvbON3k=";
+    sha256 = "sha256-9LFAEo17w861ldMJU+t1oLAKoM6gJc4Em4tSwQDXbKU=";
   };
 
   strictDeps = true;
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
     pkg-config
   ];
   nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
-  buildInputs = [ inih wayland wayland-protocols ]
+  buildInputs = [ cmocka inih wayland wayland-protocols ]
     ++ lib.optional stdenv.isLinux libseccomp;
 
   mesonFlags = lib.optional stdenv.isLinux "-Dseccomp=enabled";
@@ -44,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ primeos ];
     platforms = platforms.linux;
+    mainProgram = "wob";
   };
 }
diff --git a/pkgs/tools/wayland/wpaperd/default.nix b/pkgs/tools/wayland/wpaperd/default.nix
index 76a9bd5e24dd8..dc7ce198e8e7b 100644
--- a/pkgs/tools/wayland/wpaperd/default.nix
+++ b/pkgs/tools/wayland/wpaperd/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ DPDmancul ];
+    mainProgram = "wpaperd";
   };
 }
diff --git a/pkgs/tools/wayland/wshowkeys/default.nix b/pkgs/tools/wayland/wshowkeys/default.nix
index 268dbd8ddbc9b..ef0c6fd6cd347 100644
--- a/pkgs/tools/wayland/wshowkeys/default.nix
+++ b/pkgs/tools/wayland/wshowkeys/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     # TODO: gpl3Only or gpl3Plus (ask upstream)?
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos berbiche ];
+    mainProgram = "wshowkeys";
   };
 }
diff --git a/pkgs/tools/wayland/xwaylandvideobridge/default.nix b/pkgs/tools/wayland/xwaylandvideobridge/default.nix
new file mode 100644
index 0000000000000..5614ef40d5374
--- /dev/null
+++ b/pkgs/tools/wayland/xwaylandvideobridge/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchurl
+, cmake
+, extra-cmake-modules
+, pkg-config
+, qtbase
+, qtquickcontrols2
+, qtx11extras
+, kdelibs4support
+, kpipewire
+, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "xwaylandvideobridge";
+  version = "0.4.0";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/xwaylandvideobridge/xwaylandvideobridge-${finalAttrs.version}.tar.xz";
+    hash = "sha256-6nKseypnV46ZlNywYZYC6tMJekb7kzZmHaIA5jkn6+Y=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    qtquickcontrols2
+    qtx11extras
+    kdelibs4support
+    kpipewire
+  ];
+
+  meta = {
+    description = "Utility to allow streaming Wayland windows to X applications";
+    homepage = "https://invent.kde.org/system/xwaylandvideobridge";
+    license = with lib.licenses; [ bsd3 cc0 gpl2Plus ];
+    maintainers = with lib.maintainers; [ stepbrobd ];
+    platforms = lib.platforms.linux;
+    mainProgram = "xwaylandvideobridge";
+  };
+})